<?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>188093</bug_id>
          
          <creation_ts>2018-07-27 01:41:26 -0700</creation_ts>
          <short_desc>[WPE] Use WPE key symbols and new API instead of xkbcommon and the key mapper</short_desc>
          <delta_ts>2018-08-03 02:16:31 -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>WPE WebKit</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/WebPlatformForEmbedded/WPEBackend/pull/23</see_also>
    
    <see_also>https://github.com/Igalia/WPEBackend-fdo/pull/20</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>188216</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Garcia Campos">cgarcia</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1445678</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-27 01:41:26 -0700</bug_when>
    <thetext>Use the new API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445679</commentid>
    <comment_count>1</comment_count>
      <attachid>345908</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-27 01:42:28 -0700</bug_when>
    <thetext>Created attachment 345908
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445682</commentid>
    <comment_count>2</comment_count>
      <attachid>345908</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-07-27 02:12:50 -0700</bug_when>
    <thetext>Comment on attachment 345908
WIP

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

&gt; Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:306
&gt; +    // FIXME: we don&apos;t have a way to get hardware key code in WPE.

This could be retrieved with a xkb_keymap object? If so, FIXME should note that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1445683</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-07-27 02:21:26 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #2)
&gt; Comment on attachment 345908 [details]
&gt; WIP
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=345908&amp;action=review
&gt; 
&gt; &gt; Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:306
&gt; &gt; +    // FIXME: we don&apos;t have a way to get hardware key code in WPE.
&gt; 
&gt; This could be retrieved with a xkb_keymap object? If so, FIXME should note
&gt; that.

