<?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>139652</bug_id>
          
          <creation_ts>2014-12-15 14:25:07 -0800</creation_ts>
          <short_desc>[iOS] Add feature counting support</short_desc>
          <delta_ts>2015-01-01 13:04:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Template Framework</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>iPhone / iPad</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>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>140029</dependson>
          <blocked>139688</blocked>
    
    <blocked>139753</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>andersca</cc>
    
    <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dbates</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1055741</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-15 14:25:07 -0800</bug_when>
    <thetext>Add feature counting support and use it to log page cache failure reasons (for now). Support can be extended to other platform later but this patch will only provide an implementation for iOS.

Radar: &lt;rdar://problem/19255690&gt; / &lt;rdar://problem/19255632&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055743</commentid>
    <comment_count>1</comment_count>
      <attachid>243310</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-15 14:28:56 -0800</bug_when>
    <thetext>Created attachment 243310
WIP Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055771</commentid>
    <comment_count>2</comment_count>
      <attachid>243320</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2014-12-15 15:33:08 -0800</bug_when>
    <thetext>Created attachment 243320
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055819</commentid>
    <comment_count>3</comment_count>
      <attachid>243320</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-15 18:07:45 -0800</bug_when>
    <thetext>Comment on attachment 243320
Patch

Clearing flags on attachment: 243320

Committed r177328: &lt;http://trac.webkit.org/changeset/177328&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055820</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-15 18:07:50 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243310</attachid>
            <date>2014-12-15 14:28:56 -0800</date>
            <delta_ts>2014-12-15 15:33:05 -0800</delta_ts>
            <desc>WIP Patch</desc>
            <filename>139652_ios_FeatureCounter_wip.patch</filename>
            <type>text/plain</type>
            <size>28463</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2Ny