I don&apos;t know, I&apos;ll investigate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1446849</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-01 03:03:22 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; (In reply to Zan Dobersek from comment #2)
&gt; &gt; Comment on attachment 345908 [details]
&gt; &gt; WIP
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=345908&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:306
&gt; &gt; &gt; +    // FIXME: we don&apos;t have a way to get hardware key code in WPE.
&gt; &gt; 
&gt; &gt; This could be retrieved with a xkb_keymap object? If so, FIXME should note
&gt; &gt; that.
&gt; 
&gt; I don&apos;t know, I&apos;ll investigate.

It requires https://github.com/WebPlatformForEmbedded/WPEBackend/pull/24 I&apos;ll keep the FIXME anyway, since the patch to use the key mapper will introduce more changes.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447554</commentid>
    <comment_count>5</comment_count>
      <attachid>346463</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 01:48:55 -0700</bug_when>
    <thetext>Created attachment 346463
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447555</commentid>
    <comment_count>6</comment_count>
      <attachid>346463</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2018-08-03 02:01:30 -0700</bug_when>
    <thetext>Comment on attachment 346463
Patch

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

&gt; Source/WebKit/ChangeLog:9
&gt; +        
&gt; +

Extra white space.

&gt; Tools/ChangeLog:9
&gt; +        
&gt; +

Extra white space.

&gt; Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:273
&gt; +    // FIXME: we don&apos;t have a way to get hardware key code in WPE.

Is this now not retrievable from wpe_input_xkb_context_get_entries_for_key_code()? Or am I mixing things up?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447556</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 02:04:45 -0700</bug_when>
    <thetext>(In reply to Zan Dobersek from comment #6)
&gt; Comment on attachment 346463 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=346463&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:9
&gt; &gt; +        
&gt; &gt; +
&gt; 
&gt; Extra white space.
&gt; 
&gt; &gt; Tools/ChangeLog:9
&gt; &gt; +        
&gt; &gt; +
&gt; 
&gt; Extra white space.
&gt; 
&gt; &gt; Tools/WebKitTestRunner/wpe/EventSenderProxyWPE.cpp:273
&gt; &gt; +    // FIXME: we don&apos;t have a way to get hardware key code in WPE.
&gt; 
&gt; Is this now not retrievable from
&gt; wpe_input_xkb_context_get_entries_for_key_code()? Or am I mixing things up?

Yes, this is part of a follow up patch in bug #188216</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1447560</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2018-08-03 02:16:31 -0700</bug_when>
    <thetext>Committed r234540: &lt;https://trac.webkit.org/changeset/234540&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>345908</attachid>
            <date>2018-07-27 01:42:28 -0700</date>
            <delta_ts>2018-08-03 01:48:55 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>wpe-key-events-wip.diff</filename>
            <type>text/plain</type>
            <size>53655</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVu
dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgKaW5k
ZXggOTdkMDNhZjkyYWQuLjhjZGU1YjliZTEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaApAQCAtMTY0LDYgKzE2NCwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgICAgIHN0YXRpYyBib29sIG1vZGlmaWVyc0NvbnRhaW5DYXBzTG9j
ayh1bnNpZ25lZCk7CiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKFdQRSkKKyAgICAgICAgc3RhdGlj
IFN0cmluZyBrZXlWYWx1ZUZvcldQRUtleUNvZGUodW5zaWduZWQpOworICAgICAgICBzdGF0aWMg
U3RyaW5nIGtleUNvZGVGb3JIYXJkd2FyZUtleUNvZGUodW5zaWduZWQpOworICAgICAgICBzdGF0
aWMgU3RyaW5nIGtleUlkZW50aWZpZXJGb3JXUEVLZXlDb2RlKHVuc2lnbmVkKTsKKyAgICAgICAg
c3RhdGljIGludCB3aW5kb3dzS2V5Q29kZUZvcldQRUtleUNvZGUodW5zaWduZWQpOworICAgICAg
ICBzdGF0aWMgU3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyh1bnNpZ25lZCk7CisjZW5kaWYK
KwogICAgIHByb3RlY3RlZDoKICAgICAgICAgU3RyaW5nIG1fdGV4dDsKICAgICAgICAgU3RyaW5n
IG1fdW5tb2RpZmllZFRleHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS93
cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwCmluZGV4IGZhNGYzOGUxMWYwLi40NGJl
OTM5ZWI1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3Jt
S2V5Ym9hcmRFdmVudFdQRS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1Bs
YXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKQEAgLTI2LDEwICsyNiwxMjA4IEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1LZXlib2FyZEV2ZW50LmgiCiAKLSNpbmNs
dWRlICJOb3RJbXBsZW1lbnRlZC5oIgorI2luY2x1ZGUgIldpbmRvd3NLZXlib2FyZENvZGVzLmgi
CisjaW5jbHVkZSA8d3BlL3dwZS5oPgorI2luY2x1ZGUgPHd0Zi9nbGliL0dVbmlxdWVQdHIuaD4K
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCisvLyBGSVhNRTogVGhpcyBpcyBpbmNvbXBsZXRlLiAg
V2Ugc2hvdWxkIGNoYW5nZSB0aGlzIHRvIG1pcnJvcgorLy8gbW9yZSBsaWtlIHdoYXQgRmlyZWZv
eCBkb2VzLCBhbmQgZ2VuZXJhdGUgdGhlc2Ugc3dpdGNoIHN0YXRlbWVudHMKKy8vIGF0IGJ1aWxk
IHRpbWUuCisvLyBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9B
UEkvS2V5Ym9hcmRFdmVudC9rZXkvS2V5X1ZhbHVlcworU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRF
dmVudDo6a2V5VmFsdWVGb3JXUEVLZXlDb2RlKHVuc2lnbmVkIGtleUNvZGUpCit7CisgICAgc3dp
dGNoIChrZXlDb2RlKSB7CisgICAgLy8gTW9kaWZpZXIga2V5cy4KKyAgICBjYXNlIFdQRV9LRVlf
QWx0X0w6CisgICAgY2FzZSBXUEVfS0VZX0FsdF9SOgorICAgICAgICByZXR1cm4gIkFsdCJfczsK
KyAgICAvLyBGaXJlZm94IHVzZXMgV1BFX0tFWV9Nb2RlX3N3aXRjaCBmb3IgQWx0R3JhcGggYXMg
d2VsbC4KKyAgICBjYXNlIFdQRV9LRVlfSVNPX0xldmVsM19TaGlmdDoKKyAgICBjYXNlIFdQRV9L
RVlfSVNPX0xldmVsM19MYXRjaDoKKyAgICBjYXNlIFdQRV9LRVlfSVNPX0xldmVsM19Mb2NrOgor
ICAgIGNhc2UgV1BFX0tFWV9JU09fTGV2ZWw1X1NoaWZ0OgorICAgIGNhc2UgV1BFX0tFWV9JU09f
TGV2ZWw1X0xhdGNoOgorICAgIGNhc2UgV1BFX0tFWV9JU09fTGV2ZWw1X0xvY2s6CisgICAgICAg
IHJldHVybiAiQWx0R3JhcGgiX3M7CisgICAgY2FzZSBXUEVfS0VZX0NhcHNfTG9jazoKKyAgICAg
ICAgcmV0dXJuICJDYXBzTG9jayJfczsKKyAgICBjYXNlIFdQRV9LRVlfQ29udHJvbF9MOgorICAg
IGNhc2UgV1BFX0tFWV9Db250cm9sX1I6CisgICAgICAgIHJldHVybiAiQ29udHJvbCJfczsKKyAg
ICAvLyBGbjogVGhpcyBpcyB0eXBpY2FsbHkgYSBoYXJkd2FyZSBrZXkgdGhhdCBkb2VzIG5vdCBn
ZW5lcmF0ZSBhIHNlcGFyYXRlIGNvZGUuCisgICAgLy8gRm5Mb2NrLgorICAgIGNhc2UgV1BFX0tF
WV9IeXBlcl9MOgorICAgIGNhc2UgV1BFX0tFWV9IeXBlcl9SOgorICAgICAgICByZXR1cm4gIkh5
cGVyIl9zOworICAgIGNhc2UgV1BFX0tFWV9NZXRhX0w6CisgICAgY2FzZSBXUEVfS0VZX01ldGFf
UjoKKyAgICAgICAgcmV0dXJuICJNZXRhIl9zOworICAgIGNhc2UgV1BFX0tFWV9OdW1fTG9jazoK
KyAgICAgICAgcmV0dXJuICJOdW1Mb2NrIl9zOworICAgIGNhc2UgV1BFX0tFWV9TY3JvbGxfTG9j
azoKKyAgICAgICAgcmV0dXJuICJTY3JvbGxMb2NrIl9zOworICAgIGNhc2UgV1BFX0tFWV9TaGlm
dF9MOgorICAgIGNhc2UgV1BFX0tFWV9TaGlmdF9SOgorICAgICAgICByZXR1cm4gIlNoaWZ0Il9z
OworICAgIGNhc2UgV1BFX0tFWV9TdXBlcl9MOgorICAgIGNhc2UgV1BFX0tFWV9TdXBlcl9SOgor
ICAgICAgICByZXR1cm4gIlN1cGVyIl9zOworICAgIC8vIFN5bWJvbC4KKyAgICAvLyBTeW1ib2xM
b2NrLgorCisgICAgLy8gV2hpdGVzcGFjZSBrZXlzLgorICAgIGNhc2UgV1BFX0tFWV9SZXR1cm46
CisgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgorICAgIGNhc2UgV1BFX0tFWV9JU09fRW50ZXI6
CisgICAgY2FzZSBXUEVfS0VZXzMyNzBfRW50ZXI6CisgICAgICAgIHJldHVybiAiRW50ZXIiX3M7
CisgICAgY2FzZSBXUEVfS0VZX1RhYjoKKyAgICBjYXNlIFdQRV9LRVlfS1BfVGFiOgorICAgICAg
ICByZXR1cm4gIlRhYiJfczsKKworICAgIC8vIE5hdmlnYXRpb24ga2V5cy4KKyAgICBjYXNlIFdQ
RV9LRVlfRG93bjoKKyAgICBjYXNlIFdQRV9LRVlfS1BfRG93bjoKKyAgICAgICAgcmV0dXJuICJB
cnJvd0Rvd24iX3M7CisgICAgY2FzZSBXUEVfS0VZX0xlZnQ6CisgICAgY2FzZSBXUEVfS0VZX0tQ
X0xlZnQ6CisgICAgICAgIHJldHVybiAiQXJyb3dMZWZ0Il9zOworICAgIGNhc2UgV1BFX0tFWV9S
aWdodDoKKyAgICBjYXNlIFdQRV9LRVlfS1BfUmlnaHQ6CisgICAgICAgIHJldHVybiAiQXJyb3dS
aWdodCJfczsKKyAgICBjYXNlIFdQRV9LRVlfVXA6CisgICAgY2FzZSBXUEVfS0VZX0tQX1VwOgor
ICAgICAgICByZXR1cm4gIkFycm93VXAiX3M7CisgICAgY2FzZSBXUEVfS0VZX0VuZDoKKyAgICBj
YXNlIFdQRV9LRVlfS1BfRW5kOgorICAgICAgICByZXR1cm4gIkVuZCJfczsKKyAgICBjYXNlIFdQ
RV9LRVlfSG9tZToKKyAgICBjYXNlIFdQRV9LRVlfS1BfSG9tZToKKyAgICAgICAgcmV0dXJuICJI
b21lIl9zOworICAgIGNhc2UgV1BFX0tFWV9QYWdlX0Rvd246CisgICAgY2FzZSBXUEVfS0VZX0tQ
X1BhZ2VfRG93bjoKKyAgICAgICAgcmV0dXJuICJQYWdlRG93biJfczsKKyAgICBjYXNlIFdQRV9L
RVlfUGFnZV9VcDoKKyAgICBjYXNlIFdQRV9LRVlfS1BfUGFnZV9VcDoKKyAgICAgICAgcmV0dXJu
ICJQYWdlVXAiX3M7CisKKyAgICAvLyBFZGl0aW5nIGtleXMuCisgICAgY2FzZSBXUEVfS0VZX0Jh
Y2tTcGFjZToKKyAgICAgICAgcmV0dXJuICJCYWNrc3BhY2UiX3M7CisgICAgY2FzZSBXUEVfS0VZ
X0NsZWFyOgorICAgICAgICByZXR1cm4gIkNsZWFyIl9zOworICAgIGNhc2UgV1BFX0tFWV9Db3B5
OgorICAgICAgICByZXR1cm4gIkNvcHkiX3M7CisgICAgY2FzZSBXUEVfS0VZXzMyNzBfQ3Vyc29y
U2VsZWN0OgorICAgICAgICByZXR1cm4gIkNyU2VsIl9zOworICAgIGNhc2UgV1BFX0tFWV9DdXQ6
CisgICAgICAgIHJldHVybiAiQ3V0Il9zOworICAgIGNhc2UgV1BFX0tFWV9EZWxldGU6CisgICAg
Y2FzZSBXUEVfS0VZX0tQX0RlbGV0ZToKKyAgICAgICAgcmV0dXJuICJEZWxldGUiX3M7CisgICAg
Y2FzZSBXUEVfS0VZXzMyNzBfRXJhc2VFT0Y6CisgICAgICAgIHJldHVybiAiRXJhc2VFb2YiX3M7
CisgICAgY2FzZSBXUEVfS0VZXzMyNzBfRXhTZWxlY3Q6CisgICAgICAgIHJldHVybiAiRXhTZWwi
X3M7CisgICAgY2FzZSBXUEVfS0VZX0luc2VydDoKKyAgICBjYXNlIFdQRV9LRVlfS1BfSW5zZXJ0
OgorICAgICAgICByZXR1cm4gIkluc2VydCJfczsKKyAgICBjYXNlIFdQRV9LRVlfUGFzdGU6Cisg
ICAgICAgIHJldHVybiAiUGFzdGUiX3M7CisgICAgY2FzZSBXUEVfS0VZX1JlZG86CisgICAgICAg
IHJldHVybiAiUmVkbyJfczsKKyAgICBjYXNlIFdQRV9LRVlfVW5kbzoKKyAgICAgICAgcmV0dXJu
ICJVbmRvIl9zOworCisgICAgLy8gVUkga2V5cy4KKyAgICAvLyBBY2NlcHQuCisgICAgLy8gQWdh
aW4uCisgICAgY2FzZSBXUEVfS0VZXzMyNzBfQXR0bjoKKyAgICAgICAgcmV0dXJuICJBdHRuIl9z
OworICAgIGNhc2UgV1BFX0tFWV9DYW5jZWw6CisgICAgICAgIHJldHVybiAiQ2FuY2VsIl9zOwor
ICAgIGNhc2UgV1BFX0tFWV9NZW51OgorICAgICAgICByZXR1cm4gIkNvbnRleHRNZW51Il9zOwor
ICAgIGNhc2UgV1BFX0tFWV9Fc2NhcGU6CisgICAgICAgIHJldHVybiAiRXNjYXBlIl9zOworICAg
IGNhc2UgV1BFX0tFWV9FeGVjdXRlOgorICAgICAgICByZXR1cm4gIkV4ZWN1dGUiX3M7CisgICAg
Y2FzZSBXUEVfS0VZX0ZpbmQ6CisgICAgICAgIHJldHVybiAiRmluZCJfczsKKyAgICBjYXNlIFdQ
RV9LRVlfSGVscDoKKyAgICAgICAgcmV0dXJuICJIZWxwIl9zOworICAgIGNhc2UgV1BFX0tFWV9Q
YXVzZToKKyAgICBjYXNlIFdQRV9LRVlfQnJlYWs6CisgICAgICAgIHJldHVybiAiUGF1c2UiX3M7
CisgICAgY2FzZSBXUEVfS0VZXzMyNzBfUGxheToKKyAgICAgICAgcmV0dXJuICJQbGF5Il9zOwor
ICAgIC8vIFByb3BzLgorICAgIGNhc2UgV1BFX0tFWV9TZWxlY3Q6CisgICAgICAgIHJldHVybiAi
U2VsZWN0Il9zOworICAgIGNhc2UgV1BFX0tFWV9ab29tSW46CisgICAgICAgIHJldHVybiAiWm9v
bUluIl9zOworICAgIGNhc2UgV1BFX0tFWV9ab29tT3V0OgorICAgICAgICByZXR1cm4gIlpvb21P
dXQiX3M7CisKKyAgICAvLyBEZXZpY2Uga2V5cy4KKyAgICBjYXNlIFdQRV9LRVlfTW9uQnJpZ2h0
bmVzc0Rvd246CisgICAgICAgIHJldHVybiAiQnJpZ2h0bmVzc0Rvd24iX3M7CisgICAgY2FzZSBX
UEVfS0VZX01vbkJyaWdodG5lc3NVcDoKKyAgICAgICAgcmV0dXJuICJCcmlnaHRuZXNzVXAiX3M7
CisgICAgY2FzZSBXUEVfS0VZX0VqZWN0OgorICAgICAgICByZXR1cm4gIkVqZWN0Il9zOworICAg
IGNhc2UgV1BFX0tFWV9Mb2dPZmY6CisgICAgICAgIHJldHVybiAiTG9nT2ZmIl9zOworICAgIC8v
IFBvd2VyLgorICAgIGNhc2UgV1BFX0tFWV9Qb3dlckRvd246CisgICAgY2FzZSBXUEVfS0VZX1Bv
d2VyT2ZmOgorICAgICAgICByZXR1cm4gIlBvd2VyT2ZmIl9zOworICAgIGNhc2UgV1BFX0tFWV8z
MjcwX1ByaW50U2NyZWVuOgorICAgIGNhc2UgV1BFX0tFWV9QcmludDoKKyAgICBjYXNlIFdQRV9L
RVlfU3lzX1JlcToKKyAgICAgICAgcmV0dXJuICJQcmludFNjcmVlbiJfczsKKyAgICBjYXNlIFdQ
RV9LRVlfSGliZXJuYXRlOgorICAgICAgICByZXR1cm4gIkhpYmVybmF0ZSJfczsKKyAgICBjYXNl
IFdQRV9LRVlfU3RhbmRieToKKyAgICBjYXNlIFdQRV9LRVlfU3VzcGVuZDoKKyAgICBjYXNlIFdQ
RV9LRVlfU2xlZXA6CisgICAgICAgIHJldHVybiAiU3RhbmRieSJfczsKKyAgICBjYXNlIFdQRV9L
RVlfV2FrZVVwOgorICAgICAgICByZXR1cm4gIldha2VVcCJfczsKKworICAgIC8vIElNRSBrZXlz
LgorICAgIGNhc2UgV1BFX0tFWV9NdWx0aXBsZUNhbmRpZGF0ZToKKyAgICAgICAgcmV0dXJuICJB
bGxDYW5kaWRhdGVzIl9zOworICAgIGNhc2UgV1BFX0tFWV9FaXN1X1NoaWZ0OgorICAgIGNhc2Ug
V1BFX0tFWV9FaXN1X3RvZ2dsZToKKyAgICAgICAgcmV0dXJuICJBbHBoYW51bWVyaWMiX3M7Cisg
ICAgY2FzZSBXUEVfS0VZX0NvZGVpbnB1dDoKKyAgICAgICAgcmV0dXJuICJDb2RlSW5wdXQiX3M7
CisgICAgY2FzZSBXUEVfS0VZX011bHRpX2tleToKKyAgICAgICAgcmV0dXJuICJDb21wb3NlIl9z
OworICAgIGNhc2UgV1BFX0tFWV9IZW5rYW46CisgICAgICAgIHJldHVybiAiQ29udmVydCJfczsK
KyAgICBjYXNlIFdQRV9LRVlfZGVhZF9ncmF2ZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9hY3V0
ZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9jaXJjdW1mbGV4OgorICAgIGNhc2UgV1BFX0tFWV9k
ZWFkX3RpbGRlOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX21hY3JvbjoKKyAgICBjYXNlIFdQRV9L
RVlfZGVhZF9icmV2ZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9hYm92ZWRvdDoKKyAgICBjYXNl
IFdQRV9LRVlfZGVhZF9kaWFlcmVzaXM6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfYWJvdmVyaW5n
OgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2RvdWJsZWFjdXRlOgorICAgIGNhc2UgV1BFX0tFWV9k
ZWFkX2Nhcm9uOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2NlZGlsbGE6CisgICAgY2FzZSBXUEVf
S0VZX2RlYWRfb2dvbmVrOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2lvdGE6CisgICAgY2FzZSBX
UEVfS0VZX2RlYWRfdm9pY2VkX3NvdW5kOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX3NlbWl2b2lj
ZWRfc291bmQ6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfYmVsb3dkb3Q6CisgICAgY2FzZSBXUEVf
S0VZX2RlYWRfaG9vazoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9ob3JuOgorICAgIGNhc2UgV1BF
X0tFWV9kZWFkX3N0cm9rZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9hYm92ZWNvbW1hOgorICAg
IGNhc2UgV1BFX0tFWV9kZWFkX2Fib3ZlcmV2ZXJzZWRjb21tYToKKyAgICBjYXNlIFdQRV9LRVlf
ZGVhZF9kb3VibGVncmF2ZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9iZWxvd3Jpbmc6CisgICAg
Y2FzZSBXUEVfS0VZX2RlYWRfYmVsb3dtYWNyb246CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfYmVs
b3djaXJjdW1mbGV4OgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2JlbG93dGlsZGU6CisgICAgY2Fz
ZSBXUEVfS0VZX2RlYWRfYmVsb3dicmV2ZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9iZWxvd2Rp
YWVyZXNpczoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9pbnZlcnRlZGJyZXZlOgorICAgIGNhc2Ug
V1BFX0tFWV9kZWFkX2JlbG93Y29tbWE6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfY3VycmVuY3k6
CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfYToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9BOgorICAg
IGNhc2UgV1BFX0tFWV9kZWFkX2U6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfRToKKyAgICBjYXNl
IFdQRV9LRVlfZGVhZF9pOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX0k6CisgICAgY2FzZSBXUEVf
S0VZX2RlYWRfbzoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9POgorICAgIGNhc2UgV1BFX0tFWV9k
ZWFkX3U6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfVToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9z
bWFsbF9zY2h3YToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9jYXBpdGFsX3NjaHdhOgorICAgICAg
ICByZXR1cm4gIkRlYWQiX3M7CisgICAgLy8gRmluYWxNb2RlCisgICAgY2FzZSBXUEVfS0VZX0lT
T19GaXJzdF9Hcm91cDoKKyAgICAgICAgcmV0dXJuICJHcm91cEZpcnN0Il9zOworICAgIGNhc2Ug
V1BFX0tFWV9JU09fTGFzdF9Hcm91cDoKKyAgICAgICAgcmV0dXJuICJHcm91cExhc3QiX3M7Cisg
ICAgY2FzZSBXUEVfS0VZX0lTT19OZXh0X0dyb3VwOgorICAgICAgICByZXR1cm4gIkdyb3VwTmV4
dCJfczsKKyAgICBjYXNlIFdQRV9LRVlfSVNPX1ByZXZfR3JvdXA6CisgICAgICAgIHJldHVybiAi
R3JvdXBQcmV2aW91cyJfczsKKyAgICBjYXNlIFdQRV9LRVlfTW9kZV9zd2l0Y2g6CisgICAgICAg
IHJldHVybiAiTW9kZUNoYW5nZSJfczsKKyAgICAvLyBOZXh0Q2FuZGlkYXRlLgorICAgIGNhc2Ug
V1BFX0tFWV9NdWhlbmthbjoKKyAgICAgICAgcmV0dXJuICJOb25Db252ZXJ0Il9zOworICAgIGNh
c2UgV1BFX0tFWV9QcmV2aW91c0NhbmRpZGF0ZToKKyAgICAgICAgcmV0dXJuICJQcmV2aW91c0Nh
bmRpZGF0ZSJfczsKKyAgICAvLyBQcm9jZXNzLgorICAgIGNhc2UgV1BFX0tFWV9TaW5nbGVDYW5k
aWRhdGU6CisgICAgICAgIHJldHVybiAiU2luZ2xlQ2FuZGlkYXRlIl9zOworCisgICAgLy8gS29y
ZWFuIGFuZCBKYXBhbmVzZSBrZXlzLgorICAgIGNhc2UgV1BFX0tFWV9IYW5ndWw6CisgICAgICAg
IHJldHVybiAiSGFuZ3VsTW9kZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfSGFuZ3VsX0hhbmphOgor
ICAgICAgICByZXR1cm4gIkhhbmphTW9kZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfSGFuZ3VsX0pl
b25qYToKKyAgICAgICAgcmV0dXJuICJKdW5qYU1vZGUiX3M7CisgICAgY2FzZSBXUEVfS0VZX0hh
bmtha3U6CisgICAgICAgIHJldHVybiAiSGFua2FrdSJfczsKKyAgICBjYXNlIFdQRV9LRVlfSGly
YWdhbmE6CisgICAgICAgIHJldHVybiAiSGlyYWdhbmEiX3M7CisgICAgY2FzZSBXUEVfS0VZX0hp
cmFnYW5hX0thdGFrYW5hOgorICAgICAgICByZXR1cm4gIkhpcmFnYW5hS2F0YWthbmEiX3M7Cisg
ICAgY2FzZSBXUEVfS0VZX0thbmFfTG9jazoKKyAgICBjYXNlIFdQRV9LRVlfS2FuYV9TaGlmdDoK
KyAgICAgICAgcmV0dXJuICJLYW5hTW9kZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfS2Fuamk6Cisg
ICAgICAgIHJldHVybiAiS2FuamlNb2RlIl9zOworICAgIGNhc2UgV1BFX0tFWV9LYXRha2FuYToK
KyAgICAgICAgcmV0dXJuICJLYXRha2FuYSJfczsKKyAgICBjYXNlIFdQRV9LRVlfUm9tYWppOgor
ICAgICAgICByZXR1cm4gIlJvbWFqaSJfczsKKyAgICBjYXNlIFdQRV9LRVlfWmVua2FrdToKKyAg
ICAgICAgcmV0dXJuICJaZW5rYWt1Il9zOworICAgIGNhc2UgV1BFX0tFWV9aZW5rYWt1X0hhbmth
a3U6CisgICAgICAgIHJldHVybiAiWmVua2FrdUhhbmFrdSJfczsKKworICAgIC8vIE11bHRpbWVk
aWEga2V5cy4KKyAgICAvLyBDaGFubmVsRG93bi4KKyAgICAvLyBDaGFubmVsVXAuCisgICAgY2Fz
ZSBXUEVfS0VZX0Nsb3NlOgorICAgICAgICByZXR1cm4gIkNsb3NlIl9zOworICAgIGNhc2UgV1BF
X0tFWV9NYWlsRm9yd2FyZDoKKyAgICAgICAgcmV0dXJuICJNYWlsRm9yd2FyZCJfczsKKyAgICBj
YXNlIFdQRV9LRVlfUmVwbHk6CisgICAgICAgIHJldHVybiAiTWFpbFJlcGx5Il9zOworICAgIGNh
c2UgV1BFX0tFWV9TZW5kOgorICAgICAgICByZXR1cm4gIk1haWxTZW5kIl9zOworICAgIGNhc2Ug
V1BFX0tFWV9BdWRpb0ZvcndhcmQ6CisgICAgICAgIHJldHVybiAiTWVkaWFGYXN0Rm9yd2FyZCJf
czsKKyAgICBjYXNlIFdQRV9LRVlfQXVkaW9QYXVzZToKKyAgICAgICAgcmV0dXJuICJNZWRpYVBh
dXNlIl9zOworICAgIGNhc2UgV1BFX0tFWV9BdWRpb1BsYXk6CisgICAgICAgIHJldHVybiAiTWVk
aWFQbGF5Il9zOworICAgIC8vIE1lZGlhUGxheVBhdXNlCisgICAgY2FzZSBXUEVfS0VZX0F1ZGlv
UmVjb3JkOgorICAgICAgICByZXR1cm4gIk1lZGlhUmVjb3JkIl9zOworICAgIGNhc2UgV1BFX0tF
WV9BdWRpb1Jld2luZDoKKyAgICAgICAgcmV0dXJuICJNZWRpYVJld2luZCJfczsKKyAgICBjYXNl
IFdQRV9LRVlfQXVkaW9TdG9wOgorICAgICAgICByZXR1cm4gIk1lZGlhU3RvcCJfczsKKyAgICBj
YXNlIFdQRV9LRVlfQXVkaW9OZXh0OgorICAgICAgICByZXR1cm4gIk1lZGlhVHJhY2tOZXh0Il9z
OworICAgIGNhc2UgV1BFX0tFWV9BdWRpb1ByZXY6CisgICAgICAgIHJldHVybiAiTWVkaWFUcmFj
a1ByZXZpb3VzIl9zOworICAgIGNhc2UgV1BFX0tFWV9OZXc6CisgICAgICAgIHJldHVybiAiTmV3
Il9zOworICAgIGNhc2UgV1BFX0tFWV9PcGVuOgorICAgICAgICByZXR1cm4gIk9wZW4iX3M7Cisg
ICAgLy8gUHJpbnQuCisgICAgY2FzZSBXUEVfS0VZX1NhdmU6CisgICAgICAgIHJldHVybiAiU2F2
ZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfU3BlbGw6CisgICAgICAgIHJldHVybiAiU3BlbGxDaGVj
ayJfczsKKworICAgIC8vIEZ1bmN0aW9uIGtleXMuCisgICAgY2FzZSBXUEVfS0VZX0YxOgorICAg
ICAgICByZXR1cm4gIkYxIl9zOworICAgIGNhc2UgV1BFX0tFWV9GMjoKKyAgICAgICAgcmV0dXJu
ICJGMiJfczsKKyAgICBjYXNlIFdQRV9LRVlfRjM6CisgICAgICAgIHJldHVybiAiRjMiX3M7Cisg
ICAgY2FzZSBXUEVfS0VZX0Y0OgorICAgICAgICByZXR1cm4gIkY0Il9zOworICAgIGNhc2UgV1BF
X0tFWV9GNToKKyAgICAgICAgcmV0dXJuICJGNSJfczsKKyAgICBjYXNlIFdQRV9LRVlfRjY6Cisg
ICAgICAgIHJldHVybiAiRjYiX3M7CisgICAgY2FzZSBXUEVfS0VZX0Y3OgorICAgICAgICByZXR1
cm4gIkY3Il9zOworICAgIGNhc2UgV1BFX0tFWV9GODoKKyAgICAgICAgcmV0dXJuICJGOCJfczsK
KyAgICBjYXNlIFdQRV9LRVlfRjk6CisgICAgICAgIHJldHVybiAiRjkiX3M7CisgICAgY2FzZSBX
UEVfS0VZX0YxMDoKKyAgICAgICAgcmV0dXJuICJGMTAiX3M7CisgICAgY2FzZSBXUEVfS0VZX0Yx
MToKKyAgICAgICAgcmV0dXJuICJGMTEiX3M7CisgICAgY2FzZSBXUEVfS0VZX0YxMjoKKyAgICAg
ICAgcmV0dXJuICJGMTIiX3M7CisgICAgY2FzZSBXUEVfS0VZX0YxMzoKKyAgICAgICAgcmV0dXJu
ICJGMTMiX3M7CisgICAgY2FzZSBXUEVfS0VZX0YxNDoKKyAgICAgICAgcmV0dXJuICJGMTQiX3M7
CisgICAgY2FzZSBXUEVfS0VZX0YxNToKKyAgICAgICAgcmV0dXJuICJGMTUiX3M7CisgICAgY2Fz
ZSBXUEVfS0VZX0YxNjoKKyAgICAgICAgcmV0dXJuICJGMTYiX3M7CisgICAgY2FzZSBXUEVfS0VZ
X0YxNzoKKyAgICAgICAgcmV0dXJuICJGMTciX3M7CisgICAgY2FzZSBXUEVfS0VZX0YxODoKKyAg
ICAgICAgcmV0dXJuICJGMTgiX3M7CisgICAgY2FzZSBXUEVfS0VZX0YxOToKKyAgICAgICAgcmV0
dXJuICJGMTkiX3M7CisgICAgY2FzZSBXUEVfS0VZX0YyMDoKKyAgICAgICAgcmV0dXJuICJGMjAi
X3M7CisgICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgZ3VpbnQzMiB1
bmljb2RlQ2hhcmFjdGVyID0gd3BlX2tleV9jb2RlX3RvX3VuaWNvZGUoa2V5Q29kZSk7CisgICAg
aWYgKHVuaWNvZGVDaGFyYWN0ZXIpIHsKKyAgICAgICAgLy8gVVRGLTggd2lsbCB1c2UgdXAgdG8g
NiBieXRlcy4KKyAgICAgICAgY2hhciB1dGY4WzddID0geyAwIH07CisgICAgICAgIGdfdW5pY2hh
cl90b191dGY4KHVuaWNvZGVDaGFyYWN0ZXIsIHV0ZjgpOworICAgICAgICByZXR1cm4gU3RyaW5n
Ojpmcm9tVVRGOCh1dGY4KTsKKyAgICB9CisKKyAgICByZXR1cm4gIlVuaWRlbnRpZmllZCJfczsK
K30KKworLy8gRklYTUU6IFRoaXMgaXMgaW5jb21wbGV0ZS4gV2Ugc2hvdWxkIGNoYW5nZSB0aGlz
IHRvIG1pcnJvcgorLy8gbW9yZSBsaWtlIHdoYXQgRmlyZWZveCBkb2VzLCBhbmQgZ2VuZXJhdGUg
dGhlc2Ugc3dpdGNoIHN0YXRlbWVudHMKKy8vIGF0IGJ1aWxkIHRpbWUuCisvLyBodHRwczovL2Rl
dmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9BUEkvS2V5Ym9hcmRFdmVudC9jb2Rl
CitTdHJpbmcgUGxhdGZvcm1LZXlib2FyZEV2ZW50OjprZXlDb2RlRm9ySGFyZHdhcmVLZXlDb2Rl
KHVuc2lnbmVkIGtleUNvZGUpCit7CisgICAgc3dpdGNoIChrZXlDb2RlKSB7CisgICAgY2FzZSAw
eDAwMDk6CisgICAgICAgIHJldHVybiAiRXNjYXBlIl9zOworICAgIGNhc2UgMHgwMDBBOgorICAg
ICAgICByZXR1cm4gIkRpZ2l0MSJfczsKKyAgICBjYXNlIDB4MDAwQjoKKyAgICAgICAgcmV0dXJu
ICJEaWdpdDIiX3M7CisgICAgY2FzZSAweDAwMEM6CisgICAgICAgIHJldHVybiAiRGlnaXQzIl9z
OworICAgIGNhc2UgMHgwMDBEOgorICAgICAgICByZXR1cm4gIkRpZ2l0NCJfczsKKyAgICBjYXNl
IDB4MDAwRToKKyAgICAgICAgcmV0dXJuICJEaWdpdDUiX3M7CisgICAgY2FzZSAweDAwMEY6Cisg
ICAgICAgIHJldHVybiAiRGlnaXQ2Il9zOworICAgIGNhc2UgMHgwMDEwOgorICAgICAgICByZXR1
cm4gIkRpZ2l0NyJfczsKKyAgICBjYXNlIDB4MDAxMToKKyAgICAgICAgcmV0dXJuICJEaWdpdDgi
X3M7CisgICAgY2FzZSAweDAwMTI6CisgICAgICAgIHJldHVybiAiRGlnaXQ5Il9zOworICAgIGNh
c2UgMHgwMDEzOgorICAgICAgICByZXR1cm4gIkRpZ2l0MCJfczsKKyAgICBjYXNlIDB4MDAxNDoK
KyAgICAgICAgcmV0dXJuICJNaW51cyJfczsKKyAgICBjYXNlIDB4MDAxNToKKyAgICAgICAgcmV0
dXJuICJFcXVhbCJfczsKKyAgICBjYXNlIDB4MDAxNjoKKyAgICAgICAgcmV0dXJuICJCYWNrc3Bh
Y2UiX3M7CisgICAgY2FzZSAweDAwMTc6CisgICAgICAgIHJldHVybiAiVGFiIl9zOworICAgIGNh
c2UgMHgwMDE4OgorICAgICAgICByZXR1cm4gIktleVEiX3M7CisgICAgY2FzZSAweDAwMTk6Cisg
ICAgICAgIHJldHVybiAiS2V5VyJfczsKKyAgICBjYXNlIDB4MDAxQToKKyAgICAgICAgcmV0dXJu
ICJLZXlFIl9zOworICAgIGNhc2UgMHgwMDFCOgorICAgICAgICByZXR1cm4gIktleVIiX3M7Cisg
ICAgY2FzZSAweDAwMUM6CisgICAgICAgIHJldHVybiAiS2V5VCJfczsKKyAgICBjYXNlIDB4MDAx
RDoKKyAgICAgICAgcmV0dXJuICJLZXlZIl9zOworICAgIGNhc2UgMHgwMDFFOgorICAgICAgICBy
ZXR1cm4gIktleVUiX3M7CisgICAgY2FzZSAweDAwMUY6CisgICAgICAgIHJldHVybiAiS2V5SSJf
czsKKyAgICBjYXNlIDB4MDAyMDoKKyAgICAgICAgcmV0dXJuICJLZXlPIl9zOworICAgIGNhc2Ug
MHgwMDIxOgorICAgICAgICByZXR1cm4gIktleVAiX3M7CisgICAgY2FzZSAweDAwMjI6CisgICAg
ICAgIHJldHVybiAiQnJhY2tldExlZnQiX3M7CisgICAgY2FzZSAweDAwMjM6CisgICAgICAgIHJl
dHVybiAiQnJhY2tldFJpZ2h0Il9zOworICAgIGNhc2UgMHgwMDI0OgorICAgICAgICByZXR1cm4g
IkVudGVyIl9zOworICAgIGNhc2UgMHgwMDI1OgorICAgICAgICByZXR1cm4gIkNvbnRyb2xMZWZ0
Il9zOworICAgIGNhc2UgMHgwMDI2OgorICAgICAgICByZXR1cm4gIktleUEiX3M7CisgICAgY2Fz
ZSAweDAwMjc6CisgICAgICAgIHJldHVybiAiS2V5UyJfczsKKyAgICBjYXNlIDB4MDAyODoKKyAg
ICAgICAgcmV0dXJuICJLZXlEIl9zOworICAgIGNhc2UgMHgwMDI5OgorICAgICAgICByZXR1cm4g
IktleUYiX3M7CisgICAgY2FzZSAweDAwMkE6CisgICAgICAgIHJldHVybiAiS2V5RyJfczsKKyAg
ICBjYXNlIDB4MDAyQjoKKyAgICAgICAgcmV0dXJuICJLZXlIIl9zOworICAgIGNhc2UgMHgwMDJD
OgorICAgICAgICByZXR1cm4gIktleUoiX3M7CisgICAgY2FzZSAweDAwMkQ6CisgICAgICAgIHJl
dHVybiAiS2V5SyJfczsKKyAgICBjYXNlIDB4MDAyRToKKyAgICAgICAgcmV0dXJuICJLZXlMIl9z
OworICAgIGNhc2UgMHgwMDJGOgorICAgICAgICByZXR1cm4gIlNlbWljb2xvbiJfczsKKyAgICBj
YXNlIDB4MDAzMDoKKyAgICAgICAgcmV0dXJuICJRdW90ZSJfczsKKyAgICBjYXNlIDB4MDAzMToK
KyAgICAgICAgcmV0dXJuICJCYWNrcXVvdGUiX3M7CisgICAgY2FzZSAweDAwMzI6CisgICAgICAg
IHJldHVybiAiU2hpZnRMZWZ0Il9zOworICAgIGNhc2UgMHgwMDMzOgorICAgICAgICByZXR1cm4g
IkJhY2tzbGFzaCJfczsKKyAgICBjYXNlIDB4MDAzNDoKKyAgICAgICAgcmV0dXJuICJLZXlaIl9z
OworICAgIGNhc2UgMHgwMDM1OgorICAgICAgICByZXR1cm4gIktleVgiX3M7CisgICAgY2FzZSAw
eDAwMzY6CisgICAgICAgIHJldHVybiAiS2V5QyJfczsKKyAgICBjYXNlIDB4MDAzNzoKKyAgICAg
ICAgcmV0dXJuICJLZXlWIl9zOworICAgIGNhc2UgMHgwMDM4OgorICAgICAgICByZXR1cm4gIktl
eUIiX3M7CisgICAgY2FzZSAweDAwMzk6CisgICAgICAgIHJldHVybiAiS2V5TiJfczsKKyAgICBj
YXNlIDB4MDAzQToKKyAgICAgICAgcmV0dXJuICJLZXlNIl9zOworICAgIGNhc2UgMHgwMDNCOgor
ICAgICAgICByZXR1cm4gIkNvbW1hIl9zOworICAgIGNhc2UgMHgwMDNDOgorICAgICAgICByZXR1
cm4gIlBlcmlvZCJfczsKKyAgICBjYXNlIDB4MDAzRDoKKyAgICAgICAgcmV0dXJuICJTbGFzaCJf
czsKKyAgICBjYXNlIDB4MDAzRToKKyAgICAgICAgcmV0dXJuICJTaGlmdFJpZ2h0Il9zOworICAg
IGNhc2UgMHgwMDNGOgorICAgICAgICByZXR1cm4gIk51bXBhZE11bHRpcGx5Il9zOworICAgIGNh
c2UgMHgwMDQwOgorICAgICAgICByZXR1cm4gIkFsdExlZnQiX3M7CisgICAgY2FzZSAweDAwNDE6
CisgICAgICAgIHJldHVybiAiU3BhY2UiX3M7CisgICAgY2FzZSAweDAwNDI6CisgICAgICAgIHJl
dHVybiAiQ2Fwc0xvY2siX3M7CisgICAgY2FzZSAweDAwNDM6CisgICAgICAgIHJldHVybiAiRjEi
X3M7CisgICAgY2FzZSAweDAwNDQ6CisgICAgICAgIHJldHVybiAiRjIiX3M7CisgICAgY2FzZSAw
eDAwNDU6CisgICAgICAgIHJldHVybiAiRjMiX3M7CisgICAgY2FzZSAweDAwNDY6CisgICAgICAg
IHJldHVybiAiRjQiX3M7CisgICAgY2FzZSAweDAwNDc6CisgICAgICAgIHJldHVybiAiRjUiX3M7
CisgICAgY2FzZSAweDAwNDg6CisgICAgICAgIHJldHVybiAiRjYiX3M7CisgICAgY2FzZSAweDAw
NDk6CisgICAgICAgIHJldHVybiAiRjciX3M7CisgICAgY2FzZSAweDAwNEE6CisgICAgICAgIHJl
dHVybiAiRjgiX3M7CisgICAgY2FzZSAweDAwNEI6CisgICAgICAgIHJldHVybiAiRjkiX3M7Cisg
ICAgY2FzZSAweDAwNEM6CisgICAgICAgIHJldHVybiAiRjEwIl9zOworICAgIGNhc2UgMHgwMDRE
OgorICAgICAgICByZXR1cm4gIk51bUxvY2siX3M7CisgICAgY2FzZSAweDAwNEU6CisgICAgICAg
IHJldHVybiAiU2Nyb2xsTG9jayJfczsKKyAgICBjYXNlIDB4MDA0RjoKKyAgICAgICAgcmV0dXJu
ICJOdW1wYWQ3Il9zOworICAgIGNhc2UgMHgwMDUwOgorICAgICAgICByZXR1cm4gIk51bXBhZDgi
X3M7CisgICAgY2FzZSAweDAwNTE6CisgICAgICAgIHJldHVybiAiTnVtcGFkOSJfczsKKyAgICBj
YXNlIDB4MDA1MjoKKyAgICAgICAgcmV0dXJuICJOdW1wYWRTdWJ0cmFjdCJfczsKKyAgICBjYXNl
IDB4MDA1MzoKKyAgICAgICAgcmV0dXJuICJOdW1wYWQ0Il9zOworICAgIGNhc2UgMHgwMDU0Ogor
ICAgICAgICByZXR1cm4gIk51bXBhZDUiX3M7CisgICAgY2FzZSAweDAwNTU6CisgICAgICAgIHJl
dHVybiAiTnVtcGFkNiJfczsKKyAgICBjYXNlIDB4MDA1NjoKKyAgICAgICAgcmV0dXJuICJOdW1w
YWRBZGQiX3M7CisgICAgY2FzZSAweDAwNTc6CisgICAgICAgIHJldHVybiAiTnVtcGFkMSJfczsK
KyAgICBjYXNlIDB4MDA1ODoKKyAgICAgICAgcmV0dXJuICJOdW1wYWQyIl9zOworICAgIGNhc2Ug
MHgwMDU5OgorICAgICAgICByZXR1cm4gIk51bXBhZDMiX3M7CisgICAgY2FzZSAweDAwNUE6Cisg
ICAgICAgIHJldHVybiAiTnVtcGFkMCJfczsKKyAgICBjYXNlIDB4MDA1QjoKKyAgICAgICAgcmV0
dXJuICJOdW1wYWREZWNpbWFsIl9zOworICAgIGNhc2UgMHgwMDVFOgorICAgICAgICByZXR1cm4g
IkludGxCYWNrc2xhc2giX3M7CisgICAgY2FzZSAweDAwNUY6CisgICAgICAgIHJldHVybiAiRjEx
Il9zOworICAgIGNhc2UgMHgwMDYwOgorICAgICAgICByZXR1cm4gIkYxMiJfczsKKyAgICBjYXNl
IDB4MDA2MToKKyAgICAgICAgcmV0dXJuICJJbnRsUm8iX3M7CisgICAgY2FzZSAweDAwNjQ6Cisg
ICAgICAgIHJldHVybiAiQ29udmVydCJfczsKKyAgICBjYXNlIDB4MDA2NToKKyAgICAgICAgcmV0
dXJuICJLYW5hTW9kZSJfczsKKyAgICBjYXNlIDB4MDA2NjoKKyAgICAgICAgcmV0dXJuICJOb25D
b252ZXJ0Il9zOworICAgIGNhc2UgMHgwMDY4OgorICAgICAgICByZXR1cm4gIk51bXBhZEVudGVy
Il9zOworICAgIGNhc2UgMHgwMDY5OgorICAgICAgICByZXR1cm4gIkNvbnRyb2xSaWdodCJfczsK
KyAgICBjYXNlIDB4MDA2QToKKyAgICAgICAgcmV0dXJuICJOdW1wYWREaXZpZGUiX3M7CisgICAg
Y2FzZSAweDAwNkI6CisgICAgICAgIHJldHVybiAiUHJpbnRTY3JlZW4iX3M7CisgICAgY2FzZSAw
eDAwNkM6CisgICAgICAgIHJldHVybiAiQWx0UmlnaHQiX3M7CisgICAgY2FzZSAweDAwNkU6Cisg
ICAgICAgIHJldHVybiAiSG9tZSJfczsKKyAgICBjYXNlIDB4MDA2RjoKKyAgICAgICAgcmV0dXJu
ICJBcnJvd1VwIl9zOworICAgIGNhc2UgMHgwMDcwOgorICAgICAgICByZXR1cm4gIlBhZ2VVcCJf
czsKKyAgICBjYXNlIDB4MDA3MToKKyAgICAgICAgcmV0dXJuICJBcnJvd0xlZnQiX3M7CisgICAg
Y2FzZSAweDAwNzI6CisgICAgICAgIHJldHVybiAiQXJyb3dSaWdodCJfczsKKyAgICBjYXNlIDB4
MDA3MzoKKyAgICAgICAgcmV0dXJuICJFbmQiX3M7CisgICAgY2FzZSAweDAwNzQ6CisgICAgICAg
IHJldHVybiAiQXJyb3dEb3duIl9zOworICAgIGNhc2UgMHgwMDc1OgorICAgICAgICByZXR1cm4g
IlBhZ2VEb3duIl9zOworICAgIGNhc2UgMHgwMDc2OgorICAgICAgICByZXR1cm4gIkluc2VydCJf
czsKKyAgICBjYXNlIDB4MDA3NzoKKyAgICAgICAgcmV0dXJuICJEZWxldGUiX3M7CisgICAgY2Fz
ZSAweDAwNzk6CisgICAgICAgIHJldHVybiAiQXVkaW9Wb2x1bWVNdXRlIl9zOworICAgIGNhc2Ug
MHgwMDdBOgorICAgICAgICByZXR1cm4gIkF1ZGlvVm9sdW1lRG93biJfczsKKyAgICBjYXNlIDB4
MDA3QjoKKyAgICAgICAgcmV0dXJuICJBdWRpb1ZvbHVtZVVwIl9zOworICAgIGNhc2UgMHgwMDdE
OgorICAgICAgICByZXR1cm4gIk51bXBhZEVxdWFsIl9zOworICAgIGNhc2UgMHgwMDdGOgorICAg
ICAgICByZXR1cm4gIlBhdXNlIl9zOworICAgIGNhc2UgMHgwMDgxOgorICAgICAgICByZXR1cm4g
Ik51bXBhZENvbW1hIl9zOworICAgIGNhc2UgMHgwMDgyOgorICAgICAgICByZXR1cm4gIkxhbmcx
Il9zOworICAgIGNhc2UgMHgwMDgzOgorICAgICAgICByZXR1cm4gIkxhbmcyIl9zOworICAgIGNh
c2UgMHgwMDg0OgorICAgICAgICByZXR1cm4gIkludGxZZW4iX3M7CisgICAgY2FzZSAweDAwODU6
CisgICAgICAgIHJldHVybiAiT1NMZWZ0Il9zOworICAgIGNhc2UgMHgwMDg2OgorICAgICAgICBy
ZXR1cm4gIk9TUmlnaHQiX3M7CisgICAgY2FzZSAweDAwODc6CisgICAgICAgIHJldHVybiAiQ29u
dGV4dE1lbnUiX3M7CisgICAgY2FzZSAweDAwODg6CisgICAgICAgIHJldHVybiAiQnJvd3NlclN0
b3AiX3M7CisgICAgY2FzZSAweDAwODk6CisgICAgICAgIHJldHVybiAiQWdhaW4iX3M7CisgICAg
Y2FzZSAweDAwOEE6CisgICAgICAgIHJldHVybiAiUHJvcHMiX3M7CisgICAgY2FzZSAweDAwOEI6
CisgICAgICAgIHJldHVybiAiVW5kbyJfczsKKyAgICBjYXNlIDB4MDA4QzoKKyAgICAgICAgcmV0
dXJuICJTZWxlY3QiX3M7CisgICAgY2FzZSAweDAwOEQ6CisgICAgICAgIHJldHVybiAiQ29weSJf
czsKKyAgICBjYXNlIDB4MDA4RToKKyAgICAgICAgcmV0dXJuICJPcGVuIl9zOworICAgIGNhc2Ug
MHgwMDhGOgorICAgICAgICByZXR1cm4gIlBhc3RlIl9zOworICAgIGNhc2UgMHgwMDkwOgorICAg
ICAgICByZXR1cm4gIkZpbmQiX3M7CisgICAgY2FzZSAweDAwOTE6CisgICAgICAgIHJldHVybiAi
Q3V0Il9zOworICAgIGNhc2UgMHgwMDkyOgorICAgICAgICByZXR1cm4gIkhlbHAiX3M7CisgICAg
Y2FzZSAweDAwOTQ6CisgICAgICAgIHJldHVybiAiTGF1bmNoQXBwMiJfczsKKyAgICBjYXNlIDB4
MDA5NzoKKyAgICAgICAgcmV0dXJuICJXYWtlVXAiX3M7CisgICAgY2FzZSAweDAwOTg6CisgICAg
ICAgIHJldHVybiAiTGF1bmNoQXBwMSJfczsKKyAgICBjYXNlIDB4MDBBMzoKKyAgICAgICAgcmV0
dXJuICJMYXVuY2hNYWlsIl9zOworICAgIGNhc2UgMHgwMEE0OgorICAgICAgICByZXR1cm4gIkJy
b3dzZXJGYXZvcml0ZXMiX3M7CisgICAgY2FzZSAweDAwQTY6CisgICAgICAgIHJldHVybiAiQnJv
d3NlckJhY2siX3M7CisgICAgY2FzZSAweDAwQTc6CisgICAgICAgIHJldHVybiAiQnJvd3NlckZv
cndhcmQiX3M7CisgICAgY2FzZSAweDAwQTk6CisgICAgICAgIHJldHVybiAiRWplY3QiX3M7Cisg
ICAgY2FzZSAweDAwQUI6CisgICAgICAgIHJldHVybiAiTWVkaWFUcmFja05leHQiX3M7CisgICAg
Y2FzZSAweDAwQUM6CisgICAgICAgIHJldHVybiAiTWVkaWFQbGF5UGF1c2UiX3M7CisgICAgY2Fz
ZSAweDAwQUQ6CisgICAgICAgIHJldHVybiAiTWVkaWFUcmFja1ByZXZpb3VzIl9zOworICAgIGNh
c2UgMHgwMEFFOgorICAgICAgICByZXR1cm4gIk1lZGlhU3RvcCJfczsKKyAgICBjYXNlIDB4MDBC
MzoKKyAgICAgICAgcmV0dXJuICJMYXVuY2hNZWRpYVBsYXllciJfczsKKyAgICBjYXNlIDB4MDBC
NDoKKyAgICAgICAgcmV0dXJuICJCcm93c2VySG9tZSJfczsKKyAgICBjYXNlIDB4MDBCNToKKyAg
ICAgICAgcmV0dXJuICJCcm93c2VyUmVmcmVzaCJfczsKKyAgICBjYXNlIDB4MDBCRjoKKyAgICAg
ICAgcmV0dXJuICJGMTMiX3M7CisgICAgY2FzZSAweDAwQzA6CisgICAgICAgIHJldHVybiAiRjE0
Il9zOworICAgIGNhc2UgMHgwMEMxOgorICAgICAgICByZXR1cm4gIkYxNSJfczsKKyAgICBjYXNl
IDB4MDBDMjoKKyAgICAgICAgcmV0dXJuICJGMTYiX3M7CisgICAgY2FzZSAweDAwQzM6CisgICAg
ICAgIHJldHVybiAiRjE3Il9zOworICAgIGNhc2UgMHgwMEM0OgorICAgICAgICByZXR1cm4gIkYx
OCJfczsKKyAgICBjYXNlIDB4MDBDNToKKyAgICAgICAgcmV0dXJuICJGMTkiX3M7CisgICAgY2Fz
ZSAweDAwQzY6CisgICAgICAgIHJldHVybiAiRjIwIl9zOworICAgIGNhc2UgMHgwMEM3OgorICAg
ICAgICByZXR1cm4gIkYyMSJfczsKKyAgICBjYXNlIDB4MDBDODoKKyAgICAgICAgcmV0dXJuICJG
MjIiX3M7CisgICAgY2FzZSAweDAwQzk6CisgICAgICAgIHJldHVybiAiRjIzIl9zOworICAgIGNh
c2UgMHgwMENBOgorICAgICAgICByZXR1cm4gIkYyNCJfczsKKyAgICBjYXNlIDB4MDBFMToKKyAg
ICAgICAgcmV0dXJuICJCcm93c2VyU2VhcmNoIl9zOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJy
ZWFrOworICAgIH0KKyAgICByZXR1cm4gIlVuaWRlbnRpZmllZCJfczsKK30KKworLy8gRklYTUU6
IFRoaXMgaXMgaW5jb21wbGV0ZS4gV2Ugc2hvdWxkIGNoYW5nZSB0aGlzIHRvIG1pcnJvcgorLy8g
bW9yZSBsaWtlIHdoYXQgRmlyZWZveCBkb2VzLCBhbmQgZ2VuZXJhdGUgdGhlc2Ugc3dpdGNoIHN0
YXRlbWVudHMKKy8vIGF0IGJ1aWxkIHRpbWUuCitTdHJpbmcgUGxhdGZvcm1LZXlib2FyZEV2ZW50
OjprZXlJZGVudGlmaWVyRm9yV1BFS2V5Q29kZSh1bnNpZ25lZCBrZXlDb2RlKQoreworICAgIHN3
aXRjaCAoa2V5Q29kZSkgeworICAgIGNhc2UgV1BFX0tFWV9NZW51OgorICAgIGNhc2UgV1BFX0tF
WV9BbHRfTDoKKyAgICBjYXNlIFdQRV9LRVlfQWx0X1I6CisgICAgICAgIHJldHVybiAiQWx0IjsK
KyAgICBjYXNlIFdQRV9LRVlfQ2xlYXI6CisgICAgICAgIHJldHVybiAiQ2xlYXIiOworICAgIGNh
c2UgV1BFX0tFWV9Eb3duOgorICAgICAgICByZXR1cm4gIkRvd24iOworICAgICAgICAvLyAiRW5k
IgorICAgIGNhc2UgV1BFX0tFWV9FbmQ6CisgICAgICAgIHJldHVybiAiRW5kIjsKKyAgICAgICAg
Ly8gIkVudGVyIgorICAgIGNhc2UgV1BFX0tFWV9JU09fRW50ZXI6CisgICAgY2FzZSBXUEVfS0VZ
X0tQX0VudGVyOgorICAgIGNhc2UgV1BFX0tFWV9SZXR1cm46CisgICAgICAgIHJldHVybiAiRW50
ZXIiOworICAgIGNhc2UgV1BFX0tFWV9FeGVjdXRlOgorICAgICAgICByZXR1cm4gIkV4ZWN1dGUi
OworICAgIGNhc2UgV1BFX0tFWV9GMToKKyAgICAgICAgcmV0dXJuICJGMSI7CisgICAgY2FzZSBX
UEVfS0VZX0YyOgorICAgICAgICByZXR1cm4gIkYyIjsKKyAgICBjYXNlIFdQRV9LRVlfRjM6Cisg
ICAgICAgIHJldHVybiAiRjMiOworICAgIGNhc2UgV1BFX0tFWV9GNDoKKyAgICAgICAgcmV0dXJu
ICJGNCI7CisgICAgY2FzZSBXUEVfS0VZX0Y1OgorICAgICAgICByZXR1cm4gIkY1IjsKKyAgICBj
YXNlIFdQRV9LRVlfRjY6CisgICAgICAgIHJldHVybiAiRjYiOworICAgIGNhc2UgV1BFX0tFWV9G
NzoKKyAgICAgICAgcmV0dXJuICJGNyI7CisgICAgY2FzZSBXUEVfS0VZX0Y4OgorICAgICAgICBy
ZXR1cm4gIkY4IjsKKyAgICBjYXNlIFdQRV9LRVlfRjk6CisgICAgICAgIHJldHVybiAiRjkiOwor
ICAgIGNhc2UgV1BFX0tFWV9GMTA6CisgICAgICAgIHJldHVybiAiRjEwIjsKKyAgICBjYXNlIFdQ
RV9LRVlfRjExOgorICAgICAgICByZXR1cm4gIkYxMSI7CisgICAgY2FzZSBXUEVfS0VZX0YxMjoK
KyAgICAgICAgcmV0dXJuICJGMTIiOworICAgIGNhc2UgV1BFX0tFWV9GMTM6CisgICAgICAgIHJl
dHVybiAiRjEzIjsKKyAgICBjYXNlIFdQRV9LRVlfRjE0OgorICAgICAgICByZXR1cm4gIkYxNCI7
CisgICAgY2FzZSBXUEVfS0VZX0YxNToKKyAgICAgICAgcmV0dXJuICJGMTUiOworICAgIGNhc2Ug
V1BFX0tFWV9GMTY6CisgICAgICAgIHJldHVybiAiRjE2IjsKKyAgICBjYXNlIFdQRV9LRVlfRjE3
OgorICAgICAgICByZXR1cm4gIkYxNyI7CisgICAgY2FzZSBXUEVfS0VZX0YxODoKKyAgICAgICAg
cmV0dXJuICJGMTgiOworICAgIGNhc2UgV1BFX0tFWV9GMTk6CisgICAgICAgIHJldHVybiAiRjE5
IjsKKyAgICBjYXNlIFdQRV9LRVlfRjIwOgorICAgICAgICByZXR1cm4gIkYyMCI7CisgICAgY2Fz
ZSBXUEVfS0VZX0YyMToKKyAgICAgICAgcmV0dXJuICJGMjEiOworICAgIGNhc2UgV1BFX0tFWV9G
MjI6CisgICAgICAgIHJldHVybiAiRjIyIjsKKyAgICBjYXNlIFdQRV9LRVlfRjIzOgorICAgICAg
ICByZXR1cm4gIkYyMyI7CisgICAgY2FzZSBXUEVfS0VZX0YyNDoKKyAgICAgICAgcmV0dXJuICJG
MjQiOworICAgIGNhc2UgV1BFX0tFWV9IZWxwOgorICAgICAgICByZXR1cm4gIkhlbHAiOworICAg
IGNhc2UgV1BFX0tFWV9Ib21lOgorICAgICAgICByZXR1cm4gIkhvbWUiOworICAgIGNhc2UgV1BF
X0tFWV9JbnNlcnQ6CisgICAgICAgIHJldHVybiAiSW5zZXJ0IjsKKyAgICBjYXNlIFdQRV9LRVlf
TGVmdDoKKyAgICAgICAgcmV0dXJuICJMZWZ0IjsKKyAgICBjYXNlIFdQRV9LRVlfUGFnZV9Eb3du
OgorICAgICAgICByZXR1cm4gIlBhZ2VEb3duIjsKKyAgICBjYXNlIFdQRV9LRVlfUGFnZV9VcDoK
KyAgICAgICAgcmV0dXJuICJQYWdlVXAiOworICAgIGNhc2UgV1BFX0tFWV9QYXVzZToKKyAgICAg
ICAgcmV0dXJuICJQYXVzZSI7CisgICAgY2FzZSBXUEVfS0VZXzMyNzBfUHJpbnRTY3JlZW46Cisg
ICAgY2FzZSBXUEVfS0VZX1ByaW50OgorICAgICAgICByZXR1cm4gIlByaW50U2NyZWVuIjsKKyAg
ICBjYXNlIFdQRV9LRVlfUmlnaHQ6CisgICAgICAgIHJldHVybiAiUmlnaHQiOworICAgIGNhc2Ug
V1BFX0tFWV9TZWxlY3Q6CisgICAgICAgIHJldHVybiAiU2VsZWN0IjsKKyAgICBjYXNlIFdQRV9L
RVlfVXA6CisgICAgICAgIHJldHVybiAiVXAiOworICAgICAgICAvLyBTdGFuZGFyZCBzYXlzIHRo
YXQgREVMIGJlY29tZXMgVSswMDdGLgorICAgIGNhc2UgV1BFX0tFWV9EZWxldGU6CisgICAgICAg
IHJldHVybiAiVSswMDdGIjsKKyAgICBjYXNlIFdQRV9LRVlfQmFja1NwYWNlOgorICAgICAgICBy
ZXR1cm4gIlUrMDAwOCI7CisgICAgY2FzZSBXUEVfS0VZX0lTT19MZWZ0X1RhYjoKKyAgICBjYXNl
IFdQRV9LRVlfMzI3MF9CYWNrVGFiOgorICAgIGNhc2UgV1BFX0tFWV9UYWI6CisgICAgICAgIHJl
dHVybiAiVSswMDA5IjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICByZXR1cm4gU3RyaW5nOjpmb3JtYXQoIlUrJTA0WCIsIHdwZV9rZXlfY29kZV90b191bmljb2Rl
KGtleUNvZGUpKTsKK30KKworaW50IFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6d2luZG93c0tleUNv
ZGVGb3JXUEVLZXlDb2RlKHVuc2lnbmVkIGtleWNvZGUpCit7CisgICAgc3dpdGNoIChrZXljb2Rl
KSB7CisgICAgY2FzZSBXUEVfS0VZX0tQXzA6CisgICAgICAgIHJldHVybiBWS19OVU1QQUQwOy8v
ICg2MCkgTnVtZXJpYyBrZXlwYWQgMCBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfMToKKyAgICAg
ICAgcmV0dXJuIFZLX05VTVBBRDE7Ly8gKDYxKSBOdW1lcmljIGtleXBhZCAxIGtleQorICAgIGNh
c2UgV1BFX0tFWV9LUF8yOgorICAgICAgICByZXR1cm4gIFZLX05VTVBBRDI7IC8vICg2MikgTnVt
ZXJpYyBrZXlwYWQgMiBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfMzoKKyAgICAgICAgcmV0dXJu
IFZLX05VTVBBRDM7IC8vICg2MykgTnVtZXJpYyBrZXlwYWQgMyBrZXkKKyAgICBjYXNlIFdQRV9L
RVlfS1BfNDoKKyAgICAgICAgcmV0dXJuIFZLX05VTVBBRDQ7IC8vICg2NCkgTnVtZXJpYyBrZXlw
YWQgNCBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfNToKKyAgICAgICAgcmV0dXJuIFZLX05VTVBB
RDU7IC8vKDY1KSBOdW1lcmljIGtleXBhZCA1IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF82Ogor
ICAgICAgICByZXR1cm4gVktfTlVNUEFENjsgLy8gKDY2KSBOdW1lcmljIGtleXBhZCA2IGtleQor
ICAgIGNhc2UgV1BFX0tFWV9LUF83OgorICAgICAgICByZXR1cm4gVktfTlVNUEFENzsgLy8gKDY3
KSBOdW1lcmljIGtleXBhZCA3IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF84OgorICAgICAgICBy
ZXR1cm4gVktfTlVNUEFEODsgLy8gKDY4KSBOdW1lcmljIGtleXBhZCA4IGtleQorICAgIGNhc2Ug
V1BFX0tFWV9LUF85OgorICAgICAgICByZXR1cm4gVktfTlVNUEFEOTsgLy8gKDY5KSBOdW1lcmlj
IGtleXBhZCA5IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9NdWx0aXBseToKKyAgICAgICAgcmV0
dXJuIFZLX01VTFRJUExZOyAvLyAoNkEpIE11bHRpcGx5IGtleQorICAgIGNhc2UgV1BFX0tFWV9L
UF9BZGQ6CisgICAgICAgIHJldHVybiBWS19BREQ7IC8vICg2QikgQWRkIGtleQorICAgIGNhc2Ug
V1BFX0tFWV9LUF9TdWJ0cmFjdDoKKyAgICAgICAgcmV0dXJuIFZLX1NVQlRSQUNUOyAvLyAoNkQp
IFN1YnRyYWN0IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9EZWNpbWFsOgorICAgICAgICByZXR1
cm4gVktfREVDSU1BTDsgLy8gKDZFKSBEZWNpbWFsIGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9E
aXZpZGU6CisgICAgICAgIHJldHVybiBWS19ESVZJREU7IC8vICg2RikgRGl2aWRlIGtleQorCisg
ICAgY2FzZSBXUEVfS0VZX0tQX1BhZ2VfVXA6CisgICAgICAgIHJldHVybiBWS19QUklPUjsgLy8g
KDIxKSBQQUdFIFVQIGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9QYWdlX0Rvd246CisgICAgICAg
IHJldHVybiBWS19ORVhUOyAvLyAoMjIpIFBBR0UgRE9XTiBrZXkKKyAgICBjYXNlIFdQRV9LRVlf
S1BfRW5kOgorICAgICAgICByZXR1cm4gVktfRU5EOyAvLyAoMjMpIEVORCBrZXkKKyAgICBjYXNl
IFdQRV9LRVlfS1BfSG9tZToKKyAgICAgICAgcmV0dXJuIFZLX0hPTUU7IC8vICgyNCkgSE9NRSBr
ZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfTGVmdDoKKyAgICAgICAgcmV0dXJuIFZLX0xFRlQ7IC8v
ICgyNSkgTEVGVCBBUlJPVyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfVXA6CisgICAgICAgIHJl
dHVybiBWS19VUDsgLy8gKDI2KSBVUCBBUlJPVyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfUmln
aHQ6CisgICAgICAgIHJldHVybiBWS19SSUdIVDsgLy8gKDI3KSBSSUdIVCBBUlJPVyBrZXkKKyAg
ICBjYXNlIFdQRV9LRVlfS1BfRG93bjoKKyAgICAgICAgcmV0dXJuIFZLX0RPV047IC8vICgyOCkg
RE9XTiBBUlJPVyBrZXkKKworICAgIGNhc2UgV1BFX0tFWV9CYWNrU3BhY2U6CisgICAgICAgIHJl
dHVybiBWS19CQUNLOyAvLyAoMDgpIEJBQ0tTUEFDRSBrZXkKKyAgICBjYXNlIFdQRV9LRVlfSVNP
X0xlZnRfVGFiOgorICAgIGNhc2UgV1BFX0tFWV8zMjcwX0JhY2tUYWI6CisgICAgY2FzZSBXUEVf
S0VZX1RhYjoKKyAgICAgICAgcmV0dXJuIFZLX1RBQjsgLy8gKDA5KSBUQUIga2V5CisgICAgY2Fz
ZSBXUEVfS0VZX0NsZWFyOgorICAgICAgICByZXR1cm4gVktfQ0xFQVI7IC8vICgwQykgQ0xFQVIg
a2V5CisgICAgY2FzZSBXUEVfS0VZX0lTT19FbnRlcjoKKyAgICBjYXNlIFdQRV9LRVlfS1BfRW50
ZXI6CisgICAgY2FzZSBXUEVfS0VZX1JldHVybjoKKyAgICAgICAgcmV0dXJuIFZLX1JFVFVSTjsg
Ly8oMEQpIFJldHVybiBrZXkKKworICAgICAgICAvLyBWS19TSElGVCAoMTApIFNISUZUIGtleQor
ICAgICAgICAvLyBWS19DT05UUk9MICgxMSkgQ1RSTCBrZXkKKworICAgIGNhc2UgV1BFX0tFWV9N
ZW51OgorICAgICAgICByZXR1cm4gVktfQVBQUzsgIC8vICg1RCkgQXBwbGljYXRpb25zIGtleSAo
TmF0dXJhbCBrZXlib2FyZCkKKworICAgICAgICAvLyBWS19NRU5VICgxMikgQUxUIGtleQorCisg
ICAgY2FzZSBXUEVfS0VZX1BhdXNlOgorICAgICAgICByZXR1cm4gVktfUEFVU0U7IC8vICgxMykg
UEFVU0Uga2V5CisgICAgY2FzZSBXUEVfS0VZX0NhcHNfTG9jazoKKyAgICAgICAgcmV0dXJuIFZL
X0NBUElUQUw7IC8vICgxNCkgQ0FQUyBMT0NLIGtleQorICAgIGNhc2UgV1BFX0tFWV9LYW5hX0xv
Y2s6CisgICAgY2FzZSBXUEVfS0VZX0thbmFfU2hpZnQ6CisgICAgICAgIHJldHVybiBWS19LQU5B
OyAvLyAoMTUpIElucHV0IE1ldGhvZCBFZGl0b3IgKElNRSkgS2FuYSBtb2RlCisgICAgY2FzZSBX
UEVfS0VZX0hhbmd1bDoKKyAgICAgICAgcmV0dXJuIFZLX0hBTkdVTDsgLy8gVktfSEFOR1VMICgx
NSkgSU1FIEhhbmd1bCBtb2RlCisgICAgICAgIC8vIFZLX0pVTkpBICgxNykgSU1FIEp1bmphIG1v
ZGUKKyAgICAgICAgLy8gVktfRklOQUwgKDE4KSBJTUUgZmluYWwgbW9kZQorICAgIGNhc2UgV1BF
X0tFWV9IYW5ndWxfSGFuamE6CisgICAgICAgIHJldHVybiBWS19IQU5KQTsgLy8gKDE5KSBJTUUg
SGFuamEgbW9kZQorICAgIGNhc2UgV1BFX0tFWV9LYW5qaToKKyAgICAgICAgcmV0dXJuIFZLX0tB
TkpJOyAvLyAoMTkpIElNRSBLYW5qaSBtb2RlCisgICAgY2FzZSBXUEVfS0VZX0VzY2FwZToKKyAg
ICAgICAgcmV0dXJuIFZLX0VTQ0FQRTsgLy8gKDFCKSBFU0Mga2V5CisgICAgICAgIC8vIFZLX0NP
TlZFUlQgKDFDKSBJTUUgY29udmVydAorICAgICAgICAvLyBWS19OT05DT05WRVJUICgxRCkgSU1F
IG5vbmNvbnZlcnQKKyAgICAgICAgLy8gVktfQUNDRVBUICgxRSkgSU1FIGFjY2VwdAorICAgICAg
ICAvLyBWS19NT0RFQ0hBTkdFICgxRikgSU1FIG1vZGUgY2hhbmdlIHJlcXVlc3QKKyAgICBjYXNl
IFdQRV9LRVlfc3BhY2U6CisgICAgICAgIHJldHVybiBWS19TUEFDRTsgLy8gKDIwKSBTUEFDRUJB
UgorICAgIGNhc2UgV1BFX0tFWV9QYWdlX1VwOgorICAgICAgICByZXR1cm4gVktfUFJJT1I7IC8v
ICgyMSkgUEFHRSBVUCBrZXkKKyAgICBjYXNlIFdQRV9LRVlfUGFnZV9Eb3duOgorICAgICAgICBy
ZXR1cm4gVktfTkVYVDsgLy8gKDIyKSBQQUdFIERPV04ga2V5CisgICAgY2FzZSBXUEVfS0VZX0Vu
ZDoKKyAgICAgICAgcmV0dXJuIFZLX0VORDsgLy8gKDIzKSBFTkQga2V5CisgICAgY2FzZSBXUEVf
S0VZX0hvbWU6CisgICAgICAgIHJldHVybiBWS19IT01FOyAvLyAoMjQpIEhPTUUga2V5CisgICAg
Y2FzZSBXUEVfS0VZX0xlZnQ6CisgICAgICAgIHJldHVybiBWS19MRUZUOyAvLyAoMjUpIExFRlQg
QVJST1cga2V5CisgICAgY2FzZSBXUEVfS0VZX1VwOgorICAgICAgICByZXR1cm4gVktfVVA7IC8v
ICgyNikgVVAgQVJST1cga2V5CisgICAgY2FzZSBXUEVfS0VZX1JpZ2h0OgorICAgICAgICByZXR1
cm4gVktfUklHSFQ7IC8vICgyNykgUklHSFQgQVJST1cga2V5CisgICAgY2FzZSBXUEVfS0VZX0Rv
d246CisgICAgICAgIHJldHVybiBWS19ET1dOOyAvLyAoMjgpIERPV04gQVJST1cga2V5CisgICAg
Y2FzZSBXUEVfS0VZX1NlbGVjdDoKKyAgICAgICAgcmV0dXJuIFZLX1NFTEVDVDsgLy8gKDI5KSBT
RUxFQ1Qga2V5CisgICAgY2FzZSBXUEVfS0VZX1ByaW50OgorICAgICAgICByZXR1cm4gVktfU05B
UFNIT1Q7IC8vICgyQykgUFJJTlQgU0NSRUVOIGtleQorICAgIGNhc2UgV1BFX0tFWV9FeGVjdXRl
OgorICAgICAgICByZXR1cm4gVktfRVhFQ1VURTsvLyAoMkIpIEVYRUNVVEUga2V5CisgICAgY2Fz
ZSBXUEVfS0VZX0luc2VydDoKKyAgICBjYXNlIFdQRV9LRVlfS1BfSW5zZXJ0OgorICAgICAgICBy
ZXR1cm4gVktfSU5TRVJUOyAvLyAoMkQpIElOUyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfRGVsZXRl
OgorICAgIGNhc2UgV1BFX0tFWV9LUF9EZWxldGU6CisgICAgICAgIHJldHVybiBWS19ERUxFVEU7
IC8vICgyRSkgREVMIGtleQorICAgIGNhc2UgV1BFX0tFWV9IZWxwOgorICAgICAgICByZXR1cm4g
VktfSEVMUDsgLy8gKDJGKSBIRUxQIGtleQorICAgIGNhc2UgV1BFX0tFWV8wOgorICAgIGNhc2Ug
V1BFX0tFWV9wYXJlbnJpZ2h0OgorICAgICAgICByZXR1cm4gVktfMDsgICAgLy8gICgzMCkgMCkg
a2V5CisgICAgY2FzZSBXUEVfS0VZXzE6CisgICAgY2FzZSBXUEVfS0VZX2V4Y2xhbToKKyAgICAg
ICAgcmV0dXJuIFZLXzE7IC8vICAoMzEpIDEgISBrZXkKKyAgICBjYXNlIFdQRV9LRVlfMjoKKyAg
ICBjYXNlIFdQRV9LRVlfYXQ6CisgICAgICAgIHJldHVybiBWS18yOyAvLyAgKDMyKSAyICYga2V5
CisgICAgY2FzZSBXUEVfS0VZXzM6CisgICAgY2FzZSBXUEVfS0VZX251bWJlcnNpZ246CisgICAg
ICAgIHJldHVybiBWS18zOyAvL2Nhc2UgJzMnOiBjYXNlICcjJzsKKyAgICBjYXNlIFdQRV9LRVlf
NDoKKyAgICBjYXNlIFdQRV9LRVlfZG9sbGFyOiAvLyAgKDM0KSA0IGtleSAnJCc7CisgICAgICAg
IHJldHVybiBWS180OworICAgIGNhc2UgV1BFX0tFWV81OgorICAgIGNhc2UgV1BFX0tFWV9wZXJj
ZW50OgorICAgICAgICByZXR1cm4gVktfNTsgLy8gICgzNSkgNSBrZXkgICclJworICAgIGNhc2Ug
V1BFX0tFWV82OgorICAgIGNhc2UgV1BFX0tFWV9hc2NpaWNpcmN1bToKKyAgICAgICAgcmV0dXJu
IFZLXzY7IC8vICAoMzYpIDYga2V5ICAnXicKKyAgICBjYXNlIFdQRV9LRVlfNzoKKyAgICBjYXNl
IFdQRV9LRVlfYW1wZXJzYW5kOgorICAgICAgICByZXR1cm4gVktfNzsgLy8gICgzNykgNyBrZXkg
IGNhc2UgJyYnCisgICAgY2FzZSBXUEVfS0VZXzg6CisgICAgY2FzZSBXUEVfS0VZX2FzdGVyaXNr
OgorICAgICAgICByZXR1cm4gVktfODsgLy8gICgzOCkgOCBrZXkgICcqJworICAgIGNhc2UgV1BF
X0tFWV85OgorICAgIGNhc2UgV1BFX0tFWV9wYXJlbmxlZnQ6CisgICAgICAgIHJldHVybiBWS185
OyAvLyAgKDM5KSA5IGtleSAnKCcKKyAgICBjYXNlIFdQRV9LRVlfYToKKyAgICBjYXNlIFdQRV9L
RVlfQToKKyAgICAgICAgcmV0dXJuIFZLX0E7IC8vICAoNDEpIEEga2V5IGNhc2UgJ2EnOiBjYXNl
ICdBJzogcmV0dXJuIDB4NDE7CisgICAgY2FzZSBXUEVfS0VZX2I6CisgICAgY2FzZSBXUEVfS0VZ
X0I6CisgICAgICAgIHJldHVybiBWS19COyAvLyAgKDQyKSBCIGtleSBjYXNlICdiJzogY2FzZSAn
Qic6IHJldHVybiAweDQyOworICAgIGNhc2UgV1BFX0tFWV9jOgorICAgIGNhc2UgV1BFX0tFWV9D
OgorICAgICAgICByZXR1cm4gVktfQzsgLy8gICg0MykgQyBrZXkgY2FzZSAnYyc6IGNhc2UgJ0Mn
OiByZXR1cm4gMHg0MzsKKyAgICBjYXNlIFdQRV9LRVlfZDoKKyAgICBjYXNlIFdQRV9LRVlfRDoK
KyAgICAgICAgcmV0dXJuIFZLX0Q7IC8vICAoNDQpIEQga2V5IGNhc2UgJ2QnOiBjYXNlICdEJzog
cmV0dXJuIDB4NDQ7CisgICAgY2FzZSBXUEVfS0VZX2U6CisgICAgY2FzZSBXUEVfS0VZX0U6Cisg
ICAgICAgIHJldHVybiBWS19FOyAvLyAgKDQ1KSBFIGtleSBjYXNlICdlJzogY2FzZSAnRSc6IHJl
dHVybiAweDQ1OworICAgIGNhc2UgV1BFX0tFWV9mOgorICAgIGNhc2UgV1BFX0tFWV9GOgorICAg
ICAgICByZXR1cm4gVktfRjsgLy8gICg0NikgRiBrZXkgY2FzZSAnZic6IGNhc2UgJ0YnOiByZXR1
cm4gMHg0NjsKKyAgICBjYXNlIFdQRV9LRVlfZzoKKyAgICBjYXNlIFdQRV9LRVlfRzoKKyAgICAg
ICAgcmV0dXJuIFZLX0c7IC8vICAoNDcpIEcga2V5IGNhc2UgJ2cnOiBjYXNlICdHJzogcmV0dXJu
IDB4NDc7CisgICAgY2FzZSBXUEVfS0VZX2g6CisgICAgY2FzZSBXUEVfS0VZX0g6CisgICAgICAg
IHJldHVybiBWS19IOyAvLyAgKDQ4KSBIIGtleSBjYXNlICdoJzogY2FzZSAnSCc6IHJldHVybiAw
eDQ4OworICAgIGNhc2UgV1BFX0tFWV9pOgorICAgIGNhc2UgV1BFX0tFWV9JOgorICAgICAgICBy
ZXR1cm4gVktfSTsgLy8gICg0OSkgSSBrZXkgY2FzZSAnaSc6IGNhc2UgJ0knOiByZXR1cm4gMHg0
OTsKKyAgICBjYXNlIFdQRV9LRVlfajoKKyAgICBjYXNlIFdQRV9LRVlfSjoKKyAgICAgICAgcmV0
dXJuIFZLX0o7IC8vICAoNEEpIEoga2V5IGNhc2UgJ2onOiBjYXNlICdKJzogcmV0dXJuIDB4NEE7
CisgICAgY2FzZSBXUEVfS0VZX2s6CisgICAgY2FzZSBXUEVfS0VZX0s6CisgICAgICAgIHJldHVy
biBWS19LOyAvLyAgKDRCKSBLIGtleSBjYXNlICdrJzogY2FzZSAnSyc6IHJldHVybiAweDRCOwor
ICAgIGNhc2UgV1BFX0tFWV9sOgorICAgIGNhc2UgV1BFX0tFWV9MOgorICAgICAgICByZXR1cm4g
VktfTDsgLy8gICg0QykgTCBrZXkgY2FzZSAnbCc6IGNhc2UgJ0wnOiByZXR1cm4gMHg0QzsKKyAg
ICBjYXNlIFdQRV9LRVlfbToKKyAgICBjYXNlIFdQRV9LRVlfTToKKyAgICAgICAgcmV0dXJuIFZL
X007IC8vICAoNEQpIE0ga2V5IGNhc2UgJ20nOiBjYXNlICdNJzogcmV0dXJuIDB4NEQ7CisgICAg
Y2FzZSBXUEVfS0VZX246CisgICAgY2FzZSBXUEVfS0VZX046CisgICAgICAgIHJldHVybiBWS19O
OyAvLyAgKDRFKSBOIGtleSBjYXNlICduJzogY2FzZSAnTic6IHJldHVybiAweDRFOworICAgIGNh
c2UgV1BFX0tFWV9vOgorICAgIGNhc2UgV1BFX0tFWV9POgorICAgICAgICByZXR1cm4gVktfTzsg
Ly8gICg0RikgTyBrZXkgY2FzZSAnbyc6IGNhc2UgJ08nOiByZXR1cm4gMHg0RjsKKyAgICBjYXNl
IFdQRV9LRVlfcDoKKyAgICBjYXNlIFdQRV9LRVlfUDoKKyAgICAgICAgcmV0dXJuIFZLX1A7IC8v
ICAoNTApIFAga2V5IGNhc2UgJ3AnOiBjYXNlICdQJzogcmV0dXJuIDB4NTA7CisgICAgY2FzZSBX
UEVfS0VZX3E6CisgICAgY2FzZSBXUEVfS0VZX1E6CisgICAgICAgIHJldHVybiBWS19ROyAvLyAg
KDUxKSBRIGtleSBjYXNlICdxJzogY2FzZSAnUSc6IHJldHVybiAweDUxOworICAgIGNhc2UgV1BF
X0tFWV9yOgorICAgIGNhc2UgV1BFX0tFWV9SOgorICAgICAgICByZXR1cm4gVktfUjsgLy8gICg1
MikgUiBrZXkgY2FzZSAncic6IGNhc2UgJ1InOiByZXR1cm4gMHg1MjsKKyAgICBjYXNlIFdQRV9L
RVlfczoKKyAgICBjYXNlIFdQRV9LRVlfUzoKKyAgICAgICAgcmV0dXJuIFZLX1M7IC8vICAoNTMp
IFMga2V5IGNhc2UgJ3MnOiBjYXNlICdTJzogcmV0dXJuIDB4NTM7CisgICAgY2FzZSBXUEVfS0VZ
X3Q6CisgICAgY2FzZSBXUEVfS0VZX1Q6CisgICAgICAgIHJldHVybiBWS19UOyAvLyAgKDU0KSBU
IGtleSBjYXNlICd0JzogY2FzZSAnVCc6IHJldHVybiAweDU0OworICAgIGNhc2UgV1BFX0tFWV91
OgorICAgIGNhc2UgV1BFX0tFWV9VOgorICAgICAgICByZXR1cm4gVktfVTsgLy8gICg1NSkgVSBr
ZXkgY2FzZSAndSc6IGNhc2UgJ1UnOiByZXR1cm4gMHg1NTsKKyAgICBjYXNlIFdQRV9LRVlfdjoK
KyAgICBjYXNlIFdQRV9LRVlfVjoKKyAgICAgICAgcmV0dXJuIFZLX1Y7IC8vICAoNTYpIFYga2V5
IGNhc2UgJ3YnOiBjYXNlICdWJzogcmV0dXJuIDB4NTY7CisgICAgY2FzZSBXUEVfS0VZX3c6Cisg
ICAgY2FzZSBXUEVfS0VZX1c6CisgICAgICAgIHJldHVybiBWS19XOyAvLyAgKDU3KSBXIGtleSBj
YXNlICd3JzogY2FzZSAnVyc6IHJldHVybiAweDU3OworICAgIGNhc2UgV1BFX0tFWV94OgorICAg
IGNhc2UgV1BFX0tFWV9YOgorICAgICAgICByZXR1cm4gVktfWDsgLy8gICg1OCkgWCBrZXkgY2Fz
ZSAneCc6IGNhc2UgJ1gnOiByZXR1cm4gMHg1ODsKKyAgICBjYXNlIFdQRV9LRVlfeToKKyAgICBj
YXNlIFdQRV9LRVlfWToKKyAgICAgICAgcmV0dXJuIFZLX1k7IC8vICAoNTkpIFkga2V5IGNhc2Ug
J3knOiBjYXNlICdZJzogcmV0dXJuIDB4NTk7CisgICAgY2FzZSBXUEVfS0VZX3o6CisgICAgY2Fz
ZSBXUEVfS0VZX1o6CisgICAgICAgIHJldHVybiBWS19aOyAvLyAgKDVBKSBaIGtleSBjYXNlICd6
JzogY2FzZSAnWic6IHJldHVybiAweDVBOworICAgIGNhc2UgV1BFX0tFWV9NZXRhX0w6CisgICAg
ICAgIHJldHVybiBWS19MV0lOOyAvLyAoNUIpIExlZnQgV2luZG93cyBrZXkgKE1pY3Jvc29mdCBO
YXR1cmFsIGtleWJvYXJkKQorICAgIGNhc2UgV1BFX0tFWV9NZXRhX1I6CisgICAgICAgIHJldHVy
biBWS19SV0lOOyAvLyAoNUMpIFJpZ2h0IFdpbmRvd3Mga2V5IChOYXR1cmFsIGtleWJvYXJkKQor
ICAgICAgICAvLyBWS19TTEVFUCAoNUYpIENvbXB1dGVyIFNsZWVwIGtleQorICAgICAgICAvLyBW
S19TRVBBUkFUT1IgKDZDKSBTZXBhcmF0b3Iga2V5CisgICAgICAgIC8vIFZLX1NVQlRSQUNUICg2
RCkgU3VidHJhY3Qga2V5CisgICAgICAgIC8vIFZLX0RFQ0lNQUwgKDZFKSBEZWNpbWFsIGtleQor
ICAgICAgICAvLyBWS19ESVZJREUgKDZGKSBEaXZpZGUga2V5CisgICAgICAgIC8vIGhhbmRsZWQg
Ynkga2V5IGNvZGUgYWJvdmUKKworICAgIGNhc2UgV1BFX0tFWV9OdW1fTG9jazoKKyAgICAgICAg
cmV0dXJuIFZLX05VTUxPQ0s7IC8vICg5MCkgTlVNIExPQ0sga2V5CisKKyAgICBjYXNlIFdQRV9L
RVlfU2Nyb2xsX0xvY2s6CisgICAgICAgIHJldHVybiBWS19TQ1JPTEw7IC8vICg5MSkgU0NST0xM
IExPQ0sga2V5CisKKyAgICBjYXNlIFdQRV9LRVlfU2hpZnRfTDoKKyAgICAgICAgcmV0dXJuIFZL
X0xTSElGVDsgLy8gKEEwKSBMZWZ0IFNISUZUIGtleQorICAgIGNhc2UgV1BFX0tFWV9TaGlmdF9S
OgorICAgICAgICByZXR1cm4gVktfUlNISUZUOyAvLyAoQTEpIFJpZ2h0IFNISUZUIGtleQorICAg
IGNhc2UgV1BFX0tFWV9Db250cm9sX0w6CisgICAgICAgIHJldHVybiBWS19MQ09OVFJPTDsgLy8g
KEEyKSBMZWZ0IENPTlRST0wga2V5CisgICAgY2FzZSBXUEVfS0VZX0NvbnRyb2xfUjoKKyAgICAg
ICAgcmV0dXJuIFZLX1JDT05UUk9MOyAvLyAoQTMpIFJpZ2h0IENPTlRST0wga2V5CisgICAgY2Fz
ZSBXUEVfS0VZX0FsdF9MOgorICAgICAgICByZXR1cm4gVktfTE1FTlU7IC8vIChBNCkgTGVmdCBN
RU5VIGtleQorICAgIGNhc2UgV1BFX0tFWV9BbHRfUjoKKyAgICAgICAgcmV0dXJuIFZLX1JNRU5V
OyAvLyAoQTUpIFJpZ2h0IE1FTlUga2V5CisKKyAgICAgICAgLy8gVktfQlJPV1NFUl9CQUNLIChB
NikgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIEJhY2sga2V5CisgICAgICAgIC8vIFZLX0JST1dT
RVJfRk9SV0FSRCAoQTcpIFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBGb3J3YXJkIGtleQorICAg
ICAgICAvLyBWS19CUk9XU0VSX1JFRlJFU0ggKEE4KSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIg
UmVmcmVzaCBrZXkKKyAgICAgICAgLy8gVktfQlJPV1NFUl9TVE9QIChBOSkgV2luZG93cyAyMDAw
L1hQOiBCcm93c2VyIFN0b3Aga2V5CisgICAgICAgIC8vIFZLX0JST1dTRVJfU0VBUkNIIChBQSkg
V2luZG93cyAyMDAwL1hQOiBCcm93c2VyIFNlYXJjaCBrZXkKKyAgICAgICAgLy8gVktfQlJPV1NF
Ul9GQVZPUklURVMgKEFCKSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgRmF2b3JpdGVzIGtleQor
ICAgICAgICAvLyBWS19CUk9XU0VSX0hPTUUgKEFDKSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIg
U3RhcnQgYW5kIEhvbWUga2V5CisgICAgICAgIC8vIFZLX1ZPTFVNRV9NVVRFIChBRCkgV2luZG93
cyAyMDAwL1hQOiBWb2x1bWUgTXV0ZSBrZXkKKyAgICAgICAgLy8gVktfVk9MVU1FX0RPV04gKEFF
KSBXaW5kb3dzIDIwMDAvWFA6IFZvbHVtZSBEb3duIGtleQorICAgICAgICAvLyBWS19WT0xVTUVf
VVAgKEFGKSBXaW5kb3dzIDIwMDAvWFA6IFZvbHVtZSBVcCBrZXkKKyAgICAgICAgLy8gVktfTUVE
SUFfTkVYVF9UUkFDSyAoQjApIFdpbmRvd3MgMjAwMC9YUDogTmV4dCBUcmFjayBrZXkKKyAgICAg
ICAgLy8gVktfTUVESUFfUFJFVl9UUkFDSyAoQjEpIFdpbmRvd3MgMjAwMC9YUDogUHJldmlvdXMg
VHJhY2sga2V5CisgICAgICAgIC8vIFZLX01FRElBX1NUT1AgKEIyKSBXaW5kb3dzIDIwMDAvWFA6
IFN0b3AgTWVkaWEga2V5CisgICAgICAgIC8vIFZLX01FRElBX1BMQVlfUEFVU0UgKEIzKSBXaW5k
b3dzIDIwMDAvWFA6IFBsYXkvUGF1c2UgTWVkaWEga2V5CisgICAgICAgIC8vIFZLX0xBVU5DSF9N
QUlMIChCNCkgV2luZG93cyAyMDAwL1hQOiBTdGFydCBNYWlsIGtleQorICAgICAgICAvLyBWS19M
QVVOQ0hfTUVESUFfU0VMRUNUIChCNSkgV2luZG93cyAyMDAwL1hQOiBTZWxlY3QgTWVkaWEga2V5
CisgICAgICAgIC8vIFZLX0xBVU5DSF9BUFAxIChCNikgV2luZG93cyAyMDAwL1hQOiBTdGFydCBB
cHBsaWNhdGlvbiAxIGtleQorICAgICAgICAvLyBWS19MQVVOQ0hfQVBQMiAoQjcpIFdpbmRvd3Mg
MjAwMC9YUDogU3RhcnQgQXBwbGljYXRpb24gMiBrZXkKKworICAgICAgICAvLyBWS19PRU1fMSAo
QkEpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5
Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhl
ICc7Oicga2V5CisgICAgY2FzZSBXUEVfS0VZX3NlbWljb2xvbjoKKyAgICBjYXNlIFdQRV9LRVlf
Y29sb246CisgICAgICAgIHJldHVybiBWS19PRU1fMTsgLy9jYXNlICc7JzogY2FzZSAnOic6IHJl
dHVybiAweEJBOworICAgICAgICAvLyBWS19PRU1fUExVUyAoQkIpIFdpbmRvd3MgMjAwMC9YUDog
Rm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICcrJyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfcGx1
czoKKyAgICBjYXNlIFdQRV9LRVlfZXF1YWw6CisgICAgICAgIHJldHVybiBWS19PRU1fUExVUzsg
Ly9jYXNlICc9JzogY2FzZSAnKyc6IHJldHVybiAweEJCOworICAgICAgICAvLyBWS19PRU1fQ09N
TUEgKEJDKSBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRyeS9yZWdpb24sIHRoZSAnLCcg
a2V5CisgICAgY2FzZSBXUEVfS0VZX2NvbW1hOgorICAgIGNhc2UgV1BFX0tFWV9sZXNzOgorICAg
ICAgICByZXR1cm4gVktfT0VNX0NPTU1BOyAvL2Nhc2UgJywnOiBjYXNlICc8JzogcmV0dXJuIDB4
QkM7CisgICAgICAgIC8vIFZLX09FTV9NSU5VUyAoQkQpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFu
eSBjb3VudHJ5L3JlZ2lvbiwgdGhlICctJyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfbWludXM6Cisg
ICAgY2FzZSBXUEVfS0VZX3VuZGVyc2NvcmU6CisgICAgICAgIHJldHVybiBWS19PRU1fTUlOVVM7
IC8vY2FzZSAnLSc6IGNhc2UgJ18nOiByZXR1cm4gMHhCRDsKKyAgICAgICAgLy8gVktfT0VNX1BF
UklPRCAoQkUpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICcu
JyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfcGVyaW9kOgorICAgIGNhc2UgV1BFX0tFWV9ncmVhdGVy
OgorICAgICAgICByZXR1cm4gVktfT0VNX1BFUklPRDsgLy9jYXNlICcuJzogY2FzZSAnPic6IHJl
dHVybiAweEJFOworICAgICAgICAvLyBWS19PRU1fMiAoQkYpIFVzZWQgZm9yIG1pc2NlbGxhbmVv
dXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDog
Rm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICcvPycga2V5CisgICAgY2FzZSBXUEVf
S0VZX3NsYXNoOgorICAgIGNhc2UgV1BFX0tFWV9xdWVzdGlvbjoKKyAgICAgICAgcmV0dXJuIFZL
X09FTV8yOyAvL2Nhc2UgJy8nOiBjYXNlICc/JzogcmV0dXJuIDB4QkY7CisgICAgICAgIC8vIFZL
X09FTV8zIChDMCkgVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFy
eSBieSBrZXlib2FyZC4gV2luZG93cyAyMDAwL1hQOiBGb3IgdGhlIFVTIHN0YW5kYXJkIGtleWJv
YXJkLCB0aGUgJ2B+JyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfYXNjaWl0aWxkZToKKyAgICBjYXNl
IFdQRV9LRVlfcXVvdGVsZWZ0OgorICAgICAgICByZXR1cm4gVktfT0VNXzM7IC8vY2FzZSAnYCc6
IGNhc2UgJ34nOiByZXR1cm4gMHhDMDsKKyAgICAgICAgLy8gVktfT0VNXzQgKERCKSBVc2VkIGZv
ciBtaXNjZWxsYW5lb3VzIGNoYXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5IGtleWJvYXJkLiBXaW5k
b3dzIDIwMDAvWFA6IEZvciB0aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQsIHRoZSAnW3snIGtleQor
ICAgIGNhc2UgV1BFX0tFWV9icmFja2V0bGVmdDoKKyAgICBjYXNlIFdQRV9LRVlfYnJhY2VsZWZ0
OgorICAgICAgICByZXR1cm4gVktfT0VNXzQ7IC8vY2FzZSAnWyc6IGNhc2UgJ3snOiByZXR1cm4g
MHhEQjsKKyAgICAgICAgLy8gVktfT0VNXzUgKERDKSBVc2VkIGZvciBtaXNjZWxsYW5lb3VzIGNo
YXJhY3RlcnM7IGl0IGNhbiB2YXJ5IGJ5IGtleWJvYXJkLiBXaW5kb3dzIDIwMDAvWFA6IEZvciB0
aGUgVVMgc3RhbmRhcmQga2V5Ym9hcmQsIHRoZSAnXHwnIGtleQorICAgIGNhc2UgV1BFX0tFWV9i
YWNrc2xhc2g6CisgICAgY2FzZSBXUEVfS0VZX2JhcjoKKyAgICAgICAgcmV0dXJuIFZLX09FTV81
OyAvL2Nhc2UgJ1xcJzogY2FzZSAnfCc6IHJldHVybiAweERDOworICAgICAgICAvLyBWS19PRU1f
NiAoREQpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkg
a2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwg
dGhlICddfScga2V5CisgICAgY2FzZSBXUEVfS0VZX2JyYWNrZXRyaWdodDoKKyAgICBjYXNlIFdQ
RV9LRVlfYnJhY2VyaWdodDoKKyAgICAgICAgcmV0dXJuIFZLX09FTV82OyAvLyBjYXNlICddJzog
Y2FzZSAnfSc6IHJldHVybiAweEREOworICAgICAgICAvLyBWS19PRU1fNyAoREUpIFVzZWQgZm9y
IG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRv
d3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdzaW5nbGUtcXVv
dGUvZG91YmxlLXF1b3RlJyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfcXVvdGVyaWdodDoKKyAgICBj
YXNlIFdQRV9LRVlfcXVvdGVkYmw6CisgICAgICAgIHJldHVybiBWS19PRU1fNzsgLy8gY2FzZSAn
XCcnOiBjYXNlICciJzogcmV0dXJuIDB4REU7CisgICAgICAgIC8vIFZLX09FTV84IChERikgVXNl
ZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4K
KyAgICAgICAgLy8gVktfT0VNXzEwMiAoRTIpIFdpbmRvd3MgMjAwMC9YUDogRWl0aGVyIHRoZSBh
bmdsZSBicmFja2V0IGtleSBvciB0aGUgYmFja3NsYXNoIGtleSBvbiB0aGUgUlQgMTAyLWtleSBr
ZXlib2FyZAorICAgICAgICAvLyBWS19QUk9DRVNTS0VZIChFNSkgV2luZG93cyA5NS85OC9NZSwg
V2luZG93cyBOVCA0LjAsIFdpbmRvd3MgMjAwMC9YUDogSU1FIFBST0NFU1Mga2V5CisgICAgICAg
IC8vIFZLX1BBQ0tFVCAoRTcpIFdpbmRvd3MgMjAwMC9YUDogVXNlZCB0byBwYXNzIFVuaWNvZGUg
Y2hhcmFjdGVycyBhcyBpZiB0aGV5IHdlcmUga2V5c3Ryb2tlcy4gVGhlIFZLX1BBQ0tFVCBrZXkg
aXMgdGhlIGxvdyB3b3JkIG9mIGEgMzItYml0IFZpcnR1YWwgS2V5IHZhbHVlIHVzZWQgZm9yIG5v
bi1rZXlib2FyZCBpbnB1dCBtZXRob2RzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFJlbWFy
ayBpbiBLRVlCRElOUFVULFNlbmRJbnB1dCwgV01fS0VZRE9XTiwgYW5kIFdNX0tFWVVQCisgICAg
ICAgIC8vIFZLX0FUVE4gKEY2KSBBdHRuIGtleQorICAgICAgICAvLyBWS19DUlNFTCAoRjcpIENy
U2VsIGtleQorICAgICAgICAvLyBWS19FWFNFTCAoRjgpIEV4U2VsIGtleQorICAgICAgICAvLyBW
S19FUkVPRiAoRjkpIEVyYXNlIEVPRiBrZXkKKyAgICAgICAgLy8gVktfUExBWSAoRkEpIFBsYXkg
a2V5CisgICAgICAgIC8vIFZLX1pPT00gKEZCKSBab29tIGtleQorICAgICAgICAvLyBWS19OT05B
TUUgKEZDKSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorICAgICAgICAvLyBWS19QQTEgKEZEKSBQ
QTEga2V5CisgICAgICAgIC8vIFZLX09FTV9DTEVBUiAoRkUpIENsZWFyIGtleQorICAgIGNhc2Ug
V1BFX0tFWV9GMToKKyAgICBjYXNlIFdQRV9LRVlfRjI6CisgICAgY2FzZSBXUEVfS0VZX0YzOgor
ICAgIGNhc2UgV1BFX0tFWV9GNDoKKyAgICBjYXNlIFdQRV9LRVlfRjU6CisgICAgY2FzZSBXUEVf
S0VZX0Y2OgorICAgIGNhc2UgV1BFX0tFWV9GNzoKKyAgICBjYXNlIFdQRV9LRVlfRjg6CisgICAg
Y2FzZSBXUEVfS0VZX0Y5OgorICAgIGNhc2UgV1BFX0tFWV9GMTA6CisgICAgY2FzZSBXUEVfS0VZ
X0YxMToKKyAgICBjYXNlIFdQRV9LRVlfRjEyOgorICAgIGNhc2UgV1BFX0tFWV9GMTM6CisgICAg
Y2FzZSBXUEVfS0VZX0YxNDoKKyAgICBjYXNlIFdQRV9LRVlfRjE1OgorICAgIGNhc2UgV1BFX0tF
WV9GMTY6CisgICAgY2FzZSBXUEVfS0VZX0YxNzoKKyAgICBjYXNlIFdQRV9LRVlfRjE4OgorICAg
IGNhc2UgV1BFX0tFWV9GMTk6CisgICAgY2FzZSBXUEVfS0VZX0YyMDoKKyAgICBjYXNlIFdQRV9L
RVlfRjIxOgorICAgIGNhc2UgV1BFX0tFWV9GMjI6CisgICAgY2FzZSBXUEVfS0VZX0YyMzoKKyAg
ICBjYXNlIFdQRV9LRVlfRjI0OgorICAgICAgICByZXR1cm4gVktfRjEgKyAoa2V5Y29kZSAtIFdQ
RV9LRVlfRjEpOworICAgIGNhc2UgV1BFX0tFWV9Wb2lkU3ltYm9sOgorICAgICAgICByZXR1cm4g
VktfUFJPQ0VTU0tFWTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICByZXR1cm4gMDsKK30KKworU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hh
cmFjdGVyU3RyaW5nKHVuc2lnbmVkIHZhbCkKK3sKKyAgICBzd2l0Y2ggKHZhbCkgeworICAgIGNh
c2UgV1BFX0tFWV9JU09fRW50ZXI6CisgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgorICAgIGNh
c2UgV1BFX0tFWV9SZXR1cm46CisgICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgY2Fz
ZSBXUEVfS0VZX0JhY2tTcGFjZToKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAg
Y2FzZSBXUEVfS0VZX1RhYjoKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICBkZWZh
dWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBndW5pY2hhciBjID0gd3BlX2tleV9j
b2RlX3RvX3VuaWNvZGUodmFsKTsKKyAgICBnbG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxn
dW5pY2hhcjI+IHVjaGFyMTYoZ191Y3M0X3RvX3V0ZjE2KCZjLCAxLCBudWxscHRyLCAmbGVuZ3Ro
LCBudWxscHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBTdHJpbmcocmVp
bnRlcnByZXRfY2FzdDxVQ2hhcio+KHVjaGFyMTYuZ2V0KCkpLCBsZW5ndGgpOworCisgICAgcmV0
dXJuIHsgfTsKK30KKwogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtl
eURvd25FdmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKIHsKICAg
ICBBU1NFUlQobV90eXBlID09IEtleURvd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
aGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKaW5kZXgg
ZDYyNWQyYjg5YTMuLjJmZDAxYTIwNmFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKQEAgLTI1
OCw2ICsyNTgsOCBAQCBwdWJsaWM6CiAgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBT
dHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0
IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5h
dGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhhbmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3Ry
aW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVz
dGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1MpCiAgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBj
b25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0
cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBp
bnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlz
U3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9S
TShXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNv
bnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRl
bnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlD
b2RlLCBib29sIGlzS2V5cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxz
ZQogICAgIFdlYktleWJvYXJkRXZlbnQoVHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBT
dHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3
aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0No
YXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwgYm9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtl
eSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApOwogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3BwCmluZGV4IDBjZjI3MTk5NjIxLi5jZTJlNTU2ZTMy
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTEwNCw2
ICsxMDQsMjUgQEAgV2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUs
IGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3QgU3RyaW5nJgogICAgIEFTU0VSVChpc0tleWJvYXJk
RXZlbnRUeXBlKHR5cGUpKTsKIH0KIAorI2VsaWYgUExBVEZPUk0oV1BFKQorCitXZWJLZXlib2Fy
ZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBj
b25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3RyaW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlk
ZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5
Q29kZSwgYm9vbCBpc0tleXBhZCwgTW9kaWZpZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0
YW1wKQorICAgIDogV2ViRXZlbnQodHlwZSwgbW9kaWZpZXJzLCB0aW1lc3RhbXApCisgICAgLCBt
X3RleHQodGV4dCkKKyAgICAsIG1fdW5tb2RpZmllZFRleHQodGV4dCkKKyAgICAsIG1fa2V5KGtl
eSkKKyAgICAsIG1fY29kZShjb2RlKQorICAgICwgbV9rZXlJZGVudGlmaWVyKGtleUlkZW50aWZp
ZXIpCisgICAgLCBtX3dpbmRvd3NWaXJ0dWFsS2V5Q29kZSh3aW5kb3dzVmlydHVhbEtleUNvZGUp
CisgICAgLCBtX25hdGl2ZVZpcnR1YWxLZXlDb2RlKG5hdGl2ZVZpcnR1YWxLZXlDb2RlKQorICAg
ICwgbV9tYWNDaGFyQ29kZSgwKQorICAgICwgbV9pc0F1dG9SZXBlYXQoZmFsc2UpCisgICAgLCBt
X2lzS2V5cGFkKGlzS2V5cGFkKQorICAgICwgbV9pc1N5c3RlbUtleShmYWxzZSkKK3sKKyAgICBB
U1NFUlQoaXNLZXlib2FyZEV2ZW50VHlwZSh0eXBlKSk7Cit9CisKICNlbHNlCiAKIFdlYktleWJv
YXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQoVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQs
IGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmll
ciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBp
bnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRvUmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlz
U3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZpZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJFdmVudEZhY3RvcnkuY3BwCmluZGV4IDJmMzdiZmE2
YWVkLi5iMGUwNTcxNzQzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dl
YkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50
RmFjdG9yeS5jcHAKQEAgLTI2LDEzICsyNiwxOCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgogCisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtl
eWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbGJhci5oPgogI2luY2x1ZGUg
PGNtYXRoPgogI2luY2x1ZGUgPHdwZS93cGUuaD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVl
UHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNXUEVL
ZXlDb2RlRnJvbUtleVBhZCh1bnNpZ25lZCBrZXlDb2RlKQoreworICAgIHJldHVybiBrZXlDb2Rl
ID49IFdQRV9LRVlfS1BfU3BhY2UgJiYga2V5Q29kZSA8PSBXUEVfS0VZX0tQXzk7Cit9CisKIHN0
YXRpYyBXZWJFdmVudDo6TW9kaWZpZXJzIG1vZGlmaWVyc0ZvckV2ZW50KHN0cnVjdCB3cGVfaW5w
dXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQogewogICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7
CkBAIC01MCwyOCArNTUsNiBAQCBzdGF0aWMgV2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNG
b3JFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldgogICAgIHJldHVybiBz
dGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZpZXJzPihtb2RpZmllcnMpOwogfQogCi1zdGF0aWMg
U3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRf
a2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQotewotICAgIGNvbnN0IGNoYXIqIHNpbmdsZUNoYXJhY3Rl
ciA9IHdwZV9pbnB1dF9zaW5nbGVfY2hhcmFjdGVyX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tl
eV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBldmVudCk7Ci0gICAgaWYgKHNpbmdsZUNoYXJhY3Rl
cikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhzaW5nbGVDaGFyYWN0ZXIpOwotCi0gICAgZ2xvbmcg
bGVuZ3RoOwotICAgIEdVbmlxdWVQdHI8Z3VuaWNoYXIyPiB1Y2hhcjE2KGdfdWNzNF90b191dGYx
NigmZXZlbnQtPnVuaWNvZGUsIDEsIDAsICZsZW5ndGgsIG51bGxwdHIpKTsKLSAgICBpZiAodWNo
YXIxNikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhyZWludGVycHJldF9jYXN0PFVDaGFyKj4odWNo
YXIxNi5nZXQoKSksIGxlbmd0aCk7Ci0gICAgcmV0dXJuIFN0cmluZygpOwotfQotCi1zdGF0aWMg
U3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJv
YXJkX2V2ZW50KiBldmVudCkKLXsKLSAgICBjb25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lu
cHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2lu
Z2xldG9uKCksIGV2ZW50KTsKLSAgICBpZiAoaWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIFN0
cmluZyhpZGVudGlmaWVyKTsKLQotICAgIHJldHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwg
ZXZlbnQtPnVuaWNvZGUpOwotfQotCiBXYWxsVGltZSB3YWxsVGltZUZvckV2ZW50VGltZSh1aW50
NjRfdCB0aW1lc3RhbXApCiB7CiAgICAgLy8gVGhpcyB3b3JrcyBpZiBhbmQgb25seSBpZiB0aGUg
V1BFIGJhY2tlbmQgdXNlcyBDTE9DS19NT05PVE9OSUMgZm9yIGl0cwpAQCAtODQsMTQgKzY3LDE4
IEBAIFdhbGxUaW1lIHdhbGxUaW1lRm9yRXZlbnRUaW1lKHVpbnQ2NF90IHRpbWVzdGFtcCkKIAog
V2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQo
c3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9ldmVudCogZXZlbnQpCiB7Ci0gICAgU3RyaW5nIHNp
bmdsZUNoYXJhY3RlclN0cmluZyA9IHNpbmdsZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2ZW50KGV2
ZW50KTsKLSAgICBTdHJpbmcgaWRlbnRpZmllclN0cmluZyA9IGlkZW50aWZpZXJTdHJpbmdGb3JL
ZXlFdmVudChldmVudCk7CisgICAgU3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyA9IFdlYkNv
cmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGV2ZW50LT5r
ZXlfY29kZSk7CiAKICAgICByZXR1cm4gV2ViS2V5Ym9hcmRFdmVudChldmVudC0+cHJlc3NlZCA/
IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZlbnQ6OktleVVwLAotICAgICAgICBzaW5nbGVDaGFy
YWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3RlclN0cmluZywgaWRlbnRpZmllclN0cmluZywKLSAg
ICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5X2NvZGVfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRf
a2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KSwKLSAgICAgICAgZXZlbnQtPmtleUNv
ZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCi0gICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2
ZW50KSwgd2FsbFRpbWVGb3JFdmVudFRpbWUoZXZlbnQtPnRpbWUpKTsKKyAgICAgICAgV2ViQ29y
ZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtl
eV9jb2RlKSwKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjprZXlWYWx1
ZUZvcldQRUtleUNvZGUoZXZlbnQtPmtleV9jb2RlKSwKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZv
cm1LZXlib2FyZEV2ZW50OjprZXlDb2RlRm9ySGFyZHdhcmVLZXlDb2RlKGV2ZW50LT5oYXJkd2Fy
ZV9rZXlfY29kZSksCisgICAgICAgIFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6a2V5
SWRlbnRpZmllckZvcldQRUtleUNvZGUoZXZlbnQtPmtleV9jb2RlKSwKKyAgICAgICAgV2ViQ29y
ZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29kZUZvcldQRUtleUNvZGUoZXZl
bnQtPmtleV9jb2RlKSwKKyAgICAgICAgZXZlbnQtPmtleV9jb2RlLAorICAgICAgICBpc1dQRUtl
eUNvZGVGcm9tS2V5UGFkKGV2ZW50LT5rZXlfY29kZSksCisgICAgICAgIG1vZGlmaWVyc0ZvckV2
ZW50KGV2ZW50KSwKKyAgICAgICAgd2FsbFRpbWVGb3JFdmVudFRpbWUoZXZlbnQtPnRpbWUpKTsK
IH0KIAogc3RhdGljIGlubGluZSBzaG9ydCBwcmVzc2VkTW91c2VCdXR0b25zKHVpbnQ4X3QgbW9k
aWZpZXJzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAKaW5k
ZXggNDhkODA0NDEzNWYuLjg1YmVkNWZlMTZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS93cGUvV1BFVmlldy5jcHAKQEAgLTEwNCw3ICsxMDQsNyBAQCBWaWV3OjpWaWV3KHN0cnVj
dCB3cGVfdmlld19iYWNrZW5kKiBiYWNrZW5kLCBjb25zdCBBUEk6OlBhZ2VDb25maWd1cmF0aW9u
JiBiYXNlQwogICAgICAgICAgICAgaWYgKGV2ZW50LT5wcmVzc2VkCiAgICAgICAgICAgICAgICAg
JiYgZXZlbnQtPm1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2FyZF9tb2RpZmllcl9jb250cm9s
CiAgICAgICAgICAgICAgICAgJiYgZXZlbnQtPm1vZGlmaWVycyAmIHdwZV9pbnB1dF9rZXlib2Fy
ZF9tb2RpZmllcl9zaGlmdAotICAgICAgICAgICAgICAgICYmIGV2ZW50LT5rZXlDb2RlID09ICdH
JykgeworICAgICAgICAgICAgICAgICYmIGV2ZW50LT5rZXlfY29kZSA9PSBXUEVfS0VZX0cpIHsK
ICAgICAgICAgICAgICAgICBhdXRvJiBwcmVmZXJlbmNlcyA9IHZpZXcucGFnZSgpLnByZWZlcmVu
Y2VzKCk7CiAgICAgICAgICAgICAgICAgcHJlZmVyZW5jZXMuc2V0UmVzb3VyY2VVc2FnZU92ZXJs
YXlWaXNpYmxlKCFwcmVmZXJlbmNlcy5yZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUoKSk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd3Bl
L21haW4uY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd3BlL21haW4uY3BwCmluZGV4IGE0OTBjNGI0
OGRlLi4zZjc2OTQyYTQ2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd3BlL21haW4u
Y3BwCisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dwZS9tYWluLmNwcApAQCAtNjQsNyArNjQsNyBA
QCBwdWJsaWM6CiAKICAgICBib29sIGRpc3BhdGNoS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lu
cHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChl
dmVudC0+cHJlc3NlZCAmJiBldmVudC0+bW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21v
ZGlmaWVyX2NvbnRyb2wgJiYgZXZlbnQtPmtleUNvZGUgPT0gJ3EnKSB7CisgICAgICAgIGlmIChl
dmVudC0+cHJlc3NlZCAmJiBldmVudC0+bW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21v
ZGlmaWVyX2NvbnRyb2wgJiYgZXZlbnQtPmtleV9jb2RlID09IFdQRV9LRVlfcSkgewogICAgICAg
ICAgICAgZ19tYWluX2xvb3BfcXVpdChtX2xvb3ApOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50
U2VuZGVyUHJveHlXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5k
ZXJQcm94eVdQRS5jcHAKaW5kZXggYmI3MzY1YWQxMWQuLmNmMGNhYTcxNjUzIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcAorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApAQCAt
MzEsOCArMzEsNiBAQAogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPHdwZS93cGUuaD4KLSNpbmNsdWRlIDx4
a2Jjb21tb24veGtiY29tbW9uLWtleXN5bXMuaD4KLSNpbmNsdWRlIDx4a2Jjb21tb24veGtiY29t
bW9uLmg+CiAKIG5hbWVzcGFjZSBXVFIgewogCkBAIC0xOTMsOTMgKzE5MSw5MyBAQCBzdGF0aWMg
dWludDhfdCB3a0V2ZW50TW9kaWZpZXJzVG9XUEUoV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVy
cykKICAgICByZXR1cm4gbW9kaWZpZXJzOwogfQogCi1pbnQgZ2V0WEtCS2V5U3ltRm9yS2V5UmVm
KFdLU3RyaW5nUmVmIGtleVJlZiwgdW5zaWduZWQgbG9jYXRpb24sIHVpbnQ4X3QqIG1vZGlmaWVy
cykKK3N0YXRpYyB1aW50MzJfdCB3cGVLZXlTeW1Gb3JLZXlSZWYoV0tTdHJpbmdSZWYga2V5UmVm
LCB1bnNpZ25lZCBsb2NhdGlvbiwgdWludDhfdCogbW9kaWZpZXJzKQogewogICAgIGlmIChsb2Nh
dGlvbiA9PSBET01LZXlMb2NhdGlvbk51bXBhZCkgewogICAgICAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJsZWZ0QXJyb3ciKSkKLSAgICAgICAgICAgIHJldHVy
biBYS0JfS0VZX0tQX0xlZnQ7CisgICAgICAgICAgICByZXR1cm4gV1BFX0tFWV9LUF9MZWZ0Owog
ICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodEFy
cm9yIikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tFWV9LUF9SaWdodDsKKyAgICAgICAgICAg
IHJldHVybiBXUEVfS0VZX0tQX1JpZ2h0OwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhrZXlSZWYsICJ1cEFycm93IikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tF
WV9LUF9VcDsKKyAgICAgICAgICAgIHJldHVybiBXUEVfS0VZX0tQX1VwOwogICAgICAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJkb3duQXJyb3ciKSkKLSAgICAg
ICAgICAgIHJldHVybiBYS0JfS0VZX0tQX0Rvd247CisgICAgICAgICAgICByZXR1cm4gV1BFX0tF
WV9LUF9Eb3duOwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlS
ZWYsICJwYWdlVXAiKSkKLSAgICAgICAgICAgIHJldHVybiBYS0JfS0VZX0tQX1BhZ2VfVXA7Cisg
ICAgICAgICAgICByZXR1cm4gV1BFX0tFWV9LUF9QYWdlX1VwOwogICAgICAgICBpZiAoV0tTdHJp
bmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJwYWdlRG93biIpKQotICAgICAgICAgICAg
cmV0dXJuIFhLQl9LRVlfS1BfUGFnZV9Eb3duOworICAgICAgICAgICAgcmV0dXJuIFdQRV9LRVlf
S1BfUGFnZV9Eb3duOwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhr
ZXlSZWYsICJob21lIikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tFWV9LUF9Ib21lOworICAg
ICAgICAgICAgcmV0dXJuIFdQRV9LRVlfS1BfSG9tZTsKICAgICAgICAgaWYgKFdLU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAiZW5kIikpCi0gICAgICAgICAgICByZXR1cm4gWEtC
X0tFWV9LUF9FbmQ7CisgICAgICAgICAgICByZXR1cm4gV1BFX0tFWV9LUF9FbmQ7CiAgICAgICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImluc2VydCIpKQotICAg
ICAgICAgICAgcmV0dXJuIFhLQl9LRVlfS1BfSW5zZXJ0OworICAgICAgICAgICAgcmV0dXJuIFdQ
RV9LRVlfS1BfSW5zZXJ0OwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhrZXlSZWYsICJkZWxldGUiKSkKLSAgICAgICAgICAgIHJldHVybiBYS0JfS0VZX0tQX0RlbGV0
ZTsKKyAgICAgICAgICAgIHJldHVybiBXUEVfS0VZX0tQX0RlbGV0ZTsKIAotICAgICAgICByZXR1
cm4gWEtCX0tFWV9Wb2lkU3ltYm9sOworICAgICAgICByZXR1cm4gV1BFX0tFWV9Wb2lkU3ltYm9s
OwogICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwg
ImxlZnRDb250cm9sIikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0NvbnRyb2xfTDsKKyAgICAg
ICAgcmV0dXJuIFdQRV9LRVlfQ29udHJvbF9MOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0Q29udHJvbCIpKQotICAgICAgICByZXR1cm4gWEtCX0tF
WV9Db250cm9sX1I7CisgICAgICAgIHJldHVybiBXUEVfS0VZX0NvbnRyb2xfUjsKICAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJsZWZ0U2hpZnQiKSkKLSAgICAg
ICAgcmV0dXJuIFhLQl9LRVlfU2hpZnRfTDsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfU2hpZnRf
TDsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodFNo
aWZ0IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX1NoaWZ0X1I7CisgICAgICAgIHJldHVybiBX
UEVfS0VZX1NoaWZ0X1I7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5
UmVmLCAibGVmdEFsdCIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9BbHRfTDsKKyAgICAgICAg
cmV0dXJuIFdQRV9LRVlfQWx0X0w7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJp
bmcoa2V5UmVmLCAicmlnaHRBbHQiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfQWx0X1I7Cisg
ICAgICAgIHJldHVybiBXUEVfS0VZX0FsdF9SOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VU
RjhDU3RyaW5nKGtleVJlZiwgImxlZnRBcnJvdyIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9M
ZWZ0OworICAgICAgICByZXR1cm4gV1BFX0tFWV9MZWZ0OwogICAgIGlmIChXS1N0cmluZ0lzRXF1
YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0QXJyb3ciKSkKLSAgICAgICAgcmV0dXJuIFhL
Ql9LRVlfUmlnaHQ7CisgICAgICAgIHJldHVybiBXUEVfS0VZX1JpZ2h0OwogICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInVwQXJyb3ciKSkKLSAgICAgICAgcmV0
dXJuIFhLQl9LRVlfVXA7CisgICAgICAgIHJldHVybiBXUEVfS0VZX1VwOwogICAgIGlmIChXS1N0
cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImRvd25BcnJvdyIpKQotICAgICAgICBy
ZXR1cm4gWEtCX0tFWV9Eb3duOworICAgICAgICByZXR1cm4gV1BFX0tFWV9Eb3duOwogICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInBhZ2VVcCIpKQotICAgICAg
ICByZXR1cm4gWEtCX0tFWV9QYWdlX1VwOworICAgICAgICByZXR1cm4gV1BFX0tFWV9QYWdlX1Vw
OwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInBhZ2VEb3du
IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX1BhZ2VfRG93bjsKKyAgICAgICAgcmV0dXJuIFdQ
RV9LRVlfUGFnZV9Eb3duOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtl
eVJlZiwgImhvbWUiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfSG9tZTsKKyAgICAgICAgcmV0
dXJuIFdQRV9LRVlfSG9tZTsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhr
ZXlSZWYsICJlbmQiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfRW5kOworICAgICAgICByZXR1
cm4gV1BFX0tFWV9FbmQ7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5
UmVmLCAiaW5zZXJ0IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0luc2VydDsKKyAgICAgICAg
cmV0dXJuIFdQRV9LRVlfSW5zZXJ0OwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGtleVJlZiwgImRlbGV0ZSIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9EZWxldGU7Cisg
ICAgICAgIHJldHVybiBXUEVfS0VZX0RlbGV0ZTsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9V
VEY4Q1N0cmluZyhrZXlSZWYsICJwcmludFNjcmVlbiIpKQotICAgICAgICByZXR1cm4gWEtCX0tF
WV9QcmludDsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfUHJpbnQ7CiAgICAgaWYgKFdLU3RyaW5n
SXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibWVudSIpKQotICAgICAgICByZXR1cm4gWEtC
X0tFWV9NZW51OworICAgICAgICByZXR1cm4gV1BFX0tFWV9NZW51OwogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgIkYxIikpCi0gICAgICAgIHJldHVybiBYS0Jf
S0VZX0YxOworICAgICAgICByZXR1cm4gV1BFX0tFWV9GMTsKICAgICBpZiAoV0tTdHJpbmdJc0Vx
dWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJGMiIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9G
MjsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjI7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRv
VVRGOENTdHJpbmcoa2V5UmVmLCAiRjMiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfRjM7Cisg
ICAgICAgIHJldHVybiBXUEVfS0VZX0YzOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGtleVJlZiwgIkY0IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0Y0OworICAgICAg
ICByZXR1cm4gV1BFX0tFWV9GNDsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmlu
ZyhrZXlSZWYsICJGNSIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9GNTsKKyAgICAgICAgcmV0
dXJuIFdQRV9LRVlfRjU7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5
UmVmLCAiRjYiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfRjY7CisgICAgICAgIHJldHVybiBX
UEVfS0VZX0Y2OwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwg
IkY3IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0Y3OworICAgICAgICByZXR1cm4gV1BFX0tF
WV9GNzsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJGOCIp
KQotICAgICAgICByZXR1cm4gWEtCX0tFWV9GODsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjg7
CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAiRjkiKSkKLSAg
ICAgICAgcmV0dXJuIFhLQl9LRVlfRjk7CisgICAgICAgIHJldHVybiBXUEVfS0VZX0Y5OwogICAg
IGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgIkYxMCIpKQotICAgICAg
ICByZXR1cm4gWEtCX0tFWV9GMTA7CisgICAgICAgIHJldHVybiBXUEVfS0VZX0YxMDsKICAgICBp
ZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJGMTEiKSkKLSAgICAgICAg
cmV0dXJuIFhLQl9LRVlfRjExOworICAgICAgICByZXR1cm4gV1BFX0tFWV9GMTE7CiAgICAgaWYg
KFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAiRjEyIikpCi0gICAgICAgIHJl
dHVybiBYS0JfS0VZX0YxMjsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjEyOwogCiAgICAgc2l6
ZV90IGJ1ZmZlclNpemUgPSBXS1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoa2V5UmVm
KTsKICAgICBhdXRvIGJ1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8Y2hhcltdPihidWZmZXJTaXpl
KTsKQEAgLTI4NywyNyArMjg1LDI2IEBAIGludCBnZXRYS0JLZXlTeW1Gb3JLZXlSZWYoV0tTdHJp
bmdSZWYga2V5UmVmLCB1bnNpZ25lZCBsb2NhdGlvbiwgdWludDhfdCogbW9kaWZpCiAgICAgY2hh
ciBjaGFyQ29kZSA9IGJ1ZmZlci5nZXQoKVswXTsKIAogICAgIGlmIChjaGFyQ29kZSA9PSAnXG4n
IHx8IGNoYXJDb2RlID09ICdccicpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX1JldHVybjsKKyAg
ICAgICAgcmV0dXJuIFdQRV9LRVlfUmV0dXJuOwogICAgIGlmIChjaGFyQ29kZSA9PSAnXHQnKQot
ICAgICAgICByZXR1cm4gWEtCX0tFWV9UYWI7CisgICAgICAgIHJldHVybiBXUEVfS0VZX1RhYjsK
ICAgICBpZiAoY2hhckNvZGUgPT0gJ1x4OCcpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0JhY2tT
cGFjZTsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfQmFja1NwYWNlOwogICAgIGlmIChjaGFyQ29k
ZSA9PSAweDAwMUIpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0VzY2FwZTsKKyAgICAgICAgcmV0
dXJuIFdQRV9LRVlfRXNjYXBlOwogCiAgICAgaWYgKFdURjo6aXNBU0NJSVVwcGVyKGNoYXJDb2Rl
KSkKICAgICAgICAgKm1vZGlmaWVycyB8PSB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfc2hp
ZnQ7CiAKLSAgICAvLyBOb3Qgc3VyZSBpZiB0aGlzIGlzIGNvcnJlY3QuCi0gICAgcmV0dXJuIGNo
YXJDb2RlOworICAgIHJldHVybiB3cGVfdW5pY29kZV90b19rZXlfY29kZShzdGF0aWNfY2FzdDx1
aW50MzJfdD4oY2hhckNvZGUpKTsKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3du
KFdLU3RyaW5nUmVmIGtleVJlZiwgV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycywgdW5zaWdu
ZWQgbG9jYXRpb24pCiB7CiAgICAgdWludDhfdCBtb2RpZmllcnMgPSB3a0V2ZW50TW9kaWZpZXJz
VG9XUEUod2tNb2RpZmllcnMpOwotICAgIHVpbnQzMl90IGtleVN5bSA9IGdldFhLQktleVN5bUZv
cktleVJlZihrZXlSZWYsIGxvY2F0aW9uLCAmbW9kaWZpZXJzKTsKLSAgICB1aW50MzJfdCB1bmlj
b2RlID0geGtiX2tleXN5bV90b191dGYzMihrZXlTeW0pOwotICAgIHN0cnVjdCB3cGVfaW5wdXRf
a2V5Ym9hcmRfZXZlbnQgZXZlbnQgeyBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90aW1lKSwga2V5
U3ltLCB1bmljb2RlLCB0cnVlLCBtb2RpZmllcnN9OworICAgIHVpbnQzMl90IGtleVN5bSA9IHdw
ZUtleVN5bUZvcktleVJlZihrZXlSZWYsIGxvY2F0aW9uLCAmbW9kaWZpZXJzKTsKKyAgICAvLyBG
SVhNRTogd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBnZXQgaGFyZHdhcmUga2V5IGNvZGUgaW4gV1BF
LgorICAgIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQgZXZlbnQgeyBzdGF0aWNfY2Fz
dDx1aW50MzJfdD4obV90aW1lKSwga2V5U3ltLCAwLCB0cnVlLCBtb2RpZmllcnN9OwogICAgIHdw
ZV92aWV3X2JhY2tlbmRfZGlzcGF0Y2hfa2V5Ym9hcmRfZXZlbnQobV92aWV3QmFja2VuZCwgJmV2
ZW50KTsKICAgICBldmVudC5wcmVzc2VkID0gZmFsc2U7CiAgICAgd3BlX3ZpZXdfYmFja2VuZF9k
aXNwYXRjaF9rZXlib2FyZF9ldmVudChtX3ZpZXdCYWNrZW5kLCAmZXZlbnQpOwpkaWZmIC0tZ2l0
IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xzL3dwZS9i
YWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAKaW5kZXggMDc2MTdjZGQ1NGEuLjc5Y2Y1MTJi
MTE4IDEwMDY0NAotLS0gYS9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tlbmQuY3Bw
CisrKyBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAKQEAgLTY5NSwx
OCArNjk1LDE2IEBAIHZvaWQgV2luZG93Vmlld0JhY2tlbmQ6OmhhbmRsZUtleUV2ZW50KHVpbnQz
Ml90IGtleSwgdWludDMyX3Qgc3RhdGUsIHVpbnQzMl90IHRpCiB7CiAgICAgYXV0byYgeGtiID0g
bV9zZWF0RGF0YS54a2I7CiAgICAgdWludDMyX3Qga2V5c3ltID0geGtiX3N0YXRlX2tleV9nZXRf
b25lX3N5bSh4a2Iuc3RhdGUsIGtleSk7Ci0gICAgdWludDMyX3QgdW5pY29kZSA9IHhrYl9zdGF0
ZV9rZXlfZ2V0X3V0ZjMyKHhrYi5zdGF0ZSwga2V5KTsKIAogICAgIGlmICh4a2IuY29tcG9zZVN0
YXRlCiAgICAgICAgICYmIHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVTU0VECiAg
ICAgICAgICYmIHhrYl9jb21wb3NlX3N0YXRlX2ZlZWQoeGtiLmNvbXBvc2VTdGF0ZSwga2V5c3lt
KSA9PSBYS0JfQ09NUE9TRV9GRUVEX0FDQ0VQVEVECiAgICAgICAgICYmIHhrYl9jb21wb3NlX3N0
YXRlX2dldF9zdGF0dXMoeGtiLmNvbXBvc2VTdGF0ZSkgPT0gWEtCX0NPTVBPU0VfQ09NUE9TRUQp
IHsKICAgICAgICAga2V5c3ltID0geGtiX2NvbXBvc2Vfc3RhdGVfZ2V0X29uZV9zeW0oeGtiLmNv
bXBvc2VTdGF0ZSk7Ci0gICAgICAgIHVuaWNvZGUgPSB4a2Jfa2V5c3ltX3RvX3V0ZjMyKGtleXN5
bSk7CiAgICAgfQogCiAgICAgaWYgKG1fc2VhdERhdGEua2V5Ym9hcmQudGFyZ2V0KSB7Ci0gICAg
ICAgIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQgZXZlbnQgPSB7IHRpbWUsIGtleXN5
bSwgdW5pY29kZSwgISFzdGF0ZSwgeGtiLm1vZGlmaWVycyB9OworICAgICAgICBzdHJ1Y3Qgd3Bl
X2lucHV0X2tleWJvYXJkX2V2ZW50IGV2ZW50ID0geyB0aW1lLCBrZXlzeW0sIGtleSwgISFzdGF0
ZSwgeGtiLm1vZGlmaWVycyB9OwogICAgICAgICBkaXNwYXRjaElucHV0S2V5Ym9hcmRFdmVudCgm
ZXZlbnQpOwogICAgIH0KIH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>346463</attachid>
            <date>2018-08-03 01:48:55 -0700</date>
            <delta_ts>2018-08-03 02:06:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wpe-key-syms.diff</filename>
            <type>text/plain</type>
            <size>58961</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBhYTUwZWZhZTA1YS4uMzk0N2E0MThmMjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMCBAQAorMjAxOC0wOC0wMyAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1dQRV0gVXNlIFdQRSBrZXkgc3ltYm9scyBhbmQgbmV3IEFQ
SSBpbnN0ZWFkIG9mIHhrYmNvbW1vbiBhbmQgdGhlIGtleSBtYXBwZXIKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4ODA5MworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBoZWxwZXIgZnVuY3Rpb25zIHRv
IGdldCBrZXkgY29kZSwgaGFyZHdhcmUga2V5IGNvZGUsIGtleSBpZGVudGlmaWVyIGFuZCB3aW5k
b3dzIGtleSBjb2RlIGZyb20gYSBXUEUga2V5IHN5bWJvbC4KKworICAgICAgICAqIHBsYXRmb3Jt
L1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oOgorICAgICAgICAqIHBsYXRmb3JtL3dwZS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnRXUEUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2Fy
ZEV2ZW50OjprZXlWYWx1ZUZvcldQRUtleUNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZv
cm1LZXlib2FyZEV2ZW50OjprZXlDb2RlRm9ySGFyZHdhcmVLZXlDb2RlKToKKyAgICAgICAgKFdl
YkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllckZvcldQRUtleUNvZGUp
OgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojp3aW5kb3dzS2V5Q29k
ZUZvcldQRUtleUNvZGUpOgorICAgICAgICAoV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50
OjpzaW5nbGVDaGFyYWN0ZXJTdHJpbmcpOgorCiAyMDE4LTA4LTAyICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bQkZDXSBBcHBseSB0aGUgIjEwLjYuNiBD
b21wbGljYXRlZCBjYXNlcyIgd2hlbiBjb21wdXRpbmcgaGVpZ2h0IGFuZCBtYXJnaW4gZm9yIHRo
ZSBkb2N1bWVudCByZW5kZXJlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
UGxhdGZvcm1LZXlib2FyZEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9QbGF0Zm9y
bUtleWJvYXJkRXZlbnQuaAppbmRleCA5N2QwM2FmOTJhZC4uOGNkZTViOWJlMTAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1BsYXRmb3JtS2V5Ym9hcmRFdmVudC5oCkBAIC0xNjQs
NiArMTY0LDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgc3RhdGljIGJvb2wgbW9k
aWZpZXJzQ29udGFpbkNhcHNMb2NrKHVuc2lnbmVkKTsKICNlbmRpZgogCisjaWYgUExBVEZPUk0o
V1BFKQorICAgICAgICBzdGF0aWMgU3RyaW5nIGtleVZhbHVlRm9yV1BFS2V5Q29kZSh1bnNpZ25l
ZCk7CisgICAgICAgIHN0YXRpYyBTdHJpbmcga2V5Q29kZUZvckhhcmR3YXJlS2V5Q29kZSh1bnNp
Z25lZCk7CisgICAgICAgIHN0YXRpYyBTdHJpbmcga2V5SWRlbnRpZmllckZvcldQRUtleUNvZGUo
dW5zaWduZWQpOworICAgICAgICBzdGF0aWMgaW50IHdpbmRvd3NLZXlDb2RlRm9yV1BFS2V5Q29k
ZSh1bnNpZ25lZCk7CisgICAgICAgIHN0YXRpYyBTdHJpbmcgc2luZ2xlQ2hhcmFjdGVyU3RyaW5n
KHVuc2lnbmVkKTsKKyNlbmRpZgorCiAgICAgcHJvdGVjdGVkOgogICAgICAgICBTdHJpbmcgbV90
ZXh0OwogICAgICAgICBTdHJpbmcgbV91bm1vZGlmaWVkVGV4dDsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3dwZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnRXUEUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vd3BlL1BsYXRmb3JtS2V5Ym9hcmRFdmVudFdQRS5jcHAKaW5k
ZXggZmE0ZjM4ZTExZjAuLmVjMjBmNmZiOTY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS93cGUvUGxhdGZvcm1LZXlib2FyZEV2ZW50V1BFLmNwcApAQCAtMjYsMTAg
KzI2LDEyMDggQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUtleWJv
YXJkRXZlbnQuaCIKIAotI2luY2x1ZGUgIk5vdEltcGxlbWVudGVkLmgiCisjaW5jbHVkZSAiV2lu
ZG93c0tleWJvYXJkQ29kZXMuaCIKKyNpbmNsdWRlIDx3cGUvd3BlLmg+CisjaW5jbHVkZSA8d3Rm
L2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKKy8vIEZJWE1FOiBU
aGlzIGlzIGluY29tcGxldGUuIFdlIHNob3VsZCBjaGFuZ2UgdGhpcyB0byBtaXJyb3IKKy8vIG1v
cmUgbGlrZSB3aGF0IEZpcmVmb3ggZG9lcywgYW5kIGdlbmVyYXRlIHRoZXNlIHN3aXRjaCBzdGF0
ZW1lbnRzCisvLyBhdCBidWlsZCB0aW1lLgorLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5v
cmcvZW4tVVMvZG9jcy9XZWIvQVBJL0tleWJvYXJkRXZlbnQva2V5L0tleV9WYWx1ZXMKK1N0cmlu
ZyBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmtleVZhbHVlRm9yV1BFS2V5Q29kZSh1bnNpZ25lZCBr
ZXlDb2RlKQoreworICAgIHN3aXRjaCAoa2V5Q29kZSkgeworICAgIC8vIE1vZGlmaWVyIGtleXMu
CisgICAgY2FzZSBXUEVfS0VZX0FsdF9MOgorICAgIGNhc2UgV1BFX0tFWV9BbHRfUjoKKyAgICAg
ICAgcmV0dXJuICJBbHQiX3M7CisgICAgLy8gRmlyZWZveCB1c2VzIFdQRV9LRVlfTW9kZV9zd2l0
Y2ggZm9yIEFsdEdyYXBoIGFzIHdlbGwuCisgICAgY2FzZSBXUEVfS0VZX0lTT19MZXZlbDNfU2hp
ZnQ6CisgICAgY2FzZSBXUEVfS0VZX0lTT19MZXZlbDNfTGF0Y2g6CisgICAgY2FzZSBXUEVfS0VZ
X0lTT19MZXZlbDNfTG9jazoKKyAgICBjYXNlIFdQRV9LRVlfSVNPX0xldmVsNV9TaGlmdDoKKyAg
ICBjYXNlIFdQRV9LRVlfSVNPX0xldmVsNV9MYXRjaDoKKyAgICBjYXNlIFdQRV9LRVlfSVNPX0xl
dmVsNV9Mb2NrOgorICAgICAgICByZXR1cm4gIkFsdEdyYXBoIl9zOworICAgIGNhc2UgV1BFX0tF
WV9DYXBzX0xvY2s6CisgICAgICAgIHJldHVybiAiQ2Fwc0xvY2siX3M7CisgICAgY2FzZSBXUEVf
S0VZX0NvbnRyb2xfTDoKKyAgICBjYXNlIFdQRV9LRVlfQ29udHJvbF9SOgorICAgICAgICByZXR1
cm4gIkNvbnRyb2wiX3M7CisgICAgLy8gRm46IFRoaXMgaXMgdHlwaWNhbGx5IGEgaGFyZHdhcmUg
a2V5IHRoYXQgZG9lcyBub3QgZ2VuZXJhdGUgYSBzZXBhcmF0ZSBjb2RlLgorICAgIC8vIEZuTG9j
ay4KKyAgICBjYXNlIFdQRV9LRVlfSHlwZXJfTDoKKyAgICBjYXNlIFdQRV9LRVlfSHlwZXJfUjoK
KyAgICAgICAgcmV0dXJuICJIeXBlciJfczsKKyAgICBjYXNlIFdQRV9LRVlfTWV0YV9MOgorICAg
IGNhc2UgV1BFX0tFWV9NZXRhX1I6CisgICAgICAgIHJldHVybiAiTWV0YSJfczsKKyAgICBjYXNl
IFdQRV9LRVlfTnVtX0xvY2s6CisgICAgICAgIHJldHVybiAiTnVtTG9jayJfczsKKyAgICBjYXNl
IFdQRV9LRVlfU2Nyb2xsX0xvY2s6CisgICAgICAgIHJldHVybiAiU2Nyb2xsTG9jayJfczsKKyAg
ICBjYXNlIFdQRV9LRVlfU2hpZnRfTDoKKyAgICBjYXNlIFdQRV9LRVlfU2hpZnRfUjoKKyAgICAg
ICAgcmV0dXJuICJTaGlmdCJfczsKKyAgICBjYXNlIFdQRV9LRVlfU3VwZXJfTDoKKyAgICBjYXNl
IFdQRV9LRVlfU3VwZXJfUjoKKyAgICAgICAgcmV0dXJuICJTdXBlciJfczsKKyAgICAvLyBTeW1i
b2wuCisgICAgLy8gU3ltYm9sTG9jay4KKworICAgIC8vIFdoaXRlc3BhY2Uga2V5cy4KKyAgICBj
YXNlIFdQRV9LRVlfUmV0dXJuOgorICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKKyAgICBjYXNl
IFdQRV9LRVlfSVNPX0VudGVyOgorICAgIGNhc2UgV1BFX0tFWV8zMjcwX0VudGVyOgorICAgICAg
ICByZXR1cm4gIkVudGVyIl9zOworICAgIGNhc2UgV1BFX0tFWV9UYWI6CisgICAgY2FzZSBXUEVf
S0VZX0tQX1RhYjoKKyAgICAgICAgcmV0dXJuICJUYWIiX3M7CisKKyAgICAvLyBOYXZpZ2F0aW9u
IGtleXMuCisgICAgY2FzZSBXUEVfS0VZX0Rvd246CisgICAgY2FzZSBXUEVfS0VZX0tQX0Rvd246
CisgICAgICAgIHJldHVybiAiQXJyb3dEb3duIl9zOworICAgIGNhc2UgV1BFX0tFWV9MZWZ0Ogor
ICAgIGNhc2UgV1BFX0tFWV9LUF9MZWZ0OgorICAgICAgICByZXR1cm4gIkFycm93TGVmdCJfczsK
KyAgICBjYXNlIFdQRV9LRVlfUmlnaHQ6CisgICAgY2FzZSBXUEVfS0VZX0tQX1JpZ2h0OgorICAg
ICAgICByZXR1cm4gIkFycm93UmlnaHQiX3M7CisgICAgY2FzZSBXUEVfS0VZX1VwOgorICAgIGNh
c2UgV1BFX0tFWV9LUF9VcDoKKyAgICAgICAgcmV0dXJuICJBcnJvd1VwIl9zOworICAgIGNhc2Ug
V1BFX0tFWV9FbmQ6CisgICAgY2FzZSBXUEVfS0VZX0tQX0VuZDoKKyAgICAgICAgcmV0dXJuICJF
bmQiX3M7CisgICAgY2FzZSBXUEVfS0VZX0hvbWU6CisgICAgY2FzZSBXUEVfS0VZX0tQX0hvbWU6
CisgICAgICAgIHJldHVybiAiSG9tZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfUGFnZV9Eb3duOgor
ICAgIGNhc2UgV1BFX0tFWV9LUF9QYWdlX0Rvd246CisgICAgICAgIHJldHVybiAiUGFnZURvd24i
X3M7CisgICAgY2FzZSBXUEVfS0VZX1BhZ2VfVXA6CisgICAgY2FzZSBXUEVfS0VZX0tQX1BhZ2Vf
VXA6CisgICAgICAgIHJldHVybiAiUGFnZVVwIl9zOworCisgICAgLy8gRWRpdGluZyBrZXlzLgor
ICAgIGNhc2UgV1BFX0tFWV9CYWNrU3BhY2U6CisgICAgICAgIHJldHVybiAiQmFja3NwYWNlIl9z
OworICAgIGNhc2UgV1BFX0tFWV9DbGVhcjoKKyAgICAgICAgcmV0dXJuICJDbGVhciJfczsKKyAg
ICBjYXNlIFdQRV9LRVlfQ29weToKKyAgICAgICAgcmV0dXJuICJDb3B5Il9zOworICAgIGNhc2Ug
V1BFX0tFWV8zMjcwX0N1cnNvclNlbGVjdDoKKyAgICAgICAgcmV0dXJuICJDclNlbCJfczsKKyAg
ICBjYXNlIFdQRV9LRVlfQ3V0OgorICAgICAgICByZXR1cm4gIkN1dCJfczsKKyAgICBjYXNlIFdQ
RV9LRVlfRGVsZXRlOgorICAgIGNhc2UgV1BFX0tFWV9LUF9EZWxldGU6CisgICAgICAgIHJldHVy
biAiRGVsZXRlIl9zOworICAgIGNhc2UgV1BFX0tFWV8zMjcwX0VyYXNlRU9GOgorICAgICAgICBy
ZXR1cm4gIkVyYXNlRW9mIl9zOworICAgIGNhc2UgV1BFX0tFWV8zMjcwX0V4U2VsZWN0OgorICAg
ICAgICByZXR1cm4gIkV4U2VsIl9zOworICAgIGNhc2UgV1BFX0tFWV9JbnNlcnQ6CisgICAgY2Fz
ZSBXUEVfS0VZX0tQX0luc2VydDoKKyAgICAgICAgcmV0dXJuICJJbnNlcnQiX3M7CisgICAgY2Fz
ZSBXUEVfS0VZX1Bhc3RlOgorICAgICAgICByZXR1cm4gIlBhc3RlIl9zOworICAgIGNhc2UgV1BF
X0tFWV9SZWRvOgorICAgICAgICByZXR1cm4gIlJlZG8iX3M7CisgICAgY2FzZSBXUEVfS0VZX1Vu
ZG86CisgICAgICAgIHJldHVybiAiVW5kbyJfczsKKworICAgIC8vIFVJIGtleXMuCisgICAgLy8g
QWNjZXB0LgorICAgIC8vIEFnYWluLgorICAgIGNhc2UgV1BFX0tFWV8zMjcwX0F0dG46CisgICAg
ICAgIHJldHVybiAiQXR0biJfczsKKyAgICBjYXNlIFdQRV9LRVlfQ2FuY2VsOgorICAgICAgICBy
ZXR1cm4gIkNhbmNlbCJfczsKKyAgICBjYXNlIFdQRV9LRVlfTWVudToKKyAgICAgICAgcmV0dXJu
ICJDb250ZXh0TWVudSJfczsKKyAgICBjYXNlIFdQRV9LRVlfRXNjYXBlOgorICAgICAgICByZXR1
cm4gIkVzY2FwZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfRXhlY3V0ZToKKyAgICAgICAgcmV0dXJu
ICJFeGVjdXRlIl9zOworICAgIGNhc2UgV1BFX0tFWV9GaW5kOgorICAgICAgICByZXR1cm4gIkZp
bmQiX3M7CisgICAgY2FzZSBXUEVfS0VZX0hlbHA6CisgICAgICAgIHJldHVybiAiSGVscCJfczsK
KyAgICBjYXNlIFdQRV9LRVlfUGF1c2U6CisgICAgY2FzZSBXUEVfS0VZX0JyZWFrOgorICAgICAg
ICByZXR1cm4gIlBhdXNlIl9zOworICAgIGNhc2UgV1BFX0tFWV8zMjcwX1BsYXk6CisgICAgICAg
IHJldHVybiAiUGxheSJfczsKKyAgICAvLyBQcm9wcy4KKyAgICBjYXNlIFdQRV9LRVlfU2VsZWN0
OgorICAgICAgICByZXR1cm4gIlNlbGVjdCJfczsKKyAgICBjYXNlIFdQRV9LRVlfWm9vbUluOgor
ICAgICAgICByZXR1cm4gIlpvb21JbiJfczsKKyAgICBjYXNlIFdQRV9LRVlfWm9vbU91dDoKKyAg
ICAgICAgcmV0dXJuICJab29tT3V0Il9zOworCisgICAgLy8gRGV2aWNlIGtleXMuCisgICAgY2Fz
ZSBXUEVfS0VZX01vbkJyaWdodG5lc3NEb3duOgorICAgICAgICByZXR1cm4gIkJyaWdodG5lc3NE
b3duIl9zOworICAgIGNhc2UgV1BFX0tFWV9Nb25CcmlnaHRuZXNzVXA6CisgICAgICAgIHJldHVy
biAiQnJpZ2h0bmVzc1VwIl9zOworICAgIGNhc2UgV1BFX0tFWV9FamVjdDoKKyAgICAgICAgcmV0
dXJuICJFamVjdCJfczsKKyAgICBjYXNlIFdQRV9LRVlfTG9nT2ZmOgorICAgICAgICByZXR1cm4g
IkxvZ09mZiJfczsKKyAgICAvLyBQb3dlci4KKyAgICBjYXNlIFdQRV9LRVlfUG93ZXJEb3duOgor
ICAgIGNhc2UgV1BFX0tFWV9Qb3dlck9mZjoKKyAgICAgICAgcmV0dXJuICJQb3dlck9mZiJfczsK
KyAgICBjYXNlIFdQRV9LRVlfMzI3MF9QcmludFNjcmVlbjoKKyAgICBjYXNlIFdQRV9LRVlfUHJp
bnQ6CisgICAgY2FzZSBXUEVfS0VZX1N5c19SZXE6CisgICAgICAgIHJldHVybiAiUHJpbnRTY3Jl
ZW4iX3M7CisgICAgY2FzZSBXUEVfS0VZX0hpYmVybmF0ZToKKyAgICAgICAgcmV0dXJuICJIaWJl
cm5hdGUiX3M7CisgICAgY2FzZSBXUEVfS0VZX1N0YW5kYnk6CisgICAgY2FzZSBXUEVfS0VZX1N1
c3BlbmQ6CisgICAgY2FzZSBXUEVfS0VZX1NsZWVwOgorICAgICAgICByZXR1cm4gIlN0YW5kYnki
X3M7CisgICAgY2FzZSBXUEVfS0VZX1dha2VVcDoKKyAgICAgICAgcmV0dXJuICJXYWtlVXAiX3M7
CisKKyAgICAvLyBJTUUga2V5cy4KKyAgICBjYXNlIFdQRV9LRVlfTXVsdGlwbGVDYW5kaWRhdGU6
CisgICAgICAgIHJldHVybiAiQWxsQ2FuZGlkYXRlcyJfczsKKyAgICBjYXNlIFdQRV9LRVlfRWlz
dV9TaGlmdDoKKyAgICBjYXNlIFdQRV9LRVlfRWlzdV90b2dnbGU6CisgICAgICAgIHJldHVybiAi
QWxwaGFudW1lcmljIl9zOworICAgIGNhc2UgV1BFX0tFWV9Db2RlaW5wdXQ6CisgICAgICAgIHJl
dHVybiAiQ29kZUlucHV0Il9zOworICAgIGNhc2UgV1BFX0tFWV9NdWx0aV9rZXk6CisgICAgICAg
IHJldHVybiAiQ29tcG9zZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfSGVua2FuOgorICAgICAgICBy
ZXR1cm4gIkNvbnZlcnQiX3M7CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfZ3JhdmU6CisgICAgY2Fz
ZSBXUEVfS0VZX2RlYWRfYWN1dGU6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfY2lyY3VtZmxleDoK
KyAgICBjYXNlIFdQRV9LRVlfZGVhZF90aWxkZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9tYWNy
b246CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfYnJldmU6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRf
YWJvdmVkb3Q6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfZGlhZXJlc2lzOgorICAgIGNhc2UgV1BF
X0tFWV9kZWFkX2Fib3ZlcmluZzoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9kb3VibGVhY3V0ZToK
KyAgICBjYXNlIFdQRV9LRVlfZGVhZF9jYXJvbjoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9jZWRp
bGxhOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX29nb25lazoKKyAgICBjYXNlIFdQRV9LRVlfZGVh
ZF9pb3RhOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX3ZvaWNlZF9zb3VuZDoKKyAgICBjYXNlIFdQ
RV9LRVlfZGVhZF9zZW1pdm9pY2VkX3NvdW5kOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2JlbG93
ZG90OgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2hvb2s6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRf
aG9ybjoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9zdHJva2U6CisgICAgY2FzZSBXUEVfS0VZX2Rl
YWRfYWJvdmVjb21tYToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9hYm92ZXJldmVyc2VkY29tbWE6
CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfZG91YmxlZ3JhdmU6CisgICAgY2FzZSBXUEVfS0VZX2Rl
YWRfYmVsb3dyaW5nOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2JlbG93bWFjcm9uOgorICAgIGNh
c2UgV1BFX0tFWV9kZWFkX2JlbG93Y2lyY3VtZmxleDoKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9i
ZWxvd3RpbGRlOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2JlbG93YnJldmU6CisgICAgY2FzZSBX
UEVfS0VZX2RlYWRfYmVsb3dkaWFlcmVzaXM6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfaW52ZXJ0
ZWRicmV2ZToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9iZWxvd2NvbW1hOgorICAgIGNhc2UgV1BF
X0tFWV9kZWFkX2N1cnJlbmN5OgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX2E6CisgICAgY2FzZSBX
UEVfS0VZX2RlYWRfQToKKyAgICBjYXNlIFdQRV9LRVlfZGVhZF9lOgorICAgIGNhc2UgV1BFX0tF
WV9kZWFkX0U6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfaToKKyAgICBjYXNlIFdQRV9LRVlfZGVh
ZF9JOgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX286CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfTzoK
KyAgICBjYXNlIFdQRV9LRVlfZGVhZF91OgorICAgIGNhc2UgV1BFX0tFWV9kZWFkX1U6CisgICAg
Y2FzZSBXUEVfS0VZX2RlYWRfc21hbGxfc2Nod2E6CisgICAgY2FzZSBXUEVfS0VZX2RlYWRfY2Fw
aXRhbF9zY2h3YToKKyAgICAgICAgcmV0dXJuICJEZWFkIl9zOworICAgIC8vIEZpbmFsTW9kZQor
ICAgIGNhc2UgV1BFX0tFWV9JU09fRmlyc3RfR3JvdXA6CisgICAgICAgIHJldHVybiAiR3JvdXBG
aXJzdCJfczsKKyAgICBjYXNlIFdQRV9LRVlfSVNPX0xhc3RfR3JvdXA6CisgICAgICAgIHJldHVy
biAiR3JvdXBMYXN0Il9zOworICAgIGNhc2UgV1BFX0tFWV9JU09fTmV4dF9Hcm91cDoKKyAgICAg
ICAgcmV0dXJuICJHcm91cE5leHQiX3M7CisgICAgY2FzZSBXUEVfS0VZX0lTT19QcmV2X0dyb3Vw
OgorICAgICAgICByZXR1cm4gIkdyb3VwUHJldmlvdXMiX3M7CisgICAgY2FzZSBXUEVfS0VZX01v
ZGVfc3dpdGNoOgorICAgICAgICByZXR1cm4gIk1vZGVDaGFuZ2UiX3M7CisgICAgLy8gTmV4dENh
bmRpZGF0ZS4KKyAgICBjYXNlIFdQRV9LRVlfTXVoZW5rYW46CisgICAgICAgIHJldHVybiAiTm9u
Q29udmVydCJfczsKKyAgICBjYXNlIFdQRV9LRVlfUHJldmlvdXNDYW5kaWRhdGU6CisgICAgICAg
IHJldHVybiAiUHJldmlvdXNDYW5kaWRhdGUiX3M7CisgICAgLy8gUHJvY2Vzcy4KKyAgICBjYXNl
IFdQRV9LRVlfU2luZ2xlQ2FuZGlkYXRlOgorICAgICAgICByZXR1cm4gIlNpbmdsZUNhbmRpZGF0
ZSJfczsKKworICAgIC8vIEtvcmVhbiBhbmQgSmFwYW5lc2Uga2V5cy4KKyAgICBjYXNlIFdQRV9L
RVlfSGFuZ3VsOgorICAgICAgICByZXR1cm4gIkhhbmd1bE1vZGUiX3M7CisgICAgY2FzZSBXUEVf
S0VZX0hhbmd1bF9IYW5qYToKKyAgICAgICAgcmV0dXJuICJIYW5qYU1vZGUiX3M7CisgICAgY2Fz
ZSBXUEVfS0VZX0hhbmd1bF9KZW9uamE6CisgICAgICAgIHJldHVybiAiSnVuamFNb2RlIl9zOwor
ICAgIGNhc2UgV1BFX0tFWV9IYW5rYWt1OgorICAgICAgICByZXR1cm4gIkhhbmtha3UiX3M7Cisg
ICAgY2FzZSBXUEVfS0VZX0hpcmFnYW5hOgorICAgICAgICByZXR1cm4gIkhpcmFnYW5hIl9zOwor
ICAgIGNhc2UgV1BFX0tFWV9IaXJhZ2FuYV9LYXRha2FuYToKKyAgICAgICAgcmV0dXJuICJIaXJh
Z2FuYUthdGFrYW5hIl9zOworICAgIGNhc2UgV1BFX0tFWV9LYW5hX0xvY2s6CisgICAgY2FzZSBX
UEVfS0VZX0thbmFfU2hpZnQ6CisgICAgICAgIHJldHVybiAiS2FuYU1vZGUiX3M7CisgICAgY2Fz
ZSBXUEVfS0VZX0thbmppOgorICAgICAgICByZXR1cm4gIkthbmppTW9kZSJfczsKKyAgICBjYXNl
IFdQRV9LRVlfS2F0YWthbmE6CisgICAgICAgIHJldHVybiAiS2F0YWthbmEiX3M7CisgICAgY2Fz
ZSBXUEVfS0VZX1JvbWFqaToKKyAgICAgICAgcmV0dXJuICJSb21hamkiX3M7CisgICAgY2FzZSBX
UEVfS0VZX1plbmtha3U6CisgICAgICAgIHJldHVybiAiWmVua2FrdSJfczsKKyAgICBjYXNlIFdQ
RV9LRVlfWmVua2FrdV9IYW5rYWt1OgorICAgICAgICByZXR1cm4gIlplbmtha3VIYW5ha3UiX3M7
CisKKyAgICAvLyBNdWx0aW1lZGlhIGtleXMuCisgICAgLy8gQ2hhbm5lbERvd24uCisgICAgLy8g
Q2hhbm5lbFVwLgorICAgIGNhc2UgV1BFX0tFWV9DbG9zZToKKyAgICAgICAgcmV0dXJuICJDbG9z
ZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfTWFpbEZvcndhcmQ6CisgICAgICAgIHJldHVybiAiTWFp
bEZvcndhcmQiX3M7CisgICAgY2FzZSBXUEVfS0VZX1JlcGx5OgorICAgICAgICByZXR1cm4gIk1h
aWxSZXBseSJfczsKKyAgICBjYXNlIFdQRV9LRVlfU2VuZDoKKyAgICAgICAgcmV0dXJuICJNYWls
U2VuZCJfczsKKyAgICBjYXNlIFdQRV9LRVlfQXVkaW9Gb3J3YXJkOgorICAgICAgICByZXR1cm4g
Ik1lZGlhRmFzdEZvcndhcmQiX3M7CisgICAgY2FzZSBXUEVfS0VZX0F1ZGlvUGF1c2U6CisgICAg
ICAgIHJldHVybiAiTWVkaWFQYXVzZSJfczsKKyAgICBjYXNlIFdQRV9LRVlfQXVkaW9QbGF5Ogor
ICAgICAgICByZXR1cm4gIk1lZGlhUGxheSJfczsKKyAgICAvLyBNZWRpYVBsYXlQYXVzZQorICAg
IGNhc2UgV1BFX0tFWV9BdWRpb1JlY29yZDoKKyAgICAgICAgcmV0dXJuICJNZWRpYVJlY29yZCJf
czsKKyAgICBjYXNlIFdQRV9LRVlfQXVkaW9SZXdpbmQ6CisgICAgICAgIHJldHVybiAiTWVkaWFS
ZXdpbmQiX3M7CisgICAgY2FzZSBXUEVfS0VZX0F1ZGlvU3RvcDoKKyAgICAgICAgcmV0dXJuICJN
ZWRpYVN0b3AiX3M7CisgICAgY2FzZSBXUEVfS0VZX0F1ZGlvTmV4dDoKKyAgICAgICAgcmV0dXJu
ICJNZWRpYVRyYWNrTmV4dCJfczsKKyAgICBjYXNlIFdQRV9LRVlfQXVkaW9QcmV2OgorICAgICAg
ICByZXR1cm4gIk1lZGlhVHJhY2tQcmV2aW91cyJfczsKKyAgICBjYXNlIFdQRV9LRVlfTmV3Ogor
ICAgICAgICByZXR1cm4gIk5ldyJfczsKKyAgICBjYXNlIFdQRV9LRVlfT3BlbjoKKyAgICAgICAg
cmV0dXJuICJPcGVuIl9zOworICAgIC8vIFByaW50LgorICAgIGNhc2UgV1BFX0tFWV9TYXZlOgor
ICAgICAgICByZXR1cm4gIlNhdmUiX3M7CisgICAgY2FzZSBXUEVfS0VZX1NwZWxsOgorICAgICAg
ICByZXR1cm4gIlNwZWxsQ2hlY2siX3M7CisKKyAgICAvLyBGdW5jdGlvbiBrZXlzLgorICAgIGNh
c2UgV1BFX0tFWV9GMToKKyAgICAgICAgcmV0dXJuICJGMSJfczsKKyAgICBjYXNlIFdQRV9LRVlf
RjI6CisgICAgICAgIHJldHVybiAiRjIiX3M7CisgICAgY2FzZSBXUEVfS0VZX0YzOgorICAgICAg
ICByZXR1cm4gIkYzIl9zOworICAgIGNhc2UgV1BFX0tFWV9GNDoKKyAgICAgICAgcmV0dXJuICJG
NCJfczsKKyAgICBjYXNlIFdQRV9LRVlfRjU6CisgICAgICAgIHJldHVybiAiRjUiX3M7CisgICAg
Y2FzZSBXUEVfS0VZX0Y2OgorICAgICAgICByZXR1cm4gIkY2Il9zOworICAgIGNhc2UgV1BFX0tF
WV9GNzoKKyAgICAgICAgcmV0dXJuICJGNyJfczsKKyAgICBjYXNlIFdQRV9LRVlfRjg6CisgICAg
ICAgIHJldHVybiAiRjgiX3M7CisgICAgY2FzZSBXUEVfS0VZX0Y5OgorICAgICAgICByZXR1cm4g
IkY5Il9zOworICAgIGNhc2UgV1BFX0tFWV9GMTA6CisgICAgICAgIHJldHVybiAiRjEwIl9zOwor
ICAgIGNhc2UgV1BFX0tFWV9GMTE6CisgICAgICAgIHJldHVybiAiRjExIl9zOworICAgIGNhc2Ug
V1BFX0tFWV9GMTI6CisgICAgICAgIHJldHVybiAiRjEyIl9zOworICAgIGNhc2UgV1BFX0tFWV9G
MTM6CisgICAgICAgIHJldHVybiAiRjEzIl9zOworICAgIGNhc2UgV1BFX0tFWV9GMTQ6CisgICAg
ICAgIHJldHVybiAiRjE0Il9zOworICAgIGNhc2UgV1BFX0tFWV9GMTU6CisgICAgICAgIHJldHVy
biAiRjE1Il9zOworICAgIGNhc2UgV1BFX0tFWV9GMTY6CisgICAgICAgIHJldHVybiAiRjE2Il9z
OworICAgIGNhc2UgV1BFX0tFWV9GMTc6CisgICAgICAgIHJldHVybiAiRjE3Il9zOworICAgIGNh
c2UgV1BFX0tFWV9GMTg6CisgICAgICAgIHJldHVybiAiRjE4Il9zOworICAgIGNhc2UgV1BFX0tF
WV9GMTk6CisgICAgICAgIHJldHVybiAiRjE5Il9zOworICAgIGNhc2UgV1BFX0tFWV9GMjA6Cisg
ICAgICAgIHJldHVybiAiRjIwIl9zOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAg
IH0KKworICAgIGd1aW50MzIgdW5pY29kZUNoYXJhY3RlciA9IHdwZV9rZXlfY29kZV90b191bmlj
b2RlKGtleUNvZGUpOworICAgIGlmICh1bmljb2RlQ2hhcmFjdGVyKSB7CisgICAgICAgIC8vIFVU
Ri04IHdpbGwgdXNlIHVwIHRvIDYgYnl0ZXMuCisgICAgICAgIGNoYXIgdXRmOFs3XSA9IHsgMCB9
OworICAgICAgICBnX3VuaWNoYXJfdG9fdXRmOCh1bmljb2RlQ2hhcmFjdGVyLCB1dGY4KTsKKyAg
ICAgICAgcmV0dXJuIFN0cmluZzo6ZnJvbVVURjgodXRmOCk7CisgICAgfQorCisgICAgcmV0dXJu
ICJVbmlkZW50aWZpZWQiX3M7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGlzIGluY29tcGxldGUuIFdl
IHNob3VsZCBjaGFuZ2UgdGhpcyB0byBtaXJyb3IKKy8vIG1vcmUgbGlrZSB3aGF0IEZpcmVmb3gg
ZG9lcywgYW5kIGdlbmVyYXRlIHRoZXNlIHN3aXRjaCBzdGF0ZW1lbnRzCisvLyBhdCBidWlsZCB0
aW1lLgorLy8gaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJ
L0tleWJvYXJkRXZlbnQvY29kZQorU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6a2V5Q29k
ZUZvckhhcmR3YXJlS2V5Q29kZSh1bnNpZ25lZCBrZXlDb2RlKQoreworICAgIHN3aXRjaCAoa2V5
Q29kZSkgeworICAgIGNhc2UgMHgwMDA5OgorICAgICAgICByZXR1cm4gIkVzY2FwZSJfczsKKyAg
ICBjYXNlIDB4MDAwQToKKyAgICAgICAgcmV0dXJuICJEaWdpdDEiX3M7CisgICAgY2FzZSAweDAw
MEI6CisgICAgICAgIHJldHVybiAiRGlnaXQyIl9zOworICAgIGNhc2UgMHgwMDBDOgorICAgICAg
ICByZXR1cm4gIkRpZ2l0MyJfczsKKyAgICBjYXNlIDB4MDAwRDoKKyAgICAgICAgcmV0dXJuICJE
aWdpdDQiX3M7CisgICAgY2FzZSAweDAwMEU6CisgICAgICAgIHJldHVybiAiRGlnaXQ1Il9zOwor
ICAgIGNhc2UgMHgwMDBGOgorICAgICAgICByZXR1cm4gIkRpZ2l0NiJfczsKKyAgICBjYXNlIDB4
MDAxMDoKKyAgICAgICAgcmV0dXJuICJEaWdpdDciX3M7CisgICAgY2FzZSAweDAwMTE6CisgICAg
ICAgIHJldHVybiAiRGlnaXQ4Il9zOworICAgIGNhc2UgMHgwMDEyOgorICAgICAgICByZXR1cm4g
IkRpZ2l0OSJfczsKKyAgICBjYXNlIDB4MDAxMzoKKyAgICAgICAgcmV0dXJuICJEaWdpdDAiX3M7
CisgICAgY2FzZSAweDAwMTQ6CisgICAgICAgIHJldHVybiAiTWludXMiX3M7CisgICAgY2FzZSAw
eDAwMTU6CisgICAgICAgIHJldHVybiAiRXF1YWwiX3M7CisgICAgY2FzZSAweDAwMTY6CisgICAg
ICAgIHJldHVybiAiQmFja3NwYWNlIl9zOworICAgIGNhc2UgMHgwMDE3OgorICAgICAgICByZXR1
cm4gIlRhYiJfczsKKyAgICBjYXNlIDB4MDAxODoKKyAgICAgICAgcmV0dXJuICJLZXlRIl9zOwor
ICAgIGNhc2UgMHgwMDE5OgorICAgICAgICByZXR1cm4gIktleVciX3M7CisgICAgY2FzZSAweDAw
MUE6CisgICAgICAgIHJldHVybiAiS2V5RSJfczsKKyAgICBjYXNlIDB4MDAxQjoKKyAgICAgICAg
cmV0dXJuICJLZXlSIl9zOworICAgIGNhc2UgMHgwMDFDOgorICAgICAgICByZXR1cm4gIktleVQi
X3M7CisgICAgY2FzZSAweDAwMUQ6CisgICAgICAgIHJldHVybiAiS2V5WSJfczsKKyAgICBjYXNl
IDB4MDAxRToKKyAgICAgICAgcmV0dXJuICJLZXlVIl9zOworICAgIGNhc2UgMHgwMDFGOgorICAg
ICAgICByZXR1cm4gIktleUkiX3M7CisgICAgY2FzZSAweDAwMjA6CisgICAgICAgIHJldHVybiAi
S2V5TyJfczsKKyAgICBjYXNlIDB4MDAyMToKKyAgICAgICAgcmV0dXJuICJLZXlQIl9zOworICAg
IGNhc2UgMHgwMDIyOgorICAgICAgICByZXR1cm4gIkJyYWNrZXRMZWZ0Il9zOworICAgIGNhc2Ug
MHgwMDIzOgorICAgICAgICByZXR1cm4gIkJyYWNrZXRSaWdodCJfczsKKyAgICBjYXNlIDB4MDAy
NDoKKyAgICAgICAgcmV0dXJuICJFbnRlciJfczsKKyAgICBjYXNlIDB4MDAyNToKKyAgICAgICAg
cmV0dXJuICJDb250cm9sTGVmdCJfczsKKyAgICBjYXNlIDB4MDAyNjoKKyAgICAgICAgcmV0dXJu
ICJLZXlBIl9zOworICAgIGNhc2UgMHgwMDI3OgorICAgICAgICByZXR1cm4gIktleVMiX3M7Cisg
ICAgY2FzZSAweDAwMjg6CisgICAgICAgIHJldHVybiAiS2V5RCJfczsKKyAgICBjYXNlIDB4MDAy
OToKKyAgICAgICAgcmV0dXJuICJLZXlGIl9zOworICAgIGNhc2UgMHgwMDJBOgorICAgICAgICBy
ZXR1cm4gIktleUciX3M7CisgICAgY2FzZSAweDAwMkI6CisgICAgICAgIHJldHVybiAiS2V5SCJf
czsKKyAgICBjYXNlIDB4MDAyQzoKKyAgICAgICAgcmV0dXJuICJLZXlKIl9zOworICAgIGNhc2Ug
MHgwMDJEOgorICAgICAgICByZXR1cm4gIktleUsiX3M7CisgICAgY2FzZSAweDAwMkU6CisgICAg
ICAgIHJldHVybiAiS2V5TCJfczsKKyAgICBjYXNlIDB4MDAyRjoKKyAgICAgICAgcmV0dXJuICJT
ZW1pY29sb24iX3M7CisgICAgY2FzZSAweDAwMzA6CisgICAgICAgIHJldHVybiAiUXVvdGUiX3M7
CisgICAgY2FzZSAweDAwMzE6CisgICAgICAgIHJldHVybiAiQmFja3F1b3RlIl9zOworICAgIGNh
c2UgMHgwMDMyOgorICAgICAgICByZXR1cm4gIlNoaWZ0TGVmdCJfczsKKyAgICBjYXNlIDB4MDAz
MzoKKyAgICAgICAgcmV0dXJuICJCYWNrc2xhc2giX3M7CisgICAgY2FzZSAweDAwMzQ6CisgICAg
ICAgIHJldHVybiAiS2V5WiJfczsKKyAgICBjYXNlIDB4MDAzNToKKyAgICAgICAgcmV0dXJuICJL
ZXlYIl9zOworICAgIGNhc2UgMHgwMDM2OgorICAgICAgICByZXR1cm4gIktleUMiX3M7CisgICAg
Y2FzZSAweDAwMzc6CisgICAgICAgIHJldHVybiAiS2V5ViJfczsKKyAgICBjYXNlIDB4MDAzODoK
KyAgICAgICAgcmV0dXJuICJLZXlCIl9zOworICAgIGNhc2UgMHgwMDM5OgorICAgICAgICByZXR1
cm4gIktleU4iX3M7CisgICAgY2FzZSAweDAwM0E6CisgICAgICAgIHJldHVybiAiS2V5TSJfczsK
KyAgICBjYXNlIDB4MDAzQjoKKyAgICAgICAgcmV0dXJuICJDb21tYSJfczsKKyAgICBjYXNlIDB4
MDAzQzoKKyAgICAgICAgcmV0dXJuICJQZXJpb2QiX3M7CisgICAgY2FzZSAweDAwM0Q6CisgICAg
ICAgIHJldHVybiAiU2xhc2giX3M7CisgICAgY2FzZSAweDAwM0U6CisgICAgICAgIHJldHVybiAi
U2hpZnRSaWdodCJfczsKKyAgICBjYXNlIDB4MDAzRjoKKyAgICAgICAgcmV0dXJuICJOdW1wYWRN
dWx0aXBseSJfczsKKyAgICBjYXNlIDB4MDA0MDoKKyAgICAgICAgcmV0dXJuICJBbHRMZWZ0Il9z
OworICAgIGNhc2UgMHgwMDQxOgorICAgICAgICByZXR1cm4gIlNwYWNlIl9zOworICAgIGNhc2Ug
MHgwMDQyOgorICAgICAgICByZXR1cm4gIkNhcHNMb2NrIl9zOworICAgIGNhc2UgMHgwMDQzOgor
ICAgICAgICByZXR1cm4gIkYxIl9zOworICAgIGNhc2UgMHgwMDQ0OgorICAgICAgICByZXR1cm4g
IkYyIl9zOworICAgIGNhc2UgMHgwMDQ1OgorICAgICAgICByZXR1cm4gIkYzIl9zOworICAgIGNh
c2UgMHgwMDQ2OgorICAgICAgICByZXR1cm4gIkY0Il9zOworICAgIGNhc2UgMHgwMDQ3OgorICAg
ICAgICByZXR1cm4gIkY1Il9zOworICAgIGNhc2UgMHgwMDQ4OgorICAgICAgICByZXR1cm4gIkY2
Il9zOworICAgIGNhc2UgMHgwMDQ5OgorICAgICAgICByZXR1cm4gIkY3Il9zOworICAgIGNhc2Ug
MHgwMDRBOgorICAgICAgICByZXR1cm4gIkY4Il9zOworICAgIGNhc2UgMHgwMDRCOgorICAgICAg
ICByZXR1cm4gIkY5Il9zOworICAgIGNhc2UgMHgwMDRDOgorICAgICAgICByZXR1cm4gIkYxMCJf
czsKKyAgICBjYXNlIDB4MDA0RDoKKyAgICAgICAgcmV0dXJuICJOdW1Mb2NrIl9zOworICAgIGNh
c2UgMHgwMDRFOgorICAgICAgICByZXR1cm4gIlNjcm9sbExvY2siX3M7CisgICAgY2FzZSAweDAw
NEY6CisgICAgICAgIHJldHVybiAiTnVtcGFkNyJfczsKKyAgICBjYXNlIDB4MDA1MDoKKyAgICAg
ICAgcmV0dXJuICJOdW1wYWQ4Il9zOworICAgIGNhc2UgMHgwMDUxOgorICAgICAgICByZXR1cm4g
Ik51bXBhZDkiX3M7CisgICAgY2FzZSAweDAwNTI6CisgICAgICAgIHJldHVybiAiTnVtcGFkU3Vi
dHJhY3QiX3M7CisgICAgY2FzZSAweDAwNTM6CisgICAgICAgIHJldHVybiAiTnVtcGFkNCJfczsK
KyAgICBjYXNlIDB4MDA1NDoKKyAgICAgICAgcmV0dXJuICJOdW1wYWQ1Il9zOworICAgIGNhc2Ug
MHgwMDU1OgorICAgICAgICByZXR1cm4gIk51bXBhZDYiX3M7CisgICAgY2FzZSAweDAwNTY6Cisg
ICAgICAgIHJldHVybiAiTnVtcGFkQWRkIl9zOworICAgIGNhc2UgMHgwMDU3OgorICAgICAgICBy
ZXR1cm4gIk51bXBhZDEiX3M7CisgICAgY2FzZSAweDAwNTg6CisgICAgICAgIHJldHVybiAiTnVt
cGFkMiJfczsKKyAgICBjYXNlIDB4MDA1OToKKyAgICAgICAgcmV0dXJuICJOdW1wYWQzIl9zOwor
ICAgIGNhc2UgMHgwMDVBOgorICAgICAgICByZXR1cm4gIk51bXBhZDAiX3M7CisgICAgY2FzZSAw
eDAwNUI6CisgICAgICAgIHJldHVybiAiTnVtcGFkRGVjaW1hbCJfczsKKyAgICBjYXNlIDB4MDA1
RToKKyAgICAgICAgcmV0dXJuICJJbnRsQmFja3NsYXNoIl9zOworICAgIGNhc2UgMHgwMDVGOgor
ICAgICAgICByZXR1cm4gIkYxMSJfczsKKyAgICBjYXNlIDB4MDA2MDoKKyAgICAgICAgcmV0dXJu
ICJGMTIiX3M7CisgICAgY2FzZSAweDAwNjE6CisgICAgICAgIHJldHVybiAiSW50bFJvIl9zOwor
ICAgIGNhc2UgMHgwMDY0OgorICAgICAgICByZXR1cm4gIkNvbnZlcnQiX3M7CisgICAgY2FzZSAw
eDAwNjU6CisgICAgICAgIHJldHVybiAiS2FuYU1vZGUiX3M7CisgICAgY2FzZSAweDAwNjY6Cisg
ICAgICAgIHJldHVybiAiTm9uQ29udmVydCJfczsKKyAgICBjYXNlIDB4MDA2ODoKKyAgICAgICAg
cmV0dXJuICJOdW1wYWRFbnRlciJfczsKKyAgICBjYXNlIDB4MDA2OToKKyAgICAgICAgcmV0dXJu
ICJDb250cm9sUmlnaHQiX3M7CisgICAgY2FzZSAweDAwNkE6CisgICAgICAgIHJldHVybiAiTnVt
cGFkRGl2aWRlIl9zOworICAgIGNhc2UgMHgwMDZCOgorICAgICAgICByZXR1cm4gIlByaW50U2Ny
ZWVuIl9zOworICAgIGNhc2UgMHgwMDZDOgorICAgICAgICByZXR1cm4gIkFsdFJpZ2h0Il9zOwor
ICAgIGNhc2UgMHgwMDZFOgorICAgICAgICByZXR1cm4gIkhvbWUiX3M7CisgICAgY2FzZSAweDAw
NkY6CisgICAgICAgIHJldHVybiAiQXJyb3dVcCJfczsKKyAgICBjYXNlIDB4MDA3MDoKKyAgICAg
ICAgcmV0dXJuICJQYWdlVXAiX3M7CisgICAgY2FzZSAweDAwNzE6CisgICAgICAgIHJldHVybiAi
QXJyb3dMZWZ0Il9zOworICAgIGNhc2UgMHgwMDcyOgorICAgICAgICByZXR1cm4gIkFycm93Umln
aHQiX3M7CisgICAgY2FzZSAweDAwNzM6CisgICAgICAgIHJldHVybiAiRW5kIl9zOworICAgIGNh
c2UgMHgwMDc0OgorICAgICAgICByZXR1cm4gIkFycm93RG93biJfczsKKyAgICBjYXNlIDB4MDA3
NToKKyAgICAgICAgcmV0dXJuICJQYWdlRG93biJfczsKKyAgICBjYXNlIDB4MDA3NjoKKyAgICAg
ICAgcmV0dXJuICJJbnNlcnQiX3M7CisgICAgY2FzZSAweDAwNzc6CisgICAgICAgIHJldHVybiAi
RGVsZXRlIl9zOworICAgIGNhc2UgMHgwMDc5OgorICAgICAgICByZXR1cm4gIkF1ZGlvVm9sdW1l
TXV0ZSJfczsKKyAgICBjYXNlIDB4MDA3QToKKyAgICAgICAgcmV0dXJuICJBdWRpb1ZvbHVtZURv
d24iX3M7CisgICAgY2FzZSAweDAwN0I6CisgICAgICAgIHJldHVybiAiQXVkaW9Wb2x1bWVVcCJf
czsKKyAgICBjYXNlIDB4MDA3RDoKKyAgICAgICAgcmV0dXJuICJOdW1wYWRFcXVhbCJfczsKKyAg
ICBjYXNlIDB4MDA3RjoKKyAgICAgICAgcmV0dXJuICJQYXVzZSJfczsKKyAgICBjYXNlIDB4MDA4
MToKKyAgICAgICAgcmV0dXJuICJOdW1wYWRDb21tYSJfczsKKyAgICBjYXNlIDB4MDA4MjoKKyAg
ICAgICAgcmV0dXJuICJMYW5nMSJfczsKKyAgICBjYXNlIDB4MDA4MzoKKyAgICAgICAgcmV0dXJu
ICJMYW5nMiJfczsKKyAgICBjYXNlIDB4MDA4NDoKKyAgICAgICAgcmV0dXJuICJJbnRsWWVuIl9z
OworICAgIGNhc2UgMHgwMDg1OgorICAgICAgICByZXR1cm4gIk9TTGVmdCJfczsKKyAgICBjYXNl
IDB4MDA4NjoKKyAgICAgICAgcmV0dXJuICJPU1JpZ2h0Il9zOworICAgIGNhc2UgMHgwMDg3Ogor
ICAgICAgICByZXR1cm4gIkNvbnRleHRNZW51Il9zOworICAgIGNhc2UgMHgwMDg4OgorICAgICAg
ICByZXR1cm4gIkJyb3dzZXJTdG9wIl9zOworICAgIGNhc2UgMHgwMDg5OgorICAgICAgICByZXR1
cm4gIkFnYWluIl9zOworICAgIGNhc2UgMHgwMDhBOgorICAgICAgICByZXR1cm4gIlByb3BzIl9z
OworICAgIGNhc2UgMHgwMDhCOgorICAgICAgICByZXR1cm4gIlVuZG8iX3M7CisgICAgY2FzZSAw
eDAwOEM6CisgICAgICAgIHJldHVybiAiU2VsZWN0Il9zOworICAgIGNhc2UgMHgwMDhEOgorICAg
ICAgICByZXR1cm4gIkNvcHkiX3M7CisgICAgY2FzZSAweDAwOEU6CisgICAgICAgIHJldHVybiAi
T3BlbiJfczsKKyAgICBjYXNlIDB4MDA4RjoKKyAgICAgICAgcmV0dXJuICJQYXN0ZSJfczsKKyAg
ICBjYXNlIDB4MDA5MDoKKyAgICAgICAgcmV0dXJuICJGaW5kIl9zOworICAgIGNhc2UgMHgwMDkx
OgorICAgICAgICByZXR1cm4gIkN1dCJfczsKKyAgICBjYXNlIDB4MDA5MjoKKyAgICAgICAgcmV0
dXJuICJIZWxwIl9zOworICAgIGNhc2UgMHgwMDk0OgorICAgICAgICByZXR1cm4gIkxhdW5jaEFw
cDIiX3M7CisgICAgY2FzZSAweDAwOTc6CisgICAgICAgIHJldHVybiAiV2FrZVVwIl9zOworICAg
IGNhc2UgMHgwMDk4OgorICAgICAgICByZXR1cm4gIkxhdW5jaEFwcDEiX3M7CisgICAgY2FzZSAw
eDAwQTM6CisgICAgICAgIHJldHVybiAiTGF1bmNoTWFpbCJfczsKKyAgICBjYXNlIDB4MDBBNDoK
KyAgICAgICAgcmV0dXJuICJCcm93c2VyRmF2b3JpdGVzIl9zOworICAgIGNhc2UgMHgwMEE2Ogor
ICAgICAgICByZXR1cm4gIkJyb3dzZXJCYWNrIl9zOworICAgIGNhc2UgMHgwMEE3OgorICAgICAg
ICByZXR1cm4gIkJyb3dzZXJGb3J3YXJkIl9zOworICAgIGNhc2UgMHgwMEE5OgorICAgICAgICBy
ZXR1cm4gIkVqZWN0Il9zOworICAgIGNhc2UgMHgwMEFCOgorICAgICAgICByZXR1cm4gIk1lZGlh
VHJhY2tOZXh0Il9zOworICAgIGNhc2UgMHgwMEFDOgorICAgICAgICByZXR1cm4gIk1lZGlhUGxh
eVBhdXNlIl9zOworICAgIGNhc2UgMHgwMEFEOgorICAgICAgICByZXR1cm4gIk1lZGlhVHJhY2tQ
cmV2aW91cyJfczsKKyAgICBjYXNlIDB4MDBBRToKKyAgICAgICAgcmV0dXJuICJNZWRpYVN0b3Ai
X3M7CisgICAgY2FzZSAweDAwQjM6CisgICAgICAgIHJldHVybiAiTGF1bmNoTWVkaWFQbGF5ZXIi
X3M7CisgICAgY2FzZSAweDAwQjQ6CisgICAgICAgIHJldHVybiAiQnJvd3NlckhvbWUiX3M7Cisg
ICAgY2FzZSAweDAwQjU6CisgICAgICAgIHJldHVybiAiQnJvd3NlclJlZnJlc2giX3M7CisgICAg
Y2FzZSAweDAwQkY6CisgICAgICAgIHJldHVybiAiRjEzIl9zOworICAgIGNhc2UgMHgwMEMwOgor
ICAgICAgICByZXR1cm4gIkYxNCJfczsKKyAgICBjYXNlIDB4MDBDMToKKyAgICAgICAgcmV0dXJu
ICJGMTUiX3M7CisgICAgY2FzZSAweDAwQzI6CisgICAgICAgIHJldHVybiAiRjE2Il9zOworICAg
IGNhc2UgMHgwMEMzOgorICAgICAgICByZXR1cm4gIkYxNyJfczsKKyAgICBjYXNlIDB4MDBDNDoK
KyAgICAgICAgcmV0dXJuICJGMTgiX3M7CisgICAgY2FzZSAweDAwQzU6CisgICAgICAgIHJldHVy
biAiRjE5Il9zOworICAgIGNhc2UgMHgwMEM2OgorICAgICAgICByZXR1cm4gIkYyMCJfczsKKyAg
ICBjYXNlIDB4MDBDNzoKKyAgICAgICAgcmV0dXJuICJGMjEiX3M7CisgICAgY2FzZSAweDAwQzg6
CisgICAgICAgIHJldHVybiAiRjIyIl9zOworICAgIGNhc2UgMHgwMEM5OgorICAgICAgICByZXR1
cm4gIkYyMyJfczsKKyAgICBjYXNlIDB4MDBDQToKKyAgICAgICAgcmV0dXJuICJGMjQiX3M7Cisg
ICAgY2FzZSAweDAwRTE6CisgICAgICAgIHJldHVybiAiQnJvd3NlclNlYXJjaCJfczsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisgICAgcmV0dXJuICJVbmlkZW50aWZpZWQi
X3M7Cit9CisKKy8vIEZJWE1FOiBUaGlzIGlzIGluY29tcGxldGUuIFdlIHNob3VsZCBjaGFuZ2Ug
dGhpcyB0byBtaXJyb3IKKy8vIG1vcmUgbGlrZSB3aGF0IEZpcmVmb3ggZG9lcywgYW5kIGdlbmVy
YXRlIHRoZXNlIHN3aXRjaCBzdGF0ZW1lbnRzCisvLyBhdCBidWlsZCB0aW1lLgorU3RyaW5nIFBs
YXRmb3JtS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllckZvcldQRUtleUNvZGUodW5zaWduZWQg
a2V5Q29kZSkKK3sKKyAgICBzd2l0Y2ggKGtleUNvZGUpIHsKKyAgICBjYXNlIFdQRV9LRVlfTWVu
dToKKyAgICBjYXNlIFdQRV9LRVlfQWx0X0w6CisgICAgY2FzZSBXUEVfS0VZX0FsdF9SOgorICAg
ICAgICByZXR1cm4gIkFsdCI7CisgICAgY2FzZSBXUEVfS0VZX0NsZWFyOgorICAgICAgICByZXR1
cm4gIkNsZWFyIjsKKyAgICBjYXNlIFdQRV9LRVlfRG93bjoKKyAgICAgICAgcmV0dXJuICJEb3du
IjsKKyAgICAgICAgLy8gIkVuZCIKKyAgICBjYXNlIFdQRV9LRVlfRW5kOgorICAgICAgICByZXR1
cm4gIkVuZCI7CisgICAgICAgIC8vICJFbnRlciIKKyAgICBjYXNlIFdQRV9LRVlfSVNPX0VudGVy
OgorICAgIGNhc2UgV1BFX0tFWV9LUF9FbnRlcjoKKyAgICBjYXNlIFdQRV9LRVlfUmV0dXJuOgor
ICAgICAgICByZXR1cm4gIkVudGVyIjsKKyAgICBjYXNlIFdQRV9LRVlfRXhlY3V0ZToKKyAgICAg
ICAgcmV0dXJuICJFeGVjdXRlIjsKKyAgICBjYXNlIFdQRV9LRVlfRjE6CisgICAgICAgIHJldHVy
biAiRjEiOworICAgIGNhc2UgV1BFX0tFWV9GMjoKKyAgICAgICAgcmV0dXJuICJGMiI7CisgICAg
Y2FzZSBXUEVfS0VZX0YzOgorICAgICAgICByZXR1cm4gIkYzIjsKKyAgICBjYXNlIFdQRV9LRVlf
RjQ6CisgICAgICAgIHJldHVybiAiRjQiOworICAgIGNhc2UgV1BFX0tFWV9GNToKKyAgICAgICAg
cmV0dXJuICJGNSI7CisgICAgY2FzZSBXUEVfS0VZX0Y2OgorICAgICAgICByZXR1cm4gIkY2IjsK
KyAgICBjYXNlIFdQRV9LRVlfRjc6CisgICAgICAgIHJldHVybiAiRjciOworICAgIGNhc2UgV1BF
X0tFWV9GODoKKyAgICAgICAgcmV0dXJuICJGOCI7CisgICAgY2FzZSBXUEVfS0VZX0Y5OgorICAg
ICAgICByZXR1cm4gIkY5IjsKKyAgICBjYXNlIFdQRV9LRVlfRjEwOgorICAgICAgICByZXR1cm4g
IkYxMCI7CisgICAgY2FzZSBXUEVfS0VZX0YxMToKKyAgICAgICAgcmV0dXJuICJGMTEiOworICAg
IGNhc2UgV1BFX0tFWV9GMTI6CisgICAgICAgIHJldHVybiAiRjEyIjsKKyAgICBjYXNlIFdQRV9L
RVlfRjEzOgorICAgICAgICByZXR1cm4gIkYxMyI7CisgICAgY2FzZSBXUEVfS0VZX0YxNDoKKyAg
ICAgICAgcmV0dXJuICJGMTQiOworICAgIGNhc2UgV1BFX0tFWV9GMTU6CisgICAgICAgIHJldHVy
biAiRjE1IjsKKyAgICBjYXNlIFdQRV9LRVlfRjE2OgorICAgICAgICByZXR1cm4gIkYxNiI7Cisg
ICAgY2FzZSBXUEVfS0VZX0YxNzoKKyAgICAgICAgcmV0dXJuICJGMTciOworICAgIGNhc2UgV1BF
X0tFWV9GMTg6CisgICAgICAgIHJldHVybiAiRjE4IjsKKyAgICBjYXNlIFdQRV9LRVlfRjE5Ogor
ICAgICAgICByZXR1cm4gIkYxOSI7CisgICAgY2FzZSBXUEVfS0VZX0YyMDoKKyAgICAgICAgcmV0
dXJuICJGMjAiOworICAgIGNhc2UgV1BFX0tFWV9GMjE6CisgICAgICAgIHJldHVybiAiRjIxIjsK
KyAgICBjYXNlIFdQRV9LRVlfRjIyOgorICAgICAgICByZXR1cm4gIkYyMiI7CisgICAgY2FzZSBX
UEVfS0VZX0YyMzoKKyAgICAgICAgcmV0dXJuICJGMjMiOworICAgIGNhc2UgV1BFX0tFWV9GMjQ6
CisgICAgICAgIHJldHVybiAiRjI0IjsKKyAgICBjYXNlIFdQRV9LRVlfSGVscDoKKyAgICAgICAg
cmV0dXJuICJIZWxwIjsKKyAgICBjYXNlIFdQRV9LRVlfSG9tZToKKyAgICAgICAgcmV0dXJuICJI
b21lIjsKKyAgICBjYXNlIFdQRV9LRVlfSW5zZXJ0OgorICAgICAgICByZXR1cm4gIkluc2VydCI7
CisgICAgY2FzZSBXUEVfS0VZX0xlZnQ6CisgICAgICAgIHJldHVybiAiTGVmdCI7CisgICAgY2Fz
ZSBXUEVfS0VZX1BhZ2VfRG93bjoKKyAgICAgICAgcmV0dXJuICJQYWdlRG93biI7CisgICAgY2Fz
ZSBXUEVfS0VZX1BhZ2VfVXA6CisgICAgICAgIHJldHVybiAiUGFnZVVwIjsKKyAgICBjYXNlIFdQ
RV9LRVlfUGF1c2U6CisgICAgICAgIHJldHVybiAiUGF1c2UiOworICAgIGNhc2UgV1BFX0tFWV8z
MjcwX1ByaW50U2NyZWVuOgorICAgIGNhc2UgV1BFX0tFWV9QcmludDoKKyAgICAgICAgcmV0dXJu
ICJQcmludFNjcmVlbiI7CisgICAgY2FzZSBXUEVfS0VZX1JpZ2h0OgorICAgICAgICByZXR1cm4g
IlJpZ2h0IjsKKyAgICBjYXNlIFdQRV9LRVlfU2VsZWN0OgorICAgICAgICByZXR1cm4gIlNlbGVj
dCI7CisgICAgY2FzZSBXUEVfS0VZX1VwOgorICAgICAgICByZXR1cm4gIlVwIjsKKyAgICAgICAg
Ly8gU3RhbmRhcmQgc2F5cyB0aGF0IERFTCBiZWNvbWVzIFUrMDA3Ri4KKyAgICBjYXNlIFdQRV9L
RVlfRGVsZXRlOgorICAgICAgICByZXR1cm4gIlUrMDA3RiI7CisgICAgY2FzZSBXUEVfS0VZX0Jh
Y2tTcGFjZToKKyAgICAgICAgcmV0dXJuICJVKzAwMDgiOworICAgIGNhc2UgV1BFX0tFWV9JU09f
TGVmdF9UYWI6CisgICAgY2FzZSBXUEVfS0VZXzMyNzBfQmFja1RhYjoKKyAgICBjYXNlIFdQRV9L
RVlfVGFiOgorICAgICAgICByZXR1cm4gIlUrMDAwOSI7CisgICAgZGVmYXVsdDoKKyAgICAgICAg
YnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIFN0cmluZzo6Zm9ybWF0KCJVKyUwNFgiLCB3cGVf
a2V5X2NvZGVfdG9fdW5pY29kZShrZXlDb2RlKSk7Cit9CisKK2ludCBQbGF0Zm9ybUtleWJvYXJk
RXZlbnQ6OndpbmRvd3NLZXlDb2RlRm9yV1BFS2V5Q29kZSh1bnNpZ25lZCBrZXljb2RlKQorewor
ICAgIHN3aXRjaCAoa2V5Y29kZSkgeworICAgIGNhc2UgV1BFX0tFWV9LUF8wOgorICAgICAgICBy
ZXR1cm4gVktfTlVNUEFEMDsgLy8gKDYwKSBOdW1lcmljIGtleXBhZCAwIGtleQorICAgIGNhc2Ug
V1BFX0tFWV9LUF8xOgorICAgICAgICByZXR1cm4gVktfTlVNUEFEMTsgLy8gKDYxKSBOdW1lcmlj
IGtleXBhZCAxIGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF8yOgorICAgICAgICByZXR1cm4gVktf
TlVNUEFEMjsgLy8gKDYyKSBOdW1lcmljIGtleXBhZCAyIGtleQorICAgIGNhc2UgV1BFX0tFWV9L
UF8zOgorICAgICAgICByZXR1cm4gVktfTlVNUEFEMzsgLy8gKDYzKSBOdW1lcmljIGtleXBhZCAz
IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF80OgorICAgICAgICByZXR1cm4gVktfTlVNUEFENDsg
Ly8gKDY0KSBOdW1lcmljIGtleXBhZCA0IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF81OgorICAg
ICAgICByZXR1cm4gVktfTlVNUEFENTsgLy8gKDY1KSBOdW1lcmljIGtleXBhZCA1IGtleQorICAg
IGNhc2UgV1BFX0tFWV9LUF82OgorICAgICAgICByZXR1cm4gVktfTlVNUEFENjsgLy8gKDY2KSBO
dW1lcmljIGtleXBhZCA2IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF83OgorICAgICAgICByZXR1
cm4gVktfTlVNUEFENzsgLy8gKDY3KSBOdW1lcmljIGtleXBhZCA3IGtleQorICAgIGNhc2UgV1BF
X0tFWV9LUF84OgorICAgICAgICByZXR1cm4gVktfTlVNUEFEODsgLy8gKDY4KSBOdW1lcmljIGtl
eXBhZCA4IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF85OgorICAgICAgICByZXR1cm4gVktfTlVN
UEFEOTsgLy8gKDY5KSBOdW1lcmljIGtleXBhZCA5IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9N
dWx0aXBseToKKyAgICAgICAgcmV0dXJuIFZLX01VTFRJUExZOyAvLyAoNkEpIE11bHRpcGx5IGtl
eQorICAgIGNhc2UgV1BFX0tFWV9LUF9BZGQ6CisgICAgICAgIHJldHVybiBWS19BREQ7IC8vICg2
QikgQWRkIGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9TdWJ0cmFjdDoKKyAgICAgICAgcmV0dXJu
IFZLX1NVQlRSQUNUOyAvLyAoNkQpIFN1YnRyYWN0IGtleQorICAgIGNhc2UgV1BFX0tFWV9LUF9E
ZWNpbWFsOgorICAgICAgICByZXR1cm4gVktfREVDSU1BTDsgLy8gKDZFKSBEZWNpbWFsIGtleQor
ICAgIGNhc2UgV1BFX0tFWV9LUF9EaXZpZGU6CisgICAgICAgIHJldHVybiBWS19ESVZJREU7IC8v
ICg2RikgRGl2aWRlIGtleQorCisgICAgY2FzZSBXUEVfS0VZX0tQX1BhZ2VfVXA6CisgICAgICAg
IHJldHVybiBWS19QUklPUjsgLy8gKDIxKSBQQUdFIFVQIGtleQorICAgIGNhc2UgV1BFX0tFWV9L
UF9QYWdlX0Rvd246CisgICAgICAgIHJldHVybiBWS19ORVhUOyAvLyAoMjIpIFBBR0UgRE9XTiBr
ZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfRW5kOgorICAgICAgICByZXR1cm4gVktfRU5EOyAvLyAo
MjMpIEVORCBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfSG9tZToKKyAgICAgICAgcmV0dXJuIFZL
X0hPTUU7IC8vICgyNCkgSE9NRSBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfTGVmdDoKKyAgICAg
ICAgcmV0dXJuIFZLX0xFRlQ7IC8vICgyNSkgTEVGVCBBUlJPVyBrZXkKKyAgICBjYXNlIFdQRV9L
RVlfS1BfVXA6CisgICAgICAgIHJldHVybiBWS19VUDsgLy8gKDI2KSBVUCBBUlJPVyBrZXkKKyAg
ICBjYXNlIFdQRV9LRVlfS1BfUmlnaHQ6CisgICAgICAgIHJldHVybiBWS19SSUdIVDsgLy8gKDI3
KSBSSUdIVCBBUlJPVyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfS1BfRG93bjoKKyAgICAgICAgcmV0
dXJuIFZLX0RPV047IC8vICgyOCkgRE9XTiBBUlJPVyBrZXkKKworICAgIGNhc2UgV1BFX0tFWV9C
YWNrU3BhY2U6CisgICAgICAgIHJldHVybiBWS19CQUNLOyAvLyAoMDgpIEJBQ0tTUEFDRSBrZXkK
KyAgICBjYXNlIFdQRV9LRVlfSVNPX0xlZnRfVGFiOgorICAgIGNhc2UgV1BFX0tFWV8zMjcwX0Jh
Y2tUYWI6CisgICAgY2FzZSBXUEVfS0VZX1RhYjoKKyAgICAgICAgcmV0dXJuIFZLX1RBQjsgLy8g
KDA5KSBUQUIga2V5CisgICAgY2FzZSBXUEVfS0VZX0NsZWFyOgorICAgICAgICByZXR1cm4gVktf
Q0xFQVI7IC8vICgwQykgQ0xFQVIga2V5CisgICAgY2FzZSBXUEVfS0VZX0lTT19FbnRlcjoKKyAg
ICBjYXNlIFdQRV9LRVlfS1BfRW50ZXI6CisgICAgY2FzZSBXUEVfS0VZX1JldHVybjoKKyAgICAg
ICAgcmV0dXJuIFZLX1JFVFVSTjsgLy8gKDBEKSBSZXR1cm4ga2V5CisKKyAgICAgICAgLy8gVktf
U0hJRlQgKDEwKSBTSElGVCBrZXkKKyAgICAgICAgLy8gVktfQ09OVFJPTCAoMTEpIENUUkwga2V5
CisKKyAgICBjYXNlIFdQRV9LRVlfTWVudToKKyAgICAgICAgcmV0dXJuIFZLX0FQUFM7IC8vICg1
RCkgQXBwbGljYXRpb25zIGtleSAoTmF0dXJhbCBrZXlib2FyZCkKKworICAgICAgICAvLyBWS19N
RU5VICgxMikgQUxUIGtleQorCisgICAgY2FzZSBXUEVfS0VZX1BhdXNlOgorICAgICAgICByZXR1
cm4gVktfUEFVU0U7IC8vICgxMykgUEFVU0Uga2V5CisgICAgY2FzZSBXUEVfS0VZX0NhcHNfTG9j
azoKKyAgICAgICAgcmV0dXJuIFZLX0NBUElUQUw7IC8vICgxNCkgQ0FQUyBMT0NLIGtleQorICAg
IGNhc2UgV1BFX0tFWV9LYW5hX0xvY2s6CisgICAgY2FzZSBXUEVfS0VZX0thbmFfU2hpZnQ6Cisg
ICAgICAgIHJldHVybiBWS19LQU5BOyAvLyAoMTUpIElucHV0IE1ldGhvZCBFZGl0b3IgKElNRSkg
S2FuYSBtb2RlCisgICAgY2FzZSBXUEVfS0VZX0hhbmd1bDoKKyAgICAgICAgcmV0dXJuIFZLX0hB
TkdVTDsgLy8gVktfSEFOR1VMICgxNSkgSU1FIEhhbmd1bCBtb2RlCisgICAgICAgIC8vIFZLX0pV
TkpBICgxNykgSU1FIEp1bmphIG1vZGUKKyAgICAgICAgLy8gVktfRklOQUwgKDE4KSBJTUUgZmlu
YWwgbW9kZQorICAgIGNhc2UgV1BFX0tFWV9IYW5ndWxfSGFuamE6CisgICAgICAgIHJldHVybiBW
S19IQU5KQTsgLy8gKDE5KSBJTUUgSGFuamEgbW9kZQorICAgIGNhc2UgV1BFX0tFWV9LYW5qaToK
KyAgICAgICAgcmV0dXJuIFZLX0tBTkpJOyAvLyAoMTkpIElNRSBLYW5qaSBtb2RlCisgICAgY2Fz
ZSBXUEVfS0VZX0VzY2FwZToKKyAgICAgICAgcmV0dXJuIFZLX0VTQ0FQRTsgLy8gKDFCKSBFU0Mg
a2V5CisgICAgICAgIC8vIFZLX0NPTlZFUlQgKDFDKSBJTUUgY29udmVydAorICAgICAgICAvLyBW
S19OT05DT05WRVJUICgxRCkgSU1FIG5vbmNvbnZlcnQKKyAgICAgICAgLy8gVktfQUNDRVBUICgx
RSkgSU1FIGFjY2VwdAorICAgICAgICAvLyBWS19NT0RFQ0hBTkdFICgxRikgSU1FIG1vZGUgY2hh
bmdlIHJlcXVlc3QKKyAgICBjYXNlIFdQRV9LRVlfc3BhY2U6CisgICAgICAgIHJldHVybiBWS19T
UEFDRTsgLy8gKDIwKSBTUEFDRUJBUgorICAgIGNhc2UgV1BFX0tFWV9QYWdlX1VwOgorICAgICAg
ICByZXR1cm4gVktfUFJJT1I7IC8vICgyMSkgUEFHRSBVUCBrZXkKKyAgICBjYXNlIFdQRV9LRVlf
UGFnZV9Eb3duOgorICAgICAgICByZXR1cm4gVktfTkVYVDsgLy8gKDIyKSBQQUdFIERPV04ga2V5
CisgICAgY2FzZSBXUEVfS0VZX0VuZDoKKyAgICAgICAgcmV0dXJuIFZLX0VORDsgLy8gKDIzKSBF
TkQga2V5CisgICAgY2FzZSBXUEVfS0VZX0hvbWU6CisgICAgICAgIHJldHVybiBWS19IT01FOyAv
LyAoMjQpIEhPTUUga2V5CisgICAgY2FzZSBXUEVfS0VZX0xlZnQ6CisgICAgICAgIHJldHVybiBW
S19MRUZUOyAvLyAoMjUpIExFRlQgQVJST1cga2V5CisgICAgY2FzZSBXUEVfS0VZX1VwOgorICAg
ICAgICByZXR1cm4gVktfVVA7IC8vICgyNikgVVAgQVJST1cga2V5CisgICAgY2FzZSBXUEVfS0VZ
X1JpZ2h0OgorICAgICAgICByZXR1cm4gVktfUklHSFQ7IC8vICgyNykgUklHSFQgQVJST1cga2V5
CisgICAgY2FzZSBXUEVfS0VZX0Rvd246CisgICAgICAgIHJldHVybiBWS19ET1dOOyAvLyAoMjgp
IERPV04gQVJST1cga2V5CisgICAgY2FzZSBXUEVfS0VZX1NlbGVjdDoKKyAgICAgICAgcmV0dXJu
IFZLX1NFTEVDVDsgLy8gKDI5KSBTRUxFQ1Qga2V5CisgICAgY2FzZSBXUEVfS0VZX1ByaW50Ogor
ICAgICAgICByZXR1cm4gVktfU05BUFNIT1Q7IC8vICgyQykgUFJJTlQgU0NSRUVOIGtleQorICAg
IGNhc2UgV1BFX0tFWV9FeGVjdXRlOgorICAgICAgICByZXR1cm4gVktfRVhFQ1VURTsgLy8gKDJC
KSBFWEVDVVRFIGtleQorICAgIGNhc2UgV1BFX0tFWV9JbnNlcnQ6CisgICAgY2FzZSBXUEVfS0VZ
X0tQX0luc2VydDoKKyAgICAgICAgcmV0dXJuIFZLX0lOU0VSVDsgLy8gKDJEKSBJTlMga2V5Cisg
ICAgY2FzZSBXUEVfS0VZX0RlbGV0ZToKKyAgICBjYXNlIFdQRV9LRVlfS1BfRGVsZXRlOgorICAg
ICAgICByZXR1cm4gVktfREVMRVRFOyAvLyAoMkUpIERFTCBrZXkKKyAgICBjYXNlIFdQRV9LRVlf
SGVscDoKKyAgICAgICAgcmV0dXJuIFZLX0hFTFA7IC8vICgyRikgSEVMUCBrZXkKKyAgICBjYXNl
IFdQRV9LRVlfMDoKKyAgICBjYXNlIFdQRV9LRVlfcGFyZW5yaWdodDoKKyAgICAgICAgcmV0dXJu
IFZLXzA7IC8vICgzMCkgMCkga2V5CisgICAgY2FzZSBXUEVfS0VZXzE6CisgICAgY2FzZSBXUEVf
S0VZX2V4Y2xhbToKKyAgICAgICAgcmV0dXJuIFZLXzE7IC8vICgzMSkgMSAhIGtleQorICAgIGNh
c2UgV1BFX0tFWV8yOgorICAgIGNhc2UgV1BFX0tFWV9hdDoKKyAgICAgICAgcmV0dXJuIFZLXzI7
IC8vICgzMikgMiAmIGtleQorICAgIGNhc2UgV1BFX0tFWV8zOgorICAgIGNhc2UgV1BFX0tFWV9u
dW1iZXJzaWduOgorICAgICAgICByZXR1cm4gVktfMzsgLy8gY2FzZSAnMyc6IGNhc2UgJyMnOwor
ICAgIGNhc2UgV1BFX0tFWV80OgorICAgIGNhc2UgV1BFX0tFWV9kb2xsYXI6IC8vICgzNCkgNCBr
ZXkgJyQnOworICAgICAgICByZXR1cm4gVktfNDsKKyAgICBjYXNlIFdQRV9LRVlfNToKKyAgICBj
YXNlIFdQRV9LRVlfcGVyY2VudDoKKyAgICAgICAgcmV0dXJuIFZLXzU7IC8vICgzNSkgNSBrZXkg
ICclJworICAgIGNhc2UgV1BFX0tFWV82OgorICAgIGNhc2UgV1BFX0tFWV9hc2NpaWNpcmN1bToK
KyAgICAgICAgcmV0dXJuIFZLXzY7IC8vICgzNikgNiBrZXkgICdeJworICAgIGNhc2UgV1BFX0tF
WV83OgorICAgIGNhc2UgV1BFX0tFWV9hbXBlcnNhbmQ6CisgICAgICAgIHJldHVybiBWS183OyAv
LyAoMzcpIDcga2V5ICBjYXNlICcmJworICAgIGNhc2UgV1BFX0tFWV84OgorICAgIGNhc2UgV1BF
X0tFWV9hc3RlcmlzazoKKyAgICAgICAgcmV0dXJuIFZLXzg7IC8vICgzOCkgOCBrZXkgICcqJwor
ICAgIGNhc2UgV1BFX0tFWV85OgorICAgIGNhc2UgV1BFX0tFWV9wYXJlbmxlZnQ6CisgICAgICAg
IHJldHVybiBWS185OyAvLyAoMzkpIDkga2V5ICcoJworICAgIGNhc2UgV1BFX0tFWV9hOgorICAg
IGNhc2UgV1BFX0tFWV9BOgorICAgICAgICByZXR1cm4gVktfQTsgLy8gKDQxKSBBIGtleSBjYXNl
ICdhJzogY2FzZSAnQSc6IHJldHVybiAweDQxOworICAgIGNhc2UgV1BFX0tFWV9iOgorICAgIGNh
c2UgV1BFX0tFWV9COgorICAgICAgICByZXR1cm4gVktfQjsgLy8gKDQyKSBCIGtleSBjYXNlICdi
JzogY2FzZSAnQic6IHJldHVybiAweDQyOworICAgIGNhc2UgV1BFX0tFWV9jOgorICAgIGNhc2Ug
V1BFX0tFWV9DOgorICAgICAgICByZXR1cm4gVktfQzsgLy8gKDQzKSBDIGtleSBjYXNlICdjJzog
Y2FzZSAnQyc6IHJldHVybiAweDQzOworICAgIGNhc2UgV1BFX0tFWV9kOgorICAgIGNhc2UgV1BF
X0tFWV9EOgorICAgICAgICByZXR1cm4gVktfRDsgLy8gKDQ0KSBEIGtleSBjYXNlICdkJzogY2Fz
ZSAnRCc6IHJldHVybiAweDQ0OworICAgIGNhc2UgV1BFX0tFWV9lOgorICAgIGNhc2UgV1BFX0tF
WV9FOgorICAgICAgICByZXR1cm4gVktfRTsgLy8gKDQ1KSBFIGtleSBjYXNlICdlJzogY2FzZSAn
RSc6IHJldHVybiAweDQ1OworICAgIGNhc2UgV1BFX0tFWV9mOgorICAgIGNhc2UgV1BFX0tFWV9G
OgorICAgICAgICByZXR1cm4gVktfRjsgLy8gKDQ2KSBGIGtleSBjYXNlICdmJzogY2FzZSAnRic6
IHJldHVybiAweDQ2OworICAgIGNhc2UgV1BFX0tFWV9nOgorICAgIGNhc2UgV1BFX0tFWV9HOgor
ICAgICAgICByZXR1cm4gVktfRzsgLy8gKDQ3KSBHIGtleSBjYXNlICdnJzogY2FzZSAnRyc6IHJl
dHVybiAweDQ3OworICAgIGNhc2UgV1BFX0tFWV9oOgorICAgIGNhc2UgV1BFX0tFWV9IOgorICAg
ICAgICByZXR1cm4gVktfSDsgLy8gKDQ4KSBIIGtleSBjYXNlICdoJzogY2FzZSAnSCc6IHJldHVy
biAweDQ4OworICAgIGNhc2UgV1BFX0tFWV9pOgorICAgIGNhc2UgV1BFX0tFWV9JOgorICAgICAg
ICByZXR1cm4gVktfSTsgLy8gKDQ5KSBJIGtleSBjYXNlICdpJzogY2FzZSAnSSc6IHJldHVybiAw
eDQ5OworICAgIGNhc2UgV1BFX0tFWV9qOgorICAgIGNhc2UgV1BFX0tFWV9KOgorICAgICAgICBy
ZXR1cm4gVktfSjsgLy8gKDRBKSBKIGtleSBjYXNlICdqJzogY2FzZSAnSic6IHJldHVybiAweDRB
OworICAgIGNhc2UgV1BFX0tFWV9rOgorICAgIGNhc2UgV1BFX0tFWV9LOgorICAgICAgICByZXR1
cm4gVktfSzsgLy8gKDRCKSBLIGtleSBjYXNlICdrJzogY2FzZSAnSyc6IHJldHVybiAweDRCOwor
ICAgIGNhc2UgV1BFX0tFWV9sOgorICAgIGNhc2UgV1BFX0tFWV9MOgorICAgICAgICByZXR1cm4g
VktfTDsgLy8gKDRDKSBMIGtleSBjYXNlICdsJzogY2FzZSAnTCc6IHJldHVybiAweDRDOworICAg
IGNhc2UgV1BFX0tFWV9tOgorICAgIGNhc2UgV1BFX0tFWV9NOgorICAgICAgICByZXR1cm4gVktf
TTsgLy8gKDREKSBNIGtleSBjYXNlICdtJzogY2FzZSAnTSc6IHJldHVybiAweDREOworICAgIGNh
c2UgV1BFX0tFWV9uOgorICAgIGNhc2UgV1BFX0tFWV9OOgorICAgICAgICByZXR1cm4gVktfTjsg
Ly8gKDRFKSBOIGtleSBjYXNlICduJzogY2FzZSAnTic6IHJldHVybiAweDRFOworICAgIGNhc2Ug
V1BFX0tFWV9vOgorICAgIGNhc2UgV1BFX0tFWV9POgorICAgICAgICByZXR1cm4gVktfTzsgLy8g
KDRGKSBPIGtleSBjYXNlICdvJzogY2FzZSAnTyc6IHJldHVybiAweDRGOworICAgIGNhc2UgV1BF
X0tFWV9wOgorICAgIGNhc2UgV1BFX0tFWV9QOgorICAgICAgICByZXR1cm4gVktfUDsgLy8gKDUw
KSBQIGtleSBjYXNlICdwJzogY2FzZSAnUCc6IHJldHVybiAweDUwOworICAgIGNhc2UgV1BFX0tF
WV9xOgorICAgIGNhc2UgV1BFX0tFWV9ROgorICAgICAgICByZXR1cm4gVktfUTsgLy8gKDUxKSBR
IGtleSBjYXNlICdxJzogY2FzZSAnUSc6IHJldHVybiAweDUxOworICAgIGNhc2UgV1BFX0tFWV9y
OgorICAgIGNhc2UgV1BFX0tFWV9SOgorICAgICAgICByZXR1cm4gVktfUjsgLy8gKDUyKSBSIGtl
eSBjYXNlICdyJzogY2FzZSAnUic6IHJldHVybiAweDUyOworICAgIGNhc2UgV1BFX0tFWV9zOgor
ICAgIGNhc2UgV1BFX0tFWV9TOgorICAgICAgICByZXR1cm4gVktfUzsgLy8gKDUzKSBTIGtleSBj
YXNlICdzJzogY2FzZSAnUyc6IHJldHVybiAweDUzOworICAgIGNhc2UgV1BFX0tFWV90OgorICAg
IGNhc2UgV1BFX0tFWV9UOgorICAgICAgICByZXR1cm4gVktfVDsgLy8gKDU0KSBUIGtleSBjYXNl
ICd0JzogY2FzZSAnVCc6IHJldHVybiAweDU0OworICAgIGNhc2UgV1BFX0tFWV91OgorICAgIGNh
c2UgV1BFX0tFWV9VOgorICAgICAgICByZXR1cm4gVktfVTsgLy8gKDU1KSBVIGtleSBjYXNlICd1
JzogY2FzZSAnVSc6IHJldHVybiAweDU1OworICAgIGNhc2UgV1BFX0tFWV92OgorICAgIGNhc2Ug
V1BFX0tFWV9WOgorICAgICAgICByZXR1cm4gVktfVjsgLy8gKDU2KSBWIGtleSBjYXNlICd2Jzog
Y2FzZSAnVic6IHJldHVybiAweDU2OworICAgIGNhc2UgV1BFX0tFWV93OgorICAgIGNhc2UgV1BF
X0tFWV9XOgorICAgICAgICByZXR1cm4gVktfVzsgLy8gKDU3KSBXIGtleSBjYXNlICd3JzogY2Fz
ZSAnVyc6IHJldHVybiAweDU3OworICAgIGNhc2UgV1BFX0tFWV94OgorICAgIGNhc2UgV1BFX0tF
WV9YOgorICAgICAgICByZXR1cm4gVktfWDsgLy8gKDU4KSBYIGtleSBjYXNlICd4JzogY2FzZSAn
WCc6IHJldHVybiAweDU4OworICAgIGNhc2UgV1BFX0tFWV95OgorICAgIGNhc2UgV1BFX0tFWV9Z
OgorICAgICAgICByZXR1cm4gVktfWTsgLy8gKDU5KSBZIGtleSBjYXNlICd5JzogY2FzZSAnWSc6
IHJldHVybiAweDU5OworICAgIGNhc2UgV1BFX0tFWV96OgorICAgIGNhc2UgV1BFX0tFWV9aOgor
ICAgICAgICByZXR1cm4gVktfWjsgLy8gKDVBKSBaIGtleSBjYXNlICd6JzogY2FzZSAnWic6IHJl
dHVybiAweDVBOworICAgIGNhc2UgV1BFX0tFWV9NZXRhX0w6CisgICAgICAgIHJldHVybiBWS19M
V0lOOyAvLyAoNUIpIExlZnQgV2luZG93cyBrZXkgKE1pY3Jvc29mdCBOYXR1cmFsIGtleWJvYXJk
KQorICAgIGNhc2UgV1BFX0tFWV9NZXRhX1I6CisgICAgICAgIHJldHVybiBWS19SV0lOOyAvLyAo
NUMpIFJpZ2h0IFdpbmRvd3Mga2V5IChOYXR1cmFsIGtleWJvYXJkKQorICAgICAgICAvLyBWS19T
TEVFUCAoNUYpIENvbXB1dGVyIFNsZWVwIGtleQorICAgICAgICAvLyBWS19TRVBBUkFUT1IgKDZD
KSBTZXBhcmF0b3Iga2V5CisgICAgICAgIC8vIFZLX1NVQlRSQUNUICg2RCkgU3VidHJhY3Qga2V5
CisgICAgICAgIC8vIFZLX0RFQ0lNQUwgKDZFKSBEZWNpbWFsIGtleQorICAgICAgICAvLyBWS19E
SVZJREUgKDZGKSBEaXZpZGUga2V5CisgICAgICAgIC8vIGhhbmRsZWQgYnkga2V5IGNvZGUgYWJv
dmUKKworICAgIGNhc2UgV1BFX0tFWV9OdW1fTG9jazoKKyAgICAgICAgcmV0dXJuIFZLX05VTUxP
Q0s7IC8vICg5MCkgTlVNIExPQ0sga2V5CisKKyAgICBjYXNlIFdQRV9LRVlfU2Nyb2xsX0xvY2s6
CisgICAgICAgIHJldHVybiBWS19TQ1JPTEw7IC8vICg5MSkgU0NST0xMIExPQ0sga2V5CisKKyAg
ICBjYXNlIFdQRV9LRVlfU2hpZnRfTDoKKyAgICAgICAgcmV0dXJuIFZLX0xTSElGVDsgLy8gKEEw
KSBMZWZ0IFNISUZUIGtleQorICAgIGNhc2UgV1BFX0tFWV9TaGlmdF9SOgorICAgICAgICByZXR1
cm4gVktfUlNISUZUOyAvLyAoQTEpIFJpZ2h0IFNISUZUIGtleQorICAgIGNhc2UgV1BFX0tFWV9D
b250cm9sX0w6CisgICAgICAgIHJldHVybiBWS19MQ09OVFJPTDsgLy8gKEEyKSBMZWZ0IENPTlRS
T0wga2V5CisgICAgY2FzZSBXUEVfS0VZX0NvbnRyb2xfUjoKKyAgICAgICAgcmV0dXJuIFZLX1JD
T05UUk9MOyAvLyAoQTMpIFJpZ2h0IENPTlRST0wga2V5CisgICAgY2FzZSBXUEVfS0VZX0FsdF9M
OgorICAgICAgICByZXR1cm4gVktfTE1FTlU7IC8vIChBNCkgTGVmdCBNRU5VIGtleQorICAgIGNh
c2UgV1BFX0tFWV9BbHRfUjoKKyAgICAgICAgcmV0dXJuIFZLX1JNRU5VOyAvLyAoQTUpIFJpZ2h0
IE1FTlUga2V5CisKKyAgICAgICAgLy8gVktfQlJPV1NFUl9CQUNLIChBNikgV2luZG93cyAyMDAw
L1hQOiBCcm93c2VyIEJhY2sga2V5CisgICAgICAgIC8vIFZLX0JST1dTRVJfRk9SV0FSRCAoQTcp
IFdpbmRvd3MgMjAwMC9YUDogQnJvd3NlciBGb3J3YXJkIGtleQorICAgICAgICAvLyBWS19CUk9X
U0VSX1JFRlJFU0ggKEE4KSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgUmVmcmVzaCBrZXkKKyAg
ICAgICAgLy8gVktfQlJPV1NFUl9TVE9QIChBOSkgV2luZG93cyAyMDAwL1hQOiBCcm93c2VyIFN0
b3Aga2V5CisgICAgICAgIC8vIFZLX0JST1dTRVJfU0VBUkNIIChBQSkgV2luZG93cyAyMDAwL1hQ
OiBCcm93c2VyIFNlYXJjaCBrZXkKKyAgICAgICAgLy8gVktfQlJPV1NFUl9GQVZPUklURVMgKEFC
KSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgRmF2b3JpdGVzIGtleQorICAgICAgICAvLyBWS19C
Uk9XU0VSX0hPTUUgKEFDKSBXaW5kb3dzIDIwMDAvWFA6IEJyb3dzZXIgU3RhcnQgYW5kIEhvbWUg
a2V5CisgICAgICAgIC8vIFZLX1ZPTFVNRV9NVVRFIChBRCkgV2luZG93cyAyMDAwL1hQOiBWb2x1
bWUgTXV0ZSBrZXkKKyAgICAgICAgLy8gVktfVk9MVU1FX0RPV04gKEFFKSBXaW5kb3dzIDIwMDAv
WFA6IFZvbHVtZSBEb3duIGtleQorICAgICAgICAvLyBWS19WT0xVTUVfVVAgKEFGKSBXaW5kb3dz
IDIwMDAvWFA6IFZvbHVtZSBVcCBrZXkKKyAgICAgICAgLy8gVktfTUVESUFfTkVYVF9UUkFDSyAo
QjApIFdpbmRvd3MgMjAwMC9YUDogTmV4dCBUcmFjayBrZXkKKyAgICAgICAgLy8gVktfTUVESUFf
UFJFVl9UUkFDSyAoQjEpIFdpbmRvd3MgMjAwMC9YUDogUHJldmlvdXMgVHJhY2sga2V5CisgICAg
ICAgIC8vIFZLX01FRElBX1NUT1AgKEIyKSBXaW5kb3dzIDIwMDAvWFA6IFN0b3AgTWVkaWEga2V5
CisgICAgICAgIC8vIFZLX01FRElBX1BMQVlfUEFVU0UgKEIzKSBXaW5kb3dzIDIwMDAvWFA6IFBs
YXkvUGF1c2UgTWVkaWEga2V5CisgICAgICAgIC8vIFZLX0xBVU5DSF9NQUlMIChCNCkgV2luZG93
cyAyMDAwL1hQOiBTdGFydCBNYWlsIGtleQorICAgICAgICAvLyBWS19MQVVOQ0hfTUVESUFfU0VM
RUNUIChCNSkgV2luZG93cyAyMDAwL1hQOiBTZWxlY3QgTWVkaWEga2V5CisgICAgICAgIC8vIFZL
X0xBVU5DSF9BUFAxIChCNikgV2luZG93cyAyMDAwL1hQOiBTdGFydCBBcHBsaWNhdGlvbiAxIGtl
eQorICAgICAgICAvLyBWS19MQVVOQ0hfQVBQMiAoQjcpIFdpbmRvd3MgMjAwMC9YUDogU3RhcnQg
QXBwbGljYXRpb24gMiBrZXkKKworICAgICAgICAvLyBWS19PRU1fMSAoQkEpIFVzZWQgZm9yIG1p
c2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3Mg
MjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICc7Oicga2V5CisgICAg
Y2FzZSBXUEVfS0VZX3NlbWljb2xvbjoKKyAgICBjYXNlIFdQRV9LRVlfY29sb246CisgICAgICAg
IHJldHVybiBWS19PRU1fMTsgLy8gY2FzZSAnOyc6IGNhc2UgJzonOiByZXR1cm4gMHhCQTsKKyAg
ICAgICAgLy8gVktfT0VNX1BMVVMgKEJCKSBXaW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRy
eS9yZWdpb24sIHRoZSAnKycga2V5CisgICAgY2FzZSBXUEVfS0VZX3BsdXM6CisgICAgY2FzZSBX
UEVfS0VZX2VxdWFsOgorICAgICAgICByZXR1cm4gVktfT0VNX1BMVVM7IC8vIGNhc2UgJz0nOiBj
YXNlICcrJzogcmV0dXJuIDB4QkI7CisgICAgICAgIC8vIFZLX09FTV9DT01NQSAoQkMpIFdpbmRv
d3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3JlZ2lvbiwgdGhlICcsJyBrZXkKKyAgICBjYXNl
IFdQRV9LRVlfY29tbWE6CisgICAgY2FzZSBXUEVfS0VZX2xlc3M6CisgICAgICAgIHJldHVybiBW
S19PRU1fQ09NTUE7IC8vIGNhc2UgJywnOiBjYXNlICc8JzogcmV0dXJuIDB4QkM7CisgICAgICAg
IC8vIFZLX09FTV9NSU5VUyAoQkQpIFdpbmRvd3MgMjAwMC9YUDogRm9yIGFueSBjb3VudHJ5L3Jl
Z2lvbiwgdGhlICctJyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfbWludXM6CisgICAgY2FzZSBXUEVf
S0VZX3VuZGVyc2NvcmU6CisgICAgICAgIHJldHVybiBWS19PRU1fTUlOVVM7IC8vIGNhc2UgJy0n
OiBjYXNlICdfJzogcmV0dXJuIDB4QkQ7CisgICAgICAgIC8vIFZLX09FTV9QRVJJT0QgKEJFKSBX
aW5kb3dzIDIwMDAvWFA6IEZvciBhbnkgY291bnRyeS9yZWdpb24sIHRoZSAnLicga2V5CisgICAg
Y2FzZSBXUEVfS0VZX3BlcmlvZDoKKyAgICBjYXNlIFdQRV9LRVlfZ3JlYXRlcjoKKyAgICAgICAg
cmV0dXJuIFZLX09FTV9QRVJJT0Q7IC8vIGNhc2UgJy4nOiBjYXNlICc+JzogcmV0dXJuIDB4QkU7
CisgICAgICAgIC8vIFZLX09FTV8yIChCRikgVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0
ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4gV2luZG93cyAyMDAwL1hQOiBGb3IgdGhlIFVT
IHN0YW5kYXJkIGtleWJvYXJkLCB0aGUgJy8/JyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfc2xhc2g6
CisgICAgY2FzZSBXUEVfS0VZX3F1ZXN0aW9uOgorICAgICAgICByZXR1cm4gVktfT0VNXzI7IC8v
IGNhc2UgJy8nOiBjYXNlICc/JzogcmV0dXJuIDB4QkY7CisgICAgICAgIC8vIFZLX09FTV8zIChD
MCkgVXNlZCBmb3IgbWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXli
b2FyZC4gV2luZG93cyAyMDAwL1hQOiBGb3IgdGhlIFVTIHN0YW5kYXJkIGtleWJvYXJkLCB0aGUg
J2B+JyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfYXNjaWl0aWxkZToKKyAgICBjYXNlIFdQRV9LRVlf
cXVvdGVsZWZ0OgorICAgICAgICByZXR1cm4gVktfT0VNXzM7IC8vIGNhc2UgJ2AnOiBjYXNlICd+
JzogcmV0dXJuIDB4QzA7CisgICAgICAgIC8vIFZLX09FTV80IChEQikgVXNlZCBmb3IgbWlzY2Vs
bGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4gV2luZG93cyAyMDAw
L1hQOiBGb3IgdGhlIFVTIHN0YW5kYXJkIGtleWJvYXJkLCB0aGUgJ1t7JyBrZXkKKyAgICBjYXNl
IFdQRV9LRVlfYnJhY2tldGxlZnQ6CisgICAgY2FzZSBXUEVfS0VZX2JyYWNlbGVmdDoKKyAgICAg
ICAgcmV0dXJuIFZLX09FTV80OyAvLyBjYXNlICdbJzogY2FzZSAneyc6IHJldHVybiAweERCOwor
ICAgICAgICAvLyBWS19PRU1fNSAoREMpIFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVy
czsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBz
dGFuZGFyZCBrZXlib2FyZCwgdGhlICdcfCcga2V5CisgICAgY2FzZSBXUEVfS0VZX2JhY2tzbGFz
aDoKKyAgICBjYXNlIFdQRV9LRVlfYmFyOgorICAgICAgICByZXR1cm4gVktfT0VNXzU7IC8vIGNh
c2UgJ1xcJzogY2FzZSAnfCc6IHJldHVybiAweERDOworICAgICAgICAvLyBWS19PRU1fNiAoREQp
IFVzZWQgZm9yIG1pc2NlbGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9h
cmQuIFdpbmRvd3MgMjAwMC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdd
fScga2V5CisgICAgY2FzZSBXUEVfS0VZX2JyYWNrZXRyaWdodDoKKyAgICBjYXNlIFdQRV9LRVlf
YnJhY2VyaWdodDoKKyAgICAgICAgcmV0dXJuIFZLX09FTV82OyAvLyBjYXNlICddJzogY2FzZSAn
fSc6IHJldHVybiAweEREOworICAgICAgICAvLyBWS19PRU1fNyAoREUpIFVzZWQgZm9yIG1pc2Nl
bGxhbmVvdXMgY2hhcmFjdGVyczsgaXQgY2FuIHZhcnkgYnkga2V5Ym9hcmQuIFdpbmRvd3MgMjAw
MC9YUDogRm9yIHRoZSBVUyBzdGFuZGFyZCBrZXlib2FyZCwgdGhlICdzaW5nbGUtcXVvdGUvZG91
YmxlLXF1b3RlJyBrZXkKKyAgICBjYXNlIFdQRV9LRVlfcXVvdGVyaWdodDoKKyAgICBjYXNlIFdQ
RV9LRVlfcXVvdGVkYmw6CisgICAgICAgIHJldHVybiBWS19PRU1fNzsgLy8gY2FzZSAnXCcnOiBj
YXNlICciJzogcmV0dXJuIDB4REU7CisgICAgICAgIC8vIFZLX09FTV84IChERikgVXNlZCBmb3Ig
bWlzY2VsbGFuZW91cyBjaGFyYWN0ZXJzOyBpdCBjYW4gdmFyeSBieSBrZXlib2FyZC4KKyAgICAg
ICAgLy8gVktfT0VNXzEwMiAoRTIpIFdpbmRvd3MgMjAwMC9YUDogRWl0aGVyIHRoZSBhbmdsZSBi
cmFja2V0IGtleSBvciB0aGUgYmFja3NsYXNoIGtleSBvbiB0aGUgUlQgMTAyLWtleSBrZXlib2Fy
ZAorICAgICAgICAvLyBWS19QUk9DRVNTS0VZIChFNSkgV2luZG93cyA5NS85OC9NZSwgV2luZG93
cyBOVCA0LjAsIFdpbmRvd3MgMjAwMC9YUDogSU1FIFBST0NFU1Mga2V5CisgICAgICAgIC8vIFZL
X1BBQ0tFVCAoRTcpIFdpbmRvd3MgMjAwMC9YUDogVXNlZCB0byBwYXNzIFVuaWNvZGUgY2hhcmFj
dGVycyBhcyBpZiB0aGV5IHdlcmUga2V5c3Ryb2tlcy4gVGhlIFZLX1BBQ0tFVCBrZXkgaXMgdGhl
IGxvdyB3b3JkIG9mIGEgMzItYml0IFZpcnR1YWwgS2V5IHZhbHVlIHVzZWQgZm9yIG5vbi1rZXli
b2FyZCBpbnB1dCBtZXRob2RzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFJlbWFyayBpbiBL
RVlCRElOUFVULFNlbmRJbnB1dCwgV01fS0VZRE9XTiwgYW5kIFdNX0tFWVVQCisgICAgICAgIC8v
IFZLX0FUVE4gKEY2KSBBdHRuIGtleQorICAgICAgICAvLyBWS19DUlNFTCAoRjcpIENyU2VsIGtl
eQorICAgICAgICAvLyBWS19FWFNFTCAoRjgpIEV4U2VsIGtleQorICAgICAgICAvLyBWS19FUkVP
RiAoRjkpIEVyYXNlIEVPRiBrZXkKKyAgICAgICAgLy8gVktfUExBWSAoRkEpIFBsYXkga2V5Cisg
ICAgICAgIC8vIFZLX1pPT00gKEZCKSBab29tIGtleQorICAgICAgICAvLyBWS19OT05BTUUgKEZD
KSBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZQorICAgICAgICAvLyBWS19QQTEgKEZEKSBQQTEga2V5
CisgICAgICAgIC8vIFZLX09FTV9DTEVBUiAoRkUpIENsZWFyIGtleQorICAgIGNhc2UgV1BFX0tF
WV9GMToKKyAgICBjYXNlIFdQRV9LRVlfRjI6CisgICAgY2FzZSBXUEVfS0VZX0YzOgorICAgIGNh
c2UgV1BFX0tFWV9GNDoKKyAgICBjYXNlIFdQRV9LRVlfRjU6CisgICAgY2FzZSBXUEVfS0VZX0Y2
OgorICAgIGNhc2UgV1BFX0tFWV9GNzoKKyAgICBjYXNlIFdQRV9LRVlfRjg6CisgICAgY2FzZSBX
UEVfS0VZX0Y5OgorICAgIGNhc2UgV1BFX0tFWV9GMTA6CisgICAgY2FzZSBXUEVfS0VZX0YxMToK
KyAgICBjYXNlIFdQRV9LRVlfRjEyOgorICAgIGNhc2UgV1BFX0tFWV9GMTM6CisgICAgY2FzZSBX
UEVfS0VZX0YxNDoKKyAgICBjYXNlIFdQRV9LRVlfRjE1OgorICAgIGNhc2UgV1BFX0tFWV9GMTY6
CisgICAgY2FzZSBXUEVfS0VZX0YxNzoKKyAgICBjYXNlIFdQRV9LRVlfRjE4OgorICAgIGNhc2Ug
V1BFX0tFWV9GMTk6CisgICAgY2FzZSBXUEVfS0VZX0YyMDoKKyAgICBjYXNlIFdQRV9LRVlfRjIx
OgorICAgIGNhc2UgV1BFX0tFWV9GMjI6CisgICAgY2FzZSBXUEVfS0VZX0YyMzoKKyAgICBjYXNl
IFdQRV9LRVlfRjI0OgorICAgICAgICByZXR1cm4gVktfRjEgKyAoa2V5Y29kZSAtIFdQRV9LRVlf
RjEpOworICAgIGNhc2UgV1BFX0tFWV9Wb2lkU3ltYm9sOgorICAgICAgICByZXR1cm4gVktfUFJP
Q0VTU0tFWTsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1
cm4gMDsKK30KKworU3RyaW5nIFBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6c2luZ2xlQ2hhcmFjdGVy
U3RyaW5nKHVuc2lnbmVkIHZhbCkKK3sKKyAgICBzd2l0Y2ggKHZhbCkgeworICAgIGNhc2UgV1BF
X0tFWV9JU09fRW50ZXI6CisgICAgY2FzZSBXUEVfS0VZX0tQX0VudGVyOgorICAgIGNhc2UgV1BF
X0tFWV9SZXR1cm46CisgICAgICAgIHJldHVybiBTdHJpbmcoIlxyIik7CisgICAgY2FzZSBXUEVf
S0VZX0JhY2tTcGFjZToKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHg4Iik7CisgICAgY2FzZSBX
UEVfS0VZX1RhYjoKKyAgICAgICAgcmV0dXJuIFN0cmluZygiXHQiKTsKKyAgICBkZWZhdWx0Ogor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBndW5pY2hhciBjID0gd3BlX2tleV9jb2RlX3Rv
X3VuaWNvZGUodmFsKTsKKyAgICBnbG9uZyBsZW5ndGg7CisgICAgR1VuaXF1ZVB0cjxndW5pY2hh
cjI+IHVjaGFyMTYoZ191Y3M0X3RvX3V0ZjE2KCZjLCAxLCBudWxscHRyLCAmbGVuZ3RoLCBudWxs
cHRyKSk7CisgICAgaWYgKHVjaGFyMTYpCisgICAgICAgIHJldHVybiBTdHJpbmcocmVpbnRlcnBy
ZXRfY2FzdDxVQ2hhcio+KHVjaGFyMTYuZ2V0KCkpLCBsZW5ndGgpOworCisgICAgcmV0dXJuIHsg
fTsKK30KKwogdm9pZCBQbGF0Zm9ybUtleWJvYXJkRXZlbnQ6OmRpc2FtYmlndWF0ZUtleURvd25F
dmVudChUeXBlIHR5cGUsIGJvb2wgYmFja3dhcmRzQ29tcGF0aWJpbGl0eSkKIHsKICAgICBBU1NF
UlQobV90eXBlID09IEtleURvd24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxNDczZDMxMjUwMC4uODNlOTE1ZDUw
NjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTgtMDgtMDMgIENhcmxvcyBHYXJjaWEg
Q2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIFVzZSBXUEUga2V5
IHN5bWJvbHMgYW5kIG5ldyBBUEkgaW5zdGVhZCBvZiB4a2Jjb21tb24gYW5kIHRoZSBrZXkgbWFw
cGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgw
OTMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAKKwor
ICAgICAgICAqIFNoYXJlZC9XZWJFdmVudC5oOiBBZGQgV2ViS2V5Ym9hcmRFdmVudCBjb25zdHJ1
Y3RvciBmb3IgV1BFLgorICAgICAgICAqIFNoYXJlZC9XZWJLZXlib2FyZEV2ZW50LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViS2V5Ym9hcmRFdmVudDo6V2ViS2V5Ym9hcmRFdmVudCk6IFdlYktl
eWJvYXJkRXZlbnQgY29uc3RydWN0b3IgZm9yIFdQRS4KKyAgICAgICAgKiBTaGFyZWQvd3BlL1dl
YkV2ZW50RmFjdG9yeS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmlzV1BFS2V5Q29kZUZyb21LZXlQ
YWQpOiBIZWxwZXIgdHBvIGNoZWNrIGlmIGEga2V5IHN5bWJvbHMgaXMgZnJvbSBrZXkgcGFkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJFdmVudEZhY3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQp
OiBVc2UgUGxhdGZvcm1LZXlib2FyZEV2ZW50IEFQSSB0byBwcm92aWRlIGtleSBjb2RlLCBoYXJk
d2FyZQorICAgICAgICBrZXkgY29kZSwga2V5IGlkZW50aWZpZXIgYW5kIHdpbmRvd3Mga2V5IGNv
ZGUgdG8gV2ViS2V5Ym9hcmRFdmVudC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL3dwZS9XUEVW
aWV3LmNwcDoKKyAgICAgICAgKFdLV1BFOjptX2JhY2tlbmQpOiBVc2UgV1BFIGtleSBzeW1ib2xz
LgorCiAyMDE4LTA4LTAyICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgog
CiAgICAgICAgIFBERlBsdWdpbjogQ29udGV4dCBtZW51cyBpbiBSVEwgYXJlIGxlZnQtYWxpZ25l
ZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViRXZlbnQuaCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKaW5kZXggZDYyNWQyYjg5YTMuLjJmZDAxYTIwNmFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJFdmVudC5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkV2ZW50LmgKQEAgLTI1OCw2ICsyNTgsOCBAQCBwdWJsaWM6CiAgICAg
V2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYg
a2V5LCBjb25zdCBTdHJpbmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50
IHdpbmRvd3NWaXJ0dWFsS2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGhh
bmRsZWRCeUlucHV0TWV0aG9kLCBWZWN0b3I8U3RyaW5nPiYmIGNvbW1hbmRzLCBib29sIGlzS2V5
cGFkLCBNb2RpZmllcnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxpZiBQTEFURk9STShJT1Mp
CiAgICAgV2ViS2V5Ym9hcmRFdmVudChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0
cmluZyYgdW5tb2RpZmllZFRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJpbmcmIGNv
ZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRv
UmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMsIFdhbGxU
aW1lIHRpbWVzdGFtcCk7CisjZWxpZiBQTEFURk9STShXUEUpCisgICAgV2ViS2V5Ym9hcmRFdmVu
dChUeXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYga2V5LCBjb25zdCBTdHJp
bmcmIGNvZGUsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFs
S2V5Q29kZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBib29sIGlzS2V5cGFkLCBNb2RpZmll
cnMsIFdhbGxUaW1lIHRpbWVzdGFtcCk7CiAjZWxzZQogICAgIFdlYktleWJvYXJkRXZlbnQoVHlw
ZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIHVubW9kaWZpZWRUZXh0LCBjb25z
dCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVhbEtleUNvZGUsIGludCBu
YXRpdmVWaXJ0dWFsS2V5Q29kZSwgaW50IG1hY0NoYXJDb2RlLCBib29sIGlzQXV0b1JlcGVhdCwg
Ym9vbCBpc0tleXBhZCwgYm9vbCBpc1N5c3RlbUtleSwgTW9kaWZpZXJzLCBXYWxsVGltZSB0aW1l
c3RhbXApOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJLZXli
b2FyZEV2ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYktleWJvYXJkRXZlbnQuY3Bw
CmluZGV4IDBjZjI3MTk5NjIxLi5jZTJlNTU2ZTMyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9TaGFyZWQvV2ViS2V5Ym9hcmRFdmVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViS2V5Ym9hcmRFdmVudC5jcHAKQEAgLTEwNCw2ICsxMDQsMjUgQEAgV2ViS2V5Ym9hcmRFdmVu
dDo6V2ViS2V5Ym9hcmRFdmVudChUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgdGV4dCwgY29uc3Qg
U3RyaW5nJgogICAgIEFTU0VSVChpc0tleWJvYXJkRXZlbnRUeXBlKHR5cGUpKTsKIH0KIAorI2Vs
aWYgUExBVEZPUk0oV1BFKQorCitXZWJLZXlib2FyZEV2ZW50OjpXZWJLZXlib2FyZEV2ZW50KFR5
cGUgdHlwZSwgY29uc3QgU3RyaW5nJiB0ZXh0LCBjb25zdCBTdHJpbmcmIGtleSwgY29uc3QgU3Ry
aW5nJiBjb2RlLCBjb25zdCBTdHJpbmcmIGtleUlkZW50aWZpZXIsIGludCB3aW5kb3dzVmlydHVh
bEtleUNvZGUsIGludCBuYXRpdmVWaXJ0dWFsS2V5Q29kZSwgYm9vbCBpc0tleXBhZCwgTW9kaWZp
ZXJzIG1vZGlmaWVycywgV2FsbFRpbWUgdGltZXN0YW1wKQorICAgIDogV2ViRXZlbnQodHlwZSwg
bW9kaWZpZXJzLCB0aW1lc3RhbXApCisgICAgLCBtX3RleHQodGV4dCkKKyAgICAsIG1fdW5tb2Rp
ZmllZFRleHQodGV4dCkKKyAgICAsIG1fa2V5KGtleSkKKyAgICAsIG1fY29kZShjb2RlKQorICAg
ICwgbV9rZXlJZGVudGlmaWVyKGtleUlkZW50aWZpZXIpCisgICAgLCBtX3dpbmRvd3NWaXJ0dWFs
S2V5Q29kZSh3aW5kb3dzVmlydHVhbEtleUNvZGUpCisgICAgLCBtX25hdGl2ZVZpcnR1YWxLZXlD
b2RlKG5hdGl2ZVZpcnR1YWxLZXlDb2RlKQorICAgICwgbV9tYWNDaGFyQ29kZSgwKQorICAgICwg
bV9pc0F1dG9SZXBlYXQoZmFsc2UpCisgICAgLCBtX2lzS2V5cGFkKGlzS2V5cGFkKQorICAgICwg
bV9pc1N5c3RlbUtleShmYWxzZSkKK3sKKyAgICBBU1NFUlQoaXNLZXlib2FyZEV2ZW50VHlwZSh0
eXBlKSk7Cit9CisKICNlbHNlCiAKIFdlYktleWJvYXJkRXZlbnQ6OldlYktleWJvYXJkRXZlbnQo
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIHRleHQsIGNvbnN0IFN0cmluZyYgdW5tb2RpZmllZFRl
eHQsIGNvbnN0IFN0cmluZyYga2V5SWRlbnRpZmllciwgaW50IHdpbmRvd3NWaXJ0dWFsS2V5Q29k
ZSwgaW50IG5hdGl2ZVZpcnR1YWxLZXlDb2RlLCBpbnQgbWFjQ2hhckNvZGUsIGJvb2wgaXNBdXRv
UmVwZWF0LCBib29sIGlzS2V5cGFkLCBib29sIGlzU3lzdGVtS2V5LCBNb2RpZmllcnMgbW9kaWZp
ZXJzLCBXYWxsVGltZSB0aW1lc3RhbXApCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC93cGUvV2ViRXZlbnRGYWN0b3J5LmNwcCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL3dwZS9XZWJF
dmVudEZhY3RvcnkuY3BwCmluZGV4IDdjZWFmNjY5N2IyLi5mMzk3NmMyOWY2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9TaGFyZWQvd3BlL1dlYkV2ZW50RmFjdG9yeS5jcHAKQEAgLTI2LDEzICsyNiwx
OCBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkV2ZW50RmFjdG9yeS5oIgog
CisjaW5jbHVkZSA8V2ViQ29yZS9QbGF0Zm9ybUtleWJvYXJkRXZlbnQuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1Njcm9sbGJhci5oPgogI2luY2x1ZGUgPGNtYXRoPgogI2luY2x1ZGUgPHdwZS93cGUu
aD4KLSNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCitzdGF0aWMgaW5saW5lIGJvb2wgaXNXUEVLZXlDb2RlRnJvbUtleVBhZCh1bnNpZ25lZCBr
ZXlDb2RlKQoreworICAgIHJldHVybiBrZXlDb2RlID49IFdQRV9LRVlfS1BfU3BhY2UgJiYga2V5
Q29kZSA8PSBXUEVfS0VZX0tQXzk7Cit9CisKIHN0YXRpYyBXZWJFdmVudDo6TW9kaWZpZXJzIG1v
ZGlmaWVyc0ZvckV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQog
ewogICAgIHVuc2lnbmVkIG1vZGlmaWVycyA9IDA7CkBAIC01MCwyOCArNTUsNiBAQCBzdGF0aWMg
V2ViRXZlbnQ6Ok1vZGlmaWVycyBtb2RpZmllcnNGb3JFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tl
eWJvYXJkX2V2ZW50KiBldgogICAgIHJldHVybiBzdGF0aWNfY2FzdDxXZWJFdmVudDo6TW9kaWZp
ZXJzPihtb2RpZmllcnMpOwogfQogCi1zdGF0aWMgU3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmlu
Z0ZvcktleUV2ZW50KHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQqIGV2ZW50KQotewot
ICAgIGNvbnN0IGNoYXIqIHNpbmdsZUNoYXJhY3RlciA9IHdwZV9pbnB1dF9zaW5nbGVfY2hhcmFj
dGVyX2Zvcl9rZXlfZXZlbnQod3BlX2lucHV0X2tleV9tYXBwZXJfZ2V0X3NpbmdsZXRvbigpLCBl
dmVudCk7Ci0gICAgaWYgKHNpbmdsZUNoYXJhY3RlcikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhz
aW5nbGVDaGFyYWN0ZXIpOwotCi0gICAgZ2xvbmcgbGVuZ3RoOwotICAgIEdVbmlxdWVQdHI8Z3Vu
aWNoYXIyPiB1Y2hhcjE2KGdfdWNzNF90b191dGYxNigmZXZlbnQtPnVuaWNvZGUsIDEsIDAsICZs
ZW5ndGgsIG51bGxwdHIpKTsKLSAgICBpZiAodWNoYXIxNikKLSAgICAgICAgcmV0dXJuIFN0cmlu
ZyhyZWludGVycHJldF9jYXN0PFVDaGFyKj4odWNoYXIxNi5nZXQoKSksIGxlbmd0aCk7Ci0gICAg
cmV0dXJuIFN0cmluZygpOwotfQotCi1zdGF0aWMgU3RyaW5nIGlkZW50aWZpZXJTdHJpbmdGb3JL
ZXlFdmVudChzdHJ1Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50KiBldmVudCkKLXsKLSAgICBj
b25zdCBjaGFyKiBpZGVudGlmaWVyID0gd3BlX2lucHV0X2lkZW50aWZpZXJfZm9yX2tleV9ldmVu
dCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCksIGV2ZW50KTsKLSAgICBpZiAo
aWRlbnRpZmllcikKLSAgICAgICAgcmV0dXJuIFN0cmluZyhpZGVudGlmaWVyKTsKLQotICAgIHJl
dHVybiBTdHJpbmc6OmZvcm1hdCgiVSslMDRYIiwgZXZlbnQtPnVuaWNvZGUpOwotfQotCiBXYWxs
VGltZSB3YWxsVGltZUZvckV2ZW50VGltZSh1aW50NjRfdCB0aW1lc3RhbXApCiB7CiAgICAgLy8g
VGhpcyB3b3JrcyBpZiBhbmQgb25seSBpZiB0aGUgV1BFIGJhY2tlbmQgdXNlcyBDTE9DS19NT05P
VE9OSUMgZm9yIGl0cwpAQCAtODQsMTQgKzY3LDE4IEBAIFdhbGxUaW1lIHdhbGxUaW1lRm9yRXZl
bnRUaW1lKHVpbnQ2NF90IHRpbWVzdGFtcCkKIAogV2ViS2V5Ym9hcmRFdmVudCBXZWJFdmVudEZh
Y3Rvcnk6OmNyZWF0ZVdlYktleWJvYXJkRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9rZXlib2FyZF9l
dmVudCogZXZlbnQpCiB7Ci0gICAgU3RyaW5nIHNpbmdsZUNoYXJhY3RlclN0cmluZyA9IHNpbmds
ZUNoYXJhY3RlclN0cmluZ0ZvcktleUV2ZW50KGV2ZW50KTsKLSAgICBTdHJpbmcgaWRlbnRpZmll
clN0cmluZyA9IGlkZW50aWZpZXJTdHJpbmdGb3JLZXlFdmVudChldmVudCk7CisgICAgU3RyaW5n
IHNpbmdsZUNoYXJhY3RlclN0cmluZyA9IFdlYkNvcmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6
c2luZ2xlQ2hhcmFjdGVyU3RyaW5nKGV2ZW50LT5rZXlfY29kZSk7CiAKICAgICByZXR1cm4gV2Vi
S2V5Ym9hcmRFdmVudChldmVudC0+cHJlc3NlZCA/IFdlYkV2ZW50OjpLZXlEb3duIDogV2ViRXZl
bnQ6OktleVVwLAotICAgICAgICBzaW5nbGVDaGFyYWN0ZXJTdHJpbmcsIHNpbmdsZUNoYXJhY3Rl
clN0cmluZywgaWRlbnRpZmllclN0cmluZywKLSAgICAgICAgd3BlX2lucHV0X3dpbmRvd3Nfa2V5
X2NvZGVfZm9yX2tleV9ldmVudCh3cGVfaW5wdXRfa2V5X21hcHBlcl9nZXRfc2luZ2xldG9uKCks
IGV2ZW50KSwKLSAgICAgICAgZXZlbnQtPmtleUNvZGUsIDAsIGZhbHNlLCBmYWxzZSwgZmFsc2Us
Ci0gICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwgd2FsbFRpbWVGb3JFdmVudFRpbWUo
ZXZlbnQtPnRpbWUpKTsKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojpz
aW5nbGVDaGFyYWN0ZXJTdHJpbmcoZXZlbnQtPmtleV9jb2RlKSwKKyAgICAgICAgV2ViQ29yZTo6
UGxhdGZvcm1LZXlib2FyZEV2ZW50OjprZXlWYWx1ZUZvcldQRUtleUNvZGUoZXZlbnQtPmtleV9j
b2RlKSwKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50OjprZXlDb2RlRm9y
SGFyZHdhcmVLZXlDb2RlKGV2ZW50LT5oYXJkd2FyZV9rZXlfY29kZSksCisgICAgICAgIFdlYkNv
cmU6OlBsYXRmb3JtS2V5Ym9hcmRFdmVudDo6a2V5SWRlbnRpZmllckZvcldQRUtleUNvZGUoZXZl
bnQtPmtleV9jb2RlKSwKKyAgICAgICAgV2ViQ29yZTo6UGxhdGZvcm1LZXlib2FyZEV2ZW50Ojp3
aW5kb3dzS2V5Q29kZUZvcldQRUtleUNvZGUoZXZlbnQtPmtleV9jb2RlKSwKKyAgICAgICAgZXZl
bnQtPmtleV9jb2RlLAorICAgICAgICBpc1dQRUtleUNvZGVGcm9tS2V5UGFkKGV2ZW50LT5rZXlf
Y29kZSksCisgICAgICAgIG1vZGlmaWVyc0ZvckV2ZW50KGV2ZW50KSwKKyAgICAgICAgd2FsbFRp
bWVGb3JFdmVudFRpbWUoZXZlbnQtPnRpbWUpKTsKIH0KIAogV2ViTW91c2VFdmVudCBXZWJFdmVu
dEZhY3Rvcnk6OmNyZWF0ZVdlYk1vdXNlRXZlbnQoc3RydWN0IHdwZV9pbnB1dF9wb2ludGVyX2V2
ZW50KiBldmVudCwgZmxvYXQgZGV2aWNlU2NhbGVGYWN0b3IpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvd3BlL1dQRVZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcAppbmRleCA0OGQ4MDQ0MTM1Zi4uODViZWQ1ZmUxNmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS93cGUvV1BFVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL3dwZS9XUEVWaWV3LmNwcApAQCAtMTA0
LDcgKzEwNCw3IEBAIFZpZXc6OlZpZXcoc3RydWN0IHdwZV92aWV3X2JhY2tlbmQqIGJhY2tlbmQs
IGNvbnN0IEFQSTo6UGFnZUNvbmZpZ3VyYXRpb24mIGJhc2VDCiAgICAgICAgICAgICBpZiAoZXZl
bnQtPnByZXNzZWQKICAgICAgICAgICAgICAgICAmJiBldmVudC0+bW9kaWZpZXJzICYgd3BlX2lu
cHV0X2tleWJvYXJkX21vZGlmaWVyX2NvbnRyb2wKICAgICAgICAgICAgICAgICAmJiBldmVudC0+
bW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlmaWVyX3NoaWZ0Ci0gICAgICAgICAg
ICAgICAgJiYgZXZlbnQtPmtleUNvZGUgPT0gJ0cnKSB7CisgICAgICAgICAgICAgICAgJiYgZXZl
bnQtPmtleV9jb2RlID09IFdQRV9LRVlfRykgewogICAgICAgICAgICAgICAgIGF1dG8mIHByZWZl
cmVuY2VzID0gdmlldy5wYWdlKCkucHJlZmVyZW5jZXMoKTsKICAgICAgICAgICAgICAgICBwcmVm
ZXJlbmNlcy5zZXRSZXNvdXJjZVVzYWdlT3ZlcmxheVZpc2libGUoIXByZWZlcmVuY2VzLnJlc291
cmNlVXNhZ2VPdmVybGF5VmlzaWJsZSgpKTsKICAgICAgICAgICAgICAgICByZXR1cm47CmRpZmYg
LS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggZmFhZGYyZjM4
NDAuLjI3MDY4ZDY2NzY5IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTgtMDgtMDMgIENhcmxvcyBHYXJjaWEgQ2Ft
cG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdIFVzZSBXUEUga2V5IHN5
bWJvbHMgYW5kIG5ldyBBUEkgaW5zdGVhZCBvZiB4a2Jjb21tb24gYW5kIHRoZSBrZXkgbWFwcGVy
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODgwOTMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAKKworICAg
ICAgICAqIE1pbmlCcm93c2VyL3dwZS9tYWluLmNwcDogVXNlIFdQRSBrZXkgc3ltYm9scy4KKyAg
ICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcDoKKyAg
ICAgICAgKFdUUjo6d3BlS2V5U3ltRm9yS2V5UmVmKTogVXNlIFdQRSBrZXkgc3ltYm9scyBhbmQg
d3BlX3VuaWNvZGVfdG9fa2V5X2NvZGUoKS4KKyAgICAgICAgKFdUUjo6RXZlbnRTZW5kZXJQcm94
eTo6a2V5RG93bik6IERvIG5vdCBzZXQgdW5pY29kZSBjaGFyIHRvIHRoZSBldmVudCBzaW5jZSBp
dCB3YXMgcmVtb3ZlZC4KKyAgICAgICAgKiBmbGF0cGFrL29yZy53ZWJraXQuV1BFLnlhbWw6IEJ1
bXAgV1BFQmFja2VuZCBhbmQgV1BFQmFja2VuZC1mZG8gdmVyc2lvbnMuCisgICAgICAgICogd3Bl
L2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcDoKKyAgICAgICAgKFdQRVRvb2xpbmdCYWNr
ZW5kczo6V2luZG93Vmlld0JhY2tlbmQ6OmhhbmRsZUtleUV2ZW50KTogRG8gbm90IHNldCB1bmlj
b2RlIGNoYXIgdG8gdGhlIGV2ZW50IHNpbmNlIGl0IHdhcyByZW1vdmVkLgorICAgICAgICAqIHdw
ZS9qaGJ1aWxkLm1vZHVsZXM6IEJ1bXAgV1BFQmFja2VuZCBhbmQgV1BFQmFja2VuZC1mZG8gdmVy
c2lvbnMuCisKIDIwMTgtMDgtMDIgIE5hbiBXYW5nICA8bl93YW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBWDogW2lPU10gYWRkIHN1cHBvcnQgdG8gcmV0dXJuIHRoZSBhdHRyaWJ1dGVkIHN0cmlu
ZyB1bmRlciB0aGUgZWxlbWVudApkaWZmIC0tZ2l0IGEvVG9vbHMvTWluaUJyb3dzZXIvd3BlL21h
aW4uY3BwIGIvVG9vbHMvTWluaUJyb3dzZXIvd3BlL21haW4uY3BwCmluZGV4IGE0OTBjNGI0OGRl
Li4zZjc2OTQyYTQ2ZCAxMDA2NDQKLS0tIGEvVG9vbHMvTWluaUJyb3dzZXIvd3BlL21haW4uY3Bw
CisrKyBiL1Rvb2xzL01pbmlCcm93c2VyL3dwZS9tYWluLmNwcApAQCAtNjQsNyArNjQsNyBAQCBw
dWJsaWM6CiAKICAgICBib29sIGRpc3BhdGNoS2V5Ym9hcmRFdmVudChzdHJ1Y3Qgd3BlX2lucHV0
X2tleWJvYXJkX2V2ZW50KiBldmVudCkgb3ZlcnJpZGUKICAgICB7Ci0gICAgICAgIGlmIChldmVu
dC0+cHJlc3NlZCAmJiBldmVudC0+bW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlm
aWVyX2NvbnRyb2wgJiYgZXZlbnQtPmtleUNvZGUgPT0gJ3EnKSB7CisgICAgICAgIGlmIChldmVu
dC0+cHJlc3NlZCAmJiBldmVudC0+bW9kaWZpZXJzICYgd3BlX2lucHV0X2tleWJvYXJkX21vZGlm
aWVyX2NvbnRyb2wgJiYgZXZlbnQtPmtleV9jb2RlID09IFdQRV9LRVlfcSkgewogICAgICAgICAg
ICAgZ19tYWluX2xvb3BfcXVpdChtX2xvb3ApOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvd3BlL0V2ZW50U2Vu
ZGVyUHJveHlXUEUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci93cGUvRXZlbnRTZW5kZXJQ
cm94eVdQRS5jcHAKaW5kZXggYWFiMTFlNzU1MTUuLjFkNjJmMmJiNjZhIDEwMDY0NAotLS0gYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL3dwZS9FdmVudFNlbmRlclByb3h5V1BFLmNwcApAQCAtMzEs
OCArMzEsNiBAQAogI2luY2x1ZGUgIlRlc3RDb250cm9sbGVyLmgiCiAjaW5jbHVkZSA8V2ViQ29y
ZS9Ob3RJbXBsZW1lbnRlZC5oPgogI2luY2x1ZGUgPHdwZS93cGUuaD4KLSNpbmNsdWRlIDx4a2Jj
b21tb24veGtiY29tbW9uLWtleXN5bXMuaD4KLSNpbmNsdWRlIDx4a2Jjb21tb24veGtiY29tbW9u
Lmg+CiAKIG5hbWVzcGFjZSBXVFIgewogCkBAIC0xNjAsOTMgKzE1OCw5MyBAQCBzdGF0aWMgdWlu
dDhfdCB3a0V2ZW50TW9kaWZpZXJzVG9XUEUoV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycykK
ICAgICByZXR1cm4gbW9kaWZpZXJzOwogfQogCi1pbnQgZ2V0WEtCS2V5U3ltRm9yS2V5UmVmKFdL
U3RyaW5nUmVmIGtleVJlZiwgdW5zaWduZWQgbG9jYXRpb24sIHVpbnQ4X3QqIG1vZGlmaWVycykK
K3N0YXRpYyB1aW50MzJfdCB3cGVLZXlTeW1Gb3JLZXlSZWYoV0tTdHJpbmdSZWYga2V5UmVmLCB1
bnNpZ25lZCBsb2NhdGlvbiwgdWludDhfdCogbW9kaWZpZXJzKQogewogICAgIGlmIChsb2NhdGlv
biA9PSBET01LZXlMb2NhdGlvbk51bXBhZCkgewogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhrZXlSZWYsICJsZWZ0QXJyb3ciKSkKLSAgICAgICAgICAgIHJldHVybiBY
S0JfS0VZX0tQX0xlZnQ7CisgICAgICAgICAgICByZXR1cm4gV1BFX0tFWV9LUF9MZWZ0OwogICAg
ICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodEFycm9y
IikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tFWV9LUF9SaWdodDsKKyAgICAgICAgICAgIHJl
dHVybiBXUEVfS0VZX0tQX1JpZ2h0OwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhrZXlSZWYsICJ1cEFycm93IikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tFWV9L
UF9VcDsKKyAgICAgICAgICAgIHJldHVybiBXUEVfS0VZX0tQX1VwOwogICAgICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJkb3duQXJyb3ciKSkKLSAgICAgICAg
ICAgIHJldHVybiBYS0JfS0VZX0tQX0Rvd247CisgICAgICAgICAgICByZXR1cm4gV1BFX0tFWV9L
UF9Eb3duOwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYs
ICJwYWdlVXAiKSkKLSAgICAgICAgICAgIHJldHVybiBYS0JfS0VZX0tQX1BhZ2VfVXA7CisgICAg
ICAgICAgICByZXR1cm4gV1BFX0tFWV9LUF9QYWdlX1VwOwogICAgICAgICBpZiAoV0tTdHJpbmdJ
c0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJwYWdlRG93biIpKQotICAgICAgICAgICAgcmV0
dXJuIFhLQl9LRVlfS1BfUGFnZV9Eb3duOworICAgICAgICAgICAgcmV0dXJuIFdQRV9LRVlfS1Bf
UGFnZV9Eb3duOwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlS
ZWYsICJob21lIikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tFWV9LUF9Ib21lOworICAgICAg
ICAgICAgcmV0dXJuIFdQRV9LRVlfS1BfSG9tZTsKICAgICAgICAgaWYgKFdLU3RyaW5nSXNFcXVh
bFRvVVRGOENTdHJpbmcoa2V5UmVmLCAiZW5kIikpCi0gICAgICAgICAgICByZXR1cm4gWEtCX0tF
WV9LUF9FbmQ7CisgICAgICAgICAgICByZXR1cm4gV1BFX0tFWV9LUF9FbmQ7CiAgICAgICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImluc2VydCIpKQotICAgICAg
ICAgICAgcmV0dXJuIFhLQl9LRVlfS1BfSW5zZXJ0OworICAgICAgICAgICAgcmV0dXJuIFdQRV9L
RVlfS1BfSW5zZXJ0OwogICAgICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhr
ZXlSZWYsICJkZWxldGUiKSkKLSAgICAgICAgICAgIHJldHVybiBYS0JfS0VZX0tQX0RlbGV0ZTsK
KyAgICAgICAgICAgIHJldHVybiBXUEVfS0VZX0tQX0RlbGV0ZTsKIAotICAgICAgICByZXR1cm4g
WEtCX0tFWV9Wb2lkU3ltYm9sOworICAgICAgICByZXR1cm4gV1BFX0tFWV9Wb2lkU3ltYm9sOwog
ICAgIH0KIAogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImxl
ZnRDb250cm9sIikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0NvbnRyb2xfTDsKKyAgICAgICAg
cmV0dXJuIFdQRV9LRVlfQ29udHJvbF9MOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGtleVJlZiwgInJpZ2h0Q29udHJvbCIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9D
b250cm9sX1I7CisgICAgICAgIHJldHVybiBXUEVfS0VZX0NvbnRyb2xfUjsKICAgICBpZiAoV0tT
dHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJsZWZ0U2hpZnQiKSkKLSAgICAgICAg
cmV0dXJuIFhLQl9LRVlfU2hpZnRfTDsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfU2hpZnRfTDsK
ICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJyaWdodFNoaWZ0
IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX1NoaWZ0X1I7CisgICAgICAgIHJldHVybiBXUEVf
S0VZX1NoaWZ0X1I7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVm
LCAibGVmdEFsdCIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9BbHRfTDsKKyAgICAgICAgcmV0
dXJuIFdQRV9LRVlfQWx0X0w7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmco
a2V5UmVmLCAicmlnaHRBbHQiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfQWx0X1I7CisgICAg
ICAgIHJldHVybiBXUEVfS0VZX0FsdF9SOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhD
U3RyaW5nKGtleVJlZiwgImxlZnRBcnJvdyIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9MZWZ0
OworICAgICAgICByZXR1cm4gV1BFX0tFWV9MZWZ0OwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxU
b1VURjhDU3RyaW5nKGtleVJlZiwgInJpZ2h0QXJyb3ciKSkKLSAgICAgICAgcmV0dXJuIFhLQl9L
RVlfUmlnaHQ7CisgICAgICAgIHJldHVybiBXUEVfS0VZX1JpZ2h0OwogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInVwQXJyb3ciKSkKLSAgICAgICAgcmV0dXJu
IFhLQl9LRVlfVXA7CisgICAgICAgIHJldHVybiBXUEVfS0VZX1VwOwogICAgIGlmIChXS1N0cmlu
Z0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgImRvd25BcnJvdyIpKQotICAgICAgICByZXR1
cm4gWEtCX0tFWV9Eb3duOworICAgICAgICByZXR1cm4gV1BFX0tFWV9Eb3duOwogICAgIGlmIChX
S1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInBhZ2VVcCIpKQotICAgICAgICBy
ZXR1cm4gWEtCX0tFWV9QYWdlX1VwOworICAgICAgICByZXR1cm4gV1BFX0tFWV9QYWdlX1VwOwog
ICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgInBhZ2VEb3duIikp
Ci0gICAgICAgIHJldHVybiBYS0JfS0VZX1BhZ2VfRG93bjsKKyAgICAgICAgcmV0dXJuIFdQRV9L
RVlfUGFnZV9Eb3duOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJl
ZiwgImhvbWUiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfSG9tZTsKKyAgICAgICAgcmV0dXJu
IFdQRV9LRVlfSG9tZTsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlS
ZWYsICJlbmQiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfRW5kOworICAgICAgICByZXR1cm4g
V1BFX0tFWV9FbmQ7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVm
LCAiaW5zZXJ0IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0luc2VydDsKKyAgICAgICAgcmV0
dXJuIFdQRV9LRVlfSW5zZXJ0OwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5n
KGtleVJlZiwgImRlbGV0ZSIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9EZWxldGU7CisgICAg
ICAgIHJldHVybiBXUEVfS0VZX0RlbGV0ZTsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4
Q1N0cmluZyhrZXlSZWYsICJwcmludFNjcmVlbiIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9Q
cmludDsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfUHJpbnQ7CiAgICAgaWYgKFdLU3RyaW5nSXNF
cXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAibWVudSIpKQotICAgICAgICByZXR1cm4gWEtCX0tF
WV9NZW51OworICAgICAgICByZXR1cm4gV1BFX0tFWV9NZW51OwogICAgIGlmIChXS1N0cmluZ0lz
RXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgIkYxIikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZ
X0YxOworICAgICAgICByZXR1cm4gV1BFX0tFWV9GMTsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFs
VG9VVEY4Q1N0cmluZyhrZXlSZWYsICJGMiIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9GMjsK
KyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjI7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRG
OENTdHJpbmcoa2V5UmVmLCAiRjMiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfRjM7CisgICAg
ICAgIHJldHVybiBXUEVfS0VZX0YzOwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3Ry
aW5nKGtleVJlZiwgIkY0IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0Y0OworICAgICAgICBy
ZXR1cm4gV1BFX0tFWV9GNDsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhr
ZXlSZWYsICJGNSIpKQotICAgICAgICByZXR1cm4gWEtCX0tFWV9GNTsKKyAgICAgICAgcmV0dXJu
IFdQRV9LRVlfRjU7CiAgICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVm
LCAiRjYiKSkKLSAgICAgICAgcmV0dXJuIFhLQl9LRVlfRjY7CisgICAgICAgIHJldHVybiBXUEVf
S0VZX0Y2OwogICAgIGlmIChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgIkY3
IikpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0Y3OworICAgICAgICByZXR1cm4gV1BFX0tFWV9G
NzsKICAgICBpZiAoV0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJGOCIpKQot
ICAgICAgICByZXR1cm4gWEtCX0tFWV9GODsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjg7CiAg
ICAgaWYgKFdLU3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAiRjkiKSkKLSAgICAg
ICAgcmV0dXJuIFhLQl9LRVlfRjk7CisgICAgICAgIHJldHVybiBXUEVfS0VZX0Y5OwogICAgIGlm
IChXS1N0cmluZ0lzRXF1YWxUb1VURjhDU3RyaW5nKGtleVJlZiwgIkYxMCIpKQotICAgICAgICBy
ZXR1cm4gWEtCX0tFWV9GMTA7CisgICAgICAgIHJldHVybiBXUEVfS0VZX0YxMDsKICAgICBpZiAo
V0tTdHJpbmdJc0VxdWFsVG9VVEY4Q1N0cmluZyhrZXlSZWYsICJGMTEiKSkKLSAgICAgICAgcmV0
dXJuIFhLQl9LRVlfRjExOworICAgICAgICByZXR1cm4gV1BFX0tFWV9GMTE7CiAgICAgaWYgKFdL
U3RyaW5nSXNFcXVhbFRvVVRGOENTdHJpbmcoa2V5UmVmLCAiRjEyIikpCi0gICAgICAgIHJldHVy
biBYS0JfS0VZX0YxMjsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfRjEyOwogCiAgICAgc2l6ZV90
IGJ1ZmZlclNpemUgPSBXS1N0cmluZ0dldE1heGltdW1VVEY4Q1N0cmluZ1NpemUoa2V5UmVmKTsK
ICAgICBhdXRvIGJ1ZmZlciA9IHN0ZDo6bWFrZV91bmlxdWU8Y2hhcltdPihidWZmZXJTaXplKTsK
QEAgLTI1NCwyNyArMjUyLDI2IEBAIGludCBnZXRYS0JLZXlTeW1Gb3JLZXlSZWYoV0tTdHJpbmdS
ZWYga2V5UmVmLCB1bnNpZ25lZCBsb2NhdGlvbiwgdWludDhfdCogbW9kaWZpCiAgICAgY2hhciBj
aGFyQ29kZSA9IGJ1ZmZlci5nZXQoKVswXTsKIAogICAgIGlmIChjaGFyQ29kZSA9PSAnXG4nIHx8
IGNoYXJDb2RlID09ICdccicpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX1JldHVybjsKKyAgICAg
ICAgcmV0dXJuIFdQRV9LRVlfUmV0dXJuOwogICAgIGlmIChjaGFyQ29kZSA9PSAnXHQnKQotICAg
ICAgICByZXR1cm4gWEtCX0tFWV9UYWI7CisgICAgICAgIHJldHVybiBXUEVfS0VZX1RhYjsKICAg
ICBpZiAoY2hhckNvZGUgPT0gJ1x4OCcpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0JhY2tTcGFj
ZTsKKyAgICAgICAgcmV0dXJuIFdQRV9LRVlfQmFja1NwYWNlOwogICAgIGlmIChjaGFyQ29kZSA9
PSAweDAwMUIpCi0gICAgICAgIHJldHVybiBYS0JfS0VZX0VzY2FwZTsKKyAgICAgICAgcmV0dXJu
IFdQRV9LRVlfRXNjYXBlOwogCiAgICAgaWYgKFdURjo6aXNBU0NJSVVwcGVyKGNoYXJDb2RlKSkK
ICAgICAgICAgKm1vZGlmaWVycyB8PSB3cGVfaW5wdXRfa2V5Ym9hcmRfbW9kaWZpZXJfc2hpZnQ7
CiAKLSAgICAvLyBOb3Qgc3VyZSBpZiB0aGlzIGlzIGNvcnJlY3QuCi0gICAgcmV0dXJuIGNoYXJD
b2RlOworICAgIHJldHVybiB3cGVfdW5pY29kZV90b19rZXlfY29kZShzdGF0aWNfY2FzdDx1aW50
MzJfdD4oY2hhckNvZGUpKTsKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5OjprZXlEb3duKFdL
U3RyaW5nUmVmIGtleVJlZiwgV0tFdmVudE1vZGlmaWVycyB3a01vZGlmaWVycywgdW5zaWduZWQg
bG9jYXRpb24pCiB7CiAgICAgdWludDhfdCBtb2RpZmllcnMgPSB3a0V2ZW50TW9kaWZpZXJzVG9X
UEUod2tNb2RpZmllcnMpOwotICAgIHVpbnQzMl90IGtleVN5bSA9IGdldFhLQktleVN5bUZvcktl
eVJlZihrZXlSZWYsIGxvY2F0aW9uLCAmbW9kaWZpZXJzKTsKLSAgICB1aW50MzJfdCB1bmljb2Rl
ID0geGtiX2tleXN5bV90b191dGYzMihrZXlTeW0pOwotICAgIHN0cnVjdCB3cGVfaW5wdXRfa2V5
Ym9hcmRfZXZlbnQgZXZlbnQgeyBzdGF0aWNfY2FzdDx1aW50MzJfdD4obV90aW1lKSwga2V5U3lt
LCB1bmljb2RlLCB0cnVlLCBtb2RpZmllcnN9OworICAgIHVpbnQzMl90IGtleVN5bSA9IHdwZUtl
eVN5bUZvcktleVJlZihrZXlSZWYsIGxvY2F0aW9uLCAmbW9kaWZpZXJzKTsKKyAgICAvLyBGSVhN
RTogd2UgZG9uJ3QgaGF2ZSBhIHdheSB0byBnZXQgaGFyZHdhcmUga2V5IGNvZGUgaW4gV1BFLgor
ICAgIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQgZXZlbnQgeyBzdGF0aWNfY2FzdDx1
aW50MzJfdD4obV90aW1lKSwga2V5U3ltLCAwLCB0cnVlLCBtb2RpZmllcnN9OwogICAgIHdwZV92
aWV3X2JhY2tlbmRfZGlzcGF0Y2hfa2V5Ym9hcmRfZXZlbnQobV92aWV3QmFja2VuZCwgJmV2ZW50
KTsKICAgICBldmVudC5wcmVzc2VkID0gZmFsc2U7CiAgICAgd3BlX3ZpZXdfYmFja2VuZF9kaXNw
YXRjaF9rZXlib2FyZF9ldmVudChtX3ZpZXdCYWNrZW5kLCAmZXZlbnQpOwpkaWZmIC0tZ2l0IGEv
VG9vbHMvZmxhdHBhay9vcmcud2Via2l0LldQRS55YW1sIGIvVG9vbHMvZmxhdHBhay9vcmcud2Vi
a2l0LldQRS55YW1sCmluZGV4IGM3M2NkOGQ1MWFjLi4yYmVkODkzZWI4ZiAxMDA2NDQKLS0tIGEv
VG9vbHMvZmxhdHBhay9vcmcud2Via2l0LldQRS55YW1sCisrKyBiL1Rvb2xzL2ZsYXRwYWsvb3Jn
LndlYmtpdC5XUEUueWFtbApAQCAtMywxMyArMywxMyBAQAogICBzb3VyY2VzOgogICAgIC0gdHlw
ZTogZ2l0CiAgICAgICB1cmw6IGh0dHBzOi8vZ2l0aHViLmNvbS9XZWJQbGF0Zm9ybUZvckVtYmVk
ZGVkL1dQRUJhY2tlbmQuZ2l0Ci0gICAgICBicmFuY2g6IDQxMWRlY2Y0ODc1ZTdhNWM4NTg0ODky
MDZjZGI3NzA1YTRiYmI1ODEKKyAgICAgIGJyYW5jaDogNDUxNDhmZjVlODAyYzZjZDFkMzBkM2Mz
MThmZjZiYjViZGYyYzRhYQogLSBuYW1lOiB3cGViYWNrZW5kLWZkbwogICBidWlsZHN5c3RlbTog
Y21ha2UtbmluamEKICAgc291cmNlczoKICAgICAtIHR5cGU6IGdpdAogICAgICAgdXJsOiBodHRw
czovL2dpdGh1Yi5jb20vSWdhbGlhL1dQRUJhY2tlbmQtZmRvLmdpdAotICAgICAgYnJhbmNoOiBk
YTc0NmFmMmRmZjZiOTcyYzVjNDkwM2ExMzJlZGNhZmRiNzY4OTI2CisgICAgICBicmFuY2g6IGZh
YzNmZTFlYTc4YjZmYzViNjAwNWFkZmNlYjkzZWViNDY2ODE0ODUKIC0gbmFtZTogbHVhCiAgIGJ1
aWxkc3lzdGVtOiBzaW1wbGUKICAgYnVpbGQtY29tbWFuZHM6CkBAIC00MCw0ICs0MCw0IEBACiAt
IG5hbWU6IG9yZy53ZWJraXQuV1BFCiAgIGJ1aWxkc3lzdGVtOiBzaW1wbGUKICAgYnVpbGQtY29t
bWFuZHM6Ci0gICAgLSAvYXBwL3dlYmtpdC9Ub29scy9TY3JpcHRzL2J1aWxkLXdlYmtpdCAtLXdw
ZSAtLXByZWZpeD0vYXBwClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQorICAgIC0gL2FwcC93
ZWJraXQvVG9vbHMvU2NyaXB0cy9idWlsZC13ZWJraXQgLS13cGUgLS1wcmVmaXg9L2FwcApkaWZm
IC0tZ2l0IGEvVG9vbHMvd3BlL2JhY2tlbmRzL1dpbmRvd1ZpZXdCYWNrZW5kLmNwcCBiL1Rvb2xz
L3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAKaW5kZXggYjI5OTcxYTliZjguLmVm
NWFmNDgzOWU5IDEwMDY0NAotLS0gYS9Ub29scy93cGUvYmFja2VuZHMvV2luZG93Vmlld0JhY2tl
bmQuY3BwCisrKyBiL1Rvb2xzL3dwZS9iYWNrZW5kcy9XaW5kb3dWaWV3QmFja2VuZC5jcHAKQEAg
LTY1MSwxOCArNjUxLDE2IEBAIHZvaWQgV2luZG93Vmlld0JhY2tlbmQ6OmhhbmRsZUtleUV2ZW50
KHVpbnQzMl90IGtleSwgdWludDMyX3Qgc3RhdGUsIHVpbnQzMl90IHRpCiB7CiAgICAgYXV0byYg
eGtiID0gbV9zZWF0RGF0YS54a2I7CiAgICAgdWludDMyX3Qga2V5c3ltID0geGtiX3N0YXRlX2tl
eV9nZXRfb25lX3N5bSh4a2Iuc3RhdGUsIGtleSk7Ci0gICAgdWludDMyX3QgdW5pY29kZSA9IHhr
Yl9zdGF0ZV9rZXlfZ2V0X3V0ZjMyKHhrYi5zdGF0ZSwga2V5KTsKIAogICAgIGlmICh4a2IuY29t
cG9zZVN0YXRlCiAgICAgICAgICYmIHN0YXRlID09IFdMX0tFWUJPQVJEX0tFWV9TVEFURV9QUkVT
U0VECiAgICAgICAgICYmIHhrYl9jb21wb3NlX3N0YXRlX2ZlZWQoeGtiLmNvbXBvc2VTdGF0ZSwg
a2V5c3ltKSA9PSBYS0JfQ09NUE9TRV9GRUVEX0FDQ0VQVEVECiAgICAgICAgICYmIHhrYl9jb21w
b3NlX3N0YXRlX2dldF9zdGF0dXMoeGtiLmNvbXBvc2VTdGF0ZSkgPT0gWEtCX0NPTVBPU0VfQ09N
UE9TRUQpIHsKICAgICAgICAga2V5c3ltID0geGtiX2NvbXBvc2Vfc3RhdGVfZ2V0X29uZV9zeW0o
eGtiLmNvbXBvc2VTdGF0ZSk7Ci0gICAgICAgIHVuaWNvZGUgPSB4a2Jfa2V5c3ltX3RvX3V0ZjMy
KGtleXN5bSk7CiAgICAgfQogCiAgICAgaWYgKG1fc2VhdERhdGEua2V5Ym9hcmQudGFyZ2V0KSB7
Ci0gICAgICAgIHN0cnVjdCB3cGVfaW5wdXRfa2V5Ym9hcmRfZXZlbnQgZXZlbnQgPSB7IHRpbWUs
IGtleXN5bSwgdW5pY29kZSwgISFzdGF0ZSwgeGtiLm1vZGlmaWVycyB9OworICAgICAgICBzdHJ1
Y3Qgd3BlX2lucHV0X2tleWJvYXJkX2V2ZW50IGV2ZW50ID0geyB0aW1lLCBrZXlzeW0sIGtleSwg
ISFzdGF0ZSwgeGtiLm1vZGlmaWVycyB9OwogICAgICAgICBkaXNwYXRjaElucHV0S2V5Ym9hcmRF
dmVudCgmZXZlbnQpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1Rvb2xzL3dwZS9qaGJ1aWxkLm1v
ZHVsZXMgYi9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCmluZGV4IGIxYWI0NjgyNzI4Li45NTYy
MjkyOGE0NiAxMDA2NDQKLS0tIGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29s
cy93cGUvamhidWlsZC5tb2R1bGVzCkBAIC0xNjcsNyArMTY3LDcgQEAKIAogICA8Y21ha2UgaWQ9
IndwZWJhY2tlbmQiPgogICAgIDxicmFuY2ggcmVwbz0iZ2l0aHViLmNvbSIgbW9kdWxlPSJXZWJQ
bGF0Zm9ybUZvckVtYmVkZGVkL1dQRUJhY2tlbmQuZ2l0IgotICAgICAgICAgICAgdGFnPSI0MTFk
ZWNmNDg3NWU3YTVjODU4NDg5MjA2Y2RiNzcwNWE0YmJiNTgxIiAvPgorICAgICAgICAgICAgdGFn
PSI0NTE0OGZmNWU4MDJjNmNkMWQzMGQzYzMxOGZmNmJiNWJkZjJjNGFhIiAvPgogICA8L2NtYWtl
PgogCiAgIDxjbWFrZSBpZD0id3BlYmFja2VuZC1mZG8iPgpAQCAtMTc2LDcgKzE3Niw3IEBACiAg
ICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KICAgICA8L2RlcGVuZGVuY2llcz4KICAgICA8YnJh
bmNoIHJlcG89ImdpdGh1Yi5jb20iIG1vZHVsZT0iSWdhbGlhL1dQRUJhY2tlbmQtZmRvLmdpdCIK
LSAgICAgICAgICAgIHRhZz0iZGE3NDZhZjJkZmY2Yjk3MmM1YzQ5MDNhMTMyZWRjYWZkYjc2ODky
NiIvPgorICAgICAgICAgICAgdGFnPSJmYWMzZmUxZWE3OGI2ZmM1YjYwMDVhZGZjZWI5M2VlYjQ2
NjgxNDg1Ii8+CiAgIDwvY21ha2U+CiAKICAgPGF1dG90b29scyBpZD0ibGliZ3BnLWVycm9yIiBh
dXRvZ2VuLXNoPSJjb25maWd1cmUiPgo=
</data>
<flag name="review"
          id="364325"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>