aXB0Q29yZS54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9K
YXZhU2NyaXB0Q29yZS54Y2NvbmZpZwppbmRleCAzMTAwOWExYy4uMDM3YmQ0OSAxMDA2NDQKLS0t
IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhj
Y29uZmlnCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1cmF0aW9ucy9KYXZhU2Ny
aXB0Q29yZS54Y2NvbmZpZwpAQCAtMzcsNyArMzcsNyBAQCBKU1ZBTFVFX01PREVMX3g4Nl82NCA9
IDY0OwogT1RIRVJfTERGTEFHU19ISURFX1NZTUJPTFMgPSAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9s
IC1XbCxfX1pUSVN0OWJhZF9hbGxvYyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUSVN0
OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWJhZF9hbGxvYyAt
V2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pUU1N0OWV4Y2VwdGlvbiAtV2wsLXVuZXhwb3J0
ZWRfc3ltYm9sIC1XbCxfX1pkbFB2U18gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19abndt
UHYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZ2RUVj
bEV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVD
MUVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2
RUVDMkVPUzJfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5LU3QzX18xOGZ1bmN0aW9u
SUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRWNsRVMzX1M1
XyAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9uSUZ2Uk4zSlND
MTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQxRXYgLVdsLC11bmV4cG9y
dGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdlJOM0pTQzE3Qnl0ZWNvZGVHZW5l
cmF0b3JFUE5TMV8xMFJlZ2lzdGVySURFRUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVds
LF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMUV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVds
LF9fWk5TdDNfXzE4ZnVuY3Rpb25JRnZ2RUVEMkV2IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVds
LF9fWlRWTlN0M19fMTE3YmFkX2Z1bmN0aW9uX2NhbGxFIC1XbCwtYWxsX2xvYWQ7CiAKIE9USEVS
X0xERkxBR1NfQkFTRSA9IC1sb2JqYyAtV2wsLVksMyAkKE9USEVSX0xERkxBR1NfSElERV9TWU1C
T0xTKTsKLU9USEVSX0xERkxBR1Nbc2RrPWlwaG9uZSpdID0gJChpbmhlcml0ZWQpICQoT1RIRVJf
TERGTEFHU19CQVNFKTsKK09USEVSX0xERkxBR1Nbc2RrPWlwaG9uZSpdID0gJChpbmhlcml0ZWQp
ICQoT1RIRVJfTERGTEFHU19CQVNFKSAtZnJhbWV3b3JrIEFwcFN1cHBvcnQ7CiBPVEhFUl9MREZM
QUdTW3Nkaz1tYWNvc3gqXSA9ICQoaW5oZXJpdGVkKSAkKE9USEVSX0xERkxBR1NfQkFTRSkgLXN1
Yl9saWJyYXJ5IGxpYm9iamMgLWZyYW1ld29yayBDb3JlU2VydmljZXM7CiAKIFNFQ1RPUkRFUl9G
TEFHU1tzZGs9aXBob25lb3MqXSA9ICQoU0VDVE9SREVSX0ZMQUdTX2lvc18kKENPTkZJR1VSQVRJ
T04pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2ogYi9T
b3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52Y3hwcm9qCmluZGV4IGVjNzMzMDguLjJhY2ZjM2Ug
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oKKysrIGIvU291
cmNlL1dURi9XVEYudmN4cHJvai9XVEYudmN4cHJvagpAQCAtNzIsNiArNzIsNyBAQAogICAgIDxD
bENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXGR0b2Fcc3RydG9kLmNjIiAvPgogICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iLi5cd3RmXEZhc3RCaXRWZWN0b3IuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iLi5cd3RmXEZhc3RNYWxsb2MuY3BwIiAvPgorICAgIDxDbENvbXBpbGUgSW5jbHVk
ZT0iLi5cd3RmXEZlYXR1cmVDb3VudGVyLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
Ii4uXHd0ZlxGaWxlUHJpbnRTdHJlYW0uY3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
Li5cd3RmXEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRl
PSIuLlx3dGZcZ29iamVjdFxHbGliVXRpbGl0aWVzLmNwcCI+CkBAIC0xOTcsNiArMTk4LDcgQEAK
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxkdG9hXHV0aWxzLmgiIC8+CiAgICAgPENs
SW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRmFzdEJpdFZlY3Rvci5oIiAvPgogICAgIDxDbEluY2x1
ZGUgSW5jbHVkZT0iLi5cd3RmXEZhc3RNYWxsb2MuaCIgLz4KKyAgICA8Q2xJbmNsdWRlIEluY2x1
ZGU9Ii4uXHd0ZlxGZWF0dXJlQ291bnRlci5oIiAvPgogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXEZlYXR1cmVEZWZpbmVzLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3
dGZcRmlsZVByaW50U3RyZWFtLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZc
RmxpcEJ5dGVzLmgiIC8+CkBAIC03NzUsNCArNzc3LDQgQEAKICAgPEltcG9ydCBQcm9qZWN0PSIk
KFZDVGFyZ2V0c1BhdGgpXE1pY3Jvc29mdC5DcHAudGFyZ2V0cyIgLz4KICAgPEltcG9ydEdyb3Vw
IExhYmVsPSJFeHRlbnNpb25UYXJnZXRzIj4KICAgPC9JbXBvcnRHcm91cD4KLTwvUHJvamVjdD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCis8L1Byb2plY3Q+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dURi9XVEYueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBlYTdiMzIzLi4wOThkMWQyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
VEYvV1RGLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTczLDYgKzczLDkgQEAKIAkJMkNE
RUQwRUYxODExNUMzODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBFRTE4MTE1QzM4MDA0REJBNzAgLyog
UnVuTG9vcENGLmNwcCAqLzsgfTsKIAkJMkNERUQwRjMxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxv
b3AuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMkNE
RUQwRjExODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwICovOyB9OwogCQkyQ0RFRDBGNDE4
MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gMkNERUQwRjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAq
LzsgfTsKKwkJNDYzMTExODQxQTNGNzI5QTAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjMxMTE4MzFBM0Y3
MjlBMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuaCAqLzsgfTsKKwkJNDYzMTExODYxQTNGNzJC
ODAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDYzMTExODUxQTNGNzJCODAwRTkyNUEzIC8qIEZlYXR1cmVD
b3VudGVyLm1tICovOyB9OworCQk0NjMxMTE4ODFBM0Y4OTkxMDBFOTI1QTMgLyogRmVhdHVyZUNv
dW50ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDYzMTExODcxQTNGODk5MTAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLmNwcCAqLzsgfTsKIAkJ
N0NCQkEwNzQxOUJCN0ZEQzAwQkJGMDI1IC8qIE9TT2JqZWN0UHRyLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0JCQTA3MzE5QkI3RkRDMDBCQkYwMjUg
LyogT1NPYmplY3RQdHIuaCAqLzsgfTsKIAkJN0NERDdGRjgxODZEMjkxRTAwNzQzM0NEIC8qIEl0
ZXJhdG9yQWRhcHRvcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDdDREQ3RkY3MTg2RDI5MUUwMDc0MzNDRCAvKiBJdGVyYXRvckFkYXB0b3JzLmggKi87
IH07CiAJCTdDREQ3RkZBMTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVyYXRvclJhbmdlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA3Q0REN0ZGOTE4NkQyQTU0
MDA3NDMzQ0QgLyogSXRlcmF0b3JSYW5nZS5oICovOyB9OwpAQCAtMzYxLDYgKzM2NCw5IEBACiAJ
CTJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcENGLmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJMkNERUQwRjExODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUnVuTG9vcC5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTJDREVEMEYyMTgxMTVDODUwMDREQkE3MCAvKiBSdW5Mb29wLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJ1bkxvb3AuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJNDYzMTExODMxQTNGNzI5QTAwRTkyNUEzIC8qIEZlYXR1cmVDb3Vu
dGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZlYXR1cmVDb3VudGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MzExMTg1MUEzRjcyQjgwMEU5MjVBMyAv
KiBGZWF0dXJlQ291bnRlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IEZlYXR1cmVDb3VudGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0NjMx
MTE4NzFBM0Y4OTkxMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRmVhdHVyZUNvdW50ZXIuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk1RDI0N0I2MjE0Njg5Qjg2MDBFNzhCNzYgLyogbGliV1RGLmEgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9IGFyY2hpdmUuYXI7
IGluY2x1ZGVJbkluZGV4ID0gMDsgcGF0aCA9IGxpYldURi5hOyBzb3VyY2VUcmVlID0gQlVJTFRf
UFJPRFVDVFNfRElSOyB9OwogCQk1RDI0N0I2RTE0Njg5QzQ3MDBFNzhCNzYgLyogQmFzZS54Y2Nv
bmZpZyAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQueGNjb25maWc7IHBhdGggPSBCYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1RDI0N0I3MDE0Njg5QzQ3MDBFNzhCNzYgLyogRGVidWdSZWxlYXNlLnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54
Y2NvbmZpZzsgcGF0aCA9IERlYnVnUmVsZWFzZS54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTYxNiw2ICs2MjIsNyBAQAogCQkxRkE0N0M4NzE1MjUwMkRBMDA1NjhEMUIg
LyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk0
NjMxMTE4NTFBM0Y3MkI4MDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIubW0gKi8sCiAJCQkJMUZB
NDdDODgxNTI1MDJEQTAwNTY4RDFCIC8qIFdlYkNvcmVUaHJlYWQuY3BwICovLAogCQkJCTFGQTQ3
Qzg5MTUyNTAyREEwMDU2OEQxQiAvKiBXZWJDb3JlVGhyZWFkLmggKi8sCiAJCQkpOwpAQCAtNzU0
LDYgKzc2MSw4IEBACiAJCQkJMEZEODFBQzQxNTRGQjIyRTAwOTgzRTcyIC8qIEZhc3RCaXRWZWN0
b3IuaCAqLywKIAkJCQlBOEE0NzJBMTE1MUE4MjVBMDA0MTIzRkYgLyogRmFzdE1hbGxvYy5jcHAg
Ki8sCiAJCQkJQThBNDcyQTIxNTFBODI1QTAwNDEyM0ZGIC8qIEZhc3RNYWxsb2MuaCAqLywKKwkJ
CQk0NjMxMTE4NzFBM0Y4OTkxMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuY3BwICovLAorCQkJ
CTQ2MzExMTgzMUEzRjcyOUEwMEU5MjVBMyAvKiBGZWF0dXJlQ291bnRlci5oICovLAogCQkJCUIz
OEZEN0JDMTY4OTUzRTgwMDY1Qzk2OSAvKiBGZWF0dXJlRGVmaW5lcy5oICovLAogCQkJCTBGOUQz
MzVCMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0uY3BwICovLAogCQkJCTBGOUQz
MzVDMTY1REJBNzMwMDVBRDM4NyAvKiBGaWxlUHJpbnRTdHJlYW0uaCAqLywKQEAgLTExNzgsNiAr
MTE4Nyw3IEBACiAJCQkJMUFGREU2NDgxOTUyMDFDMzAwQzQ4RkZBIC8qIFR5cGVDYXN0c0NGLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlBOEE0NzQyMzE1MUE4MjVCMDA0MTIzRkYgLyogU2ltcGxlU3Rh
dHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDI0MTUxQTgyNUIwMDQxMjNGRiAvKiBTaW5n
bHlMaW5rZWRMaXN0LmggaW4gSGVhZGVycyAqLywKKwkJCQk0NjMxMTE4NDFBM0Y3MjlBMDBFOTI1
QTMgLyogRmVhdHVyZUNvdW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3NDg3NDUzMTdBMEJE
QUUwMEZBMDRDQiAvKiBTaXhDaGFyYWN0ZXJIYXNoLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOEE0
NzQyNjE1MUE4MjVCMDA0MTIzRkYgLyogU3BlY3RydW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUE4
QTQ3NDI4MTUxQTgyNUIwMDQxMjNGRiAvKiBTdGFja0JvdW5kcy5oIGluIEhlYWRlcnMgKi8sCkBA
IC0xMzQ1LDYgKzEzNTUsNyBAQAogCQkJCTg2RjQ2RjYwMUEyODQwRUUwMENDQkYyMiAvKiBSZWZD
b3VudGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3MzlFMTUxQTgyNUIwMDQxMjNGRiAv
KiBEYXRhTG9nLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EwMTUxQTgyNUIwMDQxMjNG
RiAvKiBEYXRlTWF0aC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0NjMxMTE4NjFBM0Y3MkI4MDBF
OTI1QTMgLyogRmVhdHVyZUNvdW50ZXIubW0gaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNBMjE1
MUE4MjVCMDA0MTIzRkYgLyogRGVjaW1hbE51bWJlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlB
OEE0NzNBRTE1MUE4MjVCMDA0MTIzRkYgLyogZGl5LWZwLmNjIGluIFNvdXJjZXMgKi8sCiAJCQkJ
QThBNDczQjAxNTFBODI1QjAwNDEyM0ZGIC8qIGRvdWJsZS1jb252ZXJzaW9uLmNjIGluIFNvdXJj
ZXMgKi8sCkBAIC0xMzY1LDYgKzEzNzYsNyBAQAogCQkJCUNENTQ5N0FDMTU4NTdEMDMwMEI1QkMz
MCAvKiBNZWRpYVRpbWUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRUMxNTFBODI1QjAw
NDEyM0ZGIC8qIE1ldGFBbGxvY2F0b3IuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDczRjQx
NTFBODI1QjAwNDEyM0ZGIC8qIE51bWJlck9mQ29yZXMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJ
NDYzMTExODgxQTNGODk5MTAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLmNwcCBpbiBTb3VyY2Vz
ICovLAogCQkJCUE4QTQ3M0Y3MTUxQTgyNUIwMDQxMjNGRiAvKiBPU0FsbG9jYXRvclBvc2l4LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTkzRjE5OTNFMTlENzk1OEQwMEMyMzkwQiAvKiBTdHJpbmdW
aWV3LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0Y5MTUxQTgyNUIwMDQxMjNGRiAvKiBP
U1JhbmRvbVNvdXJjZS5jcHAgaW4gU291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYv
d3RmL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKaW5kZXgg
YjllNjY5MS4uYTk3ZjM4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50eHQKQEAgLTI0LDYgKzI0LDcgQEAg
c2V0KFdURl9IRUFERVJTCiAgICAgRGlzYWxsb3dDVHlwZS5oCiAgICAgRG91Ymx5TGlua2VkTGlz
dC5oCiAgICAgRmFzdE1hbGxvYy5oCisgICAgRmVhdHVyZUNvdW50ZXIuaAogICAgIEZlYXR1cmVE
ZWZpbmVzLmgKICAgICBGaWxlUHJpbnRTdHJlYW0uaAogICAgIEZsaXBCeXRlcy5oCkBAIC0xNTks
NiArMTYwLDcgQEAgc2V0KFdURl9TT1VSQ0VTCiAgICAgRGVjaW1hbE51bWJlci5jcHAKICAgICBG
YXN0Qml0VmVjdG9yLmNwcAogICAgIEZhc3RNYWxsb2MuY3BwCisgICAgRmVhdHVyZUNvdW50ZXIu
Y3BwCiAgICAgRmlsZVByaW50U3RyZWFtLmNwcAogICAgIEZ1bmN0aW9uRGlzcGF0Y2hlci5jcHAK
ICAgICBHcmVnb3JpYW5EYXRlVGltZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0Zl
YXR1cmVDb3VudGVyLmNwcCBiL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVDb3VudGVyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hZmU2MmZmCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50ZXIuY3BwCkBAIC0wLDAgKzEsNDYgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJGZWF0dXJlQ291bnRlci5oIgorCitu
YW1lc3BhY2UgV1RGIHsKKworI2lmICFQTEFURk9STShJT1MpCisKK3ZvaWQgaW5jcmVtZW50RmVh
dHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciogY29uc3Qga2V5KQoreworICAgIFVOVVNFRF9QQVJB
TShrZXkpOworfQorCit2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KGNvbnN0IGNoYXIqIGNvbnN0
IGtleSwgaW50NjRfdCB2YWx1ZSkKK3sKKyAgICBVTlVTRURfUEFSQU0oa2V5KTsKKyAgICBVTlVT
RURfUEFSQU0odmFsdWUpOworfQorCisjZW5kaWYKKworfSAvLyBuYW1lc3BhY2UgV1RGCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlQ291bnRlci5oIGIvU291cmNlL1dURi93dGYv
RmVhdHVyZUNvdW50ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi4wYWE1
ZWViCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50ZXIuaApA
QCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9S
IEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZlYXR1cmVDb3VudGVyX2gKKyNkZWZpbmUg
RmVhdHVyZUNvdW50ZXJfaAorCituYW1lc3BhY2UgV1RGIHsKKworV1RGX0VYUE9SVF9QUklWQVRF
IHZvaWQgaW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciogY29uc3Qga2V5KTsK
K1dURl9FWFBPUlRfUFJJVkFURSB2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KGNvbnN0IGNoYXIq
IGNvbnN0IGtleSwgaW50NjRfdCB2YWx1ZSk7CisKKyNkZWZpbmUgRkVBVFVSRV9DT1VOVEVSX0lO
Q1JFTUVOVF9LRVkoa2V5KSAgIFdURjo6aW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkoa2V5KQor
I2RlZmluZSBGRUFUVVJFX0NPVU5URVJfU0VUX0tFWShrZXksIHZhbHVlKSAgV1RGOjpzZXRGZWF0
dXJlQ291bnRlcktleShrZXksIHZhbHVlKQorCit9IC8vIG5hbWVzcGFjZSBXVEYKKworI2VuZGlm
IC8vIEZlYXR1cmVDb3VudGVyX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL2lvcy9GZWF0
dXJlQ291bnRlci5tbSBiL1NvdXJjZS9XVEYvd3RmL2lvcy9GZWF0dXJlQ291bnRlci5tbQpuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jMzlmMDhkCi0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dURi93dGYvaW9zL0ZlYXR1cmVDb3VudGVyLm1tCkBAIC0wLDAgKzEsNDggQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiRmVhdHVyZUNvdW50ZXIuaCIKKwor
I2lmIFBMQVRGT1JNKElPUykKKyNpbXBvcnQgPEFwcFN1cHBvcnQvQ1BBZ2dyZWdhdGVEaWN0aW9u
YXJ5Lmg+CisKK25hbWVzcGFjZSBXVEYgeworCit2b2lkIGluY3JlbWVudEZlYXR1cmVDb3VudGVy
S2V5KGNvbnN0IGNoYXIqIGNvbnN0IGtleSkKK3sKKyAgICBOU1N0cmluZyAqbnNLZXkgPSBbW05T
U3RyaW5nIGFsbG9jXSBpbml0V2l0aENoYXJhY3RlcnNOb0NvcHk6cmVpbnRlcnByZXRfY2FzdDx1
bmljaGFyKj4oY29uc3RfY2FzdDxjaGFyKj4oa2V5KSkgbGVuZ3RoOnN0cmxlbihrZXkpIGZyZWVX
aGVuRG9uZTpOT107CisgICAgW1tDUEFnZ3JlZ2F0ZURpY3Rpb25hcnkgc2hhcmVkQWdncmVnYXRl
RGljdGlvbmFyeV0gaW5jcmVtZW50S2V5Om5zS2V5XTsKK30KKwordm9pZCBzZXRGZWF0dXJlQ291
bnRlcktleShjb25zdCBjaGFyKiBjb25zdCBrZXksIGludDY0X3QgdmFsdWUpCit7CisgICAgTlNT
dHJpbmcgKm5zS2V5ID0gW1tOU1N0cmluZyBhbGxvY10gaW5pdFdpdGhDaGFyYWN0ZXJzTm9Db3B5
OnJlaW50ZXJwcmV0X2Nhc3Q8dW5pY2hhcio+KGNvbnN0X2Nhc3Q8Y2hhcio+KGtleSkpIGxlbmd0
aDpzdHJsZW4oa2V5KSBmcmVlV2hlbkRvbmU6Tk9dOworICAgIFtbQ1BBZ2dyZWdhdGVEaWN0aW9u
YXJ5IHNoYXJlZEFnZ3JlZ2F0ZURpY3Rpb25hcnldIHNldFZhbHVlOnZhbHVlIGZvclNjYWxhcktl
eTpuc0tleV07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gUExBVEZPUk0o
SU9TKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCmluZGV4IDRkZjNiODIuLjEyOGVj
YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFnZUNhY2hlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMTQgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYsNiArMzYsNyBAQAog
I2luY2x1ZGUgIkRldmljZU9yaWVudGF0aW9uQ29udHJvbGxlci5oIgogI2luY2x1ZGUgIkRvY3Vt
ZW50LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnRMb2FkZXIuaCIKKyNpbmNsdWRlICJGZWF0dXJlQ291
bnRlcktleXMuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9h
ZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJTdGF0ZU1hY2hpbmUuaCIKQEAgLTY2
LDYgKzY3LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICNpZiAhZGVmaW5lZChOREVCVUcpCiAK
ICNkZWZpbmUgUENMT0coLi4uKSBMT0coUGFnZUNhY2hlLCAiJSpzJXMiLCBpbmRlbnRMZXZlbCo0
LCAiIiwgbWFrZVN0cmluZyhfX1ZBX0FSR1NfXykudXRmOCgpLmRhdGEoKSkKKworI2Vsc2UKKwor
I2RlZmluZSBQQ0xPRyguLi4pICgodm9pZCkwKQorCisjZW5kaWYgLy8gIWRlZmluZWQoTkRFQlVH
KQogICAgIAogLy8gVXNlZCBpbiBoaXN0b2dyYW1zLCBwbGVhc2Ugb25seSBhZGQgYXQgdGhlIGVu
ZCwgYW5kIGRvIG5vdCByZW1vdmUgZWxlbWVudHMgKHJlbmFtaW5nIGUuZy4gdG8gIkZvb0VudW1V
bnVzZWQxIiBpcyBmaW5lKS4KIC8vIFRoaXMgaXMgYmVjYXVzZSBzdGF0aXN0aWNzIG1heSBiZSBn
YXRoZXJlZCBmcm9tIGhpc3RvZ3JhbXMgYmV0d2VlbiB2ZXJzaW9ucyBvdmVyIHRpbWUsIGFuZCBy
ZS11c2luZyB2YWx1ZXMgY2F1c2VzIGNvbGxpc2lvbnMuCkBAIC05Myw2ICsxMDAsNyBAQCBzdGF0
aWMgdW5zaWduZWQgbG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKEZyYW1lKiBmcmFtZSwgaW50IGlu
ZGVudExldmVsKQogICAgIFBDTE9HKCIrLS0tIik7CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCku
ZG9jdW1lbnRMb2FkZXIoKSkgewogICAgICAgICBQQ0xPRygiICAgLVRoZXJlIGlzIG5vIERvY3Vt
ZW50TG9hZGVyIG9iamVjdCIpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tF
WShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0RvY3VtZW50TG9hZGVyS2V5KTsKICAg
ICAgICAgcmV0dXJuIDEgPDwgTm9Eb2N1bWVudExvYWRlcjsKICAgICB9CiAKQEAgLTEwNiw2ICsx
MTQsNyBAQCBzdGF0aWMgdW5zaWduZWQgbG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKEZyYW1lKiBm
cmFtZSwgaW50IGluZGVudExldmVsKQogICAgIHVuc2lnbmVkIHJlamVjdFJlYXNvbnMgPSAwOwog
ICAgIGlmICghZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPm1haW5Eb2N1bWVudEVy
cm9yKCkuaXNOdWxsKCkpIHsKICAgICAgICAgUENMT0coIiAgIC1NYWluIGRvY3VtZW50IGhhcyBh
biBlcnJvciIpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVNYWluRG9jdW1lbnRFcnJvcktleSk7CiAjaWYgIVBMQVRG
T1JNKElPUykKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IE1haW5Eb2N1bWVudEVycm9y
OwogI2Vsc2UKQEAgLTExNyw1NiArMTI2LDcxIEBAIHN0YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNo
ZUZyYW1lRGVjaXNpb24oRnJhbWUqIGZyYW1lLCBpbnQgaW5kZW50TGV2ZWwpCiAgICAgfQogICAg
IGlmIChmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+c3Vic3RpdHV0ZURhdGEoKS5p
c1ZhbGlkKCkgJiYgZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnN1YnN0aXR1dGVE
YXRhKCkuZmFpbGluZ1VSTCgpLmlzRW1wdHkoKSkgewogICAgICAgICBQQ0xPRygiICAgLUZyYW1l
IGlzIGFuIGVycm9yIHBhZ2UiKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9L
RVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSXNFcnJvclBhZ2VLZXkpOwogICAgICAg
ICByZWplY3RSZWFzb25zIHw9IDEgPDwgSXNFcnJvclBhZ2U7CiAgICAgfQogICAgIGlmIChmcmFt
ZS0+bG9hZGVyKCkuc3ViZnJhbWVMb2FkZXIoKS5jb250YWluc1BsdWdpbnMoKSAmJiAhZnJhbWUt
PnBhZ2UoKS0+c2V0dGluZ3MoKS5wYWdlQ2FjaGVTdXBwb3J0c1BsdWdpbnMoKSkgewogICAgICAg
ICBQQ0xPRygiICAgLUZyYW1lIGNvbnRhaW5zIHBsdWdpbnMiKTsKKyAgICAgICAgRkVBVFVSRV9D
T1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzUGx1
Z2lucyk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBIYXNQbHVnaW5zOwogICAgIH0K
ICAgICBpZiAoZnJhbWUtPmRvY3VtZW50KCktPnVybCgpLnByb3RvY29sSXMoImh0dHBzIikKICAg
ICAgICAgJiYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZSgpLmNh
Y2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpCiAgICAgICAgICAgICB8fCBmcmFtZS0+bG9hZGVy
KCkuZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2UoKS5jYWNoZUNvbnRyb2xDb250YWluc05vU3Rv
cmUoKSkpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5y
ZXNwb25zZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9DYWNoZSgpKQorICAgICAgICAgICAgRkVB
VFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJl
SFRUUFNOb0NhY2hlS2V5KTsKKyAgICAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExv
YWRlcigpLT5yZXNwb25zZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9TdG9yZSgpKQorICAgICAg
ICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2Fj
aGVGYWlsdXJlSFRUUFNOb1N0b3JlS2V5KTsKICAgICAgICAgUENMT0coIiAgIC1GcmFtZSBpcyBI
VFRQUywgYW5kIGNhY2hlIGNvbnRyb2wgcHJvaGliaXRzIGNhY2hpbmcgb3Igc3RvcmluZyIpOwog
ICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSXNIdHRwc0FuZENhY2hlQ29udHJvbGxlZDsK
ICAgICB9CiAjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKICAgICBpZiAoRGF0YWJhc2VNYW5hZ2Vy
OjptYW5hZ2VyKCkuaGFzT3BlbkRhdGFiYXNlcyhmcmFtZS0+ZG9jdW1lbnQoKSkpIHsKICAgICAg
ICAgUENMT0coIiAgIC1GcmFtZSBoYXMgb3BlbiBkYXRhYmFzZSBoYW5kbGVzIik7CisgICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFp
bHVyZUhhc09wZW5EYXRhYmFzZXNLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwg
SGFzRGF0YWJhc2VIYW5kbGVzOwogICAgIH0KICNlbmRpZgogI2lmIEVOQUJMRShTSEFSRURfV09S
S0VSUykKICAgICBpZiAoU2hhcmVkV29ya2VyUmVwb3NpdG9yeTo6aGFzU2hhcmVkV29ya2Vycyhm
cmFtZS0+ZG9jdW1lbnQoKSkpIHsKICAgICAgICAgUENMT0coIiAgIC1GcmFtZSBoYXMgYXNzb2Np
YXRlZCBTaGFyZWRXb3JrZXJzIik7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRf
S0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc1NoYXJlZFdvcmtlcnNLZXkpOwog
ICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSGFzU2hhcmVkV29ya2VyczsKICAgICB9CiAj
ZW5kaWYKICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS5oaXN0b3J5KCkuY3VycmVudEl0ZW0oKSkg
ewogICAgICAgICBQQ0xPRygiICAgLU5vIGN1cnJlbnQgaGlzdG9yeSBpdGVtIik7CisgICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFp
bHVyZU5vQ3VycmVudEhpc3RvcnlJdGVtS2V5KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAx
IDw8IE5vSGlzdG9yeUl0ZW07CiAgICAgfQogICAgIGlmIChmcmFtZS0+bG9hZGVyKCkucXVpY2tS
ZWRpcmVjdENvbWluZygpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUXVpY2sgcmVkaXJlY3QgaXMg
Y29taW5nIik7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZVF1aXJrUmVkaXJlY3RDb21pbmdLZXkpOwogICAgICAgICBy
ZWplY3RSZWFzb25zIHw9IDEgPDwgUXVpY2tSZWRpcmVjdENvbWluZzsKICAgICB9CiAgICAgaWYg
KGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5pc0xvYWRpbmdJbkFQSVNlbnNlKCkp
IHsKICAgICAgICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRlciBpcyBzdGlsbCBsb2FkaW5nIGlu
IEFQSSBzZW5zZSIpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0
dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVMb2FkaW5nQVBJU2Vuc2VLZXkpOwogICAgICAgICBy
ZWplY3RSZWFzb25zIHw9IDEgPDwgSXNMb2FkaW5nSW5BUElTZW5zZTsKICAgICB9CiAgICAgaWYg
KGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5pc1N0b3BwaW5nKCkpIHsKICAgICAg
ICAgUENMT0coIiAgIC1Eb2N1bWVudExvYWRlciBpcyBpbiB0aGUgbWlkZGxlIG9mIHN0b3BwaW5n
Iik7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVy
UGFnZUNhY2hlRmFpbHVyZURvY3VtZW50TG9hZGVyU3RvcHBpbmdLZXkpOwogICAgICAgICByZWpl
Y3RSZWFzb25zIHw9IDEgPDwgSXNTdG9wcGluZzsKICAgICB9CiAgICAgaWYgKCFmcmFtZS0+ZG9j
dW1lbnQoKS0+Y2FuU3VzcGVuZEFjdGl2ZURPTU9iamVjdHMoKSkgewotICAgICAgICBQQ0xPRygi
ICAgLVRoZSBkb2N1bWVudCBjYW5ub3Qgc3VzcGVjdCBpdHMgYWN0aXZlIERPTSBPYmplY3RzIik7
CisgICAgICAgIFBDTE9HKCIgICAtVGhlIGRvY3VtZW50IGNhbm5vdCBzdXNwZW5kIGl0cyBhY3Rp
dmUgRE9NIE9iamVjdHMiKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVko
RmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlQ2Fubm90U3VzcGVuZEFjdGl2ZURPTU9iamVj
dHNLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgQ2Fubm90U3VzcGVuZEFjdGl2
ZURPTU9iamVjdHM7CiAgICAgfQogICAgIGlmICghZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPmFwcGxpY2F0aW9uQ2FjaGVIb3N0KCktPmNhbkNhY2hlSW5QYWdlQ2FjaGUoKSkgewog
ICAgICAgICBQQ0xPRygiICAgLVRoZSBEb2N1bWVudExvYWRlciB1c2VzIGFuIGFwcGxpY2F0aW9u
IGNhY2hlIik7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZUFwcGxpY2F0aW9uQ2FjaGVLZXkpOwogICAgICAgICByZWpl
Y3RSZWFzb25zIHw9IDEgPDwgRG9jdW1lbnRMb2FkZXJVc2VzQXBwbGljYXRpb25DYWNoZTsKICAg
ICB9CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuY2xpZW50KCkuY2FuQ2FjaGVQYWdlKCkpIHsK
ICAgICAgICAgUENMT0coIiAgIC1UaGUgY2xpZW50IHNheXMgdGhpcyBmcmFtZSBjYW5ub3QgYmUg
Y2FjaGVkIik7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZURlbmllZEJ5Q2xpZW50S2V5KTsKICAgICAgICAgcmVqZWN0
UmVhc29ucyB8PSAxIDw8IENsaWVudERlbmllc0NhY2hpbmc7CiAgICAgfQogCkBAIC0yMTgsMzgg
KzI0Miw0OCBAQCBzdGF0aWMgdm9pZCBsb2dDYW5DYWNoZVBhZ2VEZWNpc2lvbihQYWdlKiBwYWdl
KQogI2lmIEVOQUJMRShERVZJQ0VfT1JJRU5UQVRJT04pICYmICFQTEFURk9STShJT1MpCiAgICAg
aWYgKERldmljZU1vdGlvbkNvbnRyb2xsZXI6OmlzQWN0aXZlQXQocGFnZSkpIHsKICAgICAgICAg
UENMT0coIiAgIC1QYWdlIGlzIHVzaW5nIERldmljZU1vdGlvbiIpOworICAgICAgICBGRUFUVVJF
X0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVEZXZp
Y2VNb3Rpb25LZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgVXNlc0RldmljZU1v
dGlvbjsKICAgICB9CiAgICAgaWYgKERldmljZU9yaWVudGF0aW9uQ29udHJvbGxlcjo6aXNBY3Rp
dmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2aWNlT3Jp
ZW50YXRpb24iKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVy
ZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRGV2aWNlT3JpZW50YXRpb25LZXkpOwogICAgICAgICBy
ZWplY3RSZWFzb25zIHw9IDEgPDwgVXNlc0RldmljZU9yaWVudGF0aW9uOwogICAgIH0KICNlbmRp
ZgogI2lmIEVOQUJMRShQUk9YSU1JVFlfRVZFTlRTKQogICAgIGlmIChEZXZpY2VQcm94aW1pdHlD
b250cm9sbGVyOjppc0FjdGl2ZUF0KHBhZ2UpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtUGFnZSBp
cyB1c2luZyBEZXZpY2VQcm94aW1pdHkiKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JF
TUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRGV2aWNlUHJveGltaXR5S2V5
KTsKICAgICAgICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IFVzZXNEZXZpY2VNb3Rpb247CiAgICAg
fQogI2VuZGlmCiAgICAgRnJhbWVMb2FkVHlwZSBsb2FkVHlwZSA9IHBhZ2UtPm1haW5GcmFtZSgp
LmxvYWRlcigpLmxvYWRUeXBlKCk7CiAgICAgaWYgKGxvYWRUeXBlID09IEZyYW1lTG9hZFR5cGU6
OlJlbG9hZCkgewogICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIik7Cisg
ICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNh
Y2hlRmFpbHVyZVJlbG9hZEtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc1Jl
bG9hZDsKICAgICB9CiAgICAgaWYgKGxvYWRUeXBlID09IEZyYW1lTG9hZFR5cGU6OlJlbG9hZEZy
b21PcmlnaW4pIHsKICAgICAgICAgUENMT0coIiAgIC1Mb2FkIHR5cGUgaXM6IFJlbG9hZCBmcm9t
IG9yaWdpbiIpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVSZWxvYWRGcm9tT3JpZ2luS2V5KTsKICAgICAgICAgcmVq
ZWN0UmVhc29ucyB8PSAxIDw8IElzUmVsb2FkRnJvbU9yaWdpbjsKICAgICB9CiAgICAgaWYgKGxv
YWRUeXBlID09IEZyYW1lTG9hZFR5cGU6OlNhbWUpIHsKICAgICAgICAgUENMT0coIiAgIC1Mb2Fk
IHR5cGUgaXM6IFNhbWUiKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVko
RmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlU2FtZUxvYWRLZXkpOwogICAgICAgICByZWpl
Y3RSZWFzb25zIHw9IDEgPDwgSXNTYW1lTG9hZDsKICAgICB9CiAgICAgCi0gICAgUENMT0cocmVq
ZWN0UmVhc29ucyA/ICIgUGFnZSBDQU5OT1QgYmUgY2FjaGVkXG4tLS0tLS0tLSIgOiAiIFBhZ2Ug
Q0FOIGJlIGNhY2hlZFxuLS0tLS0tLS0iKTsKKyAgICBpZiAocmVqZWN0UmVhc29ucykgeworICAg
ICAgICBQQ0xPRygiIFBhZ2UgQ0FOTk9UIGJlIGNhY2hlZFxuLS0tLS0tLS0iKTsKKyAgICAgICAg
RkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWls
dXJlS2V5KTsKKyAgICB9IGVsc2UgeworICAgICAgICBQQ0xPRygiIFBhZ2UgQ0FOIGJlIGNhY2hl
ZFxuLS0tLS0tLS0iKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVh
dHVyZUNvdW50ZXJQYWdlQ2FjaGVTdWNjZXNzS2V5KTsKKyAgICB9CiB9CiAKLSNlbmRpZiAvLyAh
ZGVmaW5lZChOREVCVUcpCi0KIFBhZ2VDYWNoZSogcGFnZUNhY2hlKCkKIHsKICAgICBzdGF0aWMg
UGFnZUNhY2hlKiBzdGF0aWNQYWdlQ2FjaGUgPSBuZXcgUGFnZUNhY2hlOwpAQCAtMzA4LDkgKzM0
Miw3IEBAIGJvb2wgUGFnZUNhY2hlOjpjYW5DYWNoZShQYWdlKiBwYWdlKSBjb25zdAogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAotI2lmICFkZWZpbmVkKE5ERUJV
RykKICAgICBsb2dDYW5DYWNoZVBhZ2VEZWNpc2lvbihwYWdlKTsKLSNlbmRpZgogCiAgICAgaWYg
KG1lbW9yeVByZXNzdXJlSGFuZGxlcigpLmlzVW5kZXJNZW1vcnlQcmVzc3VyZSgpKQogICAgICAg
ICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GZWF0
dXJlQ291bnRlcktleXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVy
S2V5cy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjFiYWUzZTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9GZWF0dXJlQ291bnRlcktleXMu
aApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5E
IEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUg
Rk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAq
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIEZlYXR1cmVDb3VudGVyS2V5c19oCisj
ZGVmaW5lIEZlYXR1cmVDb3VudGVyS2V5c19oCisKKyNpbmNsdWRlIDx3dGYvRmVhdHVyZUNvdW50
ZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCisvLyBQYWdlIGNhY2hlLgorc3RhdGljIGNv
bnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTm9Eb2N1bWVudExvYWRlcktl
eVtdID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUubm9Eb2N1bWVudExvYWRl
ciI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVNYWlu
RG9jdW1lbnRFcnJvcktleVtdID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUu
bWFpbkRvY3VtZW50RXJyb3IiOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdl
Q2FjaGVGYWlsdXJlSXNFcnJvclBhZ2VLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNo
ZS5mYWlsdXJlLmlzRXJyb3JQYWdlIjsKK3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVy
UGFnZUNhY2hlRmFpbHVyZUhhc1BsdWdpbnNbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNo
ZS5mYWlsdXJlLmhhc1BsdWdpbnMiOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQ
YWdlQ2FjaGVGYWlsdXJlSFRUUFNOb0NhY2hlS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5wYWdl
Q2FjaGUuZmFpbHVyZS5odHRwc05vQ2FjaGUiOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNv
dW50ZXJQYWdlQ2FjaGVGYWlsdXJlSFRUUFNOb1N0b3JlS2V5W10gPSAiY29tLmFwcGxlLldlYktp
dC5wYWdlQ2FjaGUuZmFpbHVyZS5odHRwc05vU3RvcmUiOworI2lmIEVOQUJMRShTUUxfREFUQUJB
U0UpCitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIYXNP
cGVuRGF0YWJhc2VzS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5o
YXNPcGVuRGF0YWJhc2VzIjsKKyNlbmRpZgorI2lmIEVOQUJMRShTSEFSRURfV09SS0VSUykKK3N0
YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc1NoYXJlZFdv
cmtlcnNLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJlLmhhc1NoYXJl
ZFdvcmtlcnMiOworI2VuZGlmCitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VD
YWNoZUZhaWx1cmVOb0N1cnJlbnRIaXN0b3J5SXRlbUtleVtdID0gImNvbS5hcHBsZS5XZWJLaXQu
cGFnZUNhY2hlLmZhaWx1cmUubm9DdXJyZW50SGlzdG9yeUl0ZW0iOworc3RhdGljIGNvbnN0IGNo
YXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUXVpcmtSZWRpcmVjdENvbWluZ0tleVtd
ID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUucXVpcmtSZWRpcmVjdENvbWlu
ZyI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVMb2Fk
aW5nQVBJU2Vuc2VLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJlLmxv
YWRpbmdBUElTZW5zZSI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNo
ZUZhaWx1cmVEb2N1bWVudExvYWRlclN0b3BwaW5nS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5w
YWdlQ2FjaGUuZmFpbHVyZS5kb2N1bWVudExvYWRlclN0b3BwaW5nIjsKK3N0YXRpYyBjb25zdCBj
aGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUNhbm5vdFN1c3BlbmRBY3RpdmVET01P
YmplY3RzS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5jYW5ub3RT
dXNwZW5kQWN0aXZlRE9NT2JqZWN0cyI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRl
clBhZ2VDYWNoZUZhaWx1cmVBcHBsaWNhdGlvbkNhY2hlS2V5W10gPSAiY29tLmFwcGxlLldlYktp
dC5wYWdlQ2FjaGUuZmFpbHVyZS5hcHBsaWNhdGlvbkNhY2hlIjsKK3N0YXRpYyBjb25zdCBjaGFy
IEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURlbmllZEJ5Q2xpZW50S2V5W10gPSAiY29t
LmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5kZW5pZWRCeUNsaWVudCI7CisjaWYgRU5B
QkxFKERFVklDRV9PUklFTlRBVElPTikKK3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVy
UGFnZUNhY2hlRmFpbHVyZURldmljZU1vdGlvbktleVtdID0gImNvbS5hcHBsZS5XZWJLaXQucGFn
ZUNhY2hlLmZhaWx1cmUuZGV2aWNlTW90aW9uIjsKK3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVD
b3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU9yaWVudGF0aW9uS2V5W10gPSAiY29tLmFwcGxl
LldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5kZXZpY2VPcmllbnRhdGlvbiI7CisjZW5kaWYKKyNp
ZiBFTkFCTEUoUFJPWElNSVRZX0VWRU5UUykKK3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3Vu
dGVyUGFnZUNhY2hlRmFpbHVyZURldmljZVByb3hpbWl0eUtleVtdID0gImNvbS5hcHBsZS5XZWJL
aXQucGFnZUNhY2hlLmZhaWx1cmUuZGV2aWNlUHJveGltaXR5IjsKKyNlbmRpZgorc3RhdGljIGNv
bnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUmVsb2FkS2V5W10gPSAiY29t
LmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5yZWxvYWQiOworc3RhdGljIGNvbnN0IGNo
YXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUmVsb2FkRnJvbU9yaWdpbktleVtdID0g
ImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUucmVsb2FkRnJvbU9yaWdpbiI7Citz
dGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVTYW1lTG9hZEtl
eVtdID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUuc2FtZUxvYWQiOworc3Rh
dGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlS2V5W10gPSAiY29t
LmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZSI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0
dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VD
YWNoZS5zdWNjZXNzIjsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRmVh
dHVyZUNvdW50ZXJLZXlzX2gKKwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243320</attachid>
            <date>2014-12-15 15:33:08 -0800</date>
            <delta_ts>2014-12-16 12:11:21 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-139652-20141215153356.patch</filename>
            <type>text/plain</type>
            <size>32035</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvQ2hhbmdlTG9nIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwppbmRleCBj
M2ZmZjk2ZGU5OGVmZTcxNDkyYjY5ZmI2YjMzMmNhODE0NWM1MGM4Li43NzkxZjYxYjVhOWFjMzM4
NGIyYjMwMDczNDQzMzI3OGNkNWUyZGZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNiBAQAorMjAxNC0xMi0xNSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgor
CisgICAgICAgIFtpT1NdIEFkZCBmZWF0dXJlIGNvdW50aW5nIHN1cHBvcnQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzOTY1MgorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vMTkyNTU2OTA+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgTGluayBhZ2FpbnN0IEFwcFN1cHBvcnQgZnJhbWV3b3JrIG9uIGlPUyBh
cyB3ZSBuZWVkIGl0IHRvIGltcGxlbWVudAorICAgICAgICB0aGUgbmV3IEZlYXR1cmVDb3VudGVy
IEFQSSBpbiBXVEYuCisKKyAgICAgICAgKiBDb25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54
Y2NvbmZpZzoKKwogMjAxNC0xMi0xNCAgRmlsaXAgUGl6bG8gIDxmcGl6bG9AYXBwbGUuY29tPgog
CiAgICAgICAgIFB1dExvY2FsU2lua2luZ1BoYXNlIGhhcyBhbiBpbnZhbGlkIGFzc2VydGlvbiBh
Ym91dCBpbmNvbWluZyB2YWx1ZXMsIGJlY2F1c2UgYm90aCBsaXZlbmVzcyBhbmQgZGVmZXJyYWwg
YW5hbHlzZXMgYXJlIGNvbnNlcnZhdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV1RGL0NoYW5nZUxvZwppbmRleCAxOGQyYTVjMDY5NzcwOTZhNjg4NGJmODkw
YzVkNzM2NjI1Y2Q2ZWZiLi40ZTU3NGM2OWRjZmYzMDg3N2I3MGU4YzJhOGRkYTVlODNhMzBhYmFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDE0LTEyLTE1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBh
cHBsZS5jb20+CisKKyAgICAgICAgW2lPU10gQWRkIGZlYXR1cmUgY291bnRpbmcgc3VwcG9ydAor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM5NjUyCisg
ICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xOTI1NTY5MD4KKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSBGZWF0dXJlQ291bnRlciBBUEkgZm9yIHRv
IGxvZyAvIGNvdW50IHdoZW4gYSBmZWF0dXJlCisgICAgICAgIGlzIHVzZWQuIEZvciBub3csIHRo
aXMgaXMgb25seSBpbXBsZW1lbnRhdGVkIG9uIGlPUy4KKworICAgICAgICAqIFdURi52Y3hwcm9q
L1dURi52Y3hwcm9qOgorICAgICAgICAqIFdURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgor
ICAgICAgICAqIHd0Zi9DTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiB3dGYvRmVhdHVyZUNvdW50
ZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdURjo6aW5jcmVtZW50RmVhdHVyZUNvdW50ZXJLZXkp
OgorICAgICAgICAoV1RGOjpzZXRGZWF0dXJlQ291bnRlcktleSk6CisgICAgICAgICogd3RmL0Zl
YXR1cmVDb3VudGVyLmg6IEFkZGVkLgorICAgICAgICAqIHd0Zi9pb3MvRmVhdHVyZUNvdW50ZXIu
bW06IEFkZGVkLgorICAgICAgICAoV1RGOjppbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleSk6Cisg
ICAgICAgIChXVEY6OnNldEZlYXR1cmVDb3VudGVyS2V5KToKKwogMjAxNC0xMi0xNCAgQW5kcmVh
cyBLbGluZyAgPGFrbGluZ0BhcHBsZS5jb20+CiAKICAgICAgICAgTWlub3IgZm9sbG93LXVwIHR3
ZWFrcyBzdWdnZXN0ZWQgYnkgRGFyaW4gb24gYnVnIDEzOTU4Ny4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAyMWY1
MjQyM2IyNDA3YzkwYWE1N2I2Y2ZlNzE3Yjc4NmNjOGFkMDU2Li4xMjBlYzdmZWM5ZjZiNmRjYzU4
OThiOGRjMzY0MGM3ZjBiMjNkMGQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTQt
MTItMTUgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBbaU9TXSBB
ZGQgZmVhdHVyZSBjb3VudGluZyBzdXBwb3J0CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xMzk2NTIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzE5MjU1
NjkwPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFVz
ZSBGZWF0dXJlQ291bnRlciBBUEkgdG8gbG9nIFBhZ2VDYWNoZSBmYWlsdXJlIHJlYXNvbnMKKyAg
ICAgICAgYXMgd2VsbCBhcyBpdHMgc3VjY2VzcyByYXRlLgorCisgICAgICAgIE5vIG5ldyB0ZXN0
cywgbm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogaGlzdG9yeS9QYWdlQ2FjaGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6bG9nQ2FuQ2FjaGVGcmFtZURlY2lzaW9uKToKKyAgICAgICAg
KFdlYkNvcmU6OmxvZ0NhbkNhY2hlUGFnZURlY2lzaW9uKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
Z2VDYWNoZTo6Y2FuQ2FjaGUpOgorICAgICAgICAqIHBsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5
cy5oOiBBZGRlZC4KKwogMjAxNC0xMi0xNSAgQmFydGxvbWllaiBHYWpkYSAgPGIuZ2FqZGFAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgW01TRV0gUHJldmVudCBTb3VyY2VCdWZmZXIgbW9uaXRvcmlu
ZyBhbGdvcml0aG0gZnJvbSB0cmlnZ2VyaW5nIGEgSEFWRV9OT1RISU5HIHRvIEhBVkVfTUVUQURB
VEEgdHJhbnNpdGlvbi4KZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9Db25maWd1
cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9D
b25maWd1cmF0aW9ucy9KYXZhU2NyaXB0Q29yZS54Y2NvbmZpZwppbmRleCAzMTAwOWExY2MyNGQz
OWNiOTkzYjhkY2VlMzhkMjZlNTkyMDJlNzRiLi4wMzdiZDQ5OGU4NTg0NGFkMmM1NTI4MzY5Mzgy
NmJiNTRhNWY1OTM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvQ29uZmlndXJh
dGlvbnMvSmF2YVNjcmlwdENvcmUueGNjb25maWcKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L0NvbmZpZ3VyYXRpb25zL0phdmFTY3JpcHRDb3JlLnhjY29uZmlnCkBAIC0zNyw3ICszNyw3IEBA
IEpTVkFMVUVfTU9ERUxfeDg2XzY0ID0gNjQ7CiBPVEhFUl9MREZMQUdTX0hJREVfU1lNQk9MUyA9
IC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBv
cnRlZF9zeW1ib2wgLVdsLF9fWlRJU3Q5ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wg
LVdsLF9fWlRTU3Q5YmFkX2FsbG9jIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWlRTU3Q5
ZXhjZXB0aW9uIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWmRsUHZTXyAtV2wsLXVuZXhw
b3J0ZWRfc3ltYm9sIC1XbCxfX1pud21QdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pO
S1N0M19fMThmdW5jdGlvbklGdnZFRWNsRXYgLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19a
TlN0M19fMThmdW5jdGlvbklGdnZFRUMxRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAtV2ws
X19aTlN0M19fMThmdW5jdGlvbklGdnZFRUMyRU9TMl8gLVdsLC11bmV4cG9ydGVkX3N5bWJvbCAt
V2wsX19aTktTdDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFf
MTBSZWdpc3RlcklERUVFY2xFUzNfUzVfIC1XbCwtdW5leHBvcnRlZF9zeW1ib2wgLVdsLF9fWk5T
dDNfXzE4ZnVuY3Rpb25JRnZSTjNKU0MxN0J5dGVjb2RlR2VuZXJhdG9yRVBOUzFfMTBSZWdpc3Rl
cklERUVFRDFFdiAtV2wsLXVuZXhwb3J0ZWRfc3ltYm9sIC1XbCxfX1pOU3QzX18xOGZ1bmN0aW9u
SUZ2Uk4zSlNDMTdCeXRlY29kZUdlbmVyYXRvckVQTlMxXzEwUmVnaXN0ZXJJREVFRUQyRXYgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQxRXYgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aTlN0M19fMThmdW5jdGlvbklGdnZFRUQyRXYgLVds
LC11bmV4cG9ydGVkX3N5bWJvbCAtV2wsX19aVFZOU3QzX18xMTdiYWRfZnVuY3Rpb25fY2FsbEUg
LVdsLC1hbGxfbG9hZDsKIAogT1RIRVJfTERGTEFHU19CQVNFID0gLWxvYmpjIC1XbCwtWSwzICQo
T1RIRVJfTERGTEFHU19ISURFX1NZTUJPTFMpOwotT1RIRVJfTERGTEFHU1tzZGs9aXBob25lKl0g
PSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX0JBU0UpOworT1RIRVJfTERGTEFHU1tzZGs9
aXBob25lKl0gPSAkKGluaGVyaXRlZCkgJChPVEhFUl9MREZMQUdTX0JBU0UpIC1mcmFtZXdvcmsg
QXBwU3VwcG9ydDsKIE9USEVSX0xERkxBR1Nbc2RrPW1hY29zeCpdID0gJChpbmhlcml0ZWQpICQo
T1RIRVJfTERGTEFHU19CQVNFKSAtc3ViX2xpYnJhcnkgbGlib2JqYyAtZnJhbWV3b3JrIENvcmVT
ZXJ2aWNlczsKIAogU0VDVE9SREVSX0ZMQUdTW3Nkaz1pcGhvbmVvcypdID0gJChTRUNUT1JERVJf
RkxBR1NfaW9zXyQoQ09ORklHVVJBVElPTikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9XVEYu
dmN4cHJvai9XVEYudmN4cHJvaiBiL1NvdXJjZS9XVEYvV1RGLnZjeHByb2ovV1RGLnZjeHByb2oK
aW5kZXggZWM3MzMwODhlMzkxY2JhNTRkNmEwZjk0MTM4OTYyOGE2ZGE3NDg2MC4uMmFjZmMzZTQx
ZmQ1Yzk4MWY5Yzk2MWUzNTA3NTA0ZmE4MzI0ZDdkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dURi9X
VEYudmN4cHJvai9XVEYudmN4cHJvagorKysgYi9Tb3VyY2UvV1RGL1dURi52Y3hwcm9qL1dURi52
Y3hwcm9qCkBAIC03Miw2ICs3Miw3IEBACiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZc
ZHRvYVxzdHJ0b2QuY2MiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcRmFzdEJp
dFZlY3Rvci5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcRmFzdE1hbGxv
Yy5jcHAiIC8+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcRmVhdHVyZUNvdW50ZXIu
Y3BwIiAvPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iLi5cd3RmXEZpbGVQcmludFN0cmVhbS5j
cHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIuLlx3dGZcRnVuY3Rpb25EaXNwYXRjaGVy
LmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9Ii4uXHd0Zlxnb2JqZWN0XEdsaWJVdGls
aXRpZXMuY3BwIj4KQEAgLTE5Nyw2ICsxOTgsNyBAQAogICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0i
Li5cd3RmXGR0b2FcdXRpbHMuaCIgLz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxG
YXN0Qml0VmVjdG9yLmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRmFzdE1h
bGxvYy5oIiAvPgorICAgIDxDbEluY2x1ZGUgSW5jbHVkZT0iLi5cd3RmXEZlYXR1cmVDb3VudGVy
LmgiIC8+CiAgICAgPENsSW5jbHVkZSBJbmNsdWRlPSIuLlx3dGZcRmVhdHVyZURlZmluZXMuaCIg
Lz4KICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxGaWxlUHJpbnRTdHJlYW0uaCIgLz4K
ICAgICA8Q2xJbmNsdWRlIEluY2x1ZGU9Ii4uXHd0ZlxGbGlwQnl0ZXMuaCIgLz4KQEAgLTc3NSw0
ICs3NzcsNCBAQAogICA8SW1wb3J0IFByb2plY3Q9IiQoVkNUYXJnZXRzUGF0aClcTWljcm9zb2Z0
LkNwcC50YXJnZXRzIiAvPgogICA8SW1wb3J0R3JvdXAgTGFiZWw9IkV4dGVuc2lvblRhcmdldHMi
PgogICA8L0ltcG9ydEdyb3VwPgotPC9Qcm9qZWN0PgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZp
bGUKKzwvUHJvamVjdD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvV1RGLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV1RGL1dURi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGVhN2IzMjMzZmJkZWNjZDM5ZjA2NzUzZDU5NjNjMDE1ZDI2MWIwYmIuLjA5OGQxZDJkZTc1
YWJlODNhODFjZGNhN2Y5MmRjNGJmMTk4NjkzMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvV1RG
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dURi9XVEYueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagpAQCAtNzMsNiArNzMsOSBAQAogCQkyQ0RFRDBFRjE4MTE1QzM4MDA0
REJBNzAgLyogUnVuTG9vcENGLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDJDREVEMEVFMTgxMTVDMzgwMDREQkE3MCAvKiBSdW5Mb29wQ0YuY3BwICov
OyB9OwogCQkyQ0RFRDBGMzE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAyQ0RFRDBGMTE4MTE1Qzg1MDA0
REJBNzAgLyogUnVuTG9vcC5jcHAgKi87IH07CiAJCTJDREVEMEY0MTgxMTVDODUwMDREQkE3MCAv
KiBSdW5Mb29wLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSAyQ0RFRDBGMjE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5oICovOyB9OworCQk0NjMxMTE4
NDFBM0Y3MjlBMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQ2MzExMTgzMUEzRjcyOUEwMEU5MjVBMyAvKiBG
ZWF0dXJlQ291bnRlci5oICovOyB9OworCQk0NjMxMTE4NjFBM0Y3MkI4MDBFOTI1QTMgLyogRmVh
dHVyZUNvdW50ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0NjMxMTE4NTFBM0Y3MkI4MDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIubW0gKi87IH07
CisJCTQ2MzExMTg4MUEzRjg5OTEwMEU5MjVBMyAvKiBGZWF0dXJlQ291bnRlci5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0NjMxMTE4NzFBM0Y4OTkx
MDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuY3BwICovOyB9OwogCQk3Q0JCQTA3NDE5QkI3RkRD
MDBCQkYwMjUgLyogT1NPYmplY3RQdHIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDdDQkJBMDczMTlCQjdGREMwMEJCRjAyNSAvKiBPU09iamVjdFB0ci5o
ICovOyB9OwogCQk3Q0REN0ZGODE4NkQyOTFFMDA3NDMzQ0QgLyogSXRlcmF0b3JBZGFwdG9ycy5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gN0NERDdGRjcx
ODZEMjkxRTAwNzQzM0NEIC8qIEl0ZXJhdG9yQWRhcHRvcnMuaCAqLzsgfTsKIAkJN0NERDdGRkEx
ODZEMkE1NDAwNzQzM0NEIC8qIEl0ZXJhdG9yUmFuZ2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDdDREQ3RkY5MTg2RDJBNTQwMDc0MzNDRCAvKiBJdGVy
YXRvclJhbmdlLmggKi87IH07CkBAIC0zNjEsNiArMzY0LDkgQEAKIAkJMkNERUQwRUUxODExNUMz
ODAwNERCQTcwIC8qIFJ1bkxvb3BDRi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBSdW5Mb29wQ0YuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkyQ0RF
RDBGMTE4MTE1Qzg1MDA0REJBNzAgLyogUnVuTG9vcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSdW5Mb29wLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJMkNERUQwRjIxODExNUM4NTAwNERCQTcwIC8qIFJ1bkxvb3AuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gUnVuTG9vcC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk0NjMxMTE4MzFBM0Y3MjlBMDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmVhdHVyZUNvdW50ZXIuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDYzMTExODUxQTNGNzJCODAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVy
Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gRmVhdHVyZUNvdW50
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQ2MzExMTg3MUEzRjg5OTEwMEU5
MjVBMyAvKiBGZWF0dXJlQ291bnRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBGZWF0dXJlQ291bnRlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVEMjQ3QjYyMTQ2ODlCODYwMEU3OEI3NiAvKiBsaWJXVEYuYSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBleHBsaWNpdEZpbGVUeXBlID0gYXJjaGl2ZS5hcjsgaW5jbHVkZUluSW5kZXgg
PSAwOyBwYXRoID0gbGliV1RGLmE7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07
CiAJCTVEMjQ3QjZFMTQ2ODlDNDcwMEU3OEI3NiAvKiBCYXNlLnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0
aCA9IEJhc2UueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEMjQ3Qjcw
MTQ2ODlDNDcwMEU3OEI3NiAvKiBEZWJ1Z1JlbGVhc2UueGNjb25maWcgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0g
RGVidWdSZWxlYXNlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtNjE2
LDYgKzYyMiw3IEBACiAJCTFGQTQ3Qzg3MTUyNTAyREEwMDU2OEQxQiAvKiBpb3MgKi8gPSB7CiAJ
CQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAorCQkJCTQ2MzExMTg1MUEzRjcyQjgw
MEU5MjVBMyAvKiBGZWF0dXJlQ291bnRlci5tbSAqLywKIAkJCQkxRkE0N0M4ODE1MjUwMkRBMDA1
NjhEMUIgLyogV2ViQ29yZVRocmVhZC5jcHAgKi8sCiAJCQkJMUZBNDdDODkxNTI1MDJEQTAwNTY4
RDFCIC8qIFdlYkNvcmVUaHJlYWQuaCAqLywKIAkJCSk7CkBAIC03NTQsNiArNzYxLDggQEAKIAkJ
CQkwRkQ4MUFDNDE1NEZCMjJFMDA5ODNFNzIgLyogRmFzdEJpdFZlY3Rvci5oICovLAogCQkJCUE4
QTQ3MkExMTUxQTgyNUEwMDQxMjNGRiAvKiBGYXN0TWFsbG9jLmNwcCAqLywKIAkJCQlBOEE0NzJB
MjE1MUE4MjVBMDA0MTIzRkYgLyogRmFzdE1hbGxvYy5oICovLAorCQkJCTQ2MzExMTg3MUEzRjg5
OTEwMEU5MjVBMyAvKiBGZWF0dXJlQ291bnRlci5jcHAgKi8sCisJCQkJNDYzMTExODMxQTNGNzI5
QTAwRTkyNUEzIC8qIEZlYXR1cmVDb3VudGVyLmggKi8sCiAJCQkJQjM4RkQ3QkMxNjg5NTNFODAw
NjVDOTY5IC8qIEZlYXR1cmVEZWZpbmVzLmggKi8sCiAJCQkJMEY5RDMzNUIxNjVEQkE3MzAwNUFE
Mzg3IC8qIEZpbGVQcmludFN0cmVhbS5jcHAgKi8sCiAJCQkJMEY5RDMzNUMxNjVEQkE3MzAwNUFE
Mzg3IC8qIEZpbGVQcmludFN0cmVhbS5oICovLApAQCAtMTE3OCw2ICsxMTg3LDcgQEAKIAkJCQkx
QUZERTY0ODE5NTIwMUMzMDBDNDhGRkEgLyogVHlwZUNhc3RzQ0YuaCBpbiBIZWFkZXJzICovLAog
CQkJCUE4QTQ3NDIzMTUxQTgyNUIwMDQxMjNGRiAvKiBTaW1wbGVTdGF0cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQThBNDc0MjQxNTFBODI1QjAwNDEyM0ZGIC8qIFNpbmdseUxpbmtlZExpc3QuaCBp
biBIZWFkZXJzICovLAorCQkJCTQ2MzExMTg0MUEzRjcyOUEwMEU5MjVBMyAvKiBGZWF0dXJlQ291
bnRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTc0ODc0NTMxN0EwQkRBRTAwRkEwNENCIC8qIFNp
eENoYXJhY3Rlckhhc2guaCBpbiBIZWFkZXJzICovLAogCQkJCUE4QTQ3NDI2MTUxQTgyNUIwMDQx
MjNGRiAvKiBTcGVjdHJ1bS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQThBNDc0MjgxNTFBODI1QjAw
NDEyM0ZGIC8qIFN0YWNrQm91bmRzLmggaW4gSGVhZGVycyAqLywKQEAgLTEzNDUsNiArMTM1NSw3
IEBACiAJCQkJODZGNDZGNjAxQTI4NDBFRTAwQ0NCRjIyIC8qIFJlZkNvdW50ZXIuY3BwIGluIFNv
dXJjZXMgKi8sCiAJCQkJQThBNDczOUUxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGFMb2cuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQThBNDczQTAxNTFBODI1QjAwNDEyM0ZGIC8qIERhdGVNYXRoLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTQ2MzExMTg2MUEzRjcyQjgwMEU5MjVBMyAvKiBGZWF0dXJl
Q291bnRlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0EyMTUxQTgyNUIwMDQxMjNGRiAv
KiBEZWNpbWFsTnVtYmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4QTQ3M0FFMTUxQTgyNUIw
MDQxMjNGRiAvKiBkaXktZnAuY2MgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNCMDE1MUE4MjVC
MDA0MTIzRkYgLyogZG91YmxlLWNvbnZlcnNpb24uY2MgaW4gU291cmNlcyAqLywKQEAgLTEzNjUs
NiArMTM3Niw3IEBACiAJCQkJQ0Q1NDk3QUMxNTg1N0QwMzAwQjVCQzMwIC8qIE1lZGlhVGltZS5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNFQzE1MUE4MjVCMDA0MTIzRkYgLyogTWV0YUFs
bG9jYXRvci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlBOEE0NzNGNDE1MUE4MjVCMDA0MTIzRkYg
LyogTnVtYmVyT2ZDb3Jlcy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0NjMxMTE4ODFBM0Y4OTkx
MDBFOTI1QTMgLyogRmVhdHVyZUNvdW50ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQThBNDcz
RjcxNTFBODI1QjAwNDEyM0ZGIC8qIE9TQWxsb2NhdG9yUG9zaXguY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJOTNGMTk5M0UxOUQ3OTU4RDAwQzIzOTBCIC8qIFN0cmluZ1ZpZXcuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQThBNDczRjkxNTFBODI1QjAwNDEyM0ZGIC8qIE9TUmFuZG9tU291cmNlLmNw
cCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvQ01ha2VMaXN0cy50
eHQgYi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAppbmRleCBiOWU2NjkxNmRmMGEyYjVh
ZTNlOGQ5ODE1ZGUzYzBhOWY4NzE0MmRlLi5hOTdmMzhhNDE3ZjcwZGVhYzlhNzRjNjFkYzhiYzM0
OGUyMDQ1Y2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dAorKysg
Yi9Tb3VyY2UvV1RGL3d0Zi9DTWFrZUxpc3RzLnR4dApAQCAtMjQsNiArMjQsNyBAQCBzZXQoV1RG
X0hFQURFUlMKICAgICBEaXNhbGxvd0NUeXBlLmgKICAgICBEb3VibHlMaW5rZWRMaXN0LmgKICAg
ICBGYXN0TWFsbG9jLmgKKyAgICBGZWF0dXJlQ291bnRlci5oCiAgICAgRmVhdHVyZURlZmluZXMu
aAogICAgIEZpbGVQcmludFN0cmVhbS5oCiAgICAgRmxpcEJ5dGVzLmgKQEAgLTE1OSw2ICsxNjAs
NyBAQCBzZXQoV1RGX1NPVVJDRVMKICAgICBEZWNpbWFsTnVtYmVyLmNwcAogICAgIEZhc3RCaXRW
ZWN0b3IuY3BwCiAgICAgRmFzdE1hbGxvYy5jcHAKKyAgICBGZWF0dXJlQ291bnRlci5jcHAKICAg
ICBGaWxlUHJpbnRTdHJlYW0uY3BwCiAgICAgRnVuY3Rpb25EaXNwYXRjaGVyLmNwcAogICAgIEdy
ZWdvcmlhbkRhdGVUaW1lLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93dGYvRmVhdHVyZUNv
dW50ZXIuY3BwIGIvU291cmNlL1dURi93dGYvRmVhdHVyZUNvdW50ZXIuY3BwCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFmZTYyZmY4M2JmNDY3NzRjZjA5M2VkN2U2YThlNzE4YTlmYmQ1YjAKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJlQ291bnRlci5jcHAKQEAgLTAsMCArMSw0NiBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4g
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQK
KyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIkZlYXR1cmVDb3VudGVyLmgiCisK
K25hbWVzcGFjZSBXVEYgeworCisjaWYgIVBMQVRGT1JNKElPUykKKwordm9pZCBpbmNyZW1lbnRG
ZWF0dXJlQ291bnRlcktleShjb25zdCBjaGFyKiBjb25zdCBrZXkpCit7CisgICAgVU5VU0VEX1BB
UkFNKGtleSk7Cit9CisKK3ZvaWQgc2V0RmVhdHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciogY29u
c3Qga2V5LCBpbnQ2NF90IHZhbHVlKQoreworICAgIFVOVVNFRF9QQVJBTShrZXkpOworICAgIFVO
VVNFRF9QQVJBTSh2YWx1ZSk7Cit9CisKKyNlbmRpZgorCit9IC8vIG5hbWVzcGFjZSBXVEYKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL0ZlYXR1cmVDb3VudGVyLmggYi9Tb3VyY2UvV1RGL3d0
Zi9GZWF0dXJlQ291bnRlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBhYTVlZWI2Mjc4MDBjMjA0MzRiODI3Njlh
MGZhMGFlMzAwN2EzNmEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9GZWF0dXJl
Q291bnRlci5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBw
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFT
IElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpZm5kZWYgRmVhdHVyZUNvdW50ZXJf
aAorI2RlZmluZSBGZWF0dXJlQ291bnRlcl9oCisKK25hbWVzcGFjZSBXVEYgeworCitXVEZfRVhQ
T1JUX1BSSVZBVEUgdm9pZCBpbmNyZW1lbnRGZWF0dXJlQ291bnRlcktleShjb25zdCBjaGFyKiBj
b25zdCBrZXkpOworV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0RmVhdHVyZUNvdW50ZXJLZXko
Y29uc3QgY2hhciogY29uc3Qga2V5LCBpbnQ2NF90IHZhbHVlKTsKKworI2RlZmluZSBGRUFUVVJF
X0NPVU5URVJfSU5DUkVNRU5UX0tFWShrZXkpICAgV1RGOjppbmNyZW1lbnRGZWF0dXJlQ291bnRl
cktleShrZXkpCisjZGVmaW5lIEZFQVRVUkVfQ09VTlRFUl9TRVRfS0VZKGtleSwgdmFsdWUpICBX
VEY6OnNldEZlYXR1cmVDb3VudGVyS2V5KGtleSwgdmFsdWUpCisKK30gLy8gbmFtZXNwYWNlIFdU
RgorCisjZW5kaWYgLy8gRmVhdHVyZUNvdW50ZXJfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi93
dGYvaW9zL0ZlYXR1cmVDb3VudGVyLm1tIGIvU291cmNlL1dURi93dGYvaW9zL0ZlYXR1cmVDb3Vu
dGVyLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMzOWYwOGRhZmNjZGRhZmZlZjFlMjUyMDlkYjYzN2JjZDE2YWQy
MjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9pb3MvRmVhdHVyZUNvdW50ZXIu
bW0KQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Cisg
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJG
ZWF0dXJlQ291bnRlci5oIgorCisjaWYgUExBVEZPUk0oSU9TKQorI2ltcG9ydCA8QXBwU3VwcG9y
dC9DUEFnZ3JlZ2F0ZURpY3Rpb25hcnkuaD4KKworbmFtZXNwYWNlIFdURiB7CisKK3ZvaWQgaW5j
cmVtZW50RmVhdHVyZUNvdW50ZXJLZXkoY29uc3QgY2hhciogY29uc3Qga2V5KQoreworICAgIE5T
U3RyaW5nICpuc0tleSA9IFtbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoQ2hhcmFjdGVyc05vQ29w
eTpyZWludGVycHJldF9jYXN0PHVuaWNoYXIqPihjb25zdF9jYXN0PGNoYXIqPihrZXkpKSBsZW5n
dGg6c3RybGVuKGtleSkgZnJlZVdoZW5Eb25lOk5PXTsKKyAgICBbW0NQQWdncmVnYXRlRGljdGlv
bmFyeSBzaGFyZWRBZ2dyZWdhdGVEaWN0aW9uYXJ5XSBpbmNyZW1lbnRLZXk6bnNLZXldOworfQor
Cit2b2lkIHNldEZlYXR1cmVDb3VudGVyS2V5KGNvbnN0IGNoYXIqIGNvbnN0IGtleSwgaW50NjRf
dCB2YWx1ZSkKK3sKKyAgICBOU1N0cmluZyAqbnNLZXkgPSBbW05TU3RyaW5nIGFsbG9jXSBpbml0
V2l0aENoYXJhY3RlcnNOb0NvcHk6cmVpbnRlcnByZXRfY2FzdDx1bmljaGFyKj4oY29uc3RfY2Fz
dDxjaGFyKj4oa2V5KSkgbGVuZ3RoOnN0cmxlbihrZXkpIGZyZWVXaGVuRG9uZTpOT107CisgICAg
W1tDUEFnZ3JlZ2F0ZURpY3Rpb25hcnkgc2hhcmVkQWdncmVnYXRlRGljdGlvbmFyeV0gc2V0VmFs
dWU6dmFsdWUgZm9yU2NhbGFyS2V5Om5zS2V5XTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RGCisK
KyNlbmRpZiAvLyBQTEFURk9STShJT1MpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9oaXN0
b3J5L1BhZ2VDYWNoZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9oaXN0b3J5L1BhZ2VDYWNoZS5jcHAK
aW5kZXggNGRmM2I4MmJiZWY5NzU3ODVjN2U0OGJiMTY5ZTIzNWE1MzIwMDZkOS4uMTI4ZWNhNzFm
MTVhMzY5MzA2ZjBlNDkwNDNkN2ZiZDdmODQwYjAyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvaGlzdG9yeS9QYWdlQ2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2hpc3RvcnkvUGFn
ZUNhY2hlLmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcgQXBw
bGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNywgMjAx
NCBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zNiw2ICszNiw3IEBACiAjaW5jbHVkZSAiRGV2aWNlT3JpZW50YXRpb25D
b250cm9sbGVyLmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJEb2N1bWVudExv
YWRlci5oIgorI2luY2x1ZGUgIkZlYXR1cmVDb3VudGVyS2V5cy5oIgogI2luY2x1ZGUgIkZyYW1l
TG9hZGVyLmgiCiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNsdWRlICJGcmFt
ZUxvYWRlclN0YXRlTWFjaGluZS5oIgpAQCAtNjYsNiArNjcsMTIgQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogI2lmICFkZWZpbmVkKE5ERUJVRykKIAogI2RlZmluZSBQQ0xPRyguLi4pIExPRyhQYWdl
Q2FjaGUsICIlKnMlcyIsIGluZGVudExldmVsKjQsICIiLCBtYWtlU3RyaW5nKF9fVkFfQVJHU19f
KS51dGY4KCkuZGF0YSgpKQorCisjZWxzZQorCisjZGVmaW5lIFBDTE9HKC4uLikgKCh2b2lkKTAp
CisKKyNlbmRpZiAvLyAhZGVmaW5lZChOREVCVUcpCiAgICAgCiAvLyBVc2VkIGluIGhpc3RvZ3Jh
bXMsIHBsZWFzZSBvbmx5IGFkZCBhdCB0aGUgZW5kLCBhbmQgZG8gbm90IHJlbW92ZSBlbGVtZW50
cyAocmVuYW1pbmcgZS5nLiB0byAiRm9vRW51bVVudXNlZDEiIGlzIGZpbmUpLgogLy8gVGhpcyBp
cyBiZWNhdXNlIHN0YXRpc3RpY3MgbWF5IGJlIGdhdGhlcmVkIGZyb20gaGlzdG9ncmFtcyBiZXR3
ZWVuIHZlcnNpb25zIG92ZXIgdGltZSwgYW5kIHJlLXVzaW5nIHZhbHVlcyBjYXVzZXMgY29sbGlz
aW9ucy4KQEAgLTkzLDYgKzEwMCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb2dDYW5DYWNoZUZyYW1l
RGVjaXNpb24oRnJhbWUqIGZyYW1lLCBpbnQgaW5kZW50TGV2ZWwpCiAgICAgUENMT0coIistLS0i
KTsKICAgICBpZiAoIWZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpKSB7CiAgICAgICAg
IFBDTE9HKCIgICAtVGhlcmUgaXMgbm8gRG9jdW1lbnRMb2FkZXIgb2JqZWN0Iik7CisgICAgICAg
IEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFp
bHVyZU5vRG9jdW1lbnRMb2FkZXJLZXkpOwogICAgICAgICByZXR1cm4gMSA8PCBOb0RvY3VtZW50
TG9hZGVyOwogICAgIH0KIApAQCAtMTA2LDYgKzExNCw3IEBAIHN0YXRpYyB1bnNpZ25lZCBsb2dD
YW5DYWNoZUZyYW1lRGVjaXNpb24oRnJhbWUqIGZyYW1lLCBpbnQgaW5kZW50TGV2ZWwpCiAgICAg
dW5zaWduZWQgcmVqZWN0UmVhc29ucyA9IDA7CiAgICAgaWYgKCFmcmFtZS0+bG9hZGVyKCkuZG9j
dW1lbnRMb2FkZXIoKS0+bWFpbkRvY3VtZW50RXJyb3IoKS5pc051bGwoKSkgewogICAgICAgICBQ
Q0xPRygiICAgLU1haW4gZG9jdW1lbnQgaGFzIGFuIGVycm9yIik7CisgICAgICAgIEZFQVRVUkVf
Q09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZU1haW5E
b2N1bWVudEVycm9yS2V5KTsKICNpZiAhUExBVEZPUk0oSU9TKQogICAgICAgICByZWplY3RSZWFz
b25zIHw9IDEgPDwgTWFpbkRvY3VtZW50RXJyb3I7CiAjZWxzZQpAQCAtMTE3LDU2ICsxMjYsNzEg
QEAgc3RhdGljIHVuc2lnbmVkIGxvZ0NhbkNhY2hlRnJhbWVEZWNpc2lvbihGcmFtZSogZnJhbWUs
IGludCBpbmRlbnRMZXZlbCkKICAgICB9CiAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVu
dExvYWRlcigpLT5zdWJzdGl0dXRlRGF0YSgpLmlzVmFsaWQoKSAmJiBmcmFtZS0+bG9hZGVyKCku
ZG9jdW1lbnRMb2FkZXIoKS0+c3Vic3RpdHV0ZURhdGEoKS5mYWlsaW5nVVJMKCkuaXNFbXB0eSgp
KSB7CiAgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgaXMgYW4gZXJyb3IgcGFnZSIpOworICAgICAg
ICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZh
aWx1cmVJc0Vycm9yUGFnZUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc0Vy
cm9yUGFnZTsKICAgICB9CiAgICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5zdWJmcmFtZUxvYWRlcigp
LmNvbnRhaW5zUGx1Z2lucygpICYmICFmcmFtZS0+cGFnZSgpLT5zZXR0aW5ncygpLnBhZ2VDYWNo
ZVN1cHBvcnRzUGx1Z2lucygpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtRnJhbWUgY29udGFpbnMg
cGx1Z2lucyIpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJl
Q291bnRlclBhZ2VDYWNoZUZhaWx1cmVIYXNQbHVnaW5zKTsKICAgICAgICAgcmVqZWN0UmVhc29u
cyB8PSAxIDw8IEhhc1BsdWdpbnM7CiAgICAgfQogICAgIGlmIChmcmFtZS0+ZG9jdW1lbnQoKS0+
dXJsKCkucHJvdG9jb2xJcygiaHR0cHMiKQogICAgICAgICAmJiAoZnJhbWUtPmxvYWRlcigpLmRv
Y3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkuY2FjaGVDb250cm9sQ29udGFpbnNOb0NhY2hlKCkK
ICAgICAgICAgICAgIHx8IGZyYW1lLT5sb2FkZXIoKS5kb2N1bWVudExvYWRlcigpLT5yZXNwb25z
ZSgpLmNhY2hlQ29udHJvbENvbnRhaW5zTm9TdG9yZSgpKSkgeworICAgICAgICBpZiAoZnJhbWUt
PmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkuY2FjaGVDb250cm9sQ29udGFp
bnNOb0NhY2hlKCkpCisgICAgICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShG
ZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIVFRQU05vQ2FjaGVLZXkpOworICAgICAgICBp
ZiAoZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9hZGVyKCktPnJlc3BvbnNlKCkuY2FjaGVDb250
cm9sQ29udGFpbnNOb1N0b3JlKCkpCisgICAgICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVN
RU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIVFRQU05vU3RvcmVLZXkpOwog
ICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGlzIEhUVFBTLCBhbmQgY2FjaGUgY29udHJvbCBwcm9o
aWJpdHMgY2FjaGluZyBvciBzdG9yaW5nIik7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8
PCBJc0h0dHBzQW5kQ2FjaGVDb250cm9sbGVkOwogICAgIH0KICNpZiBFTkFCTEUoU1FMX0RBVEFC
QVNFKQogICAgIGlmIChEYXRhYmFzZU1hbmFnZXI6Om1hbmFnZXIoKS5oYXNPcGVuRGF0YWJhc2Vz
KGZyYW1lLT5kb2N1bWVudCgpKSkgewogICAgICAgICBQQ0xPRygiICAgLUZyYW1lIGhhcyBvcGVu
IGRhdGFiYXNlIGhhbmRsZXMiKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9L
RVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzT3BlbkRhdGFiYXNlc0tleSk7CiAg
ICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBIYXNEYXRhYmFzZUhhbmRsZXM7CiAgICAgfQog
I2VuZGlmCiAjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQogICAgIGlmIChTaGFyZWRXb3JrZXJS
ZXBvc2l0b3J5OjpoYXNTaGFyZWRXb3JrZXJzKGZyYW1lLT5kb2N1bWVudCgpKSkgewogICAgICAg
ICBQQ0xPRygiICAgLUZyYW1lIGhhcyBhc3NvY2lhdGVkIFNoYXJlZFdvcmtlcnMiKTsKKyAgICAg
ICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVG
YWlsdXJlSGFzU2hhcmVkV29ya2Vyc0tleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8
PCBIYXNTaGFyZWRXb3JrZXJzOwogICAgIH0KICNlbmRpZgogICAgIGlmICghZnJhbWUtPmxvYWRl
cigpLmhpc3RvcnkoKS5jdXJyZW50SXRlbSgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtTm8gY3Vy
cmVudCBoaXN0b3J5IGl0ZW0iKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JFTUVOVF9L
RVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlTm9DdXJyZW50SGlzdG9yeUl0ZW1LZXkp
OwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgTm9IaXN0b3J5SXRlbTsKICAgICB9CiAg
ICAgaWYgKGZyYW1lLT5sb2FkZXIoKS5xdWlja1JlZGlyZWN0Q29taW5nKCkpIHsKICAgICAgICAg
UENMT0coIiAgIC1RdWljayByZWRpcmVjdCBpcyBjb21pbmciKTsKKyAgICAgICAgRkVBVFVSRV9D
T1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUXVpcmtS
ZWRpcmVjdENvbWluZ0tleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBRdWlja1Jl
ZGlyZWN0Q29taW5nOwogICAgIH0KICAgICBpZiAoZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPmlzTG9hZGluZ0luQVBJU2Vuc2UoKSkgewogICAgICAgICBQQ0xPRygiICAgLURvY3Vt
ZW50TG9hZGVyIGlzIHN0aWxsIGxvYWRpbmcgaW4gQVBJIHNlbnNlIik7CisgICAgICAgIEZFQVRV
UkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUxv
YWRpbmdBUElTZW5zZUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc0xvYWRp
bmdJbkFQSVNlbnNlOwogICAgIH0KICAgICBpZiAoZnJhbWUtPmxvYWRlcigpLmRvY3VtZW50TG9h
ZGVyKCktPmlzU3RvcHBpbmcoKSkgewogICAgICAgICBQQ0xPRygiICAgLURvY3VtZW50TG9hZGVy
IGlzIGluIHRoZSBtaWRkbGUgb2Ygc3RvcHBpbmciKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVS
X0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRG9jdW1lbnRMb2Fk
ZXJTdG9wcGluZ0tleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc1N0b3BwaW5n
OwogICAgIH0KICAgICBpZiAoIWZyYW1lLT5kb2N1bWVudCgpLT5jYW5TdXNwZW5kQWN0aXZlRE9N
T2JqZWN0cygpKSB7Ci0gICAgICAgIFBDTE9HKCIgICAtVGhlIGRvY3VtZW50IGNhbm5vdCBzdXNw
ZWN0IGl0cyBhY3RpdmUgRE9NIE9iamVjdHMiKTsKKyAgICAgICAgUENMT0coIiAgIC1UaGUgZG9j
dW1lbnQgY2Fubm90IHN1c3BlbmQgaXRzIGFjdGl2ZSBET00gT2JqZWN0cyIpOworICAgICAgICBG
RUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1
cmVDYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0c0tleSk7CiAgICAgICAgIHJlamVjdFJlYXNv
bnMgfD0gMSA8PCBDYW5ub3RTdXNwZW5kQWN0aXZlRE9NT2JqZWN0czsKICAgICB9CiAgICAgaWYg
KCFmcmFtZS0+bG9hZGVyKCkuZG9jdW1lbnRMb2FkZXIoKS0+YXBwbGljYXRpb25DYWNoZUhvc3Qo
KS0+Y2FuQ2FjaGVJblBhZ2VDYWNoZSgpKSB7CiAgICAgICAgIFBDTE9HKCIgICAtVGhlIERvY3Vt
ZW50TG9hZGVyIHVzZXMgYW4gYXBwbGljYXRpb24gY2FjaGUiKTsKKyAgICAgICAgRkVBVFVSRV9D
T1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlQXBwbGlj
YXRpb25DYWNoZUtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBEb2N1bWVudExv
YWRlclVzZXNBcHBsaWNhdGlvbkNhY2hlOwogICAgIH0KICAgICBpZiAoIWZyYW1lLT5sb2FkZXIo
KS5jbGllbnQoKS5jYW5DYWNoZVBhZ2UoKSkgewogICAgICAgICBQQ0xPRygiICAgLVRoZSBjbGll
bnQgc2F5cyB0aGlzIGZyYW1lIGNhbm5vdCBiZSBjYWNoZWQiKTsKKyAgICAgICAgRkVBVFVSRV9D
T1VOVEVSX0lOQ1JFTUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRGVuaWVk
QnlDbGllbnRLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgQ2xpZW50RGVuaWVz
Q2FjaGluZzsKICAgICB9CiAKQEAgLTIxOCwzOCArMjQyLDQ4IEBAIHN0YXRpYyB2b2lkIGxvZ0Nh
bkNhY2hlUGFnZURlY2lzaW9uKFBhZ2UqIHBhZ2UpCiAjaWYgRU5BQkxFKERFVklDRV9PUklFTlRB
VElPTikgJiYgIVBMQVRGT1JNKElPUykKICAgICBpZiAoRGV2aWNlTW90aW9uQ29udHJvbGxlcjo6
aXNBY3RpdmVBdChwYWdlKSkgewogICAgICAgICBQQ0xPRygiICAgLVBhZ2UgaXMgdXNpbmcgRGV2
aWNlTW90aW9uIik7CisgICAgICAgIEZFQVRVUkVfQ09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1
cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURldmljZU1vdGlvbktleSk7CiAgICAgICAgIHJlamVj
dFJlYXNvbnMgfD0gMSA8PCBVc2VzRGV2aWNlTW90aW9uOwogICAgIH0KICAgICBpZiAoRGV2aWNl
T3JpZW50YXRpb25Db250cm9sbGVyOjppc0FjdGl2ZUF0KHBhZ2UpKSB7CiAgICAgICAgIFBDTE9H
KCIgICAtUGFnZSBpcyB1c2luZyBEZXZpY2VPcmllbnRhdGlvbiIpOworICAgICAgICBGRUFUVVJF
X0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVEZXZp
Y2VPcmllbnRhdGlvbktleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBVc2VzRGV2
aWNlT3JpZW50YXRpb247CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFBST1hJTUlUWV9FVkVO
VFMpCiAgICAgaWYgKERldmljZVByb3hpbWl0eUNvbnRyb2xsZXI6OmlzQWN0aXZlQXQocGFnZSkp
IHsKICAgICAgICAgUENMT0coIiAgIC1QYWdlIGlzIHVzaW5nIERldmljZVByb3hpbWl0eSIpOwor
ICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VD
YWNoZUZhaWx1cmVEZXZpY2VQcm94aW1pdHlLZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9
IDEgPDwgVXNlc0RldmljZU1vdGlvbjsKICAgICB9CiAjZW5kaWYKICAgICBGcmFtZUxvYWRUeXBl
IGxvYWRUeXBlID0gcGFnZS0+bWFpbkZyYW1lKCkubG9hZGVyKCkubG9hZFR5cGUoKTsKICAgICBp
ZiAobG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkKSB7CiAgICAgICAgIFBDTE9HKCIg
ICAtTG9hZCB0eXBlIGlzOiBSZWxvYWQiKTsKKyAgICAgICAgRkVBVFVSRV9DT1VOVEVSX0lOQ1JF
TUVOVF9LRVkoRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlUmVsb2FkS2V5KTsKICAgICAg
ICAgcmVqZWN0UmVhc29ucyB8PSAxIDw8IElzUmVsb2FkOwogICAgIH0KICAgICBpZiAobG9hZFR5
cGUgPT0gRnJhbWVMb2FkVHlwZTo6UmVsb2FkRnJvbU9yaWdpbikgewogICAgICAgICBQQ0xPRygi
ICAgLUxvYWQgdHlwZSBpczogUmVsb2FkIGZyb20gb3JpZ2luIik7CisgICAgICAgIEZFQVRVUkVf
Q09VTlRFUl9JTkNSRU1FTlRfS0VZKEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVJlbG9h
ZEZyb21PcmlnaW5LZXkpOwogICAgICAgICByZWplY3RSZWFzb25zIHw9IDEgPDwgSXNSZWxvYWRG
cm9tT3JpZ2luOwogICAgIH0KICAgICBpZiAobG9hZFR5cGUgPT0gRnJhbWVMb2FkVHlwZTo6U2Ft
ZSkgewogICAgICAgICBQQ0xPRygiICAgLUxvYWQgdHlwZSBpczogU2FtZSIpOworICAgICAgICBG
RUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1
cmVTYW1lTG9hZEtleSk7CiAgICAgICAgIHJlamVjdFJlYXNvbnMgfD0gMSA8PCBJc1NhbWVMb2Fk
OwogICAgIH0KICAgICAKLSAgICBQQ0xPRyhyZWplY3RSZWFzb25zID8gIiBQYWdlIENBTk5PVCBi
ZSBjYWNoZWRcbi0tLS0tLS0tIiA6ICIgUGFnZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOwor
ICAgIGlmIChyZWplY3RSZWFzb25zKSB7CisgICAgICAgIFBDTE9HKCIgUGFnZSBDQU5OT1QgYmUg
Y2FjaGVkXG4tLS0tLS0tLSIpOworICAgICAgICBGRUFUVVJFX0NPVU5URVJfSU5DUkVNRU5UX0tF
WShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVLZXkpOworICAgIH0gZWxzZSB7CisgICAg
ICAgIFBDTE9HKCIgUGFnZSBDQU4gYmUgY2FjaGVkXG4tLS0tLS0tLSIpOworICAgICAgICBGRUFU
VVJFX0NPVU5URVJfSU5DUkVNRU5UX0tFWShGZWF0dXJlQ291bnRlclBhZ2VDYWNoZVN1Y2Nlc3NL
ZXkpOworICAgIH0KIH0KIAotI2VuZGlmIC8vICFkZWZpbmVkKE5ERUJVRykKLQogUGFnZUNhY2hl
KiBwYWdlQ2FjaGUoKQogewogICAgIHN0YXRpYyBQYWdlQ2FjaGUqIHN0YXRpY1BhZ2VDYWNoZSA9
IG5ldyBQYWdlQ2FjaGU7CkBAIC0zMDgsOSArMzQyLDcgQEAgYm9vbCBQYWdlQ2FjaGU6OmNhbkNh
Y2hlKFBhZ2UqIHBhZ2UpIGNvbnN0CiAgICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgCi0jaWYgIWRlZmluZWQoTkRFQlVHKQogICAgIGxvZ0NhbkNhY2hlUGFnZURlY2lz
aW9uKHBhZ2UpOwotI2VuZGlmCiAKICAgICBpZiAobWVtb3J5UHJlc3N1cmVIYW5kbGVyKCkuaXNV
bmRlck1lbW9yeVByZXNzdXJlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vRmVhdHVyZUNvdW50ZXJLZXlzLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWJhZTNlOWY4
ZTgyMDM0ZGNiOGQ1OGRkOWNhNjEyMWI4MTdlNDM1YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL0ZlYXR1cmVDb3VudGVyS2V5cy5oCkBAIC0wLDAgKzEsNjkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpZm5kZWYgRmVhdHVyZUNvdW50ZXJLZXlzX2gKKyNkZWZpbmUgRmVhdHVyZUNvdW50
ZXJLZXlzX2gKKworI2luY2x1ZGUgPHd0Zi9GZWF0dXJlQ291bnRlci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKKy8vIFBhZ2UgY2FjaGUuCitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291
bnRlclBhZ2VDYWNoZUZhaWx1cmVOb0RvY3VtZW50TG9hZGVyS2V5W10gPSAiY29tLmFwcGxlLldl
YktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5ub0RvY3VtZW50TG9hZGVyIjsKK3N0YXRpYyBjb25zdCBj
aGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZU1haW5Eb2N1bWVudEVycm9yS2V5W10g
PSAiY29tLmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5tYWluRG9jdW1lbnRFcnJvciI7
CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVJc0Vycm9y
UGFnZUtleVtdID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUuaXNFcnJvclBh
Z2UiOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFz
UGx1Z2luc1tdID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUuaGFzUGx1Z2lu
cyI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVIVFRQ
U05vQ2FjaGVLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJlLmh0dHBz
Tm9DYWNoZSI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1
cmVIVFRQU05vU3RvcmVLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJl
Lmh0dHBzTm9TdG9yZSI7CisjaWYgRU5BQkxFKFNRTF9EQVRBQkFTRSkKK3N0YXRpYyBjb25zdCBj
aGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUhhc09wZW5EYXRhYmFzZXNLZXlbXSA9
ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJlLmhhc09wZW5EYXRhYmFzZXMiOwor
I2VuZGlmCisjaWYgRU5BQkxFKFNIQVJFRF9XT1JLRVJTKQorc3RhdGljIGNvbnN0IGNoYXIgRmVh
dHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlSGFzU2hhcmVkV29ya2Vyc0tleVtdID0gImNvbS5h
cHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUuaGFzU2hhcmVkV29ya2VycyI7CisjZW5kaWYK
K3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZU5vQ3VycmVu
dEhpc3RvcnlJdGVtS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5u
b0N1cnJlbnRIaXN0b3J5SXRlbSI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBh
Z2VDYWNoZUZhaWx1cmVRdWlya1JlZGlyZWN0Q29taW5nS2V5W10gPSAiY29tLmFwcGxlLldlYktp
dC5wYWdlQ2FjaGUuZmFpbHVyZS5xdWlya1JlZGlyZWN0Q29taW5nIjsKK3N0YXRpYyBjb25zdCBj
aGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUxvYWRpbmdBUElTZW5zZUtleVtdID0g
ImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLmZhaWx1cmUubG9hZGluZ0FQSVNlbnNlIjsKK3N0
YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZURvY3VtZW50TG9h
ZGVyU3RvcHBpbmdLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJlLmRv
Y3VtZW50TG9hZGVyU3RvcHBpbmciOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQ
YWdlQ2FjaGVGYWlsdXJlQ2Fubm90U3VzcGVuZEFjdGl2ZURPTU9iamVjdHNLZXlbXSA9ICJjb20u
YXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJlLmNhbm5vdFN1c3BlbmRBY3RpdmVET01PYmpl
Y3RzIjsKK3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZUFw
cGxpY2F0aW9uQ2FjaGVLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5mYWlsdXJl
LmFwcGxpY2F0aW9uQ2FjaGUiOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdl
Q2FjaGVGYWlsdXJlRGVuaWVkQnlDbGllbnRLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VD
YWNoZS5mYWlsdXJlLmRlbmllZEJ5Q2xpZW50IjsKKyNpZiBFTkFCTEUoREVWSUNFX09SSUVOVEFU
SU9OKQorc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJlRGV2
aWNlTW90aW9uS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5kZXZp
Y2VNb3Rpb24iOworc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWls
dXJlRGV2aWNlT3JpZW50YXRpb25LZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VDYWNoZS5m
YWlsdXJlLmRldmljZU9yaWVudGF0aW9uIjsKKyNlbmRpZgorI2lmIEVOQUJMRShQUk9YSU1JVFlf
RVZFTlRTKQorc3RhdGljIGNvbnN0IGNoYXIgRmVhdHVyZUNvdW50ZXJQYWdlQ2FjaGVGYWlsdXJl
RGV2aWNlUHJveGltaXR5S2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5wYWdlQ2FjaGUuZmFpbHVy
ZS5kZXZpY2VQcm94aW1pdHkiOworI2VuZGlmCitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291
bnRlclBhZ2VDYWNoZUZhaWx1cmVSZWxvYWRLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VD
YWNoZS5mYWlsdXJlLnJlbG9hZCI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0dXJlQ291bnRlclBh
Z2VDYWNoZUZhaWx1cmVSZWxvYWRGcm9tT3JpZ2luS2V5W10gPSAiY29tLmFwcGxlLldlYktpdC5w
YWdlQ2FjaGUuZmFpbHVyZS5yZWxvYWRGcm9tT3JpZ2luIjsKK3N0YXRpYyBjb25zdCBjaGFyIEZl
YXR1cmVDb3VudGVyUGFnZUNhY2hlRmFpbHVyZVNhbWVMb2FkS2V5W10gPSAiY29tLmFwcGxlLldl
YktpdC5wYWdlQ2FjaGUuZmFpbHVyZS5zYW1lTG9hZCI7CitzdGF0aWMgY29uc3QgY2hhciBGZWF0
dXJlQ291bnRlclBhZ2VDYWNoZUZhaWx1cmVLZXlbXSA9ICJjb20uYXBwbGUuV2ViS2l0LnBhZ2VD
YWNoZS5mYWlsdXJlIjsKK3N0YXRpYyBjb25zdCBjaGFyIEZlYXR1cmVDb3VudGVyUGFnZUNhY2hl
U3VjY2Vzc0tleVtdID0gImNvbS5hcHBsZS5XZWJLaXQucGFnZUNhY2hlLnN1Y2Nlc3MiOworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBGZWF0dXJlQ291bnRlcktleXNfaAor
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>