<?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>163297</bug_id>
          
          <creation_ts>2016-10-11 14:09:18 -0700</creation_ts>
          <short_desc>Web Inspector: move Mac-specific automation commands to a separate implementation file</short_desc>
          <delta_ts>2017-01-19 16:57:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Inspector</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>163401</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Blaze Burg">bburg</reporter>
          <assigned_to name="Blaze Burg">bburg</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bburg</cc>
    
    <cc>commit-queue</cc>
    
    <cc>inspector-bugzilla-changes</cc>
    
    <cc>ossy</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1238999</commentid>
    <comment_count>0</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-10-11 14:09:18 -0700</bug_when>
    <thetext>&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239000</commentid>
    <comment_count>1</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-10-11 14:09:24 -0700</bug_when>
    <thetext>&lt;rdar://problem/28718990&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239103</commentid>
    <comment_count>2</comment_count>
      <attachid>291320</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-10-11 17:05:38 -0700</bug_when>
    <thetext>Created attachment 291320
Proposed Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239966</commentid>
    <comment_count>3</comment_count>
      <attachid>291522</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-10-13 15:01:53 -0700</bug_when>
    <thetext>Created attachment 291522
Fix CMake</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1239986</commentid>
    <comment_count>4</comment_count>
      <attachid>291528</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2016-10-13 15:31:55 -0700</bug_when>
    <thetext>Created attachment 291528
Fix CMake/EFL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1240411</commentid>
    <comment_count>5</comment_count>
      <attachid>291528</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2016-10-14 14:29:49 -0700</bug_when>
    <thetext>Comment on attachment 291528
Fix CMake/EFL

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

r=me, but I do think it would be better to just update the JSON and the Generator instead of using the preprocessor and two levels of generation. More comments below

&gt; Source/WebKit2/CMakeLists.txt:836
&gt; +# Right now we don&apos;t need to build with any defines, but it might be necessary later.
&gt; +set(WebKit2_AUTOMATION_PROTOCOL_PREPROCESSOR_DEFINES
&gt; +)

Is this worth keeping? We could just add it when its needed.

&gt; Source/WebKit2/UIProcess/Automation/Automation.json.in:281
&gt; +#if !defined(PLATFORM_IOS) || !PLATFORM_IOS

Having thought about this for a little while, this seems overly complex. The json file is already an input for generation. Its like having an Automation.in.in to generate Automation.in to generate code.

Given its limited to just this it seems fine for now but longer term it just seems it would be better to move back to a single Automation.json that can handle customization per-command. It might be easier than expected.

The generator already has support for a whole domain:

    &quot;featureGuard&quot;: &quot;ENABLE(INDEXED_DATABASE)&quot;

If that, or something similar, was carried to individual commands it seems things would be much simpler.

Likewise, having 1 json file that can be opened and edited with JSON tools would be nice. Having #if/else in json files probably breaks syntax highlighting in some editors.

&gt; Source/WebKit2/UIProcess/Automation/cocoa/WebAutomationSessionCocoa.mm:40
&gt; +#pragma mark Platform-dependent Implementations

This is not needed, it is in a FooCocoa.mm file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267529</commentid>
    <comment_count>6</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-01-17 16:02:53 -0800</bug_when>
    <thetext>Reworking this to just move implementations. The generator side changes have landed already.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267580</commentid>
    <comment_count>7</comment_count>
      <attachid>299089</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-01-17 17:05:33 -0800</bug_when>
    <thetext>Created attachment 299089
Proposed Fix v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267621</commentid>
    <comment_count>8</comment_count>
      <attachid>299100</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-01-17 18:16:38 -0800</bug_when>
    <thetext>Created attachment 299100
Proposed Fix v2.1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1267671</commentid>
    <comment_count>9</comment_count>
      <attachid>299117</attachid>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-01-17 21:06:51 -0800</bug_when>
    <thetext>Created attachment 299117
Proposed Fix v2.2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268108</commentid>
    <comment_count>10</comment_count>
      <attachid>299117</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-19 09:53:48 -0800</bug_when>
    <thetext>Comment on attachment 299117
Proposed Fix v2.2

Clearing flags on attachment: 299117

Committed r210927: &lt;http://trac.webkit.org/changeset/210927&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268109</commentid>
    <comment_count>11</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-01-19 09:53:52 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268148</commentid>
    <comment_count>12</comment_count>
    <who name="Csaba Osztrogonác">ossy</who>
    <bug_when>2017-01-19 12:06:06 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Comment on attachment 299117 [details]
&gt; Proposed Fix v2.2
&gt; 
&gt; Clearing flags on attachment: 299117
&gt; 
&gt; Committed r210927: &lt;http://trac.webkit.org/changeset/210927&gt;

It broke the Apple Mac cmake build:
https://build.webkit.org/builders/Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/11365</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1268251</commentid>
    <comment_count>13</comment_count>
    <who name="Blaze Burg">bburg</who>
    <bug_when>2017-01-19 16:57:14 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; Comment on attachment 299117 [details]
&gt; &gt; Proposed Fix v2.2
&gt; &gt; 
&gt; &gt; Clearing flags on attachment: 299117
&gt; &gt; 
&gt; &gt; Committed r210927: &lt;http://trac.webkit.org/changeset/210927&gt;
&gt; 
&gt; It broke the Apple Mac cmake build:
&gt; https://build.webkit.org/builders/
&gt; Apple%20El%20Capitan%20CMake%20Debug%20%28Build%29/builds/11365

Oops, we need to pass --platform=macOS when building for Mac with CMake.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291320</attachid>
            <date>2016-10-11 17:05:38 -0700</date>
            <delta_ts>2016-10-13 15:01:49 -0700</delta_ts>
            <desc>Proposed Fix</desc>
            <filename>bug-163297-20161011170215.patch</filename>
            <type>text/plain</type>
            <size>151775</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMzY3ODFjN2RhZGZiNjM0
MGRmZGQ5ZGFkZjhjZmY4ODc1MzU4NzMxNS4uMWQ5ZTgwNjQ5NjAzYTE1NmJhNGZhOWEzNWQ2NTVm
NWQxNmE2MDkwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE2LTEwLTExICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
TWFjLXNwZWNpZmljIGF1dG9tYXRpb24gY29tbWFuZHMgdG8gYSBzZXBhcmF0ZSBpbXBsZW1lbnRh
dGlvbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjMyOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBhbGwgQXV0b21hdGlvbiBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuIFN0YXJ0IHNwbGl0dGluZyBv
dXQKKyAgICAgICAgY29tbWFuZCBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBiYXNl
ZCBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLgorCisgICAgICAgIEFzIHBhcnQgb2YgdGhpcywgc3Rh
cnQgZ2VuZXJhdGluZyBhIHNlcGFyYXRlIEF1dG9tYXRpb24taU9TLmpzb24gZmlsZSB0aGF0Cisg
ICAgICAgIGRlZmluZXMgd2hpY2ggY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBmb3IgaU9TLiBSaWdo
dCBub3cgdGhpcyBpcyBzdHJpY3RseSBhIHN1YnNldAorICAgICAgICBvZiBNYWMgY29tbWFuZHMs
IGJ1dCBpT1Mtc3BlY2lmaWMgY29tbWFuZHMgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuCisK
KyAgICAgICAgUmF0aGVyIHRoYW4gYWRkaW5nIG5ldyBhdmFpbGFiaWxpdHkga2V5cyB0byB0aGUg
SlNPTi1SUEMgc3BlY2lmaWNhdGlvbiBmaWxlcywgZm9yIG5vdworICAgICAgICBqdXN0IHJ1biB0
aGUgcHJlcHJvY2Vzc29yIG92ZXIgQXV0b21hdGlvbi5qc29uLmluIHRvIGdlbmVyYXRlIHBlciBw
bGF0Zm9ybSBmaWxlcy4KKyAgICAgICAgS2VlcCAnQXV0b21hdGlvbi5qc29uJyBhcyB0aGUgbmFt
ZSBmb3IgdGhlIE1hYyBzcGVjaWZpY2F0aW9uIHRvIGF2b2lkIGJyZWFraW5nIGNsaWVudHMuCisK
KyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAtIFNjcmFwZSBXVEZfUExB
VEZPUk1fSU9TIGZyb20gUGxhdGZvcm0uaCBhbmQgdXNlIGl0IHRvIGRlY2lkZSB3aGljaCBzcGVj
aWZpY2F0aW9uCisgICAgICAgICAgdG8gdXNlIGZvciBnZW5lcmF0aW5nIHRoZSBpbXBsZW1lbnRh
dGlvbiBvZiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJIYW5kbGVyLgorICAgICAgICAtIEdl
bmVyYXRlIGJvdGggTWFjIGFuZCBpT1Mgc3BlY2lmaWNhdGlvbiBmaWxlcyByZWdhcmRsZXNzIG9m
IHRoZSB0YXJnZXQgcGxhdGZvcm0sCisgICAgICAgICAgc28gdGhhdCBjbGllbnRzIGNhbiBmaW5k
IHRoZSBtb3N0IHJlY2VudCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgZGlnZ2luZyBpbiB0aGUgU0RL
LgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluOiBS
ZW5hbWVkIGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlv
bi5qc29uLgorICAgICAgICBNYXJrIG91dCBjb21tYW5kcyB0aGF0IGFyZSBub3cgb2ZmaWNpYWxs
eSBNYWMtb25seToKKyAgICAgICAgICAgIC0gcmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQK
KyAgICAgICAgICAgIC0gbW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0CisgICAgICAgICAgICAt
IGluc3BlY3RCcm93c2luZ0NvbnRleHQKKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5nQ29u
dGV4dCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpp
bnNwZWN0QnJvd3NpbmdDb250ZXh0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6IERlbGV0ZWQuCisg
ICAgICAgIC0gTW92ZSBzaGFyZWQgY29udmVuaWVuY2UgbWFjcm9zIHRvIGhlYWRlciBmaWxlLgor
ICAgICAgICAtIE1vdmUgb3V0IENvY29hLW9ubHkgb3IgTWFjLW9ubHkgY29tbWFuZCBpbXBsZW1l
bnRhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5oOgorICAgICAgICBSZWFycmFuZ2Ugc29tZSBkZWNsYXJhdGlvbnMgYW5kIHN3aXRj
aCBmcm9tIFVTRShBUFBLSVQpIHRvIFBMQVRGT1JNKE1BQykuCisKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oOiBBZGRlZC4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9uQ29j
b2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxh
dGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0YSk6CisgICAgICAgIE1vdmVkIGZyb20gV2ViQXV0
b21hdGlvblNlc3Npb25Db2NvYS5tbS4gQWRkIGlPUy1zcGVjaWZpYyBoZWFkZXIgaW5jbHVkZXMu
CisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Np
b25NYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2Vi
QXV0b21hdGlvblNlc3Npb25Db2NvYS5tbS4KKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZSk6CisgICAgICAgIChXZWJLaXQ6
OldlYkF1dG9tYXRpb25TZXNzaW9uOjptYXJrRXZlbnRBc1N5bnRoZXNpemVkRm9yQXV0b21hdGlv
bik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjp3YXNFdmVudFN5bnRo
ZXNpemVkRm9yQXV0b21hdGlvbik6CisgICAgICAgIE1vdmUgb3V0IEFwcEtpdC1zcGVjaWZpYyBl
dmVudCBzaW11bGF0aW9uIGNvZGUgdG8gaGVyZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQpOgorICAgICAgICAo
V2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Omluc3BlY3RCcm93c2lu
Z0NvbnRleHQpOgorICAgICAgICBNb3ZlIG91dCBNYWMtc3BlY2lmaWMgY29tbWFuZCBpbXBsZW1l
bnRhdGlvbnMgdG8gaGVyZS4KKworICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVu
Y2UpOgorICAgICAgICBNb3ZlIG91dCBNYWMgcGxhdGZvcm1Gb28gaW1wbGVtZW50YXRpb25zIHRv
IGhlcmUuCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6Cisg
ICAgICAgIC0gQWRkZWQgVUlQcm9jZXNzL0F1dG9tYXRpb24ve21hYyxjb2NvYX0gZ3JvdXBzLgor
ICAgICAgICAtIEFkZCBuZXcgcGxhdGZvcm0tc3BlY2lmaWMgaW1wbGVtZW50YXRpb24gZmlsZXMu
CisgICAgICAgIC0gUmVuYW1lIEF1dG9tYXRpb24uanNvbiB0byBBdXRvbWF0aW9uLmpzb24uaW4u
CisgICAgICAgIC0gQWRkIGRlcml2ZWQgc291cmNlcyAnQXV0b21hdGlvbi5qc29uJyBhbmQgJ0F1
dG9tYXRpb24taU9TLmpzb24nLgorICAgICAgICAtIE1hcmsgdGhlc2UgSlNPTiBmaWxlcyBhcyBm
cmFtZXdvcmsgcHJpdmF0ZSBoZWFkZXJzLgorCiAyMDE2LTEwLTExICBEYW5pZWwgQmF0ZXMgIDxk
YWJhdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBBdHRlbXB0IHRvIGZpeCB0aGUgQXBwbGUgSW50
ZXJuYWwgTWFjIGJ1aWxkIGZvbGxvd2luZyByMjA3MTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBjZjNmMWZiMjIxMjM5YmVmYWYxMWE5MGE5OThmZGYzM2Y1YjM1ZmU2Li44NDY5
ZmQ2ZmNlZDQzMzA5MDhkNjEwZjZmYWI0NjNjZmIyYmI0MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE2OSw2ICsxNjksMTIgQEAgU0NSSVBUUyA9IFwKIEZSQU1FV09SS19G
TEFHUyA9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJUikgJChGUkFNRVdPUktfU0VB
UkNIX1BBVEhTKSB8IHBlcmwgLWUgJ3ByaW50ICItRiAiIC4gam9pbigiIC1GICIsIHNwbGl0KCIg
IiwgPD4pKTsnKQogSEVBREVSX0ZMQUdTID0gJChzaGVsbCBlY2hvICQoQlVJTFRfUFJPRFVDVFNf
RElSKSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpIHwgcGVybCAtZSAncHJpbnQgIi1JIiAuIGpvaW4o
IiAtSSIsIHNwbGl0KCIgIiwgPD4pKTsnKQogCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251
KysxMSAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChI
RUFERVJfRkxBR1MpIC1pbmNsdWRlICJ3dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAn
IFdURl9QTEFURk9STV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9S
TV9JT1MgPSAxCitlbHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKIC1pbmNs
dWRlIFdlYktpdERlcml2ZWRTb3VyY2VzQWRkaXRpb25zLm1ha2UKIAogLlBIT05ZIDogYWxsCkBA
IC0yMjUsMTcgKzIzMSw0MyBAQCBBVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJUFRT
ID0gXAogIwogCiBBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTID0gXAotICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIFwKKwkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbi5pbiBcCiAjCiAKK0FVVE9NQVRJ
T05fUFJPVE9DT0xfU1BFQ0lGSUNBVElPTl9GSUxFUyA9IFwKKwlBdXRvbWF0aW9uLmpzb24gXAor
CUF1dG9tYXRpb24taU9TLmpzb24gXAorIworCisjIEdlbmVyYXRlIGJvdGggcHJvdG9jb2wgc3Bl
Y2lmaWNhdGlvbiBmaWxlcyByZWdhcmRsZXNzIG9mIHRoZSB0YXJnZXQgcGxhdGZvcm0KKyMgYmVp
bmcgYnVpbHQuIEJvdGggc2hvdWxkIGJlIGFjY2Vzc2libGUgYXMgcHJpdmF0ZSBoZWFkZXJzIG9m
IFdlYktpdDIuZnJhbWV3b3JrLgorYWxsIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX1NQRUNJRklD
QVRJT05fRklMRVMpCisKK0F1dG9tYXRpb24taU9TLmpzb24gOiAkKEFVVE9NQVRJT05fUFJPVE9D
T0xfSU5QVVRfRklMRVMpCisJJChDQykgJChURVhUX1BSRVBST0NFU1NPUl9GTEFHUykgLURJT1Nf
T05MWT0xICQ8ID4gJEAKKworQXV0b21hdGlvbi5qc29uIDogJChBVVRPTUFUSU9OX1BST1RPQ09M
X0lOUFVUX0ZJTEVTKQorCSQoQ0MpICQoVEVYVF9QUkVQUk9DRVNTT1JfRkxBR1MpIC1ETUFDX09O
TFk9MSAkPCA+ICRACisKKyMgT25seSB1c2UgdGhlIHRhcmdldCBwbGF0Zm9ybSdzIHZhcmlhbnQg
Zm9yIGdlbmVyYXRpbmcgYmFja2VuZCBtZXNzYWdlIGRpc3BhdGNoZXJzLgoraWZlcSAoJChXVEZf
UExBVEZPUk1fSU9TKSwgMSkKK0FVVE9NQVRJT05fUFJPVE9DT0xfU0VMRUNURURfU1BFQ0lGSUNB
VElPTl9GSUxFUyA9IFwKKwlBdXRvbWF0aW9uLWlPUy5qc29uIFwKKyMKK2Vsc2UKK0FVVE9NQVRJ
T05fUFJPVE9DT0xfU0VMRUNURURfU1BFQ0lGSUNBVElPTl9GSUxFUyA9IFwKKwlBdXRvbWF0aW9u
Lmpzb24gXAorIworZW5kaWYKKwogQVVUT01BVElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMgPSBc
CiAgICAgQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oIFwKICAgICBBdXRvbWF0aW9uQmFj
a2VuZERpc3BhdGNoZXJzLmNwcCBcCiAjCiAKICMgSlNPTi1SUEMgQmFja2VuZCBEaXNwYXRjaGVy
cywgVHlwZSBCdWlsZGVycwotJChmaXJzdHdvcmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBV
VF9GSUxFUykpIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTKSAkKEFVVE9NQVRJ
T05fUFJPVE9DT0xfR0VORVJBVE9SX1NDUklQVFMpCi0JJChQWVRIT04pICQoSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAt
LWZyYW1ld29yayBXZWJLaXQgLS1iYWNrZW5kIC0tb3V0cHV0RGlyIC4gJChBVVRPTUFUSU9OX1BS
T1RPQ09MX0lOUFVUX0ZJTEVTKQorJChmaXJzdHdvcmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09V
VFBVVF9GSUxFUykpIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX1NFTEVDVEVEX1NQRUNJRklDQVRJ
T05fRklMRVMpICQoQVVUT01BVElPTl9QUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUUykKKwkkKFBZ
VEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtaW5zcGVjdG9yLXBy
b3RvY29sLWJpbmRpbmdzLnB5IC0tZnJhbWV3b3JrIFdlYktpdCAtLWJhY2tlbmQgLS1vdXRwdXRE
aXIgLiAkKEFVVE9NQVRJT05fUFJPVE9DT0xfU0VMRUNURURfU1BFQ0lGSUNBVElPTl9GSUxFUykK
IAogYWxsIDogJChmaXJzdHdvcmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBVVF9GSUxFUykp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRp
b24uanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDZjY2VhODJiMGVlOWI5OGY5
Y2QzMGY2ZGI4YWZmNjYxYTFmMjMwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0
aW9uLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw0NzcgKzAsMCBAQAotewotICAgICJkb21haW4i
OiAiQXV0b21hdGlvbiIsCi0gICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpb24gZG9tYWluIGV4
cG9zZXMgY29tbWFuZHMgZm9yIGF1dG9tYXRpbmcgdXNlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUg
YnJvd3Nlci4iLAotICAgICJ0eXBlcyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjog
IlBvaW50IiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIngiLCAidHlwZSI6ICJudW1i
ZXIiIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ5IiwgInR5cGUiOiAibnVtYmVyIiB9
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6
ICJTaXplIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAi
bnVtYmVyIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAi
bnVtYmVyIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJpZCI6ICJSZWN0IiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIs
ICIkcmVmIjogIlBvaW50IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIsICIk
cmVmIjogIlNpemUiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgImlkIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsCi0gICAgICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBpZGVu
dGlmaWVyIGZvciBhIGJyb3dzaW5nIGNvbnRleHQuIgotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAiaWQiOiAiRnJhbWVIYW5kbGUiLAotICAgICAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBm
b3IgYSBmcmFtZSBpbiBhIHBhZ2UuIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAiaWQiOiAiTm9kZUhhbmRsZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBpZGVudGlmaWVyIGZvciBhIG5vZGUg
aW4gYSBwYWdlLiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkVy
cm9yTWVzc2FnZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRoaXMgZW51bSBjb250YWlucyBwcmVkZWZpbmVkIGVycm9yIG1lc3Nh
Z2VzIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2lnbmFsIGEgd2VsbC1kZWZpbmVkIGVycm9yIGNvbmRp
dGlvbiwgc3VjaCBhcyBhIG1pc3NpbmcgaW1wbGVtZW50YXRpb24sIHVua25vd24gd2luZG93IGhh
bmRsZSwgYW5kIHNvIGZvcnRoLiBUaGUgYmFja2VuZCBzaWduYWxzIG9uZSBvZiB0aGVzZSBlcnJv
cnMgYnkgdXNpbmcgaXQgYXMgYSBwcmVmaXggb2YgdGhlIGNvbW1hbmRzJ3MgZXJyb3IgbWVzc2Fn
ZSAodGhlIGVycm9yU3RyaW5nIGFyZ3VtZW50IGluIGdlbmVyYXRlZCBDKysgYmFja2VuZCBkaXNw
YXRjaGVycykuIFRoaXMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgZnJvbnRlbmQgYXMgYSBwcm90
b2NvbCBlcnJvciB3aXRoIGEgSlNPTi1SUEMgZXJyb3IgY29kZSBvZiAnU2VydmVyRXJyb3InLiBJ
dCBpcyB1cCB0byB0aGUgZnJvbnRlbmQgd2hldGhlciBhbmQgaG93IHRvIGRlYWwgd2l0aCBlcnJv
cnMuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwotICAgICAgICAgICAgICAgICJJbnRlcm5hbEVy
cm9yIiwKLSAgICAgICAgICAgICAgICAiVGltZW91dCIsCi0gICAgICAgICAgICAgICAgIkphdmFT
Y3JpcHRFcnJvciIsCi0gICAgICAgICAgICAgICAgIkphdmFTY3JpcHRUaW1lb3V0IiwKLSAgICAg
ICAgICAgICAgICAiV2luZG93Tm90Rm91bmQiLAotICAgICAgICAgICAgICAgICJGcmFtZU5vdEZv
dW5kIiwKLSAgICAgICAgICAgICAgICAiTm9kZU5vdEZvdW5kIiwKLSAgICAgICAgICAgICAgICAi
SW52YWxpZEVsZW1lbnRTdGF0ZSIsCi0gICAgICAgICAgICAgICAgIk5vSmF2YVNjcmlwdERpYWxv
ZyIsCi0gICAgICAgICAgICAgICAgIk5vdEltcGxlbWVudGVkIiwKLSAgICAgICAgICAgICAgICAi
TWlzc2luZ1BhcmFtZXRlciIsCi0gICAgICAgICAgICAgICAgIkludmFsaWRQYXJhbWV0ZXIiCi0g
ICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJC
cm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJBIGhhbmRsZSByZXByZXNlbnRpbmcgYW4gb3BlbiB3aW5kb3cg
b3IgdGFiIGluIHRoZSBhdXRvbWF0aW9uIHNlc3Npb24uIiwKLSAgICAgICAgICAgICJwcm9wZXJ0
aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIk9wYXF1ZSBoYW5kbGUgZm9yIGEg
YnJvd3NpbmcgY29udGV4dCAod2luZG93IG9yIHRhYikuIFVzZWQgYXMgYSBrZXkgZm9yIHdpbmRv
dy1yZWxhdGVkIGNvbW1hbmRzLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFjdGl2
ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0aGUgYnJvd3Np
bmcgY29udGV4dCBoYXMgZm9jdXMgYXQgdGhlIHRpbWUgdGhlIGNvbW1hbmQgaXMgaGFuZGxlZC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIFVSTCBsb2FkZWQgYnkgdGhlIGJyb3dzaW5nIGNvbnRleHQgYXQg
dGhlIHRpbWUgdGhlIGNvbW1hbmQgaXMgaGFuZGxlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ3aW5kb3dTaXplIiwgIiRyZWYiOiAiU2l6ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
Y3VycmVudCBzaXplIG9mIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIndpbmRvd09yaWdpbiIsICIkcmVmIjogIlBvaW50IiwgImRl
c2NyaXB0aW9uIjogIlRoZSBjdXJyZW50ICh4LCB5KSBwb3NpdGlvbiBvZiB0aGUgYnJvd3Npbmcg
Y29udGV4dCdzIHdpbmRvdyByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgb2YgdGhlIHNjcmVlbi4i
IH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlk
IjogIk1vdXNlSW50ZXJhY3Rpb24iLAotICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJhdGVzIGRpZmZlcmVudCB3YXlzIG9mIGlu
dGVyYWN0aW5nIHdpdGggYSBtb3VzZSBjdXJzb3IuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwot
ICAgICAgICAgICAgICAgICJNb3ZlIiwKLSAgICAgICAgICAgICAgICAiRG93biIsCi0gICAgICAg
ICAgICAgICAgIlVwIiwKLSAgICAgICAgICAgICAgICAiU2luZ2xlQ2xpY2siLAotICAgICAgICAg
ICAgICAgICJEb3VibGVDbGljayIKLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgImlkIjogIk1vdXNlQnV0dG9uIiwKLSAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJl
bnQgbW91c2UgYnV0dG9ucyB0aGF0IGNhbiBiZSB1c2VkLiIsCi0gICAgICAgICAgICAiZW51bSI6
IFsKLSAgICAgICAgICAgICAgICAiTm9uZSIsCi0gICAgICAgICAgICAgICAgIkxlZnQiLAotICAg
ICAgICAgICAgICAgICJNaWRkbGUiLAotICAgICAgICAgICAgICAgICJSaWdodCIKLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIktleU1vZGlm
aWVyIiwKLSAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQga2V5IG1vZGlmaWVycyB0aGF0IGNhbiByZW1h
aW4gcHJlc3NlZCBkdXJpbmcgb3RoZXIgbW91c2UvdG91Y2ggaW50ZXJhY3Rpb25zLiIsCi0gICAg
ICAgICAgICAiZW51bSI6IFsKLSAgICAgICAgICAgICAgICAiQ2Fwc0xvY2siLAotICAgICAgICAg
ICAgICAgICJDb250cm9sIiwKLSAgICAgICAgICAgICAgICAiU2hpZnQiLAotICAgICAgICAgICAg
ICAgICJNZXRhIiwKLSAgICAgICAgICAgICAgICAiQWx0IgotICAgICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiVmlydHVhbEtleSIsCi0gICAgICAg
ICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVudW1l
cmF0ZXMgZGlmZmVyZW50IHBsYXRmb3JtLWluZGVwZW5kZW50IHZpcnR1YWwga2V5cyBvbiBhIHBo
eXNpY2FsIGtleWJvYXJkIHdob3NlIGlucHV0IHZpYSBrZXlib2FyZCBtYXkgb3IgbWF5IG5vdCBw
cm9kdWNlIGNoYXJhY3RlcnMuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwotICAgICAgICAgICAg
ICAgICJTaGlmdCIsCi0gICAgICAgICAgICAgICAgIkNvbnRyb2wiLAotICAgICAgICAgICAgICAg
ICJBbHRlcm5hdGUiLAotICAgICAgICAgICAgICAgICJNZXRhIiwKLSAgICAgICAgICAgICAgICAi
Q29tbWFuZCIsCi0gICAgICAgICAgICAgICAgIkNhbmNlbCIsCi0gICAgICAgICAgICAgICAgIkhl
bHAiLAotICAgICAgICAgICAgICAgICJCYWNrc3BhY2UiLAotICAgICAgICAgICAgICAgICJUYWIi
LAotICAgICAgICAgICAgICAgICJDbGVhciIsCi0gICAgICAgICAgICAgICAgIkVudGVyIiwKLSAg
ICAgICAgICAgICAgICAiUGF1c2UiLAotICAgICAgICAgICAgICAgICJFc2NhcGUiLAotICAgICAg
ICAgICAgICAgICJQYWdlVXAiLAotICAgICAgICAgICAgICAgICJQYWdlRG93biIsCi0gICAgICAg
ICAgICAgICAgIkVuZCIsCi0gICAgICAgICAgICAgICAgIkhvbWUiLAotICAgICAgICAgICAgICAg
ICJMZWZ0QXJyb3ciLAotICAgICAgICAgICAgICAgICJVcEFycm93IiwKLSAgICAgICAgICAgICAg
ICAiUmlnaHRBcnJvdyIsCi0gICAgICAgICAgICAgICAgIkRvd25BcnJvdyIsCi0gICAgICAgICAg
ICAgICAgIkluc2VydCIsCi0gICAgICAgICAgICAgICAgIkRlbGV0ZSIsCi0gICAgICAgICAgICAg
ICAgIlNwYWNlIiwKLSAgICAgICAgICAgICAgICAiU2VtaWNvbG9uIiwKLSAgICAgICAgICAgICAg
ICAiRXF1YWxzIiwKLSAgICAgICAgICAgICAgICAiUmV0dXJuIiwKLSAgICAgICAgICAgICAgICAi
TnVtYmVyUGFkMCIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZDEiLAotICAgICAgICAgICAg
ICAgICJOdW1iZXJQYWQyIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkMyIsCi0gICAgICAg
ICAgICAgICAgIk51bWJlclBhZDQiLAotICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ1IiwKLSAg
ICAgICAgICAgICAgICAiTnVtYmVyUGFkNiIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZDci
LAotICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ4IiwKLSAgICAgICAgICAgICAgICAiTnVtYmVy
UGFkOSIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZE11bHRpcGx5IiwKLSAgICAgICAgICAg
ICAgICAiTnVtYmVyUGFkQWRkIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkU2VwYXJhdG9y
IiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkU3VidHJhY3QiLAotICAgICAgICAgICAgICAg
ICJOdW1iZXJQYWREZWNpbWFsIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkRGl2aWRlIiwK
LSAgICAgICAgICAgICAgICAiRnVuY3Rpb24xIiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb24y
IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb24zIiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rp
b240IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb241IiwKLSAgICAgICAgICAgICAgICAiRnVu
Y3Rpb242IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb243IiwKLSAgICAgICAgICAgICAgICAi
RnVuY3Rpb244IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb245IiwKLSAgICAgICAgICAgICAg
ICAiRnVuY3Rpb24xMCIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uMTEiLAotICAgICAgICAg
ICAgICAgICJGdW5jdGlvbjEyIgotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICAiaWQiOiAiS2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUiLAotICAgICAgICAg
ICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJh
dGVzIGRpZmZlcmVudCB3YXlzIG9mIGludGVyYWN0aW5nIHdpdGggYSBrZXlib2FyZCBkZXZpY2Uu
ICdJbnNlcnRCeUtleScgaW1wbGllcyB0aGF0IGEgc2VwYXJhdGUgS2V5RG93biBhbmQgS2V5VXAg
ZXZlbnQgYXJlIHByb2R1Y2VkIGZvciBlYWNoIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2Us
IHJlZ2FyZGxlc3Mgb2YgdGhlIGFjdHVhbCBrZXlzdHJva2VzIHJlcXVpcmVkIHRvIHByb2R1Y2Ug
dGhlIGNoYXJhY3RlciBzZXF1ZW5jZS4iLAotICAgICAgICAgICAgImVudW0iOiBbCi0gICAgICAg
ICAgICAgICAgIktleVByZXNzIiwKLSAgICAgICAgICAgICAgICAiS2V5UmVsZWFzZSIsCi0gICAg
ICAgICAgICAgICAgIkluc2VydEJ5S2V5IgotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiS2V5Ym9hcmRJbnRlcmFjdGlvbiIsCi0gICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc2lu
Z2xlIHN0ZXAgaW4gYSBrZXkgc2VxdWVuY2UuIEEgc3RlcCBjYW4gY29udGFpbiBhIGtleSB1cC9k
b3duIG9mIGEgdmlydHVhbCBrZXksIG9yIGEgc2VxdWVuY2Ugb2YgVW5pY29kZSBjb2RlIHBvaW50
cyB0aGF0IGFyZSBkZWxpdmVyZWQgdG8gdGhlIHBhZ2UgYXQgZ3JhcGhlbWUgY2x1c3RlciBib3Vu
ZGFyaWVzLiBFaXRoZXIgYSAna2V5JyBvciAndGV4dCcgcHJvcGVydHkgbXVzdCBiZSBzcGVjaWZp
ZWQuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidHlwZSIsICIkcmVmIjogIktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIiwgImRlc2NyaXB0
aW9uIjogIlRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCBieSBhIHN0ZXAu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5IiwgIiRyZWYiOiAiVmlydHVhbEtl
eSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJBIHZpcnR1YWwga2V5IHRvIGJl
IHVzZWQgdG8gcGVyZm9ybSB0aGUgc3BlY2lmaWVkIGludGVyYWN0aW9uLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQSB1bmljb2RlIHN0cmluZyB0byBiZSBkZWxpdmVyZWQgdG8g
dGhlIHBhZ2UuIFRoZSBzZXF1ZW5jZSBvZiBrZXkgZXZlbnRzIGlzIGRldGVybWluZWQgYnkgc3Bs
aXR0aW5nIHRoZSBzdHJpbmcgYXQgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLiIgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ29v
a2llIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAicHJvcGVy
dGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIG5hbWUuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2ll
IHZhbHVlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbiIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUgZG9tYWluLiBJZiBlbXB0eSwgdGhlIGRv
bWFpbiBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgcmVsZXZhbnQgYnJvd3NpbmcgY29udGV4dC4iIH0s
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXRoIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIkNvb2tpZSBwYXRoLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImV4cGlyZXMiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIGV4cGly
YXRpb24gaW4gc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzaXplIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJD
b29raWUgc2l6ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJodHRwT25seSIsICJ0
eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiBjb29raWUgaXMgaHR0cC1v
bmx5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlY3VyZSIsICJ0eXBlIjogImJv
b2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiBjb29raWUgaXMgc2VjdXJlLiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNlc3Npb24iLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUgaW4gY2FzZSBvZiBzZXNzaW9uIGNvb2tpZS4iIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfQotICAgIF0sCi0gICAgImNvbW1hbmRzIjogWwotICAgICAgICB7Ci0g
ICAgICAgICAgICAibmFtZSI6ICJnZXRCcm93c2luZ0NvbnRleHRzIiwKLSAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJGZXRjaGVzIGluZm9ybWF0aW9uIGFib3V0IGFsbCBvcGVuIGJyb3dzaW5n
IGNvbnRleHRzICh3aW5kb3dzIGFuZCB0YWJzKSBpbiB0aGUgYXV0b21hdGlvbiBzZXNzaW9uLiIs
Ci0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNv
bnRleHRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkJyb3dzaW5nQ29u
dGV4dCIgfSwgImRlc2NyaXB0aW9uIjogIkFsbCBrbm93biBicm93c2luZyBjb250ZXh0cyBhdmFp
bGFibGUgdG8gdGhlIHNlc3Npb24uIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImdldEJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRmV0Y2hlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lm
aWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY29udGV4dCIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dCIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgYnJvd3NpbmcgY29udGV4dCBhdmFpbGFibGUgdG8gdGhlIHNl
c3Npb24uIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogImNyZWF0ZUJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiT3BlbnMgYSBuZXcgYnJvd3NpbmcgY29udGV4dCBpbiB0aGUgYXV0b21hdGlvbiBz
ZXNzaW9uIGFuZCBtYWtlcyBpdCB0aGUgYWN0aXZlIGJyb3dzaW5nIGNvbnRleHQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIFRoaXMgY29tbWFuZCBjcmVhdGVzIGEgYnJvd3NpbmcgY29udGV4dCBpbiBh
IG5ldyB3aW5kb3cgcmF0aGVyIHRoYW4gYWRkaW5nIGEgdGFiIHRvIGFuIGV4aXN0aW5nIHdpbmRv
dy4iLAotICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24i
OiAiQW4gb3BhcXVlIGhhbmRsZSBmb3IgdGhlIG5ld2x5IGNyZWF0ZWQgYnJvd3NpbmcgY29udGV4
dC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
Im5hbWUiOiAiY2xvc2VCcm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlRyeSB0byBjbG9zZSB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIFRoaXMgY2Fu
IHRyaWdnZXIgYW4gdW5sb2FkIHByb21wdCBhbmQgdGhlcmVhZnRlciBzdWNjZWVkIG9yIGZhaWwu
IiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGNs
b3NlZC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICAgIm5hbWUiOiAic3dpdGNoVG9Ccm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkFjdGl2YXRlcyB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgYW5kIG9w
dGlvbmFsIGZyYW1lLCB3aGljaCBnaXZlcyB0aGVtIGZvY3VzIChjYXVzaW5nIHRoZSAnZm9jdXMn
IERPTSBldmVudCB0byBmaXJlLCBhbmQgJ2JsdXInIERPTSBldmVudCB0byBmaXJlIGZvciB0aGUg
cHJldmlvdXMgYnJvd3NpbmcgY29udGV4dCBhbmQgZnJhbWUpLiIsCi0gICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBtYWRlIGZv
Y3VzZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJl
ZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgZnJhbWUgdGhhdCBzaG91bGQgYmUgZm9jdXNlZC4gRGVmYXVsdHMgdG8g
dGhlIG1haW4gZnJhbWUgaWYgb21pdHRlZC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmVzaXplV2luZG93T2ZCcm93c2luZ0Nv
bnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZXMgdGhlIHdpbmRvdyBv
ZiB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdG8gdGhlIHNwZWNpZmllZCBzaXplLiIs
Ci0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6
ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byBiZSByZXNpemVkLiIgfSwK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJTaXplIiwgImRlc2Ny
aXB0aW9uIjogIlRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3aW5kb3cu
IiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJu
YW1lIjogIm1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiTW92ZXMgdGhlIHdpbmRvdyBvZiB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRl
eHQgdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dz
aW5nIGNvbnRleHQgdG8gYmUgbW92ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
b3JpZ2luIiwgIiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBvcmlnaW4g
Zm9yIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiBUaGUgcG9zaXRpb24gaXMgaW50ZXJw
cmV0ZWQgaW4gc2NyZWVuIGNvb3JkaW5hdGUgc3BhY2UsIHJlbGF0aXZlIHRvIHRoZSB1cHBlciBs
ZWZ0IGNvcm5lciBvZiB0aGUgc2NyZWVuLiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dCIs
Ci0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdhdGVzIGEgYnJvd3NpbmcgY29udGV4
dCB0byBhIHNwZWNpZmllZCBVUkwuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIFVSTCB0byBs
b2FkIGluIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5h
bWUiOiAiZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIk5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgdG8gZ28gYmFjayBvbmUgcGFnZSBpbiBo
aXN0b3J5LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3Vs
ZCBiZSBuYXZpZ2F0ZWQuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjog
dHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJnb0Zvcndh
cmRJbkJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdh
dGVzIGEgYnJvd3NpbmcgY29udGV4dCB0byBnb3QgZm9yd2FyZCBvbmUgcGFnZSBpbiBoaXN0b3J5
LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBu
YXZpZ2F0ZWQuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJyZWxvYWRCcm93c2lu
Z0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlbG9hZHMgdGhlIGN1cnJl
bnQgcGFnZSBpbiBhIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93
c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIHJlbG9hZGVkLiIgfQotICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICAgIm5hbWUiOiAiaW5zcGVjdEJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiSW5zcGVjdCB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdXNpbmcg
V2ViIEluc3BlY3Rvci4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUi
LCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhh
dCBzaG91bGQgYmUgaW5zcGVjdGVkLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVu
YWJsZUF1dG9DYXB0dXJpbmciLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIklmIHRoaXMgb3B0aW9uIGlzIHByZXNlbnQgYW5kIHNldCB0byB0cnVl
LCB0aGUgV2ViIEluc3BlY3RvciB3aWxsIGF1dG9tYXRpY2FsbHkgc3RhcnQgYSB0aW1lbGluZSBy
ZWNvcmRpbmcgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IG9uY2UgaXQgaXMgYXR0
YWNoZWQuIE5vdGUgdGhhdCB0aGlzIGRpc2FibGVzIHRoZSBkZWJ1Z2dlciBmb3IgdGhlIGR1cmF0
aW9uIG9mIHRoZSByZWNvcmRpbmcuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFz
eW5jIjogdHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJl
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RXZhbHVhdGVzIGEgc2NyaXB0IGZ1bmN0aW9uIGluIGEgYnJvd3NpbmcgY29udGV4dCBhbmQgY2Fs
bHMgaXQgd2l0aCB0aGUgc3VwcGxpZWQgYXJndW1lbnRzLiIsCi0gICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGUgc2NyaXB0IHNob3VsZCBiZSBldmFs
dWF0ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJl
ZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgZnJhbWUgdGhlIHNjcmlwdCBzaG91bGQgYmUgZXZhbHVhdGVkLiBUaGUg
bWFpbiBmcmFtZSBpcyB1c2VkIGlmIHRoaXMgcGFyYW1ldGVyIGVtcHR5IHN0cmluZyBvciBleGNs
dWRlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlvbiIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc2NyaXB0IHRvIGV2YWx1YXRlIGluIHRoZSBi
cm93c2luZyBjb250ZXh0LiBJdCBtdXN0IGJlIGEgZnVuY3Rpb24gcmVzdWx0LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6ICJUaGUgYXJndW1lbnRzIHRv
IHBhc3MgdG8gdGhlIGZ1bmN0aW9uIHdoZW4gY2FsbGVkLiBUaGV5IHdpbGwgYmUgcGFyc2VkIGFz
IEpTT04gYmVmb3JlIGNhbGxpbmcgdGhlIGZ1bmN0aW9uLiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBmdW5jdGlvbiBleHBl
Y3RzIGEgY2FsbGJhY2sgZnVuY3Rpb24gYXMgdGhlIGxhc3QgYXJndW1lbnQuIEl0IGlzIGV4cGVj
dGVkIHRvIGNhbGwgdGhpcyBjYWxsYmFjayB3aXRoIGEgcmVzdWx0LiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNhbGxiYWNrVGltZW91dCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRz
IHRoYXQgdGhlIGltcGxpY2l0IGNhbGxiYWNrIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBpbiwg
b3RoZXJ3aXNlIGEgPGNvZGU+SmF2YVNjcmlwdFRpbWVvdXQ8L2NvZGU+IGVycm9yIGlzIHJldHVy
bmVkLiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGNhbGxlZCBmdW5jdGlvbi4gSXQgaXMg
SlNPTiBlbmNvZGVkIGFmdGVyIHRoZSBmdW5jdGlvbiByZXR1cm5zIG9yIGNhbGxzIHRoZSBjYWxs
YmFjay4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInBlcmZvcm1Nb3VzZUludGVy
YWN0aW9uIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTaW11bGF0ZXMgaW50ZXJhY3Rp
b24gd2l0aCBhIG1vdXNlIGN1cnNvci4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgaW50
ZXJhY3RlZCB3aXRoLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBvc2l0aW9uIiwg
IiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlcXVlc3RlZCBwb3NpdGlvbiBm
b3IgdGhlIG1vdXNlIGN1cnNvciwgc3BlY2lmaWVkIGluIHZpZXdwb3J0IGNvb3JkaW5hdGVzLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJ1dHRvbiIsICIkcmVmIjogIk1vdXNlQnV0
dG9uIiwgImRlc2NyaXB0aW9uIjogIlRoZSBidXR0b24gdG8gdXNlIHRvIHBlcmZvcm0gdGhlIGlu
dGVyYWN0aW9uLiBUaGlzIHBhcmFtZXRlciBvbmx5IGhhcyBhbiBlZmZlY3QgZm9yIHRoZSA8Y29k
ZT5Eb3duPC9jb2RlPiwgPGNvZGU+VXA8L2NvZGU+LCA8Y29kZT5DbGljazwvY29kZT4sIGFuZCA8
Y29kZT5Eb3VibGVDbGljazwvY29kZT4gbW91c2UgaW50ZXJhY3Rpb25zLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImludGVyYWN0aW9uIiwgIiRyZWYiOiAiTW91c2VJbnRlcmFjdGlv
biIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB0byBiZSBwZXJmb3Jt
ZWQgd2l0aCB0aGUgbW91c2UgY3Vyc29yLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im1vZGlmaWVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJLZXlNb2Rp
ZmllciIgfSwgImRlc2NyaXB0aW9uIjogIktleSBtb2RpZmllcnMgdG8gYmUgYWN0aXZlIGR1cmlu
ZyB0aGUgbW91c2UgaW50ZXJhY3Rpb24uIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAg
InJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwb3NpdGlvbiIsICIkcmVm
IjogIlBvaW50IiwgImRlc2NyaXB0aW9uIjogIlRoZSB1cGRhdGVkIHBvc2l0aW9uIG9mIHRoZSBt
b3VzZSBjdXJzb3IsIHNwZWNpZmllZCBpbiB2aWV3cG9ydCBjb29yZGluYXRlcy4iIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicGVy
Zm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJT
aW11bGF0ZXMgZGVsaXZlcmluZyB0aGUgcmVzdWx0cyBvZiBwcmVzc2luZyBvbmUgb3IgbW9yZSBr
ZXlib2FyZCBrZXlzIHRvZ2V0aGVyIG9yIHN1Y2Nlc3NpdmVseS4iLAotICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6
ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3Ig
dGhlIGJyb3dzaW5nIGNvbnRleHQgd2hpY2ggc2hvdWxkIHJlY2VpdmUga2V5LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImludGVyYWN0aW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0
ZW1zIjogeyAiJHJlZiI6ICJLZXlib2FyZEludGVyYWN0aW9uIiB9LCAiZGVzY3JpcHRpb24iOiAi
QW4gb3JkZXJlZCBsaXN0IG9mIGtleSBzZXF1ZW5jZXMgdG8gYmUgZGVsaXZlcmVkIHVzaW5nIG5h
dGl2ZSBrZXkgZXZlbnRzLiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6
IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAidGFrZVNj
cmVlbnNob3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRha2UgYSBzY3JlZW5zaG90
IG9mIHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCi0gICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIk
cmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxl
IGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4iIH0KLSAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImRhdGEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQmFzZTY0
LWVuY29kZWQgaW1hZ2UgZGF0YSAoUE5HKS4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1l
IjogInJlc29sdmVDaGlsZEZyYW1lSGFuZGxlIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEZXRlcm1pbmVzIHRoZSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4gYmFzZWQgb24gdGhlIG9y
ZGluYWwsIG5hbWUgb3Igbm9kZSBoYW5kbGUgb2YgYSBjaGlsZCBmcmFtZS4iLAotICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgaW4gd2hpY2ggdG8gc2Vh
cmNoIGZvciB0aGUgZnJhbWUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVI
YW5kbGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgZnJhbWUgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0
aGUgZnJhbWUuIFRoZSBtYWluIGZyYW1lIGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0ZXIgZW1wdHkg
c3RyaW5nIG9yIGV4Y2x1ZGVkLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yZGlu
YWwiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlRoZSBvcmRpbmFsIG9mIHRoZSBjaGlsZCBmcmFtZSB0byByZXNvbHZlIGFzIGEgPGNvZGU+RnJh
bWVIYW5kbGU8L2NvZGU+LiBUaGlzIGlzIGFuYWxvZ291cyB0byAnd2luZG93LmZyYW1lc1tvcmRp
bmFsXScgaW4gSmF2YVNjcmlwdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1l
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRo
ZSBuYW1lIG9mIHRoZSBjaGlsZCBmcmFtZSB0byByZXNvbHZlIGFzIGEgPGNvZGU+RnJhbWVIYW5k
bGU8L2NvZGU+LiBUaGlzIGlzIGFuYWxvZ291cyB0byAnd2luZG93LmZyYW1lc1tuYW1lXScgaW4g
SmF2YVNjcmlwdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSGFuZGxlIiwg
IiRyZWYiOiAiTm9kZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJU
aGUgaGFuZGxlIG9mIHRoZSBjaGlsZCBmcmFtZSBvd25lciBlbGVtZW50IHRvIHJlc29sdmUgYXMg
YSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJl
ZiI6ICJGcmFtZUhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgPGNvZGU+RnJhbWVIYW5kbGU8
L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGZyYW1lLiIgfQotICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
Im5hbWUiOiAicmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlIiwKLSAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEZXRlcm1pbmVzIHRoZSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4gZm9yIHRoZSBw
YXJlbnQgZnJhbWUgb2YgdGhlIHN1cHBsaWVkIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4iLAot
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJi
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhlIGZy
YW1lIGlzIGxvY2F0ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5k
bGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgZnJhbWUgdGhhdCBzaG91bGQgcmVzb2x2ZSBpdHMgcGFyZW50IGZyYW1lLiIgfQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVzdWx0IiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBmcmFtZS4iIH0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImNvbXB1dGVFbGVtZW50TGF5b3V0IiwKLSAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wdXRlcyB0aGUgbGF5b3V0IGZvciBhbiBlbGVt
ZW50LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dCB0aGUgZnJhbWUgaXMgbG9jYXRlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBo
YW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIHRoZSBlbGVtZW50LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVIYW5kbGUiLCAiJHJlZiI6ICJOb2RlSGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgb2YgdGhlIGVsZW1lbnQgdG8gdXNlLiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCAib3B0aW9u
YWwiOiB0cnVlLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBlbGVt
ZW50IHNob3VsZCBiZSBzY3JvbGxlZCBpbnRvIHZpZXcgYmVmb3JlIGNvbXB1dGluZyBpdHMgbGF5
b3V0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZVZpZXdwb3J0Q29vcmRpbmF0
ZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjog
IklmIHRoZSByZXN1bHQgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIHJlcHJlc2VudGVkIGFzIHZpZXdw
b3J0IGNvb3JkaW5hdGVzIG9yIG5vdC4gRGVmYXVsdHMgdG8gZmFsc2UsIHdoaWNoIG1lYW5zIGNv
b3JkaW5hdGVzIHNob3VsZCBiZSByZXByZXNlbnRlZCBhcyBwYWdlIGNvb3JkaW5hdGVzLiIgfQot
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicmVjdCIsICIkcmVmIjogIlJlY3QiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGxh
eW91dCByZWN0IGZvciB0aGUgcmVxdWVzdGVkIGVsZW1lbnQuIFNwZWNpZmllZCBpbiBwYWdlIG9y
IHZpZXdwb3J0IGNvb3JkaW5hdGVzIGJhc2VkIG9uIHRoZSB1c2VWaWV3cG9ydENvb3JkaW5hdGVz
IHBhcmFtZXRlci4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVl
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImlzU2hvd2luZ0ph
dmFTY3JpcHREaWFsb2ciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiBh
IGJyb3dzaW5nIGNvbnRleHQgaXMgc2hvd2luZyBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0s
IG9yIHByb21wdCBkaWFsb2cuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBi
cm93c2luZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5z
IjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVh
biIsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBzaG93aW5nIGEg
SmF2YVNjcmlwdCBkaWFsb2cgb3Igbm90LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkaXNtaXNzQ3VycmVudEphdmFTY3JpcHRE
aWFsb2ciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc21pc3NlcyBhIEphdmFTY3Jp
cHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4g
YSBicm93c2luZyBjb250ZXh0LiBFcXVpdmFsZW50IHRvIGNsaWNraW5nIHRoZSAnQ2FuY2VsJyBi
dXR0b24uIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAibmFtZSI6ICJhY2NlcHRDdXJyZW50SmF2YVNjcmlwdERpYWxvZyIsCi0gICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQWNjZXB0cyBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHBy
b21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiBFcXVp
dmFsZW50IHRvIGNsaWNraW5nIHRoZSAnT0snIGJ1dHRvbi4iLAotICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9Ci0gICAgICAgICAgICBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogIm1lc3NhZ2VPZkN1cnJlbnRK
YXZhU2NyaXB0RGlhbG9nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRo
ZSB0ZXh0IGRpc3BsYXllZCBpbiBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21w
dCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCi0gICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dz
aW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm1lc3NhZ2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGV4dCBi
ZWluZyBkaXNwbGF5ZWQgaW4gdGhlIGN1cnJlbnQgSmF2YVNjcmlwdCBkaWFsb2cuIiB9Ci0gICAg
ICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInNl
dFVzZXJJbnB1dEZvckN1cnJlbnRKYXZhU2NyaXB0UHJvbXB0IiwKLSAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJTZXRzIHRoZSB1c2VyIGVudGVyZWQgdmFsdWUgaW4gYSBKYXZhU2NyaXB0IHBy
b21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCi0g
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJy
b3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1c2VySW5wdXQiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIHRleHQgdG8gZW50ZXIgaW4gdGhlIHByb21wdC4iIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZ2V0
QWxsQ29va2llcyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgY29v
a2llcyB2aXNpYmxlIHRvIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAotICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9Ci0gICAgICAg
ICAgICBdLAotICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJjb29raWVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNvb2tp
ZSIgfSwgImRlc2NyaXB0aW9uIjogIkFycmF5IG9mIGNvb2tpZSBvYmplY3RzLiIgfQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgIm5hbWUiOiAiZGVsZXRlU2luZ2xlQ29va2llIiwKLSAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJEZWxldGVzIGEgY29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgaWYg
dmlzaWJsZSB0byB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250
ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNvb2tpZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiTmFtZSBvZiB0aGUgY29va2llIHRvIHJlbW92ZS4iIH0KLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogImFkZFNpbmdsZUNvb2tpZSIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWRkIGEgY29va2llIHRvIGNvb2tpZSBzdG9yYWdlIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdD
b250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2lu
ZyBjb250ZXh0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZSIsICIkcmVm
IjogIkNvb2tpZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY29va2llIHRoYXQgc2hvdWxkIGJlIGFk
ZGVkIHRvIHN0b3JhZ2UuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjog
dHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkZWxldGVB
bGxDb29raWVzIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWxldGUgYWxsIGNvb2tp
ZXMgdGhhdCBhcmUgdmlzaWJsZSB0byB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwK
LSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQot
ICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVkOWZkODI4Yjg0ODc5NjgwYmFkOGRiOWNmMTE4YWNkNTVlNmQ2MzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24u
aW4KQEAgLTAsMCArMSw0NzkgQEAKK3sKKyAgICAiZG9tYWluIjogIkF1dG9tYXRpb24iLAorICAg
ICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aW9uIGRvbWFpbiBleHBvc2VzIGNvbW1hbmRzIGZvciBh
dXRvbWF0aW5nIHVzZXIgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGJyb3dzZXIuIiwKKyAgICAidHlw
ZXMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJQb2ludCIsCisgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ4IiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAieSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiU2l6ZSIsCisgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiUmVjdCIsCisg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAiJHJlZiI6ICJQb2ludCIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJTaXplIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgYSBicm93c2lu
ZyBjb250ZXh0LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkZy
YW1lSGFuZGxlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIGEgZnJhbWUgaW4gYSBwYWdl
LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIk5vZGVIYW5kbGUi
LAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgYSBub2RlIGluIGEgcGFnZS4iCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJFcnJvck1lc3NhZ2UiLAorICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlz
IGVudW0gY29udGFpbnMgcHJlZGVmaW5lZCBlcnJvciBtZXNzYWdlcyB0aGF0IGNhbiBiZSB1c2Vk
IHRvIHNpZ25hbCBhIHdlbGwtZGVmaW5lZCBlcnJvciBjb25kaXRpb24sIHN1Y2ggYXMgYSBtaXNz
aW5nIGltcGxlbWVudGF0aW9uLCB1bmtub3duIHdpbmRvdyBoYW5kbGUsIGFuZCBzbyBmb3J0aC4g
VGhlIGJhY2tlbmQgc2lnbmFscyBvbmUgb2YgdGhlc2UgZXJyb3JzIGJ5IHVzaW5nIGl0IGFzIGEg
cHJlZml4IG9mIHRoZSBjb21tYW5kcydzIGVycm9yIG1lc3NhZ2UgKHRoZSBlcnJvclN0cmluZyBh
cmd1bWVudCBpbiBnZW5lcmF0ZWQgQysrIGJhY2tlbmQgZGlzcGF0Y2hlcnMpLiBUaGlzIHdpbGwg
YmUgcmVwb3J0ZWQgdG8gdGhlIGZyb250ZW5kIGFzIGEgcHJvdG9jb2wgZXJyb3Igd2l0aCBhIEpT
T04tUlBDIGVycm9yIGNvZGUgb2YgJ1NlcnZlckVycm9yJy4gSXQgaXMgdXAgdG8gdGhlIGZyb250
ZW5kIHdoZXRoZXIgYW5kIGhvdyB0byBkZWFsIHdpdGggZXJyb3JzLiIsCisgICAgICAgICAgICAi
ZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiSW50ZXJuYWxFcnJvciIsCisgICAgICAgICAgICAg
ICAgIlRpbWVvdXQiLAorICAgICAgICAgICAgICAgICJKYXZhU2NyaXB0RXJyb3IiLAorICAgICAg
ICAgICAgICAgICJKYXZhU2NyaXB0VGltZW91dCIsCisgICAgICAgICAgICAgICAgIldpbmRvd05v
dEZvdW5kIiwKKyAgICAgICAgICAgICAgICAiRnJhbWVOb3RGb3VuZCIsCisgICAgICAgICAgICAg
ICAgIk5vZGVOb3RGb3VuZCIsCisgICAgICAgICAgICAgICAgIkludmFsaWRFbGVtZW50U3RhdGUi
LAorICAgICAgICAgICAgICAgICJOb0phdmFTY3JpcHREaWFsb2ciLAorICAgICAgICAgICAgICAg
ICJOb3RJbXBsZW1lbnRlZCIsCisgICAgICAgICAgICAgICAgIk1pc3NpbmdQYXJhbWV0ZXIiLAor
ICAgICAgICAgICAgICAgICJJbnZhbGlkUGFyYW1ldGVyIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQnJvd3NpbmdDb250ZXh0IiwKKyAg
ICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
QSBoYW5kbGUgcmVwcmVzZW50aW5nIGFuIG9wZW4gd2luZG93IG9yIHRhYiBpbiB0aGUgYXV0b21h
dGlvbiBzZXNzaW9uLiIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIs
ICJkZXNjcmlwdGlvbiI6ICJPcGFxdWUgaGFuZGxlIGZvciBhIGJyb3dzaW5nIGNvbnRleHQgKHdp
bmRvdyBvciB0YWIpLiBVc2VkIGFzIGEga2V5IGZvciB3aW5kb3ctcmVsYXRlZCBjb21tYW5kcy4i
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhY3RpdmUiLCAidHlwZSI6ICJib29sZWFu
IiwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIGJyb3dzaW5nIGNvbnRleHQgaGFzIGZvY3Vz
IGF0IHRoZSB0aW1lIHRoZSBjb21tYW5kIGlzIGhhbmRsZWQuIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBV
UkwgbG9hZGVkIGJ5IHRoZSBicm93c2luZyBjb250ZXh0IGF0IHRoZSB0aW1lIHRoZSBjb21tYW5k
IGlzIGhhbmRsZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2luZG93U2l6ZSIs
ICIkcmVmIjogIlNpemUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGN1cnJlbnQgc2l6ZSBvZiB0aGUg
YnJvd3NpbmcgY29udGV4dCdzIHdpbmRvdy4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ3aW5kb3dPcmlnaW4iLCAiJHJlZiI6ICJQb2ludCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY3Vy
cmVudCAoeCwgeSkgcG9zaXRpb24gb2YgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3aW5kb3cgcmVs
YXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBzY3JlZW4uIiB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJNb3VzZUludGVyYWN0aW9u
IiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgd2F5cyBvZiBpbnRlcmFjdGluZyB3aXRoIGEgbW91
c2UgY3Vyc29yLiIsCisgICAgICAgICAgICAiZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiTW92
ZSIsCisgICAgICAgICAgICAgICAgIkRvd24iLAorICAgICAgICAgICAgICAgICJVcCIsCisgICAg
ICAgICAgICAgICAgIlNpbmdsZUNsaWNrIiwKKyAgICAgICAgICAgICAgICAiRG91YmxlQ2xpY2si
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJNb3VzZUJ1dHRvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMgZGlmZmVyZW50IG1vdXNlIGJ1dHRvbnMgdGhh
dCBjYW4gYmUgdXNlZC4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAg
Ik5vbmUiLAorICAgICAgICAgICAgICAgICJMZWZ0IiwKKyAgICAgICAgICAgICAgICAiTWlkZGxl
IiwKKyAgICAgICAgICAgICAgICAiUmlnaHQiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJLZXlNb2RpZmllciIsCisgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMg
ZGlmZmVyZW50IGtleSBtb2RpZmllcnMgdGhhdCBjYW4gcmVtYWluIHByZXNzZWQgZHVyaW5nIG90
aGVyIG1vdXNlL3RvdWNoIGludGVyYWN0aW9ucy4iLAorICAgICAgICAgICAgImVudW0iOiBbCisg
ICAgICAgICAgICAgICAgIkNhcHNMb2NrIiwKKyAgICAgICAgICAgICAgICAiQ29udHJvbCIsCisg
ICAgICAgICAgICAgICAgIlNoaWZ0IiwKKyAgICAgICAgICAgICAgICAiTWV0YSIsCisgICAgICAg
ICAgICAgICAgIkFsdCIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImlkIjogIlZpcnR1YWxLZXkiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJhdGVzIGRpZmZlcmVudCBwbGF0
Zm9ybS1pbmRlcGVuZGVudCB2aXJ0dWFsIGtleXMgb24gYSBwaHlzaWNhbCBrZXlib2FyZCB3aG9z
ZSBpbnB1dCB2aWEga2V5Ym9hcmQgbWF5IG9yIG1heSBub3QgcHJvZHVjZSBjaGFyYWN0ZXJzLiIs
CisgICAgICAgICAgICAiZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiU2hpZnQiLAorICAgICAg
ICAgICAgICAgICJDb250cm9sIiwKKyAgICAgICAgICAgICAgICAiQWx0ZXJuYXRlIiwKKyAgICAg
ICAgICAgICAgICAiTWV0YSIsCisgICAgICAgICAgICAgICAgIkNvbW1hbmQiLAorICAgICAgICAg
ICAgICAgICJDYW5jZWwiLAorICAgICAgICAgICAgICAgICJIZWxwIiwKKyAgICAgICAgICAgICAg
ICAiQmFja3NwYWNlIiwKKyAgICAgICAgICAgICAgICAiVGFiIiwKKyAgICAgICAgICAgICAgICAi
Q2xlYXIiLAorICAgICAgICAgICAgICAgICJFbnRlciIsCisgICAgICAgICAgICAgICAgIlBhdXNl
IiwKKyAgICAgICAgICAgICAgICAiRXNjYXBlIiwKKyAgICAgICAgICAgICAgICAiUGFnZVVwIiwK
KyAgICAgICAgICAgICAgICAiUGFnZURvd24iLAorICAgICAgICAgICAgICAgICJFbmQiLAorICAg
ICAgICAgICAgICAgICJIb21lIiwKKyAgICAgICAgICAgICAgICAiTGVmdEFycm93IiwKKyAgICAg
ICAgICAgICAgICAiVXBBcnJvdyIsCisgICAgICAgICAgICAgICAgIlJpZ2h0QXJyb3ciLAorICAg
ICAgICAgICAgICAgICJEb3duQXJyb3ciLAorICAgICAgICAgICAgICAgICJJbnNlcnQiLAorICAg
ICAgICAgICAgICAgICJEZWxldGUiLAorICAgICAgICAgICAgICAgICJTcGFjZSIsCisgICAgICAg
ICAgICAgICAgIlNlbWljb2xvbiIsCisgICAgICAgICAgICAgICAgIkVxdWFscyIsCisgICAgICAg
ICAgICAgICAgIlJldHVybiIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZDAiLAorICAgICAg
ICAgICAgICAgICJOdW1iZXJQYWQxIiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkMiIsCisg
ICAgICAgICAgICAgICAgIk51bWJlclBhZDMiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ0
IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkNSIsCisgICAgICAgICAgICAgICAgIk51bWJl
clBhZDYiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ3IiwKKyAgICAgICAgICAgICAgICAi
TnVtYmVyUGFkOCIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZDkiLAorICAgICAgICAgICAg
ICAgICJOdW1iZXJQYWRNdWx0aXBseSIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZEFkZCIs
CisgICAgICAgICAgICAgICAgIk51bWJlclBhZFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAg
Ik51bWJlclBhZFN1YnRyYWN0IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkRGVjaW1hbCIs
CisgICAgICAgICAgICAgICAgIk51bWJlclBhZERpdmlkZSIsCisgICAgICAgICAgICAgICAgIkZ1
bmN0aW9uMSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uMiIsCisgICAgICAgICAgICAgICAg
IkZ1bmN0aW9uMyIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uNCIsCisgICAgICAgICAgICAg
ICAgIkZ1bmN0aW9uNSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uNiIsCisgICAgICAgICAg
ICAgICAgIkZ1bmN0aW9uNyIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uOCIsCisgICAgICAg
ICAgICAgICAgIkZ1bmN0aW9uOSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uMTAiLAorICAg
ICAgICAgICAgICAgICJGdW5jdGlvbjExIiwKKyAgICAgICAgICAgICAgICAiRnVuY3Rpb24xMiIK
KyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjog
IktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgd2F5cyBv
ZiBpbnRlcmFjdGluZyB3aXRoIGEga2V5Ym9hcmQgZGV2aWNlLiAnSW5zZXJ0QnlLZXknIGltcGxp
ZXMgdGhhdCBhIHNlcGFyYXRlIEtleURvd24gYW5kIEtleVVwIGV2ZW50IGFyZSBwcm9kdWNlZCBm
b3IgZWFjaCBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlLCByZWdhcmRsZXNzIG9mIHRoZSBh
Y3R1YWwga2V5c3Ryb2tlcyByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBjaGFyYWN0ZXIgc2VxdWVu
Y2UuIiwKKyAgICAgICAgICAgICJlbnVtIjogWworICAgICAgICAgICAgICAgICJLZXlQcmVzcyIs
CisgICAgICAgICAgICAgICAgIktleVJlbGVhc2UiLAorICAgICAgICAgICAgICAgICJJbnNlcnRC
eUtleSIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImlkIjogIktleWJvYXJkSW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNpbmdsZSBzdGVwIGluIGEga2V5IHNl
cXVlbmNlLiBBIHN0ZXAgY2FuIGNvbnRhaW4gYSBrZXkgdXAvZG93biBvZiBhIHZpcnR1YWwga2V5
LCBvciBhIHNlcXVlbmNlIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgdGhhdCBhcmUgZGVsaXZlcmVk
IHRvIHRoZSBwYWdlIGF0IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4gRWl0aGVyIGEgJ2tl
eScgb3IgJ3RleHQnIHByb3BlcnR5IG11c3QgYmUgc3BlY2lmaWVkLiIsCisgICAgICAgICAgICAi
cHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAiJHJlZiI6
ICJLZXlib2FyZEludGVyYWN0aW9uVHlwZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlwZSBvZiBp
bnRlcmFjdGlvbiB0byBiZSBwZXJmb3JtZWQgYnkgYSBzdGVwLiIgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImtleSIsICIkcmVmIjogIlZpcnR1YWxLZXkiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQSB2aXJ0dWFsIGtleSB0byBiZSB1c2VkIHRvIHBlcmZvcm0gdGhl
IHNwZWNpZmllZCBpbnRlcmFjdGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0
ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IkEgdW5pY29kZSBzdHJpbmcgdG8gYmUgZGVsaXZlcmVkIHRvIHRoZSBwYWdlLiBUaGUgc2VxdWVu
Y2Ugb2Yga2V5IGV2ZW50cyBpcyBkZXRlcm1pbmVkIGJ5IHNwbGl0dGluZyB0aGUgc3RyaW5nIGF0
IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkNvb2tpZSIsCisgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IkNvb2tpZSBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSB2YWx1ZS4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJkb21haW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiQ29va2llIGRvbWFpbi4gSWYgZW1wdHksIHRoZSBkb21haW4gaXMgaW5oZXJpdGVkIGZy
b20gdGhlIHJlbGV2YW50IGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicGF0aCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUg
cGF0aC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHBpcmVzIiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSBleHBpcmF0aW9uIGluIHNlY29uZHMgc2lu
Y2UgdGhlIFVOSVggZXBvY2guIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIs
ICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIHNpemUuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaHR0cE9ubHkiLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUgaWYgY29va2llIGlzIGh0dHAtb25seS4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzZWN1cmUiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9u
IjogIlRydWUgaWYgY29va2llIGlzIHNlY3VyZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzZXNzaW9uIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlu
IGNhc2Ugb2Ygc2Vzc2lvbiBjb29raWUuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAg
ICBdLAorICAgICJjb21tYW5kcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
Z2V0QnJvd3NpbmdDb250ZXh0cyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmV0Y2hl
cyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgb3BlbiBicm93c2luZyBjb250ZXh0cyAod2luZG93cyBh
bmQgdGFicykgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbi4iLAorICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0cyIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHQiIH0sICJkZXNjcmlwdGlv
biI6ICJBbGwga25vd24gYnJvd3NpbmcgY29udGV4dHMgYXZhaWxhYmxlIHRvIHRoZSBzZXNzaW9u
LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJnZXRCcm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkZldGNoZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbnRleHQiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHQiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGJyb3dzaW5nIGNvbnRleHQgYXZhaWxhYmxlIHRvIHRoZSBzZXNzaW9uLiIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJjcmVhdGVC
cm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9wZW5zIGEgbmV3
IGJyb3dzaW5nIGNvbnRleHQgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbiBhbmQgbWFrZXMgaXQg
dGhlIGFjdGl2ZSBicm93c2luZyBjb250ZXh0IGZvciB1c2VyIGludGVyYWN0aW9uLiBUaGlzIGNv
bW1hbmQgY3JlYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgaW4gYSBuZXcgd2luZG93IHJhdGhlciB0
aGFuIGFkZGluZyBhIHRhYiB0byBhbiBleGlzdGluZyB3aW5kb3cuIiwKKyAgICAgICAgICAgICJy
ZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAi
QnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBoYW5kbGUg
Zm9yIHRoZSBuZXdseSBjcmVhdGVkIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImNsb3NlQnJvd3Np
bmdDb250ZXh0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUcnkgdG8gY2xvc2UgdGhl
IHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0LiBUaGlzIGNhbiB0cmlnZ2VyIGFuIHVubG9hZCBw
cm9tcHQgYW5kIHRoZXJlYWZ0ZXIgc3VjY2VlZCBvciBmYWlsLiIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBjbG9zZWQuIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN3aXRjaFRv
QnJvd3NpbmdDb250ZXh0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBY3RpdmF0ZXMg
dGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IGFuZCBvcHRpb25hbCBmcmFtZSwgd2hpY2gg
Z2l2ZXMgdGhlbSBmb2N1cyAoY2F1c2luZyB0aGUgJ2ZvY3VzJyBET00gZXZlbnQgdG8gZmlyZSwg
YW5kICdibHVyJyBET00gZXZlbnQgdG8gZmlyZSBmb3IgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNv
bnRleHQgYW5kIGZyYW1lKS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJy
b3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbWFkZSBmb2N1c2VkLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1l
IHRoYXQgc2hvdWxkIGJlIGZvY3VzZWQuIERlZmF1bHRzIHRvIHRoZSBtYWluIGZyYW1lIGlmIG9t
aXR0ZWQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogIm5hdmlnYXRlQnJvd3NpbmdDb250ZXh0IiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250ZXh0IHRvIGEgc3BlY2lmaWVkIFVS
TC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUg
bmF2aWdhdGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgVVJMIHRvIGxvYWQgaW4gdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJnb0JhY2tJbkJyb3dz
aW5nQ29udGV4dCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdhdGVzIGEgYnJv
d3NpbmcgY29udGV4dCB0byBnbyBiYWNrIG9uZSBwYWdlIGluIGhpc3RvcnkuIiwKKyAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwg
IiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5k
bGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0K
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250
ZXh0IHRvIGdvdCBmb3J3YXJkIG9uZSBwYWdlIGluIGhpc3RvcnkuIiwKKyAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYi
OiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0KKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbG9hZEJyb3dzaW5nQ29udGV4dCIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmVsb2FkcyB0aGUgY3VycmVudCBwYWdlIGluIGEgYnJvd3Np
bmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBz
aG91bGQgYmUgcmVsb2FkZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5j
IjogdHJ1ZQorICAgICAgICB9LAorI2lmIGRlZmluZWQoTUFDX09OTFkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0IiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXNpemVzIHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmll
ZCBicm93c2luZyBjb250ZXh0IHRvIHRoZSBzcGVjaWZpZWQgc2l6ZS4iLAorICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJl
ZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBm
b3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgcmVzaXplZC4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzaXplIiwgIiRyZWYiOiAiU2l6ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
bmV3IHNpemUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJtb3ZlV2lu
ZG93T2ZCcm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1vdmVz
IHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IHRvIHRoZSBzcGVj
aWZpZWQgcG9zaXRpb24uIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxl
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRv
IGJlIG1vdmVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICIkcmVm
IjogIlBvaW50IiwgImRlc2NyaXB0aW9uIjogIlRoZSBuZXcgb3JpZ2luIGZvciB0aGUgYnJvd3Np
bmcgY29udGV4dCdzIHdpbmRvdy4gVGhlIHBvc2l0aW9uIGlzIGludGVycHJldGVkIGluIHNjcmVl
biBjb29yZGluYXRlIHNwYWNlLCByZWxhdGl2ZSB0byB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2Yg
dGhlIHNjcmVlbi4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiaW5zcGVjdEJyb3dzaW5nQ29udGV4dCIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiSW5zcGVjdCB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdXNp
bmcgV2ViIEluc3BlY3Rvci4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQg
dGhhdCBzaG91bGQgYmUgaW5zcGVjdGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuYWJsZUF1dG9DYXB0dXJpbmciLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoaXMgb3B0aW9uIGlzIHByZXNlbnQgYW5kIHNldCB0byB0
cnVlLCB0aGUgV2ViIEluc3BlY3RvciB3aWxsIGF1dG9tYXRpY2FsbHkgc3RhcnQgYSB0aW1lbGlu
ZSByZWNvcmRpbmcgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IG9uY2UgaXQgaXMg
YXR0YWNoZWQuIE5vdGUgdGhhdCB0aGlzIGRpc2FibGVzIHRoZSBkZWJ1Z2dlciBmb3IgdGhlIGR1
cmF0aW9uIG9mIHRoZSByZWNvcmRpbmcuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorI2VuZGlmIC8vIE1BQ19PTkxZCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZXMgYSBzY3JpcHQgZnVuY3Rpb24gaW4gYSBi
cm93c2luZyBjb250ZXh0IGFuZCBjYWxscyBpdCB3aXRoIHRoZSBzdXBwbGllZCBhcmd1bWVudHMu
IiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxl
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRo
ZSBzY3JpcHQgc2hvdWxkIGJlIGV2YWx1YXRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGUgc2NyaXB0IHNo
b3VsZCBiZSBldmFsdWF0ZWQuIFRoZSBtYWluIGZyYW1lIGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0
ZXIgZW1wdHkgc3RyaW5nIG9yIGV4Y2x1ZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZ1bmN0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBzY3Jp
cHQgdG8gZXZhbHVhdGUgaW4gdGhlIGJyb3dzaW5nIGNvbnRleHQuIEl0IG11c3QgYmUgYSBmdW5j
dGlvbiByZXN1bHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXJndW1lbnRzIiwg
InR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgImRlc2NyaXB0
aW9uIjogIlRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gd2hlbiBjYWxsZWQu
IFRoZXkgd2lsbCBiZSBwYXJzZWQgYXMgSlNPTiBiZWZvcmUgY2FsbGluZyB0aGUgZnVuY3Rpb24u
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tB
cmd1bWVudCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGZ1bmN0aW9uIGV4cGVjdHMgYSBjYWxsYmFjayBmdW5jdGlvbiBhcyB0aGUgbGFz
dCBhcmd1bWVudC4gSXQgaXMgZXhwZWN0ZWQgdG8gY2FsbCB0aGlzIGNhbGxiYWNrIHdpdGggYSBy
ZXN1bHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbGJhY2tUaW1lb3V0Iiwg
InR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
dGltZW91dCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgaW1wbGljaXQgY2FsbGJhY2sgaXMgZXhw
ZWN0ZWQgdG8gYmUgY2FsbGVkIGluLCBvdGhlcndpc2UgYSA8Y29kZT5KYXZhU2NyaXB0VGltZW91
dDwvY29kZT4gZXJyb3IgaXMgcmV0dXJuZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlc3VsdCByZXR1cm5lZCBieSB0aGUg
Y2FsbGVkIGZ1bmN0aW9uLiBJdCBpcyBKU09OIGVuY29kZWQgYWZ0ZXIgdGhlIGZ1bmN0aW9uIHJl
dHVybnMgb3IgY2FsbHMgdGhlIGNhbGxiYWNrLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAicGVyZm9ybU1vdXNlSW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlNpbXVsYXRlcyBpbnRlcmFjdGlvbiB3aXRoIGEgbW91c2UgY3Vyc29yLiIsCisgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIs
ICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgYnJv
d3NpbmcgY29udGV4dCB0byBiZSBpbnRlcmFjdGVkIHdpdGguIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicG9zaXRpb24iLCAiJHJlZiI6ICJQb2ludCIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgcmVxdWVzdGVkIHBvc2l0aW9uIGZvciB0aGUgbW91c2UgY3Vyc29yLCBzcGVjaWZpZWQgaW4g
dmlld3BvcnQgY29vcmRpbmF0ZXMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnV0
dG9uIiwgIiRyZWYiOiAiTW91c2VCdXR0b24iLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJ1dHRvbiB0
byB1c2UgdG8gcGVyZm9ybSB0aGUgaW50ZXJhY3Rpb24uIFRoaXMgcGFyYW1ldGVyIG9ubHkgaGFz
IGFuIGVmZmVjdCBmb3IgdGhlIDxjb2RlPkRvd248L2NvZGU+LCA8Y29kZT5VcDwvY29kZT4sIDxj
b2RlPkNsaWNrPC9jb2RlPiwgYW5kIDxjb2RlPkRvdWJsZUNsaWNrPC9jb2RlPiBtb3VzZSBpbnRl
cmFjdGlvbnMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW50ZXJhY3Rpb24iLCAi
JHJlZiI6ICJNb3VzZUludGVyYWN0aW9uIiwgImRlc2NyaXB0aW9uIjogIlRoZSB0eXBlIG9mIGlu
dGVyYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCB3aXRoIHRoZSBtb3VzZSBjdXJzb3IuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibW9kaWZpZXJzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRl
bXMiOiB7ICIkcmVmIjogIktleU1vZGlmaWVyIiB9LCAiZGVzY3JpcHRpb24iOiAiS2V5IG1vZGlm
aWVycyB0byBiZSBhY3RpdmUgZHVyaW5nIHRoZSBtb3VzZSBpbnRlcmFjdGlvbi4iIH0KKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInBvc2l0aW9uIiwgIiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVw
ZGF0ZWQgcG9zaXRpb24gb2YgdGhlIG1vdXNlIGN1cnNvciwgc3BlY2lmaWVkIGluIHZpZXdwb3J0
IGNvb3JkaW5hdGVzLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBkZWxpdmVyaW5nIHRoZSByZXN1bHRzIG9m
IHByZXNzaW5nIG9uZSBvciBtb3JlIGtleWJvYXJkIGtleXMgdG9nZXRoZXIgb3Igc3VjY2Vzc2l2
ZWx5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB3aGljaCBzaG91bGQg
cmVjZWl2ZSBrZXkuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW50ZXJhY3Rpb25z
IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWJvYXJkSW50ZXJhY3Rp
b24iIH0sICJkZXNjcmlwdGlvbiI6ICJBbiBvcmRlcmVkIGxpc3Qgb2Yga2V5IHNlcXVlbmNlcyB0
byBiZSBkZWxpdmVyZWQgdXNpbmcgbmF0aXZlIGtleSBldmVudHMuIiB9CisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJ0YWtlU2NyZWVuc2hvdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiVGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcGFnZSBpbiBhIGJyb3dzaW5n
IGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRl
c2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRvIHRha2Ug
YSBzY3JlZW5zaG90IG9mLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5z
IjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQTkcpLiIgfQorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRldGVybWluZXMgdGhlIDxjb2RlPkZyYW1lSGFuZGxl
PC9jb2RlPiBiYXNlZCBvbiB0aGUgb3JkaW5hbCwgbmFtZSBvciBub2RlIGhhbmRsZSBvZiBhIGNo
aWxkIGZyYW1lLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29u
dGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Npbmcg
Y29udGV4dCBpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBmcmFtZS4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSBp
biB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBmcmFtZS4gVGhlIG1haW4gZnJhbWUgaXMgdXNlZCBp
ZiB0aGlzIHBhcmFtZXRlciBlbXB0eSBzdHJpbmcgb3IgZXhjbHVkZWQuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAib3JkaW5hbCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIG9yZGluYWwgb2YgdGhlIGNoaWxkIGZyYW1lIHRv
IHJlc29sdmUgYXMgYSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIFRoaXMgaXMgYW5hbG9nb3Vz
IHRvICd3aW5kb3cuZnJhbWVzW29yZGluYWxdJyBpbiBKYXZhU2NyaXB0LiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5hbWUgb2YgdGhlIGNoaWxkIGZyYW1lIHRvIHJlc29s
dmUgYXMgYSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIFRoaXMgaXMgYW5hbG9nb3VzIHRvICd3
aW5kb3cuZnJhbWVzW25hbWVdJyBpbiBKYXZhU2NyaXB0LiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm5vZGVIYW5kbGUiLCAiJHJlZiI6ICJOb2RlSGFuZGxlIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgb2YgdGhlIGNoaWxkIGZyYW1lIG93bmVy
IGVsZW1lbnQgdG8gcmVzb2x2ZSBhcyBhIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4iIH0KKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2NyaXB0aW9uIjog
IlRoZSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4gZm9yIHRoZSByZXF1ZXN0ZWQgZnJhbWUuIiB9
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRldGVybWluZXMgdGhlIDxjb2RlPkZyYW1l
SGFuZGxlPC9jb2RlPiBmb3IgdGhlIHBhcmVudCBmcmFtZSBvZiB0aGUgc3VwcGxpZWQgPGNvZGU+
RnJhbWVIYW5kbGU8L2NvZGU+LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJy
b3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUg
YnJvd3NpbmcgY29udGV4dCB0aGUgZnJhbWUgaXMgbG9jYXRlZC4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2Ny
aXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IHNob3VsZCByZXNvbHZlIGl0
cyBwYXJlbnQgZnJhbWUuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJGcmFtZUhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgPGNvZGU+RnJhbWVIYW5kbGU8L2NvZGU+IGZvciB0
aGUgcmVxdWVzdGVkIGZyYW1lLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3lu
YyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY29t
cHV0ZUVsZW1lbnRMYXlvdXQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNvbXB1dGVz
IHRoZSBsYXlvdXQgZm9yIGFuIGVsZW1lbnQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRy
ZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUg
Zm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoZSBmcmFtZSBpcyBsb2NhdGVkLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUi
LCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1lIHRoYXQgY29udGFpbnMg
dGhlIGVsZW1lbnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUhhbmRsZSIs
ICIkcmVmIjogIk5vZGVIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBvZiB0aGUg
ZWxlbWVudCB0byB1c2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVz
Y3JpcHRpb24iOiAiSWYgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIHNjcm9sbGVkIGludG8gdmlldyBi
ZWZvcmUgY29tcHV0aW5nIGl0cyBsYXlvdXQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidXNlVmlld3BvcnRDb29yZGluYXRlcyIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBlIjogImJv
b2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHJlc3VsdCBjb29yZGluYXRlcyBzaG91bGQg
YmUgcmVwcmVzZW50ZWQgYXMgdmlld3BvcnQgY29vcmRpbmF0ZXMgb3Igbm90LiBEZWZhdWx0cyB0
byBmYWxzZSwgd2hpY2ggbWVhbnMgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIHJlcHJlc2VudGVkIGFz
IHBhZ2UgY29vcmRpbmF0ZXMuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWN0IiwgIiRyZWYiOiAiUmVjdCIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgbGF5b3V0IHJlY3QgZm9yIHRoZSByZXF1ZXN0ZWQgZWxlbWVu
dC4gU3BlY2lmaWVkIGluIHBhZ2Ugb3Igdmlld3BvcnQgY29vcmRpbmF0ZXMgYmFzZWQgb24gdGhl
IHVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMgcGFyYW1ldGVyLiIgfQorICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAiaXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQ2hlY2tzIGlmIGEgYnJvd3NpbmcgY29udGV4dCBpcyBzaG93aW5nIGEgSmF2
YVNjcmlwdCBhbGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxvZy4iLAorICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIHNob3dpbmcgYSBKYXZhU2NyaXB0IGRpYWxvZyBvciBub3QuIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRp
c21pc3NDdXJyZW50SmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiRGlzbWlzc2VzIGEgSmF2YVNjcmlwdCBhbGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxv
ZyBjdXJyZW50bHkgc2hvd2luZyBpbiBhIGJyb3dzaW5nIGNvbnRleHQuIEVxdWl2YWxlbnQgdG8g
Y2xpY2tpbmcgdGhlICdDYW5jZWwnIGJ1dHRvbi4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0
RGlhbG9nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2NlcHRzIGEgSmF2YVNjcmlw
dCBhbGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxvZyBjdXJyZW50bHkgc2hvd2luZyBpbiBh
IGJyb3dzaW5nIGNvbnRleHQuIEVxdWl2YWxlbnQgdG8gY2xpY2tpbmcgdGhlICdPSycgYnV0dG9u
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4i
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAibWVzc2FnZU9mQ3VycmVudEphdmFTY3JpcHREaWFsb2ciLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHRleHQgZGlzcGxheWVkIGluIGEgSmF2YVNjcmlwdCBh
bGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxvZyBjdXJyZW50bHkgc2hvd2luZyBpbiBhIGJy
b3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93
c2luZyBjb250ZXh0LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJUZXh0IGJlaW5nIGRpc3BsYXllZCBpbiB0aGUgY3VycmVudCBKYXZh
U2NyaXB0IGRpYWxvZy4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAic2V0VXNlcklucHV0Rm9yQ3VycmVudEphdmFTY3JpcHRQcm9t
cHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIHVzZXIgZW50ZXJlZCB2
YWx1ZSBpbiBhIEphdmFTY3JpcHQgcHJvbXB0IGRpYWxvZyBjdXJyZW50bHkgc2hvd2luZyBpbiBh
IGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBi
cm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJJbnB1
dCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdGV4dCB0byBlbnRlciBp
biB0aGUgcHJvbXB0LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJnZXRBbGxDb29raWVzIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJSZXR1cm5zIGFsbCBjb29raWVzIHZpc2libGUgdG8gdGhlIHNwZWNpZmllZCBicm93
c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5n
Q29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Np
bmcgY29udGV4dC4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZXMiLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiQ29va2llIiB9LCAiZGVzY3JpcHRpb24iOiAiQXJyYXkgb2YgY29v
a2llIG9iamVjdHMuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1
ZQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkZWxldGVTaW5n
bGVDb29raWUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRlbGV0ZXMgYSBjb29raWUg
d2l0aCB0aGUgZ2l2ZW4gbmFtZSBpZiB2aXNpYmxlIHRvIHRoZSBzcGVjaWZpZWQgYnJvd3Npbmcg
Y29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29va2llTmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJOYW1lIG9mIHRoZSBjb29raWUgdG8gcmVtb3Zl
LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYWRkU2luZ2xlQ29va2llIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBZGQgYSBjb29raWUgdG8gY29va2llIHN0b3JhZ2Ug
Zm9yIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiY29va2llIiwgIiRyZWYiOiAiQ29va2llIiwgImRlc2NyaXB0aW9uIjogIlRoZSBj
b29raWUgdGhhdCBzaG91bGQgYmUgYWRkZWQgdG8gc3RvcmFnZS4iIH0KKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogImRlbGV0ZUFsbENvb2tpZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkRlbGV0ZSBhbGwgY29va2llcyB0aGF0IGFyZSB2aXNpYmxlIHRvIHRoZSBzcGVjaWZp
ZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJC
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhl
IGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggMjdiMWYxNjBkOGY3OGY3ZWFmNTVkZDFkODMz
YTdkMTJlZDk3OTZhMS4uZmVkYzFmZmQyNDYyODk0NDRjMjUwYjc5YTNlODAwNTMyNDY2NDg0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCIKICNpbmNsdWRlICJBdXRvbWF0aW9uUHJvdG9j
b2xPYmplY3RzLmgiCisjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCIKICNp
bmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
clByb3h5LmgiCkBAIC00NCwzMiArNDUsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9y
OwogCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRv
ciA9ICI7IjsKLQotLy8gTWFrZSBzdXJlIHRoZSBwcmVkZWZpbmVkIGVycm9yIG5hbWUgaXMgdmFs
aWQsIG90aGVyd2lzZSB1c2UgSW50ZXJuYWxFcnJvci4KLSNkZWZpbmUgVkFMSURBVEVEX0VSUk9S
X01FU1NBR0UoZXJyb3JTdHJpbmcpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxw
ZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlPihlcnJvclN0cmluZykudmFsdWVPcihJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkludGVybmFsRXJyb3IpCi0KLS8vIElmIHRo
ZSBlcnJvciBuYW1lIGlzIGluY29ycmVjdCBmb3IgdGhlc2UgbWFjcm9zLCBpdCB3aWxsIGJlIGEg
Y29tcGlsZS10aW1lIGVycm9yLgotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1Jf
TkFNRShlcnJvck5hbWUpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpn
ZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJv
ck1lc3NhZ2U6OmVycm9yTmFtZSkKLSNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFt
ZSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCi0KLS8vIElm
IHRoZSBlcnJvciBtZXNzYWdlIGlzIG5vdCBhIHByZWRlZmluZWQgZXJyb3IsIEludGVybmFsRXJy
b3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9F
UlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVy
cm9yTWVzc2FnZSkpCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdF
X0FORF9ERVRBSUxTKGVycm9yTWVzc2FnZSwgZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUo
VkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JNZXNzYWdlKSksIGVycm9yTmFtZUFuZERldGFp
bHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCi0KLS8vIENvbnZlbmllbmNlIG1hY3JvcyBmb3Ig
ZmlsbGluZyBpbiB0aGUgZXJyb3Igc3RyaW5nIG9mIHN5bmNocm9ub3VzIGNvbW1hbmRzIGluIGJh
aWxvdXQgYnJhbmNoZXMuCi0jZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKGVycm9y
TmFtZSkgXAotZG8geyBcCi0gICAgZXJyb3JTdHJpbmcgPSBTVFJJTkdfRk9SX1BSRURFRklORURf
RVJST1JfTkFNRShlcnJvck5hbWUpOyBcCi0gICAgcmV0dXJuOyBcCi19IHdoaWxlIChmYWxzZSkK
LQotI2RlZmluZSBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhlcnJvck5h
bWUsIGRldGFpbHNTdHJpbmcpIFwKLWRvIHsgXAotICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZP
Ul9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3Ry
aW5nKTsgXAotICAgIHJldHVybjsgXAotfSB3aGlsZSAoZmFsc2UpCi0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6V2ViQXV0b21hdGlvblNlc3Npb24oKQpAQCAt
MTA5LDcgKzg0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0UHJvY2Vzc1Bvb2wo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAKICNpZiBFTkFCTEUoUkVNT1RF
X0lOU1BFQ1RPUikKIAotLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0IEFQSQor
I3ByYWdtYSBtYXJrIEluc3BlY3Rvcjo6UmVtb3RlQXV0b21hdGlvblRhcmdldCBBUEkKIAogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiB7CkBAIC0yMzcsNiArMjEyLDggQEAgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4gV2ViQXV0b21hdGlvblNlc3Np
b246OmIKICAgICAgICAgLnJlbGVhc2UoKTsKIH0KIAorI3ByYWdtYSBtYXJrIFBsYXRmb3JtLWlu
ZGVwZW5kZW50IENvbW1hbmRzCisKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdldEJyb3dz
aW5nQ29udGV4dHMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpCcm93c2luZ0NvbnRleHQ+PiYgY29udGV4dHMpCiB7CiAgICAgY29udGV4dHMgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93
c2luZ0NvbnRleHQ+OjpjcmVhdGUoKTsKQEAgLTMwMyw4MCArMjgwLDYgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYgZXJyb3IKICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6Rm9jdXNGcmFtZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1
ZSgpKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc2l6ZVdpbmRvd09m
QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHNpemVP
YmplY3QpCi17Ci0gICAgZmxvYXQgd2lkdGg7Ci0gICAgaWYgKCFzaXplT2JqZWN0LmdldERvdWJs
ZShXVEY6OkFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2lkdGgpKQotICAgICAgICBGQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd3aWR0
aCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKLQotICAgIGZsb2F0IGhl
aWdodDsKLSAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJo
ZWlnaHQiKSwgaGVpZ2h0KSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnaGVpZ2h0JyBwYXJhbWV0ZXIgd2FzIG5v
dCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAgaWYgKHdpZHRoIDwgMCkKLSAgICAgICAgRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRo
ZSAnd2lkdGgnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIGlmICho
ZWlnaHQgPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlM
UyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICdoZWlnaHQnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxp
ZCB2YWx1ZS4iKTsKLQotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhh
bmRsZShoYW5kbGUpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoV2luZG93Tm90Rm91bmQpOwotCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG9yaWdp
bmFsRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2luZG93RnJhbWUob3JpZ2luYWxGcmFtZSk7Ci0KLSAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBXZWJDb3JlOjpGbG9hdFJlY3Qob3JpZ2lu
YWxGcmFtZS5sb2NhdGlvbigpLCBXZWJDb3JlOjpGbG9hdFNpemUod2lkdGgsIGhlaWdodCkpOwot
ICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7Ci0KLSAgICAvLyBJZiBub3RoaW5nIGNo
YW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVwb3J0IHRoYXQgc29tZXRoaW5n
IHdlbnQgd3JvbmcuCi0gICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0ZWQg
ZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93ZXZlci4pCi0gICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKLSAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZSh1cGRh
dGVkRnJhbWUpOwotICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVwZGF0ZWRGcmFtZSkKLSAgICAg
ICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxFcnJvciwg
IlRoZSB3aW5kb3cgc2l6ZSB3YXMgZXhwZWN0ZWQgdG8gaGF2ZSBjaGFuZ2VkLCBidXQgZGlkIG5v
dC4iKTsKLX0KLQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bW92ZVdpbmRvd09mQnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHBvc2l0aW9uT2Jq
ZWN0KQotewotICAgIGZsb2F0IHg7Ci0gICAgaWYgKCFwb3NpdGlvbk9iamVjdC5nZXREb3VibGUo
V1RGOjpBU0NJSUxpdGVyYWwoIngiKSwgeCkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3gnIHBhcmFtZXRlciB3
YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7Ci0KLSAgICBmbG9hdCB5OwotICAgIGlmICghcG9z
aXRpb25PYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJ5IiksIHkpKQotICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVy
LCAiVGhlICd5JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAg
aWYgKHggPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlM
UyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFs
dWUuIik7Ci0KLSAgICBpZiAoeSA8IDApCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgJ3knIHBhcmFtZXRlciBoYWQg
YW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQ
cm94eUZvckhhbmRsZShoYW5kbGUpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwotCi0gICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IG9yaWdpbmFsRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2luZG93RnJhbWUob3JpZ2luYWxGcmFt
ZSk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBXZWJDb3JlOjpGbG9hdFJl
Y3QoV2ViQ29yZTo6RmxvYXRQb2ludCh4LCB5KSwgb3JpZ2luYWxGcmFtZS5zaXplKCkpOwotICAg
IGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBw
YWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7Ci0KLSAgICAvLyBJZiBub3RoaW5nIGNoYW5n
ZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVwb3J0IHRoYXQgc29tZXRoaW5nIHdl
bnQgd3JvbmcuCi0gICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJh
bWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93ZXZlci4pCi0gICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKLSAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZSh1cGRhdGVk
RnJhbWUpOwotICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVwZGF0ZWRGcmFtZSkKLSAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxFcnJvciwgIlRo
ZSB3aW5kb3cgcG9zaXRpb24gd2FzIGV4cGVjdGVkIHRvIGhhdmUgY2hhbmdlZCwgYnV0IGRpZCBu
b3QuIik7Ci19Ci0KIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRlQnJvd3NpbmdD
b250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxOYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dENh
bGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQ
cm94eUZvckhhbmRsZShoYW5kbGUpOwpAQCAtNDMxLDI3ICszMzQsNiBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpyZWxvYWRCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYgZXJyb3JTdAogICAgIHBhZ2UtPnJlbG9hZChyZWxvYWRGcm9tT3JpZ2luLCBjb250ZW50Qmxv
Y2tlcnNFbmFibGVkKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5zcGVjdEJy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBoYW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywg
UmVmPEluc3BlY3RCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKLXsKLSAgICBX
ZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKLSAgICBp
ZiAoIXBhZ2UpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZv
dW5kKTsKLQotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJh
Y2tzUGVyUGFnZS50YWtlKHBhZ2UtPnBhZ2VJRCgpKSkKLSAgICAgICAgY2FsbGJhY2stPnNlbmRG
YWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKLSAgICBt
X3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlLnNldChwYWdlLT5wYWdlSUQoKSwgV1RG
TW92ZShjYWxsYmFjaykpOwotCi0gICAgLy8gRG9uJ3QgYnJpbmcgdGhlIGluc3BlY3RvciB0byBm
cm9udCBzaW5jZSB0aGlzIG1heSBiZSBkb25lIGF1dG9tYXRpY2FsbHkuCi0gICAgLy8gV2UganVz
dCB3YW50IGl0IGxvYWRlZCBzbyBpdCBjYW4gcGF1c2UgaWYgYSBicmVha3BvaW50IGlzIGhpdCBk
dXJpbmcgYSBjb21tYW5kLgotICAgIGlmIChwYWdlLT5pbnNwZWN0b3IoKSkgewotICAgICAgICBw
YWdlLT5pbnNwZWN0b3IoKS0+Y29ubmVjdCgpOwotCi0gICAgICAgIC8vIFN0YXJ0IGNvbGxlY3Rp
bmcgcHJvZmlsZSBpbmZvcm1hdGlvbiBpbW1lZGlhdGVseSBzbyB0aGUgZW50aXJlIHNlc3Npb24g
aXMgY2FwdHVyZWQuCi0gICAgICAgIGlmIChvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcgJiYg
Km9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZykKLSAgICAgICAgICAgIHBhZ2UtPmluc3BlY3Rv
cigpLT50b2dnbGVQYWdlUHJvZmlsaW5nKCk7Ci0gICAgfQotfQotCiB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYg
cGFnZSkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJy
b3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLnBhZ2VJRCgpKSkKQEAgLTEw
MzYsNyArOTE4LDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlkVGFrZVNjcmVlbnNo
b3QodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU2hhcmVhYmwKICAgICBjYWxsYmFjay0+c2Vu
ZFN1Y2Nlc3MoYmFzZTY0RW5jb2RlZERhdGEpOwogfQogCi0jaWYgIVVTRShBUFBLSVQpCisjcHJh
Z21hIG1hcmsgUGxhdGZvcm0tZGVwZW5kZW50IEltcGxlbWVudGF0aW9uIFN0dWJzCisKKyNpZiAh
UExBVEZPUk0oTUFDKQogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0
ZU1vdXNlSW50ZXJhY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rp
b24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uLCBXZWJFdmVu
dDo6TW9kaWZpZXJzKQogewogfQpAQCAtMTA0OCwxMSArOTMyLDEzIEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiwgSW5z
cGVjdG9yOjpQCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5
U2VxdWVuY2UoV2ViUGFnZVByb3h5JiwgY29uc3QgU3RyaW5nJikKIHsKIH0KKyNlbmRpZiAvLyAh
UExBVEZPUk0oTUFDKQogCisjaWYgIVBMQVRGT1JNKENPQ09BKQogU3RyaW5nIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJikKIHsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9Ci0jZW5kaWYgLy8g
IVVTRShBUFBLSVQpCisjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDI4MGQyZDU4Yjg2ZWM3OWViMzRjYjcz
ZjZlNDllYzM5NDY5M2FkNGIuLjYyOThmMDI3NjlmZTJmNGRmZjU5NDVjM2RkY2UwODdhMWYwOGVl
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtOTQsMTkgKzk0LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBvdmVycmlkZTsK
ICNlbmRpZgogCisjcHJhZ21hIG1hcmsgUGxhdGZvcm0taW5kZXBlbmRlbnQgQ29tbWFuZHMKKwog
ICAgIC8vIEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciBBUEkK
ICAgICB2b2lkIGdldEJyb3dzaW5nQ29udGV4dHMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0QnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgY3JlYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmLCBTdHJpbmcqKSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlQnJvd3NpbmdDb250ZXh0KElu
c3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lk
IHN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1l
SGFuZGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0
KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5z
cGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHNpemUpIG92ZXJyaWRlOwotICAgIHZvaWQgbW92ZVdp
bmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHBvc2l0aW9uKSBv
dmVycmlkZTsKICAgICB2b2lkIG5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxO
YXZpZ2F0ZUJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGdv
QmFja0luQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBSZWY8R29CYWNrSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgUmVmPEdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWY8UmVsb2FkQnJvd3NpbmdDb250ZXh0Q2Fs
bGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxF
bmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rv
cjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29u
c3QgU3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBj
b25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9w
dGlvbmFsRXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25h
bENhbGxiYWNrVGltZW91dCwgUmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcjo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwZXJmb3JtTW91c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0JiByZXF1ZXN0ZWRQb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3Qg
U3RyaW5nJiBtb3VzZUludGVyYWN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5
JiBrZXlNb2RpZmllcnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQ
b2ludD4mIHVwZGF0ZWRQb3NpdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtS2V5Ym9h
cmRJbnRlcmFjdGlvbnMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFu
ZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQ
ZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CkBAIC0xMjMs
MTEgKzEyMiwyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVTaW5nbGVDb29raWUoSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIFJlZjxEZWxldGVTaW5nbGVDb29raWVDYWxsYmFjaz4m
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRTaW5nbGVDb29raWUoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3Rvck9iamVjdCYgY29va2llLCBSZWY8QWRkU2luZ2xlQ29va2llQ2FsbGJhY2s+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUpIG92ZXJyaWRlOwot
I2lmIFVTRShBUFBLSVQpCisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1zcGVjaWZpYyBDb21tYW5k
cworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgcmVzaXplV2luZG93T2ZCcm93c2luZ0Nv
bnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25z
dCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBt
b3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRp
b24pIG92ZXJyaWRlOworICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6
OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVB
dXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVy
cmlkZTsKKyNlbmRpZgorCisjcHJhZ21hIG1hcmsgRXZlbnQgU2ltdWxhdGlvbiBTdXBwb3J0CisK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCB3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21h
dGlvbihOU0V2ZW50ICopOwogICAgIHZvaWQgbWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9t
YXRpb24oTlNFdmVudCAqKTsKICNlbmRpZgogCisjcHJhZ21hIG1hcmsgLQorCiBwcml2YXRlOgog
ICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGNvbnN0IFN0cmluZyYpOwog
ICAgIFN0cmluZyBoYW5kbGVGb3JXZWJQYWdlUHJveHkoY29uc3QgV2ViUGFnZVByb3h5Jik7CkBA
IC0xNDksNiArMTYxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldENvb2tpZXNGb3JGcmFt
ZSh1aW50NjRfdCBjYWxsYmFja0lELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiwgY29uc3QgU3Ry
aW5nJiBlcnJvclR5cGUpOwogICAgIHZvaWQgZGlkRGVsZXRlQ29va2llKHVpbnQ2NF90IGNhbGxi
YWNrSUQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKIAorI3ByYWdtYSBtYXJrIFBsYXRmb3Jt
LWRlcGVuZGVudCBJbXBsZW1lbnRhdGlvbnMKKwogICAgIC8vIFBsYXRmb3JtLXNwZWNpZmljIGhl
bHBlciBtZXRob2RzLgogICAgIHZvaWQgcGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24o
V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHZpZXdQb3NpdGlvbiwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbiwgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b24sIFdlYkV2ZW50OjpNb2RpZmllcnMp
OwogICAgIC8vIFNpbXVsYXRlcyBhIHNpbmdsZSB2aXJ0dWFsIGtleSBiZWluZyBwcmVzc2VkLCBz
dWNoIGFzIENvbnRyb2wsIEYta2V5cywgTnVtcGFkIGtleXMsIGV0Yy4gYXMgYWxsb3dlZCBieSB0
aGUgcHJvdG9jb2wuCkBAIC0xNTgsNyArMTcyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBHZXQgYmFz
ZTY0IGVuY29kZWQgUE5HIGRhdGEgZnJvbSBhIGJpdG1hcC4KICAgICBTdHJpbmcgcGxhdGZvcm1H
ZXRCYXNlNjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpOwog
Ci0jaWYgVVNFKEFQUEtJVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZW5kU3ludGhl
c2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFnZVByb3h5JiwgTlNBcnJheSAqZXZlbnRzVG9TZW5kKTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjI2
NGMzMjg3OGM5ZjU5M2I1NGVhMTYxYmE3NzE5NzYwYjI4NTU2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25N
YWNyb3MuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNk
ZWZpbmUgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRvciAiOyIKKworLy8gTWFrZSBzdXJlIHRo
ZSBwcmVkZWZpbmVkIGVycm9yIG5hbWUgaXMgdmFsaWQsIG90aGVyd2lzZSB1c2UgSW50ZXJuYWxF
cnJvci4KKyNkZWZpbmUgVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JTdHJpbmcpIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJp
bmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlPihlcnJvclN0
cmluZykudmFsdWVPcihJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3Nh
Z2U6OkludGVybmFsRXJyb3IpCisKKy8vIElmIHRoZSBlcnJvciBuYW1lIGlzIGluY29ycmVjdCBm
b3IgdGhlc2UgbWFjcm9zLCBpdCB3aWxsIGJlIGEgY29tcGlsZS10aW1lIGVycm9yLgorI2RlZmlu
ZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSkKKyNkZWZp
bmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1l
LCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBh
cmF0b3IsIGRldGFpbHNTdHJpbmcpCisKKy8vIElmIHRoZSBlcnJvciBtZXNzYWdlIGlzIG5vdCBh
IHByZWRlZmluZWQgZXJyb3IsIEludGVybmFsRXJyb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuCisj
ZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkg
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZh
bHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkpCisjZGVmaW5lIFNUUklO
R19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFX0FORF9ERVRBSUxTKGVycm9yTWVzc2FnZSwg
ZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJy
b3JNZXNzYWdlKSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcp
CisKKy8vIENvbnZlbmllbmNlIG1hY3JvcyBmb3IgZmlsbGluZyBpbiB0aGUgZXJyb3Igc3RyaW5n
IG9mIHN5bmNocm9ub3VzIGNvbW1hbmRzIGluIGJhaWxvdXQgYnJhbmNoZXMuCisjZGVmaW5lIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKGVycm9yTmFtZSkgXAorZG8geyBcCisgICAgZXJyb3JT
dHJpbmcgPSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpOyBcCisg
ICAgcmV0dXJuOyBcCit9IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUl9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcpIFwKK2RvIHsg
XAorICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5E
X0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKTsgXAorICAgIHJldHVybjsgXAorfSB3
aGlsZSAoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21h
dGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNWE4YWFhOTU1ZjM4ZDRlNTQ5MzNhNWZiNTk1YWRhOGFmMWQxZDQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2Ev
V2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSA8SW1h
Z2VJTy9DR0ltYWdlRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxNb2JpbGVDb3JlU2VydmljZXMv
VVRDb3JlVHlwZXMuaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1kZXBlbmRlbnQgSW1wbGVt
ZW50YXRpb25zCisKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNl
NjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRh
SGFuZGxlKQoreworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2UgPSBiaXRtYXAt
Pm1ha2VDR0ltYWdlKCk7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZURhdGE+IGltYWdlRGF0YSA9
IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPENH
SW1hZ2VEZXN0aW5hdGlvblJlZj4gZGVzdGluYXRpb24gPSBhZG9wdENGKENHSW1hZ2VEZXN0aW5h
dGlvbkNyZWF0ZVdpdGhEYXRhKChDRk11dGFibGVEYXRhUmVmKWltYWdlRGF0YS5nZXQoKSwga1VU
VHlwZVBORywgMSwgMCkpOworICAgIGlmICghZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdl
dCgpLCBjZ0ltYWdlLmdldCgpLCAwKTsKKyAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShk
ZXN0aW5hdGlvbi5nZXQoKSk7CisKKyAgICByZXR1cm4gW2ltYWdlRGF0YSBiYXNlNjRFbmNvZGVk
U3RyaW5nV2l0aE9wdGlvbnM6MF07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjJlOTc2YTNlY2QzZGIzOWMyZTU0ZjVjYmE5MDUwY2RhNTExYWY1YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQpAQCAtMCwwICsxLDU5NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKKwor
I2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3Mu
aCIKKyNpbXBvcnQgIldlYkluc3BlY3RvclByb3h5LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHku
aCIKKyNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uLmgiCisjaW1wb3J0IDxISVRvb2xib3gv
RXZlbnRzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0ludFNpemUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CisjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCisjcHJhZ21hIG1hcmsgQXBwS2l0IEV2ZW50IFNpbXVsYXRpb24gU3Vw
cG9ydAorCitzdGF0aWMgY29uc3QgTlNJbnRlZ2VyIHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2lj
RXZlbnROdW1iZXIgPSAwOworc3RhdGljIGNvbnN0IHZvaWQgKnN5bnRoZXNpemVkQXV0b21hdGlv
bkV2ZW50QXNzb2NpYXRlZE9iamVjdEtleSA9ICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFz
c29jaWF0ZWRPYmplY3RLZXk7CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbmRTeW50
aGVzaXplZEV2ZW50c1RvUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIE5TQXJyYXkgKmV2ZW50c1Rv
U2VuZCkKK3sKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOwor
CisgICAgZm9yIChOU0V2ZW50ICpldmVudCBpbiBldmVudHNUb1NlbmQpIHsKKyAgICAgICAgLy8g
VGFrZSBmb2N1cyBiYWNrIGluIGNhc2UgdGhlIEluc3BlY3RvciBiZWNhbWUgZm9jdXNlZCB3aGls
ZSB0aGUgcHJpb3IgY29tbWFuZCBvcgorICAgICAgICAvLyBOU0V2ZW50IHdhcyBkZWxpdmVyZWQg
dG8gdGhlIHdpbmRvdy4KKyAgICAgICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxd
OworCisgICAgICAgIG1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKGV2ZW50KTsK
KyAgICAgICAgW3dpbmRvdyBzZW5kRXZlbnQ6ZXZlbnRdOworICAgIH0KK30KKwordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6bWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNF
dmVudCAqZXZlbnQpCit7CisgICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGV2ZW50LCAmc3lu
dGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5LCBtX3Nlc3Npb25JZGVu
dGlmaWVyLCBPQkpDX0FTU09DSUFUSU9OX1JFVEFJTl9OT05BVE9NSUMpOworfQorCitib29sIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjp3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21hdGlvbihOU0V2
ZW50ICpldmVudCkKK3sKKyAgICBOU1N0cmluZyAqc2VuZGVyU2Vzc2lvbklkZW50aWZpZXIgPSBv
YmpjX2dldEFzc29jaWF0ZWRPYmplY3QoZXZlbnQsICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVu
dEFzc29jaWF0ZWRPYmplY3RLZXkpOworICAgIGlmIChbc2VuZGVyU2Vzc2lvbklkZW50aWZpZXIg
aXNFcXVhbFRvU3RyaW5nOm1fc2Vzc2lvbklkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgeworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3Zl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgICAgICAvLyBVc2UgdGhpcyBhcyBhIGJhY2t1cCBmb3IgY2hlY2tpbmcgbW91c2UgZXZlbnRz
LCB3aGljaCBhcmUgZnJlcXVlbnRseSBjb3BpZWQKKyAgICAgICAgLy8gYW5kL29yIGZha2VkIGJ5
IEFwcEtpdCwgY2F1c2luZyB0aGVtIHRvIGxvc2UgdGhlaXIgYXNzb2NpYXRlZCBvYmplY3QgdGFn
LgorICAgICAgICByZXR1cm4gZXZlbnQuZXZlbnROdW1iZXIgPT0gc3ludGhlc2l6ZWRNb3VzZUV2
ZW50TWFnaWNFdmVudE51bWJlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1zcGVjaWZp
YyBDb21tYW5kcworCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNpemVXaW5kb3dPZkJy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBzaXplT2Jq
ZWN0KQoreworICAgIGZsb2F0IHdpZHRoOworICAgIGlmICghc2l6ZU9iamVjdC5nZXREb3VibGUo
V1RGOjpBU0NJSUxpdGVyYWwoIndpZHRoIiksIHdpZHRoKSkKKyAgICAgICAgRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnd2lkdGgn
IHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7CisKKyAgICBmbG9hdCBoZWln
aHQ7CisgICAgaWYgKCFzaXplT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgiaGVp
Z2h0IiksIGhlaWdodCkpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9E
RVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ2hlaWdodCcgcGFyYW1ldGVyIHdhcyBub3Qg
Zm91bmQgb3IgaW52YWxpZC4iKTsKKworICAgIGlmICh3aWR0aCA8IDApCisgICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUg
J3dpZHRoJyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7CisKKyAgICBpZiAoaGVp
Z2h0IDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSAnaGVpZ2h0JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQg
dmFsdWUuIik7CisKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5k
bGUoaGFuZGxlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBvcmlnaW5h
bEZyYW1lOworICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKG9yaWdpbmFsRnJhbWUpOworCisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG5ld0ZyYW1lID0gV2ViQ29yZTo6RmxvYXRSZWN0KG9yaWdpbmFs
RnJhbWUubG9jYXRpb24oKSwgV2ViQ29yZTo6RmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAg
ICBpZiAobmV3RnJhbWUgPT0gb3JpZ2luYWxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cGFnZS0+c2V0V2luZG93RnJhbWUobmV3RnJhbWUpOworCisgICAgLy8gSWYgbm90aGluZyBjaGFu
Z2VkIGF0IGFsbCwgaXQncyBwcm9iYWJseSBmYWlyIHRvIHJlcG9ydCB0aGF0IHNvbWV0aGluZyB3
ZW50IHdyb25nLgorICAgIC8vIChXZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdGVkIGZy
YW1lIHNpemUgd2lsbCBiZSBob25vcmVkIGV4YWN0bHksIGhvd2V2ZXIuKQorICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCB1cGRhdGVkRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUodXBkYXRl
ZEZyYW1lKTsKKyAgICBpZiAob3JpZ2luYWxGcmFtZSA9PSB1cGRhdGVkRnJhbWUpCisgICAgICAg
IEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJU
aGUgd2luZG93IHNpemUgd2FzIGV4cGVjdGVkIHRvIGhhdmUgY2hhbmdlZCwgYnV0IGRpZCBub3Qu
Iik7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5n
Q29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbk9iamVj
dCkKK3sKKyAgICBmbG9hdCB4OworICAgIGlmICghcG9zaXRpb25PYmplY3QuZ2V0RG91YmxlKFdU
Rjo6QVNDSUlMaXRlcmFsKCJ4IiksIHgpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0ZXIgd2Fz
IG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOworCisgICAgZmxvYXQgeTsKKyAgICBpZiAoIXBvc2l0
aW9uT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgieSIpLCB5KSkKKyAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwg
IlRoZSAneScgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKKworICAgIGlm
ICh4IDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSAneCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVl
LiIpOworCisgICAgaWYgKHkgPCAwKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
Ul9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd5JyBwYXJhbWV0ZXIgaGFkIGFu
IGludmFsaWQgdmFsdWUuIik7CisKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJv
eHlGb3JIYW5kbGUoaGFuZGxlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIEZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCBvcmlnaW5hbEZyYW1lOworICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKG9yaWdpbmFsRnJhbWUp
OworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG5ld0ZyYW1lID0gV2ViQ29yZTo6RmxvYXRSZWN0
KFdlYkNvcmU6OkZsb2F0UG9pbnQoeCwgeSksIG9yaWdpbmFsRnJhbWUuc2l6ZSgpKTsKKyAgICBp
ZiAobmV3RnJhbWUgPT0gb3JpZ2luYWxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFn
ZS0+c2V0V2luZG93RnJhbWUobmV3RnJhbWUpOworCisgICAgLy8gSWYgbm90aGluZyBjaGFuZ2Vk
IGF0IGFsbCwgaXQncyBwcm9iYWJseSBmYWlyIHRvIHJlcG9ydCB0aGF0IHNvbWV0aGluZyB3ZW50
IHdyb25nLgorICAgIC8vIChXZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdGVkIGZyYW1l
IHNpemUgd2lsbCBiZSBob25vcmVkIGV4YWN0bHksIGhvd2V2ZXIuKQorICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCB1cGRhdGVkRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUodXBkYXRlZEZy
YW1lKTsKKyAgICBpZiAob3JpZ2luYWxGcmFtZSA9PSB1cGRhdGVkRnJhbWUpCisgICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJUaGUg
d2luZG93IHBvc2l0aW9uIHdhcyBleHBlY3RlZCB0byBoYXZlIGNoYW5nZWQsIGJ1dCBkaWQgbm90
LiIpOworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0QnJvd3NpbmdDb250
ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVj
dEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQoreworICAgIFdlYlBhZ2VQcm94
eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICghcGFnZSkK
KyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOworCisg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdl
LnRha2UocGFnZS0+cGFnZUlEKCkpKQorICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RS
SU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCkpOworICAgIG1fcGVuZGluZ0lu
c3BlY3RvckNhbGxiYWNrc1BlclBhZ2Uuc2V0KHBhZ2UtPnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CisKKyAgICAvLyBEb24ndCBicmluZyB0aGUgaW5zcGVjdG9yIHRvIGZyb250IHNpbmNl
IHRoaXMgbWF5IGJlIGRvbmUgYXV0b21hdGljYWxseS4KKyAgICAvLyBXZSBqdXN0IHdhbnQgaXQg
bG9hZGVkIHNvIGl0IGNhbiBwYXVzZSBpZiBhIGJyZWFrcG9pbnQgaXMgaGl0IGR1cmluZyBhIGNv
bW1hbmQuCisgICAgaWYgKHBhZ2UtPmluc3BlY3RvcigpKSB7CisgICAgICAgIHBhZ2UtPmluc3Bl
Y3RvcigpLT5jb25uZWN0KCk7CisKKyAgICAgICAgLy8gU3RhcnQgY29sbGVjdGluZyBwcm9maWxl
IGluZm9ybWF0aW9uIGltbWVkaWF0ZWx5IHNvIHRoZSBlbnRpcmUgc2Vzc2lvbiBpcyBjYXB0dXJl
ZC4KKyAgICAgICAgaWYgKG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZyAmJiAqb3B0aW9uYWxF
bmFibGVBdXRvQ2FwdHVyaW5nKQorICAgICAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPnRvZ2ds
ZVBhZ2VQcm9maWxpbmcoKTsKKyAgICB9Cit9CisKKworI3ByYWdtYSBtYXJrIFBsYXRmb3JtLWRl
cGVuZGVudCBJbXBsZW1lbnRhdGlvbnMKKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxh
dGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgdmlld1Bvc2l0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpNb3VzZUludGVyYWN0aW9uIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbiBidXR0b24sIFdlYkV2ZW50OjpNb2RpZmllcnMga2V5
TW9kaWZpZXJzKQoreworICAgIEludFJlY3Qgd2luZG93UmVjdDsKKyAgICBwYWdlLnJvb3RWaWV3
VG9XaW5kb3coSW50UmVjdCh2aWV3UG9zaXRpb24sIEludFNpemUoKSksIHdpbmRvd1JlY3QpOwor
ICAgIEludFBvaW50IHdpbmRvd1Bvc2l0aW9uID0gd2luZG93UmVjdC5sb2NhdGlvbigpOworCisg
ICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoa2V5TW9kaWZp
ZXJzICYgV2ViRXZlbnQ6Ok1ldGFLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkFsdEtl
eSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CisgICAg
aWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpDb250cm9sS2V5KQorICAgICAgICBtb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgaWYgKGtleU1vZGlmaWVycyAm
IFdlYkV2ZW50OjpTaGlmdEtleSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkNhcHNMb2NrS2V5
KQorICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOworCisg
ICAgTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJl
ZmVyZW5jZURhdGVdOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93
KCk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7CisK
KyAgICBOU0V2ZW50VHlwZSBkb3duRXZlbnRUeXBlOworICAgIE5TRXZlbnRUeXBlIGRyYWdFdmVu
dFR5cGU7CisgICAgTlNFdmVudFR5cGUgdXBFdmVudFR5cGU7CisgICAgc3dpdGNoIChidXR0b24p
IHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9u
OjpOb25lOgorICAgICAgICBkb3duRXZlbnRUeXBlID0gdXBFdmVudFR5cGUgPSBkcmFnRXZlbnRU
eXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpMZWZ0OgorICAgICAg
ICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBkcmFn
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB1cEV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok1pZGRsZToKKyAg
ICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CisgICAgICAg
IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgIHVw
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246OlJpZ2h0
OgorICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKKyAg
ICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgTlNJbnRlZ2VyIGV2ZW50TnVtYmVyID0gc3lu
dGhlc2l6ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51bWJlcjsKKworICAgIHN3aXRjaCAoaW50ZXJh
Y3Rpb24pIHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
SW50ZXJhY3Rpb246Ok1vdmU6CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRyYWdFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9z
aXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG93bjoKKyAg
ICAgICAgLy8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNpbmNlIGNsaWVudHMg
ZG9uJ3QgZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCisgICAgICAgIC8vIGRvd24vdXAgZXZl
bnRzIHRvIGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xpY2sgZXZlbnQuCisg
ICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczpt
b2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpVcDoKKyAgICAgICAg
Ly8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNpbmNlIGNsaWVudHMgZG9uJ3Qg
ZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCisgICAgICAgIC8vIGRvd24vdXAgZXZlbnRzIHRv
IGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xpY2sgZXZlbnQuCisgICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVw
RXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJz
IHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5p
bCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlSW50ZXJhY3Rpb246OlNpbmdsZUNsaWNrOgorICAgICAgICAvLyBTZW5kIHNlcGFyYXRl
IGRvd24gYW5kIHVwIGV2ZW50cy4gV2ViQ29yZSB3aWxsIHNlZSB0aGlzIGFzIGEgc2luZ2xlLWNs
aWNrIGV2ZW50LgorICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1v
ZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndp
bmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50
OjEgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07CisgICAgICAgIFtldmVudHNUb0Jl
U2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxv
Y2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0
aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJl
cjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJh
Y3Rpb246OkRvdWJsZUNsaWNrOgorICAgICAgICAvLyBTZW5kIG11bHRpcGxlIGRvd24gYW5kIHVw
IGV2ZW50cyB3aXRoIHByb3BlciBjbGljayBjb3VudC4KKyAgICAgICAgLy8gV2ViQ29yZSB3aWxs
IHNlZSB0aGlzIGFzIGEgc2luZ2xlLWNsaWNrIGV2ZW50IHRoZW4gZG91YmxlLWNsaWNrIGV2ZW50
LgorICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJl
ciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1
cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRP
YmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndp
bmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAg
d2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51
bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxv
Y2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0
aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJl
cjpldmVudE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNr
XV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJl
ciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1
cmU6MC4wZl1dOworICAgIH0KKworICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdl
LCBldmVudHNUb0JlU2VudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZSBpbnRlcmFjdGlv
biwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSBrZXkpCit7Cisg
ICAgLy8gSWYgdHJ1ZSwgdGhlIGtleSdzIG1vZGlmaWVyIGZsYWdzIHNob3VsZCBhZmZlY3Qgb3Ro
ZXIgZXZlbnRzIHdoaWxlIHByZXNzZWQgZG93bi4KKyAgICBib29sIGlzU3RpY2t5TW9kaWZpZXIg
PSBmYWxzZTsKKyAgICAvLyBUaGUgbW9kaWZpZXJzIGNoYW5nZWQgYnkgdGhlIHZpcnR1YWwga2V5
IHdoZW4gaXQgaXMgcHJlc3NlZCBvciByZWxlYXNlZC4KKyAgICAvLyBUaGUgbWFwcGluZyBmcm9t
IGtleXMgdG8gbW9kaWZpZXJzIGlzIHNwZWNpZmllZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3Ig
TlNFdmVudC4KKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBjaGFuZ2VkTW9kaWZpZXJzID0gMDsK
KyAgICAvLyBUaGUgbGlrZWx5IGtleUNvZGUgZm9yIHRoZSB2aXJ0dWFsIGtleSBhcyBkZWZpbmVk
IGluIDxISVRvb2xib3gvRXZlbnRzLmg+LgorICAgIGludCBrZXlDb2RlID0gMDsKKyAgICAvLyBU
eXBpY2FsIGNoYXJhY3RlcnMgcHJvZHVjZWQgYnkgdGhlIHZpcnR1YWwga2V5LCBpZiBhbnkuCisg
ICAgTlNTdHJpbmcgKmNoYXJhY3RlcnMgPSBAIiI7CisKKyAgICAvLyBGSVhNRTogdGhpcyBmdW5j
dGlvbiBhbmQgdGhlIEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBzaG91bGQgcHJvYmFibHkgYWRv
cHQga2V5IG5hbWVzCisgICAgLy8gZnJvbSBXM0MgVUlFdmVudHMgc3RhbmRhcmQuIEZvciBtb3Jl
IGRldGFpbHM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1jb2RlLworCisgICAgc3dp
dGNoIChrZXkpIHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6OlNoaWZ0OgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CisgICAgICAg
IGtleUNvZGUgPSBrVktfU2hpZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29udHJvbDoKKyAgICAgICAgaXNT
dGlja3lNb2RpZmllciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgICAgIGtleUNvZGUgPSBrVktfQ29udHJvbDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpBbHRlcm5hdGU6CisgICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwor
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfT3B0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok1ldGE6CisgICAgICAg
IC8vIFRoZSAnbWV0YScga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQg
aXMgdXN1YWxseQorICAgICAgICAvLyBtYXBwZWQgdG8gdGhlIENvbW1hbmQga2V5IHdoZW4gdXNp
bmcgdGhpcmQtcGFydHkga2V5Ym9hcmRzLgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKKyAgICAgICAgaXNTdGlja3lNb2RpZmll
ciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0NvbW1hbmQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQ29tbWFuZDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpI
ZWxwOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdIZWxw
IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0hl
bHA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6QmFja3NwYWNlOgorICAgICAgICBrZXlDb2RlID0ga1ZLX0RlbGV0
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpUYWI6CisgICAgICAgIGtleUNvZGUgPSBrVktfVGFiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkNsZWFyOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkQ2xlYXI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6RW50ZXI6CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRF
bnRlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKKyAgICAgICAgLy8gVGhlICdwYXVzZScga2V5IGRv
ZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisgICAg
ICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8gbm90
aGluZy4KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6Q2FuY2VsOgorICAgICAgICAvLyBUaGUgJ2NhbmNlbCcga2V5
IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisg
ICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgaW50ZXJuZXQgaXRzIGZ1bmN0aW9uYWxpdHkgaXMg
c2ltaWxhciB0byAnRXNjYXBlJy4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OkVzY2FwZToKKyAgICAgICAga2V5Q29kZSA9IGtWS19Fc2NhcGU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6UGFnZVVwOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19QYWdlVXA7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6UGFnZURvd246CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VEb3duOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkVuZDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRW5kOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkhvbWU6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0hvbWU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TGVm
dEFycm93OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdO
dW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0xlZnRBcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFycm93OgorICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1VwQXJyb3c7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6UmlnaHRBcnJvdzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19SaWdodEFycm93OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRvd25BcnJvdzoKKyAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8
IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19Eb3du
QXJyb3c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6SW5zZXJ0OgorICAgICAgICAvLyBUaGUgJ2luc2VydCcga2V5
IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisg
ICAgICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8g
bm90aGluZy4KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RGVsZXRlOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19G
b3J3YXJkRGVsZXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNwYWNlOgorICAgICAgICBrZXlDb2RlID0ga1ZL
X1NwYWNlOworICAgICAgICBjaGFyYWN0ZXJzID0gQCIgIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTZW1pY29s
b246CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9TZW1pY29sb247CisgICAgICAgIGNoYXJh
Y3RlcnMgPSBAIjsiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKKyAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX0VxdWFsOworICAgICAgICBjaGFyYWN0ZXJzID0gQCI9IjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpS
ZXR1cm46CisgICAgICAgIGtleUNvZGUgPSBrVktfUmV0dXJuOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZDA6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQwOworICAgICAgICBj
aGFyYWN0ZXJzID0gQCIwIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgorICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiMSI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TnVtYmVyUGFkMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tl
eXBhZDI7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjIiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZDM6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVy
aWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQzOworICAgICAgICBjaGFy
YWN0ZXJzID0gQCIzIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0OgorICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlD
b2RlID0ga1ZLX0FOU0lfS2V5cGFkNDsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNCI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkNToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZDU7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjUiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDY6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQ
YWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ2OworICAgICAgICBjaGFyYWN0
ZXJzID0gQCI2IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3OgorICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfS2V5cGFkNzsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNyI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6TnVtYmVyUGFkODoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDg7
CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjgiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDk6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7
CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ5OworICAgICAgICBjaGFyYWN0ZXJz
ID0gQCI5IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0aXBseToKKyAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5
Q29kZSA9IGtWS19BTlNJX0tleXBhZE11bHRpcGx5OworICAgICAgICBjaGFyYWN0ZXJzID0gQCIq
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktf
QU5TSV9LZXlwYWRQbHVzOworICAgICAgICBjaGFyYWN0ZXJzID0gQCIrIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpOdW1iZXJQYWRTdWJ0cmFjdDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZE1pbnVzOworICAgICAgICBjaGFyYWN0ZXJzID0gQCItIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWRTZXBhcmF0b3I6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7CisgICAgICAgIC8vIFRoZSAnU2VwYXJhdG9yJyBrZXkgaXMgb25seSBw
cmVzZW50IG9uIGEgZmV3IGludGVybmF0aW9uYWwga2V5Ym9hcmRzLgorICAgICAgICAvLyBJdCBp
cyB1c3VhbGx5IG1hcHBlZCB0byB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgRGVjaW1hbCAoJy4nIG9y
ICcsJykuCisgICAgICAgIEZBTExUSFJPVUdIOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVjaW1hbDoKKyAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZERlY2ltYWw7CisgICAgICAgIC8vIEZJWE1FOiB0aGlz
IG1pZ2h0IGJlIGxvY2FsZS1kZXBlbmRlbnQuIFNlZSB0aGUgYWJvdmUgY29tbWVudC4KKyAgICAg
ICAgY2hhcmFjdGVycyA9IEAiLiI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGl2aWRlOgorICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGl2aWRlOworICAgICAgICBjaGFyYWN0
ZXJzID0gQCIvIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6CisgICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0g
a1ZLX0YxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktf
RjI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24zOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6OkZ1bmN0aW9uNToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb242OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GNjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpGdW5jdGlvbjc6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y3OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1
bmN0aW9uODoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjg7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b245OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEw
OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMToK
KyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247
CisgICAgICAgIGtleUNvZGUgPSBrVktfRjExOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTI6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
YXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF0pOworCisgICAgQVNTRVJUKGlzU3RpY2t5TW9kaWZpZXIgfHwgaW50ZXJhY3Rpb24gPT0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6Oktl
eVByZXNzKTsKKworICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGV4aXN0aW5nTW9kaWZpZXJzID0g
W05TRXZlbnQgbW9kaWZpZXJGbGFnc107CisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgdXBkYXRl
ZE1vZGlmaWVycyA9IDA7CisgICAgTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0
aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBw
YWdlLnBsYXRmb3JtV2luZG93KCk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRv
dy53aW5kb3dOdW1iZXI7CisgICAgTlNQb2ludCBldmVudFBvc2l0aW9uID0gTlNNYWtlUG9pbnQo
MCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKKworICAgIHN3aXRjaCAoaW50ZXJhY3Rpb24p
IHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50
ZXJhY3Rpb25UeXBlOjpLZXlQcmVzczogeworICAgICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUg
PSBpc1N0aWNreU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgOiBOU0V2ZW50VHlw
ZUtleURvd247CisgICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8
IGNoYW5nZWRNb2RpZmllcnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpr
ZXlDb2RlXV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlSZWxlYXNlOiB7
CisgICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIgPyBOU0V2
ZW50VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5VXA7CisgICAgICAgIHVwZGF0ZWRN
b2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyAmIH5jaGFuZ2VkTW9kaWZpZXJzOworICAgICAg
ICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6ZXZl
bnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZp
ZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0
Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNo
YXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2Fy
ZEludGVyYWN0aW9uVHlwZTo6SW5zZXJ0QnlLZXk6IHsKKyAgICAgICAgLy8gU3RpY2t5IG1vZGlm
aWVycyBzaG91bGQgZWl0aGVyIGJlICdLZXlQcmVzcycgb3IgJ0tleVJlbGVhc2UnLgorICAgICAg
ICBBU1NFUlQoIWlzU3RpY2t5TW9kaWZpZXIpOworICAgICAgICBpZiAoaXNTdGlja3lNb2RpZmll
cikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhp
c3RpbmdNb2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOworICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3du
IGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRp
bWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBj
aGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3Rl
cnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBs
b2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1l
c3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hh
cmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJz
IGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIH0KKworICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0Jl
U2VudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFN0cmluZyYga2V5U2Vx
dWVuY2UpCit7CisgICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOworCisgICAgLy8gU3BsaXQgdGhlIHRleHQgaW50byBjb21iaW5p
bmcgY2hhcmFjdGVyIHNlcXVlbmNlcyBhbmQgc2VuZCBlYWNoIHNlcGFyYXRlbHkuCisgICAgLy8g
VGhpcyBoYXMgbm8gc2ltaWxhcml0eSB0byBob3cga2V5Ym9hcmRzIHdvcmsgd2hlbiBpbnB1dHRp
bmcgY29tcGxleCB0ZXh0LgorICAgIC8vIFRoaXMgY29tbWFuZCBpcyBtb3JlIHNpbWlsYXIgdG8g
dGhlICdpbnNlcnRUZXh0OicgZWRpdGluZyBjb21tYW5kLCBleGNlcHQKKyAgICAvLyB0aGF0IHRo
aXMgZW1pdHMga2V5dXAva2V5ZG93bi9rZXlwcmVzcyBldmVudHMgZm9yIHJvdWdobHkgZWFjaCBj
aGFyYWN0ZXIuCisgICAgLy8gVGhpcyBBUEkgc2hvdWxkIG1vdmUgbW9yZSB0b3dhcmRzIHRoYXQg
ZGlyZWN0aW9uIGluIHRoZSBmdXR1cmUuCisgICAgTlNTdHJpbmcgKnRleHQgPSBrZXlTZXF1ZW5j
ZTsKKworICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVycyA9IFtOU0V2ZW50IG1vZGlm
aWVyRmxhZ3NdOworICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtOU0RhdGUgdGltZUlu
dGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5w
bGF0Zm9ybVdpbmRvdygpOworICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSB3aW5kb3cud2lu
ZG93TnVtYmVyOworICAgIE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9IE5TTWFrZVBvaW50KDAsIHdp
bmRvdy5mcmFtZS5zaXplLmhlaWdodCk7CisKKyAgICBbdGV4dCBlbnVtZXJhdGVTdWJzdHJpbmdz
SW5SYW5nZTpOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCkgb3B0aW9uczpOU1N0cmluZ0VudW1l
cmF0aW9uQnlDb21wb3NlZENoYXJhY3RlclNlcXVlbmNlcyB1c2luZ0Jsb2NrOl4oTlNTdHJpbmcg
KnN1YnN0cmluZywgTlNSYW5nZSBzdWJzdHJpbmdSYW5nZSwgTlNSYW5nZSBlbmNsb3NpbmdSYW5n
ZSwgQk9PTCAqc3RvcCkgeworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0aW9uOmV2ZW50UG9z
aXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6c3Vic3RyaW5nIGNoYXJh
Y3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6MF1d
OworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJl
ciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2Rp
ZmllcnM6c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdXTsKKyAgICB9XTsKKworICAg
IHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYkF1dG9tYXRpb25T
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViQXV0b21h
dGlvblNlc3Npb25Db2NvYS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIxZDhm
MDg1OTRmNTk0ZmU4YmYzZTU2YTQ1YTE4YjJjYzQ0NWQxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDUwOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oIgotCi0jaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIl9XS0F1
dG9tYXRpb25TZXNzaW9uLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50
Lmg+Ci0jaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KLQotI2lmIFVTRShBUFBLSVQpCi0jaW1wb3J0
IDxISVRvb2xib3gvRXZlbnRzLmg+Ci0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0jaWYgVVNFKEFQUEtJVCkKLQotc3RhdGljIGNvbnN0
IE5TSW50ZWdlciBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVtYmVyID0gMDsKLXN0
YXRpYyBjb25zdCB2b2lkICpzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmpl
Y3RLZXkgPSAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5Owot
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2Uo
V2ViUGFnZVByb3h5JiBwYWdlLCBOU0FycmF5ICpldmVudHNUb1NlbmQpCi17Ci0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLQotICAgIGZvciAoTlNFdmVudCAq
ZXZlbnQgaW4gZXZlbnRzVG9TZW5kKSB7Ci0gICAgICAgIC8vIFRha2UgZm9jdXMgYmFjayBpbiBj
YXNlIHRoZSBJbnNwZWN0b3IgYmVjYW1lIGZvY3VzZWQgd2hpbGUgdGhlIHByaW9yIGNvbW1hbmQg
b3IKLSAgICAgICAgLy8gTlNFdmVudCB3YXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cuCi0gICAg
ICAgIFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKLQotICAgICAgICBtYXJrRXZl
bnRBc1N5bnRoZXNpemVkRm9yQXV0b21hdGlvbihldmVudCk7Ci0gICAgICAgIFt3aW5kb3cgc2Vu
ZEV2ZW50OmV2ZW50XTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1h
cmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKmV2ZW50KQotewotICAg
IG9iamNfc2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2
ZW50QXNzb2NpYXRlZE9iamVjdEtleSwgbV9zZXNzaW9uSWRlbnRpZmllciwgT0JKQ19BU1NPQ0lB
VElPTl9SRVRBSU5fTk9OQVRPTUlDKTsKLX0KLQotYm9vbCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
d2FzRXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqZXZlbnQpCi17Ci0gICAg
TlNTdHJpbmcgKnNlbmRlclNlc3Npb25JZGVudGlmaWVyID0gb2JqY19nZXRBc3NvY2lhdGVkT2Jq
ZWN0KGV2ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5
KTsKLSAgICBpZiAoW3NlbmRlclNlc3Npb25JZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzptX3Nl
c3Npb25JZGVudGlmaWVyXSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBzd2l0Y2ggKGV2
ZW50LnR5cGUpIHsKLSAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKLSAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlVXA6Ci0gICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6
Ci0gICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKLSAgICAgICAgLy8gVXNlIHRoaXMg
YXMgYSBiYWNrdXAgZm9yIGNoZWNraW5nIG1vdXNlIGV2ZW50cywgd2hpY2ggYXJlIGZyZXF1ZW50
bHkgY29waWVkCi0gICAgICAgIC8vIGFuZC9vciBmYWtlZCBieSBBcHBLaXQsIGNhdXNpbmcgdGhl
bSB0byBsb3NlIHRoZWlyIGFzc29jaWF0ZWQgb2JqZWN0IHRhZy4KLSAgICAgICAgcmV0dXJuIGV2
ZW50LmV2ZW50TnVtYmVyID09IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB2
aWV3UG9zaXRpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJh
Y3Rpb24gaW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
QnV0dG9uIGJ1dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycyBrZXlNb2RpZmllcnMpCi17Ci0gICAg
SW50UmVjdCB3aW5kb3dSZWN0OwotICAgIHBhZ2Uucm9vdFZpZXdUb1dpbmRvdyhJbnRSZWN0KHZp
ZXdQb3NpdGlvbiwgSW50U2l6ZSgpKSwgd2luZG93UmVjdCk7Ci0gICAgSW50UG9pbnQgd2luZG93
UG9zaXRpb24gPSB3aW5kb3dSZWN0LmxvY2F0aW9uKCk7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJG
bGFncyBtb2RpZmllcnMgPSAwOwotICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6TWV0
YUtleSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwot
ICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6QWx0S2V5KQotICAgICAgICBtb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYg
V2ViRXZlbnQ6OkNvbnRyb2xLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbDsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OlNoaWZ0S2V5
KQotICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwotICAgIGlm
IChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCi0gICAgICAgIG1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7Ci0KLSAgICBOU1RpbWVJbnRlcnZhbCB0
aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07Ci0gICAg
TlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLSAgICBOU0ludGVnZXIg
d2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKLQotICAgIE5TRXZlbnRUeXBlIGRv
d25FdmVudFR5cGU7Ci0gICAgTlNFdmVudFR5cGUgZHJhZ0V2ZW50VHlwZTsKLSAgICBOU0V2ZW50
VHlwZSB1cEV2ZW50VHlwZTsKLSAgICBzd2l0Y2ggKGJ1dHRvbikgewotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok5vbmU6Ci0gICAgICAgIGRv
d25FdmVudFR5cGUgPSB1cEV2ZW50VHlwZSA9IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6TW91c2VCdXR0b246OkxlZnQ6Ci0gICAgICAgIGRvd25FdmVudFR5cGUgPSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd247Ci0gICAgICAgIGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6TWlkZGxlOgotICAgICAgICBkb3duRXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjsKLSAgICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6UmlnaHQ6Ci0gICAgICAgIGRvd25FdmVu
dFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwotICAgICAgICB1cEV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBh
dXRvIGV2ZW50c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
XSk7Ci0KLSAgICBOU0ludGVnZXIgZXZlbnROdW1iZXIgPSBzeW50aGVzaXplZE1vdXNlRXZlbnRN
YWdpY0V2ZW50TnVtYmVyOwotCi0gICAgc3dpdGNoIChpbnRlcmFjdGlvbikgewotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6TW92ZToK
LSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6ZHJhZ0V2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdz
Om1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDowIHByZXNzdXJl
OjAuMGZdXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpEb3duOgotICAgICAgICAvLyBIYXJkLWNvZGUg
dGhlIGNsaWNrIGNvdW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vz
c2l2ZSBzaW11bGF0ZWQKLSAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFs
bHkgY291bnRlZCBhcyBhIGRvdWJsZSBjbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVT
ZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBs
b2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6
dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlj
a11dOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246Ok1vdXNlSW50ZXJhY3Rpb246OlVwOgotICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNs
aWNrIGNvdW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBz
aW11bGF0ZWQKLSAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291
bnRlZCBhcyBhIGRvdWJsZSBjbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFk
ZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246
d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFt
cCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50
TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6
U2luZ2xlQ2xpY2s6Ci0gICAgICAgIC8vIFNlbmQgc2VwYXJhdGUgZG93biBhbmQgdXAgZXZlbnRz
LiBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sgZXZlbnQuCi0gICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRv
d25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmll
cnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRp
b24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG91YmxlQ2xpY2s6
Ci0gICAgICAgIC8vIFNlbmQgbXVsdGlwbGUgZG93biBhbmQgdXAgZXZlbnRzIHdpdGggcHJvcGVy
IGNsaWNrIGNvdW50LgotICAgICAgICAvLyBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5n
bGUtY2xpY2sgZXZlbnQgdGhlbiBkb3VibGUtY2xpY2sgZXZlbnQuCi0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5
cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0
Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZp
ZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93
TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZTowLjBmXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRp
b24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6MiBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50
c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5
cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MiBwcmVzc3VyZTowLjBmXV07Ci0gICAgfQot
Ci0gICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50Lmdl
dCgpKTsKLX0KLQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtl
eVN0cm9rZShXZWJQYWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkKLXsKLSAgICAvLyBJZiB0cnVlLCB0aGUg
a2V5J3MgbW9kaWZpZXIgZmxhZ3Mgc2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJl
c3NlZCBkb3duLgotICAgIGJvb2wgaXNTdGlja3lNb2RpZmllciA9IGZhbHNlOwotICAgIC8vIFRo
ZSBtb2RpZmllcnMgY2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2Vk
IG9yIHJlbGVhc2VkLgotICAgIC8vIFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMg
aXMgc3BlY2lmaWVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgotICAgIE5TRXZl
bnRNb2RpZmllckZsYWdzIGNoYW5nZWRNb2RpZmllcnMgPSAwOwotICAgIC8vIFRoZSBsaWtlbHkg
a2V5Q29kZSBmb3IgdGhlIHZpcnR1YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVu
dHMuaD4uCi0gICAgaW50IGtleUNvZGUgPSAwOwotICAgIC8vIFR5cGljYWwgY2hhcmFjdGVycyBw
cm9kdWNlZCBieSB0aGUgdmlydHVhbCBrZXksIGlmIGFueS4KLSAgICBOU1N0cmluZyAqY2hhcmFj
dGVycyA9IEAiIjsKLQotICAgIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0b21h
dGlvbiBwcm90b2NvbCBlbnVtIHNob3VsZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKLSAgICAv
LyBmcm9tIFczQyBVSUV2ZW50cyBzdGFuZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3VpZXZlbnRzLWNvZGUvCi0KLSAgICBzd2l0Y2ggKGtleSkgewotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6Ci0g
ICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19TaGlm
dDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpDb250cm9sOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1
ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Db250cm9sOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkFsdGVybmF0
ZToKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtW
S19PcHRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TWV0YToKLSAgICAgICAgLy8gVGhlICdtZXRhJyBrZXkg
ZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBpcyB1c3VhbGx5Ci0gICAgICAg
IC8vIG1hcHBlZCB0byB0aGUgQ29tbWFuZCBrZXkgd2hlbiB1c2luZyB0aGlyZC1wYXJ0eSBrZXli
b2FyZHMuCi0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpDb21tYW5kOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19Db21tYW5kOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhlbHA6Ci0gICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgfCBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfSGVscDsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpC
YWNrc3BhY2U6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRGVsZXRlOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlRh
YjoKLSAgICAgICAga2V5Q29kZSA9IGtWS19UYWI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q2xlYXI6Ci0gICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRDbGVhcjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRl
cjoKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZEVudGVyOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OlBhdXNlOgotICAgICAgICAvLyBUaGUgJ3BhdXNlJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBw
bGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gVGhlIHNlbWFudGlj
cyBhcmUgdW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpDYW5jZWw6Ci0gICAgICAgIC8vIFRoZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24g
QXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gQWNjb3JkaW5n
IHRvIHRoZSBpbnRlcm5ldCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBzaW1pbGFyIHRvICdFc2NhcGUn
LgotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RXNjYXBlOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0VzY2FwZTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdl
VXA6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0
aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93
bjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUGFnZURvd247Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsK
LSAgICAgICAga2V5Q29kZSA9IGtWS19FbmQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SG9tZToKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAg
IGtleUNvZGUgPSBrVktfSG9tZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6Ci0gICAgICAgIGNo
YW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50
TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfTGVmdEFycm93Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OlVwQXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfVXBBcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93Ogot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFk
IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX1Jp
Z2h0QXJyb3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RG93bkFycm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Rvd25BcnJvdzsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpJbnNlcnQ6Ci0gICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkgZG9lcyBub3QgZXhpc3Qgb24g
QXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gVGhlIHNlbWFu
dGljcyBhcmUgdW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpEZWxldGU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0ZvcndhcmREZWxldGU7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6U3BhY2U6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfU3BhY2U7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIiAiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX1NlbWljb2xvbjsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiOyI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RXF1YWxzOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfRXF1YWw7Ci0gICAg
ICAgIGNoYXJhY3RlcnMgPSBAIj0iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKLSAgICAgICAga2V5
Q29kZSA9IGtWS19SZXR1cm47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDA7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjAiOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6Ok51bWJlclBhZDE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWQxOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIxIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQyOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMjsKLSAgICAgICAgY2hh
cmFjdGVycyA9IEAiMiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMzoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5
Q29kZSA9IGtWS19BTlNJX0tleXBhZDM7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjMiOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6Ok51bWJlclBhZDQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlw
YWQ0OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI0IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNTsKLSAgICAgICAgY2hhcmFj
dGVycyA9IEAiNSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNjoKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX0tleXBhZDY7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjYiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZDc6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ3
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI3IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4Ogot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFk
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkODsKLSAgICAgICAgY2hhcmFjdGVy
cyA9IEAiOCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkOToKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZDk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjkiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZE11bHRpcGx5OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5
cGFkTXVsdGlwbHk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIioiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZEFkZDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZFBsdXM7Ci0g
ICAgICAgIGNoYXJhY3RlcnMgPSBAIisiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTWludXM7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIi0iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAg
ICAgICAgLy8gVGhlICdTZXBhcmF0b3InIGtleSBpcyBvbmx5IHByZXNlbnQgb24gYSBmZXcgaW50
ZXJuYXRpb25hbCBrZXlib2FyZHMuCi0gICAgICAgIC8vIEl0IGlzIHVzdWFsbHkgbWFwcGVkIHRv
IHRoZSBzYW1lIGNoYXJhY3RlciBhcyBEZWNpbWFsICgnLicgb3IgJywnKS4KLSAgICAgICAgRkFM
TFRIUk9VR0g7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpOdW1iZXJQYWREZWNpbWFsOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lf
S2V5cGFkRGVjaW1hbDsKLSAgICAgICAgLy8gRklYTUU6IHRoaXMgbWlnaHQgYmUgbG9jYWxlLWRl
cGVuZGVudC4gU2VlIHRoZSBhYm92ZSBjb21tZW50LgotICAgICAgICBjaGFyYWN0ZXJzID0gQCIu
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREaXZpZGU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfQU5TSV9LZXlwYWREaXZpZGU7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIi8iOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkZ1bmN0aW9uMToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjE7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6RnVuY3Rpb24yOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpG
dW5jdGlvbjM6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YzOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uNDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVu
Y3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb241
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjY6Ci0g
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwot
ICAgICAgICBrZXlDb2RlID0ga1ZLX0Y2OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfRjc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244OgotICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19GODsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6Ci0gICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlD
b2RlID0ga1ZLX0Y5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0YxMDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgotICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19GMTE7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfRjEyOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBhdXRvIGV2ZW50c1RvQmVTZW50
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0KLSAgICBBU1NFUlQo
aXNTdGlja3lNb2RpZmllciB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3MpOwotCi0gICAgTlNF
dmVudE1vZGlmaWVyRmxhZ3MgZXhpc3RpbmdNb2RpZmllcnMgPSBbTlNFdmVudCBtb2RpZmllckZs
YWdzXTsKLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyB1cGRhdGVkTW9kaWZpZXJzID0gMDsKLSAg
ICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVm
ZXJlbmNlRGF0ZV07Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3co
KTsKLSAgICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKLSAg
ICBOU1BvaW50IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQb2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6
ZS5oZWlnaHQpOwotCi0gICAgc3dpdGNoIChpbnRlcmFjdGlvbikgewotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVBy
ZXNzOiB7Ci0gICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIg
PyBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5RG93bjsKLSAgICAgICAg
dXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsK
LSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhU
eXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRl
ZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKLSAgICAgICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
IDogTlNFdmVudFR5cGVLZXlVcDsKLSAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5n
TW9kaWZpZXJzICYgfmNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBh
ZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZl
bnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVz
dGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hh
cmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6
Tk8ga2V5Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpJ
bnNlcnRCeUtleTogewotICAgICAgICAvLyBTdGlja3kgbW9kaWZpZXJzIHNob3VsZCBlaXRoZXIg
YmUgJ0tleVByZXNzJyBvciAnS2V5UmVsZWFzZScuCi0gICAgICAgIEFTU0VSVCghaXNTdGlja3lN
b2RpZmllcik7Ci0gICAgICAgIGlmIChpc1N0aWNreU1vZGlmaWVyKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8IGNo
YW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3Np
dGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVy
cyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5
Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRp
b24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2lu
ZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNv
ZGU6a2V5Q29kZV1dOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgfQotCi0gICAgc2VuZFN5
bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKLX0KLQot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKLXsKLSAgICBhdXRv
IGV2ZW50c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
Ci0KLSAgICAvLyBTcGxpdCB0aGUgdGV4dCBpbnRvIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVu
Y2VzIGFuZCBzZW5kIGVhY2ggc2VwYXJhdGVseS4KLSAgICAvLyBUaGlzIGhhcyBubyBzaW1pbGFy
aXR5IHRvIGhvdyBrZXlib2FyZHMgd29yayB3aGVuIGlucHV0dGluZyBjb21wbGV4IHRleHQuCi0g
ICAgLy8gVGhpcyBjb21tYW5kIGlzIG1vcmUgc2ltaWxhciB0byB0aGUgJ2luc2VydFRleHQ6JyBl
ZGl0aW5nIGNvbW1hbmQsIGV4Y2VwdAotICAgIC8vIHRoYXQgdGhpcyBlbWl0cyBrZXl1cC9rZXlk
b3duL2tleXByZXNzIGV2ZW50cyBmb3Igcm91Z2hseSBlYWNoIGNoYXJhY3Rlci4KLSAgICAvLyBU
aGlzIEFQSSBzaG91bGQgbW92ZSBtb3JlIHRvd2FyZHMgdGhhdCBkaXJlY3Rpb24gaW4gdGhlIGZ1
dHVyZS4KLSAgICBOU1N0cmluZyAqdGV4dCA9IGtleVNlcXVlbmNlOwotCi0gICAgTlNFdmVudE1v
ZGlmaWVyRmxhZ3MgbW9kaWZpZXJzID0gW05TRXZlbnQgbW9kaWZpZXJGbGFnc107Ci0gICAgTlNU
aW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5j
ZURhdGVdOwotICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7Ci0g
ICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7Ci0gICAgTlNQ
b2ludCBldmVudFBvc2l0aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVp
Z2h0KTsKLQotICAgIFt0ZXh0IGVudW1lcmF0ZVN1YnN0cmluZ3NJblJhbmdlOk5TTWFrZVJhbmdl
KDAsIHRleHQubGVuZ3RoKSBvcHRpb25zOk5TU3RyaW5nRW51bWVyYXRpb25CeUNvbXBvc2VkQ2hh
cmFjdGVyU2VxdWVuY2VzIHVzaW5nQmxvY2s6XihOU1N0cmluZyAqc3Vic3RyaW5nLCBOU1Jhbmdl
IHN1YnN0cmluZ1JhbmdlLCBOU1JhbmdlIGVuY2xvc2luZ1JhbmdlLCBCT09MICpzdG9wKSB7Ci0g
ICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdz
Om1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZp
ZXJzOnN1YnN0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07Ci0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtl
eVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJh
Y3RlcnM6c3Vic3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNB
UmVwZWF0Ok5PIGtleUNvZGU6MF1dOwotICAgIH1dOwotCi0gICAgc2VuZFN5bnRoZXNpemVkRXZl
bnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKLX0KLQotU3RyaW5nIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGFIYW5kbGUpCi17Ci0gICAgUmVmUHRyPFNo
YXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2VEYXRh
SGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IGJpdG1hcC0+bWFrZUNHSW1hZ2UoKTsKLSAgICBSZXRh
aW5QdHI8TlNNdXRhYmxlRGF0YT4gaW1hZ2VEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEg
YWxsb2NdIGluaXRdKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBkZXN0
aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoKENGTXV0
YWJsZURhdGFSZWYpaW1hZ2VEYXRhLmdldCgpLCBrVVRUeXBlUE5HLCAxLCAwKSk7Ci0gICAgaWYg
KCFkZXN0aW5hdGlvbikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgQ0dJbWFnZURl
c3RpbmF0aW9uQWRkSW1hZ2UoZGVzdGluYXRpb24uZ2V0KCksIGNnSW1hZ2UuZ2V0KCksIDApOwot
ICAgIENHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKTsKLQotICAg
IHJldHVybiBbaW1hZ2VEYXRhIGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXTsKLX0K
LQotI2VuZGlmIC8vIFVTRShBUFBLSVQpCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkz
OWRkZTliNWRlMDRhNDFkMGVlNTJkNTBkYjY1OWUzY2ZhMDA0YzAuLjgwNTFhNzhhMDhkNjhjNjhl
M2EyNjQ4NzY0Y2ZlNDYyYzMxNThjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNjksMTIgKzEyNjksMTUgQEAKIAkJOTkw
RDI4QzAxQzY1NTNGMTAwOTg2OTc3IC8qIEFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTBEMjhCMzFDNjUy
NkQ0MDA5ODY5NzcgLyogQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLzsgfTsKIAkJOTk1
NUE2RUMxQzc5ODBDMjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZFQjFDNzk4MEJCMDBF
QjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLzsgfTsKIAkJOTk1NUE2RUQxQzc5ODBD
QTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkVBMUM3OTgwQkIwMEVCNkE5MyAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgKi87IH07Ci0JCTk5NTVBNkVGMUM3OTgxMDgwMEVCNkE5
MyAvKiBBdXRvbWF0aW9uLmpzb24gaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5NTVBNkY0
MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYwMUM3OTg2
NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAqLzsgfTsKIAkJ
OTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYx
MUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggKi87IH07
CiAJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3Rz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVB
NkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLzsg
fTsKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVj
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVB
NkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi87IH07
Ci0JCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NkJE
RDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi87IH07
CisJCTk5QzNBRTI0MURBRDhFMzcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzNBRTIz
MURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLzsgfTsKKwkJ
OTlDM0FFMjcxREFEOTQ4OTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyNjFE
QUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLzsgfTsKKwkJ
OTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFE
QURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLzsgfTsKKwkJ
OTlDM0FFMkUxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9tYXRpb24uanNvbiBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzNBRTI5MURBRDlGMEYwMEFGNUMx
NiAvKiBBdXRvbWF0aW9uLmpzb24gKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTlDM0FFMkYxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9tYXRpb24taU9T
Lmpzb24gaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMz
QUUyODFEQUQ5RjBGMDBBRjVDMTYgLyogQXV0b21hdGlvbi1pT1MuanNvbiAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUM4MUQ1OTFDMjBFMUU1MDA1
QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDU2MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9u
Q2xpZW50Lm1tICovOyB9OwogCQk5OUM4MUQ1QTFDMjBFN0UyMDA1QzRDODIgLyogQXV0b21hdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTlDODFENTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCAqLzsgfTsKIAkJ
OTlDODFENUQxQzIxRjM4QjAwNUM0QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDVCMUMyMEU4MTcw
MDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CkBAIC0zMzYyLDE0ICszMzY1
LDE4IEBACiAJCTk5MEQyOEIzMUM2NTI2RDQwMDk4Njk3NyAvKiBBUElBdXRvbWF0aW9uU2Vzc2lv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9u
U2Vzc2lvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTBEMjhCNzFD
NjUzOUEwMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvblNlc3Npb25DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwRDI4QjgxQzY1MzlBMDAwOTg2OTc3IC8qIEF1dG9tYXRp
b25TZXNzaW9uQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQXV0b21hdGlvblNlc3Npb25DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk5NTVBNkU5MUM3OTgwQkIwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmpzb247IHBhdGggPSBBdXRvbWF0aW9uLmpzb247IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5NTVBNkU5MUM3OTgwQkIwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24uaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXV0b21hdGlvbi5qc29uLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZF
QjFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RjAxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25C
YWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERp
c3BhdGNoZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25C
YWNrZW5kRGlzcGF0Y2hlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2
RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0b21hdGlvblByb3RvY29sT2JqZWN0
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkYzMUM3OTg2NjQwMEVC
NkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTk4NkJERDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FFMjYxREFEOTQ4
NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUMzQUUyODFEQUQ5RjBGMDBBRjVDMTYgLyog
QXV0b21hdGlvbi1pT1MuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuanNvbjsgcGF0aCA9ICJBdXRvbWF0
aW9uLWlPUy5qc29uIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FFMjkxREFE
OUYwRjAwQUY1QzE2IC8qIEF1dG9tYXRpb24uanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuanNvbjsgcGF0
aCA9IEF1dG9tYXRpb24uanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FF
MkMxREFEQTZBNzAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAv
KiBBdXRvbWF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dG9tYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENTYx
QzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvbWF0aW9uQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9u
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODAwLDcgKzQ4MDcsNiBA
QAogCQkJCTJEQUY0RkZBMUI2MzYxODEwMDYwMTNENiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwICovLAogCQkJCTJEMTI1QzVDMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRy
b2xsZXIuaCAqLywKIAkJCQkyRDFCNUQ1QTE4NTg2NTk5MDA2QzY1OTYgLyogVmlld0dlc3R1cmVD
b250cm9sbGVyLm1lc3NhZ2VzLmluICovLAotCQkJCTk5ODZCREQ2MUNBOUEyMjIwMDQ4MDBBQSAv
KiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovLAogCQkJCTFBQzAyNzNFMTk2NjIyRDYw
MEMxMkI3NSAvKiBXZWJQYWdlUHJveHlDb2NvYS5tbSAqLywKIAkJCQk3QzQ2OTRDQjFBNEI1MTBB
MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gKi8sCiAJCQkJQ0RBMjlBMUUx
Q0JFQjVGQjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oICovLApA
QCAtNTg1MCwxNCArNTg1NiwzMyBAQAogCQk5OTU1QTZFODFDNzk4MDkwMDBFQjZBOTMgLyogQXV0
b21hdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
OTk1NUE2RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiAqLywKKwkJCQk5OUMz
QUUyNTFEQUQ5NDY3MDBBRjVDMTYgLyogY29jb2EgKi8sCisJCQkJOTlDM0FFMjIxREFEOEUxNDAw
QUY1QzE2IC8qIG1hYyAqLywKKwkJCQk5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0b21h
dGlvbi5qc29uLmluICovLAogCQkJCTk5NTVBNkVBMUM3OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgKi8sCiAJCQkJOTk1NUE2RUIxQzc5ODBCQjAwRUI2QTkzIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uLmggKi8sCiAJCQkJMUMwQTE5NTkxQzkwMDZFQTAwRkUwRUJCIC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTk5QzNBRTJDMURBREE2
QTcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
OTlDM0FFMjIxREFEOEUxNDAwQUY1QzE2IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTlDM0FFMjMxREFEOEUzNDAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBtYWM7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk5OUMzQUUyNTFEQUQ5NDY3MDBBRjVDMTYgLyog
Y29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk5
QzNBRTI2MURBRDk0ODUwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICov
LAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCUExODJENUIxMUJFNkJDRjQwMDg3QTdDQyAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzA3Myw2ICs3MDk4LDggQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJBODgzQUQwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTk5QzNBRTI5MURB
RDlGMEYwMEFGNUMxNiAvKiBBdXRvbWF0aW9uLmpzb24gKi8sCisJCQkJOTlDM0FFMjgxREFEOUYw
RjAwQUY1QzE2IC8qIEF1dG9tYXRpb24taU9TLmpzb24gKi8sCiAJCQkJOTk1NUE2RjAxQzc5ODY2
NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovLAogCQkJCTk5
NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmgg
Ki8sCiAJCQkJOTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9i
amVjdHMuY3BwICovLApAQCAtNzQ2MSw2ICs3NDg4LDggQEAKIAkJCQkzN0E2NEU1NTE4RjM4RTND
MDBFQjMwRjEgLyogX1dLSW5wdXREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3OTBB
OUQxQUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xheW91dE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExMThBOUYzMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OUMzQUUyRTFEQURCMDVDMDBBRjVDMTYgLyogQXV0b21hdGlvbi5q
c29uIGluIEhlYWRlcnMgKi8sCisJCQkJOTlDM0FFMkYxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9t
YXRpb24taU9TLmpzb24gaW4gSGVhZGVycyAqLywKIAkJCQk5MzIzNjExRTFCMDE1REE4MDBGQTky
MzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQz
RTgyQTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Qzg5RDJENzFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtNzU2Nyw3ICs3NTk2
LDYgQEAKIAkJCQk1MThFOEVGOTE2QjIwOTFDMDBFOTE0MjkgLyogQXV0aGVudGljYXRpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNThBMzEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDEwMkRB
MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKLQkJCQk5OTU1QTZFRjFDNzk4MTA4MDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNr
ZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5QzgxRDVBMUMyMEU3RTIwMDVD
NEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU1QTZGNzFD
Nzk4NkU1MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC04MDg4LDYgKzgxMTYsNyBAQAogCQkJCUJDNDk4NjJGMTI0RDE4QzEwMEQ4MzRFMSAv
KiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjA0RUYyMTFD
ODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZUluaXRpYWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTY1Qjg2RjFFMTJGMTFERTMwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCNDFCQzQ1QjAxMDA4MkRGNzcg
LyogV0tCdW5kbGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzA0M0NDMTJGNzVFRTAwMDY0
NzJCOSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
QTcyOERFMUIxQkFEMzgwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTkxOTksNiArOTIyOCw3IEBACiAJCQkJNTFGRDE4QjUxNjUx
RkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTUyNTUxQTE3MDExODE5MDAzRDdBREIgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTQyNkVGMUMyM0Y4MDkwMEQ0
MTE4MyAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5OUMzQUUyNzFEQUQ5NDg5MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2Nv
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4M0FDMTZCNEJGM0YwMEEyNzhGRSAvKiBOZXR3
b3JrU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzIwQ0I5RDFCQjBE
Q0ZBMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTMxQTJFQzU1MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzNjMsNyArOTM5Myw2IEBACiAJCQkJMUE4RTdEM0Mx
OEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFREExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAvKiBX
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2RUQx
Qzc5ODBDQTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4RjAwRkUwRUJCIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDMEExOTQ2MUM4RkYxQTgwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTUzMUM4RkZERkIwMEZFMEVCQiAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
OTUwNyw2ICs5NTM2LDcgQEAKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFn
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMjEyN0MzMTkw
ODIzOUEwMERBRjM1QyAvKiBXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDNDY5NEQwMUE1MUUzNjgwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTlDM0FFMjQxREFEOEUzNzAwQUY1QzE2IC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEwQTAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M0Njk0QzkxQTRCNEVBMTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc3NDFEMUIyRjhBMDA3QzlCRDEgLyog
V2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291522</attachid>
            <date>2016-10-13 15:01:53 -0700</date>
            <delta_ts>2016-10-13 15:31:52 -0700</delta_ts>
            <desc>Fix CMake</desc>
            <filename>bug-163297-20161013145827.patch</filename>
            <type>text/plain</type>
            <size>154397</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDZjMjE0YzFhYjk5MzQ4
NDZmN2QzNDRiZjVhN2IxNDJmNmU2NTg3YS4uYzdhMzYwYjVlMzJhZDFjYmQ4OTJjNWZlYmU3NWQ4
YTQwYWNkZDYzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc3IEBACisyMDE2LTEwLTEzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
TWFjLXNwZWNpZmljIGF1dG9tYXRpb24gY29tbWFuZHMgdG8gYSBzZXBhcmF0ZSBpbXBsZW1lbnRh
dGlvbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjMyOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBhbGwgQXV0b21hdGlvbiBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuIFN0YXJ0IHNwbGl0dGluZyBv
dXQKKyAgICAgICAgY29tbWFuZCBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBiYXNl
ZCBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLgorCisgICAgICAgIEFzIHBhcnQgb2YgdGhpcywgc3Rh
cnQgZ2VuZXJhdGluZyBhIHNlcGFyYXRlIEF1dG9tYXRpb24taU9TLmpzb24gZmlsZSB0aGF0Cisg
ICAgICAgIGRlZmluZXMgd2hpY2ggY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBmb3IgaU9TLiBSaWdo
dCBub3cgdGhpcyBpcyBzdHJpY3RseSBhIHN1YnNldAorICAgICAgICBvZiBNYWMgY29tbWFuZHMs
IGJ1dCBpT1Mtc3BlY2lmaWMgY29tbWFuZHMgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuCisK
KyAgICAgICAgUmF0aGVyIHRoYW4gYWRkaW5nIG5ldyBhdmFpbGFiaWxpdHkga2V5cyB0byB0aGUg
SlNPTi1SUEMgc3BlY2lmaWNhdGlvbiBmaWxlcywgZm9yIG5vdworICAgICAgICBqdXN0IHJ1biB0
aGUgcHJlcHJvY2Vzc29yIG92ZXIgQXV0b21hdGlvbi5qc29uLmluIHRvIGdlbmVyYXRlIHBlciBw
bGF0Zm9ybSBmaWxlcy4KKyAgICAgICAgS2VlcCAnQXV0b21hdGlvbi5qc29uJyBhcyB0aGUgbmFt
ZSBmb3IgdGhlIE1hYyBzcGVjaWZpY2F0aW9uIHRvIGF2b2lkIGJyZWFraW5nIGNsaWVudHMuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgLSBBbHdheXMgZ2VuZXJhdGUgYW5k
IHVzZSB0aGUgTWFjIHNwZWNpZmljYXRpb24gZmlsZSwgYXMgdGhlICJNYWMtb25seSIgY29tbWFu
ZAorICAgICAgICAgIGltcGxlbWVudGF0aW9ucyBhcmUgYWN0dWFsbHkgY3Jvc3MtcGxhdGZvcm0g
ZHVlIHRvIHBsYXRmb3JtRm9vIHN0dWIgaW1wbGVtZW50YXRpb25zLgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgIC0gU2NyYXBlIFdURl9QTEFURk9STV9JT1MgZnJvbSBQ
bGF0Zm9ybS5oIGFuZCB1c2UgaXQgdG8gZGVjaWRlIHdoaWNoIHNwZWNpZmljYXRpb24KKyAgICAg
ICAgICB0byB1c2UgZm9yIGdlbmVyYXRpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIEF1dG9tYXRp
b25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIuCisgICAgICAgIC0gR2VuZXJhdGUgYm90aCBNYWMg
YW5kIGlPUyBzcGVjaWZpY2F0aW9uIGZpbGVzIHJlZ2FyZGxlc3Mgb2YgdGhlIHRhcmdldCBwbGF0
Zm9ybSwKKyAgICAgICAgICBzbyB0aGF0IGNsaWVudHMgY2FuIGZpbmQgdGhlIG1vc3QgcmVjZW50
IHNwZWNpZmljYXRpb24gd2l0aG91dCBkaWdnaW5nIGluIHRoZSBTREsuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24uaW46IFJlbmFtZWQgZnJvbSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24uCisgICAgICAg
IE1hcmsgb3V0IGNvbW1hbmRzIHRoYXQgYXJlIG5vdyBvZmZpY2lhbGx5IE1hYy1vbmx5OgorICAg
ICAgICAgICAgLSByZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dAorICAgICAgICAgICAgLSBt
b3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQKKyAgICAgICAgICAgIC0gaW5zcGVjdEJyb3dzaW5n
Q29udGV4dAorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzaXpl
V2luZG93T2ZCcm93c2luZ0NvbnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6bW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Omluc3BlY3RCcm93c2luZ0Nv
bnRleHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgLSBNb3ZlIHNo
YXJlZCBjb252ZW5pZW5jZSBtYWNyb3MgdG8gaGVhZGVyIGZpbGUuCisgICAgICAgIC0gTW92ZSBv
dXQgQ29jb2Etb25seSBvciBNYWMtb25seSBjb21tYW5kIGltcGxlbWVudGF0aW9ucy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAg
ICAgIFJlYXJyYW5nZSBzb21lIGRlY2xhcmF0aW9ucyBhbmQgc3dpdGNoIGZyb20gVVNFKEFQUEtJ
VCkgdG8gUExBVEZPUk0oTUFDKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmg6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNz
L0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTogQWRkZWQuCisg
ICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVu
Y29kZWRQTkdEYXRhKToKKyAgICAgICAgTW92ZWQgZnJvbSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNv
Y29hLm1tLiBBZGQgaU9TLXNwZWNpZmljIGhlYWRlciBpbmNsdWRlcy4KKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbTogUmVuYW1l
ZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lv
bkNvY29hLm1tLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5
bnRoZXNpemVkRXZlbnRzVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246Om1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKToKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Ondhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0
aW9uKToKKyAgICAgICAgTW92ZSBvdXQgQXBwS2l0LXNwZWNpZmljIGV2ZW50IHNpbXVsYXRpb24g
Y29kZSB0byBoZXJlLgorCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpy
ZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9t
YXRpb25TZXNzaW9uOjptb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5zcGVjdEJyb3dzaW5nQ29udGV4dCk6CisgICAg
ICAgIE1vdmUgb3V0IE1hYy1zcGVjaWZpYyBjb21tYW5kIGltcGxlbWVudGF0aW9ucyB0byBoZXJl
LgorCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlTW91c2VJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNz
aW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6CisgICAgICAgIE1v
dmUgb3V0IE1hYyBwbGF0Zm9ybUZvbyBpbXBsZW1lbnRhdGlvbnMgdG8gaGVyZS4KKworICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBBZGRlZCBV
SVByb2Nlc3MvQXV0b21hdGlvbi97bWFjLGNvY29hfSBncm91cHMuCisgICAgICAgIC0gQWRkIG5l
dyBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBmaWxlcy4KKyAgICAgICAgLSBSZW5h
bWUgQXV0b21hdGlvbi5qc29uIHRvIEF1dG9tYXRpb24uanNvbi5pbi4KKyAgICAgICAgLSBBZGQg
ZGVyaXZlZCBzb3VyY2VzICdBdXRvbWF0aW9uLmpzb24nIGFuZCAnQXV0b21hdGlvbi1pT1MuanNv
bicuCisgICAgICAgIC0gTWFyayB0aGVzZSBKU09OIGZpbGVzIGFzIGZyYW1ld29yayBwcml2YXRl
IGhlYWRlcnMuCisKIDIwMTYtMTAtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxl
LmNvbT4KIAogICAgICAgICBSZW1vdmUgYW4gdW51c2VkIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMu
dHh0CmluZGV4IDliNDMzZGU4NTFlMjI5MjA5ZDZjYjU4NzJmYTYzYjY4MDVhZTU1ODIuLjIxYzE5
ZTA5ZTdiOGM5YTllYzA3MTNjYzE4YzI0YzgyYjE1ZmNmZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0
CkBAIC04MjMsMTUgKzgyMywzMiBAQCBzZXQoV2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX0dF
TkVSQVRPUl9TQ1JJUFRTCiAgICAgJHtQUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUU19ESVJ9L2Nv
ZGVnZW4vbW9kZWxzLnB5CiApCiAKLXNldChXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfR0VO
RVJBVE9SX0lOUFVUUwotICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1
dG9tYXRpb24uanNvbgorc2V0KFdlYktpdDJfQVVUT01BVElPTl9QUk9UT0NPTF9JTlBVVF9GSUxF
UworICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNv
bi5pbgorKQorCitzZXQoV2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX1NQRUNJRklDQVRJT05f
RklMRVMKKyAgICAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vQXV0b21hdGlvbi5qc29u
CispCisKKyMgSW5jbHVkZSBjb21tYW5kcyBmb3IgZGVza3RvcCBwb3J0cywgY3VycmVudGx5IGd1
YXJkZWQgYnkgTUFDX09OTFkuCitzZXQoV2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX1BSRVBS
T0NFU1NPUl9ERUZJTkVTCisgICAgLURNQUNfT05MWQorKQorCisjIEZJWE1FOiB0aGlzIG5lZWRz
IHRvIHVzZSBXSU5ET1dTX0NPTU1BTkQgaW5zdGVhZCBpZiBXZWJLaXQyIHNvbWVkYXkgYnVpbGRz
IG9uIFdpbmRvd3MuCitzZXBhcmF0ZV9hcmd1bWVudHMoQ09ERV9HRU5FUkFUT1JfUFJFUFJPQ0VT
U09SX0FSR1VNRU5UU19MSVNUIFVOSVhfQ09NTUFORCAke0NPREVfR0VORVJBVE9SX1BSRVBST0NF
U1NPUl9BUkdVTUVOVFN9KQorYWRkX2N1c3RvbV9jb21tYW5kKAorICAgIE9VVFBVVCAke0RFUklW
RURfU09VUkNFU19XRUJLSVQyX0RJUn0vQXV0b21hdGlvbi5qc29uCisgICAgTUFJTl9ERVBFTkRF
TkNZICR7V2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTfQorICAgIENPTU1B
TkQgJHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1JfRVhFQ1VUQUJMRX0gJHtDT0RFX0dFTkVS
QVRPUl9QUkVQUk9DRVNTT1JfQVJHVU1FTlRTX0xJU1R9ICR7V2ViS2l0Ml9BVVRPTUFUSU9OX1BS
T1RPQ09MX1BSRVBST0NFU1NPUl9ERUZJTkVTfSAke1dlYktpdDJfQVVUT01BVElPTl9QUk9UT0NP
TF9JTlBVVF9GSUxFU30gPiAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vQXV0b21hdGlv
bi5qc29uCiApCiAKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMl9ESVJ9L0F1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaCAke0RFUklW
RURfU09VUkNFU19XRUJLSVQyX0RJUn0vQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHAg
JHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0F1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMu
aCAke0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vQXV0b21hdGlvblByb3RvY29sT2JqZWN0
cy5jcHAKLSAgICBNQUlOX0RFUEVOREVOQ1kgJHtXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xf
R0VORVJBVE9SX0lOUFVUU30KKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXZWJLaXQyX0FVVE9NQVRJ
T05fUFJPVE9DT0xfU1BFQ0lGSUNBVElPTl9GSUxFU30KICAgICBERVBFTkRTICR7V2ViS2l0Ml9B
VVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJUFRTfQotICAgIENPTU1BTkQgJHtQWVRI
T05fRVhFQ1VUQUJMRX0gJHtQUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUU19ESVJ9L2dlbmVyYXRl
LWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLW91dHB1dERpciAiJHtERVJJVkVEX1NP
VVJDRVNfV0VCS0lUMl9ESVJ9IiAtLWZyYW1ld29yayBXZWJLaXQgLS1iYWNrZW5kICR7V2ViS2l0
Ml9BVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9JTlBVVFN9CisgICAgQ09NTUFORCAke1BZ
VEhPTl9FWEVDVVRBQkxFfSAke1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJUFRTX0RJUn0vZ2VuZXJh
dGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5IC0tb3V0cHV0RGlyICIke0RFUklWRURf
U09VUkNFU19XRUJLSVQyX0RJUn0iIC0tZnJhbWV3b3JrIFdlYktpdCAtLWJhY2tlbmQgJHtXZWJL
aXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfU1BFQ0lGSUNBVElPTl9GSUxFU30KICAgICBWRVJCQVRJ
TSkKIAogbGlzdChBUFBFTkQgV2ViS2l0Ml9IRUFERVJTCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMu
bWFrZQppbmRleCBjZjNmMWZiMjIxMjM5YmVmYWYxMWE5MGE5OThmZGYzM2Y1YjM1ZmU2Li44NDY5
ZmQ2ZmNlZDQzMzA5MDhkNjEwZjZmYWI0NjNjZmIyYmI0MWMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRT
b3VyY2VzLm1ha2UKQEAgLTE2OSw2ICsxNjksMTIgQEAgU0NSSVBUUyA9IFwKIEZSQU1FV09SS19G
TEFHUyA9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJUikgJChGUkFNRVdPUktfU0VB
UkNIX1BBVEhTKSB8IHBlcmwgLWUgJ3ByaW50ICItRiAiIC4gam9pbigiIC1GICIsIHNwbGl0KCIg
IiwgPD4pKTsnKQogSEVBREVSX0ZMQUdTID0gJChzaGVsbCBlY2hvICQoQlVJTFRfUFJPRFVDVFNf
RElSKSAkKEhFQURFUl9TRUFSQ0hfUEFUSFMpIHwgcGVybCAtZSAncHJpbnQgIi1JIiAuIGpvaW4o
IiAtSSIsIHNwbGl0KCIgIiwgPD4pKTsnKQogCitpZmVxICgkKHNoZWxsICQoQ0MpIC1zdGQ9Z251
KysxMSAteCBjKysgLUUgLVAgLWRNICQoU0RLX0ZMQUdTKSAkKEZSQU1FV09SS19GTEFHUykgJChI
RUFERVJfRkxBR1MpIC1pbmNsdWRlICJ3dGYvUGxhdGZvcm0uaCIgL2Rldi9udWxsIHwgZ3JlcCAn
IFdURl9QTEFURk9STV9JT1MgJyB8IGN1dCAtZCcgJyAtZjMpLCAxKQorICAgIFdURl9QTEFURk9S
TV9JT1MgPSAxCitlbHNlCisgICAgV1RGX1BMQVRGT1JNX0lPUyA9IDAKK2VuZGlmCisKIC1pbmNs
dWRlIFdlYktpdERlcml2ZWRTb3VyY2VzQWRkaXRpb25zLm1ha2UKIAogLlBIT05ZIDogYWxsCkBA
IC0yMjUsMTcgKzIzMSw0MyBAQCBBVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJUFRT
ID0gXAogIwogCiBBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTID0gXAotICAgICQoV2Vi
S2l0MikvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIFwKKwkkKFdlYktpdDIp
L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbi5pbiBcCiAjCiAKK0FVVE9NQVRJ
T05fUFJPVE9DT0xfU1BFQ0lGSUNBVElPTl9GSUxFUyA9IFwKKwlBdXRvbWF0aW9uLmpzb24gXAor
CUF1dG9tYXRpb24taU9TLmpzb24gXAorIworCisjIEdlbmVyYXRlIGJvdGggcHJvdG9jb2wgc3Bl
Y2lmaWNhdGlvbiBmaWxlcyByZWdhcmRsZXNzIG9mIHRoZSB0YXJnZXQgcGxhdGZvcm0KKyMgYmVp
bmcgYnVpbHQuIEJvdGggc2hvdWxkIGJlIGFjY2Vzc2libGUgYXMgcHJpdmF0ZSBoZWFkZXJzIG9m
IFdlYktpdDIuZnJhbWV3b3JrLgorYWxsIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX1NQRUNJRklD
QVRJT05fRklMRVMpCisKK0F1dG9tYXRpb24taU9TLmpzb24gOiAkKEFVVE9NQVRJT05fUFJPVE9D
T0xfSU5QVVRfRklMRVMpCisJJChDQykgJChURVhUX1BSRVBST0NFU1NPUl9GTEFHUykgLURJT1Nf
T05MWT0xICQ8ID4gJEAKKworQXV0b21hdGlvbi5qc29uIDogJChBVVRPTUFUSU9OX1BST1RPQ09M
X0lOUFVUX0ZJTEVTKQorCSQoQ0MpICQoVEVYVF9QUkVQUk9DRVNTT1JfRkxBR1MpIC1ETUFDX09O
TFk9MSAkPCA+ICRACisKKyMgT25seSB1c2UgdGhlIHRhcmdldCBwbGF0Zm9ybSdzIHZhcmlhbnQg
Zm9yIGdlbmVyYXRpbmcgYmFja2VuZCBtZXNzYWdlIGRpc3BhdGNoZXJzLgoraWZlcSAoJChXVEZf
UExBVEZPUk1fSU9TKSwgMSkKK0FVVE9NQVRJT05fUFJPVE9DT0xfU0VMRUNURURfU1BFQ0lGSUNB
VElPTl9GSUxFUyA9IFwKKwlBdXRvbWF0aW9uLWlPUy5qc29uIFwKKyMKK2Vsc2UKK0FVVE9NQVRJ
T05fUFJPVE9DT0xfU0VMRUNURURfU1BFQ0lGSUNBVElPTl9GSUxFUyA9IFwKKwlBdXRvbWF0aW9u
Lmpzb24gXAorIworZW5kaWYKKwogQVVUT01BVElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMgPSBc
CiAgICAgQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oIFwKICAgICBBdXRvbWF0aW9uQmFj
a2VuZERpc3BhdGNoZXJzLmNwcCBcCiAjCiAKICMgSlNPTi1SUEMgQmFja2VuZCBEaXNwYXRjaGVy
cywgVHlwZSBCdWlsZGVycwotJChmaXJzdHdvcmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBV
VF9GSUxFUykpIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTKSAkKEFVVE9NQVRJ
T05fUFJPVE9DT0xfR0VORVJBVE9SX1NDUklQVFMpCi0JJChQWVRIT04pICQoSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAt
LWZyYW1ld29yayBXZWJLaXQgLS1iYWNrZW5kIC0tb3V0cHV0RGlyIC4gJChBVVRPTUFUSU9OX1BS
T1RPQ09MX0lOUFVUX0ZJTEVTKQorJChmaXJzdHdvcmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09V
VFBVVF9GSUxFUykpIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX1NFTEVDVEVEX1NQRUNJRklDQVRJ
T05fRklMRVMpICQoQVVUT01BVElPTl9QUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUUykKKwkkKFBZ
VEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJhdGUtaW5zcGVjdG9yLXBy
b3RvY29sLWJpbmRpbmdzLnB5IC0tZnJhbWV3b3JrIFdlYktpdCAtLWJhY2tlbmQgLS1vdXRwdXRE
aXIgLiAkKEFVVE9NQVRJT05fUFJPVE9DT0xfU0VMRUNURURfU1BFQ0lGSUNBVElPTl9GSUxFUykK
IAogYWxsIDogJChmaXJzdHdvcmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBVVF9GSUxFUykp
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9t
YXRpb24uanNvbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRp
b24uanNvbgpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDZjY2VhODJiMGVlOWI5OGY5
Y2QzMGY2ZGI4YWZmNjYxYTFmMjMwOC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0
aW9uLmpzb24KKysrIC9kZXYvbnVsbApAQCAtMSw0NzcgKzAsMCBAQAotewotICAgICJkb21haW4i
OiAiQXV0b21hdGlvbiIsCi0gICAgImRlc2NyaXB0aW9uIjogIkF1dG9tYXRpb24gZG9tYWluIGV4
cG9zZXMgY29tbWFuZHMgZm9yIGF1dG9tYXRpbmcgdXNlciBpbnRlcmFjdGlvbnMgd2l0aCB0aGUg
YnJvd3Nlci4iLAotICAgICJ0eXBlcyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjog
IlBvaW50IiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIngiLCAidHlwZSI6ICJudW1i
ZXIiIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ5IiwgInR5cGUiOiAibnVtYmVyIiB9
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6
ICJTaXplIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAicHJv
cGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIndpZHRoIiwgInR5cGUiOiAi
bnVtYmVyIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGVpZ2h0IiwgInR5cGUiOiAi
bnVtYmVyIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJpZCI6ICJSZWN0IiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAg
ICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIs
ICIkcmVmIjogIlBvaW50IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIsICIk
cmVmIjogIlNpemUiIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgImlkIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsCi0gICAgICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBpZGVu
dGlmaWVyIGZvciBhIGJyb3dzaW5nIGNvbnRleHQuIgotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAiaWQiOiAiRnJhbWVIYW5kbGUiLAotICAgICAgICAgICAgInR5cGUiOiAic3Ry
aW5nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBm
b3IgYSBmcmFtZSBpbiBhIHBhZ2UuIgotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAiaWQiOiAiTm9kZUhhbmRsZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBpZGVudGlmaWVyIGZvciBhIG5vZGUg
aW4gYSBwYWdlLiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkVy
cm9yTWVzc2FnZSIsCi0gICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRoaXMgZW51bSBjb250YWlucyBwcmVkZWZpbmVkIGVycm9yIG1lc3Nh
Z2VzIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2lnbmFsIGEgd2VsbC1kZWZpbmVkIGVycm9yIGNvbmRp
dGlvbiwgc3VjaCBhcyBhIG1pc3NpbmcgaW1wbGVtZW50YXRpb24sIHVua25vd24gd2luZG93IGhh
bmRsZSwgYW5kIHNvIGZvcnRoLiBUaGUgYmFja2VuZCBzaWduYWxzIG9uZSBvZiB0aGVzZSBlcnJv
cnMgYnkgdXNpbmcgaXQgYXMgYSBwcmVmaXggb2YgdGhlIGNvbW1hbmRzJ3MgZXJyb3IgbWVzc2Fn
ZSAodGhlIGVycm9yU3RyaW5nIGFyZ3VtZW50IGluIGdlbmVyYXRlZCBDKysgYmFja2VuZCBkaXNw
YXRjaGVycykuIFRoaXMgd2lsbCBiZSByZXBvcnRlZCB0byB0aGUgZnJvbnRlbmQgYXMgYSBwcm90
b2NvbCBlcnJvciB3aXRoIGEgSlNPTi1SUEMgZXJyb3IgY29kZSBvZiAnU2VydmVyRXJyb3InLiBJ
dCBpcyB1cCB0byB0aGUgZnJvbnRlbmQgd2hldGhlciBhbmQgaG93IHRvIGRlYWwgd2l0aCBlcnJv
cnMuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwotICAgICAgICAgICAgICAgICJJbnRlcm5hbEVy
cm9yIiwKLSAgICAgICAgICAgICAgICAiVGltZW91dCIsCi0gICAgICAgICAgICAgICAgIkphdmFT
Y3JpcHRFcnJvciIsCi0gICAgICAgICAgICAgICAgIkphdmFTY3JpcHRUaW1lb3V0IiwKLSAgICAg
ICAgICAgICAgICAiV2luZG93Tm90Rm91bmQiLAotICAgICAgICAgICAgICAgICJGcmFtZU5vdEZv
dW5kIiwKLSAgICAgICAgICAgICAgICAiTm9kZU5vdEZvdW5kIiwKLSAgICAgICAgICAgICAgICAi
SW52YWxpZEVsZW1lbnRTdGF0ZSIsCi0gICAgICAgICAgICAgICAgIk5vSmF2YVNjcmlwdERpYWxv
ZyIsCi0gICAgICAgICAgICAgICAgIk5vdEltcGxlbWVudGVkIiwKLSAgICAgICAgICAgICAgICAi
TWlzc2luZ1BhcmFtZXRlciIsCi0gICAgICAgICAgICAgICAgIkludmFsaWRQYXJhbWV0ZXIiCi0g
ICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJC
cm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKLSAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJBIGhhbmRsZSByZXByZXNlbnRpbmcgYW4gb3BlbiB3aW5kb3cg
b3IgdGFiIGluIHRoZSBhdXRvbWF0aW9uIHNlc3Npb24uIiwKLSAgICAgICAgICAgICJwcm9wZXJ0
aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIk9wYXF1ZSBoYW5kbGUgZm9yIGEg
YnJvd3NpbmcgY29udGV4dCAod2luZG93IG9yIHRhYikuIFVzZWQgYXMgYSBrZXkgZm9yIHdpbmRv
dy1yZWxhdGVkIGNvbW1hbmRzLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFjdGl2
ZSIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiV2hldGhlciB0aGUgYnJvd3Np
bmcgY29udGV4dCBoYXMgZm9jdXMgYXQgdGhlIHRpbWUgdGhlIGNvbW1hbmQgaXMgaGFuZGxlZC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIFVSTCBsb2FkZWQgYnkgdGhlIGJyb3dzaW5nIGNvbnRleHQgYXQg
dGhlIHRpbWUgdGhlIGNvbW1hbmQgaXMgaGFuZGxlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJ3aW5kb3dTaXplIiwgIiRyZWYiOiAiU2l6ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
Y3VycmVudCBzaXplIG9mIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIndpbmRvd09yaWdpbiIsICIkcmVmIjogIlBvaW50IiwgImRl
c2NyaXB0aW9uIjogIlRoZSBjdXJyZW50ICh4LCB5KSBwb3NpdGlvbiBvZiB0aGUgYnJvd3Npbmcg
Y29udGV4dCdzIHdpbmRvdyByZWxhdGl2ZSB0byB0aGUgdG9wLWxlZnQgb2YgdGhlIHNjcmVlbi4i
IH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlk
IjogIk1vdXNlSW50ZXJhY3Rpb24iLAotICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJhdGVzIGRpZmZlcmVudCB3YXlzIG9mIGlu
dGVyYWN0aW5nIHdpdGggYSBtb3VzZSBjdXJzb3IuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwot
ICAgICAgICAgICAgICAgICJNb3ZlIiwKLSAgICAgICAgICAgICAgICAiRG93biIsCi0gICAgICAg
ICAgICAgICAgIlVwIiwKLSAgICAgICAgICAgICAgICAiU2luZ2xlQ2xpY2siLAotICAgICAgICAg
ICAgICAgICJEb3VibGVDbGljayIKLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgImlkIjogIk1vdXNlQnV0dG9uIiwKLSAgICAgICAgICAgICJ0eXBlIjog
InN0cmluZyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJl
bnQgbW91c2UgYnV0dG9ucyB0aGF0IGNhbiBiZSB1c2VkLiIsCi0gICAgICAgICAgICAiZW51bSI6
IFsKLSAgICAgICAgICAgICAgICAiTm9uZSIsCi0gICAgICAgICAgICAgICAgIkxlZnQiLAotICAg
ICAgICAgICAgICAgICJNaWRkbGUiLAotICAgICAgICAgICAgICAgICJSaWdodCIKLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIktleU1vZGlm
aWVyIiwKLSAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQga2V5IG1vZGlmaWVycyB0aGF0IGNhbiByZW1h
aW4gcHJlc3NlZCBkdXJpbmcgb3RoZXIgbW91c2UvdG91Y2ggaW50ZXJhY3Rpb25zLiIsCi0gICAg
ICAgICAgICAiZW51bSI6IFsKLSAgICAgICAgICAgICAgICAiQ2Fwc0xvY2siLAotICAgICAgICAg
ICAgICAgICJDb250cm9sIiwKLSAgICAgICAgICAgICAgICAiU2hpZnQiLAotICAgICAgICAgICAg
ICAgICJNZXRhIiwKLSAgICAgICAgICAgICAgICAiQWx0IgotICAgICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiVmlydHVhbEtleSIsCi0gICAgICAg
ICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVudW1l
cmF0ZXMgZGlmZmVyZW50IHBsYXRmb3JtLWluZGVwZW5kZW50IHZpcnR1YWwga2V5cyBvbiBhIHBo
eXNpY2FsIGtleWJvYXJkIHdob3NlIGlucHV0IHZpYSBrZXlib2FyZCBtYXkgb3IgbWF5IG5vdCBw
cm9kdWNlIGNoYXJhY3RlcnMuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwotICAgICAgICAgICAg
ICAgICJTaGlmdCIsCi0gICAgICAgICAgICAgICAgIkNvbnRyb2wiLAotICAgICAgICAgICAgICAg
ICJBbHRlcm5hdGUiLAotICAgICAgICAgICAgICAgICJNZXRhIiwKLSAgICAgICAgICAgICAgICAi
Q29tbWFuZCIsCi0gICAgICAgICAgICAgICAgIkNhbmNlbCIsCi0gICAgICAgICAgICAgICAgIkhl
bHAiLAotICAgICAgICAgICAgICAgICJCYWNrc3BhY2UiLAotICAgICAgICAgICAgICAgICJUYWIi
LAotICAgICAgICAgICAgICAgICJDbGVhciIsCi0gICAgICAgICAgICAgICAgIkVudGVyIiwKLSAg
ICAgICAgICAgICAgICAiUGF1c2UiLAotICAgICAgICAgICAgICAgICJFc2NhcGUiLAotICAgICAg
ICAgICAgICAgICJQYWdlVXAiLAotICAgICAgICAgICAgICAgICJQYWdlRG93biIsCi0gICAgICAg
ICAgICAgICAgIkVuZCIsCi0gICAgICAgICAgICAgICAgIkhvbWUiLAotICAgICAgICAgICAgICAg
ICJMZWZ0QXJyb3ciLAotICAgICAgICAgICAgICAgICJVcEFycm93IiwKLSAgICAgICAgICAgICAg
ICAiUmlnaHRBcnJvdyIsCi0gICAgICAgICAgICAgICAgIkRvd25BcnJvdyIsCi0gICAgICAgICAg
ICAgICAgIkluc2VydCIsCi0gICAgICAgICAgICAgICAgIkRlbGV0ZSIsCi0gICAgICAgICAgICAg
ICAgIlNwYWNlIiwKLSAgICAgICAgICAgICAgICAiU2VtaWNvbG9uIiwKLSAgICAgICAgICAgICAg
ICAiRXF1YWxzIiwKLSAgICAgICAgICAgICAgICAiUmV0dXJuIiwKLSAgICAgICAgICAgICAgICAi
TnVtYmVyUGFkMCIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZDEiLAotICAgICAgICAgICAg
ICAgICJOdW1iZXJQYWQyIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkMyIsCi0gICAgICAg
ICAgICAgICAgIk51bWJlclBhZDQiLAotICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ1IiwKLSAg
ICAgICAgICAgICAgICAiTnVtYmVyUGFkNiIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZDci
LAotICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ4IiwKLSAgICAgICAgICAgICAgICAiTnVtYmVy
UGFkOSIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZE11bHRpcGx5IiwKLSAgICAgICAgICAg
ICAgICAiTnVtYmVyUGFkQWRkIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkU2VwYXJhdG9y
IiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkU3VidHJhY3QiLAotICAgICAgICAgICAgICAg
ICJOdW1iZXJQYWREZWNpbWFsIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkRGl2aWRlIiwK
LSAgICAgICAgICAgICAgICAiRnVuY3Rpb24xIiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb24y
IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb24zIiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rp
b240IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb241IiwKLSAgICAgICAgICAgICAgICAiRnVu
Y3Rpb242IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb243IiwKLSAgICAgICAgICAgICAgICAi
RnVuY3Rpb244IiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb245IiwKLSAgICAgICAgICAgICAg
ICAiRnVuY3Rpb24xMCIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uMTEiLAotICAgICAgICAg
ICAgICAgICJGdW5jdGlvbjEyIgotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7
Ci0gICAgICAgICAgICAiaWQiOiAiS2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUiLAotICAgICAgICAg
ICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJh
dGVzIGRpZmZlcmVudCB3YXlzIG9mIGludGVyYWN0aW5nIHdpdGggYSBrZXlib2FyZCBkZXZpY2Uu
ICdJbnNlcnRCeUtleScgaW1wbGllcyB0aGF0IGEgc2VwYXJhdGUgS2V5RG93biBhbmQgS2V5VXAg
ZXZlbnQgYXJlIHByb2R1Y2VkIGZvciBlYWNoIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2Us
IHJlZ2FyZGxlc3Mgb2YgdGhlIGFjdHVhbCBrZXlzdHJva2VzIHJlcXVpcmVkIHRvIHByb2R1Y2Ug
dGhlIGNoYXJhY3RlciBzZXF1ZW5jZS4iLAotICAgICAgICAgICAgImVudW0iOiBbCi0gICAgICAg
ICAgICAgICAgIktleVByZXNzIiwKLSAgICAgICAgICAgICAgICAiS2V5UmVsZWFzZSIsCi0gICAg
ICAgICAgICAgICAgIkluc2VydEJ5S2V5IgotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAg
ICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiS2V5Ym9hcmRJbnRlcmFjdGlvbiIsCi0gICAgICAg
ICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgc2lu
Z2xlIHN0ZXAgaW4gYSBrZXkgc2VxdWVuY2UuIEEgc3RlcCBjYW4gY29udGFpbiBhIGtleSB1cC9k
b3duIG9mIGEgdmlydHVhbCBrZXksIG9yIGEgc2VxdWVuY2Ugb2YgVW5pY29kZSBjb2RlIHBvaW50
cyB0aGF0IGFyZSBkZWxpdmVyZWQgdG8gdGhlIHBhZ2UgYXQgZ3JhcGhlbWUgY2x1c3RlciBib3Vu
ZGFyaWVzLiBFaXRoZXIgYSAna2V5JyBvciAndGV4dCcgcHJvcGVydHkgbXVzdCBiZSBzcGVjaWZp
ZWQuIiwKLSAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWwotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidHlwZSIsICIkcmVmIjogIktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIiwgImRlc2NyaXB0
aW9uIjogIlRoZSB0eXBlIG9mIGludGVyYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCBieSBhIHN0ZXAu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAia2V5IiwgIiRyZWYiOiAiVmlydHVhbEtl
eSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJBIHZpcnR1YWwga2V5IHRvIGJl
IHVzZWQgdG8gcGVyZm9ybSB0aGUgc3BlY2lmaWVkIGludGVyYWN0aW9uLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInRleHQiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiQSB1bmljb2RlIHN0cmluZyB0byBiZSBkZWxpdmVyZWQgdG8g
dGhlIHBhZ2UuIFRoZSBzZXF1ZW5jZSBvZiBrZXkgZXZlbnRzIGlzIGRldGVybWluZWQgYnkgc3Bs
aXR0aW5nIHRoZSBzdHJpbmcgYXQgZ3JhcGhlbWUgY2x1c3RlciBib3VuZGFyaWVzLiIgfQotICAg
ICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQ29v
a2llIiwKLSAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAicHJvcGVy
dGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIG5hbWUuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAidmFsdWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2ll
IHZhbHVlLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRvbWFpbiIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUgZG9tYWluLiBJZiBlbXB0eSwgdGhlIGRv
bWFpbiBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgcmVsZXZhbnQgYnJvd3NpbmcgY29udGV4dC4iIH0s
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwYXRoIiwgInR5cGUiOiAic3RyaW5nIiwgImRl
c2NyaXB0aW9uIjogIkNvb2tpZSBwYXRoLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImV4cGlyZXMiLCAidHlwZSI6ICJudW1iZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIGV4cGly
YXRpb24gaW4gc2Vjb25kcyBzaW5jZSB0aGUgVU5JWCBlcG9jaC4iIH0sCi0gICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzaXplIiwgInR5cGUiOiAiaW50ZWdlciIsICJkZXNjcmlwdGlvbiI6ICJD
b29raWUgc2l6ZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJodHRwT25seSIsICJ0
eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiBjb29raWUgaXMgaHR0cC1v
bmx5LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNlY3VyZSIsICJ0eXBlIjogImJv
b2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpZiBjb29raWUgaXMgc2VjdXJlLiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNlc3Npb24iLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUgaW4gY2FzZSBvZiBzZXNzaW9uIGNvb2tpZS4iIH0KLSAgICAgICAg
ICAgIF0KLSAgICAgICAgfQotICAgIF0sCi0gICAgImNvbW1hbmRzIjogWwotICAgICAgICB7Ci0g
ICAgICAgICAgICAibmFtZSI6ICJnZXRCcm93c2luZ0NvbnRleHRzIiwKLSAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJGZXRjaGVzIGluZm9ybWF0aW9uIGFib3V0IGFsbCBvcGVuIGJyb3dzaW5n
IGNvbnRleHRzICh3aW5kb3dzIGFuZCB0YWJzKSBpbiB0aGUgYXV0b21hdGlvbiBzZXNzaW9uLiIs
Ci0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNv
bnRleHRzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkJyb3dzaW5nQ29u
dGV4dCIgfSwgImRlc2NyaXB0aW9uIjogIkFsbCBrbm93biBicm93c2luZyBjb250ZXh0cyBhdmFp
bGFibGUgdG8gdGhlIHNlc3Npb24uIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAg
ICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImdldEJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRmV0Y2hlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3BlY2lm
aWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiY29udGV4dCIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dCIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgYnJvd3NpbmcgY29udGV4dCBhdmFpbGFibGUgdG8gdGhlIHNl
c3Npb24uIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogImNyZWF0ZUJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiT3BlbnMgYSBuZXcgYnJvd3NpbmcgY29udGV4dCBpbiB0aGUgYXV0b21hdGlvbiBz
ZXNzaW9uIGFuZCBtYWtlcyBpdCB0aGUgYWN0aXZlIGJyb3dzaW5nIGNvbnRleHQgZm9yIHVzZXIg
aW50ZXJhY3Rpb24uIFRoaXMgY29tbWFuZCBjcmVhdGVzIGEgYnJvd3NpbmcgY29udGV4dCBpbiBh
IG5ldyB3aW5kb3cgcmF0aGVyIHRoYW4gYWRkaW5nIGEgdGFiIHRvIGFuIGV4aXN0aW5nIHdpbmRv
dy4iLAotICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24i
OiAiQW4gb3BhcXVlIGhhbmRsZSBmb3IgdGhlIG5ld2x5IGNyZWF0ZWQgYnJvd3NpbmcgY29udGV4
dC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
Im5hbWUiOiAiY2xvc2VCcm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlRyeSB0byBjbG9zZSB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIFRoaXMgY2Fu
IHRyaWdnZXIgYW4gdW5sb2FkIHByb21wdCBhbmQgdGhlcmVhZnRlciBzdWNjZWVkIG9yIGZhaWwu
IiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGNs
b3NlZC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICAgIm5hbWUiOiAic3dpdGNoVG9Ccm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkFjdGl2YXRlcyB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgYW5kIG9w
dGlvbmFsIGZyYW1lLCB3aGljaCBnaXZlcyB0aGVtIGZvY3VzIChjYXVzaW5nIHRoZSAnZm9jdXMn
IERPTSBldmVudCB0byBmaXJlLCBhbmQgJ2JsdXInIERPTSBldmVudCB0byBmaXJlIGZvciB0aGUg
cHJldmlvdXMgYnJvd3NpbmcgY29udGV4dCBhbmQgZnJhbWUpLiIsCi0gICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBtYWRlIGZv
Y3VzZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJl
ZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgZnJhbWUgdGhhdCBzaG91bGQgYmUgZm9jdXNlZC4gRGVmYXVsdHMgdG8g
dGhlIG1haW4gZnJhbWUgaWYgb21pdHRlZC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwK
LSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicmVzaXplV2luZG93T2ZCcm93c2luZ0Nv
bnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZXMgdGhlIHdpbmRvdyBv
ZiB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdG8gdGhlIHNwZWNpZmllZCBzaXplLiIs
Ci0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6
ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byBiZSByZXNpemVkLiIgfSwK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJTaXplIiwgImRlc2Ny
aXB0aW9uIjogIlRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3aW5kb3cu
IiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJu
YW1lIjogIm1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiTW92ZXMgdGhlIHdpbmRvdyBvZiB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRl
eHQgdG8gdGhlIHNwZWNpZmllZCBwb3NpdGlvbi4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dz
aW5nIGNvbnRleHQgdG8gYmUgbW92ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
b3JpZ2luIiwgIiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBvcmlnaW4g
Zm9yIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiBUaGUgcG9zaXRpb24gaXMgaW50ZXJw
cmV0ZWQgaW4gc2NyZWVuIGNvb3JkaW5hdGUgc3BhY2UsIHJlbGF0aXZlIHRvIHRoZSB1cHBlciBs
ZWZ0IGNvcm5lciBvZiB0aGUgc2NyZWVuLiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dCIs
Ci0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdhdGVzIGEgYnJvd3NpbmcgY29udGV4
dCB0byBhIHNwZWNpZmllZCBVUkwuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIFVSTCB0byBs
b2FkIGluIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAg
ICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5h
bWUiOiAiZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIk5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgdG8gZ28gYmFjayBvbmUgcGFnZSBpbiBo
aXN0b3J5LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3Vs
ZCBiZSBuYXZpZ2F0ZWQuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjog
dHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJnb0Zvcndh
cmRJbkJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdh
dGVzIGEgYnJvd3NpbmcgY29udGV4dCB0byBnb3QgZm9yd2FyZCBvbmUgcGFnZSBpbiBoaXN0b3J5
LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBu
YXZpZ2F0ZWQuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJyZWxvYWRCcm93c2lu
Z0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlbG9hZHMgdGhlIGN1cnJl
bnQgcGFnZSBpbiBhIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJz
IjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93
c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIHJlbG9hZGVkLiIgfQotICAgICAgICAgICAgXSwK
LSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAg
ICAgICAgIm5hbWUiOiAiaW5zcGVjdEJyb3dzaW5nQ29udGV4dCIsCi0gICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiSW5zcGVjdCB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdXNpbmcg
V2ViIEluc3BlY3Rvci4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUi
LCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhh
dCBzaG91bGQgYmUgaW5zcGVjdGVkLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImVu
YWJsZUF1dG9DYXB0dXJpbmciLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwg
ImRlc2NyaXB0aW9uIjogIklmIHRoaXMgb3B0aW9uIGlzIHByZXNlbnQgYW5kIHNldCB0byB0cnVl
LCB0aGUgV2ViIEluc3BlY3RvciB3aWxsIGF1dG9tYXRpY2FsbHkgc3RhcnQgYSB0aW1lbGluZSBy
ZWNvcmRpbmcgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IG9uY2UgaXQgaXMgYXR0
YWNoZWQuIE5vdGUgdGhhdCB0aGlzIGRpc2FibGVzIHRoZSBkZWJ1Z2dlciBmb3IgdGhlIGR1cmF0
aW9uIG9mIHRoZSByZWNvcmRpbmcuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFz
eW5jIjogdHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJl
dmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
RXZhbHVhdGVzIGEgc2NyaXB0IGZ1bmN0aW9uIGluIGEgYnJvd3NpbmcgY29udGV4dCBhbmQgY2Fs
bHMgaXQgd2l0aCB0aGUgc3VwcGxpZWQgYXJndW1lbnRzLiIsCi0gICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGUgc2NyaXB0IHNob3VsZCBiZSBldmFs
dWF0ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJl
ZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgZnJhbWUgdGhlIHNjcmlwdCBzaG91bGQgYmUgZXZhbHVhdGVkLiBUaGUg
bWFpbiBmcmFtZSBpcyB1c2VkIGlmIHRoaXMgcGFyYW1ldGVyIGVtcHR5IHN0cmluZyBvciBleGNs
dWRlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmdW5jdGlvbiIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgc2NyaXB0IHRvIGV2YWx1YXRlIGluIHRoZSBi
cm93c2luZyBjb250ZXh0LiBJdCBtdXN0IGJlIGEgZnVuY3Rpb24gcmVzdWx0LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImFyZ3VtZW50cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJkZXNjcmlwdGlvbiI6ICJUaGUgYXJndW1lbnRzIHRv
IHBhc3MgdG8gdGhlIGZ1bmN0aW9uIHdoZW4gY2FsbGVkLiBUaGV5IHdpbGwgYmUgcGFyc2VkIGFz
IEpTT04gYmVmb3JlIGNhbGxpbmcgdGhlIGZ1bmN0aW9uLiIgfSwKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQiLCAidHlwZSI6ICJib29s
ZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBmdW5jdGlvbiBleHBl
Y3RzIGEgY2FsbGJhY2sgZnVuY3Rpb24gYXMgdGhlIGxhc3QgYXJndW1lbnQuIEl0IGlzIGV4cGVj
dGVkIHRvIGNhbGwgdGhpcyBjYWxsYmFjayB3aXRoIGEgcmVzdWx0LiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNhbGxiYWNrVGltZW91dCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0
aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRz
IHRoYXQgdGhlIGltcGxpY2l0IGNhbGxiYWNrIGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBpbiwg
b3RoZXJ3aXNlIGEgPGNvZGU+SmF2YVNjcmlwdFRpbWVvdXQ8L2NvZGU+IGVycm9yIGlzIHJldHVy
bmVkLiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlRoZSByZXN1bHQgcmV0dXJuZWQgYnkgdGhlIGNhbGxlZCBmdW5jdGlvbi4gSXQgaXMg
SlNPTiBlbmNvZGVkIGFmdGVyIHRoZSBmdW5jdGlvbiByZXR1cm5zIG9yIGNhbGxzIHRoZSBjYWxs
YmFjay4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInBlcmZvcm1Nb3VzZUludGVy
YWN0aW9uIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTaW11bGF0ZXMgaW50ZXJhY3Rp
b24gd2l0aCBhIG1vdXNlIGN1cnNvci4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgaW50
ZXJhY3RlZCB3aXRoLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBvc2l0aW9uIiwg
IiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlcXVlc3RlZCBwb3NpdGlvbiBm
b3IgdGhlIG1vdXNlIGN1cnNvciwgc3BlY2lmaWVkIGluIHZpZXdwb3J0IGNvb3JkaW5hdGVzLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJ1dHRvbiIsICIkcmVmIjogIk1vdXNlQnV0
dG9uIiwgImRlc2NyaXB0aW9uIjogIlRoZSBidXR0b24gdG8gdXNlIHRvIHBlcmZvcm0gdGhlIGlu
dGVyYWN0aW9uLiBUaGlzIHBhcmFtZXRlciBvbmx5IGhhcyBhbiBlZmZlY3QgZm9yIHRoZSA8Y29k
ZT5Eb3duPC9jb2RlPiwgPGNvZGU+VXA8L2NvZGU+LCA8Y29kZT5DbGljazwvY29kZT4sIGFuZCA8
Y29kZT5Eb3VibGVDbGljazwvY29kZT4gbW91c2UgaW50ZXJhY3Rpb25zLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImludGVyYWN0aW9uIiwgIiRyZWYiOiAiTW91c2VJbnRlcmFjdGlv
biIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlwZSBvZiBpbnRlcmFjdGlvbiB0byBiZSBwZXJmb3Jt
ZWQgd2l0aCB0aGUgbW91c2UgY3Vyc29yLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
Im1vZGlmaWVycyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJLZXlNb2Rp
ZmllciIgfSwgImRlc2NyaXB0aW9uIjogIktleSBtb2RpZmllcnMgdG8gYmUgYWN0aXZlIGR1cmlu
ZyB0aGUgbW91c2UgaW50ZXJhY3Rpb24uIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAg
InJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwb3NpdGlvbiIsICIkcmVm
IjogIlBvaW50IiwgImRlc2NyaXB0aW9uIjogIlRoZSB1cGRhdGVkIHBvc2l0aW9uIG9mIHRoZSBt
b3VzZSBjdXJzb3IsIHNwZWNpZmllZCBpbiB2aWV3cG9ydCBjb29yZGluYXRlcy4iIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAicGVy
Zm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJT
aW11bGF0ZXMgZGVsaXZlcmluZyB0aGUgcmVzdWx0cyBvZiBwcmVzc2luZyBvbmUgb3IgbW9yZSBr
ZXlib2FyZCBrZXlzIHRvZ2V0aGVyIG9yIHN1Y2Nlc3NpdmVseS4iLAotICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6
ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3Ig
dGhlIGJyb3dzaW5nIGNvbnRleHQgd2hpY2ggc2hvdWxkIHJlY2VpdmUga2V5LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImludGVyYWN0aW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0
ZW1zIjogeyAiJHJlZiI6ICJLZXlib2FyZEludGVyYWN0aW9uIiB9LCAiZGVzY3JpcHRpb24iOiAi
QW4gb3JkZXJlZCBsaXN0IG9mIGtleSBzZXF1ZW5jZXMgdG8gYmUgZGVsaXZlcmVkIHVzaW5nIG5h
dGl2ZSBrZXkgZXZlbnRzLiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6
IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAidGFrZVNj
cmVlbnNob3QiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlRha2UgYSBzY3JlZW5zaG90
IG9mIHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCi0gICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIk
cmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxl
IGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4iIH0KLSAg
ICAgICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImRhdGEiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQmFzZTY0
LWVuY29kZWQgaW1hZ2UgZGF0YSAoUE5HKS4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1l
IjogInJlc29sdmVDaGlsZEZyYW1lSGFuZGxlIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6
ICJEZXRlcm1pbmVzIHRoZSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4gYmFzZWQgb24gdGhlIG9y
ZGluYWwsIG5hbWUgb3Igbm9kZSBoYW5kbGUgb2YgYSBjaGlsZCBmcmFtZS4iLAotICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgaW4gd2hpY2ggdG8gc2Vh
cmNoIGZvciB0aGUgZnJhbWUuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVI
YW5kbGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlw
dGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgZnJhbWUgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0
aGUgZnJhbWUuIFRoZSBtYWluIGZyYW1lIGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0ZXIgZW1wdHkg
c3RyaW5nIG9yIGV4Y2x1ZGVkLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yZGlu
YWwiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IlRoZSBvcmRpbmFsIG9mIHRoZSBjaGlsZCBmcmFtZSB0byByZXNvbHZlIGFzIGEgPGNvZGU+RnJh
bWVIYW5kbGU8L2NvZGU+LiBUaGlzIGlzIGFuYWxvZ291cyB0byAnd2luZG93LmZyYW1lc1tvcmRp
bmFsXScgaW4gSmF2YVNjcmlwdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1l
IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRo
ZSBuYW1lIG9mIHRoZSBjaGlsZCBmcmFtZSB0byByZXNvbHZlIGFzIGEgPGNvZGU+RnJhbWVIYW5k
bGU8L2NvZGU+LiBUaGlzIGlzIGFuYWxvZ291cyB0byAnd2luZG93LmZyYW1lc1tuYW1lXScgaW4g
SmF2YVNjcmlwdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJub2RlSGFuZGxlIiwg
IiRyZWYiOiAiTm9kZUhhbmRsZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJU
aGUgaGFuZGxlIG9mIHRoZSBjaGlsZCBmcmFtZSBvd25lciBlbGVtZW50IHRvIHJlc29sdmUgYXMg
YSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJl
ZiI6ICJGcmFtZUhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgPGNvZGU+RnJhbWVIYW5kbGU8
L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGZyYW1lLiIgfQotICAgICAgICAgICAgXSwKLSAgICAg
ICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
Im5hbWUiOiAicmVzb2x2ZVBhcmVudEZyYW1lSGFuZGxlIiwKLSAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJEZXRlcm1pbmVzIHRoZSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4gZm9yIHRoZSBw
YXJlbnQgZnJhbWUgb2YgdGhlIHN1cHBsaWVkIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4iLAot
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJi
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhlIGZy
YW1lIGlzIGxvY2F0ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5k
bGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgZnJhbWUgdGhhdCBzaG91bGQgcmVzb2x2ZSBpdHMgcGFyZW50IGZyYW1lLiIgfQotICAg
ICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicmVzdWx0IiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPiBmb3IgdGhlIHJlcXVlc3RlZCBmcmFtZS4iIH0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImNvbXB1dGVFbGVtZW50TGF5b3V0IiwKLSAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDb21wdXRlcyB0aGUgbGF5b3V0IGZvciBhbiBlbGVt
ZW50LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dCB0aGUgZnJhbWUgaXMgbG9jYXRlZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBo
YW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IGNvbnRhaW5zIHRoZSBlbGVtZW50LiIgfSwKLSAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVIYW5kbGUiLCAiJHJlZiI6ICJOb2RlSGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgb2YgdGhlIGVsZW1lbnQgdG8gdXNlLiIgfSwKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogInNjcm9sbEludG9WaWV3SWZOZWVkZWQiLCAib3B0aW9u
YWwiOiB0cnVlLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBlbGVt
ZW50IHNob3VsZCBiZSBzY3JvbGxlZCBpbnRvIHZpZXcgYmVmb3JlIGNvbXB1dGluZyBpdHMgbGF5
b3V0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZVZpZXdwb3J0Q29vcmRpbmF0
ZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjog
IklmIHRoZSByZXN1bHQgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIHJlcHJlc2VudGVkIGFzIHZpZXdw
b3J0IGNvb3JkaW5hdGVzIG9yIG5vdC4gRGVmYXVsdHMgdG8gZmFsc2UsIHdoaWNoIG1lYW5zIGNv
b3JkaW5hdGVzIHNob3VsZCBiZSByZXByZXNlbnRlZCBhcyBwYWdlIGNvb3JkaW5hdGVzLiIgfQot
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicmVjdCIsICIkcmVmIjogIlJlY3QiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGxh
eW91dCByZWN0IGZvciB0aGUgcmVxdWVzdGVkIGVsZW1lbnQuIFNwZWNpZmllZCBpbiBwYWdlIG9y
IHZpZXdwb3J0IGNvb3JkaW5hdGVzIGJhc2VkIG9uIHRoZSB1c2VWaWV3cG9ydENvb3JkaW5hdGVz
IHBhcmFtZXRlci4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVl
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImlzU2hvd2luZ0ph
dmFTY3JpcHREaWFsb2ciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiBh
IGJyb3dzaW5nIGNvbnRleHQgaXMgc2hvd2luZyBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0s
IG9yIHByb21wdCBkaWFsb2cuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBi
cm93c2luZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5z
IjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVh
biIsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgYnJvd3NpbmcgY29udGV4dCBpcyBzaG93aW5nIGEg
SmF2YVNjcmlwdCBkaWFsb2cgb3Igbm90LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAot
ICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkaXNtaXNzQ3VycmVudEphdmFTY3JpcHRE
aWFsb2ciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRpc21pc3NlcyBhIEphdmFTY3Jp
cHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4g
YSBicm93c2luZyBjb250ZXh0LiBFcXVpdmFsZW50IHRvIGNsaWNraW5nIHRoZSAnQ2FuY2VsJyBi
dXR0b24uIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250
ZXh0LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAibmFtZSI6ICJhY2NlcHRDdXJyZW50SmF2YVNjcmlwdERpYWxvZyIsCi0gICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQWNjZXB0cyBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHBy
b21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiBFcXVp
dmFsZW50IHRvIGNsaWNraW5nIHRoZSAnT0snIGJ1dHRvbi4iLAotICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9Ci0gICAgICAgICAgICBdCi0gICAg
ICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogIm1lc3NhZ2VPZkN1cnJlbnRK
YXZhU2NyaXB0RGlhbG9nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRo
ZSB0ZXh0IGRpc3BsYXllZCBpbiBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21w
dCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCi0gICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dz
aW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KLSAgICAg
ICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJu
YW1lIjogIm1lc3NhZ2UiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGV4dCBi
ZWluZyBkaXNwbGF5ZWQgaW4gdGhlIGN1cnJlbnQgSmF2YVNjcmlwdCBkaWFsb2cuIiB9Ci0gICAg
ICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInNl
dFVzZXJJbnB1dEZvckN1cnJlbnRKYXZhU2NyaXB0UHJvbXB0IiwKLSAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJTZXRzIHRoZSB1c2VyIGVudGVyZWQgdmFsdWUgaW4gYSBKYXZhU2NyaXB0IHBy
b21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCi0g
ICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJy
b3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1c2VySW5wdXQiLCAidHlwZSI6ICJzdHJpbmciLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIHRleHQgdG8gZW50ZXIgaW4gdGhlIHByb21wdC4iIH0KLSAgICAg
ICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZ2V0
QWxsQ29va2llcyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgY29v
a2llcyB2aXNpYmxlIHRvIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAotICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9Ci0gICAgICAg
ICAgICBdLAotICAgICAgICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJjb29raWVzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNvb2tp
ZSIgfSwgImRlc2NyaXB0aW9uIjogIkFycmF5IG9mIGNvb2tpZSBvYmplY3RzLiIgfQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgIm5hbWUiOiAiZGVsZXRlU2luZ2xlQ29va2llIiwKLSAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJEZWxldGVzIGEgY29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgaWYg
dmlzaWJsZSB0byB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250
ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNvb2tpZU5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiTmFtZSBvZiB0aGUgY29va2llIHRvIHJlbW92ZS4iIH0KLSAgICAgICAgICAgIF0sCi0g
ICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogImFkZFNpbmdsZUNvb2tpZSIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWRkIGEgY29va2llIHRvIGNvb2tpZSBzdG9yYWdlIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdD
b250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2lu
ZyBjb250ZXh0LiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZSIsICIkcmVm
IjogIkNvb2tpZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY29va2llIHRoYXQgc2hvdWxkIGJlIGFk
ZGVkIHRvIHN0b3JhZ2UuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjog
dHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJkZWxldGVB
bGxDb29raWVzIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWxldGUgYWxsIGNvb2tp
ZXMgdGhhdCBhcmUgdmlzaWJsZSB0byB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwK
LSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQot
ICAgICAgICAgICAgXQotICAgICAgICB9Ci0gICAgXQotfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmVkOWZkODI4Yjg0ODc5NjgwYmFkOGRiOWNmMTE4YWNkNTVlNmQ2MzQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24u
aW4KQEAgLTAsMCArMSw0NzkgQEAKK3sKKyAgICAiZG9tYWluIjogIkF1dG9tYXRpb24iLAorICAg
ICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aW9uIGRvbWFpbiBleHBvc2VzIGNvbW1hbmRzIGZvciBh
dXRvbWF0aW5nIHVzZXIgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGJyb3dzZXIuIiwKKyAgICAidHlw
ZXMiOiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJQb2ludCIsCisgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ4IiwgInR5cGUiOiAibnVtYmVyIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAieSIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiU2l6ZSIsCisgICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIm51bWJlciIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiUmVjdCIsCisg
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAiJHJlZiI6ICJQb2ludCIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJTaXplIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgYSBicm93c2lu
ZyBjb250ZXh0LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkZy
YW1lSGFuZGxlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIGEgZnJhbWUgaW4gYSBwYWdl
LiIKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIk5vZGVIYW5kbGUi
LAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgYSBub2RlIGluIGEgcGFnZS4iCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJFcnJvck1lc3NhZ2UiLAorICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlz
IGVudW0gY29udGFpbnMgcHJlZGVmaW5lZCBlcnJvciBtZXNzYWdlcyB0aGF0IGNhbiBiZSB1c2Vk
IHRvIHNpZ25hbCBhIHdlbGwtZGVmaW5lZCBlcnJvciBjb25kaXRpb24sIHN1Y2ggYXMgYSBtaXNz
aW5nIGltcGxlbWVudGF0aW9uLCB1bmtub3duIHdpbmRvdyBoYW5kbGUsIGFuZCBzbyBmb3J0aC4g
VGhlIGJhY2tlbmQgc2lnbmFscyBvbmUgb2YgdGhlc2UgZXJyb3JzIGJ5IHVzaW5nIGl0IGFzIGEg
cHJlZml4IG9mIHRoZSBjb21tYW5kcydzIGVycm9yIG1lc3NhZ2UgKHRoZSBlcnJvclN0cmluZyBh
cmd1bWVudCBpbiBnZW5lcmF0ZWQgQysrIGJhY2tlbmQgZGlzcGF0Y2hlcnMpLiBUaGlzIHdpbGwg
YmUgcmVwb3J0ZWQgdG8gdGhlIGZyb250ZW5kIGFzIGEgcHJvdG9jb2wgZXJyb3Igd2l0aCBhIEpT
T04tUlBDIGVycm9yIGNvZGUgb2YgJ1NlcnZlckVycm9yJy4gSXQgaXMgdXAgdG8gdGhlIGZyb250
ZW5kIHdoZXRoZXIgYW5kIGhvdyB0byBkZWFsIHdpdGggZXJyb3JzLiIsCisgICAgICAgICAgICAi
ZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiSW50ZXJuYWxFcnJvciIsCisgICAgICAgICAgICAg
ICAgIlRpbWVvdXQiLAorICAgICAgICAgICAgICAgICJKYXZhU2NyaXB0RXJyb3IiLAorICAgICAg
ICAgICAgICAgICJKYXZhU2NyaXB0VGltZW91dCIsCisgICAgICAgICAgICAgICAgIldpbmRvd05v
dEZvdW5kIiwKKyAgICAgICAgICAgICAgICAiRnJhbWVOb3RGb3VuZCIsCisgICAgICAgICAgICAg
ICAgIk5vZGVOb3RGb3VuZCIsCisgICAgICAgICAgICAgICAgIkludmFsaWRFbGVtZW50U3RhdGUi
LAorICAgICAgICAgICAgICAgICJOb0phdmFTY3JpcHREaWFsb2ciLAorICAgICAgICAgICAgICAg
ICJOb3RJbXBsZW1lbnRlZCIsCisgICAgICAgICAgICAgICAgIk1pc3NpbmdQYXJhbWV0ZXIiLAor
ICAgICAgICAgICAgICAgICJJbnZhbGlkUGFyYW1ldGVyIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQnJvd3NpbmdDb250ZXh0IiwKKyAg
ICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
QSBoYW5kbGUgcmVwcmVzZW50aW5nIGFuIG9wZW4gd2luZG93IG9yIHRhYiBpbiB0aGUgYXV0b21h
dGlvbiBzZXNzaW9uLiIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIs
ICJkZXNjcmlwdGlvbiI6ICJPcGFxdWUgaGFuZGxlIGZvciBhIGJyb3dzaW5nIGNvbnRleHQgKHdp
bmRvdyBvciB0YWIpLiBVc2VkIGFzIGEga2V5IGZvciB3aW5kb3ctcmVsYXRlZCBjb21tYW5kcy4i
IH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhY3RpdmUiLCAidHlwZSI6ICJib29sZWFu
IiwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIGJyb3dzaW5nIGNvbnRleHQgaGFzIGZvY3Vz
IGF0IHRoZSB0aW1lIHRoZSBjb21tYW5kIGlzIGhhbmRsZWQuIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBV
UkwgbG9hZGVkIGJ5IHRoZSBicm93c2luZyBjb250ZXh0IGF0IHRoZSB0aW1lIHRoZSBjb21tYW5k
IGlzIGhhbmRsZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2luZG93U2l6ZSIs
ICIkcmVmIjogIlNpemUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGN1cnJlbnQgc2l6ZSBvZiB0aGUg
YnJvd3NpbmcgY29udGV4dCdzIHdpbmRvdy4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ3aW5kb3dPcmlnaW4iLCAiJHJlZiI6ICJQb2ludCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY3Vy
cmVudCAoeCwgeSkgcG9zaXRpb24gb2YgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3aW5kb3cgcmVs
YXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBzY3JlZW4uIiB9CisgICAgICAgICAgICBdCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJNb3VzZUludGVyYWN0aW9u
IiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgd2F5cyBvZiBpbnRlcmFjdGluZyB3aXRoIGEgbW91
c2UgY3Vyc29yLiIsCisgICAgICAgICAgICAiZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiTW92
ZSIsCisgICAgICAgICAgICAgICAgIkRvd24iLAorICAgICAgICAgICAgICAgICJVcCIsCisgICAg
ICAgICAgICAgICAgIlNpbmdsZUNsaWNrIiwKKyAgICAgICAgICAgICAgICAiRG91YmxlQ2xpY2si
CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6
ICJNb3VzZUJ1dHRvbiIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMgZGlmZmVyZW50IG1vdXNlIGJ1dHRvbnMgdGhh
dCBjYW4gYmUgdXNlZC4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAg
Ik5vbmUiLAorICAgICAgICAgICAgICAgICJMZWZ0IiwKKyAgICAgICAgICAgICAgICAiTWlkZGxl
IiwKKyAgICAgICAgICAgICAgICAiUmlnaHQiCisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJLZXlNb2RpZmllciIsCisgICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMg
ZGlmZmVyZW50IGtleSBtb2RpZmllcnMgdGhhdCBjYW4gcmVtYWluIHByZXNzZWQgZHVyaW5nIG90
aGVyIG1vdXNlL3RvdWNoIGludGVyYWN0aW9ucy4iLAorICAgICAgICAgICAgImVudW0iOiBbCisg
ICAgICAgICAgICAgICAgIkNhcHNMb2NrIiwKKyAgICAgICAgICAgICAgICAiQ29udHJvbCIsCisg
ICAgICAgICAgICAgICAgIlNoaWZ0IiwKKyAgICAgICAgICAgICAgICAiTWV0YSIsCisgICAgICAg
ICAgICAgICAgIkFsdCIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImlkIjogIlZpcnR1YWxLZXkiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJhdGVzIGRpZmZlcmVudCBwbGF0
Zm9ybS1pbmRlcGVuZGVudCB2aXJ0dWFsIGtleXMgb24gYSBwaHlzaWNhbCBrZXlib2FyZCB3aG9z
ZSBpbnB1dCB2aWEga2V5Ym9hcmQgbWF5IG9yIG1heSBub3QgcHJvZHVjZSBjaGFyYWN0ZXJzLiIs
CisgICAgICAgICAgICAiZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiU2hpZnQiLAorICAgICAg
ICAgICAgICAgICJDb250cm9sIiwKKyAgICAgICAgICAgICAgICAiQWx0ZXJuYXRlIiwKKyAgICAg
ICAgICAgICAgICAiTWV0YSIsCisgICAgICAgICAgICAgICAgIkNvbW1hbmQiLAorICAgICAgICAg
ICAgICAgICJDYW5jZWwiLAorICAgICAgICAgICAgICAgICJIZWxwIiwKKyAgICAgICAgICAgICAg
ICAiQmFja3NwYWNlIiwKKyAgICAgICAgICAgICAgICAiVGFiIiwKKyAgICAgICAgICAgICAgICAi
Q2xlYXIiLAorICAgICAgICAgICAgICAgICJFbnRlciIsCisgICAgICAgICAgICAgICAgIlBhdXNl
IiwKKyAgICAgICAgICAgICAgICAiRXNjYXBlIiwKKyAgICAgICAgICAgICAgICAiUGFnZVVwIiwK
KyAgICAgICAgICAgICAgICAiUGFnZURvd24iLAorICAgICAgICAgICAgICAgICJFbmQiLAorICAg
ICAgICAgICAgICAgICJIb21lIiwKKyAgICAgICAgICAgICAgICAiTGVmdEFycm93IiwKKyAgICAg
ICAgICAgICAgICAiVXBBcnJvdyIsCisgICAgICAgICAgICAgICAgIlJpZ2h0QXJyb3ciLAorICAg
ICAgICAgICAgICAgICJEb3duQXJyb3ciLAorICAgICAgICAgICAgICAgICJJbnNlcnQiLAorICAg
ICAgICAgICAgICAgICJEZWxldGUiLAorICAgICAgICAgICAgICAgICJTcGFjZSIsCisgICAgICAg
ICAgICAgICAgIlNlbWljb2xvbiIsCisgICAgICAgICAgICAgICAgIkVxdWFscyIsCisgICAgICAg
ICAgICAgICAgIlJldHVybiIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZDAiLAorICAgICAg
ICAgICAgICAgICJOdW1iZXJQYWQxIiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkMiIsCisg
ICAgICAgICAgICAgICAgIk51bWJlclBhZDMiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ0
IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkNSIsCisgICAgICAgICAgICAgICAgIk51bWJl
clBhZDYiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ3IiwKKyAgICAgICAgICAgICAgICAi
TnVtYmVyUGFkOCIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZDkiLAorICAgICAgICAgICAg
ICAgICJOdW1iZXJQYWRNdWx0aXBseSIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZEFkZCIs
CisgICAgICAgICAgICAgICAgIk51bWJlclBhZFNlcGFyYXRvciIsCisgICAgICAgICAgICAgICAg
Ik51bWJlclBhZFN1YnRyYWN0IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkRGVjaW1hbCIs
CisgICAgICAgICAgICAgICAgIk51bWJlclBhZERpdmlkZSIsCisgICAgICAgICAgICAgICAgIkZ1
bmN0aW9uMSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uMiIsCisgICAgICAgICAgICAgICAg
IkZ1bmN0aW9uMyIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uNCIsCisgICAgICAgICAgICAg
ICAgIkZ1bmN0aW9uNSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uNiIsCisgICAgICAgICAg
ICAgICAgIkZ1bmN0aW9uNyIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uOCIsCisgICAgICAg
ICAgICAgICAgIkZ1bmN0aW9uOSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uMTAiLAorICAg
ICAgICAgICAgICAgICJGdW5jdGlvbjExIiwKKyAgICAgICAgICAgICAgICAiRnVuY3Rpb24xMiIK
KyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjog
IktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgd2F5cyBv
ZiBpbnRlcmFjdGluZyB3aXRoIGEga2V5Ym9hcmQgZGV2aWNlLiAnSW5zZXJ0QnlLZXknIGltcGxp
ZXMgdGhhdCBhIHNlcGFyYXRlIEtleURvd24gYW5kIEtleVVwIGV2ZW50IGFyZSBwcm9kdWNlZCBm
b3IgZWFjaCBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlLCByZWdhcmRsZXNzIG9mIHRoZSBh
Y3R1YWwga2V5c3Ryb2tlcyByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBjaGFyYWN0ZXIgc2VxdWVu
Y2UuIiwKKyAgICAgICAgICAgICJlbnVtIjogWworICAgICAgICAgICAgICAgICJLZXlQcmVzcyIs
CisgICAgICAgICAgICAgICAgIktleVJlbGVhc2UiLAorICAgICAgICAgICAgICAgICJJbnNlcnRC
eUtleSIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAg
ImlkIjogIktleWJvYXJkSW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNpbmdsZSBzdGVwIGluIGEga2V5IHNl
cXVlbmNlLiBBIHN0ZXAgY2FuIGNvbnRhaW4gYSBrZXkgdXAvZG93biBvZiBhIHZpcnR1YWwga2V5
LCBvciBhIHNlcXVlbmNlIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgdGhhdCBhcmUgZGVsaXZlcmVk
IHRvIHRoZSBwYWdlIGF0IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4gRWl0aGVyIGEgJ2tl
eScgb3IgJ3RleHQnIHByb3BlcnR5IG11c3QgYmUgc3BlY2lmaWVkLiIsCisgICAgICAgICAgICAi
cHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAiJHJlZiI6
ICJLZXlib2FyZEludGVyYWN0aW9uVHlwZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlwZSBvZiBp
bnRlcmFjdGlvbiB0byBiZSBwZXJmb3JtZWQgYnkgYSBzdGVwLiIgfSwKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImtleSIsICIkcmVmIjogIlZpcnR1YWxLZXkiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQSB2aXJ0dWFsIGtleSB0byBiZSB1c2VkIHRvIHBlcmZvcm0gdGhl
IHNwZWNpZmllZCBpbnRlcmFjdGlvbi4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0
ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IkEgdW5pY29kZSBzdHJpbmcgdG8gYmUgZGVsaXZlcmVkIHRvIHRoZSBwYWdlLiBUaGUgc2VxdWVu
Y2Ugb2Yga2V5IGV2ZW50cyBpcyBkZXRlcm1pbmVkIGJ5IHNwbGl0dGluZyB0aGUgc3RyaW5nIGF0
IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkNvb2tpZSIsCisgICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IkNvb2tpZSBuYW1lLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSB2YWx1ZS4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJkb21haW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiQ29va2llIGRvbWFpbi4gSWYgZW1wdHksIHRoZSBkb21haW4gaXMgaW5oZXJpdGVkIGZy
b20gdGhlIHJlbGV2YW50IGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicGF0aCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUg
cGF0aC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHBpcmVzIiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSBleHBpcmF0aW9uIGluIHNlY29uZHMgc2lu
Y2UgdGhlIFVOSVggZXBvY2guIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIs
ICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIHNpemUuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaHR0cE9ubHkiLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUgaWYgY29va2llIGlzIGh0dHAtb25seS4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzZWN1cmUiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9u
IjogIlRydWUgaWYgY29va2llIGlzIHNlY3VyZS4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzZXNzaW9uIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlu
IGNhc2Ugb2Ygc2Vzc2lvbiBjb29raWUuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAg
ICBdLAorICAgICJjb21tYW5kcyI6IFsKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAi
Z2V0QnJvd3NpbmdDb250ZXh0cyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmV0Y2hl
cyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgb3BlbiBicm93c2luZyBjb250ZXh0cyAod2luZG93cyBh
bmQgdGFicykgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbi4iLAorICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0cyIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHQiIH0sICJkZXNjcmlwdGlv
biI6ICJBbGwga25vd24gYnJvd3NpbmcgY29udGV4dHMgYXZhaWxhYmxlIHRvIHRoZSBzZXNzaW9u
LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJnZXRCcm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkZldGNoZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbnRleHQiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHQiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGJyb3dzaW5nIGNvbnRleHQgYXZhaWxhYmxlIHRvIHRoZSBzZXNzaW9uLiIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJjcmVhdGVC
cm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9wZW5zIGEgbmV3
IGJyb3dzaW5nIGNvbnRleHQgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbiBhbmQgbWFrZXMgaXQg
dGhlIGFjdGl2ZSBicm93c2luZyBjb250ZXh0IGZvciB1c2VyIGludGVyYWN0aW9uLiBUaGlzIGNv
bW1hbmQgY3JlYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgaW4gYSBuZXcgd2luZG93IHJhdGhlciB0
aGFuIGFkZGluZyBhIHRhYiB0byBhbiBleGlzdGluZyB3aW5kb3cuIiwKKyAgICAgICAgICAgICJy
ZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAi
QnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBoYW5kbGUg
Zm9yIHRoZSBuZXdseSBjcmVhdGVkIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImNsb3NlQnJvd3Np
bmdDb250ZXh0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUcnkgdG8gY2xvc2UgdGhl
IHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0LiBUaGlzIGNhbiB0cmlnZ2VyIGFuIHVubG9hZCBw
cm9tcHQgYW5kIHRoZXJlYWZ0ZXIgc3VjY2VlZCBvciBmYWlsLiIsCisgICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBjbG9zZWQuIiB9CisgICAgICAgICAg
ICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInN3aXRjaFRv
QnJvd3NpbmdDb250ZXh0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBY3RpdmF0ZXMg
dGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IGFuZCBvcHRpb25hbCBmcmFtZSwgd2hpY2gg
Z2l2ZXMgdGhlbSBmb2N1cyAoY2F1c2luZyB0aGUgJ2ZvY3VzJyBET00gZXZlbnQgdG8gZmlyZSwg
YW5kICdibHVyJyBET00gZXZlbnQgdG8gZmlyZSBmb3IgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNv
bnRleHQgYW5kIGZyYW1lKS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJy
b3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbWFkZSBmb2N1c2VkLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1l
IHRoYXQgc2hvdWxkIGJlIGZvY3VzZWQuIERlZmF1bHRzIHRvIHRoZSBtYWluIGZyYW1lIGlmIG9t
aXR0ZWQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogIm5hdmlnYXRlQnJvd3NpbmdDb250ZXh0IiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250ZXh0IHRvIGEgc3BlY2lmaWVkIFVS
TC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUg
bmF2aWdhdGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0eXBlIjog
InN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgVVJMIHRvIGxvYWQgaW4gdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQor
ICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJnb0JhY2tJbkJyb3dz
aW5nQ29udGV4dCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdhdGVzIGEgYnJv
d3NpbmcgY29udGV4dCB0byBnbyBiYWNrIG9uZSBwYWdlIGluIGhpc3RvcnkuIiwKKyAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwg
IiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5k
bGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0K
KyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93c2luZyBjb250
ZXh0IHRvIGdvdCBmb3J3YXJkIG9uZSBwYWdlIGluIGhpc3RvcnkuIiwKKyAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYi
OiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0KKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAg
IHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbG9hZEJyb3dzaW5nQ29udGV4dCIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiUmVsb2FkcyB0aGUgY3VycmVudCBwYWdlIGluIGEgYnJvd3Np
bmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBz
aG91bGQgYmUgcmVsb2FkZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5j
IjogdHJ1ZQorICAgICAgICB9LAorI2lmIGRlZmluZWQoTUFDX09OTFkpCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogInJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0IiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZXNpemVzIHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmll
ZCBicm93c2luZyBjb250ZXh0IHRvIHRoZSBzcGVjaWZpZWQgc2l6ZS4iLAorICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJl
ZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBm
b3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgcmVzaXplZC4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJzaXplIiwgIiRyZWYiOiAiU2l6ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
bmV3IHNpemUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJtb3ZlV2lu
ZG93T2ZCcm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1vdmVz
IHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IHRvIHRoZSBzcGVj
aWZpZWQgcG9zaXRpb24uIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxl
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRv
IGJlIG1vdmVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICIkcmVm
IjogIlBvaW50IiwgImRlc2NyaXB0aW9uIjogIlRoZSBuZXcgb3JpZ2luIGZvciB0aGUgYnJvd3Np
bmcgY29udGV4dCdzIHdpbmRvdy4gVGhlIHBvc2l0aW9uIGlzIGludGVycHJldGVkIGluIHNjcmVl
biBjb29yZGluYXRlIHNwYWNlLCByZWxhdGl2ZSB0byB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2Yg
dGhlIHNjcmVlbi4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgIm5hbWUiOiAiaW5zcGVjdEJyb3dzaW5nQ29udGV4dCIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiSW5zcGVjdCB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdXNp
bmcgV2ViIEluc3BlY3Rvci4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQg
dGhhdCBzaG91bGQgYmUgaW5zcGVjdGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImVuYWJsZUF1dG9DYXB0dXJpbmciLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoaXMgb3B0aW9uIGlzIHByZXNlbnQgYW5kIHNldCB0byB0
cnVlLCB0aGUgV2ViIEluc3BlY3RvciB3aWxsIGF1dG9tYXRpY2FsbHkgc3RhcnQgYSB0aW1lbGlu
ZSByZWNvcmRpbmcgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IG9uY2UgaXQgaXMg
YXR0YWNoZWQuIE5vdGUgdGhhdCB0aGlzIGRpc2FibGVzIHRoZSBkZWJ1Z2dlciBmb3IgdGhlIGR1
cmF0aW9uIG9mIHRoZSByZWNvcmRpbmcuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
ImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorI2VuZGlmIC8vIE1BQ19PTkxZCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJFdmFsdWF0ZXMgYSBzY3JpcHQgZnVuY3Rpb24gaW4gYSBi
cm93c2luZyBjb250ZXh0IGFuZCBjYWxscyBpdCB3aXRoIHRoZSBzdXBwbGllZCBhcmd1bWVudHMu
IiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxl
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRo
ZSBzY3JpcHQgc2hvdWxkIGJlIGV2YWx1YXRlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGUgc2NyaXB0IHNo
b3VsZCBiZSBldmFsdWF0ZWQuIFRoZSBtYWluIGZyYW1lIGlzIHVzZWQgaWYgdGhpcyBwYXJhbWV0
ZXIgZW1wdHkgc3RyaW5nIG9yIGV4Y2x1ZGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImZ1bmN0aW9uIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBzY3Jp
cHQgdG8gZXZhbHVhdGUgaW4gdGhlIGJyb3dzaW5nIGNvbnRleHQuIEl0IG11c3QgYmUgYSBmdW5j
dGlvbiByZXN1bHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXJndW1lbnRzIiwg
InR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICJ0eXBlIjogInN0cmluZyIgfSwgImRlc2NyaXB0
aW9uIjogIlRoZSBhcmd1bWVudHMgdG8gcGFzcyB0byB0aGUgZnVuY3Rpb24gd2hlbiBjYWxsZWQu
IFRoZXkgd2lsbCBiZSBwYXJzZWQgYXMgSlNPTiBiZWZvcmUgY2FsbGluZyB0aGUgZnVuY3Rpb24u
IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tB
cmd1bWVudCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGZ1bmN0aW9uIGV4cGVjdHMgYSBjYWxsYmFjayBmdW5jdGlvbiBhcyB0aGUgbGFz
dCBhcmd1bWVudC4gSXQgaXMgZXhwZWN0ZWQgdG8gY2FsbCB0aGlzIGNhbGxiYWNrIHdpdGggYSBy
ZXN1bHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY2FsbGJhY2tUaW1lb3V0Iiwg
InR5cGUiOiAiaW50ZWdlciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUg
dGltZW91dCBpbiBtaWxsaXNlY29uZHMgdGhhdCB0aGUgaW1wbGljaXQgY2FsbGJhY2sgaXMgZXhw
ZWN0ZWQgdG8gYmUgY2FsbGVkIGluLCBvdGhlcndpc2UgYSA8Y29kZT5KYXZhU2NyaXB0VGltZW91
dDwvY29kZT4gZXJyb3IgaXMgcmV0dXJuZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHJlc3VsdCByZXR1cm5lZCBieSB0aGUg
Y2FsbGVkIGZ1bmN0aW9uLiBJdCBpcyBKU09OIGVuY29kZWQgYWZ0ZXIgdGhlIGZ1bmN0aW9uIHJl
dHVybnMgb3IgY2FsbHMgdGhlIGNhbGxiYWNrLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAicGVyZm9ybU1vdXNlSW50ZXJhY3Rpb24iLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIlNpbXVsYXRlcyBpbnRlcmFjdGlvbiB3aXRoIGEgbW91c2UgY3Vyc29yLiIsCisgICAgICAg
ICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIs
ICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgYnJv
d3NpbmcgY29udGV4dCB0byBiZSBpbnRlcmFjdGVkIHdpdGguIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAicG9zaXRpb24iLCAiJHJlZiI6ICJQb2ludCIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgcmVxdWVzdGVkIHBvc2l0aW9uIGZvciB0aGUgbW91c2UgY3Vyc29yLCBzcGVjaWZpZWQgaW4g
dmlld3BvcnQgY29vcmRpbmF0ZXMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnV0
dG9uIiwgIiRyZWYiOiAiTW91c2VCdXR0b24iLCAiZGVzY3JpcHRpb24iOiAiVGhlIGJ1dHRvbiB0
byB1c2UgdG8gcGVyZm9ybSB0aGUgaW50ZXJhY3Rpb24uIFRoaXMgcGFyYW1ldGVyIG9ubHkgaGFz
IGFuIGVmZmVjdCBmb3IgdGhlIDxjb2RlPkRvd248L2NvZGU+LCA8Y29kZT5VcDwvY29kZT4sIDxj
b2RlPkNsaWNrPC9jb2RlPiwgYW5kIDxjb2RlPkRvdWJsZUNsaWNrPC9jb2RlPiBtb3VzZSBpbnRl
cmFjdGlvbnMuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW50ZXJhY3Rpb24iLCAi
JHJlZiI6ICJNb3VzZUludGVyYWN0aW9uIiwgImRlc2NyaXB0aW9uIjogIlRoZSB0eXBlIG9mIGlu
dGVyYWN0aW9uIHRvIGJlIHBlcmZvcm1lZCB3aXRoIHRoZSBtb3VzZSBjdXJzb3IuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibW9kaWZpZXJzIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRl
bXMiOiB7ICIkcmVmIjogIktleU1vZGlmaWVyIiB9LCAiZGVzY3JpcHRpb24iOiAiS2V5IG1vZGlm
aWVycyB0byBiZSBhY3RpdmUgZHVyaW5nIHRoZSBtb3VzZSBpbnRlcmFjdGlvbi4iIH0KKyAgICAg
ICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogInBvc2l0aW9uIiwgIiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVw
ZGF0ZWQgcG9zaXRpb24gb2YgdGhlIG1vdXNlIGN1cnNvciwgc3BlY2lmaWVkIGluIHZpZXdwb3J0
IGNvb3JkaW5hdGVzLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIlNpbXVsYXRlcyBkZWxpdmVyaW5nIHRoZSByZXN1bHRzIG9m
IHByZXNzaW5nIG9uZSBvciBtb3JlIGtleWJvYXJkIGtleXMgdG9nZXRoZXIgb3Igc3VjY2Vzc2l2
ZWx5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB3aGljaCBzaG91bGQg
cmVjZWl2ZSBrZXkuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaW50ZXJhY3Rpb25z
IiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIktleWJvYXJkSW50ZXJhY3Rp
b24iIH0sICJkZXNjcmlwdGlvbiI6ICJBbiBvcmRlcmVkIGxpc3Qgb2Yga2V5IHNlcXVlbmNlcyB0
byBiZSBkZWxpdmVyZWQgdXNpbmcgbmF0aXZlIGtleSBldmVudHMuIiB9CisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAibmFtZSI6ICJ0YWtlU2NyZWVuc2hvdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiVGFrZSBhIHNjcmVlbnNob3Qgb2YgdGhlIGN1cnJlbnQgcGFnZSBpbiBhIGJyb3dzaW5n
IGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRl
c2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRvIHRha2Ug
YSBzY3JlZW5zaG90IG9mLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5z
IjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZGF0YSIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJCYXNlNjQtZW5jb2RlZCBpbWFnZSBkYXRhIChQTkcpLiIgfQorICAg
ICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZUNoaWxkRnJhbWVIYW5kbGUiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRldGVybWluZXMgdGhlIDxjb2RlPkZyYW1lSGFuZGxl
PC9jb2RlPiBiYXNlZCBvbiB0aGUgb3JkaW5hbCwgbmFtZSBvciBub2RlIGhhbmRsZSBvZiBhIGNo
aWxkIGZyYW1lLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29u
dGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Npbmcg
Y29udGV4dCBpbiB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBmcmFtZS4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSBp
biB3aGljaCB0byBzZWFyY2ggZm9yIHRoZSBmcmFtZS4gVGhlIG1haW4gZnJhbWUgaXMgdXNlZCBp
ZiB0aGlzIHBhcmFtZXRlciBlbXB0eSBzdHJpbmcgb3IgZXhjbHVkZWQuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAib3JkaW5hbCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIG9yZGluYWwgb2YgdGhlIGNoaWxkIGZyYW1lIHRv
IHJlc29sdmUgYXMgYSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIFRoaXMgaXMgYW5hbG9nb3Vz
IHRvICd3aW5kb3cuZnJhbWVzW29yZGluYWxdJyBpbiBKYXZhU2NyaXB0LiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogIm5hbWUiLCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5hbWUgb2YgdGhlIGNoaWxkIGZyYW1lIHRvIHJlc29s
dmUgYXMgYSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIFRoaXMgaXMgYW5hbG9nb3VzIHRvICd3
aW5kb3cuZnJhbWVzW25hbWVdJyBpbiBKYXZhU2NyaXB0LiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogIm5vZGVIYW5kbGUiLCAiJHJlZiI6ICJOb2RlSGFuZGxlIiwgIm9wdGlvbmFsIjog
dHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgb2YgdGhlIGNoaWxkIGZyYW1lIG93bmVy
IGVsZW1lbnQgdG8gcmVzb2x2ZSBhcyBhIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4iIH0KKyAg
ICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInJlc3VsdCIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2NyaXB0aW9uIjog
IlRoZSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4gZm9yIHRoZSByZXF1ZXN0ZWQgZnJhbWUuIiB9
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAor
ICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlUGFyZW50RnJhbWVIYW5kbGUi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRldGVybWluZXMgdGhlIDxjb2RlPkZyYW1l
SGFuZGxlPC9jb2RlPiBmb3IgdGhlIHBhcmVudCBmcmFtZSBvZiB0aGUgc3VwcGxpZWQgPGNvZGU+
RnJhbWVIYW5kbGU8L2NvZGU+LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJy
b3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUg
YnJvd3NpbmcgY29udGV4dCB0aGUgZnJhbWUgaXMgbG9jYXRlZC4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2Ny
aXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IHNob3VsZCByZXNvbHZlIGl0
cyBwYXJlbnQgZnJhbWUuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJGcmFtZUhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgPGNvZGU+RnJhbWVIYW5kbGU8L2NvZGU+IGZvciB0
aGUgcmVxdWVzdGVkIGZyYW1lLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3lu
YyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY29t
cHV0ZUVsZW1lbnRMYXlvdXQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkNvbXB1dGVz
IHRoZSBsYXlvdXQgZm9yIGFuIGVsZW1lbnQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRy
ZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUg
Zm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoZSBmcmFtZSBpcyBsb2NhdGVkLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUi
LCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1lIHRoYXQgY29udGFpbnMg
dGhlIGVsZW1lbnQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUhhbmRsZSIs
ICIkcmVmIjogIk5vZGVIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBvZiB0aGUg
ZWxlbWVudCB0byB1c2UuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Nyb2xsSW50
b1ZpZXdJZk5lZWRlZCIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVz
Y3JpcHRpb24iOiAiSWYgdGhlIGVsZW1lbnQgc2hvdWxkIGJlIHNjcm9sbGVkIGludG8gdmlldyBi
ZWZvcmUgY29tcHV0aW5nIGl0cyBsYXlvdXQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAidXNlVmlld3BvcnRDb29yZGluYXRlcyIsICJvcHRpb25hbCI6IHRydWUsICJ0eXBlIjogImJv
b2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHJlc3VsdCBjb29yZGluYXRlcyBzaG91bGQg
YmUgcmVwcmVzZW50ZWQgYXMgdmlld3BvcnQgY29vcmRpbmF0ZXMgb3Igbm90LiBEZWZhdWx0cyB0
byBmYWxzZSwgd2hpY2ggbWVhbnMgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIHJlcHJlc2VudGVkIGFz
IHBhZ2UgY29vcmRpbmF0ZXMuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJyZWN0IiwgIiRyZWYiOiAiUmVjdCIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgbGF5b3V0IHJlY3QgZm9yIHRoZSByZXF1ZXN0ZWQgZWxlbWVu
dC4gU3BlY2lmaWVkIGluIHBhZ2Ugb3Igdmlld3BvcnQgY29vcmRpbmF0ZXMgYmFzZWQgb24gdGhl
IHVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMgcGFyYW1ldGVyLiIgfQorICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAg
ICAgIm5hbWUiOiAiaXNTaG93aW5nSmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQ2hlY2tzIGlmIGEgYnJvd3NpbmcgY29udGV4dCBpcyBzaG93aW5nIGEgSmF2
YVNjcmlwdCBhbGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxvZy4iLAorICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBd
LAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJy
ZXN1bHQiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBicm93c2lu
ZyBjb250ZXh0IGlzIHNob3dpbmcgYSBKYXZhU2NyaXB0IGRpYWxvZyBvciBub3QuIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImRp
c21pc3NDdXJyZW50SmF2YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiRGlzbWlzc2VzIGEgSmF2YVNjcmlwdCBhbGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxv
ZyBjdXJyZW50bHkgc2hvd2luZyBpbiBhIGJyb3dzaW5nIGNvbnRleHQuIEVxdWl2YWxlbnQgdG8g
Y2xpY2tpbmcgdGhlICdDYW5jZWwnIGJ1dHRvbi4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFjY2VwdEN1cnJlbnRKYXZhU2NyaXB0
RGlhbG9nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBY2NlcHRzIGEgSmF2YVNjcmlw
dCBhbGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxvZyBjdXJyZW50bHkgc2hvd2luZyBpbiBh
IGJyb3dzaW5nIGNvbnRleHQuIEVxdWl2YWxlbnQgdG8gY2xpY2tpbmcgdGhlICdPSycgYnV0dG9u
LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4i
IH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5h
bWUiOiAibWVzc2FnZU9mQ3VycmVudEphdmFTY3JpcHREaWFsb2ciLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlJldHVybnMgdGhlIHRleHQgZGlzcGxheWVkIGluIGEgSmF2YVNjcmlwdCBh
bGVydCwgY29uZmlybSwgb3IgcHJvbXB0IGRpYWxvZyBjdXJyZW50bHkgc2hvd2luZyBpbiBhIGJy
b3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93
c2luZyBjb250ZXh0LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibWVzc2FnZSIsICJ0eXBlIjogInN0cmluZyIs
ICJkZXNjcmlwdGlvbiI6ICJUZXh0IGJlaW5nIGRpc3BsYXllZCBpbiB0aGUgY3VycmVudCBKYXZh
U2NyaXB0IGRpYWxvZy4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAic2V0VXNlcklucHV0Rm9yQ3VycmVudEphdmFTY3JpcHRQcm9t
cHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIlNldHMgdGhlIHVzZXIgZW50ZXJlZCB2
YWx1ZSBpbiBhIEphdmFTY3JpcHQgcHJvbXB0IGRpYWxvZyBjdXJyZW50bHkgc2hvd2luZyBpbiBh
IGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBi
cm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJJbnB1
dCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdGV4dCB0byBlbnRlciBp
biB0aGUgcHJvbXB0LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJnZXRBbGxDb29raWVzIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJSZXR1cm5zIGFsbCBjb29raWVzIHZpc2libGUgdG8gdGhlIHNwZWNpZmllZCBicm93
c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5n
Q29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Np
bmcgY29udGV4dC4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJucyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZXMiLCAidHlwZSI6ICJhcnJheSIsICJp
dGVtcyI6IHsgIiRyZWYiOiAiQ29va2llIiB9LCAiZGVzY3JpcHRpb24iOiAiQXJyYXkgb2YgY29v
a2llIG9iamVjdHMuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1
ZQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJkZWxldGVTaW5n
bGVDb29raWUiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkRlbGV0ZXMgYSBjb29raWUg
d2l0aCB0aGUgZ2l2ZW4gbmFtZSBpZiB2aXNpYmxlIHRvIHRoZSBzcGVjaWZpZWQgYnJvd3Npbmcg
Y29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29va2llTmFtZSIsICJ0eXBl
IjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJOYW1lIG9mIHRoZSBjb29raWUgdG8gcmVtb3Zl
LiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAg
fSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiYWRkU2luZ2xlQ29va2llIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBZGQgYSBjb29raWUgdG8gY29va2llIHN0b3JhZ2Ug
Zm9yIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiY29va2llIiwgIiRyZWYiOiAiQ29va2llIiwgImRlc2NyaXB0aW9uIjogIlRoZSBj
b29raWUgdGhhdCBzaG91bGQgYmUgYWRkZWQgdG8gc3RvcmFnZS4iIH0KKyAgICAgICAgICAgIF0s
CisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJuYW1lIjogImRlbGV0ZUFsbENvb2tpZXMiLAorICAgICAgICAgICAgImRlc2NyaXB0
aW9uIjogIkRlbGV0ZSBhbGwgY29va2llcyB0aGF0IGFyZSB2aXNpYmxlIHRvIHRoZSBzcGVjaWZp
ZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJC
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhl
IGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0KKyAgICBdCit9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggMjdiMWYxNjBkOGY3OGY3ZWFmNTVkZDFkODMz
YTdkMTJlZDk3OTZhMS4uZmVkYzFmZmQyNDYyODk0NDRjMjUwYjc5YTNlODAwNTMyNDY2NDg0MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSAi
QVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCIKICNpbmNsdWRlICJBdXRvbWF0aW9uUHJvdG9j
b2xPYmplY3RzLmgiCisjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCIKICNp
bmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQXV0
b21hdGlvblNlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViQ29va2llTWFuYWdl
clByb3h5LmgiCkBAIC00NCwzMiArNDUsNiBAQAogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9y
OwogCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRv
ciA9ICI7IjsKLQotLy8gTWFrZSBzdXJlIHRoZSBwcmVkZWZpbmVkIGVycm9yIG5hbWUgaXMgdmFs
aWQsIG90aGVyd2lzZSB1c2UgSW50ZXJuYWxFcnJvci4KLSNkZWZpbmUgVkFMSURBVEVEX0VSUk9S
X01FU1NBR0UoZXJyb3JTdHJpbmcpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxw
ZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6RXJyb3JNZXNzYWdlPihlcnJvclN0cmluZykudmFsdWVPcihJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkludGVybmFsRXJyb3IpCi0KLS8vIElmIHRo
ZSBlcnJvciBuYW1lIGlzIGluY29ycmVjdCBmb3IgdGhlc2UgbWFjcm9zLCBpdCB3aWxsIGJlIGEg
Y29tcGlsZS10aW1lIGVycm9yLgotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1Jf
TkFNRShlcnJvck5hbWUpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpn
ZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJv
ck1lc3NhZ2U6OmVycm9yTmFtZSkKLSNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFt
ZSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCi0KLS8vIElm
IHRoZSBlcnJvciBtZXNzYWdlIGlzIG5vdCBhIHByZWRlZmluZWQgZXJyb3IsIEludGVybmFsRXJy
b3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9F
UlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVy
cm9yTWVzc2FnZSkpCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdF
X0FORF9ERVRBSUxTKGVycm9yTWVzc2FnZSwgZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUo
VkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JNZXNzYWdlKSksIGVycm9yTmFtZUFuZERldGFp
bHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCi0KLS8vIENvbnZlbmllbmNlIG1hY3JvcyBmb3Ig
ZmlsbGluZyBpbiB0aGUgZXJyb3Igc3RyaW5nIG9mIHN5bmNocm9ub3VzIGNvbW1hbmRzIGluIGJh
aWxvdXQgYnJhbmNoZXMuCi0jZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKGVycm9y
TmFtZSkgXAotZG8geyBcCi0gICAgZXJyb3JTdHJpbmcgPSBTVFJJTkdfRk9SX1BSRURFRklORURf
RVJST1JfTkFNRShlcnJvck5hbWUpOyBcCi0gICAgcmV0dXJuOyBcCi19IHdoaWxlIChmYWxzZSkK
LQotI2RlZmluZSBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhlcnJvck5h
bWUsIGRldGFpbHNTdHJpbmcpIFwKLWRvIHsgXAotICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZP
Ul9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3Ry
aW5nKTsgXAotICAgIHJldHVybjsgXAotfSB3aGlsZSAoZmFsc2UpCi0KIG5hbWVzcGFjZSBXZWJL
aXQgewogCiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6V2ViQXV0b21hdGlvblNlc3Npb24oKQpAQCAt
MTA5LDcgKzg0LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0UHJvY2Vzc1Bvb2wo
V2ViS2l0OjpXZWJQcm9jZXNzUG9vbCogcHJvY2Vzc1Bvb2wpCiAKICNpZiBFTkFCTEUoUkVNT1RF
X0lOU1BFQ1RPUikKIAotLy8gSW5zcGVjdG9yOjpSZW1vdGVBdXRvbWF0aW9uVGFyZ2V0IEFQSQor
I3ByYWdtYSBtYXJrIEluc3BlY3Rvcjo6UmVtb3RlQXV0b21hdGlvblRhcmdldCBBUEkKIAogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlzcGF0Y2hNZXNzYWdlRnJvbVJlbW90ZShjb25zdCBT
dHJpbmcmIG1lc3NhZ2UpCiB7CkBAIC0yMzcsNiArMjEyLDggQEAgUmVmUHRyPEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4gV2ViQXV0b21hdGlvblNlc3Np
b246OmIKICAgICAgICAgLnJlbGVhc2UoKTsKIH0KIAorI3ByYWdtYSBtYXJrIFBsYXRmb3JtLWlu
ZGVwZW5kZW50IENvbW1hbmRzCisKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OmdldEJyb3dz
aW5nQ29udGV4dHMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIFJlZlB0cjxJ
bnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpCcm93c2luZ0NvbnRleHQ+PiYgY29udGV4dHMpCiB7CiAgICAgY29udGV4dHMgPSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93
c2luZ0NvbnRleHQ+OjpjcmVhdGUoKTsKQEAgLTMwMyw4MCArMjgwLDYgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYgZXJyb3IKICAgICBwYWdlLT5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViQXV0b21h
dGlvblNlc3Npb25Qcm94eTo6Rm9jdXNGcmFtZShwYWdlLT5wYWdlSUQoKSwgZnJhbWVJRC52YWx1
ZSgpKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlc2l6ZVdpbmRvd09m
QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHNpemVP
YmplY3QpCi17Ci0gICAgZmxvYXQgd2lkdGg7Ci0gICAgaWYgKCFzaXplT2JqZWN0LmdldERvdWJs
ZShXVEY6OkFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2lkdGgpKQotICAgICAgICBGQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd3aWR0
aCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKLQotICAgIGZsb2F0IGhl
aWdodDsKLSAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJo
ZWlnaHQiKSwgaGVpZ2h0KSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnaGVpZ2h0JyBwYXJhbWV0ZXIgd2FzIG5v
dCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAgaWYgKHdpZHRoIDwgMCkKLSAgICAgICAgRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRo
ZSAnd2lkdGgnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIGlmICho
ZWlnaHQgPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlM
UyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICdoZWlnaHQnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxp
ZCB2YWx1ZS4iKTsKLQotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhh
bmRsZShoYW5kbGUpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklO
RURfRVJST1IoV2luZG93Tm90Rm91bmQpOwotCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG9yaWdp
bmFsRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2luZG93RnJhbWUob3JpZ2luYWxGcmFtZSk7Ci0KLSAg
ICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBXZWJDb3JlOjpGbG9hdFJlY3Qob3JpZ2lu
YWxGcmFtZS5sb2NhdGlvbigpLCBXZWJDb3JlOjpGbG9hdFNpemUod2lkdGgsIGhlaWdodCkpOwot
ICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAg
ICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7Ci0KLSAgICAvLyBJZiBub3RoaW5nIGNo
YW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVwb3J0IHRoYXQgc29tZXRoaW5n
IHdlbnQgd3JvbmcuCi0gICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0ZWQg
ZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93ZXZlci4pCi0gICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKLSAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZSh1cGRh
dGVkRnJhbWUpOwotICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVwZGF0ZWRGcmFtZSkKLSAgICAg
ICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxFcnJvciwg
IlRoZSB3aW5kb3cgc2l6ZSB3YXMgZXhwZWN0ZWQgdG8gaGF2ZSBjaGFuZ2VkLCBidXQgZGlkIG5v
dC4iKTsKLX0KLQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bW92ZVdpbmRvd09mQnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJp
bmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHBvc2l0aW9uT2Jq
ZWN0KQotewotICAgIGZsb2F0IHg7Ci0gICAgaWYgKCFwb3NpdGlvbk9iamVjdC5nZXREb3VibGUo
V1RGOjpBU0NJSUxpdGVyYWwoIngiKSwgeCkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3gnIHBhcmFtZXRlciB3
YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7Ci0KLSAgICBmbG9hdCB5OwotICAgIGlmICghcG9z
aXRpb25PYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJ5IiksIHkpKQotICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVy
LCAiVGhlICd5JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAg
aWYgKHggPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlM
UyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFs
dWUuIik7Ci0KLSAgICBpZiAoeSA8IDApCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgJ3knIHBhcmFtZXRlciBoYWQg
YW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQ
cm94eUZvckhhbmRsZShoYW5kbGUpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwotCi0gICAgV2ViQ29yZTo6RmxvYXRS
ZWN0IG9yaWdpbmFsRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2luZG93RnJhbWUob3JpZ2luYWxGcmFt
ZSk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBXZWJDb3JlOjpGbG9hdFJl
Y3QoV2ViQ29yZTo6RmxvYXRQb2ludCh4LCB5KSwgb3JpZ2luYWxGcmFtZS5zaXplKCkpOwotICAg
IGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQotICAgICAgICByZXR1cm47Ci0KLSAgICBw
YWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7Ci0KLSAgICAvLyBJZiBub3RoaW5nIGNoYW5n
ZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVwb3J0IHRoYXQgc29tZXRoaW5nIHdl
bnQgd3JvbmcuCi0gICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJh
bWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93ZXZlci4pCi0gICAgV2ViQ29yZTo6
RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKLSAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZSh1cGRhdGVk
RnJhbWUpOwotICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVwZGF0ZWRGcmFtZSkKLSAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW50ZXJuYWxFcnJvciwgIlRo
ZSB3aW5kb3cgcG9zaXRpb24gd2FzIGV4cGVjdGVkIHRvIGhhdmUgY2hhbmdlZCwgYnV0IGRpZCBu
b3QuIik7Ci19Ci0KIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRlQnJvd3NpbmdD
b250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcm
IGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxOYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dENh
bGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQ
cm94eUZvckhhbmRsZShoYW5kbGUpOwpAQCAtNDMxLDI3ICszMzQsNiBAQCB2b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjpyZWxvYWRCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYgZXJyb3JTdAogICAgIHBhZ2UtPnJlbG9hZChyZWxvYWRGcm9tT3JpZ2luLCBjb250ZW50Qmxv
Y2tlcnNFbmFibGVkKTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5zcGVjdEJy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBoYW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywg
UmVmPEluc3BlY3RCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKLXsKLSAgICBX
ZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKLSAgICBp
ZiAoIXBhZ2UpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZv
dW5kKTsKLQotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJh
Y2tzUGVyUGFnZS50YWtlKHBhZ2UtPnBhZ2VJRCgpKSkKLSAgICAgICAgY2FsbGJhY2stPnNlbmRG
YWlsdXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKLSAgICBt
X3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlLnNldChwYWdlLT5wYWdlSUQoKSwgV1RG
TW92ZShjYWxsYmFjaykpOwotCi0gICAgLy8gRG9uJ3QgYnJpbmcgdGhlIGluc3BlY3RvciB0byBm
cm9udCBzaW5jZSB0aGlzIG1heSBiZSBkb25lIGF1dG9tYXRpY2FsbHkuCi0gICAgLy8gV2UganVz
dCB3YW50IGl0IGxvYWRlZCBzbyBpdCBjYW4gcGF1c2UgaWYgYSBicmVha3BvaW50IGlzIGhpdCBk
dXJpbmcgYSBjb21tYW5kLgotICAgIGlmIChwYWdlLT5pbnNwZWN0b3IoKSkgewotICAgICAgICBw
YWdlLT5pbnNwZWN0b3IoKS0+Y29ubmVjdCgpOwotCi0gICAgICAgIC8vIFN0YXJ0IGNvbGxlY3Rp
bmcgcHJvZmlsZSBpbmZvcm1hdGlvbiBpbW1lZGlhdGVseSBzbyB0aGUgZW50aXJlIHNlc3Npb24g
aXMgY2FwdHVyZWQuCi0gICAgICAgIGlmIChvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcgJiYg
Km9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZykKLSAgICAgICAgICAgIHBhZ2UtPmluc3BlY3Rv
cigpLT50b2dnbGVQYWdlUHJvZmlsaW5nKCk7Ci0gICAgfQotfQotCiB2b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYg
cGFnZSkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJy
b3dzaW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLnBhZ2VJRCgpKSkKQEAgLTEw
MzYsNyArOTE4LDkgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6ZGlkVGFrZVNjcmVlbnNo
b3QodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU2hhcmVhYmwKICAgICBjYWxsYmFjay0+c2Vu
ZFN1Y2Nlc3MoYmFzZTY0RW5jb2RlZERhdGEpOwogfQogCi0jaWYgIVVTRShBUFBLSVQpCisjcHJh
Z21hIG1hcmsgUGxhdGZvcm0tZGVwZW5kZW50IEltcGxlbWVudGF0aW9uIFN0dWJzCisKKyNpZiAh
UExBVEZPUk0oTUFDKQogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0
ZU1vdXNlSW50ZXJhY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJ
bnRQb2ludCYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rp
b24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uLCBXZWJFdmVu
dDo6TW9kaWZpZXJzKQogewogfQpAQCAtMTA0OCwxMSArOTMyLDEzIEBAIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiwgSW5z
cGVjdG9yOjpQCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5
U2VxdWVuY2UoV2ViUGFnZVByb3h5JiwgY29uc3QgU3RyaW5nJikKIHsKIH0KKyNlbmRpZiAvLyAh
UExBVEZPUk0oTUFDKQogCisjaWYgIVBMQVRGT1JNKENPQ09BKQogU3RyaW5nIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJikKIHsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9Ci0jZW5kaWYgLy8g
IVVTRShBUFBLSVQpCisjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21h
dGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDI4MGQyZDU4Yjg2ZWM3OWViMzRjYjcz
ZjZlNDllYzM5NDY5M2FkNGIuLjYyOThmMDI3NjlmZTJmNGRmZjU5NDVjM2RkY2UwODdhMWYwOGVl
NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtOTQsMTkgKzk0LDE4IEBAIHB1YmxpYzoKICAg
ICB2b2lkIGRpc2Nvbm5lY3QoSW5zcGVjdG9yOjpGcm9udGVuZENoYW5uZWwqKSBvdmVycmlkZTsK
ICNlbmRpZgogCisjcHJhZ21hIG1hcmsgUGxhdGZvcm0taW5kZXBlbmRlbnQgQ29tbWFuZHMKKwog
ICAgIC8vIEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciBBUEkK
ICAgICB2b2lkIGdldEJyb3dzaW5nQ29udGV4dHMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0QnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWZQdHI8
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiYpIG92ZXJy
aWRlOwogICAgIHZvaWQgY3JlYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmLCBTdHJpbmcqKSBvdmVycmlkZTsKICAgICB2b2lkIGNsb3NlQnJvd3NpbmdDb250ZXh0KElu
c3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lk
IHN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1l
SGFuZGxlKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0
KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5z
cGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHNpemUpIG92ZXJyaWRlOwotICAgIHZvaWQgbW92ZVdp
bmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHBvc2l0aW9uKSBv
dmVycmlkZTsKICAgICB2b2lkIG5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJy
b3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxO
YXZpZ2F0ZUJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGdv
QmFja0luQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmLCBSZWY8R29CYWNrSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgUmVmPEdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWY8UmVsb2FkQnJvd3NpbmdDb250ZXh0Q2Fs
bGJhY2s+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxF
bmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rv
cjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29u
c3QgU3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBj
b25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9w
dGlvbmFsRXhwZWN0c0ltcGxpY2l0Q2FsbGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25h
bENhbGxiYWNrVGltZW91dCwgUmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRj
aGVySGFuZGxlcjo6RXZhbHVhdGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBwZXJmb3JtTW91c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3Ry
aW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0JiByZXF1ZXN0ZWRQb3NpdGlvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3Qg
U3RyaW5nJiBtb3VzZUludGVyYWN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5
JiBrZXlNb2RpZmllcnMsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQ
b2ludD4mIHVwZGF0ZWRQb3NpdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtS2V5Ym9h
cmRJbnRlcmFjdGlvbnMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFu
ZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQ
ZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CkBAIC0xMjMs
MTEgKzEyMiwyNCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVTaW5nbGVDb29raWUoSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBj
b25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIFJlZjxEZWxldGVTaW5nbGVDb29raWVDYWxsYmFjaz4m
Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRTaW5nbGVDb29raWUoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3Rvck9iamVjdCYgY29va2llLCBSZWY8QWRkU2luZ2xlQ29va2llQ2FsbGJhY2s+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUpIG92ZXJyaWRlOwot
I2lmIFVTRShBUFBLSVQpCisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1zcGVjaWZpYyBDb21tYW5k
cworCisjaWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgcmVzaXplV2luZG93T2ZCcm93c2luZ0Nv
bnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25z
dCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBt
b3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRp
b24pIG92ZXJyaWRlOworICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6
OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVB
dXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVy
cmlkZTsKKyNlbmRpZgorCisjcHJhZ21hIG1hcmsgRXZlbnQgU2ltdWxhdGlvbiBTdXBwb3J0CisK
KyNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCB3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21h
dGlvbihOU0V2ZW50ICopOwogICAgIHZvaWQgbWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9t
YXRpb24oTlNFdmVudCAqKTsKICNlbmRpZgogCisjcHJhZ21hIG1hcmsgLQorCiBwcml2YXRlOgog
ICAgIFdlYlBhZ2VQcm94eSogd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGNvbnN0IFN0cmluZyYpOwog
ICAgIFN0cmluZyBoYW5kbGVGb3JXZWJQYWdlUHJveHkoY29uc3QgV2ViUGFnZVByb3h5Jik7CkBA
IC0xNDksNiArMTYxLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldENvb2tpZXNGb3JGcmFt
ZSh1aW50NjRfdCBjYWxsYmFja0lELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiwgY29uc3QgU3Ry
aW5nJiBlcnJvclR5cGUpOwogICAgIHZvaWQgZGlkRGVsZXRlQ29va2llKHVpbnQ2NF90IGNhbGxi
YWNrSUQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKIAorI3ByYWdtYSBtYXJrIFBsYXRmb3Jt
LWRlcGVuZGVudCBJbXBsZW1lbnRhdGlvbnMKKwogICAgIC8vIFBsYXRmb3JtLXNwZWNpZmljIGhl
bHBlciBtZXRob2RzLgogICAgIHZvaWQgcGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24o
V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHZpZXdQb3NpdGlvbiwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbiwgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b24sIFdlYkV2ZW50OjpNb2RpZmllcnMp
OwogICAgIC8vIFNpbXVsYXRlcyBhIHNpbmdsZSB2aXJ0dWFsIGtleSBiZWluZyBwcmVzc2VkLCBz
dWNoIGFzIENvbnRyb2wsIEYta2V5cywgTnVtcGFkIGtleXMsIGV0Yy4gYXMgYWxsb3dlZCBieSB0
aGUgcHJvdG9jb2wuCkBAIC0xNTgsNyArMTcyLDcgQEAgcHJpdmF0ZToKICAgICAvLyBHZXQgYmFz
ZTY0IGVuY29kZWQgUE5HIGRhdGEgZnJvbSBhIGJpdG1hcC4KICAgICBTdHJpbmcgcGxhdGZvcm1H
ZXRCYXNlNjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpOwog
Ci0jaWYgVVNFKEFQUEtJVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZW5kU3ludGhl
c2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFnZVByb3h5JiwgTlNBcnJheSAqZXZlbnRzVG9TZW5kKTsK
ICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjI2
NGMzMjg3OGM5ZjU5M2I1NGVhMTYxYmE3NzE5NzYwYjI4NTU2Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25N
YWNyb3MuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNk
ZWZpbmUgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRvciAiOyIKKworLy8gTWFrZSBzdXJlIHRo
ZSBwcmVkZWZpbmVkIGVycm9yIG5hbWUgaXMgdmFsaWQsIG90aGVyd2lzZSB1c2UgSW50ZXJuYWxF
cnJvci4KKyNkZWZpbmUgVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JTdHJpbmcpIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJp
bmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlPihlcnJvclN0
cmluZykudmFsdWVPcihJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3Nh
Z2U6OkludGVybmFsRXJyb3IpCisKKy8vIElmIHRoZSBlcnJvciBuYW1lIGlzIGluY29ycmVjdCBm
b3IgdGhlc2UgbWFjcm9zLCBpdCB3aWxsIGJlIGEgY29tcGlsZS10aW1lIGVycm9yLgorI2RlZmlu
ZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSkKKyNkZWZp
bmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1l
LCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBh
cmF0b3IsIGRldGFpbHNTdHJpbmcpCisKKy8vIElmIHRoZSBlcnJvciBtZXNzYWdlIGlzIG5vdCBh
IHByZWRlZmluZWQgZXJyb3IsIEludGVybmFsRXJyb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuCisj
ZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkg
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZh
bHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkpCisjZGVmaW5lIFNUUklO
R19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFX0FORF9ERVRBSUxTKGVycm9yTWVzc2FnZSwg
ZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJy
b3JNZXNzYWdlKSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcp
CisKKy8vIENvbnZlbmllbmNlIG1hY3JvcyBmb3IgZmlsbGluZyBpbiB0aGUgZXJyb3Igc3RyaW5n
IG9mIHN5bmNocm9ub3VzIGNvbW1hbmRzIGluIGJhaWxvdXQgYnJhbmNoZXMuCisjZGVmaW5lIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKGVycm9yTmFtZSkgXAorZG8geyBcCisgICAgZXJyb3JT
dHJpbmcgPSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpOyBcCisg
ICAgcmV0dXJuOyBcCit9IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUl9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcpIFwKK2RvIHsg
XAorICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5E
X0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKTsgXAorICAgIHJldHVybjsgXAorfSB3
aGlsZSAoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21h
dGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hNWE4YWFhOTU1ZjM4ZDRlNTQ5MzNhNWZiNTk1YWRhOGFmMWQxZDQ0Ci0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2Ev
V2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgor
CisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSA8SW1h
Z2VJTy9DR0ltYWdlRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxNb2JpbGVDb3JlU2VydmljZXMv
VVRDb3JlVHlwZXMuaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1kZXBlbmRlbnQgSW1wbGVt
ZW50YXRpb25zCisKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNl
NjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRh
SGFuZGxlKQoreworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJs
ZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9u
OjpSZWFkT25seSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2UgPSBiaXRtYXAt
Pm1ha2VDR0ltYWdlKCk7CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZURhdGE+IGltYWdlRGF0YSA9
IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPENH
SW1hZ2VEZXN0aW5hdGlvblJlZj4gZGVzdGluYXRpb24gPSBhZG9wdENGKENHSW1hZ2VEZXN0aW5h
dGlvbkNyZWF0ZVdpdGhEYXRhKChDRk11dGFibGVEYXRhUmVmKWltYWdlRGF0YS5nZXQoKSwga1VU
VHlwZVBORywgMSwgMCkpOworICAgIGlmICghZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybiBT
dHJpbmcoKTsKKworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdl
dCgpLCBjZ0ltYWdlLmdldCgpLCAwKTsKKyAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShk
ZXN0aW5hdGlvbi5nZXQoKSk7CisKKyAgICByZXR1cm4gW2ltYWdlRGF0YSBiYXNlNjRFbmNvZGVk
U3RyaW5nV2l0aE9wdGlvbnM6MF07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0K
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNjJlOTc2YTNlY2QzZGIzOWMyZTU0ZjVjYmE5MDUwY2RhNTExYWY1YQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQpAQCAtMCwwICsxLDU5NSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKKwor
I2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3Mu
aCIKKyNpbXBvcnQgIldlYkluc3BlY3RvclByb3h5LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHku
aCIKKyNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uLmgiCisjaW1wb3J0IDxISVRvb2xib3gv
RXZlbnRzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW1wb3J0IDxXZWJDb3Jl
L0ludFNpemUuaD4KKyNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CisjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVz
cGFjZSBXZWJLaXQgeworCisjcHJhZ21hIG1hcmsgQXBwS2l0IEV2ZW50IFNpbXVsYXRpb24gU3Vw
cG9ydAorCitzdGF0aWMgY29uc3QgTlNJbnRlZ2VyIHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2lj
RXZlbnROdW1iZXIgPSAwOworc3RhdGljIGNvbnN0IHZvaWQgKnN5bnRoZXNpemVkQXV0b21hdGlv
bkV2ZW50QXNzb2NpYXRlZE9iamVjdEtleSA9ICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFz
c29jaWF0ZWRPYmplY3RLZXk7CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbmRTeW50
aGVzaXplZEV2ZW50c1RvUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIE5TQXJyYXkgKmV2ZW50c1Rv
U2VuZCkKK3sKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOwor
CisgICAgZm9yIChOU0V2ZW50ICpldmVudCBpbiBldmVudHNUb1NlbmQpIHsKKyAgICAgICAgLy8g
VGFrZSBmb2N1cyBiYWNrIGluIGNhc2UgdGhlIEluc3BlY3RvciBiZWNhbWUgZm9jdXNlZCB3aGls
ZSB0aGUgcHJpb3IgY29tbWFuZCBvcgorICAgICAgICAvLyBOU0V2ZW50IHdhcyBkZWxpdmVyZWQg
dG8gdGhlIHdpbmRvdy4KKyAgICAgICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxd
OworCisgICAgICAgIG1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKGV2ZW50KTsK
KyAgICAgICAgW3dpbmRvdyBzZW5kRXZlbnQ6ZXZlbnRdOworICAgIH0KK30KKwordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6bWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNF
dmVudCAqZXZlbnQpCit7CisgICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGV2ZW50LCAmc3lu
dGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5LCBtX3Nlc3Npb25JZGVu
dGlmaWVyLCBPQkpDX0FTU09DSUFUSU9OX1JFVEFJTl9OT05BVE9NSUMpOworfQorCitib29sIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjp3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21hdGlvbihOU0V2
ZW50ICpldmVudCkKK3sKKyAgICBOU1N0cmluZyAqc2VuZGVyU2Vzc2lvbklkZW50aWZpZXIgPSBv
YmpjX2dldEFzc29jaWF0ZWRPYmplY3QoZXZlbnQsICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVu
dEFzc29jaWF0ZWRPYmplY3RLZXkpOworICAgIGlmIChbc2VuZGVyU2Vzc2lvbklkZW50aWZpZXIg
aXNFcXVhbFRvU3RyaW5nOm1fc2Vzc2lvbklkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4gdHJ1
ZTsKKworICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgeworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0
TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNh
c2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3Zl
ZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgor
ICAgICAgICAvLyBVc2UgdGhpcyBhcyBhIGJhY2t1cCBmb3IgY2hlY2tpbmcgbW91c2UgZXZlbnRz
LCB3aGljaCBhcmUgZnJlcXVlbnRseSBjb3BpZWQKKyAgICAgICAgLy8gYW5kL29yIGZha2VkIGJ5
IEFwcEtpdCwgY2F1c2luZyB0aGVtIHRvIGxvc2UgdGhlaXIgYXNzb2NpYXRlZCBvYmplY3QgdGFn
LgorICAgICAgICByZXR1cm4gZXZlbnQuZXZlbnROdW1iZXIgPT0gc3ludGhlc2l6ZWRNb3VzZUV2
ZW50TWFnaWNFdmVudE51bWJlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9
CisKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1zcGVjaWZp
YyBDb21tYW5kcworCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZXNpemVXaW5kb3dPZkJy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3Qg
U3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBzaXplT2Jq
ZWN0KQoreworICAgIGZsb2F0IHdpZHRoOworICAgIGlmICghc2l6ZU9iamVjdC5nZXREb3VibGUo
V1RGOjpBU0NJSUxpdGVyYWwoIndpZHRoIiksIHdpZHRoKSkKKyAgICAgICAgRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnd2lkdGgn
IHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7CisKKyAgICBmbG9hdCBoZWln
aHQ7CisgICAgaWYgKCFzaXplT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgiaGVp
Z2h0IiksIGhlaWdodCkpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9E
RVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ2hlaWdodCcgcGFyYW1ldGVyIHdhcyBub3Qg
Zm91bmQgb3IgaW52YWxpZC4iKTsKKworICAgIGlmICh3aWR0aCA8IDApCisgICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUg
J3dpZHRoJyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7CisKKyAgICBpZiAoaGVp
Z2h0IDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSAnaGVpZ2h0JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQg
dmFsdWUuIik7CisKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5k
bGUoaGFuZGxlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBvcmlnaW5h
bEZyYW1lOworICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKG9yaWdpbmFsRnJhbWUpOworCisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG5ld0ZyYW1lID0gV2ViQ29yZTo6RmxvYXRSZWN0KG9yaWdpbmFs
RnJhbWUubG9jYXRpb24oKSwgV2ViQ29yZTo6RmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAg
ICBpZiAobmV3RnJhbWUgPT0gb3JpZ2luYWxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAg
cGFnZS0+c2V0V2luZG93RnJhbWUobmV3RnJhbWUpOworCisgICAgLy8gSWYgbm90aGluZyBjaGFu
Z2VkIGF0IGFsbCwgaXQncyBwcm9iYWJseSBmYWlyIHRvIHJlcG9ydCB0aGF0IHNvbWV0aGluZyB3
ZW50IHdyb25nLgorICAgIC8vIChXZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdGVkIGZy
YW1lIHNpemUgd2lsbCBiZSBob25vcmVkIGV4YWN0bHksIGhvd2V2ZXIuKQorICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCB1cGRhdGVkRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUodXBkYXRl
ZEZyYW1lKTsKKyAgICBpZiAob3JpZ2luYWxGcmFtZSA9PSB1cGRhdGVkRnJhbWUpCisgICAgICAg
IEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJU
aGUgd2luZG93IHNpemUgd2FzIGV4cGVjdGVkIHRvIGhhdmUgY2hhbmdlZCwgYnV0IGRpZCBub3Qu
Iik7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5n
Q29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5n
JiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbk9iamVj
dCkKK3sKKyAgICBmbG9hdCB4OworICAgIGlmICghcG9zaXRpb25PYmplY3QuZ2V0RG91YmxlKFdU
Rjo6QVNDSUlMaXRlcmFsKCJ4IiksIHgpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0ZXIgd2Fz
IG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOworCisgICAgZmxvYXQgeTsKKyAgICBpZiAoIXBvc2l0
aW9uT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgieSIpLCB5KSkKKyAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwg
IlRoZSAneScgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKKworICAgIGlm
ICh4IDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSAneCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVl
LiIpOworCisgICAgaWYgKHkgPCAwKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
Ul9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd5JyBwYXJhbWV0ZXIgaGFkIGFu
IGludmFsaWQgdmFsdWUuIik7CisKKyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJv
eHlGb3JIYW5kbGUoaGFuZGxlKTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIEZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVj
dCBvcmlnaW5hbEZyYW1lOworICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKG9yaWdpbmFsRnJhbWUp
OworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG5ld0ZyYW1lID0gV2ViQ29yZTo6RmxvYXRSZWN0
KFdlYkNvcmU6OkZsb2F0UG9pbnQoeCwgeSksIG9yaWdpbmFsRnJhbWUuc2l6ZSgpKTsKKyAgICBp
ZiAobmV3RnJhbWUgPT0gb3JpZ2luYWxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFn
ZS0+c2V0V2luZG93RnJhbWUobmV3RnJhbWUpOworCisgICAgLy8gSWYgbm90aGluZyBjaGFuZ2Vk
IGF0IGFsbCwgaXQncyBwcm9iYWJseSBmYWlyIHRvIHJlcG9ydCB0aGF0IHNvbWV0aGluZyB3ZW50
IHdyb25nLgorICAgIC8vIChXZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdGVkIGZyYW1l
IHNpemUgd2lsbCBiZSBob25vcmVkIGV4YWN0bHksIGhvd2V2ZXIuKQorICAgIFdlYkNvcmU6OkZs
b2F0UmVjdCB1cGRhdGVkRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUodXBkYXRlZEZy
YW1lKTsKKyAgICBpZiAob3JpZ2luYWxGcmFtZSA9PSB1cGRhdGVkRnJhbWUpCisgICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJUaGUg
d2luZG93IHBvc2l0aW9uIHdhcyBleHBlY3RlZCB0byBoYXZlIGNoYW5nZWQsIGJ1dCBkaWQgbm90
LiIpOworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0QnJvd3NpbmdDb250
ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhh
bmRsZSwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVj
dEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQoreworICAgIFdlYlBhZ2VQcm94
eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICghcGFnZSkK
KyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOworCisg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdl
LnRha2UocGFnZS0+cGFnZUlEKCkpKQorICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RS
SU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCkpOworICAgIG1fcGVuZGluZ0lu
c3BlY3RvckNhbGxiYWNrc1BlclBhZ2Uuc2V0KHBhZ2UtPnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CisKKyAgICAvLyBEb24ndCBicmluZyB0aGUgaW5zcGVjdG9yIHRvIGZyb250IHNpbmNl
IHRoaXMgbWF5IGJlIGRvbmUgYXV0b21hdGljYWxseS4KKyAgICAvLyBXZSBqdXN0IHdhbnQgaXQg
bG9hZGVkIHNvIGl0IGNhbiBwYXVzZSBpZiBhIGJyZWFrcG9pbnQgaXMgaGl0IGR1cmluZyBhIGNv
bW1hbmQuCisgICAgaWYgKHBhZ2UtPmluc3BlY3RvcigpKSB7CisgICAgICAgIHBhZ2UtPmluc3Bl
Y3RvcigpLT5jb25uZWN0KCk7CisKKyAgICAgICAgLy8gU3RhcnQgY29sbGVjdGluZyBwcm9maWxl
IGluZm9ybWF0aW9uIGltbWVkaWF0ZWx5IHNvIHRoZSBlbnRpcmUgc2Vzc2lvbiBpcyBjYXB0dXJl
ZC4KKyAgICAgICAgaWYgKG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZyAmJiAqb3B0aW9uYWxF
bmFibGVBdXRvQ2FwdHVyaW5nKQorICAgICAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPnRvZ2ds
ZVBhZ2VQcm9maWxpbmcoKTsKKyAgICB9Cit9CisKKworI3ByYWdtYSBtYXJrIFBsYXRmb3JtLWRl
cGVuZGVudCBJbXBsZW1lbnRhdGlvbnMKKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxh
dGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBX
ZWJDb3JlOjpJbnRQb2ludCYgdmlld1Bvc2l0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpNb3VzZUludGVyYWN0aW9uIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbiBidXR0b24sIFdlYkV2ZW50OjpNb2RpZmllcnMga2V5
TW9kaWZpZXJzKQoreworICAgIEludFJlY3Qgd2luZG93UmVjdDsKKyAgICBwYWdlLnJvb3RWaWV3
VG9XaW5kb3coSW50UmVjdCh2aWV3UG9zaXRpb24sIEludFNpemUoKSksIHdpbmRvd1JlY3QpOwor
ICAgIEludFBvaW50IHdpbmRvd1Bvc2l0aW9uID0gd2luZG93UmVjdC5sb2NhdGlvbigpOworCisg
ICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoa2V5TW9kaWZp
ZXJzICYgV2ViRXZlbnQ6Ok1ldGFLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnQ29tbWFuZDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkFsdEtl
eSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CisgICAg
aWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpDb250cm9sS2V5KQorICAgICAgICBtb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgaWYgKGtleU1vZGlmaWVycyAm
IFdlYkV2ZW50OjpTaGlmdEtleSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdTaGlmdDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkNhcHNMb2NrS2V5
KQorICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOworCisg
ICAgTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJl
ZmVyZW5jZURhdGVdOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93
KCk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7CisK
KyAgICBOU0V2ZW50VHlwZSBkb3duRXZlbnRUeXBlOworICAgIE5TRXZlbnRUeXBlIGRyYWdFdmVu
dFR5cGU7CisgICAgTlNFdmVudFR5cGUgdXBFdmVudFR5cGU7CisgICAgc3dpdGNoIChidXR0b24p
IHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9u
OjpOb25lOgorICAgICAgICBkb3duRXZlbnRUeXBlID0gdXBFdmVudFR5cGUgPSBkcmFnRXZlbnRU
eXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpMZWZ0OgorICAgICAg
ICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBkcmFn
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB1cEV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok1pZGRsZToKKyAg
ICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CisgICAgICAg
IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgIHVw
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246OlJpZ2h0
OgorICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKKyAg
ICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKKyAgICAgICAgYnJl
YWs7CisgICAgfQorCisgICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOworCisgICAgTlNJbnRlZ2VyIGV2ZW50TnVtYmVyID0gc3lu
dGhlc2l6ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51bWJlcjsKKworICAgIHN3aXRjaCAoaW50ZXJh
Y3Rpb24pIHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
SW50ZXJhY3Rpb246Ok1vdmU6CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05T
RXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRyYWdFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9z
aXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNs
aWNrQ291bnQ6MCBwcmVzc3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG93bjoKKyAg
ICAgICAgLy8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNpbmNlIGNsaWVudHMg
ZG9uJ3QgZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCisgICAgICAgIC8vIGRvd24vdXAgZXZl
bnRzIHRvIGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xpY2sgZXZlbnQuCisg
ICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczpt
b2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpX
ZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpVcDoKKyAgICAgICAg
Ly8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNpbmNlIGNsaWVudHMgZG9uJ3Qg
ZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCisgICAgICAgIC8vIGRvd24vdXAgZXZlbnRzIHRv
IGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xpY2sgZXZlbnQuCisgICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVw
RXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJz
IHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5p
bCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlSW50ZXJhY3Rpb246OlNpbmdsZUNsaWNrOgorICAgICAgICAvLyBTZW5kIHNlcGFyYXRl
IGRvd24gYW5kIHVwIGV2ZW50cy4gV2ViQ29yZSB3aWxsIHNlZSB0aGlzIGFzIGEgc2luZ2xlLWNs
aWNrIGV2ZW50LgorICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1v
ZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndp
bmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50
OjEgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07CisgICAgICAgIFtldmVudHNUb0Jl
U2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxv
Y2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0
aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJl
cjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJh
Y3Rpb246OkRvdWJsZUNsaWNrOgorICAgICAgICAvLyBTZW5kIG11bHRpcGxlIGRvd24gYW5kIHVw
IGV2ZW50cyB3aXRoIHByb3BlciBjbGljayBjb3VudC4KKyAgICAgICAgLy8gV2ViQ29yZSB3aWxs
IHNlZSB0aGlzIGFzIGEgc2luZ2xlLWNsaWNrIGV2ZW50IHRoZW4gZG91YmxlLWNsaWNrIGV2ZW50
LgorICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJl
ciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1
cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRP
YmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndp
bmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAg
d2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51
bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxv
Y2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0
aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJl
cjpldmVudE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNr
XV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJl
ciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1
cmU6MC4wZl1dOworICAgIH0KKworICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdl
LCBldmVudHNUb0JlU2VudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZSBpbnRlcmFjdGlv
biwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSBrZXkpCit7Cisg
ICAgLy8gSWYgdHJ1ZSwgdGhlIGtleSdzIG1vZGlmaWVyIGZsYWdzIHNob3VsZCBhZmZlY3Qgb3Ro
ZXIgZXZlbnRzIHdoaWxlIHByZXNzZWQgZG93bi4KKyAgICBib29sIGlzU3RpY2t5TW9kaWZpZXIg
PSBmYWxzZTsKKyAgICAvLyBUaGUgbW9kaWZpZXJzIGNoYW5nZWQgYnkgdGhlIHZpcnR1YWwga2V5
IHdoZW4gaXQgaXMgcHJlc3NlZCBvciByZWxlYXNlZC4KKyAgICAvLyBUaGUgbWFwcGluZyBmcm9t
IGtleXMgdG8gbW9kaWZpZXJzIGlzIHNwZWNpZmllZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3Ig
TlNFdmVudC4KKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBjaGFuZ2VkTW9kaWZpZXJzID0gMDsK
KyAgICAvLyBUaGUgbGlrZWx5IGtleUNvZGUgZm9yIHRoZSB2aXJ0dWFsIGtleSBhcyBkZWZpbmVk
IGluIDxISVRvb2xib3gvRXZlbnRzLmg+LgorICAgIGludCBrZXlDb2RlID0gMDsKKyAgICAvLyBU
eXBpY2FsIGNoYXJhY3RlcnMgcHJvZHVjZWQgYnkgdGhlIHZpcnR1YWwga2V5LCBpZiBhbnkuCisg
ICAgTlNTdHJpbmcgKmNoYXJhY3RlcnMgPSBAIiI7CisKKyAgICAvLyBGSVhNRTogdGhpcyBmdW5j
dGlvbiBhbmQgdGhlIEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBzaG91bGQgcHJvYmFibHkgYWRv
cHQga2V5IG5hbWVzCisgICAgLy8gZnJvbSBXM0MgVUlFdmVudHMgc3RhbmRhcmQuIEZvciBtb3Jl
IGRldGFpbHM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1jb2RlLworCisgICAgc3dp
dGNoIChrZXkpIHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6OlNoaWZ0OgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CisgICAgICAg
IGtleUNvZGUgPSBrVktfU2hpZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29udHJvbDoKKyAgICAgICAgaXNT
dGlja3lNb2RpZmllciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgICAgIGtleUNvZGUgPSBrVktfQ29udHJvbDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpBbHRlcm5hdGU6CisgICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwor
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfT3B0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok1ldGE6CisgICAgICAg
IC8vIFRoZSAnbWV0YScga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQg
aXMgdXN1YWxseQorICAgICAgICAvLyBtYXBwZWQgdG8gdGhlIENvbW1hbmQga2V5IHdoZW4gdXNp
bmcgdGhpcmQtcGFydHkga2V5Ym9hcmRzLgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKKyAgICAgICAgaXNTdGlja3lNb2RpZmll
ciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0NvbW1hbmQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQ29tbWFuZDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpI
ZWxwOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdIZWxw
IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0hl
bHA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6QmFja3NwYWNlOgorICAgICAgICBrZXlDb2RlID0ga1ZLX0RlbGV0
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpUYWI6CisgICAgICAgIGtleUNvZGUgPSBrVktfVGFiOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkNsZWFyOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkQ2xlYXI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6RW50ZXI6CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRF
bnRlcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKKyAgICAgICAgLy8gVGhlICdwYXVzZScga2V5IGRv
ZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisgICAg
ICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8gbm90
aGluZy4KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6Q2FuY2VsOgorICAgICAgICAvLyBUaGUgJ2NhbmNlbCcga2V5
IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisg
ICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgaW50ZXJuZXQgaXRzIGZ1bmN0aW9uYWxpdHkgaXMg
c2ltaWxhciB0byAnRXNjYXBlJy4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OkVzY2FwZToKKyAgICAgICAga2V5Q29kZSA9IGtWS19Fc2NhcGU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6UGFnZVVwOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19QYWdlVXA7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6UGFnZURvd246CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VEb3duOwor
ICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkVuZDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRW5kOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkhvbWU6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0hvbWU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TGVm
dEFycm93OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdO
dW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0xlZnRBcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFycm93OgorICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1VwQXJyb3c7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6UmlnaHRBcnJvdzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19SaWdodEFycm93OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRvd25BcnJvdzoKKyAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8
IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19Eb3du
QXJyb3c7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6SW5zZXJ0OgorICAgICAgICAvLyBUaGUgJ2luc2VydCcga2V5
IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisg
ICAgICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8g
bm90aGluZy4KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RGVsZXRlOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19G
b3J3YXJkRGVsZXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNwYWNlOgorICAgICAgICBrZXlDb2RlID0ga1ZL
X1NwYWNlOworICAgICAgICBjaGFyYWN0ZXJzID0gQCIgIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTZW1pY29s
b246CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9TZW1pY29sb247CisgICAgICAgIGNoYXJh
Y3RlcnMgPSBAIjsiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKKyAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX0VxdWFsOworICAgICAgICBjaGFyYWN0ZXJzID0gQCI9IjsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpS
ZXR1cm46CisgICAgICAgIGtleUNvZGUgPSBrVktfUmV0dXJuOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZDA6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQwOworICAgICAgICBj
aGFyYWN0ZXJzID0gQCIwIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgorICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiMSI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TnVtYmVyUGFkMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tl
eXBhZDI7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjIiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZDM6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVy
aWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQzOworICAgICAgICBjaGFy
YWN0ZXJzID0gQCIzIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0OgorICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlD
b2RlID0ga1ZLX0FOU0lfS2V5cGFkNDsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNCI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkNToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZDU7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjUiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDY6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQ
YWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ2OworICAgICAgICBjaGFyYWN0
ZXJzID0gQCI2IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3OgorICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfS2V5cGFkNzsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNyI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6TnVtYmVyUGFkODoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDg7
CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjgiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDk6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7
CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ5OworICAgICAgICBjaGFyYWN0ZXJz
ID0gQCI5IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0aXBseToKKyAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5
Q29kZSA9IGtWS19BTlNJX0tleXBhZE11bHRpcGx5OworICAgICAgICBjaGFyYWN0ZXJzID0gQCIq
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktf
QU5TSV9LZXlwYWRQbHVzOworICAgICAgICBjaGFyYWN0ZXJzID0gQCIrIjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpOdW1iZXJQYWRTdWJ0cmFjdDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZE1pbnVzOworICAgICAgICBjaGFyYWN0ZXJzID0gQCItIjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWRTZXBhcmF0b3I6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7CisgICAgICAgIC8vIFRoZSAnU2VwYXJhdG9yJyBrZXkgaXMgb25seSBw
cmVzZW50IG9uIGEgZmV3IGludGVybmF0aW9uYWwga2V5Ym9hcmRzLgorICAgICAgICAvLyBJdCBp
cyB1c3VhbGx5IG1hcHBlZCB0byB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgRGVjaW1hbCAoJy4nIG9y
ICcsJykuCisgICAgICAgIEZBTExUSFJPVUdIOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVjaW1hbDoKKyAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZERlY2ltYWw7CisgICAgICAgIC8vIEZJWE1FOiB0aGlz
IG1pZ2h0IGJlIGxvY2FsZS1kZXBlbmRlbnQuIFNlZSB0aGUgYWJvdmUgY29tbWVudC4KKyAgICAg
ICAgY2hhcmFjdGVycyA9IEAiLiI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGl2aWRlOgorICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGl2aWRlOworICAgICAgICBjaGFyYWN0
ZXJzID0gQCIvIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6CisgICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0g
a1ZLX0YxOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktf
RjI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24zOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMzsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y0OworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6OkZ1bmN0aW9uNToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjU7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb242OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GNjsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpGdW5jdGlvbjc6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y3OworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1
bmN0aW9uODoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjg7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b245OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEw
OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMToK
KyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247
CisgICAgICAgIGtleUNvZGUgPSBrVktfRjExOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTI6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAg
YXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5p
dF0pOworCisgICAgQVNTRVJUKGlzU3RpY2t5TW9kaWZpZXIgfHwgaW50ZXJhY3Rpb24gPT0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6Oktl
eVByZXNzKTsKKworICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGV4aXN0aW5nTW9kaWZpZXJzID0g
W05TRXZlbnQgbW9kaWZpZXJGbGFnc107CisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgdXBkYXRl
ZE1vZGlmaWVycyA9IDA7CisgICAgTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0
aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBw
YWdlLnBsYXRmb3JtV2luZG93KCk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRv
dy53aW5kb3dOdW1iZXI7CisgICAgTlNQb2ludCBldmVudFBvc2l0aW9uID0gTlNNYWtlUG9pbnQo
MCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKKworICAgIHN3aXRjaCAoaW50ZXJhY3Rpb24p
IHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50
ZXJhY3Rpb25UeXBlOjpLZXlQcmVzczogeworICAgICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUg
PSBpc1N0aWNreU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgOiBOU0V2ZW50VHlw
ZUtleURvd247CisgICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8
IGNoYW5nZWRNb2RpZmllcnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpr
ZXlDb2RlXV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlSZWxlYXNlOiB7
CisgICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIgPyBOU0V2
ZW50VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5VXA7CisgICAgICAgIHVwZGF0ZWRN
b2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyAmIH5jaGFuZ2VkTW9kaWZpZXJzOworICAgICAg
ICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6ZXZl
bnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZp
ZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0
Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNo
YXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBicmVhazsK
KyAgICB9CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2Fy
ZEludGVyYWN0aW9uVHlwZTo6SW5zZXJ0QnlLZXk6IHsKKyAgICAgICAgLy8gU3RpY2t5IG1vZGlm
aWVycyBzaG91bGQgZWl0aGVyIGJlICdLZXlQcmVzcycgb3IgJ0tleVJlbGVhc2UnLgorICAgICAg
ICBBU1NFUlQoIWlzU3RpY2t5TW9kaWZpZXIpOworICAgICAgICBpZiAoaXNTdGlja3lNb2RpZmll
cikKKyAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhp
c3RpbmdNb2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOworICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3du
IGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRp
bWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBj
aGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3Rl
cnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBs
b2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1l
c3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hh
cmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJz
IGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIH0KKworICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0Jl
U2VudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2lt
dWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFN0cmluZyYga2V5U2Vx
dWVuY2UpCit7CisgICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVB
cnJheSBhbGxvY10gaW5pdF0pOworCisgICAgLy8gU3BsaXQgdGhlIHRleHQgaW50byBjb21iaW5p
bmcgY2hhcmFjdGVyIHNlcXVlbmNlcyBhbmQgc2VuZCBlYWNoIHNlcGFyYXRlbHkuCisgICAgLy8g
VGhpcyBoYXMgbm8gc2ltaWxhcml0eSB0byBob3cga2V5Ym9hcmRzIHdvcmsgd2hlbiBpbnB1dHRp
bmcgY29tcGxleCB0ZXh0LgorICAgIC8vIFRoaXMgY29tbWFuZCBpcyBtb3JlIHNpbWlsYXIgdG8g
dGhlICdpbnNlcnRUZXh0OicgZWRpdGluZyBjb21tYW5kLCBleGNlcHQKKyAgICAvLyB0aGF0IHRo
aXMgZW1pdHMga2V5dXAva2V5ZG93bi9rZXlwcmVzcyBldmVudHMgZm9yIHJvdWdobHkgZWFjaCBj
aGFyYWN0ZXIuCisgICAgLy8gVGhpcyBBUEkgc2hvdWxkIG1vdmUgbW9yZSB0b3dhcmRzIHRoYXQg
ZGlyZWN0aW9uIGluIHRoZSBmdXR1cmUuCisgICAgTlNTdHJpbmcgKnRleHQgPSBrZXlTZXF1ZW5j
ZTsKKworICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVycyA9IFtOU0V2ZW50IG1vZGlm
aWVyRmxhZ3NdOworICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtOU0RhdGUgdGltZUlu
dGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5w
bGF0Zm9ybVdpbmRvdygpOworICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSB3aW5kb3cud2lu
ZG93TnVtYmVyOworICAgIE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9IE5TTWFrZVBvaW50KDAsIHdp
bmRvdy5mcmFtZS5zaXplLmhlaWdodCk7CisKKyAgICBbdGV4dCBlbnVtZXJhdGVTdWJzdHJpbmdz
SW5SYW5nZTpOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCkgb3B0aW9uczpOU1N0cmluZ0VudW1l
cmF0aW9uQnlDb21wb3NlZENoYXJhY3RlclNlcXVlbmNlcyB1c2luZ0Jsb2NrOl4oTlNTdHJpbmcg
KnN1YnN0cmluZywgTlNSYW5nZSBzdWJzdHJpbmdSYW5nZSwgTlNSYW5nZSBlbmNsb3NpbmdSYW5n
ZSwgQk9PTCAqc3RvcCkgeworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2
ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0aW9uOmV2ZW50UG9z
aXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6c3Vic3RyaW5nIGNoYXJh
Y3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6MF1d
OworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0
aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxh
Z3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJl
ciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2Rp
ZmllcnM6c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdXTsKKyAgICB9XTsKKworICAg
IHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7
Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYkF1dG9tYXRpb25T
ZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViQXV0b21h
dGlvblNlc3Npb25Db2NvYS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIxZDhm
MDg1OTRmNTk0ZmU4YmYzZTU2YTQ1YTE4YjJjYzQ0NWQxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
V2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDUwOSArMCww
IEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oIgotCi0jaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIl9XS0F1
dG9tYXRpb25TZXNzaW9uLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+Ci0jaW1wb3J0
IDxXZWJDb3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50
Lmg+Ci0jaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KLQotI2lmIFVTRShBUFBLSVQpCi0jaW1wb3J0
IDxISVRvb2xib3gvRXZlbnRzLmg+Ci0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi0jaWYgVVNFKEFQUEtJVCkKLQotc3RhdGljIGNvbnN0
IE5TSW50ZWdlciBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVtYmVyID0gMDsKLXN0
YXRpYyBjb25zdCB2b2lkICpzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmpl
Y3RLZXkgPSAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5Owot
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2Uo
V2ViUGFnZVByb3h5JiBwYWdlLCBOU0FycmF5ICpldmVudHNUb1NlbmQpCi17Ci0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLQotICAgIGZvciAoTlNFdmVudCAq
ZXZlbnQgaW4gZXZlbnRzVG9TZW5kKSB7Ci0gICAgICAgIC8vIFRha2UgZm9jdXMgYmFjayBpbiBj
YXNlIHRoZSBJbnNwZWN0b3IgYmVjYW1lIGZvY3VzZWQgd2hpbGUgdGhlIHByaW9yIGNvbW1hbmQg
b3IKLSAgICAgICAgLy8gTlNFdmVudCB3YXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cuCi0gICAg
ICAgIFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKLQotICAgICAgICBtYXJrRXZl
bnRBc1N5bnRoZXNpemVkRm9yQXV0b21hdGlvbihldmVudCk7Ci0gICAgICAgIFt3aW5kb3cgc2Vu
ZEV2ZW50OmV2ZW50XTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1h
cmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKmV2ZW50KQotewotICAg
IG9iamNfc2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2
ZW50QXNzb2NpYXRlZE9iamVjdEtleSwgbV9zZXNzaW9uSWRlbnRpZmllciwgT0JKQ19BU1NPQ0lB
VElPTl9SRVRBSU5fTk9OQVRPTUlDKTsKLX0KLQotYm9vbCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
d2FzRXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqZXZlbnQpCi17Ci0gICAg
TlNTdHJpbmcgKnNlbmRlclNlc3Npb25JZGVudGlmaWVyID0gb2JqY19nZXRBc3NvY2lhdGVkT2Jq
ZWN0KGV2ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5
KTsKLSAgICBpZiAoW3NlbmRlclNlc3Npb25JZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzptX3Nl
c3Npb25JZGVudGlmaWVyXSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBzd2l0Y2ggKGV2
ZW50LnR5cGUpIHsKLSAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKLSAgICBjYXNl
IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1v
dXNlVXA6Ci0gICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dl
ZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlRG93bjoKLSAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6
Ci0gICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKLSAgICAgICAgLy8gVXNlIHRoaXMg
YXMgYSBiYWNrdXAgZm9yIGNoZWNraW5nIG1vdXNlIGV2ZW50cywgd2hpY2ggYXJlIGZyZXF1ZW50
bHkgY29waWVkCi0gICAgICAgIC8vIGFuZC9vciBmYWtlZCBieSBBcHBLaXQsIGNhdXNpbmcgdGhl
bSB0byBsb3NlIHRoZWlyIGFzc29jaWF0ZWQgb2JqZWN0IHRhZy4KLSAgICAgICAgcmV0dXJuIGV2
ZW50LmV2ZW50TnVtYmVyID09IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7
Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB2
aWV3UG9zaXRpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJh
Y3Rpb24gaW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
QnV0dG9uIGJ1dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycyBrZXlNb2RpZmllcnMpCi17Ci0gICAg
SW50UmVjdCB3aW5kb3dSZWN0OwotICAgIHBhZ2Uucm9vdFZpZXdUb1dpbmRvdyhJbnRSZWN0KHZp
ZXdQb3NpdGlvbiwgSW50U2l6ZSgpKSwgd2luZG93UmVjdCk7Ci0gICAgSW50UG9pbnQgd2luZG93
UG9zaXRpb24gPSB3aW5kb3dSZWN0LmxvY2F0aW9uKCk7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJG
bGFncyBtb2RpZmllcnMgPSAwOwotICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6TWV0
YUtleSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwot
ICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6QWx0S2V5KQotICAgICAgICBtb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYg
V2ViRXZlbnQ6OkNvbnRyb2xLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnQ29udHJvbDsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OlNoaWZ0S2V5
KQotICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwotICAgIGlm
IChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCi0gICAgICAgIG1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7Ci0KLSAgICBOU1RpbWVJbnRlcnZhbCB0
aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07Ci0gICAg
TlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLSAgICBOU0ludGVnZXIg
d2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKLQotICAgIE5TRXZlbnRUeXBlIGRv
d25FdmVudFR5cGU7Ci0gICAgTlNFdmVudFR5cGUgZHJhZ0V2ZW50VHlwZTsKLSAgICBOU0V2ZW50
VHlwZSB1cEV2ZW50VHlwZTsKLSAgICBzd2l0Y2ggKGJ1dHRvbikgewotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok5vbmU6Ci0gICAgICAgIGRv
d25FdmVudFR5cGUgPSB1cEV2ZW50VHlwZSA9IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU1v
dXNlTW92ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6TW91c2VCdXR0b246OkxlZnQ6Ci0gICAgICAgIGRvd25FdmVudFR5cGUgPSBO
U0V2ZW50VHlwZUxlZnRNb3VzZURvd247Ci0gICAgICAgIGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6TWlkZGxlOgotICAgICAgICBkb3duRXZlbnRUeXBl
ID0gTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjsKLSAgICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6UmlnaHQ6Ci0gICAgICAgIGRvd25FdmVu
dFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwotICAgICAgICB1cEV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBh
dXRvIGV2ZW50c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0
XSk7Ci0KLSAgICBOU0ludGVnZXIgZXZlbnROdW1iZXIgPSBzeW50aGVzaXplZE1vdXNlRXZlbnRN
YWdpY0V2ZW50TnVtYmVyOwotCi0gICAgc3dpdGNoIChpbnRlcmFjdGlvbikgewotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6TW92ZToK
LSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6ZHJhZ0V2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdz
Om1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDowIHByZXNzdXJl
OjAuMGZdXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpEb3duOgotICAgICAgICAvLyBIYXJkLWNvZGUg
dGhlIGNsaWNrIGNvdW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vz
c2l2ZSBzaW11bGF0ZWQKLSAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFs
bHkgY291bnRlZCBhcyBhIGRvdWJsZSBjbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVT
ZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBs
b2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6
dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlj
a11dOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246Ok1vdXNlSW50ZXJhY3Rpb246OlVwOgotICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNs
aWNrIGNvdW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBz
aW11bGF0ZWQKLSAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291
bnRlZCBhcyBhIGRvdWJsZSBjbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFk
ZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246
d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFt
cCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50
TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6
U2luZ2xlQ2xpY2s6Ci0gICAgICAgIC8vIFNlbmQgc2VwYXJhdGUgZG93biBhbmQgdXAgZXZlbnRz
LiBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sgZXZlbnQuCi0gICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRv
d25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmll
cnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRp
b24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG91YmxlQ2xpY2s6
Ci0gICAgICAgIC8vIFNlbmQgbXVsdGlwbGUgZG93biBhbmQgdXAgZXZlbnRzIHdpdGggcHJvcGVy
IGNsaWNrIGNvdW50LgotICAgICAgICAvLyBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5n
bGUtY2xpY2sgZXZlbnQgdGhlbiBkb3VibGUtY2xpY2sgZXZlbnQuCi0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5
cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0
Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZp
ZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93
TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZTowLjBmXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRp
b24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6MiBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50
c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5
cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MiBwcmVzc3VyZTowLjBmXV07Ci0gICAgfQot
Ci0gICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50Lmdl
dCgpKTsKLX0KLQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtl
eVN0cm9rZShXZWJQYWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkKLXsKLSAgICAvLyBJZiB0cnVlLCB0aGUg
a2V5J3MgbW9kaWZpZXIgZmxhZ3Mgc2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJl
c3NlZCBkb3duLgotICAgIGJvb2wgaXNTdGlja3lNb2RpZmllciA9IGZhbHNlOwotICAgIC8vIFRo
ZSBtb2RpZmllcnMgY2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2Vk
IG9yIHJlbGVhc2VkLgotICAgIC8vIFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMg
aXMgc3BlY2lmaWVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgotICAgIE5TRXZl
bnRNb2RpZmllckZsYWdzIGNoYW5nZWRNb2RpZmllcnMgPSAwOwotICAgIC8vIFRoZSBsaWtlbHkg
a2V5Q29kZSBmb3IgdGhlIHZpcnR1YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVu
dHMuaD4uCi0gICAgaW50IGtleUNvZGUgPSAwOwotICAgIC8vIFR5cGljYWwgY2hhcmFjdGVycyBw
cm9kdWNlZCBieSB0aGUgdmlydHVhbCBrZXksIGlmIGFueS4KLSAgICBOU1N0cmluZyAqY2hhcmFj
dGVycyA9IEAiIjsKLQotICAgIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0b21h
dGlvbiBwcm90b2NvbCBlbnVtIHNob3VsZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKLSAgICAv
LyBmcm9tIFczQyBVSUV2ZW50cyBzdGFuZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly93
M2MuZ2l0aHViLmlvL3VpZXZlbnRzLWNvZGUvCi0KLSAgICBzd2l0Y2ggKGtleSkgewotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6Ci0g
ICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19TaGlm
dDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpDb250cm9sOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1
ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Db250cm9sOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkFsdGVybmF0
ZToKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtW
S19PcHRpb247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TWV0YToKLSAgICAgICAgLy8gVGhlICdtZXRhJyBrZXkg
ZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBpcyB1c3VhbGx5Ci0gICAgICAg
IC8vIG1hcHBlZCB0byB0aGUgQ29tbWFuZCBrZXkgd2hlbiB1c2luZyB0aGlyZC1wYXJ0eSBrZXli
b2FyZHMuCi0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpDb21tYW5kOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19Db21tYW5kOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhlbHA6Ci0gICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgfCBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfSGVscDsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpC
YWNrc3BhY2U6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRGVsZXRlOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlRh
YjoKLSAgICAgICAga2V5Q29kZSA9IGtWS19UYWI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q2xlYXI6Ci0gICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRDbGVhcjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRl
cjoKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZEVudGVyOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OlBhdXNlOgotICAgICAgICAvLyBUaGUgJ3BhdXNlJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBw
bGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gVGhlIHNlbWFudGlj
cyBhcmUgdW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICByZXR1
cm47Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpDYW5jZWw6Ci0gICAgICAgIC8vIFRoZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24g
QXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gQWNjb3JkaW5n
IHRvIHRoZSBpbnRlcm5ldCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBzaW1pbGFyIHRvICdFc2NhcGUn
LgotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RXNjYXBlOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0VzY2FwZTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdl
VXA6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0
aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93
bjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUGFnZURvd247Ci0gICAgICAgIGJyZWFrOwotICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsK
LSAgICAgICAga2V5Q29kZSA9IGtWS19FbmQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SG9tZToKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAg
IGtleUNvZGUgPSBrVktfSG9tZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6Ci0gICAgICAgIGNo
YW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50
TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfTGVmdEFycm93Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OlVwQXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfVXBBcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93Ogot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFk
IHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX1Jp
Z2h0QXJyb3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RG93bkFycm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Rvd25BcnJvdzsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpJbnNlcnQ6Ci0gICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkgZG9lcyBub3QgZXhpc3Qgb24g
QXBwbGUga2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gVGhlIHNlbWFu
dGljcyBhcmUgdW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICBy
ZXR1cm47Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpEZWxldGU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0ZvcndhcmREZWxldGU7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6U3BhY2U6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfU3BhY2U7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIiAiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX1NlbWljb2xvbjsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiOyI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RXF1YWxzOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfRXF1YWw7Ci0gICAg
ICAgIGNoYXJhY3RlcnMgPSBAIj0iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKLSAgICAgICAga2V5
Q29kZSA9IGtWS19SZXR1cm47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDA7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjAiOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6Ok51bWJlclBhZDE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWQxOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIxIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQyOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMjsKLSAgICAgICAgY2hh
cmFjdGVycyA9IEAiMiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMzoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5
Q29kZSA9IGtWS19BTlNJX0tleXBhZDM7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjMiOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6Ok51bWJlclBhZDQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlw
YWQ0OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI0IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNTsKLSAgICAgICAgY2hhcmFj
dGVycyA9IEAiNSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNjoKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX0tleXBhZDY7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjYiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZDc6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ3
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI3IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4Ogot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFk
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkODsKLSAgICAgICAgY2hhcmFjdGVy
cyA9IEAiOCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkOToKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZDk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjkiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZE11bHRpcGx5OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5
cGFkTXVsdGlwbHk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIioiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZEFkZDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZFBsdXM7Ci0g
ICAgICAgIGNoYXJhY3RlcnMgPSBAIisiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTWludXM7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIi0iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAg
ICAgICAgLy8gVGhlICdTZXBhcmF0b3InIGtleSBpcyBvbmx5IHByZXNlbnQgb24gYSBmZXcgaW50
ZXJuYXRpb25hbCBrZXlib2FyZHMuCi0gICAgICAgIC8vIEl0IGlzIHVzdWFsbHkgbWFwcGVkIHRv
IHRoZSBzYW1lIGNoYXJhY3RlciBhcyBEZWNpbWFsICgnLicgb3IgJywnKS4KLSAgICAgICAgRkFM
TFRIUk9VR0g7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpOdW1iZXJQYWREZWNpbWFsOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lf
S2V5cGFkRGVjaW1hbDsKLSAgICAgICAgLy8gRklYTUU6IHRoaXMgbWlnaHQgYmUgbG9jYWxlLWRl
cGVuZGVudC4gU2VlIHRoZSBhYm92ZSBjb21tZW50LgotICAgICAgICBjaGFyYWN0ZXJzID0gQCIu
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWREaXZpZGU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfQU5TSV9LZXlwYWREaXZpZGU7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIi8iOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkZ1bmN0aW9uMToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjE7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6RnVuY3Rpb24yOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpG
dW5jdGlvbjM6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YzOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uNDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVu
Y3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb241
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjY6Ci0g
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwot
ICAgICAgICBrZXlDb2RlID0ga1ZLX0Y2OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfRjc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244OgotICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19GODsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6Ci0gICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlD
b2RlID0ga1ZLX0Y5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0YxMDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgotICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19GMTE7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfRjEyOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBhdXRvIGV2ZW50c1RvQmVTZW50
ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0KLSAgICBBU1NFUlQo
aXNTdGlja3lNb2RpZmllciB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3MpOwotCi0gICAgTlNF
dmVudE1vZGlmaWVyRmxhZ3MgZXhpc3RpbmdNb2RpZmllcnMgPSBbTlNFdmVudCBtb2RpZmllckZs
YWdzXTsKLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyB1cGRhdGVkTW9kaWZpZXJzID0gMDsKLSAg
ICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVm
ZXJlbmNlRGF0ZV07Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3co
KTsKLSAgICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKLSAg
ICBOU1BvaW50IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQb2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6
ZS5oZWlnaHQpOwotCi0gICAgc3dpdGNoIChpbnRlcmFjdGlvbikgewotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVBy
ZXNzOiB7Ci0gICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIg
PyBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5RG93bjsKLSAgICAgICAg
dXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsK
LSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhU
eXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRl
ZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKLSAgICAgICAgTlNFdmVudFR5
cGUgZXZlbnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2Vk
IDogTlNFdmVudFR5cGVLZXlVcDsKLSAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5n
TW9kaWZpZXJzICYgfmNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBh
ZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZl
bnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVz
dGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hh
cmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6
Tk8ga2V5Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpJ
bnNlcnRCeUtleTogewotICAgICAgICAvLyBTdGlja3kgbW9kaWZpZXJzIHNob3VsZCBlaXRoZXIg
YmUgJ0tleVByZXNzJyBvciAnS2V5UmVsZWFzZScuCi0gICAgICAgIEFTU0VSVCghaXNTdGlja3lN
b2RpZmllcik7Ci0gICAgICAgIGlmIChpc1N0aWNreU1vZGlmaWVyKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8IGNo
YW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3Np
dGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVy
cyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5
Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRp
b24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2lu
ZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMg
Y2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNv
ZGU6a2V5Q29kZV1dOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgfQotCi0gICAgc2VuZFN5
bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKLX0KLQot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdl
YlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKLXsKLSAgICBhdXRv
IGV2ZW50c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7
Ci0KLSAgICAvLyBTcGxpdCB0aGUgdGV4dCBpbnRvIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVu
Y2VzIGFuZCBzZW5kIGVhY2ggc2VwYXJhdGVseS4KLSAgICAvLyBUaGlzIGhhcyBubyBzaW1pbGFy
aXR5IHRvIGhvdyBrZXlib2FyZHMgd29yayB3aGVuIGlucHV0dGluZyBjb21wbGV4IHRleHQuCi0g
ICAgLy8gVGhpcyBjb21tYW5kIGlzIG1vcmUgc2ltaWxhciB0byB0aGUgJ2luc2VydFRleHQ6JyBl
ZGl0aW5nIGNvbW1hbmQsIGV4Y2VwdAotICAgIC8vIHRoYXQgdGhpcyBlbWl0cyBrZXl1cC9rZXlk
b3duL2tleXByZXNzIGV2ZW50cyBmb3Igcm91Z2hseSBlYWNoIGNoYXJhY3Rlci4KLSAgICAvLyBU
aGlzIEFQSSBzaG91bGQgbW92ZSBtb3JlIHRvd2FyZHMgdGhhdCBkaXJlY3Rpb24gaW4gdGhlIGZ1
dHVyZS4KLSAgICBOU1N0cmluZyAqdGV4dCA9IGtleVNlcXVlbmNlOwotCi0gICAgTlNFdmVudE1v
ZGlmaWVyRmxhZ3MgbW9kaWZpZXJzID0gW05TRXZlbnQgbW9kaWZpZXJGbGFnc107Ci0gICAgTlNU
aW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5j
ZURhdGVdOwotICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7Ci0g
ICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7Ci0gICAgTlNQ
b2ludCBldmVudFBvc2l0aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVp
Z2h0KTsKLQotICAgIFt0ZXh0IGVudW1lcmF0ZVN1YnN0cmluZ3NJblJhbmdlOk5TTWFrZVJhbmdl
KDAsIHRleHQubGVuZ3RoKSBvcHRpb25zOk5TU3RyaW5nRW51bWVyYXRpb25CeUNvbXBvc2VkQ2hh
cmFjdGVyU2VxdWVuY2VzIHVzaW5nQmxvY2s6XihOU1N0cmluZyAqc3Vic3RyaW5nLCBOU1Jhbmdl
IHN1YnN0cmluZ1JhbmdlLCBOU1JhbmdlIGVuY2xvc2luZ1JhbmdlLCBCT09MICpzdG9wKSB7Ci0g
ICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlw
ZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdz
Om1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZp
ZXJzOnN1YnN0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07Ci0gICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtl
eVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJh
Y3RlcnM6c3Vic3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNB
UmVwZWF0Ok5PIGtleUNvZGU6MF1dOwotICAgIH1dOwotCi0gICAgc2VuZFN5bnRoZXNpemVkRXZl
bnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKLX0KLQotU3RyaW5nIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNo
YXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGFIYW5kbGUpCi17Ci0gICAgUmVmUHRyPFNo
YXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2VEYXRh
SGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBSZXRhaW5Q
dHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IGJpdG1hcC0+bWFrZUNHSW1hZ2UoKTsKLSAgICBSZXRh
aW5QdHI8TlNNdXRhYmxlRGF0YT4gaW1hZ2VEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEg
YWxsb2NdIGluaXRdKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBkZXN0
aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoKENGTXV0
YWJsZURhdGFSZWYpaW1hZ2VEYXRhLmdldCgpLCBrVVRUeXBlUE5HLCAxLCAwKSk7Ci0gICAgaWYg
KCFkZXN0aW5hdGlvbikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgQ0dJbWFnZURl
c3RpbmF0aW9uQWRkSW1hZ2UoZGVzdGluYXRpb24uZ2V0KCksIGNnSW1hZ2UuZ2V0KCksIDApOwot
ICAgIENHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKTsKLQotICAg
IHJldHVybiBbaW1hZ2VEYXRhIGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXTsKLX0K
LQotI2VuZGlmIC8vIFVTRShBUFBLSVQpCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDkz
OWRkZTliNWRlMDRhNDFkMGVlNTJkNTBkYjY1OWUzY2ZhMDA0YzAuLjgwNTFhNzhhMDhkNjhjNjhl
M2EyNjQ4NzY0Y2ZlNDYyYzMxNThjMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEyNjksMTIgKzEyNjksMTUgQEAKIAkJOTkw
RDI4QzAxQzY1NTNGMTAwOTg2OTc3IC8qIEFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTBEMjhCMzFDNjUy
NkQ0MDA5ODY5NzcgLyogQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLzsgfTsKIAkJOTk1
NUE2RUMxQzc5ODBDMjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZFQjFDNzk4MEJCMDBF
QjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLzsgfTsKIAkJOTk1NUE2RUQxQzc5ODBD
QTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkVBMUM3OTgwQkIwMEVCNkE5MyAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgKi87IH07Ci0JCTk5NTVBNkVGMUM3OTgxMDgwMEVCNkE5
MyAvKiBBdXRvbWF0aW9uLmpzb24gaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTk5NTVBNkY0
MUM3OTg2REMwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYwMUM3OTg2
NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAqLzsgfTsKIAkJ
OTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYx
MUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggKi87IH07
CiAJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3Rz
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVB
NkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLzsg
fTsKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVj
dHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVB
NkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi87IH07
Ci0JCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29h
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk4NkJE
RDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi87IH07
CisJCTk5QzNBRTI0MURBRDhFMzcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzNBRTIz
MURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLzsgfTsKKwkJ
OTlDM0FFMjcxREFEOTQ4OTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0g
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyNjFE
QUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLzsgfTsKKwkJ
OTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFE
QURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLzsgfTsKKwkJ
OTlDM0FFMkUxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9tYXRpb24uanNvbiBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzNBRTI5MURBRDlGMEYwMEFGNUMx
NiAvKiBBdXRvbWF0aW9uLmpzb24gKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJOTlDM0FFMkYxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9tYXRpb24taU9T
Lmpzb24gaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMz
QUUyODFEQUQ5RjBGMDBBRjVDMTYgLyogQXV0b21hdGlvbi1pT1MuanNvbiAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OUM4MUQ1OTFDMjBFMUU1MDA1
QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDU2MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9u
Q2xpZW50Lm1tICovOyB9OwogCQk5OUM4MUQ1QTFDMjBFN0UyMDA1QzRDODIgLyogQXV0b21hdGlv
bkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
OTlDODFENTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCAqLzsgfTsKIAkJ
OTlDODFENUQxQzIxRjM4QjAwNUM0QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDVCMUMyMEU4MTcw
MDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CkBAIC0zMzYyLDE0ICszMzY1
LDE4IEBACiAJCTk5MEQyOEIzMUM2NTI2RDQwMDk4Njk3NyAvKiBBUElBdXRvbWF0aW9uU2Vzc2lv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9u
U2Vzc2lvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTBEMjhCNzFD
NjUzOUEwMDA5ODY5NzcgLyogQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvblNlc3Npb25DbGllbnQuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwRDI4QjgxQzY1MzlBMDAwOTg2OTc3IC8qIEF1dG9tYXRp
b25TZXNzaW9uQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQXV0b21hdGlvblNlc3Npb25DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCTk5NTVBNkU5MUM3OTgwQkIwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0Lmpzb247IHBhdGggPSBBdXRvbWF0aW9uLmpzb247IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5NTVBNkU5MUM3OTgwQkIwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24uaW4g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQXV0b21hdGlvbi5qc29uLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZF
QjFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb24uaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RjAxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25C
YWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERp
c3BhdGNoZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25C
YWNrZW5kRGlzcGF0Y2hlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2
RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0b21hdGlvblByb3RvY29sT2JqZWN0
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkYzMUM3OTg2NjQwMEVC
NkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKLQkJOTk4NkJERDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FFMjYxREFEOTQ4
NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUMzQUUyODFEQUQ5RjBGMDBBRjVDMTYgLyog
QXV0b21hdGlvbi1pT1MuanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuanNvbjsgcGF0aCA9ICJBdXRvbWF0
aW9uLWlPUy5qc29uIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FFMjkxREFE
OUYwRjAwQUY1QzE2IC8qIEF1dG9tYXRpb24uanNvbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuanNvbjsgcGF0
aCA9IEF1dG9tYXRpb24uanNvbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FF
MkMxREFEQTZBNzAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzgxRDU1MUMyMERGQkUwMDVDNEM4MiAv
KiBBdXRvbWF0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1
dG9tYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENTYx
QzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdXRvbWF0aW9uQ2xpZW50Lm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21hdGlv
bkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBUElBdXRvbWF0aW9u
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC00ODAwLDcgKzQ4MDcsNiBA
QAogCQkJCTJEQUY0RkZBMUI2MzYxODEwMDYwMTNENiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIu
Y3BwICovLAogCQkJCTJEMTI1QzVDMTg1N0VBMDUwMDNCQTNDQiAvKiBWaWV3R2VzdHVyZUNvbnRy
b2xsZXIuaCAqLywKIAkJCQkyRDFCNUQ1QTE4NTg2NTk5MDA2QzY1OTYgLyogVmlld0dlc3R1cmVD
b250cm9sbGVyLm1lc3NhZ2VzLmluICovLAotCQkJCTk5ODZCREQ2MUNBOUEyMjIwMDQ4MDBBQSAv
KiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovLAogCQkJCTFBQzAyNzNFMTk2NjIyRDYw
MEMxMkI3NSAvKiBXZWJQYWdlUHJveHlDb2NvYS5tbSAqLywKIAkJCQk3QzQ2OTRDQjFBNEI1MTBB
MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5Q29jb2EubW0gKi8sCiAJCQkJQ0RBMjlBMUUx
Q0JFQjVGQjAwOTAxQ0NGIC8qIFdlYlBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eS5oICovLApA
QCAtNTg1MCwxNCArNTg1NiwzMyBAQAogCQk5OTU1QTZFODFDNzk4MDkwMDBFQjZBOTMgLyogQXV0
b21hdGlvbiAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4gPSAoCi0JCQkJ
OTk1NUE2RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiAqLywKKwkJCQk5OUMz
QUUyNTFEQUQ5NDY3MDBBRjVDMTYgLyogY29jb2EgKi8sCisJCQkJOTlDM0FFMjIxREFEOEUxNDAw
QUY1QzE2IC8qIG1hYyAqLywKKwkJCQk5OTU1QTZFOTFDNzk4MEJCMDBFQjZBOTMgLyogQXV0b21h
dGlvbi5qc29uLmluICovLAogCQkJCTk5NTVBNkVBMUM3OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgKi8sCiAJCQkJOTk1NUE2RUIxQzc5ODBCQjAwRUI2QTkzIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uLmggKi8sCiAJCQkJMUMwQTE5NTkxQzkwMDZFQTAwRkUwRUJCIC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uLm1lc3NhZ2VzLmluICovLAorCQkJCTk5QzNBRTJDMURBREE2
QTcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oICovLAogCQkJKTsKIAkJ
CXBhdGggPSBBdXRvbWF0aW9uOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJ
OTlDM0FFMjIxREFEOEUxNDAwQUY1QzE2IC8qIG1hYyAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3Vw
OworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTlDM0FFMjMxREFEOEUzNDAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBtYWM7CisJCQlzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOworCQl9OworCQk5OUMzQUUyNTFEQUQ5NDY3MDBBRjVDMTYgLyog
Y29jb2EgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk5
QzNBRTI2MURBRDk0ODUwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICov
LAorCQkJKTsKKwkJCXBhdGggPSBjb2NvYTsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJ
CX07CiAJCUExODJENUIxMUJFNkJDRjQwMDg3QTdDQyAvKiBpb3MgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtNzA3Myw2ICs3MDk4LDggQEAKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTUxMkY1OEEwMTJBODgzQUQwMDYyOTUzMCAvKiBBdXRoZW50aWNhdGlvbk1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTUxMkY1OEExMTJBODgzQUQwMDYyOTUz
MCAvKiBBdXRoZW50aWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oICovLAorCQkJCTk5QzNBRTI5MURB
RDlGMEYwMEFGNUMxNiAvKiBBdXRvbWF0aW9uLmpzb24gKi8sCisJCQkJOTlDM0FFMjgxREFEOUYw
RjAwQUY1QzE2IC8qIEF1dG9tYXRpb24taU9TLmpzb24gKi8sCiAJCQkJOTk1NUE2RjAxQzc5ODY2
NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwICovLAogCQkJCTk5
NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmgg
Ki8sCiAJCQkJOTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9i
amVjdHMuY3BwICovLApAQCAtNzQ2MSw2ICs3NDg4LDggQEAKIAkJCQkzN0E2NEU1NTE4RjM4RTND
MDBFQjMwRjEgLyogX1dLSW5wdXREZWxlZ2F0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkQ3OTBB
OUQxQUQ3MDUwRDAwQUI5MEIzIC8qIF9XS0xheW91dE1vZGUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUExMThBOUYzMTkwOEI4RUEwMEY3QzkyQiAvKiBfV0tOU0ZpbGVNYW5hZ2VyRXh0cmFzLmggaW4g
SGVhZGVycyAqLywKKwkJCQk5OUMzQUUyRTFEQURCMDVDMDBBRjVDMTYgLyogQXV0b21hdGlvbi5q
c29uIGluIEhlYWRlcnMgKi8sCisJCQkJOTlDM0FFMkYxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9t
YXRpb24taU9TLmpzb24gaW4gSGVhZGVycyAqLywKIAkJCQk5MzIzNjExRTFCMDE1REE4MDBGQTky
MzIgLyogX1dLT3ZlcmxheVNjcm9sbGJhclN0eWxlLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTQz
RTgyQTE4OEYzQ0RDMDA5RTREMzAgLyogX1dLUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQk3Qzg5RDJENzFBNkM2QkU2MDAzQTVGREUgLyogX1dLUHJvY2Vzc1Bv
b2xDb25maWd1cmF0aW9uSW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAtNzU2Nyw3ICs3NTk2
LDYgQEAKIAkJCQk1MThFOEVGOTE2QjIwOTFDMDBFOTE0MjkgLyogQXV0aGVudGljYXRpb25NYW5h
Z2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJGNThBMzEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0
aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRDEwMkRB
MTg2Njc3MDYwMEVENDI5RCAvKiBBdXRvQ29ycmVjdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAq
LywKLQkJCQk5OTU1QTZFRjFDNzk4MTA4MDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNr
ZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTk5QzgxRDVBMUMyMEU3RTIwMDVD
NEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5OTU1QTZGNzFD
Nzk4NkU1MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIGluIEhlYWRlcnMg
Ki8sCkBAIC04MDg4LDYgKzgxMTYsNyBAQAogCQkJCUJDNDk4NjJGMTI0RDE4QzEwMEQ4MzRFMSAv
KiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMjA0RUYyMTFD
ODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZUluaXRpYWxpemUuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTY1Qjg2RjFFMTJGMTFERTMwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3BlY3Rvci5oIGluIEhlYWRl
cnMgKi8sCisJCQkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNz
aW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCNDFCQzQ1QjAxMDA4MkRGNzcg
LyogV0tCdW5kbGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzA0M0NDMTJGNzVFRTAwMDY0
NzJCOSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTUx
QTcyOERFMUIxQkFEMzgwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb25Qcml2YXRl
LmggaW4gSGVhZGVycyAqLywKQEAgLTkxOTksNiArOTIyOCw3IEBACiAJCQkJNTFGRDE4QjUxNjUx
RkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQlFMTUyNTUxQTE3MDExODE5MDAzRDdBREIgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTQyNkVGMUMyM0Y4MDkwMEQ0
MTE4MyAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk5OUMzQUUyNzFEQUQ5NDg5MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2Nv
YS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4M0FDMTZCNEJGM0YwMEEyNzhGRSAvKiBOZXR3
b3JrU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzIwQ0I5RDFCQjBE
Q0ZBMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTMxQTJFQzU1MTQ4OTk4MkUwMDgxMEQ3MSAvKiBOb3RpZmljYXRpb25QZXJtaXNzaW9uUmVxdWVz
dC5jcHAgaW4gU291cmNlcyAqLywKQEAgLTkzNjMsNyArOTM5Myw2IEBACiAJCQkJMUE4RTdEM0Mx
OEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFREExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAvKiBX
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2RUQx
Qzc5ODBDQTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4RjAwRkUwRUJCIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDMEExOTQ2MUM4RkYxQTgwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTUzMUM4RkZERkIwMEZFMEVCQiAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
OTUwNyw2ICs5NTM2LDcgQEAKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFn
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMjEyN0MzMTkw
ODIzOUEwMERBRjM1QyAvKiBXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDNDY5NEQwMUE1MUUzNjgwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTlDM0FFMjQxREFEOEUzNzAwQUY1QzE2IC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEwQTAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M0Njk0QzkxQTRCNEVBMTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc3NDFEMUIyRjhBMDA3QzlCRDEgLyog
V2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>291528</attachid>
            <date>2016-10-13 15:31:55 -0700</date>
            <delta_ts>2017-01-17 16:58:59 -0800</delta_ts>
            <desc>Fix CMake/EFL</desc>
            <filename>bug-163297-20161013152829.patch</filename>
            <type>text/plain</type>
            <size>154662</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjA3MjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNDZjMjE0YzFhYjk5MzQ4
NDZmN2QzNDRiZjVhN2IxNDJmNmU2NTg3YS4uNDJmMGU1MDdkMzhjMDhiNGY5OGIzZjkyM2Q0OTQ5
Mzk5Y2Q3YjM4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDc0IEBACisyMDE2LTEwLTEzICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
TWFjLXNwZWNpZmljIGF1dG9tYXRpb24gY29tbWFuZHMgdG8gYSBzZXBhcmF0ZSBpbXBsZW1lbnRh
dGlvbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjMyOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBhbGwgQXV0b21hdGlvbiBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuIFN0YXJ0IHNwbGl0dGluZyBv
dXQKKyAgICAgICAgY29tbWFuZCBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBiYXNl
ZCBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLgorCisgICAgICAgIEFzIHBhcnQgb2YgdGhpcywgc3Rh
cnQgZ2VuZXJhdGluZyBhIHNlcGFyYXRlIEF1dG9tYXRpb24taU9TLmpzb24gZmlsZSB0aGF0Cisg
ICAgICAgIGRlZmluZXMgd2hpY2ggY29tbWFuZHMgYXJlIGF2YWlsYWJsZSBmb3IgaU9TLiBSaWdo
dCBub3cgdGhpcyBpcyBzdHJpY3RseSBhIHN1YnNldAorICAgICAgICBvZiB0aGUgZGVmYXVsdCBj
b21tYW5kIHNldCwgYnV0IGlPUy1zcGVjaWZpYyBjb21tYW5kcyBtYXkgYmUgYWRkZWQgaW4gdGhl
IGZ1dHVyZS4KKworICAgICAgICBSYXRoZXIgdGhhbiBhZGRpbmcgbmV3IGF2YWlsYWJpbGl0eSBr
ZXlzIHRvIHRoZSBKU09OLVJQQyBzcGVjaWZpY2F0aW9uIGZpbGVzLCBmb3Igbm93CisgICAgICAg
IGp1c3QgcnVuIHRoZSBwcmVwcm9jZXNzb3Igb3ZlciBBdXRvbWF0aW9uLmpzb24uaW4gdG8gZ2Vu
ZXJhdGUgcGVyIHBsYXRmb3JtIGZpbGVzLgorICAgICAgICBLZWVwICdBdXRvbWF0aW9uLmpzb24n
IGFzIHRoZSBuYW1lIGZvciB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uIHRvIGF2b2lkIGJyZWFr
aW5nIGNsaWVudHMuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgLSBBbHdh
eXMgZ2VuZXJhdGUgYW5kIHVzZSB0aGUgZGVmYXVsdCBzcGVjaWZpY2F0aW9uIGZpbGUsIGFzIGFs
bCBvZiB0aGUgY29tbWFuZAorICAgICAgICAgIGltcGxlbWVudGF0aW9ucyBhcmUgY3Jvc3MtcGxh
dGZvcm0gZHVlIHRvIHBsYXRmb3JtRm9vIHN0dWIgaW1wbGVtZW50YXRpb25zLgorICAgICAgICAq
IERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgIC0gU2NyYXBlIFdURl9QTEFURk9STV9JT1Mg
ZnJvbSBQbGF0Zm9ybS5oIGFuZCB1c2UgaXQgdG8gZGVjaWRlIHdoaWNoIHNwZWNpZmljYXRpb24K
KyAgICAgICAgICB0byB1c2UgZm9yIGdlbmVyYXRpbmcgdGhlIGltcGxlbWVudGF0aW9uIG9mIEF1
dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIuCisgICAgICAgIC0gR2VuZXJhdGUgYm90
aCBkZWZhdWx0IGFuZCBpT1Mgc3BlY2lmaWNhdGlvbiBmaWxlcyByZWdhcmRsZXNzIG9mIHRoZSB0
YXJnZXQgcGxhdGZvcm0sCisgICAgICAgICAgc28gdGhhdCBjbGllbnRzIGNhbiBmaW5kIHRoZSBt
b3N0IHJlY2VudCBzcGVjaWZpY2F0aW9uIHdpdGhvdXQgZGlnZ2luZyBpbiB0aGUgU0RLLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluOiBSZW5hbWVk
IGZyb20gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29u
LgorICAgICAgICBHdWFyZCBjb21tYW5kcyB0aGF0IHNob3VsZCBub3QgYmUgYXZhaWxhYmxlIG9u
IGlPUzoKKyAgICAgICAgICAgIC0gcmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQKKyAgICAg
ICAgICAgIC0gbW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0CisgICAgICAgICAgICAtIGluc3Bl
Y3RCcm93c2luZ0NvbnRleHQKKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1
dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2Vi
QXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0QnJvd3NpbmdDb250ZXh0KToK
KyAgICAgICAgLSBEb24ndCBidWlsZCB0aGVzZSBmb3IgUExBVEZPUk0oSU9TKS4KKworICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVl
bmNlKTogRGVsZXRlZC4KKyAgICAgICAgLSBNb3ZlIHNoYXJlZCBjb252ZW5pZW5jZSBtYWNyb3Mg
dG8gaGVhZGVyIGZpbGUuCisgICAgICAgIC0gTW92ZSBvdXQgQ29jb2Etb25seSBvciBNYWMtb25s
eSBjb21tYW5kIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgIFJlYXJyYW5nZSBzb21lIGRlY2xh
cmF0aW9ucyBhbmQgc3dpdGNoIGZyb20gVVNFKEFQUEtJVCkgdG8gUExBVEZPUk0oTUFDKS4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9z
Lmg6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0
b21hdGlvblNlc3Npb25Db2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9t
YXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKToKKyAgICAgICAg
TW92ZWQgZnJvbSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tLiBBZGQgaU9TLXNwZWNpZmlj
IGhlYWRlciBpbmNsdWRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tLgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om1hcmtFdmVudEFzU3ludGhl
c2l6ZWRGb3JBdXRvbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246Ondhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKToKKyAgICAgICAgTW92ZSBvdXQg
QXBwS2l0LXNwZWNpZmljIGV2ZW50IHNpbXVsYXRpb24gY29kZSB0byBoZXJlLgorCisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9y
bVNpbXVsYXRlS2V5U3Ryb2tlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Np
b246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6CisgICAgICAgIE1vdmUgb3V0IE1hYyBw
bGF0Zm9ybUZvbyBpbXBsZW1lbnRhdGlvbnMgdG8gaGVyZS4KKworICAgICAgICAqIFdlYktpdDIu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBBZGRlZCBVSVByb2Nlc3MvQXV0
b21hdGlvbi97bWFjLGNvY29hfSBncm91cHMuCisgICAgICAgIC0gQWRkIG5ldyBwbGF0Zm9ybS1z
cGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBmaWxlcy4KKyAgICAgICAgLSBSZW5hbWUgQXV0b21hdGlv
bi5qc29uIHRvIEF1dG9tYXRpb24uanNvbi5pbi4KKyAgICAgICAgLSBBZGQgZGVyaXZlZCBzb3Vy
Y2VzICdBdXRvbWF0aW9uLmpzb24nIGFuZCAnQXV0b21hdGlvbi1pT1MuanNvbicuCisgICAgICAg
IC0gTWFyayB0aGVzZSBKU09OIGZpbGVzIGFzIGZyYW1ld29yayBwcml2YXRlIGhlYWRlcnMuCisK
IDIwMTYtMTAtMTIgIEFuZGVycyBDYXJsc3NvbiAgPGFuZGVyc2NhQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgYW4gdW51c2VkIGZ1bmN0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CmluZGV4IDli
NDMzZGU4NTFlMjI5MjA5ZDZjYjU4NzJmYTYzYjY4MDVhZTU1ODIuLmE3ODVmMTllMWYzNzMyMjZh
Y2JlMzQ1YjM5MTNkNjY0ODRkMjAwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NNYWtl
TGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL0NNYWtlTGlzdHMudHh0CkBAIC04MjMsMTUg
KzgyMywzMSBAQCBzZXQoV2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9TQ1JJ
UFRTCiAgICAgJHtQUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUU19ESVJ9L2NvZGVnZW4vbW9kZWxz
LnB5CiApCiAKLXNldChXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9SX0lOUFVU
UwotICAgICR7V0VCS0lUMl9ESVJ9L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNv
bgorc2V0KFdlYktpdDJfQVVUT01BVElPTl9QUk9UT0NPTF9JTlBVVF9GSUxFUworICAgICR7V0VC
S0lUMl9ESVJ9L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbi5pbgorKQorCitz
ZXQoV2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX1NQRUNJRklDQVRJT05fRklMRVMKKyAgICAk
e0RFUklWRURfU09VUkNFU19XRUJLSVQyX0RJUn0vQXV0b21hdGlvbi5qc29uCispCisKKyMgUmln
aHQgbm93IHdlIGRvbid0IG5lZWQgdG8gYnVpbGQgd2l0aCBhbnkgZGVmaW5lcywgYnV0IGl0IG1p
Z2h0IGJlIG5lY2Vzc2FyeSBsYXRlci4KK3NldChXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xf
UFJFUFJPQ0VTU09SX0RFRklORVMKKykKKworIyBGSVhNRTogdGhpcyBuZWVkcyB0byB1c2UgV0lO
RE9XU19DT01NQU5EIGluc3RlYWQgaWYgV2ViS2l0MiBzb21lZGF5IGJ1aWxkcyBvbiBXaW5kb3dz
Lgorc2VwYXJhdGVfYXJndW1lbnRzKENPREVfR0VORVJBVE9SX1BSRVBST0NFU1NPUl9BUkdVTUVO
VFNfTElTVCBVTklYX0NPTU1BTkQgJHtDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1JfQVJHVU1F
TlRTfSkKK2FkZF9jdXN0b21fY29tbWFuZCgKKyAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L0F1dG9tYXRpb24uanNvbgorICAgIE1BSU5fREVQRU5ERU5DWSAke1dlYktp
dDJfQVVUT01BVElPTl9QUk9UT0NPTF9JTlBVVF9GSUxFU30KKyAgICBDT01NQU5EICR7Q09ERV9H
RU5FUkFUT1JfUFJFUFJPQ0VTU09SX0VYRUNVVEFCTEV9ICR7Q09ERV9HRU5FUkFUT1JfUFJFUFJP
Q0VTU09SX0FSR1VNRU5UU19MSVNUfSAke1dlYktpdDJfQVVUT01BVElPTl9QUk9UT0NPTF9QUkVQ
Uk9DRVNTT1JfREVGSU5FU30gJHtXZWJLaXQyX0FVVE9NQVRJT05fUFJPVE9DT0xfSU5QVVRfRklM
RVN9ID4gJHtERVJJVkVEX1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0F1dG9tYXRpb24uanNvbgogKQog
CiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQktJ
VDJfRElSfS9BdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggJHtERVJJVkVEX1NPVVJDRVNf
V0VCS0lUMl9ESVJ9L0F1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuY3BwICR7REVSSVZFRF9T
T1VSQ0VTX1dFQktJVDJfRElSfS9BdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggJHtERVJJVkVE
X1NPVVJDRVNfV0VCS0lUMl9ESVJ9L0F1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwCi0gICAg
TUFJTl9ERVBFTkRFTkNZICR7V2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRPUl9J
TlBVVFN9CisgICAgTUFJTl9ERVBFTkRFTkNZICR7V2ViS2l0Ml9BVVRPTUFUSU9OX1BST1RPQ09M
X1NQRUNJRklDQVRJT05fRklMRVN9CiAgICAgREVQRU5EUyAke1dlYktpdDJfQVVUT01BVElPTl9Q
Uk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUU30KLSAgICBDT01NQU5EICR7UFlUSE9OX0VYRUNVVEFC
TEV9ICR7UFJPVE9DT0xfR0VORVJBVE9SX1NDUklQVFNfRElSfS9nZW5lcmF0ZS1pbnNwZWN0b3It
cHJvdG9jb2wtYmluZGluZ3MucHkgLS1vdXRwdXREaXIgIiR7REVSSVZFRF9TT1VSQ0VTX1dFQktJ
VDJfRElSfSIgLS1mcmFtZXdvcmsgV2ViS2l0IC0tYmFja2VuZCAke1dlYktpdDJfQVVUT01BVElP
Tl9QUk9UT0NPTF9HRU5FUkFUT1JfSU5QVVRTfQorICAgIENPTU1BTkQgJHtQWVRIT05fRVhFQ1VU
QUJMRX0gJHtQUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUU19ESVJ9L2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLW91dHB1dERpciAiJHtERVJJVkVEX1NPVVJDRVNfV0VC
S0lUMl9ESVJ9IiAtLWZyYW1ld29yayBXZWJLaXQgLS1iYWNrZW5kICR7V2ViS2l0Ml9BVVRPTUFU
SU9OX1BST1RPQ09MX1NQRUNJRklDQVRJT05fRklMRVN9CiAgICAgVkVSQkFUSU0pCiAKIGxpc3Qo
QVBQRU5EIFdlYktpdDJfSEVBREVSUwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvRGVyaXZl
ZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXgg
Y2YzZjFmYjIyMTIzOWJlZmFmMTFhOTBhOTk4ZmRmMzNmNWIzNWZlNi4uNDc0YTRmODkxOTVjZGM2
ZGFiYmExMDY0MGNlZGU0NjVkY2NmMzI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xNjksNiArMTY5LDEyIEBAIFNDUklQVFMgPSBcCiBGUkFNRVdPUktfRkxBR1MgPSAkKHNo
ZWxsIGVjaG8gJChCVUlMVF9QUk9EVUNUU19ESVIpICQoRlJBTUVXT1JLX1NFQVJDSF9QQVRIUykg
fCBwZXJsIC1lICdwcmludCAiLUYgIiAuIGpvaW4oIiAtRiAiLCBzcGxpdCgiICIsIDw+KSk7JykK
IEhFQURFUl9GTEFHUyA9ICQoc2hlbGwgZWNobyAkKEJVSUxUX1BST0RVQ1RTX0RJUikgJChIRUFE
RVJfU0VBUkNIX1BBVEhTKSB8IHBlcmwgLWUgJ3ByaW50ICItSSIgLiBqb2luKCIgLUkiLCBzcGxp
dCgiICIsIDw+KSk7JykKIAoraWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysr
IC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdT
KSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZP
Uk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKyAgICBXVEZfUExBVEZPUk1fSU9TID0gMQor
ZWxzZQorICAgIFdURl9QTEFURk9STV9JT1MgPSAwCitlbmRpZgorCiAtaW5jbHVkZSBXZWJLaXRE
ZXJpdmVkU291cmNlc0FkZGl0aW9ucy5tYWtlCiAKIC5QSE9OWSA6IGFsbApAQCAtMjI1LDE3ICsy
MzEsNDMgQEAgQVVUT01BVElPTl9QUk9UT0NPTF9HRU5FUkFUT1JfU0NSSVBUUyA9IFwKICMKIAog
QVVUT01BVElPTl9QUk9UT0NPTF9JTlBVVF9GSUxFUyA9IFwKLSAgICAkKFdlYktpdDIpL1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBcCisJJChXZWJLaXQyKS9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24uaW4gXAogIwogCitBVVRPTUFUSU9OX1BST1RPQ09M
X1NQRUNJRklDQVRJT05fRklMRVMgPSBcCisJQXV0b21hdGlvbi5qc29uIFwKKwlBdXRvbWF0aW9u
LWlPUy5qc29uIFwKKyMKKworIyBHZW5lcmF0ZSBib3RoIHByb3RvY29sIHNwZWNpZmljYXRpb24g
ZmlsZXMgcmVnYXJkbGVzcyBvZiB0aGUgdGFyZ2V0IHBsYXRmb3JtCisjIGJlaW5nIGJ1aWx0LiBC
b3RoIHNob3VsZCBiZSBhY2Nlc3NpYmxlIGFzIHByaXZhdGUgaGVhZGVycyBvZiBXZWJLaXQyLmZy
YW1ld29yay4KK2FsbCA6ICQoQVVUT01BVElPTl9QUk9UT0NPTF9TUEVDSUZJQ0FUSU9OX0ZJTEVT
KQorCitBdXRvbWF0aW9uLWlPUy5qc29uIDogJChBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJ
TEVTKQorCSQoQ0MpICQoVEVYVF9QUkVQUk9DRVNTT1JfRkxBR1MpIC1EUExBVEZPUk1fSU9TPTEg
JDwgPiAkQAorCitBdXRvbWF0aW9uLmpzb24gOiAkKEFVVE9NQVRJT05fUFJPVE9DT0xfSU5QVVRf
RklMRVMpCisJJChDQykgJChURVhUX1BSRVBST0NFU1NPUl9GTEFHUykgJDwgPiAkQAorCisjIE9u
bHkgdXNlIHRoZSB0YXJnZXQgcGxhdGZvcm0ncyB2YXJpYW50IGZvciBnZW5lcmF0aW5nIGJhY2tl
bmQgbWVzc2FnZSBkaXNwYXRjaGVycy4KK2lmZXEgKCQoV1RGX1BMQVRGT1JNX0lPUyksIDEpCitB
VVRPTUFUSU9OX1BST1RPQ09MX1NFTEVDVEVEX1NQRUNJRklDQVRJT05fRklMRVMgPSBcCisJQXV0
b21hdGlvbi1pT1MuanNvbiBcCisjCitlbHNlCitBVVRPTUFUSU9OX1BST1RPQ09MX1NFTEVDVEVE
X1NQRUNJRklDQVRJT05fRklMRVMgPSBcCisJQXV0b21hdGlvbi5qc29uIFwKKyMKK2VuZGlmCisK
IEFVVE9NQVRJT05fUFJPVE9DT0xfT1VUUFVUX0ZJTEVTID0gXAogICAgIEF1dG9tYXRpb25CYWNr
ZW5kRGlzcGF0Y2hlcnMuaCBcCiAgICAgQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHAg
XAogIwogCiAjIEpTT04tUlBDIEJhY2tlbmQgRGlzcGF0Y2hlcnMsIFR5cGUgQnVpbGRlcnMKLSQo
Zmlyc3R3b3JkICQoQVVUT01BVElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMpKSA6ICQoQVVUT01B
VElPTl9QUk9UT0NPTF9JTlBVVF9GSUxFUykgJChBVVRPTUFUSU9OX1BST1RPQ09MX0dFTkVSQVRP
Ul9TQ1JJUFRTKQotCSQoUFlUSE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5l
cmF0ZS1pbnNwZWN0b3ItcHJvdG9jb2wtYmluZGluZ3MucHkgLS1mcmFtZXdvcmsgV2ViS2l0IC0t
YmFja2VuZCAtLW91dHB1dERpciAuICQoQVVUT01BVElPTl9QUk9UT0NPTF9JTlBVVF9GSUxFUykK
KyQoZmlyc3R3b3JkICQoQVVUT01BVElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMpKSA6ICQoQVVU
T01BVElPTl9QUk9UT0NPTF9TRUxFQ1RFRF9TUEVDSUZJQ0FUSU9OX0ZJTEVTKSAkKEFVVE9NQVRJ
T05fUFJPVE9DT0xfR0VORVJBVE9SX1NDUklQVFMpCisJJChQWVRIT04pICQoSmF2YVNjcmlwdENv
cmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWluc3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAt
LWZyYW1ld29yayBXZWJLaXQgLS1iYWNrZW5kIC0tb3V0cHV0RGlyIC4gJChBVVRPTUFUSU9OX1BS
T1RPQ09MX1NFTEVDVEVEX1NQRUNJRklDQVRJT05fRklMRVMpCiAKIGFsbCA6ICQoZmlyc3R3b3Jk
ICQoQVVUT01BVElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMpKQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24gYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDQ2Y2NlYTgyYjBlZTliOThmOWNkMzBmNmRiOGFmZjY2MWExZjIz
MDguLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCisrKyAvZGV2L251
bGwKQEAgLTEsNDc3ICswLDAgQEAKLXsKLSAgICAiZG9tYWluIjogIkF1dG9tYXRpb24iLAotICAg
ICJkZXNjcmlwdGlvbiI6ICJBdXRvbWF0aW9uIGRvbWFpbiBleHBvc2VzIGNvbW1hbmRzIGZvciBh
dXRvbWF0aW5nIHVzZXIgaW50ZXJhY3Rpb25zIHdpdGggdGhlIGJyb3dzZXIuIiwKLSAgICAidHlw
ZXMiOiBbCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJQb2ludCIsCi0gICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ4IiwgInR5cGUiOiAibnVtYmVyIiB9LAotICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAieSIsICJ0eXBlIjogIm51bWJlciIgfQotICAgICAgICAgICAgXQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiU2l6ZSIsCi0gICAgICAgICAg
ICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJ3aWR0aCIsICJ0eXBlIjogIm51bWJlciIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImhlaWdodCIsICJ0eXBlIjogIm51bWJlciIgfQotICAgICAgICAg
ICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiUmVjdCIsCi0g
ICAgICAgICAgICAidHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBb
Ci0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAiJHJlZiI6ICJQb2ludCIgfSwK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJTaXplIiB9Ci0gICAg
ICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLAotICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgYSBicm93c2lu
ZyBjb250ZXh0LiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkZy
YW1lSGFuZGxlIiwKLSAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIGEgZnJhbWUgaW4gYSBwYWdl
LiIKLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIk5vZGVIYW5kbGUi
LAotICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlv
biI6ICJBbiBvcGFxdWUgaWRlbnRpZmllciBmb3IgYSBub2RlIGluIGEgcGFnZS4iCi0gICAgICAg
IH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJFcnJvck1lc3NhZ2UiLAotICAgICAg
ICAgICAgInR5cGUiOiAic3RyaW5nIiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlz
IGVudW0gY29udGFpbnMgcHJlZGVmaW5lZCBlcnJvciBtZXNzYWdlcyB0aGF0IGNhbiBiZSB1c2Vk
IHRvIHNpZ25hbCBhIHdlbGwtZGVmaW5lZCBlcnJvciBjb25kaXRpb24sIHN1Y2ggYXMgYSBtaXNz
aW5nIGltcGxlbWVudGF0aW9uLCB1bmtub3duIHdpbmRvdyBoYW5kbGUsIGFuZCBzbyBmb3J0aC4g
VGhlIGJhY2tlbmQgc2lnbmFscyBvbmUgb2YgdGhlc2UgZXJyb3JzIGJ5IHVzaW5nIGl0IGFzIGEg
cHJlZml4IG9mIHRoZSBjb21tYW5kcydzIGVycm9yIG1lc3NhZ2UgKHRoZSBlcnJvclN0cmluZyBh
cmd1bWVudCBpbiBnZW5lcmF0ZWQgQysrIGJhY2tlbmQgZGlzcGF0Y2hlcnMpLiBUaGlzIHdpbGwg
YmUgcmVwb3J0ZWQgdG8gdGhlIGZyb250ZW5kIGFzIGEgcHJvdG9jb2wgZXJyb3Igd2l0aCBhIEpT
T04tUlBDIGVycm9yIGNvZGUgb2YgJ1NlcnZlckVycm9yJy4gSXQgaXMgdXAgdG8gdGhlIGZyb250
ZW5kIHdoZXRoZXIgYW5kIGhvdyB0byBkZWFsIHdpdGggZXJyb3JzLiIsCi0gICAgICAgICAgICAi
ZW51bSI6IFsKLSAgICAgICAgICAgICAgICAiSW50ZXJuYWxFcnJvciIsCi0gICAgICAgICAgICAg
ICAgIlRpbWVvdXQiLAotICAgICAgICAgICAgICAgICJKYXZhU2NyaXB0RXJyb3IiLAotICAgICAg
ICAgICAgICAgICJKYXZhU2NyaXB0VGltZW91dCIsCi0gICAgICAgICAgICAgICAgIldpbmRvd05v
dEZvdW5kIiwKLSAgICAgICAgICAgICAgICAiRnJhbWVOb3RGb3VuZCIsCi0gICAgICAgICAgICAg
ICAgIk5vZGVOb3RGb3VuZCIsCi0gICAgICAgICAgICAgICAgIkludmFsaWRFbGVtZW50U3RhdGUi
LAotICAgICAgICAgICAgICAgICJOb0phdmFTY3JpcHREaWFsb2ciLAotICAgICAgICAgICAgICAg
ICJOb3RJbXBsZW1lbnRlZCIsCi0gICAgICAgICAgICAgICAgIk1pc3NpbmdQYXJhbWV0ZXIiLAot
ICAgICAgICAgICAgICAgICJJbnZhbGlkUGFyYW1ldGVyIgotICAgICAgICAgICAgXQotICAgICAg
ICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAiaWQiOiAiQnJvd3NpbmdDb250ZXh0IiwKLSAg
ICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAi
QSBoYW5kbGUgcmVwcmVzZW50aW5nIGFuIG9wZW4gd2luZG93IG9yIHRhYiBpbiB0aGUgYXV0b21h
dGlvbiBzZXNzaW9uLiIsCi0gICAgICAgICAgICAicHJvcGVydGllcyI6IFsKLSAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIs
ICJkZXNjcmlwdGlvbiI6ICJPcGFxdWUgaGFuZGxlIGZvciBhIGJyb3dzaW5nIGNvbnRleHQgKHdp
bmRvdyBvciB0YWIpLiBVc2VkIGFzIGEga2V5IGZvciB3aW5kb3ctcmVsYXRlZCBjb21tYW5kcy4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhY3RpdmUiLCAidHlwZSI6ICJib29sZWFu
IiwgImRlc2NyaXB0aW9uIjogIldoZXRoZXIgdGhlIGJyb3dzaW5nIGNvbnRleHQgaGFzIGZvY3Vz
IGF0IHRoZSB0aW1lIHRoZSBjb21tYW5kIGlzIGhhbmRsZWQuIiB9LAotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBV
UkwgbG9hZGVkIGJ5IHRoZSBicm93c2luZyBjb250ZXh0IGF0IHRoZSB0aW1lIHRoZSBjb21tYW5k
IGlzIGhhbmRsZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2luZG93U2l6ZSIs
ICIkcmVmIjogIlNpemUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGN1cnJlbnQgc2l6ZSBvZiB0aGUg
YnJvd3NpbmcgY29udGV4dCdzIHdpbmRvdy4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ3aW5kb3dPcmlnaW4iLCAiJHJlZiI6ICJQb2ludCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY3Vy
cmVudCAoeCwgeSkgcG9zaXRpb24gb2YgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3aW5kb3cgcmVs
YXRpdmUgdG8gdGhlIHRvcC1sZWZ0IG9mIHRoZSBzY3JlZW4uIiB9Ci0gICAgICAgICAgICBdCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJNb3VzZUludGVyYWN0aW9u
IiwKLSAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgd2F5cyBvZiBpbnRlcmFjdGluZyB3aXRoIGEgbW91
c2UgY3Vyc29yLiIsCi0gICAgICAgICAgICAiZW51bSI6IFsKLSAgICAgICAgICAgICAgICAiTW92
ZSIsCi0gICAgICAgICAgICAgICAgIkRvd24iLAotICAgICAgICAgICAgICAgICJVcCIsCi0gICAg
ICAgICAgICAgICAgIlNpbmdsZUNsaWNrIiwKLSAgICAgICAgICAgICAgICAiRG91YmxlQ2xpY2si
Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6
ICJNb3VzZUJ1dHRvbiIsCi0gICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAotICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMgZGlmZmVyZW50IG1vdXNlIGJ1dHRvbnMgdGhh
dCBjYW4gYmUgdXNlZC4iLAotICAgICAgICAgICAgImVudW0iOiBbCi0gICAgICAgICAgICAgICAg
Ik5vbmUiLAotICAgICAgICAgICAgICAgICJMZWZ0IiwKLSAgICAgICAgICAgICAgICAiTWlkZGxl
IiwKLSAgICAgICAgICAgICAgICAiUmlnaHQiCi0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAgICJpZCI6ICJLZXlNb2RpZmllciIsCi0gICAgICAgICAgICAi
dHlwZSI6ICJzdHJpbmciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMg
ZGlmZmVyZW50IGtleSBtb2RpZmllcnMgdGhhdCBjYW4gcmVtYWluIHByZXNzZWQgZHVyaW5nIG90
aGVyIG1vdXNlL3RvdWNoIGludGVyYWN0aW9ucy4iLAotICAgICAgICAgICAgImVudW0iOiBbCi0g
ICAgICAgICAgICAgICAgIkNhcHNMb2NrIiwKLSAgICAgICAgICAgICAgICAiQ29udHJvbCIsCi0g
ICAgICAgICAgICAgICAgIlNoaWZ0IiwKLSAgICAgICAgICAgICAgICAiTWV0YSIsCi0gICAgICAg
ICAgICAgICAgIkFsdCIKLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAg
ICAgICAgICAgImlkIjogIlZpcnR1YWxLZXkiLAotICAgICAgICAgICAgInR5cGUiOiAic3RyaW5n
IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJhdGVzIGRpZmZlcmVudCBwbGF0
Zm9ybS1pbmRlcGVuZGVudCB2aXJ0dWFsIGtleXMgb24gYSBwaHlzaWNhbCBrZXlib2FyZCB3aG9z
ZSBpbnB1dCB2aWEga2V5Ym9hcmQgbWF5IG9yIG1heSBub3QgcHJvZHVjZSBjaGFyYWN0ZXJzLiIs
Ci0gICAgICAgICAgICAiZW51bSI6IFsKLSAgICAgICAgICAgICAgICAiU2hpZnQiLAotICAgICAg
ICAgICAgICAgICJDb250cm9sIiwKLSAgICAgICAgICAgICAgICAiQWx0ZXJuYXRlIiwKLSAgICAg
ICAgICAgICAgICAiTWV0YSIsCi0gICAgICAgICAgICAgICAgIkNvbW1hbmQiLAotICAgICAgICAg
ICAgICAgICJDYW5jZWwiLAotICAgICAgICAgICAgICAgICJIZWxwIiwKLSAgICAgICAgICAgICAg
ICAiQmFja3NwYWNlIiwKLSAgICAgICAgICAgICAgICAiVGFiIiwKLSAgICAgICAgICAgICAgICAi
Q2xlYXIiLAotICAgICAgICAgICAgICAgICJFbnRlciIsCi0gICAgICAgICAgICAgICAgIlBhdXNl
IiwKLSAgICAgICAgICAgICAgICAiRXNjYXBlIiwKLSAgICAgICAgICAgICAgICAiUGFnZVVwIiwK
LSAgICAgICAgICAgICAgICAiUGFnZURvd24iLAotICAgICAgICAgICAgICAgICJFbmQiLAotICAg
ICAgICAgICAgICAgICJIb21lIiwKLSAgICAgICAgICAgICAgICAiTGVmdEFycm93IiwKLSAgICAg
ICAgICAgICAgICAiVXBBcnJvdyIsCi0gICAgICAgICAgICAgICAgIlJpZ2h0QXJyb3ciLAotICAg
ICAgICAgICAgICAgICJEb3duQXJyb3ciLAotICAgICAgICAgICAgICAgICJJbnNlcnQiLAotICAg
ICAgICAgICAgICAgICJEZWxldGUiLAotICAgICAgICAgICAgICAgICJTcGFjZSIsCi0gICAgICAg
ICAgICAgICAgIlNlbWljb2xvbiIsCi0gICAgICAgICAgICAgICAgIkVxdWFscyIsCi0gICAgICAg
ICAgICAgICAgIlJldHVybiIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZDAiLAotICAgICAg
ICAgICAgICAgICJOdW1iZXJQYWQxIiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkMiIsCi0g
ICAgICAgICAgICAgICAgIk51bWJlclBhZDMiLAotICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ0
IiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkNSIsCi0gICAgICAgICAgICAgICAgIk51bWJl
clBhZDYiLAotICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ3IiwKLSAgICAgICAgICAgICAgICAi
TnVtYmVyUGFkOCIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZDkiLAotICAgICAgICAgICAg
ICAgICJOdW1iZXJQYWRNdWx0aXBseSIsCi0gICAgICAgICAgICAgICAgIk51bWJlclBhZEFkZCIs
Ci0gICAgICAgICAgICAgICAgIk51bWJlclBhZFNlcGFyYXRvciIsCi0gICAgICAgICAgICAgICAg
Ik51bWJlclBhZFN1YnRyYWN0IiwKLSAgICAgICAgICAgICAgICAiTnVtYmVyUGFkRGVjaW1hbCIs
Ci0gICAgICAgICAgICAgICAgIk51bWJlclBhZERpdmlkZSIsCi0gICAgICAgICAgICAgICAgIkZ1
bmN0aW9uMSIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uMiIsCi0gICAgICAgICAgICAgICAg
IkZ1bmN0aW9uMyIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uNCIsCi0gICAgICAgICAgICAg
ICAgIkZ1bmN0aW9uNSIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uNiIsCi0gICAgICAgICAg
ICAgICAgIkZ1bmN0aW9uNyIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uOCIsCi0gICAgICAg
ICAgICAgICAgIkZ1bmN0aW9uOSIsCi0gICAgICAgICAgICAgICAgIkZ1bmN0aW9uMTAiLAotICAg
ICAgICAgICAgICAgICJGdW5jdGlvbjExIiwKLSAgICAgICAgICAgICAgICAiRnVuY3Rpb24xMiIK
LSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjog
IktleWJvYXJkSW50ZXJhY3Rpb25UeXBlIiwKLSAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIs
Ci0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgd2F5cyBv
ZiBpbnRlcmFjdGluZyB3aXRoIGEga2V5Ym9hcmQgZGV2aWNlLiAnSW5zZXJ0QnlLZXknIGltcGxp
ZXMgdGhhdCBhIHNlcGFyYXRlIEtleURvd24gYW5kIEtleVVwIGV2ZW50IGFyZSBwcm9kdWNlZCBm
b3IgZWFjaCBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlLCByZWdhcmRsZXNzIG9mIHRoZSBh
Y3R1YWwga2V5c3Ryb2tlcyByZXF1aXJlZCB0byBwcm9kdWNlIHRoZSBjaGFyYWN0ZXIgc2VxdWVu
Y2UuIiwKLSAgICAgICAgICAgICJlbnVtIjogWwotICAgICAgICAgICAgICAgICJLZXlQcmVzcyIs
Ci0gICAgICAgICAgICAgICAgIktleVJlbGVhc2UiLAotICAgICAgICAgICAgICAgICJJbnNlcnRC
eUtleSIKLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAg
ImlkIjogIktleWJvYXJkSW50ZXJhY3Rpb24iLAotICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0
IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBIHNpbmdsZSBzdGVwIGluIGEga2V5IHNl
cXVlbmNlLiBBIHN0ZXAgY2FuIGNvbnRhaW4gYSBrZXkgdXAvZG93biBvZiBhIHZpcnR1YWwga2V5
LCBvciBhIHNlcXVlbmNlIG9mIFVuaWNvZGUgY29kZSBwb2ludHMgdGhhdCBhcmUgZGVsaXZlcmVk
IHRvIHRoZSBwYWdlIGF0IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4gRWl0aGVyIGEgJ2tl
eScgb3IgJ3RleHQnIHByb3BlcnR5IG11c3QgYmUgc3BlY2lmaWVkLiIsCi0gICAgICAgICAgICAi
cHJvcGVydGllcyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInR5cGUiLCAiJHJlZiI6
ICJLZXlib2FyZEludGVyYWN0aW9uVHlwZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlwZSBvZiBp
bnRlcmFjdGlvbiB0byBiZSBwZXJmb3JtZWQgYnkgYSBzdGVwLiIgfSwKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImtleSIsICIkcmVmIjogIlZpcnR1YWxLZXkiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiQSB2aXJ0dWFsIGtleSB0byBiZSB1c2VkIHRvIHBlcmZvcm0gdGhl
IHNwZWNpZmllZCBpbnRlcmFjdGlvbi4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ0
ZXh0IiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IkEgdW5pY29kZSBzdHJpbmcgdG8gYmUgZGVsaXZlcmVkIHRvIHRoZSBwYWdlLiBUaGUgc2VxdWVu
Y2Ugb2Yga2V5IGV2ZW50cyBpcyBkZXRlcm1pbmVkIGJ5IHNwbGl0dGluZyB0aGUgc3RyaW5nIGF0
IGdyYXBoZW1lIGNsdXN0ZXIgYm91bmRhcmllcy4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICAgImlkIjogIkNvb2tpZSIsCi0gICAgICAgICAgICAi
dHlwZSI6ICJvYmplY3QiLAotICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IkNvb2tpZSBuYW1lLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInZhbHVlIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSB2YWx1ZS4iIH0sCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJkb21haW4iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiQ29va2llIGRvbWFpbi4gSWYgZW1wdHksIHRoZSBkb21haW4gaXMgaW5oZXJpdGVkIGZy
b20gdGhlIHJlbGV2YW50IGJyb3dzaW5nIGNvbnRleHQuIiB9LAotICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAicGF0aCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUg
cGF0aC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHBpcmVzIiwgInR5cGUiOiAi
bnVtYmVyIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSBleHBpcmF0aW9uIGluIHNlY29uZHMgc2lu
Y2UgdGhlIFVOSVggZXBvY2guIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIs
ICJ0eXBlIjogImludGVnZXIiLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIHNpemUuIiB9LAotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaHR0cE9ubHkiLCAidHlwZSI6ICJib29sZWFuIiwgImRl
c2NyaXB0aW9uIjogIlRydWUgaWYgY29va2llIGlzIGh0dHAtb25seS4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJzZWN1cmUiLCAidHlwZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9u
IjogIlRydWUgaWYgY29va2llIGlzIHNlY3VyZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzZXNzaW9uIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlu
IGNhc2Ugb2Ygc2Vzc2lvbiBjb29raWUuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0KLSAg
ICBdLAotICAgICJjb21tYW5kcyI6IFsKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAi
Z2V0QnJvd3NpbmdDb250ZXh0cyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRmV0Y2hl
cyBpbmZvcm1hdGlvbiBhYm91dCBhbGwgb3BlbiBicm93c2luZyBjb250ZXh0cyAod2luZG93cyBh
bmQgdGFicykgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbi4iLAotICAgICAgICAgICAgInJldHVy
bnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0cyIsICJ0eXBlIjogImFy
cmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHQiIH0sICJkZXNjcmlwdGlv
biI6ICJBbGwga25vd24gYnJvd3NpbmcgY29udGV4dHMgYXZhaWxhYmxlIHRvIHRoZSBzZXNzaW9u
LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAi
bmFtZSI6ICJnZXRCcm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IkZldGNoZXMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0
LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImNvbnRleHQiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHQiLCAiZGVzY3JpcHRpb24iOiAiVGhl
IGJyb3dzaW5nIGNvbnRleHQgYXZhaWxhYmxlIHRvIHRoZSBzZXNzaW9uLiIgfQotICAgICAgICAg
ICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJjcmVhdGVC
cm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk9wZW5zIGEgbmV3
IGJyb3dzaW5nIGNvbnRleHQgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbiBhbmQgbWFrZXMgaXQg
dGhlIGFjdGl2ZSBicm93c2luZyBjb250ZXh0IGZvciB1c2VyIGludGVyYWN0aW9uLiBUaGlzIGNv
bW1hbmQgY3JlYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgaW4gYSBuZXcgd2luZG93IHJhdGhlciB0
aGFuIGFkZGluZyBhIHRhYiB0byBhbiBleGlzdGluZyB3aW5kb3cuIiwKLSAgICAgICAgICAgICJy
ZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAi
QnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIkFuIG9wYXF1ZSBoYW5kbGUg
Zm9yIHRoZSBuZXdseSBjcmVhdGVkIGJyb3dzaW5nIGNvbnRleHQuIiB9Ci0gICAgICAgICAgICBd
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImNsb3NlQnJvd3Np
bmdDb250ZXh0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJUcnkgdG8gY2xvc2UgdGhl
IHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0LiBUaGlzIGNhbiB0cmlnZ2VyIGFuIHVubG9hZCBw
cm9tcHQgYW5kIHRoZXJlYWZ0ZXIgc3VjY2VlZCBvciBmYWlsLiIsCi0gICAgICAgICAgICAicGFy
YW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBjbG9zZWQuIiB9Ci0gICAgICAgICAg
ICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInN3aXRjaFRv
QnJvd3NpbmdDb250ZXh0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJBY3RpdmF0ZXMg
dGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IGFuZCBvcHRpb25hbCBmcmFtZSwgd2hpY2gg
Z2l2ZXMgdGhlbSBmb2N1cyAoY2F1c2luZyB0aGUgJ2ZvY3VzJyBET00gZXZlbnQgdG8gZmlyZSwg
YW5kICdibHVyJyBET00gZXZlbnQgdG8gZmlyZSBmb3IgdGhlIHByZXZpb3VzIGJyb3dzaW5nIGNv
bnRleHQgYW5kIGZyYW1lKS4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJy
b3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbWFkZSBmb2N1c2VkLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1l
IHRoYXQgc2hvdWxkIGJlIGZvY3VzZWQuIERlZmF1bHRzIHRvIHRoZSBtYWluIGZyYW1lIGlmIG9t
aXR0ZWQuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAg
ICAgICJuYW1lIjogInJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0IiwKLSAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJSZXNpemVzIHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBicm93
c2luZyBjb250ZXh0IHRvIHRoZSBzcGVjaWZpZWQgc2l6ZS4iLAotICAgICAgICAgICAgInBhcmFt
ZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJC
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhl
IGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgcmVzaXplZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzaXplIiwgIiRyZWYiOiAiU2l6ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgbmV3IHNp
emUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93LiIgfQotICAgICAgICAgICAgXQot
ICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJtb3ZlV2luZG93T2ZC
cm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB3
aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IHRvIHRoZSBzcGVjaWZpZWQg
cG9zaXRpb24uIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRl
c2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRvIGJlIG1v
dmVkLiIgfSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yaWdpbiIsICIkcmVmIjogIlBv
aW50IiwgImRlc2NyaXB0aW9uIjogIlRoZSBuZXcgb3JpZ2luIGZvciB0aGUgYnJvd3NpbmcgY29u
dGV4dCdzIHdpbmRvdy4gVGhlIHBvc2l0aW9uIGlzIGludGVycHJldGVkIGluIHNjcmVlbiBjb29y
ZGluYXRlIHNwYWNlLCByZWxhdGl2ZSB0byB0aGUgdXBwZXIgbGVmdCBjb3JuZXIgb2YgdGhlIHNj
cmVlbi4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICAgIm5hbWUiOiAibmF2aWdhdGVCcm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIk5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgdG8gYSBzcGVjaWZpZWQgVVJM
LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBu
YXZpZ2F0ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXJsIiwgInR5cGUiOiAi
c3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBVUkwgdG8gbG9hZCBpbiB0aGUgYnJvd3Npbmcg
Y29udGV4dC4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0g
ICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImdvQmFja0luQnJvd3Np
bmdDb250ZXh0IiwKLSAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJOYXZpZ2F0ZXMgYSBicm93
c2luZyBjb250ZXh0IHRvIGdvIGJhY2sgb25lIHBhZ2UgaW4gaGlzdG9yeS4iLAotICAgICAgICAg
ICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbmF2aWdhdGVkLiIgfQot
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZ29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHQi
LAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIk5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRl
eHQgdG8gZ290IGZvcndhcmQgb25lIHBhZ2UgaW4gaGlzdG9yeS4iLAotICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6
ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3Ig
dGhlIGJyb3dzaW5nIGNvbnRleHQgdGhhdCBzaG91bGQgYmUgbmF2aWdhdGVkLiIgfQotICAgICAg
ICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAgICAgICAg
ewotICAgICAgICAgICAgIm5hbWUiOiAicmVsb2FkQnJvd3NpbmdDb250ZXh0IiwKLSAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJSZWxvYWRzIHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBicm93c2lu
ZyBjb250ZXh0LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNo
b3VsZCBiZSByZWxvYWRlZC4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMi
OiB0cnVlCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImluc3Bl
Y3RCcm93c2luZ0NvbnRleHQiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkluc3BlY3Qg
dGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IHVzaW5nIFdlYiBJbnNwZWN0b3IuIiwKLSAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFu
ZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRo
ZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGluc3BlY3Rl
ZC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmFibGVBdXRvQ2FwdHVyaW5nIiwg
InR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0
aGlzIG9wdGlvbiBpcyBwcmVzZW50IGFuZCBzZXQgdG8gdHJ1ZSwgdGhlIFdlYiBJbnNwZWN0b3Ig
d2lsbCBhdXRvbWF0aWNhbGx5IHN0YXJ0IGEgdGltZWxpbmUgcmVjb3JkaW5nIG9mIHRoZSBzcGVj
aWZpZWQgYnJvd3NpbmcgY29udGV4dCBvbmNlIGl0IGlzIGF0dGFjaGVkLiBOb3RlIHRoYXQgdGhp
cyBkaXNhYmxlcyB0aGUgZGVidWdnZXIgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgcmVjb3JkaW5n
LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAg
fSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24iLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkV2YWx1YXRlcyBhIHNjcmlwdCBm
dW5jdGlvbiBpbiBhIGJyb3dzaW5nIGNvbnRleHQgYW5kIGNhbGxzIGl0IHdpdGggdGhlIHN1cHBs
aWVkIGFyZ3VtZW50cy4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dz
aW5nIGNvbnRleHQgdGhlIHNjcmlwdCBzaG91bGQgYmUgZXZhbHVhdGVkLiIgfSwKLSAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAi
b3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1l
IHRoZSBzY3JpcHQgc2hvdWxkIGJlIGV2YWx1YXRlZC4gVGhlIG1haW4gZnJhbWUgaXMgdXNlZCBp
ZiB0aGlzIHBhcmFtZXRlciBlbXB0eSBzdHJpbmcgb3IgZXhjbHVkZWQuIiB9LAotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZnVuY3Rpb24iLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiVGhlIHNjcmlwdCB0byBldmFsdWF0ZSBpbiB0aGUgYnJvd3NpbmcgY29udGV4dC4gSXQg
bXVzdCBiZSBhIGZ1bmN0aW9uIHJlc3VsdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJhcmd1bWVudHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgInR5cGUiOiAic3RyaW5n
IiB9LCAiZGVzY3JpcHRpb24iOiAiVGhlIGFyZ3VtZW50cyB0byBwYXNzIHRvIHRoZSBmdW5jdGlv
biB3aGVuIGNhbGxlZC4gVGhleSB3aWxsIGJlIHBhcnNlZCBhcyBKU09OIGJlZm9yZSBjYWxsaW5n
IHRoZSBmdW5jdGlvbi4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHBlY3RzSW1w
bGljaXRDYWxsYmFja0FyZ3VtZW50IiwgInR5cGUiOiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgZnVuY3Rpb24gZXhwZWN0cyBhIGNhbGxiYWNrIGZ1bmN0
aW9uIGFzIHRoZSBsYXN0IGFyZ3VtZW50LiBJdCBpcyBleHBlY3RlZCB0byBjYWxsIHRoaXMgY2Fs
bGJhY2sgd2l0aCBhIHJlc3VsdC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjYWxs
YmFja1RpbWVvdXQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlRoZSB0aW1lb3V0IGluIG1pbGxpc2Vjb25kcyB0aGF0IHRoZSBpbXBsaWNpdCBj
YWxsYmFjayBpcyBleHBlY3RlZCB0byBiZSBjYWxsZWQgaW4sIG90aGVyd2lzZSBhIDxjb2RlPkph
dmFTY3JpcHRUaW1lb3V0PC9jb2RlPiBlcnJvciBpcyByZXR1cm5lZC4iIH0KLSAgICAgICAgICAg
IF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
InJlc3VsdCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcmVzdWx0IHJl
dHVybmVkIGJ5IHRoZSBjYWxsZWQgZnVuY3Rpb24uIEl0IGlzIEpTT04gZW5jb2RlZCBhZnRlciB0
aGUgZnVuY3Rpb24gcmV0dXJucyBvciBjYWxscyB0aGUgY2FsbGJhY2suIiB9Ci0gICAgICAgICAg
ICBdLAotICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAibmFtZSI6ICJwZXJmb3JtTW91c2VJbnRlcmFjdGlvbiIsCi0gICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiU2ltdWxhdGVzIGludGVyYWN0aW9uIHdpdGggYSBtb3VzZSBjdXJz
b3IuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0
aW9uIjogIlRoZSBicm93c2luZyBjb250ZXh0IHRvIGJlIGludGVyYWN0ZWQgd2l0aC4iIH0sCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwb3NpdGlvbiIsICIkcmVmIjogIlBvaW50IiwgImRl
c2NyaXB0aW9uIjogIlRoZSByZXF1ZXN0ZWQgcG9zaXRpb24gZm9yIHRoZSBtb3VzZSBjdXJzb3Is
IHNwZWNpZmllZCBpbiB2aWV3cG9ydCBjb29yZGluYXRlcy4iIH0sCi0gICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJidXR0b24iLCAiJHJlZiI6ICJNb3VzZUJ1dHRvbiIsICJkZXNjcmlwdGlvbiI6
ICJUaGUgYnV0dG9uIHRvIHVzZSB0byBwZXJmb3JtIHRoZSBpbnRlcmFjdGlvbi4gVGhpcyBwYXJh
bWV0ZXIgb25seSBoYXMgYW4gZWZmZWN0IGZvciB0aGUgPGNvZGU+RG93bjwvY29kZT4sIDxjb2Rl
PlVwPC9jb2RlPiwgPGNvZGU+Q2xpY2s8L2NvZGU+LCBhbmQgPGNvZGU+RG91YmxlQ2xpY2s8L2Nv
ZGU+IG1vdXNlIGludGVyYWN0aW9ucy4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJp
bnRlcmFjdGlvbiIsICIkcmVmIjogIk1vdXNlSW50ZXJhY3Rpb24iLCAiZGVzY3JpcHRpb24iOiAi
VGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gdG8gYmUgcGVyZm9ybWVkIHdpdGggdGhlIG1vdXNlIGN1
cnNvci4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtb2RpZmllcnMiLCAidHlwZSI6
ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiS2V5TW9kaWZpZXIiIH0sICJkZXNjcmlwdGlv
biI6ICJLZXkgbW9kaWZpZXJzIHRvIGJlIGFjdGl2ZSBkdXJpbmcgdGhlIG1vdXNlIGludGVyYWN0
aW9uLiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAicG9zaXRpb24iLCAiJHJlZiI6ICJQb2ludCIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgdXBkYXRlZCBwb3NpdGlvbiBvZiB0aGUgbW91c2UgY3Vyc29yLCBzcGVjaWZp
ZWQgaW4gdmlld3BvcnQgY29vcmRpbmF0ZXMuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInBlcmZvcm1LZXlib2FyZEludGVyYWN0
aW9ucyIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2ltdWxhdGVzIGRlbGl2ZXJpbmcg
dGhlIHJlc3VsdHMgb2YgcHJlc3Npbmcgb25lIG9yIG1vcmUga2V5Ym9hcmQga2V5cyB0b2dldGhl
ciBvciBzdWNjZXNzaXZlbHkuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFu
ZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0
IHdoaWNoIHNob3VsZCByZWNlaXZlIGtleS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJpbnRlcmFjdGlvbnMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRyZWYiOiAiS2V5
Ym9hcmRJbnRlcmFjdGlvbiIgfSwgImRlc2NyaXB0aW9uIjogIkFuIG9yZGVyZWQgbGlzdCBvZiBr
ZXkgc2VxdWVuY2VzIHRvIGJlIGRlbGl2ZXJlZCB1c2luZyBuYXRpdmUga2V5IGV2ZW50cy4iIH0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0g
ICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInRha2VTY3JlZW5zaG90IiwKLSAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJUYWtlIGEgc2NyZWVuc2hvdCBvZiB0aGUgY3VycmVudCBwYWdl
IGluIGEgYnJvd3NpbmcgY29udGV4dC4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCi0g
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQgdG8gdGFrZSBhIHNjcmVlbnNob3Qgb2YuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAg
ICAgICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkYXRhIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkJhc2U2NC1lbmNvZGVkIGltYWdlIGRhdGEg
KFBORykuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQotICAg
ICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJyZXNvbHZlQ2hpbGRGcmFt
ZUhhbmRsZSIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyB0aGUgPGNv
ZGU+RnJhbWVIYW5kbGU8L2NvZGU+IGJhc2VkIG9uIHRoZSBvcmRpbmFsLCBuYW1lIG9yIG5vZGUg
aGFuZGxlIG9mIGEgY2hpbGQgZnJhbWUuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwot
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYi
OiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBicm93c2luZyBjb250ZXh0IGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGZyYW1lLiIg
fSwKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJh
bWVIYW5kbGUiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBm
b3IgdGhlIGZyYW1lIGluIHdoaWNoIHRvIHNlYXJjaCBmb3IgdGhlIGZyYW1lLiBUaGUgbWFpbiBm
cmFtZSBpcyB1c2VkIGlmIHRoaXMgcGFyYW1ldGVyIGVtcHR5IHN0cmluZyBvciBleGNsdWRlZC4i
IH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmRpbmFsIiwgInR5cGUiOiAiaW50ZWdl
ciIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgb3JkaW5hbCBvZiB0aGUg
Y2hpbGQgZnJhbWUgdG8gcmVzb2x2ZSBhcyBhIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4gVGhp
cyBpcyBhbmFsb2dvdXMgdG8gJ3dpbmRvdy5mcmFtZXNbb3JkaW5hbF0nIGluIEphdmFTY3JpcHQu
IiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFtZSIsICJ0eXBlIjogInN0cmluZyIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgbmFtZSBvZiB0aGUgY2hpbGQg
ZnJhbWUgdG8gcmVzb2x2ZSBhcyBhIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4gVGhpcyBpcyBh
bmFsb2dvdXMgdG8gJ3dpbmRvdy5mcmFtZXNbbmFtZV0nIGluIEphdmFTY3JpcHQuIiB9LAotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAibm9kZUhhbmRsZSIsICIkcmVmIjogIk5vZGVIYW5kbGUi
LCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBvZiB0aGUgY2hp
bGQgZnJhbWUgb3duZXIgZWxlbWVudCB0byByZXNvbHZlIGFzIGEgPGNvZGU+RnJhbWVIYW5kbGU8
L2NvZGU+LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJyZXR1cm5zIjogWwotICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgIiRyZWYiOiAiRnJhbWVIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPiBmb3IgdGhlIHJlcXVl
c3RlZCBmcmFtZS4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAiYXN5bmMiOiB0cnVl
Ci0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVQYXJl
bnRGcmFtZUhhbmRsZSIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGV0ZXJtaW5lcyB0
aGUgPGNvZGU+RnJhbWVIYW5kbGU8L2NvZGU+IGZvciB0aGUgcGFyZW50IGZyYW1lIG9mIHRoZSBz
dXBwbGllZCA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4uIiwKLSAgICAgICAgICAgICJwYXJhbWV0
ZXJzIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxl
IiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBo
YW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoZSBmcmFtZSBpcyBsb2NhdGVkLiIgfSwK
LSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImZyYW1lSGFuZGxlIiwgIiRyZWYiOiAiRnJhbWVI
YW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGZyYW1lIHRoYXQgc2hv
dWxkIHJlc29sdmUgaXRzIHBhcmVudCBmcmFtZS4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAg
ICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlc3VsdCIsICIk
cmVmIjogIkZyYW1lSGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSA8Y29kZT5GcmFtZUhhbmRs
ZTwvY29kZT4gZm9yIHRoZSByZXF1ZXN0ZWQgZnJhbWUuIiB9Ci0gICAgICAgICAgICBdLAotICAg
ICAgICAgICAgImFzeW5jIjogdHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAg
ICAibmFtZSI6ICJjb21wdXRlRWxlbWVudExheW91dCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiQ29tcHV0ZXMgdGhlIGxheW91dCBmb3IgYW4gZWxlbWVudC4iLAotICAgICAgICAgICAg
InBhcmFtZXRlcnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhlIGZyYW1lIGlzIGxvY2F0
ZWQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJlZiI6
ICJGcmFtZUhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgZnJhbWUg
dGhhdCBjb250YWlucyB0aGUgZWxlbWVudC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJub2RlSGFuZGxlIiwgIiRyZWYiOiAiTm9kZUhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIG9mIHRoZSBlbGVtZW50IHRvIHVzZS4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJzY3JvbGxJbnRvVmlld0lmTmVlZGVkIiwgIm9wdGlvbmFsIjogdHJ1ZSwgInR5cGUiOiAi
Ym9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgZWxlbWVudCBzaG91bGQgYmUgc2Nyb2xs
ZWQgaW50byB2aWV3IGJlZm9yZSBjb21wdXRpbmcgaXRzIGxheW91dC4iIH0sCi0gICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJ1c2VWaWV3cG9ydENvb3JkaW5hdGVzIiwgIm9wdGlvbmFsIjogdHJ1
ZSwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgcmVzdWx0IGNvb3Jk
aW5hdGVzIHNob3VsZCBiZSByZXByZXNlbnRlZCBhcyB2aWV3cG9ydCBjb29yZGluYXRlcyBvciBu
b3QuIERlZmF1bHRzIHRvIGZhbHNlLCB3aGljaCBtZWFucyBjb29yZGluYXRlcyBzaG91bGQgYmUg
cmVwcmVzZW50ZWQgYXMgcGFnZSBjb29yZGluYXRlcy4iIH0KLSAgICAgICAgICAgIF0sCi0gICAg
ICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogInJlY3QiLCAi
JHJlZiI6ICJSZWN0IiwgImRlc2NyaXB0aW9uIjogIlRoZSBsYXlvdXQgcmVjdCBmb3IgdGhlIHJl
cXVlc3RlZCBlbGVtZW50LiBTcGVjaWZpZWQgaW4gcGFnZSBvciB2aWV3cG9ydCBjb29yZGluYXRl
cyBiYXNlZCBvbiB0aGUgdXNlVmlld3BvcnRDb29yZGluYXRlcyBwYXJhbWV0ZXIuIiB9Ci0gICAg
ICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQotICAgICAgICB9LAotICAgICAg
ICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJpc1Nob3dpbmdKYXZhU2NyaXB0RGlhbG9nIiwKLSAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJDaGVja3MgaWYgYSBicm93c2luZyBjb250ZXh0IGlz
IHNob3dpbmcgYSBKYXZhU2NyaXB0IGFsZXJ0LCBjb25maXJtLCBvciBwcm9tcHQgZGlhbG9nLiIs
Ci0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjog
ImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0K
LSAgICAgICAgICAgIF0sCi0gICAgICAgICAgICAicmV0dXJucyI6IFsKLSAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInJlc3VsdCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAi
SWYgdGhlIGJyb3dzaW5nIGNvbnRleHQgaXMgc2hvd2luZyBhIEphdmFTY3JpcHQgZGlhbG9nIG9y
IG5vdC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAg
ICAgIm5hbWUiOiAiZGlzbWlzc0N1cnJlbnRKYXZhU2NyaXB0RGlhbG9nIiwKLSAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJEaXNtaXNzZXMgYSBKYXZhU2NyaXB0IGFsZXJ0LCBjb25maXJtLCBv
ciBwcm9tcHQgZGlhbG9nIGN1cnJlbnRseSBzaG93aW5nIGluIGEgYnJvd3NpbmcgY29udGV4dC4g
RXF1aXZhbGVudCB0byBjbGlja2luZyB0aGUgJ0NhbmNlbCcgYnV0dG9uLiIsCi0gICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29u
dGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KLSAgICAgICAgICAg
IF0KLSAgICAgICAgfSwKLSAgICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiYWNjZXB0Q3Vy
cmVudEphdmFTY3JpcHREaWFsb2ciLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFjY2Vw
dHMgYSBKYXZhU2NyaXB0IGFsZXJ0LCBjb25maXJtLCBvciBwcm9tcHQgZGlhbG9nIGN1cnJlbnRs
eSBzaG93aW5nIGluIGEgYnJvd3NpbmcgY29udGV4dC4gRXF1aXZhbGVudCB0byBjbGlja2luZyB0
aGUgJ09LJyBidXR0b24uIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwotICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93
c2luZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9LAotICAgICAgICB7Ci0g
ICAgICAgICAgICAibmFtZSI6ICJtZXNzYWdlT2ZDdXJyZW50SmF2YVNjcmlwdERpYWxvZyIsCi0g
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmV0dXJucyB0aGUgdGV4dCBkaXNwbGF5ZWQgaW4g
YSBKYXZhU2NyaXB0IGFsZXJ0LCBjb25maXJtLCBvciBwcm9tcHQgZGlhbG9nIGN1cnJlbnRseSBz
aG93aW5nIGluIGEgYnJvd3NpbmcgY29udGV4dC4iLAotICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAg
ICAgInJldHVybnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJtZXNzYWdlIiwgInR5
cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRleHQgYmVpbmcgZGlzcGxheWVkIGluIHRo
ZSBjdXJyZW50IEphdmFTY3JpcHQgZGlhbG9nLiIgfQotICAgICAgICAgICAgXQotICAgICAgICB9
LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJzZXRVc2VySW5wdXRGb3JDdXJyZW50
SmF2YVNjcmlwdFByb21wdCIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiU2V0cyB0aGUg
dXNlciBlbnRlcmVkIHZhbHVlIGluIGEgSmF2YVNjcmlwdCBwcm9tcHQgZGlhbG9nIGN1cnJlbnRs
eSBzaG93aW5nIGluIGEgYnJvd3NpbmcgY29udGV4dC4iLAotICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUi
LCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhh
bmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAotICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAidXNlcklucHV0IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB0
ZXh0IHRvIGVudGVyIGluIHRoZSBwcm9tcHQuIiB9Ci0gICAgICAgICAgICBdCi0gICAgICAgIH0s
Ci0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1lIjogImdldEFsbENvb2tpZXMiLAotICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIlJldHVybnMgYWxsIGNvb2tpZXMgdmlzaWJsZSB0byB0aGUg
c3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKLSAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRy
ZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUg
Zm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQotICAgICAgICAgICAgXSwKLSAgICAgICAgICAg
ICJyZXR1cm5zIjogWwotICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiY29va2llcyIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJDb29raWUiIH0sICJkZXNjcmlwdGlvbiI6
ICJBcnJheSBvZiBjb29raWUgb2JqZWN0cy4iIH0KLSAgICAgICAgICAgIF0sCi0gICAgICAgICAg
ICAiYXN5bmMiOiB0cnVlCi0gICAgICAgIH0sCi0gICAgICAgIHsKLSAgICAgICAgICAgICJuYW1l
IjogImRlbGV0ZVNpbmdsZUNvb2tpZSIsCi0gICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRGVs
ZXRlcyBhIGNvb2tpZSB3aXRoIHRoZSBnaXZlbiBuYW1lIGlmIHZpc2libGUgdG8gdGhlIHNwZWNp
ZmllZCBicm93c2luZyBjb250ZXh0LiIsCi0gICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCi0gICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb29r
aWVOYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIk5hbWUgb2YgdGhlIGNv
b2tpZSB0byByZW1vdmUuIiB9Ci0gICAgICAgICAgICBdLAotICAgICAgICAgICAgImFzeW5jIjog
dHJ1ZQotICAgICAgICB9LAotICAgICAgICB7Ci0gICAgICAgICAgICAibmFtZSI6ICJhZGRTaW5n
bGVDb29raWUiLAotICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNvb2tpZSB0byBj
b29raWUgc3RvcmFnZSBmb3IgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0LiIsCi0gICAg
ICAgICAgICAicGFyYW1ldGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dz
aW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNj
cmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCi0gICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJjb29raWUiLCAiJHJlZiI6ICJDb29raWUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIGNvb2tpZSB0aGF0IHNob3VsZCBiZSBhZGRlZCB0byBzdG9yYWdlLiIgfQot
ICAgICAgICAgICAgXSwKLSAgICAgICAgICAgICJhc3luYyI6IHRydWUKLSAgICAgICAgfSwKLSAg
ICAgICAgewotICAgICAgICAgICAgIm5hbWUiOiAiZGVsZXRlQWxsQ29va2llcyIsCi0gICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiRGVsZXRlIGFsbCBjb29raWVzIHRoYXQgYXJlIHZpc2libGUg
dG8gdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0LiIsCi0gICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKLSAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KLSAgICAgICAgICAgIF0KLSAgICAg
ICAgfQotICAgIF0KLX0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL0F1dG9tYXRpb24uanNvbi5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL0F1dG9tYXRpb24uanNvbi5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42YTY0MTI5NGMxYTQ0ZTUyNThi
YTRjYzE3ZTIxMTMwMjA0YzJmZDczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uLmluCkBAIC0wLDAgKzEsNDc5IEBA
Cit7CisgICAgImRvbWFpbiI6ICJBdXRvbWF0aW9uIiwKKyAgICAiZGVzY3JpcHRpb24iOiAiQXV0
b21hdGlvbiBkb21haW4gZXhwb3NlcyBjb21tYW5kcyBmb3IgYXV0b21hdGluZyB1c2VyIGludGVy
YWN0aW9ucyB3aXRoIHRoZSBicm93c2VyLiIsCisgICAgInR5cGVzIjogWworICAgICAgICB7Cisg
ICAgICAgICAgICAiaWQiOiAiUG9pbnQiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
KyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
eCIsICJ0eXBlIjogIm51bWJlciIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInkiLCAi
dHlwZSI6ICJudW1iZXIiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgewor
ICAgICAgICAgICAgImlkIjogIlNpemUiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwK
KyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
d2lkdGgiLCAidHlwZSI6ICJudW1iZXIiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJo
ZWlnaHQiLCAidHlwZSI6ICJudW1iZXIiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgImlkIjogIlJlY3QiLAorICAgICAgICAgICAgInR5cGUiOiAi
b2JqZWN0IiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAib3JpZ2luIiwgIiRyZWYiOiAiUG9pbnQiIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJzaXplIiwgIiRyZWYiOiAiU2l6ZSIgfQorICAgICAgICAgICAgXQorICAgICAgICB9
LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwK
KyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQW4gb3BhcXVlIGlkZW50aWZpZXIgZm9yIGEgYnJvd3NpbmcgY29udGV4dC4iCisgICAgICAg
IH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJGcmFtZUhhbmRsZSIsCisgICAgICAg
ICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFuIG9w
YXF1ZSBpZGVudGlmaWVyIGZvciBhIGZyYW1lIGluIGEgcGFnZS4iCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJOb2RlSGFuZGxlIiwKKyAgICAgICAgICAgICJ0eXBl
IjogInN0cmluZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQW4gb3BhcXVlIGlkZW50
aWZpZXIgZm9yIGEgbm9kZSBpbiBhIHBhZ2UuIgorICAgICAgICB9LAorICAgICAgICB7CisgICAg
ICAgICAgICAiaWQiOiAiRXJyb3JNZXNzYWdlIiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmlu
ZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiVGhpcyBlbnVtIGNvbnRhaW5zIHByZWRl
ZmluZWQgZXJyb3IgbWVzc2FnZXMgdGhhdCBjYW4gYmUgdXNlZCB0byBzaWduYWwgYSB3ZWxsLWRl
ZmluZWQgZXJyb3IgY29uZGl0aW9uLCBzdWNoIGFzIGEgbWlzc2luZyBpbXBsZW1lbnRhdGlvbiwg
dW5rbm93biB3aW5kb3cgaGFuZGxlLCBhbmQgc28gZm9ydGguIFRoZSBiYWNrZW5kIHNpZ25hbHMg
b25lIG9mIHRoZXNlIGVycm9ycyBieSB1c2luZyBpdCBhcyBhIHByZWZpeCBvZiB0aGUgY29tbWFu
ZHMncyBlcnJvciBtZXNzYWdlICh0aGUgZXJyb3JTdHJpbmcgYXJndW1lbnQgaW4gZ2VuZXJhdGVk
IEMrKyBiYWNrZW5kIGRpc3BhdGNoZXJzKS4gVGhpcyB3aWxsIGJlIHJlcG9ydGVkIHRvIHRoZSBm
cm9udGVuZCBhcyBhIHByb3RvY29sIGVycm9yIHdpdGggYSBKU09OLVJQQyBlcnJvciBjb2RlIG9m
ICdTZXJ2ZXJFcnJvcicuIEl0IGlzIHVwIHRvIHRoZSBmcm9udGVuZCB3aGV0aGVyIGFuZCBob3cg
dG8gZGVhbCB3aXRoIGVycm9ycy4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAgICAgICAg
ICAgICAgIkludGVybmFsRXJyb3IiLAorICAgICAgICAgICAgICAgICJUaW1lb3V0IiwKKyAgICAg
ICAgICAgICAgICAiSmF2YVNjcmlwdEVycm9yIiwKKyAgICAgICAgICAgICAgICAiSmF2YVNjcmlw
dFRpbWVvdXQiLAorICAgICAgICAgICAgICAgICJXaW5kb3dOb3RGb3VuZCIsCisgICAgICAgICAg
ICAgICAgIkZyYW1lTm90Rm91bmQiLAorICAgICAgICAgICAgICAgICJOb2RlTm90Rm91bmQiLAor
ICAgICAgICAgICAgICAgICJJbnZhbGlkRWxlbWVudFN0YXRlIiwKKyAgICAgICAgICAgICAgICAi
Tm9KYXZhU2NyaXB0RGlhbG9nIiwKKyAgICAgICAgICAgICAgICAiTm90SW1wbGVtZW50ZWQiLAor
ICAgICAgICAgICAgICAgICJNaXNzaW5nUGFyYW1ldGVyIiwKKyAgICAgICAgICAgICAgICAiSW52
YWxpZFBhcmFtZXRlciIKKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAg
ICAgICAgICAgImlkIjogIkJyb3dzaW5nQ29udGV4dCIsCisgICAgICAgICAgICAidHlwZSI6ICJv
YmplY3QiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkEgaGFuZGxlIHJlcHJlc2VudGlu
ZyBhbiBvcGVuIHdpbmRvdyBvciB0YWIgaW4gdGhlIGF1dG9tYXRpb24gc2Vzc2lvbi4iLAorICAg
ICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5k
bGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiT3Bh
cXVlIGhhbmRsZSBmb3IgYSBicm93c2luZyBjb250ZXh0ICh3aW5kb3cgb3IgdGFiKS4gVXNlZCBh
cyBhIGtleSBmb3Igd2luZG93LXJlbGF0ZWQgY29tbWFuZHMuIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiYWN0aXZlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJX
aGV0aGVyIHRoZSBicm93c2luZyBjb250ZXh0IGhhcyBmb2N1cyBhdCB0aGUgdGltZSB0aGUgY29t
bWFuZCBpcyBoYW5kbGVkLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVybCIsICJ0
eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgVVJMIGxvYWRlZCBieSB0aGUgYnJv
d3NpbmcgY29udGV4dCBhdCB0aGUgdGltZSB0aGUgY29tbWFuZCBpcyBoYW5kbGVkLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIndpbmRvd1NpemUiLCAiJHJlZiI6ICJTaXplIiwgImRl
c2NyaXB0aW9uIjogIlRoZSBjdXJyZW50IHNpemUgb2YgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3
aW5kb3cuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAid2luZG93T3JpZ2luIiwgIiRy
ZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGN1cnJlbnQgKHgsIHkpIHBvc2l0aW9u
IG9mIHRoZSBicm93c2luZyBjb250ZXh0J3Mgd2luZG93IHJlbGF0aXZlIHRvIHRoZSB0b3AtbGVm
dCBvZiB0aGUgc2NyZWVuLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAiaWQiOiAiTW91c2VJbnRlcmFjdGlvbiIsCisgICAgICAgICAgICAidHlw
ZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkVudW1lcmF0ZXMgZGlm
ZmVyZW50IHdheXMgb2YgaW50ZXJhY3Rpbmcgd2l0aCBhIG1vdXNlIGN1cnNvci4iLAorICAgICAg
ICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAgIk1vdmUiLAorICAgICAgICAgICAgICAg
ICJEb3duIiwKKyAgICAgICAgICAgICAgICAiVXAiLAorICAgICAgICAgICAgICAgICJTaW5nbGVD
bGljayIsCisgICAgICAgICAgICAgICAgIkRvdWJsZUNsaWNrIgorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiTW91c2VCdXR0b24iLAorICAg
ICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJF
bnVtZXJhdGVzIGRpZmZlcmVudCBtb3VzZSBidXR0b25zIHRoYXQgY2FuIGJlIHVzZWQuIiwKKyAg
ICAgICAgICAgICJlbnVtIjogWworICAgICAgICAgICAgICAgICJOb25lIiwKKyAgICAgICAgICAg
ICAgICAiTGVmdCIsCisgICAgICAgICAgICAgICAgIk1pZGRsZSIsCisgICAgICAgICAgICAgICAg
IlJpZ2h0IgorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAiaWQiOiAiS2V5TW9kaWZpZXIiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJFbnVtZXJhdGVzIGRpZmZlcmVudCBrZXkgbW9kaWZp
ZXJzIHRoYXQgY2FuIHJlbWFpbiBwcmVzc2VkIGR1cmluZyBvdGhlciBtb3VzZS90b3VjaCBpbnRl
cmFjdGlvbnMuIiwKKyAgICAgICAgICAgICJlbnVtIjogWworICAgICAgICAgICAgICAgICJDYXBz
TG9jayIsCisgICAgICAgICAgICAgICAgIkNvbnRyb2wiLAorICAgICAgICAgICAgICAgICJTaGlm
dCIsCisgICAgICAgICAgICAgICAgIk1ldGEiLAorICAgICAgICAgICAgICAgICJBbHQiCisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJWaXJ0
dWFsS2V5IiwKKyAgICAgICAgICAgICJ0eXBlIjogInN0cmluZyIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiRW51bWVyYXRlcyBkaWZmZXJlbnQgcGxhdGZvcm0taW5kZXBlbmRlbnQgdmly
dHVhbCBrZXlzIG9uIGEgcGh5c2ljYWwga2V5Ym9hcmQgd2hvc2UgaW5wdXQgdmlhIGtleWJvYXJk
IG1heSBvciBtYXkgbm90IHByb2R1Y2UgY2hhcmFjdGVycy4iLAorICAgICAgICAgICAgImVudW0i
OiBbCisgICAgICAgICAgICAgICAgIlNoaWZ0IiwKKyAgICAgICAgICAgICAgICAiQ29udHJvbCIs
CisgICAgICAgICAgICAgICAgIkFsdGVybmF0ZSIsCisgICAgICAgICAgICAgICAgIk1ldGEiLAor
ICAgICAgICAgICAgICAgICJDb21tYW5kIiwKKyAgICAgICAgICAgICAgICAiQ2FuY2VsIiwKKyAg
ICAgICAgICAgICAgICAiSGVscCIsCisgICAgICAgICAgICAgICAgIkJhY2tzcGFjZSIsCisgICAg
ICAgICAgICAgICAgIlRhYiIsCisgICAgICAgICAgICAgICAgIkNsZWFyIiwKKyAgICAgICAgICAg
ICAgICAiRW50ZXIiLAorICAgICAgICAgICAgICAgICJQYXVzZSIsCisgICAgICAgICAgICAgICAg
IkVzY2FwZSIsCisgICAgICAgICAgICAgICAgIlBhZ2VVcCIsCisgICAgICAgICAgICAgICAgIlBh
Z2VEb3duIiwKKyAgICAgICAgICAgICAgICAiRW5kIiwKKyAgICAgICAgICAgICAgICAiSG9tZSIs
CisgICAgICAgICAgICAgICAgIkxlZnRBcnJvdyIsCisgICAgICAgICAgICAgICAgIlVwQXJyb3ci
LAorICAgICAgICAgICAgICAgICJSaWdodEFycm93IiwKKyAgICAgICAgICAgICAgICAiRG93bkFy
cm93IiwKKyAgICAgICAgICAgICAgICAiSW5zZXJ0IiwKKyAgICAgICAgICAgICAgICAiRGVsZXRl
IiwKKyAgICAgICAgICAgICAgICAiU3BhY2UiLAorICAgICAgICAgICAgICAgICJTZW1pY29sb24i
LAorICAgICAgICAgICAgICAgICJFcXVhbHMiLAorICAgICAgICAgICAgICAgICJSZXR1cm4iLAor
ICAgICAgICAgICAgICAgICJOdW1iZXJQYWQwIiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFk
MSIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZDIiLAorICAgICAgICAgICAgICAgICJOdW1i
ZXJQYWQzIiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkNCIsCisgICAgICAgICAgICAgICAg
Ik51bWJlclBhZDUiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWQ2IiwKKyAgICAgICAgICAg
ICAgICAiTnVtYmVyUGFkNyIsCisgICAgICAgICAgICAgICAgIk51bWJlclBhZDgiLAorICAgICAg
ICAgICAgICAgICJOdW1iZXJQYWQ5IiwKKyAgICAgICAgICAgICAgICAiTnVtYmVyUGFkTXVsdGlw
bHkiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWRBZGQiLAorICAgICAgICAgICAgICAgICJO
dW1iZXJQYWRTZXBhcmF0b3IiLAorICAgICAgICAgICAgICAgICJOdW1iZXJQYWRTdWJ0cmFjdCIs
CisgICAgICAgICAgICAgICAgIk51bWJlclBhZERlY2ltYWwiLAorICAgICAgICAgICAgICAgICJO
dW1iZXJQYWREaXZpZGUiLAorICAgICAgICAgICAgICAgICJGdW5jdGlvbjEiLAorICAgICAgICAg
ICAgICAgICJGdW5jdGlvbjIiLAorICAgICAgICAgICAgICAgICJGdW5jdGlvbjMiLAorICAgICAg
ICAgICAgICAgICJGdW5jdGlvbjQiLAorICAgICAgICAgICAgICAgICJGdW5jdGlvbjUiLAorICAg
ICAgICAgICAgICAgICJGdW5jdGlvbjYiLAorICAgICAgICAgICAgICAgICJGdW5jdGlvbjciLAor
ICAgICAgICAgICAgICAgICJGdW5jdGlvbjgiLAorICAgICAgICAgICAgICAgICJGdW5jdGlvbjki
LAorICAgICAgICAgICAgICAgICJGdW5jdGlvbjEwIiwKKyAgICAgICAgICAgICAgICAiRnVuY3Rp
b24xMSIsCisgICAgICAgICAgICAgICAgIkZ1bmN0aW9uMTIiCisgICAgICAgICAgICBdCisgICAg
ICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJLZXlib2FyZEludGVyYWN0aW9u
VHlwZSIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkVudW1lcmF0ZXMgZGlmZmVyZW50IHdheXMgb2YgaW50ZXJhY3Rpbmcgd2l0aCBh
IGtleWJvYXJkIGRldmljZS4gJ0luc2VydEJ5S2V5JyBpbXBsaWVzIHRoYXQgYSBzZXBhcmF0ZSBL
ZXlEb3duIGFuZCBLZXlVcCBldmVudCBhcmUgcHJvZHVjZWQgZm9yIGVhY2ggY29tYmluaW5nIGNo
YXJhY3RlciBzZXF1ZW5jZSwgcmVnYXJkbGVzcyBvZiB0aGUgYWN0dWFsIGtleXN0cm9rZXMgcmVx
dWlyZWQgdG8gcHJvZHVjZSB0aGUgY2hhcmFjdGVyIHNlcXVlbmNlLiIsCisgICAgICAgICAgICAi
ZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiS2V5UHJlc3MiLAorICAgICAgICAgICAgICAgICJL
ZXlSZWxlYXNlIiwKKyAgICAgICAgICAgICAgICAiSW5zZXJ0QnlLZXkiCisgICAgICAgICAgICBd
CisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJLZXlib2FyZEludGVy
YWN0aW9uIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiQSBzaW5nbGUgc3RlcCBpbiBhIGtleSBzZXF1ZW5jZS4gQSBzdGVwIGNhbiBj
b250YWluIGEga2V5IHVwL2Rvd24gb2YgYSB2aXJ0dWFsIGtleSwgb3IgYSBzZXF1ZW5jZSBvZiBV
bmljb2RlIGNvZGUgcG9pbnRzIHRoYXQgYXJlIGRlbGl2ZXJlZCB0byB0aGUgcGFnZSBhdCBncmFw
aGVtZSBjbHVzdGVyIGJvdW5kYXJpZXMuIEVpdGhlciBhICdrZXknIG9yICd0ZXh0JyBwcm9wZXJ0
eSBtdXN0IGJlIHNwZWNpZmllZC4iLAorICAgICAgICAgICAgInByb3BlcnRpZXMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ0eXBlIiwgIiRyZWYiOiAiS2V5Ym9hcmRJbnRlcmFjdGlv
blR5cGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHR5cGUgb2YgaW50ZXJhY3Rpb24gdG8gYmUgcGVy
Zm9ybWVkIGJ5IGEgc3RlcC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJrZXkiLCAi
JHJlZiI6ICJWaXJ0dWFsS2V5IiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIkEg
dmlydHVhbCBrZXkgdG8gYmUgdXNlZCB0byBwZXJmb3JtIHRoZSBzcGVjaWZpZWQgaW50ZXJhY3Rp
b24uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidGV4dCIsICJ0eXBlIjogInN0cmlu
ZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJBIHVuaWNvZGUgc3RyaW5nIHRv
IGJlIGRlbGl2ZXJlZCB0byB0aGUgcGFnZS4gVGhlIHNlcXVlbmNlIG9mIGtleSBldmVudHMgaXMg
ZGV0ZXJtaW5lZCBieSBzcGxpdHRpbmcgdGhlIHN0cmluZyBhdCBncmFwaGVtZSBjbHVzdGVyIGJv
dW5kYXJpZXMuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAg
ICAgICAgICJpZCI6ICJDb29raWUiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAg
ICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAibmFt
ZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJDb29raWUgbmFtZS4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ2YWx1ZSIsICJ0eXBlIjogInN0cmluZyIsICJkZXNj
cmlwdGlvbiI6ICJDb29raWUgdmFsdWUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
ZG9tYWluIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIkNvb2tpZSBkb21haW4u
IElmIGVtcHR5LCB0aGUgZG9tYWluIGlzIGluaGVyaXRlZCBmcm9tIHRoZSByZWxldmFudCBicm93
c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInBhdGgiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQ29va2llIHBhdGguIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiZXhwaXJlcyIsICJ0eXBlIjogIm51bWJlciIsICJkZXNjcmlwdGlv
biI6ICJDb29raWUgZXhwaXJhdGlvbiBpbiBzZWNvbmRzIHNpbmNlIHRoZSBVTklYIGVwb2NoLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAidHlwZSI6ICJpbnRlZ2VyIiwg
ImRlc2NyaXB0aW9uIjogIkNvb2tpZSBzaXplLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImh0dHBPbmx5IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlm
IGNvb2tpZSBpcyBodHRwLW9ubHkuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vj
dXJlIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUcnVlIGlmIGNvb2tpZSBp
cyBzZWN1cmUuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2Vzc2lvbiIsICJ0eXBl
IjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVHJ1ZSBpbiBjYXNlIG9mIHNlc3Npb24gY29v
a2llLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9CisgICAgXSwKKyAgICAiY29tbWFuZHMi
OiBbCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImdldEJyb3dzaW5nQ29udGV4dHMi
LAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkZldGNoZXMgaW5mb3JtYXRpb24gYWJvdXQg
YWxsIG9wZW4gYnJvd3NpbmcgY29udGV4dHMgKHdpbmRvd3MgYW5kIHRhYnMpIGluIHRoZSBhdXRv
bWF0aW9uIHNlc3Npb24uIiwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiY29udGV4dHMiLCAidHlwZSI6ICJhcnJheSIsICJpdGVtcyI6IHsgIiRy
ZWYiOiAiQnJvd3NpbmdDb250ZXh0IiB9LCAiZGVzY3JpcHRpb24iOiAiQWxsIGtub3duIGJyb3dz
aW5nIGNvbnRleHRzIGF2YWlsYWJsZSB0byB0aGUgc2Vzc2lvbi4iIH0KKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZ2V0QnJvd3NpbmdD
b250ZXh0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJGZXRjaGVzIGluZm9ybWF0aW9u
IGFib3V0IHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBh
cmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6
ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3Ig
dGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJl
dHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb250ZXh0IiwgIiRyZWYiOiAi
QnJvd3NpbmdDb250ZXh0IiwgImRlc2NyaXB0aW9uIjogIlRoZSBicm93c2luZyBjb250ZXh0IGF2
YWlsYWJsZSB0byB0aGUgc2Vzc2lvbi4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiY3JlYXRlQnJvd3NpbmdDb250ZXh0IiwKKyAg
ICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJPcGVucyBhIG5ldyBicm93c2luZyBjb250ZXh0IGlu
IHRoZSBhdXRvbWF0aW9uIHNlc3Npb24gYW5kIG1ha2VzIGl0IHRoZSBhY3RpdmUgYnJvd3Npbmcg
Y29udGV4dCBmb3IgdXNlciBpbnRlcmFjdGlvbi4gVGhpcyBjb21tYW5kIGNyZWF0ZXMgYSBicm93
c2luZyBjb250ZXh0IGluIGEgbmV3IHdpbmRvdyByYXRoZXIgdGhhbiBhZGRpbmcgYSB0YWIgdG8g
YW4gZXhpc3Rpbmcgd2luZG93LiIsCisgICAgICAgICAgICAicmV0dXJucyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICJkZXNjcmlwdGlvbiI6ICJBbiBvcGFxdWUgaGFuZGxlIGZvciB0aGUgbmV3bHkgY3JlYXRl
ZCBicm93c2luZyBjb250ZXh0LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJjbG9zZUJyb3dzaW5nQ29udGV4dCIsCisgICAgICAg
ICAgICAiZGVzY3JpcHRpb24iOiAiVHJ5IHRvIGNsb3NlIHRoZSBzcGVjaWZpZWQgYnJvd3Npbmcg
Y29udGV4dC4gVGhpcyBjYW4gdHJpZ2dlciBhbiB1bmxvYWQgcHJvbXB0IGFuZCB0aGVyZWFmdGVy
IHN1Y2NlZWQgb3IgZmFpbC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQg
dGhhdCBzaG91bGQgYmUgY2xvc2VkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dCIsCisg
ICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWN0aXZhdGVzIHRoZSBzcGVjaWZpZWQgYnJvd3Np
bmcgY29udGV4dCBhbmQgb3B0aW9uYWwgZnJhbWUsIHdoaWNoIGdpdmVzIHRoZW0gZm9jdXMgKGNh
dXNpbmcgdGhlICdmb2N1cycgRE9NIGV2ZW50IHRvIGZpcmUsIGFuZCAnYmx1cicgRE9NIGV2ZW50
IHRvIGZpcmUgZm9yIHRoZSBwcmV2aW91cyBicm93c2luZyBjb250ZXh0IGFuZCBmcmFtZSkuIiwK
KyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQg
c2hvdWxkIGJlIG1hZGUgZm9jdXNlZC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJm
cmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1lSGFuZGxlIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IHNob3VsZCBiZSBmb2N1
c2VkLiBEZWZhdWx0cyB0byB0aGUgbWFpbiBmcmFtZSBpZiBvbWl0dGVkLiIgfQorICAgICAgICAg
ICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJuYXZpZ2F0
ZUJyb3dzaW5nQ29udGV4dCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTmF2aWdhdGVz
IGEgYnJvd3NpbmcgY29udGV4dCB0byBhIHNwZWNpZmllZCBVUkwuIiwKKyAgICAgICAgICAgICJw
YXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYi
OiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIG5hdmlnYXRlZC4iIH0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJ1cmwiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiVGhlIFVSTCB0byBsb2FkIGluIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQorICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAiZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQiLAorICAgICAg
ICAgICAgImRlc2NyaXB0aW9uIjogIk5hdmlnYXRlcyBhIGJyb3dzaW5nIGNvbnRleHQgdG8gZ28g
YmFjayBvbmUgcGFnZSBpbiBoaXN0b3J5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29u
dGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3Npbmcg
Y29udGV4dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQuIiB9CisgICAgICAgICAgICBdLAorICAg
ICAgICAgICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJnb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4dCIsCisgICAgICAgICAgICAiZGVz
Y3JpcHRpb24iOiAiTmF2aWdhdGVzIGEgYnJvd3NpbmcgY29udGV4dCB0byBnb3QgZm9yd2FyZCBv
bmUgcGFnZSBpbiBoaXN0b3J5LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dCB0aGF0IHNob3VsZCBiZSBuYXZpZ2F0ZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAg
ICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJyZWxvYWRCcm93c2luZ0NvbnRleHQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjog
IlJlbG9hZHMgdGhlIGN1cnJlbnQgcGFnZSBpbiBhIGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxl
IiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBo
YW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIHJlbG9hZGVkLiIg
fQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwK
KyNpZiAhZGVmaW5lZChQTEFURk9STV9JT1MpIHx8ICFQTEFURk9STV9JT1MKKyAgICAgICAgewor
ICAgICAgICAgICAgIm5hbWUiOiAicmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQiLAorICAg
ICAgICAgICAgImRlc2NyaXB0aW9uIjogIlJlc2l6ZXMgdGhlIHdpbmRvdyBvZiB0aGUgc3BlY2lm
aWVkIGJyb3dzaW5nIGNvbnRleHQgdG8gdGhlIHNwZWNpZmllZCBzaXplLiIsCisgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIk
cmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxl
IGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byBiZSByZXNpemVkLiIgfSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJTaXplIiwgImRlc2NyaXB0aW9uIjogIlRo
ZSBuZXcgc2l6ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQncyB3aW5kb3cuIiB9CisgICAgICAg
ICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogIm1vdmVX
aW5kb3dPZkJyb3dzaW5nQ29udGV4dCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiTW92
ZXMgdGhlIHdpbmRvdyBvZiB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdG8gdGhlIHNw
ZWNpZmllZCBwb3NpdGlvbi4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5k
bGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQg
dG8gYmUgbW92ZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3JpZ2luIiwgIiRy
ZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBvcmlnaW4gZm9yIHRoZSBicm93
c2luZyBjb250ZXh0J3Mgd2luZG93LiBUaGUgcG9zaXRpb24gaXMgaW50ZXJwcmV0ZWQgaW4gc2Ny
ZWVuIGNvb3JkaW5hdGUgc3BhY2UsIHJlbGF0aXZlIHRvIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBv
ZiB0aGUgc2NyZWVuLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7Cisg
ICAgICAgICAgICAibmFtZSI6ICJpbnNwZWN0QnJvd3NpbmdDb250ZXh0IiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJJbnNwZWN0IHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dCB1
c2luZyBXZWIgSW5zcGVjdG9yLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dCB0aGF0IHNob3VsZCBiZSBpbnNwZWN0ZWQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiZW5hYmxlQXV0b0NhcHR1cmluZyIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhpcyBvcHRpb24gaXMgcHJlc2VudCBhbmQgc2V0IHRv
IHRydWUsIHRoZSBXZWIgSW5zcGVjdG9yIHdpbGwgYXV0b21hdGljYWxseSBzdGFydCBhIHRpbWVs
aW5lIHJlY29yZGluZyBvZiB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgb25jZSBpdCBp
cyBhdHRhY2hlZC4gTm90ZSB0aGF0IHRoaXMgZGlzYWJsZXMgdGhlIGRlYnVnZ2VyIGZvciB0aGUg
ZHVyYXRpb24gb2YgdGhlIHJlY29yZGluZy4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisjZW5kaWYgLy8gIVBMQVRGT1JNX0lPUworICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbiIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiRXZhbHVhdGVzIGEgc2NyaXB0IGZ1bmN0aW9u
IGluIGEgYnJvd3NpbmcgY29udGV4dCBhbmQgY2FsbHMgaXQgd2l0aCB0aGUgc3VwcGxpZWQgYXJn
dW1lbnRzLiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4
dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29u
dGV4dCB0aGUgc2NyaXB0IHNob3VsZCBiZSBldmFsdWF0ZWQuIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIsICJvcHRpb25h
bCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgZnJhbWUgdGhlIHNj
cmlwdCBzaG91bGQgYmUgZXZhbHVhdGVkLiBUaGUgbWFpbiBmcmFtZSBpcyB1c2VkIGlmIHRoaXMg
cGFyYW1ldGVyIGVtcHR5IHN0cmluZyBvciBleGNsdWRlZC4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJmdW5jdGlvbiIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgc2NyaXB0IHRvIGV2YWx1YXRlIGluIHRoZSBicm93c2luZyBjb250ZXh0LiBJdCBtdXN0IGJl
IGEgZnVuY3Rpb24gcmVzdWx0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImFyZ3Vt
ZW50cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAidHlwZSI6ICJzdHJpbmciIH0sICJk
ZXNjcmlwdGlvbiI6ICJUaGUgYXJndW1lbnRzIHRvIHBhc3MgdG8gdGhlIGZ1bmN0aW9uIHdoZW4g
Y2FsbGVkLiBUaGV5IHdpbGwgYmUgcGFyc2VkIGFzIEpTT04gYmVmb3JlIGNhbGxpbmcgdGhlIGZ1
bmN0aW9uLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImV4cGVjdHNJbXBsaWNpdENh
bGxiYWNrQXJndW1lbnQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRl
c2NyaXB0aW9uIjogIlRoZSBmdW5jdGlvbiBleHBlY3RzIGEgY2FsbGJhY2sgZnVuY3Rpb24gYXMg
dGhlIGxhc3QgYXJndW1lbnQuIEl0IGlzIGV4cGVjdGVkIHRvIGNhbGwgdGhpcyBjYWxsYmFjayB3
aXRoIGEgcmVzdWx0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNhbGxiYWNrVGlt
ZW91dCIsICJ0eXBlIjogImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24i
OiAiVGhlIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzIHRoYXQgdGhlIGltcGxpY2l0IGNhbGxiYWNr
IGlzIGV4cGVjdGVkIHRvIGJlIGNhbGxlZCBpbiwgb3RoZXJ3aXNlIGEgPGNvZGU+SmF2YVNjcmlw
dFRpbWVvdXQ8L2NvZGU+IGVycm9yIGlzIHJldHVybmVkLiIgfQorICAgICAgICAgICAgXSwKKyAg
ICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSByZXN1bHQgcmV0dXJuZWQg
YnkgdGhlIGNhbGxlZCBmdW5jdGlvbi4gSXQgaXMgSlNPTiBlbmNvZGVkIGFmdGVyIHRoZSBmdW5j
dGlvbiByZXR1cm5zIG9yIGNhbGxzIHRoZSBjYWxsYmFjay4iIH0KKyAgICAgICAgICAgIF0sCisg
ICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogInBlcmZvcm1Nb3VzZUludGVyYWN0aW9uIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJTaW11bGF0ZXMgaW50ZXJhY3Rpb24gd2l0aCBhIG1vdXNlIGN1cnNvci4iLAor
ICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJo
YW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAi
VGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUgaW50ZXJhY3RlZCB3aXRoLiIgfSwKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogInBvc2l0aW9uIiwgIiRyZWYiOiAiUG9pbnQiLCAiZGVzY3JpcHRp
b24iOiAiVGhlIHJlcXVlc3RlZCBwb3NpdGlvbiBmb3IgdGhlIG1vdXNlIGN1cnNvciwgc3BlY2lm
aWVkIGluIHZpZXdwb3J0IGNvb3JkaW5hdGVzLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1l
IjogImJ1dHRvbiIsICIkcmVmIjogIk1vdXNlQnV0dG9uIiwgImRlc2NyaXB0aW9uIjogIlRoZSBi
dXR0b24gdG8gdXNlIHRvIHBlcmZvcm0gdGhlIGludGVyYWN0aW9uLiBUaGlzIHBhcmFtZXRlciBv
bmx5IGhhcyBhbiBlZmZlY3QgZm9yIHRoZSA8Y29kZT5Eb3duPC9jb2RlPiwgPGNvZGU+VXA8L2Nv
ZGU+LCA8Y29kZT5DbGljazwvY29kZT4sIGFuZCA8Y29kZT5Eb3VibGVDbGljazwvY29kZT4gbW91
c2UgaW50ZXJhY3Rpb25zLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImludGVyYWN0
aW9uIiwgIiRyZWYiOiAiTW91c2VJbnRlcmFjdGlvbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdHlw
ZSBvZiBpbnRlcmFjdGlvbiB0byBiZSBwZXJmb3JtZWQgd2l0aCB0aGUgbW91c2UgY3Vyc29yLiIg
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1vZGlmaWVycyIsICJ0eXBlIjogImFycmF5
IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJLZXlNb2RpZmllciIgfSwgImRlc2NyaXB0aW9uIjogIktl
eSBtb2RpZmllcnMgdG8gYmUgYWN0aXZlIGR1cmluZyB0aGUgbW91c2UgaW50ZXJhY3Rpb24uIiB9
CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJwb3NpdGlvbiIsICIkcmVmIjogIlBvaW50IiwgImRlc2NyaXB0aW9uIjog
IlRoZSB1cGRhdGVkIHBvc2l0aW9uIG9mIHRoZSBtb3VzZSBjdXJzb3IsIHNwZWNpZmllZCBpbiB2
aWV3cG9ydCBjb29yZGluYXRlcy4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zIiwK
KyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTaW11bGF0ZXMgZGVsaXZlcmluZyB0aGUgcmVz
dWx0cyBvZiBwcmVzc2luZyBvbmUgb3IgbW9yZSBrZXlib2FyZCBrZXlzIHRvZ2V0aGVyIG9yIHN1
Y2Nlc3NpdmVseS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgd2hpY2gg
c2hvdWxkIHJlY2VpdmUga2V5LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImludGVy
YWN0aW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJLZXlib2FyZElu
dGVyYWN0aW9uIiB9LCAiZGVzY3JpcHRpb24iOiAiQW4gb3JkZXJlZCBsaXN0IG9mIGtleSBzZXF1
ZW5jZXMgdG8gYmUgZGVsaXZlcmVkIHVzaW5nIG5hdGl2ZSBrZXkgZXZlbnRzLiIgfQorICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAidGFrZVNjcmVlbnNob3QiLAorICAgICAgICAgICAgImRl
c2NyaXB0aW9uIjogIlRha2UgYSBzY3JlZW5zaG90IG9mIHRoZSBjdXJyZW50IHBhZ2UgaW4gYSBi
cm93c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0
byB0YWtlIGEgc2NyZWVuc2hvdCBvZi4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAi
cmV0dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImRhdGEiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiQmFzZTY0LWVuY29kZWQgaW1hZ2UgZGF0YSAoUE5HKS4i
IH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlc29sdmVDaGlsZEZyYW1lSGFuZGxl
IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZXRlcm1pbmVzIHRoZSA8Y29kZT5GcmFt
ZUhhbmRsZTwvY29kZT4gYmFzZWQgb24gdGhlIG9yZGluYWwsIG5hbWUgb3Igbm9kZSBoYW5kbGUg
b2YgYSBjaGlsZCBmcmFtZS4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJy
b3dzaW5nIGNvbnRleHQgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgZnJhbWUuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRs
ZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUg
ZnJhbWUgaW4gd2hpY2ggdG8gc2VhcmNoIGZvciB0aGUgZnJhbWUuIFRoZSBtYWluIGZyYW1lIGlz
IHVzZWQgaWYgdGhpcyBwYXJhbWV0ZXIgZW1wdHkgc3RyaW5nIG9yIGV4Y2x1ZGVkLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogIm9yZGluYWwiLCAidHlwZSI6ICJpbnRlZ2VyIiwgIm9w
dGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBvcmRpbmFsIG9mIHRoZSBjaGlsZCBm
cmFtZSB0byByZXNvbHZlIGFzIGEgPGNvZGU+RnJhbWVIYW5kbGU8L2NvZGU+LiBUaGlzIGlzIGFu
YWxvZ291cyB0byAnd2luZG93LmZyYW1lc1tvcmRpbmFsXScgaW4gSmF2YVNjcmlwdC4iIH0sCisg
ICAgICAgICAgICAgICAgeyAibmFtZSI6ICJuYW1lIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBuYW1lIG9mIHRoZSBjaGlsZCBmcmFtZSB0
byByZXNvbHZlIGFzIGEgPGNvZGU+RnJhbWVIYW5kbGU8L2NvZGU+LiBUaGlzIGlzIGFuYWxvZ291
cyB0byAnd2luZG93LmZyYW1lc1tuYW1lXScgaW4gSmF2YVNjcmlwdC4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJub2RlSGFuZGxlIiwgIiRyZWYiOiAiTm9kZUhhbmRsZSIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIG9mIHRoZSBjaGlsZCBmcmFt
ZSBvd25lciBlbGVtZW50IHRvIHJlc29sdmUgYXMgYSA8Y29kZT5GcmFtZUhhbmRsZTwvY29kZT4u
IiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVybnMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJyZXN1bHQiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgPGNvZGU+RnJhbWVIYW5kbGU8L2NvZGU+IGZvciB0aGUgcmVxdWVzdGVkIGZy
YW1lLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3luYyI6IHRydWUKKyAgICAg
ICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVzb2x2ZVBhcmVudEZyYW1l
SGFuZGxlIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZXRlcm1pbmVzIHRoZSA8Y29k
ZT5GcmFtZUhhbmRsZTwvY29kZT4gZm9yIHRoZSBwYXJlbnQgZnJhbWUgb2YgdGhlIHN1cHBsaWVk
IDxjb2RlPkZyYW1lSGFuZGxlPC9jb2RlPi4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBb
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJl
ZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBm
b3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdGhlIGZyYW1lIGlzIGxvY2F0ZWQuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiZnJhbWVIYW5kbGUiLCAiJHJlZiI6ICJGcmFtZUhhbmRsZSIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgZnJhbWUgdGhhdCBzaG91bGQgcmVz
b2x2ZSBpdHMgcGFyZW50IGZyYW1lLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJy
ZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVzdWx0IiwgIiRyZWYiOiAi
RnJhbWVIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIDxjb2RlPkZyYW1lSGFuZGxlPC9jb2Rl
PiBmb3IgdGhlIHJlcXVlc3RlZCBmcmFtZS4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAg
ICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1l
IjogImNvbXB1dGVFbGVtZW50TGF5b3V0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJD
b21wdXRlcyB0aGUgbGF5b3V0IGZvciBhbiBlbGVtZW50LiIsCisgICAgICAgICAgICAicGFyYW1l
dGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
aGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGUgZnJhbWUgaXMgbG9jYXRlZC4iIH0s
CisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJmcmFtZUhhbmRsZSIsICIkcmVmIjogIkZyYW1l
SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBmcmFtZSB0aGF0IGNv
bnRhaW5zIHRoZSBlbGVtZW50LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm5vZGVI
YW5kbGUiLCAiJHJlZiI6ICJOb2RlSGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUg
b2YgdGhlIGVsZW1lbnQgdG8gdXNlLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNj
cm9sbEludG9WaWV3SWZOZWVkZWQiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlwZSI6ICJib29sZWFu
IiwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBlbGVtZW50IHNob3VsZCBiZSBzY3JvbGxlZCBpbnRv
IHZpZXcgYmVmb3JlIGNvbXB1dGluZyBpdHMgbGF5b3V0LiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogInVzZVZpZXdwb3J0Q29vcmRpbmF0ZXMiLCAib3B0aW9uYWwiOiB0cnVlLCAidHlw
ZSI6ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHRoZSByZXN1bHQgY29vcmRpbmF0ZXMg
c2hvdWxkIGJlIHJlcHJlc2VudGVkIGFzIHZpZXdwb3J0IGNvb3JkaW5hdGVzIG9yIG5vdC4gRGVm
YXVsdHMgdG8gZmFsc2UsIHdoaWNoIG1lYW5zIGNvb3JkaW5hdGVzIHNob3VsZCBiZSByZXByZXNl
bnRlZCBhcyBwYWdlIGNvb3JkaW5hdGVzLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAg
ICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAicmVjdCIsICIkcmVmIjog
IlJlY3QiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGxheW91dCByZWN0IGZvciB0aGUgcmVxdWVzdGVk
IGVsZW1lbnQuIFNwZWNpZmllZCBpbiBwYWdlIG9yIHZpZXdwb3J0IGNvb3JkaW5hdGVzIGJhc2Vk
IG9uIHRoZSB1c2VWaWV3cG9ydENvb3JkaW5hdGVzIHBhcmFtZXRlci4iIH0KKyAgICAgICAgICAg
IF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisgICAgICAgIH0sCisgICAgICAgIHsKKyAg
ICAgICAgICAgICJuYW1lIjogImlzU2hvd2luZ0phdmFTY3JpcHREaWFsb2ciLAorICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIkNoZWNrcyBpZiBhIGJyb3dzaW5nIGNvbnRleHQgaXMgc2hvd2lu
ZyBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21wdCBkaWFsb2cuIiwKKyAgICAg
ICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2Ny
aXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQorICAgICAg
ICAgICAgXSwKKyAgICAgICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAicmVzdWx0IiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUg
YnJvd3NpbmcgY29udGV4dCBpcyBzaG93aW5nIGEgSmF2YVNjcmlwdCBkaWFsb2cgb3Igbm90LiIg
fQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJkaXNtaXNzQ3VycmVudEphdmFTY3JpcHREaWFsb2ciLAorICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkRpc21pc3NlcyBhIEphdmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21w
dCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcgaW4gYSBicm93c2luZyBjb250ZXh0LiBFcXVpdmFs
ZW50IHRvIGNsaWNraW5nIHRoZSAnQ2FuY2VsJyBidXR0b24uIiwKKyAgICAgICAgICAgICJwYXJh
bWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFu
ZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRo
ZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhY2NlcHRDdXJyZW50SmF2
YVNjcmlwdERpYWxvZyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWNjZXB0cyBhIEph
dmFTY3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dp
bmcgaW4gYSBicm93c2luZyBjb250ZXh0LiBFcXVpdmFsZW50IHRvIGNsaWNraW5nIHRoZSAnT0sn
IGJ1dHRvbi4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAg
ICAgICJuYW1lIjogIm1lc3NhZ2VPZkN1cnJlbnRKYXZhU2NyaXB0RGlhbG9nIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJSZXR1cm5zIHRoZSB0ZXh0IGRpc3BsYXllZCBpbiBhIEphdmFT
Y3JpcHQgYWxlcnQsIGNvbmZpcm0sIG9yIHByb21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dpbmcg
aW4gYSBicm93c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjog
IkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0
aGUgYnJvd3NpbmcgY29udGV4dC4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0
dXJucyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogIm1lc3NhZ2UiLCAidHlwZSI6ICJz
dHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGV4dCBiZWluZyBkaXNwbGF5ZWQgaW4gdGhlIGN1cnJl
bnQgSmF2YVNjcmlwdCBkaWFsb2cuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNldFVzZXJJbnB1dEZvckN1cnJlbnRKYXZhU2Ny
aXB0UHJvbXB0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJTZXRzIHRoZSB1c2VyIGVu
dGVyZWQgdmFsdWUgaW4gYSBKYXZhU2NyaXB0IHByb21wdCBkaWFsb2cgY3VycmVudGx5IHNob3dp
bmcgaW4gYSBicm93c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1
c2VySW5wdXQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHRleHQgdG8g
ZW50ZXIgaW4gdGhlIHByb21wdC4iIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZ2V0QWxsQ29va2llcyIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUmV0dXJucyBhbGwgY29va2llcyB2aXNpYmxlIHRvIHRoZSBzcGVjaWZp
ZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJC
cm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhl
IGJyb3dzaW5nIGNvbnRleHQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJldHVy
bnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjb29raWVzIiwgInR5cGUiOiAiYXJy
YXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIkNvb2tpZSIgfSwgImRlc2NyaXB0aW9uIjogIkFycmF5
IG9mIGNvb2tpZSBvYmplY3RzLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAgICAgICJhc3lu
YyI6IHRydWUKKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAiZGVs
ZXRlU2luZ2xlQ29va2llIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJEZWxldGVzIGEg
Y29va2llIHdpdGggdGhlIGdpdmVuIG5hbWUgaWYgdmlzaWJsZSB0byB0aGUgc3BlY2lmaWVkIGJy
b3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3Np
bmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93
c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNvb2tpZU5hbWUi
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiTmFtZSBvZiB0aGUgY29va2llIHRv
IHJlbW92ZS4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAiYXN5bmMiOiB0cnVlCisg
ICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogImFkZFNpbmdsZUNvb2tp
ZSIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWRkIGEgY29va2llIHRvIGNvb2tpZSBz
dG9yYWdlIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAg
ICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250
ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNvb2tpZSIsICIkcmVmIjogIkNvb2tpZSIsICJkZXNjcmlwdGlvbiI6
ICJUaGUgY29va2llIHRoYXQgc2hvdWxkIGJlIGFkZGVkIHRvIHN0b3JhZ2UuIiB9CisgICAgICAg
ICAgICBdLAorICAgICAgICAgICAgImFzeW5jIjogdHJ1ZQorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJkZWxldGVBbGxDb29raWVzIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJEZWxldGUgYWxsIGNvb2tpZXMgdGhhdCBhcmUgdmlzaWJsZSB0byB0aGUg
c3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQuIiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjog
WworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRy
ZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUg
Zm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9Cisg
ICAgXQorfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDI3YjFmMTYwZDhmNzhmN2VhZjU1
ZGQxZDgzM2E3ZDEyZWQ5Nzk2YTEuLmUxZjAwYzVlOTRiNTk1NGI5ZGFjMjEwMmZjMTg0YmFhMTc0
MmExOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lu
Y2x1ZGUgIkFQSUF1dG9tYXRpb25TZXNzaW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiQXV0b21hdGlv
blByb3RvY29sT2JqZWN0cy5oIgorI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9z
LmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvb2tp
ZU1hbmFnZXJQcm94eS5oIgpAQCAtNDQsMzIgKzQ1LDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIElu
c3BlY3RvcjsKIAotc3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yTmFtZUFuZERldGFpbHNT
ZXBhcmF0b3IgPSAiOyI7Ci0KLS8vIE1ha2Ugc3VyZSB0aGUgcHJlZGVmaW5lZCBlcnJvciBuYW1l
IGlzIHZhbGlkLCBvdGhlcndpc2UgdXNlIEludGVybmFsRXJyb3IuCi0jZGVmaW5lIFZBTElEQVRF
RF9FUlJPUl9NRVNTQUdFKGVycm9yU3RyaW5nKSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uSGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZT4oZXJyb3JTdHJpbmcpLnZhbHVlT3IoSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpJbnRlcm5hbEVycm9yKQotCi0v
LyBJZiB0aGUgZXJyb3IgbmFtZSBpcyBpbmNvcnJlY3QgZm9yIHRoZXNlIG1hY3JvcywgaXQgd2ls
bCBiZSBhIGNvbXBpbGUtdGltZSBlcnJvci4KLSNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVE
X0VSUk9SX05BTUUoZXJyb3JOYW1lKSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVs
cGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6RXJyb3JNZXNzYWdlOjplcnJvck5hbWUpCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5F
RF9FUlJPUl9OQU1FX0FORF9ERVRBSUxTKGVycm9yTmFtZSwgZGV0YWlsc1N0cmluZykgbWFrZVN0
cmluZyhJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0
YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpl
cnJvck5hbWUpLCBlcnJvck5hbWVBbmREZXRhaWxzU2VwYXJhdG9yLCBkZXRhaWxzU3RyaW5nKQot
Ci0vLyBJZiB0aGUgZXJyb3IgbWVzc2FnZSBpcyBub3QgYSBwcmVkZWZpbmVkIGVycm9yLCBJbnRl
cm5hbEVycm9yIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLgotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURF
RklORURfRVJST1JfTUVTU0FHRShlcnJvck1lc3NhZ2UpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShWQUxJREFURURfRVJST1JfTUVT
U0FHRShlcnJvck1lc3NhZ2UpKQotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1Jf
TUVTU0FHRV9BTkRfREVUQUlMUyhlcnJvck1lc3NhZ2UsIGRldGFpbHNTdHJpbmcpIG1ha2VTdHJp
bmcoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFu
dFZhbHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkpLCBlcnJvck5hbWVB
bmREZXRhaWxzU2VwYXJhdG9yLCBkZXRhaWxzU3RyaW5nKQotCi0vLyBDb252ZW5pZW5jZSBtYWNy
b3MgZm9yIGZpbGxpbmcgaW4gdGhlIGVycm9yIHN0cmluZyBvZiBzeW5jaHJvbm91cyBjb21tYW5k
cyBpbiBiYWlsb3V0IGJyYW5jaGVzLgotI2RlZmluZSBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihlcnJvck5hbWUpIFwKLWRvIHsgXAotICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZPUl9QUkVE
RUZJTkVEX0VSUk9SX05BTUUoZXJyb3JOYW1lKTsgXAotICAgIHJldHVybjsgXAotfSB3aGlsZSAo
ZmFsc2UpCi0KLSNkZWZpbmUgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
ZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKSBcCi1kbyB7IFwKLSAgICBlcnJvclN0cmluZyA9IFNU
UklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FX0FORF9ERVRBSUxTKGVycm9yTmFtZSwgZGV0
YWlsc1N0cmluZyk7IFwKLSAgICByZXR1cm47IFwKLX0gd2hpbGUgKGZhbHNlKQotCiBuYW1lc3Bh
Y2UgV2ViS2l0IHsKIAogV2ViQXV0b21hdGlvblNlc3Npb246OldlYkF1dG9tYXRpb25TZXNzaW9u
KCkKQEAgLTIzNyw2ICsyMTIsOCBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6QnJvd3NpbmdDb250ZXh0PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YgogICAgICAgICAu
cmVsZWFzZSgpOwogfQogCisvLyBQbGF0Zm9ybS1pbmRlcGVuZGVudCBDb21tYW5kcy4KKwogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QnJvd3NpbmdDb250ZXh0cyhJbnNwZWN0b3I6OkVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5
PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+JiBjb250
ZXh0cykKIHsKICAgICBjb250ZXh0cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD46OmNyZWF0ZSgpOwpA
QCAtMzAzLDgwICsyODAsNiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzd2l0Y2hUb0Jy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvcgogICAgIHBhZ2UtPnBy
b2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5OjpGb2N1c0Zy
YW1lKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCkpLCAwKTsKIH0KIAotdm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6cmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJ
bnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZU9iamVjdCkKLXsKLSAgICBmbG9hdCB3aWR0
aDsKLSAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJ3aWR0
aCIpLCB3aWR0aCkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRB
SUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3dpZHRoJyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3Vu
ZCBvciBpbnZhbGlkLiIpOwotCi0gICAgZmxvYXQgaGVpZ2h0OwotICAgIGlmICghc2l6ZU9iamVj
dC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoImhlaWdodCIpLCBoZWlnaHQpKQotICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVy
LCAiVGhlICdoZWlnaHQnIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7Ci0K
LSAgICBpZiAod2lkdGggPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9B
TkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd3aWR0aCcgcGFyYW1ldGVyIGhhZCBh
biBpbnZhbGlkIHZhbHVlLiIpOwotCi0gICAgaWYgKGhlaWdodCA8IDApCi0gICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUg
J2hlaWdodCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVlLiIpOwotCi0gICAgV2ViUGFn
ZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7Ci0gICAgaWYgKCFw
YWdlKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7
Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3JpZ2luYWxGcmFtZTsKLSAgICBwYWdlLT5nZXRX
aW5kb3dGcmFtZShvcmlnaW5hbEZyYW1lKTsKLQotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBuZXdG
cmFtZSA9IFdlYkNvcmU6OkZsb2F0UmVjdChvcmlnaW5hbEZyYW1lLmxvY2F0aW9uKCksIFdlYkNv
cmU6OkZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7Ci0gICAgaWYgKG5ld0ZyYW1lID09IG9yaWdp
bmFsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPnNldFdpbmRvd0ZyYW1lKG5l
d0ZyYW1lKTsKLQotICAgIC8vIElmIG5vdGhpbmcgY2hhbmdlZCBhdCBhbGwsIGl0J3MgcHJvYmFi
bHkgZmFpciB0byByZXBvcnQgdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZy4KLSAgICAvLyAoV2Ug
Y2FuJ3QgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFtZSBzaXplIHdpbGwgYmUgaG9ub3Jl
ZCBleGFjdGx5LCBob3dldmVyLikKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdXBkYXRlZEZyYW1l
OwotICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKHVwZGF0ZWRGcmFtZSk7Ci0gICAgaWYgKG9yaWdp
bmFsRnJhbWUgPT0gdXBkYXRlZEZyYW1lKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUl9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAiVGhlIHdpbmRvdyBzaXplIHdhcyBleHBl
Y3RlZCB0byBoYXZlIGNoYW5nZWQsIGJ1dCBkaWQgbm90LiIpOwotfQotCi12b2lkIFdlYkF1dG9t
YXRpb25TZXNzaW9uOjptb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJv
clN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb25PYmplY3QpCi17Ci0gICAgZmxvYXQgeDsKLSAg
ICBpZiAoIXBvc2l0aW9uT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgieCIpLCB4
KSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2lu
Z1BhcmFtZXRlciwgIlRoZSAneCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4i
KTsKLQotICAgIGZsb2F0IHk7Ci0gICAgaWYgKCFwb3NpdGlvbk9iamVjdC5nZXREb3VibGUoV1RG
OjpBU0NJSUxpdGVyYWwoInkiKSwgeSkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3knIHBhcmFtZXRlciB3YXMg
bm90IGZvdW5kIG9yIGludmFsaWQuIik7Ci0KLSAgICBpZiAoeCA8IDApCi0gICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUg
J3gnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIGlmICh5IDwgMCkK
LSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBh
cmFtZXRlciwgIlRoZSAneScgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVlLiIpOwotCi0g
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3JpZ2luYWxGcmFtZTsKLSAgICBw
YWdlLT5nZXRXaW5kb3dGcmFtZShvcmlnaW5hbEZyYW1lKTsKLQotICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCBuZXdGcmFtZSA9IFdlYkNvcmU6OkZsb2F0UmVjdChXZWJDb3JlOjpGbG9hdFBvaW50KHgs
IHkpLCBvcmlnaW5hbEZyYW1lLnNpemUoKSk7Ci0gICAgaWYgKG5ld0ZyYW1lID09IG9yaWdpbmFs
RnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPnNldFdpbmRvd0ZyYW1lKG5ld0Zy
YW1lKTsKLQotICAgIC8vIElmIG5vdGhpbmcgY2hhbmdlZCBhdCBhbGwsIGl0J3MgcHJvYmFibHkg
ZmFpciB0byByZXBvcnQgdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZy4KLSAgICAvLyAoV2UgY2Fu
J3QgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFtZSBzaXplIHdpbGwgYmUgaG9ub3JlZCBl
eGFjdGx5LCBob3dldmVyLikKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdXBkYXRlZEZyYW1lOwot
ICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKHVwZGF0ZWRGcmFtZSk7Ci0gICAgaWYgKG9yaWdpbmFs
RnJhbWUgPT0gdXBkYXRlZEZyYW1lKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
Ul9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAiVGhlIHdpbmRvdyBwb3NpdGlvbiB3YXMgZXhw
ZWN0ZWQgdG8gaGF2ZSBjaGFuZ2VkLCBidXQgZGlkIG5vdC4iKTsKLX0KLQogdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGVCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJpbmcmIHVy
bCwgUmVmPE5hdmlnYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2spCiB7CiAg
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7CkBA
IC00MzEsMjcgKzMzNCw2IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJlbG9hZEJyb3dz
aW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0CiAgICAgcGFnZS0+cmVs
b2FkKHJlbG9hZEZyb21PcmlnaW4sIGNvbnRlbnRCbG9ja2Vyc0VuYWJsZWQpOwogfQogCi12b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgYm9v
bCogb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4
dENhbGxiYWNrPiYmIGNhbGxiYWNrKQotewotICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBh
Z2VQcm94eUZvckhhbmRsZShoYW5kbGUpOwotICAgIGlmICghcGFnZSkKLSAgICAgICAgRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwotCi0gICAgaWYgKGF1dG8gY2Fs
bGJhY2sgPSBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlLnRha2UocGFnZS0+cGFn
ZUlEKCkpKQotICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJ
TkVEX0VSUk9SX05BTUUoVGltZW91dCkpOwotICAgIG1fcGVuZGluZ0luc3BlY3RvckNhbGxiYWNr
c1BlclBhZ2Uuc2V0KHBhZ2UtPnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0KLSAgICAv
LyBEb24ndCBicmluZyB0aGUgaW5zcGVjdG9yIHRvIGZyb250IHNpbmNlIHRoaXMgbWF5IGJlIGRv
bmUgYXV0b21hdGljYWxseS4KLSAgICAvLyBXZSBqdXN0IHdhbnQgaXQgbG9hZGVkIHNvIGl0IGNh
biBwYXVzZSBpZiBhIGJyZWFrcG9pbnQgaXMgaGl0IGR1cmluZyBhIGNvbW1hbmQuCi0gICAgaWYg
KHBhZ2UtPmluc3BlY3RvcigpKSB7Ci0gICAgICAgIHBhZ2UtPmluc3BlY3RvcigpLT5jb25uZWN0
KCk7Ci0KLSAgICAgICAgLy8gU3RhcnQgY29sbGVjdGluZyBwcm9maWxlIGluZm9ybWF0aW9uIGlt
bWVkaWF0ZWx5IHNvIHRoZSBlbnRpcmUgc2Vzc2lvbiBpcyBjYXB0dXJlZC4KLSAgICAgICAgaWYg
KG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZyAmJiAqb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVy
aW5nKQotICAgICAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPnRvZ2dsZVBhZ2VQcm9maWxpbmco
KTsKLSAgICB9Ci19Ci0KIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om5hdmlnYXRpb25PY2N1
cnJlZEZvclBhZ2UoY29uc3QgV2ViUGFnZVByb3h5JiBwYWdlKQogewogICAgIGlmIChhdXRvIGNh
bGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbkluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVy
UGFnZS50YWtlKHBhZ2UucGFnZUlEKCkpKQpAQCAtMTAzNiw3ICs5MTgsMTA2IEBAIHZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OmRpZFRha2VTY3JlZW5zaG90KHVpbnQ2NF90IGNhbGxiYWNrSUQs
IGNvbnN0IFNoYXJlYWJsCiAgICAgY2FsbGJhY2stPnNlbmRTdWNjZXNzKGJhc2U2NEVuY29kZWRE
YXRhKTsKIH0KIAotI2lmICFVU0UoQVBQS0lUKQorI2lmICFQTEFURk9STShJT1MpCit2b2lkIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpyZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0
IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBzaXplT2JqZWN0KQoreworICAgIGZsb2F0IHdp
ZHRoOworICAgIGlmICghc2l6ZU9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoIndp
ZHRoIiksIHdpZHRoKSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RF
VEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnd2lkdGgnIHBhcmFtZXRlciB3YXMgbm90IGZv
dW5kIG9yIGludmFsaWQuIik7CisKKyAgICBmbG9hdCBoZWlnaHQ7CisgICAgaWYgKCFzaXplT2Jq
ZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgiaGVpZ2h0IiksIGhlaWdodCkpCisgICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0
ZXIsICJUaGUgJ2hlaWdodCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsK
KworICAgIGlmICh3aWR0aCA8IDApCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9S
X0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgJ3dpZHRoJyBwYXJhbWV0ZXIgaGFk
IGFuIGludmFsaWQgdmFsdWUuIik7CisKKyAgICBpZiAoaGVpZ2h0IDwgMCkKKyAgICAgICAgRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRo
ZSAnaGVpZ2h0JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7CisKKyAgICBXZWJQ
YWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKKyAgICBpZiAo
IXBhZ2UpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5k
KTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBvcmlnaW5hbEZyYW1lOworICAgIHBhZ2UtPmdl
dFdpbmRvd0ZyYW1lKG9yaWdpbmFsRnJhbWUpOworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG5l
d0ZyYW1lID0gV2ViQ29yZTo6RmxvYXRSZWN0KG9yaWdpbmFsRnJhbWUubG9jYXRpb24oKSwgV2Vi
Q29yZTo6RmxvYXRTaXplKHdpZHRoLCBoZWlnaHQpKTsKKyAgICBpZiAobmV3RnJhbWUgPT0gb3Jp
Z2luYWxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+c2V0V2luZG93RnJhbWUo
bmV3RnJhbWUpOworCisgICAgLy8gSWYgbm90aGluZyBjaGFuZ2VkIGF0IGFsbCwgaXQncyBwcm9i
YWJseSBmYWlyIHRvIHJlcG9ydCB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nLgorICAgIC8vIChX
ZSBjYW4ndCBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdGVkIGZyYW1lIHNpemUgd2lsbCBiZSBob25v
cmVkIGV4YWN0bHksIGhvd2V2ZXIuKQorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB1cGRhdGVkRnJh
bWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUodXBkYXRlZEZyYW1lKTsKKyAgICBpZiAob3Jp
Z2luYWxGcmFtZSA9PSB1cGRhdGVkRnJhbWUpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJUaGUgd2luZG93IHNpemUgd2FzIGV4
cGVjdGVkIHRvIGhhdmUgY2hhbmdlZCwgYnV0IGRpZCBub3QuIik7Cit9CisKK3ZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVy
cm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3Bl
Y3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbk9iamVjdCkKK3sKKyAgICBmbG9hdCB4Owor
ICAgIGlmICghcG9zaXRpb25PYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJ4Iiks
IHgpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNz
aW5nUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlk
LiIpOworCisgICAgZmxvYXQgeTsKKyAgICBpZiAoIXBvc2l0aW9uT2JqZWN0LmdldERvdWJsZShX
VEY6OkFTQ0lJTGl0ZXJhbCgieSIpLCB5KSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAneScgcGFyYW1ldGVyIHdh
cyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKKworICAgIGlmICh4IDwgMCkKKyAgICAgICAgRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRo
ZSAneCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVlLiIpOworCisgICAgaWYgKHkgPCAw
KQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlk
UGFyYW1ldGVyLCAiVGhlICd5JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7CisK
KyAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsK
KyAgICBpZiAoIXBhZ2UpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRv
d05vdEZvdW5kKTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBvcmlnaW5hbEZyYW1lOworICAg
IHBhZ2UtPmdldFdpbmRvd0ZyYW1lKG9yaWdpbmFsRnJhbWUpOworCisgICAgV2ViQ29yZTo6Rmxv
YXRSZWN0IG5ld0ZyYW1lID0gV2ViQ29yZTo6RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQo
eCwgeSksIG9yaWdpbmFsRnJhbWUuc2l6ZSgpKTsKKyAgICBpZiAobmV3RnJhbWUgPT0gb3JpZ2lu
YWxGcmFtZSkKKyAgICAgICAgcmV0dXJuOworCisgICAgcGFnZS0+c2V0V2luZG93RnJhbWUobmV3
RnJhbWUpOworCisgICAgLy8gSWYgbm90aGluZyBjaGFuZ2VkIGF0IGFsbCwgaXQncyBwcm9iYWJs
eSBmYWlyIHRvIHJlcG9ydCB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nLgorICAgIC8vIChXZSBj
YW4ndCBhc3N1bWUgdGhhdCB0aGUgcmVxdWVzdGVkIGZyYW1lIHNpemUgd2lsbCBiZSBob25vcmVk
IGV4YWN0bHksIGhvd2V2ZXIuKQorICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB1cGRhdGVkRnJhbWU7
CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUodXBkYXRlZEZyYW1lKTsKKyAgICBpZiAob3JpZ2lu
YWxGcmFtZSA9PSB1cGRhdGVkRnJhbWUpCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SX0FORF9ERVRBSUxTKEludGVybmFsRXJyb3IsICJUaGUgd2luZG93IHBvc2l0aW9uIHdhcyBl
eHBlY3RlZCB0byBoYXZlIGNoYW5nZWQsIGJ1dCBkaWQgbm90LiIpOworfQorCit2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgYm9vbCogb3B0
aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxi
YWNrPiYmIGNhbGxiYWNrKQoreworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94
eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOworCisgICAgaWYgKGF1dG8gY2FsbGJhY2sg
PSBtX3BlbmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlLnRha2UocGFnZS0+cGFnZUlEKCkp
KQorICAgICAgICBjYWxsYmFjay0+c2VuZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VS
Uk9SX05BTUUoVGltZW91dCkpOworICAgIG1fcGVuZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBh
Z2Uuc2V0KHBhZ2UtPnBhZ2VJRCgpLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICAvLyBEb24n
dCBicmluZyB0aGUgaW5zcGVjdG9yIHRvIGZyb250IHNpbmNlIHRoaXMgbWF5IGJlIGRvbmUgYXV0
b21hdGljYWxseS4KKyAgICAvLyBXZSBqdXN0IHdhbnQgaXQgbG9hZGVkIHNvIGl0IGNhbiBwYXVz
ZSBpZiBhIGJyZWFrcG9pbnQgaXMgaGl0IGR1cmluZyBhIGNvbW1hbmQuCisgICAgaWYgKHBhZ2Ut
Pmluc3BlY3RvcigpKSB7CisgICAgICAgIHBhZ2UtPmluc3BlY3RvcigpLT5jb25uZWN0KCk7CisK
KyAgICAgICAgLy8gU3RhcnQgY29sbGVjdGluZyBwcm9maWxlIGluZm9ybWF0aW9uIGltbWVkaWF0
ZWx5IHNvIHRoZSBlbnRpcmUgc2Vzc2lvbiBpcyBjYXB0dXJlZC4KKyAgICAgICAgaWYgKG9wdGlv
bmFsRW5hYmxlQXV0b0NhcHR1cmluZyAmJiAqb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nKQor
ICAgICAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPnRvZ2dsZVBhZ2VQcm9maWxpbmcoKTsKKyAg
ICB9Cit9CisjZW5kaWYgLy8gIVBMQVRGT1JNKElPUykKKworLy8gUGxhdGZvcm0tZGVwZW5kZW50
IEltcGxlbWVudGF0aW9uIFN0dWJzLgorCisjaWYgIVBMQVRGT1JNKE1BQykKIHZvaWQgV2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKFdlYktpdDo6
V2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmLCBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpNb3VzZUJ1dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycykKIHsKIH0KQEAgLTEw
NDgsMTEgKzEwMjksMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11
bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJveHkmLCBJbnNwZWN0b3I6OlAKIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmLCBj
b25zdCBTdHJpbmcmKQogewogfQorI2VuZGlmIC8vICFQTEFURk9STShNQUMpCiAKKyNpZiAhUExB
VEZPUk0oQ09DT0EpCiBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFz
ZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKQogewogICAg
IHJldHVybiBTdHJpbmcoKTsKIH0KLSNlbmRpZiAvLyAhVVNFKEFQUEtJVCkKKyNlbmRpZiAvLyAh
UExBVEZPUk0oQ09DT0EpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9u
LmgKaW5kZXggMjgwZDJkNThiODZlYzc5ZWIzNGNiNzNmNmU0OWVjMzk0NjkzYWQ0Yi4uOTVkMWRh
N2IwYjdjYmE4ZjBjYTU3OWNjZDIxMjIzYzc4ZjE4ODhhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
CkBAIC05NSwxOCArOTUsMTggQEAgcHVibGljOgogI2VuZGlmCiAKICAgICAvLyBJbnNwZWN0b3I6
OkF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXIgQVBJCisgICAgLy8gTk9URTogdGhl
IHNldCBvZiBkZWNsYXJhdGlvbnMgaW5jbHVkZWQgaW4gdGhpcyBpbnRlcmZhY2UgZGVwZW5kIG9u
IHRoZSBjb25kaXRpb25hbCBndWFyZHMgaW4gQXV0b21hdGlvbi5qc29uLmluLgorCisgICAgLy8g
UGxhdGZvcm0taW5kZXBlbmRlbnQgQ29tbWFuZHMuCiAgICAgdm9pZCBnZXRCcm93c2luZ0NvbnRl
eHRzKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6
QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0Pj4m
KSBvdmVycmlkZTsKICAgICB2b2lkIGdldEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OkJyb3dzaW5nQ29udGV4dD4mKSBvdmVycmlkZTsKICAgICB2b2lkIGNyZWF0ZUJyb3dz
aW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgU3RyaW5nKikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBjbG9zZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5k
bGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCByZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBz
aXplKSBvdmVycmlkZTsKLSAgICB2b2lkIG1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rv
cjo6SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBuYXZpZ2F0
ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBo
YW5kbGUsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRDYWxs
YmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgUmVmPEdvQmFja0luQnJvd3NpbmdD
b250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ29Gb3J3YXJkSW5Ccm93c2lu
Z0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZjxHb0Zv
cndhcmRJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJl
bG9hZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgUmVmPFJlbG9hZEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKLSAgICB2
b2lkIGluc3BlY3RCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0
IFN0cmluZyYsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywgUmVmPElu
c3BlY3RCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBldmFs
dWF0ZUphdmFTY3JpcHRGdW5jdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3Ry
aW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhh
bmRsZSwgY29uc3QgU3RyaW5nJiBmdW5jdGlvbiwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JB
cnJheSYgYXJndW1lbnRzLCBjb25zdCBib29sKiBvcHRpb25hbEV4cGVjdHNJbXBsaWNpdENhbGxi
YWNrQXJndW1lbnQsIGNvbnN0IGludCogb3B0aW9uYWxDYWxsYmFja1RpbWVvdXQsIFJlZjxJbnNw
ZWN0b3I6OkF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlckhhbmRsZXI6OkV2YWx1YXRlSmF2YVNj
cmlwdEZ1bmN0aW9uQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGVyZm9ybU1vdXNl
SW50ZXJhY3Rpb24oSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxl
LCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcmVxdWVzdGVkUG9zaXRpb24sIGNv
bnN0IFN0cmluZyYgbW91c2VCdXR0b24sIGNvbnN0IFN0cmluZyYgbW91c2VJbnRlcmFjdGlvbiwg
Y29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYga2V5TW9kaWZpZXJzLCBSZWZQdHI8SW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6UG9pbnQ+JiB1cGRhdGVkUG9zaXRpb24pIG92
ZXJyaWRlOwogICAgIHZvaWQgcGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zKEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JBcnJheSYgaW50ZXJhY3Rpb25zLCBSZWY8UGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25z
Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwpAQCAtMTIzLDcgKzEyMywxNiBAQCBwdWJsaWM6CiAgICAg
dm9pZCBkZWxldGVTaW5nbGVDb29raWUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIFJl
ZjxEZWxldGVTaW5nbGVDb29raWVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRT
aW5nbGVDb29raWUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3Np
bmdDb250ZXh0SGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgY29va2ll
LCBSZWY8QWRkU2luZ2xlQ29va2llQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGVs
ZXRlQWxsQ29va2llcyhJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93
c2luZ0NvbnRleHRIYW5kbGUpIG92ZXJyaWRlOwotI2lmIFVTRShBUFBLSVQpCisKKyAgICAvLyBQ
bGF0Zm9ybS1zcGVjaWZpYyBDb21tYW5kcy4KKyNpZiAhUExBVEZPUk0oSU9TKQorICAgIHZvaWQg
cmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNv
bnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6
ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBtb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6
Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb24pIG92ZXJyaWRlOworICAgIHZvaWQgaW5zcGVjdEJy
b3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29u
c3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5n
Q29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKKyNlbmRpZgorCisgICAgLy8gRXZlbnQgU2lt
dWxhdGlvbiBTdXBwb3J0LgorI2lmIFBMQVRGT1JNKE1BQykKICAgICBib29sIHdhc0V2ZW50U3lu
dGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKik7CiAgICAgdm9pZCBtYXJrRXZlbnRBc1N5
bnRoZXNpemVkRm9yQXV0b21hdGlvbihOU0V2ZW50ICopOwogI2VuZGlmCkBAIC0xMzcsMTAgKzE0
NiwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90
IGZyYW1lSUQpOwogICAgIFN0cmluZyBoYW5kbGVGb3JXZWJGcmFtZVByb3h5KGNvbnN0IFdlYkZy
YW1lUHJveHkmKTsKIAotICAgIC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJBdXRvbWF0
aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAKKyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5l
cmF0ZWQgV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwLgogICAgIHZvaWQg
ZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJp
ZGU7CiAKLSAgICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlvblNlc3Npb24gbWVzc2FnZXMKKyAg
ICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlvblNlc3Npb24gbWVzc2FnZXMuCiAgICAgdm9pZCBk
aWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBT
dHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwogICAgIHZvaWQgZGlkUmVz
b2x2ZUNoaWxkRnJhbWUodWludDY0X3QgY2FsbGJhY2tJRCwgdWludDY0X3QgZnJhbWVJRCwgY29u
c3QgU3RyaW5nJiBlcnJvclR5cGUpOwogICAgIHZvaWQgZGlkUmVzb2x2ZVBhcmVudEZyYW1lKHVp
bnQ2NF90IGNhbGxiYWNrSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0cmluZyYgZXJyb3JU
eXBlKTsKQEAgLTE0OSw3ICsxNTgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkR2V0Q29va2ll
c0ZvckZyYW1lKHVpbnQ2NF90IGNhbGxiYWNrSUQsIFZlY3RvcjxXZWJDb3JlOjpDb29raWU+LCBj
b25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CiAgICAgdm9pZCBkaWREZWxldGVDb29raWUodWludDY0
X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwogCi0gICAgLy8gUGxhdGZv
cm0tc3BlY2lmaWMgaGVscGVyIG1ldGhvZHMuCisgICAgLy8gUGxhdGZvcm0tZGVwZW5kZW50IElt
cGxlbWVudGF0aW9ucy4KICAgICB2b2lkIHBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9u
KFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB2aWV3UG9zaXRpb24sIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb24sIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJz
KTsKICAgICAvLyBTaW11bGF0ZXMgYSBzaW5nbGUgdmlydHVhbCBrZXkgYmVpbmcgcHJlc3NlZCwg
c3VjaCBhcyBDb250cm9sLCBGLWtleXMsIE51bXBhZCBrZXlzLCBldGMuIGFzIGFsbG93ZWQgYnkg
dGhlIHByb3RvY29sLgogICAgIHZvaWQgcGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdl
UHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0
aW9uVHlwZSwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSk7CkBA
IC0xNTgsNyArMTY3LDcgQEAgcHJpdmF0ZToKICAgICAvLyBHZXQgYmFzZTY0IGVuY29kZWQgUE5H
IGRhdGEgZnJvbSBhIGJpdG1hcC4KICAgICBTdHJpbmcgcGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVk
UE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpOwogCi0jaWYgVVNFKEFQUEtJ
VCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9pZCBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1Bh
Z2UoV2ViUGFnZVByb3h5JiwgTlNBcnJheSAqZXZlbnRzVG9TZW5kKTsKICNlbmRpZgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb25NYWNyb3MuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mYjI2NGMzMjg3OGM5ZjU5M2I1
NGVhMTYxYmE3NzE5NzYwYjI4NTU2Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaApAQCAtMCww
ICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNkZWZpbmUgZXJyb3JOYW1l
QW5kRGV0YWlsc1NlcGFyYXRvciAiOyIKKworLy8gTWFrZSBzdXJlIHRoZSBwcmVkZWZpbmVkIGVy
cm9yIG5hbWUgaXMgdmFsaWQsIG90aGVyd2lzZSB1c2UgSW50ZXJuYWxFcnJvci4KKyNkZWZpbmUg
VkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JTdHJpbmcpIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlPihlcnJvclN0cmluZykudmFsdWVPcihJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OkludGVybmFsRXJy
b3IpCisKKy8vIElmIHRoZSBlcnJvciBuYW1lIGlzIGluY29ycmVjdCBmb3IgdGhlc2UgbWFjcm9z
LCBpdCB3aWxsIGJlIGEgY29tcGlsZS10aW1lIGVycm9yLgorI2RlZmluZSBTVFJJTkdfRk9SX1BS
RURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSkKKyNkZWZpbmUgU1RSSU5HX0ZPUl9Q
UkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5n
KSBtYWtlU3RyaW5nKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRF
bnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1l
c3NhZ2U6OmVycm9yTmFtZSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNT
dHJpbmcpCisKKy8vIElmIHRoZSBlcnJvciBtZXNzYWdlIGlzIG5vdCBhIHByZWRlZmluZWQgZXJy
b3IsIEludGVybmFsRXJyb3Igd2lsbCBiZSB1c2VkIGluc3RlYWQuCisjZGVmaW5lIFNUUklOR19G
T1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKFZBTElEQVRFRF9F
UlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkpCisjZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5F
RF9FUlJPUl9NRVNTQUdFX0FORF9ERVRBSUxTKGVycm9yTWVzc2FnZSwgZGV0YWlsc1N0cmluZykg
bWFrZVN0cmluZyhJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51
bUNvbnN0YW50VmFsdWUoVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JNZXNzYWdlKSksIGVy
cm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCisKKy8vIENvbnZlbmll
bmNlIG1hY3JvcyBmb3IgZmlsbGluZyBpbiB0aGUgZXJyb3Igc3RyaW5nIG9mIHN5bmNocm9ub3Vz
IGNvbW1hbmRzIGluIGJhaWxvdXQgYnJhbmNoZXMuCisjZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SKGVycm9yTmFtZSkgXAorZG8geyBcCisgICAgZXJyb3JTdHJpbmcgPSBTVFJJTkdf
Rk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpOyBcCisgICAgcmV0dXJuOyBcCit9
IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRf
REVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcpIFwKK2RvIHsgXAorICAgIGVycm9yU3Ry
aW5nID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JO
YW1lLCBkZXRhaWxzU3RyaW5nKTsgXAorICAgIHJldHVybjsgXAorfSB3aGlsZSAoZmFsc2UpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9jb2NvYS9XZWJB
dXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9t
YXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNWE4
YWFhOTU1ZjM4ZDRlNTQ5MzNhNWZiNTk1YWRhOGFmMWQxZDQ0Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNl
c3Npb25Db2NvYS5tbQpAQCAtMCwwICsxLDU5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE2
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29u
ZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorCisjaWYgUExBVEZPUk0o
Q09DT0EpCisKKyNpZiBQTEFURk9STShJT1MpCisjaW5jbHVkZSA8SW1hZ2VJTy9DR0ltYWdlRGVz
dGluYXRpb24uaD4KKyNpbmNsdWRlIDxNb2JpbGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4K
KyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7
CisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1kZXBlbmRlbnQgSW1wbGVtZW50YXRpb25zCisKK1N0
cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0
YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYgaW1hZ2VEYXRhSGFuZGxlKQoreworICAg
IFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRl
KGltYWdlRGF0YUhhbmRsZSwgU2hhcmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Cisg
ICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1hZ2UgPSBiaXRtYXAtPm1ha2VDR0ltYWdlKCk7
CisgICAgUmV0YWluUHRyPE5TTXV0YWJsZURhdGE+IGltYWdlRGF0YSA9IGFkb3B0TlMoW1tOU011
dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VEZXN0aW5hdGlv
blJlZj4gZGVzdGluYXRpb24gPSBhZG9wdENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhE
YXRhKChDRk11dGFibGVEYXRhUmVmKWltYWdlRGF0YS5nZXQoKSwga1VUVHlwZVBORywgMSwgMCkp
OworICAgIGlmICghZGVzdGluYXRpb24pCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAg
IENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBjZ0ltYWdlLmdl
dCgpLCAwKTsKKyAgICBDR0ltYWdlRGVzdGluYXRpb25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQo
KSk7CisKKyAgICByZXR1cm4gW2ltYWdlRGF0YSBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlv
bnM6MF07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0o
Q09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9t
YWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTgx
MTkyYmM2YmMzNzA0YzE2ZTZmMjc5YzJhNWU3MzFiNDFlYjJjNgotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hYy5tbQpAQCAtMCwwICsxLDQ5NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZp
Zy5oIgorI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKKworI2lmIFBMQVRGT1JNKE1B
QykKKworI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCIKKyNpbXBvcnQgIldl
Ykluc3BlY3RvclByb3h5LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIl9X
S0F1dG9tYXRpb25TZXNzaW9uLmgiCisjaW1wb3J0IDxISVRvb2xib3gvRXZlbnRzLmg+CisjaW1w
b3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4KKyNp
bXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CisjaW1wb3J0IDxvYmpjL3J1bnRp
bWUuaD4KKwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgewor
CisjcHJhZ21hIG1hcmsgQXBwS2l0IEV2ZW50IFNpbXVsYXRpb24gU3VwcG9ydAorCitzdGF0aWMg
Y29uc3QgTlNJbnRlZ2VyIHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXIgPSAw
Oworc3RhdGljIGNvbnN0IHZvaWQgKnN5bnRoZXNpemVkQXV0b21hdGlvbkV2ZW50QXNzb2NpYXRl
ZE9iamVjdEtleSA9ICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RL
ZXk7CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNlbmRTeW50aGVzaXplZEV2ZW50c1Rv
UGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIE5TQXJyYXkgKmV2ZW50c1RvU2VuZCkKK3sKKyAgICBO
U1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOworCisgICAgZm9yIChOU0V2
ZW50ICpldmVudCBpbiBldmVudHNUb1NlbmQpIHsKKyAgICAgICAgLy8gVGFrZSBmb2N1cyBiYWNr
IGluIGNhc2UgdGhlIEluc3BlY3RvciBiZWNhbWUgZm9jdXNlZCB3aGlsZSB0aGUgcHJpb3IgY29t
bWFuZCBvcgorICAgICAgICAvLyBOU0V2ZW50IHdhcyBkZWxpdmVyZWQgdG8gdGhlIHdpbmRvdy4K
KyAgICAgICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxdOworCisgICAgICAgIG1h
cmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKGV2ZW50KTsKKyAgICAgICAgW3dpbmRv
dyBzZW5kRXZlbnQ6ZXZlbnRdOworICAgIH0KK30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6bWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqZXZlbnQpCit7
CisgICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGV2ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0
aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5LCBtX3Nlc3Npb25JZGVudGlmaWVyLCBPQkpDX0FT
U09DSUFUSU9OX1JFVEFJTl9OT05BVE9NSUMpOworfQorCitib29sIFdlYkF1dG9tYXRpb25TZXNz
aW9uOjp3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21hdGlvbihOU0V2ZW50ICpldmVudCkKK3sK
KyAgICBOU1N0cmluZyAqc2VuZGVyU2Vzc2lvbklkZW50aWZpZXIgPSBvYmpjX2dldEFzc29jaWF0
ZWRPYmplY3QoZXZlbnQsICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmpl
Y3RLZXkpOworICAgIGlmIChbc2VuZGVyU2Vzc2lvbklkZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5n
Om1fc2Vzc2lvbklkZW50aWZpZXJdKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKworICAgIHN3aXRj
aCAoZXZlbnQudHlwZSkgeworICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOgorICAg
IGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVM
ZWZ0TW91c2VVcDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTW91c2VNb3ZlZDoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlT3RoZXJNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VE
cmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlVXA6CisgICAgY2FzZSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlRHJh
Z2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZVVwOgorICAgICAgICAvLyBVc2Ug
dGhpcyBhcyBhIGJhY2t1cCBmb3IgY2hlY2tpbmcgbW91c2UgZXZlbnRzLCB3aGljaCBhcmUgZnJl
cXVlbnRseSBjb3BpZWQKKyAgICAgICAgLy8gYW5kL29yIGZha2VkIGJ5IEFwcEtpdCwgY2F1c2lu
ZyB0aGVtIHRvIGxvc2UgdGhlaXIgYXNzb2NpYXRlZCBvYmplY3QgdGFnLgorICAgICAgICByZXR1
cm4gZXZlbnQuZXZlbnROdW1iZXIgPT0gc3ludGhlc2l6ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51
bWJlcjsKKyAgICBkZWZhdWx0OgorICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICByZXR1cm4g
ZmFsc2U7Cit9CisKKyNwcmFnbWEgbWFyayBQbGF0Zm9ybS1kZXBlbmRlbnQgSW1wbGVtZW50YXRp
b25zCisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUlu
dGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHZp
ZXdQb3NpdGlvbiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFj
dGlvbiBpbnRlcmFjdGlvbiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VC
dXR0b24gYnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJzIGtleU1vZGlmaWVycykKK3sKKyAgICBJ
bnRSZWN0IHdpbmRvd1JlY3Q7CisgICAgcGFnZS5yb290Vmlld1RvV2luZG93KEludFJlY3Qodmll
d1Bvc2l0aW9uLCBJbnRTaXplKCkpLCB3aW5kb3dSZWN0KTsKKyAgICBJbnRQb2ludCB3aW5kb3dQ
b3NpdGlvbiA9IHdpbmRvd1JlY3QubG9jYXRpb24oKTsKKworICAgIE5TRXZlbnRNb2RpZmllckZs
YWdzIG1vZGlmaWVycyA9IDA7CisgICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpNZXRh
S2V5KQorICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Cisg
ICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpBbHRLZXkpCisgICAgICAgIG1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOworICAgIGlmIChrZXlNb2RpZmllcnMgJiBX
ZWJFdmVudDo6Q29udHJvbEtleSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdDb250cm9sOworICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6U2hpZnRLZXkp
CisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CisgICAgaWYg
KGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpDYXBzTG9ja0tleSkKKyAgICAgICAgbW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9jazsKKworICAgIE5TVGltZUludGVydmFsIHRp
bWVzdGFtcCA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKKyAgICBO
U1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOworICAgIE5TSW50ZWdlciB3
aW5kb3dOdW1iZXIgPSB3aW5kb3cud2luZG93TnVtYmVyOworCisgICAgTlNFdmVudFR5cGUgZG93
bkV2ZW50VHlwZTsKKyAgICBOU0V2ZW50VHlwZSBkcmFnRXZlbnRUeXBlOworICAgIE5TRXZlbnRU
eXBlIHVwRXZlbnRUeXBlOworICAgIHN3aXRjaCAoYnV0dG9uKSB7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6Tm9uZToKKyAgICAgICAgZG93
bkV2ZW50VHlwZSA9IHVwRXZlbnRUeXBlID0gZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6TGVmdDoKKyAgICAgICAgZG93bkV2ZW50VHlwZSA9IE5T
RXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKKyAgICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZVVwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpNaWRkbGU6CisgICAgICAgIGRvd25FdmVudFR5cGUg
PSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOworICAgICAgICBkcmFnRXZlbnRUeXBlID0gTlNF
dmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB1cEV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlT3RoZXJNb3VzZVVwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpSaWdodDoKKyAgICAgICAgZG93bkV2ZW50
VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd247CisgICAgICAgIHVwRXZlbnRUeXBlID0g
TlNFdmVudFR5cGVSaWdodE1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGF1
dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRd
KTsKKworICAgIE5TSW50ZWdlciBldmVudE51bWJlciA9IHN5bnRoZXNpemVkTW91c2VFdmVudE1h
Z2ljRXZlbnROdW1iZXI7CisKKyAgICBzd2l0Y2ggKGludGVyYWN0aW9uKSB7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpNb3ZlOgor
ICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTpkcmFnRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6
bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBj
b250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjAgcHJlc3N1cmU6
MC4wZl1dOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb246OkRvd246CisgICAgICAgIC8vIEhhcmQtY29kZSB0
aGUgY2xpY2sgY291bnQgdG8gb25lLCBzaW5jZSBjbGllbnRzIGRvbid0IGV4cGVjdCBzdWNjZXNz
aXZlIHNpbXVsYXRlZAorICAgICAgICAvLyBkb3duL3VwIGV2ZW50cyB0byBiZSBwb3RlbnRpYWxs
eSBjb3VudGVkIGFzIGEgZG91YmxlIGNsaWNrIGV2ZW50LgorICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxv
Y2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0
aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJl
cjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNr
XV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6VXA6CisgICAgICAgIC8vIEhhcmQtY29kZSB0aGUgY2xp
Y2sgY291bnQgdG8gb25lLCBzaW5jZSBjbGllbnRzIGRvbid0IGV4cGVjdCBzdWNjZXNzaXZlIHNp
bXVsYXRlZAorICAgICAgICAvLyBkb3duL3VwIGV2ZW50cyB0byBiZSBwb3RlbnRpYWxseSBjb3Vu
dGVkIGFzIGEgZG91YmxlIGNsaWNrIGV2ZW50LgorICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3
aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1w
IHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnRO
dW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOjAuMGZdXTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpT
aW5nbGVDbGljazoKKyAgICAgICAgLy8gU2VuZCBzZXBhcmF0ZSBkb3duIGFuZCB1cCBldmVudHMu
IFdlYkNvcmUgd2lsbCBzZWUgdGhpcyBhcyBhIHNpbmdsZS1jbGljayBldmVudC4KKyAgICAgICAg
W2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93
bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVy
cyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6
OkZvcmNlQXRDbGlja11dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2
ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlv
biBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJl
cjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tD
b3VudDoxIHByZXNzdXJlOjAuMGZdXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpEb3VibGVDbGljazoK
KyAgICAgICAgLy8gU2VuZCBtdWx0aXBsZSBkb3duIGFuZCB1cCBldmVudHMgd2l0aCBwcm9wZXIg
Y2xpY2sgY291bnQuCisgICAgICAgIC8vIFdlYkNvcmUgd2lsbCBzZWUgdGhpcyBhcyBhIHNpbmds
ZS1jbGljayBldmVudCB0aGVuIGRvdWJsZS1jbGljayBldmVudC4KKyAgICAgICAgW2V2ZW50c1Rv
QmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlw
ZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3Rh
bXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnRO
dW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRD
bGlja11dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmll
ckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dO
dW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHBy
ZXNzdXJlOjAuMGZdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVu
dCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlv
biBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJl
cjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tD
b3VudDoyIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOworICAgICAgICBbZXZlbnRz
VG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlw
ZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3Rh
bXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnRO
dW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoyIHByZXNzdXJlOjAuMGZdXTsKKyAgICB9CisK
KyAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UocGFnZSwgZXZlbnRzVG9CZVNlbnQuZ2V0
KCkpOworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5
U3Ryb2tlKFdlYlBhZ2VQcm94eSYgcGFnZSwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUgaW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkga2V5KQoreworICAgIC8vIElmIHRydWUsIHRoZSBr
ZXkncyBtb2RpZmllciBmbGFncyBzaG91bGQgYWZmZWN0IG90aGVyIGV2ZW50cyB3aGlsZSBwcmVz
c2VkIGRvd24uCisgICAgYm9vbCBpc1N0aWNreU1vZGlmaWVyID0gZmFsc2U7CisgICAgLy8gVGhl
IG1vZGlmaWVycyBjaGFuZ2VkIGJ5IHRoZSB2aXJ0dWFsIGtleSB3aGVuIGl0IGlzIHByZXNzZWQg
b3IgcmVsZWFzZWQuCisgICAgLy8gVGhlIG1hcHBpbmcgZnJvbSBrZXlzIHRvIG1vZGlmaWVycyBp
cyBzcGVjaWZpZWQgaW4gdGhlIGRvY3VtZW50YXRpb24gZm9yIE5TRXZlbnQuCisgICAgTlNFdmVu
dE1vZGlmaWVyRmxhZ3MgY2hhbmdlZE1vZGlmaWVycyA9IDA7CisgICAgLy8gVGhlIGxpa2VseSBr
ZXlDb2RlIGZvciB0aGUgdmlydHVhbCBrZXkgYXMgZGVmaW5lZCBpbiA8SElUb29sYm94L0V2ZW50
cy5oPi4KKyAgICBpbnQga2V5Q29kZSA9IDA7CisgICAgLy8gVHlwaWNhbCBjaGFyYWN0ZXJzIHBy
b2R1Y2VkIGJ5IHRoZSB2aXJ0dWFsIGtleSwgaWYgYW55LgorICAgIE5TU3RyaW5nICpjaGFyYWN0
ZXJzID0gQCIiOworCisgICAgLy8gRklYTUU6IHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBBdXRvbWF0
aW9uIHByb3RvY29sIGVudW0gc2hvdWxkIHByb2JhYmx5IGFkb3B0IGtleSBuYW1lcworICAgIC8v
IGZyb20gVzNDIFVJRXZlbnRzIHN0YW5kYXJkLiBGb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL3cz
Yy5naXRodWIuaW8vdWlldmVudHMtY29kZS8KKworICAgIHN3aXRjaCAoa2V5KSB7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTaGlmdDoKKyAg
ICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgICAgICBrZXlDb2RlID0ga1ZLX1NoaWZ0
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkNvbnRyb2w6CisgICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVl
OworICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9s
OworICAgICAgICBrZXlDb2RlID0ga1ZLX0NvbnRyb2w7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6QWx0ZXJuYXRl
OgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZL
X09wdGlvbjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpNZXRhOgorICAgICAgICAvLyBUaGUgJ21ldGEnIGtleSBk
b2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGlzIHVzdWFsbHkKKyAgICAgICAg
Ly8gbWFwcGVkIHRvIHRoZSBDb21tYW5kIGtleSB3aGVuIHVzaW5nIHRoaXJkLXBhcnR5IGtleWJv
YXJkcy4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkNvbW1hbmQ6CisgICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOworICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0NvbW1hbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SGVscDoKKyAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnSGVscCB8IE5TRXZlbnRNb2RpZmllckZs
YWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19IZWxwOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkJh
Y2tzcGFjZToKKyAgICAgICAga2V5Q29kZSA9IGtWS19EZWxldGU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VGFi
OgorICAgICAgICBrZXlDb2RlID0ga1ZLX1RhYjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDbGVhcjoKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAg
ICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZENsZWFyOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVudGVy
OgorICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRW50ZXI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
UGF1c2U6CisgICAgICAgIC8vIFRoZSAncGF1c2UnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBs
ZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAgICAgICAvLyBUaGUgc2VtYW50aWNz
IGFyZSB1bmNsZWFyIHNvIGp1c3QgYWJvcnQgYW5kIGRvIG5vdGhpbmcuCisgICAgICAgIHJldHVy
bjsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkNhbmNlbDoKKyAgICAgICAgLy8gVGhlICdjYW5jZWwnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBB
cHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAgICAgICAvLyBBY2NvcmRpbmcg
dG8gdGhlIGludGVybmV0IGl0cyBmdW5jdGlvbmFsaXR5IGlzIHNpbWlsYXIgdG8gJ0VzY2FwZScu
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpF
c2NhcGU6CisgICAgICAgIGtleUNvZGUgPSBrVktfRXNjYXBlOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VV
cDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247CisgICAgICAgIGtleUNvZGUgPSBrVktfUGFnZVVwOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VEb3du
OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19QYWdlRG93bjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbmQ6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0VuZDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpIb21lOgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19Ib21lOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkxlZnRBcnJvdzoKKyAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRN
b2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19MZWZ0QXJyb3c7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6VXBBcnJvdzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAg
ICAgICAga2V5Q29kZSA9IGtWS19VcEFycm93OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJpZ2h0QXJyb3c6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQg
fCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfUmln
aHRBcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEb3duQXJyb3c6CisgICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRG93bkFycm93OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
Okluc2VydDoKKyAgICAgICAgLy8gVGhlICdpbnNlcnQnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBB
cHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2RlLgorICAgICAgICAvLyBUaGUgc2VtYW50
aWNzIGFyZSB1bmNsZWFyIHNvIGp1c3QgYWJvcnQgYW5kIGRvIG5vdGhpbmcuCisgICAgICAgIHJl
dHVybjsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkRlbGV0ZToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRm9yd2FyZERlbGV0ZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpTcGFjZToKKyAgICAgICAga2V5Q29kZSA9IGtWS19TcGFjZTsKKyAgICAgICAgY2hh
cmFjdGVycyA9IEAiICI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2VtaWNvbG9uOgorICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfU2VtaWNvbG9uOworICAgICAgICBjaGFyYWN0ZXJzID0gQCI7IjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpFcXVhbHM6CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9FcXVhbDsKKyAgICAg
ICAgY2hhcmFjdGVycyA9IEAiPSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UmV0dXJuOgorICAgICAgICBrZXlD
b2RlID0ga1ZLX1JldHVybjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQwOgorICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMDsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiMCI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TnVtYmVyUGFkMToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tl
eXBhZDE7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjEiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZDI6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVy
aWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQyOworICAgICAgICBjaGFy
YWN0ZXJzID0gQCIyIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQzOgorICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlD
b2RlID0ga1ZLX0FOU0lfS2V5cGFkMzsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiMyI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkNDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZDQ7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjQiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDU6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQ
YWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ1OworICAgICAgICBjaGFyYWN0
ZXJzID0gQCI1IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ2OgorICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfS2V5cGFkNjsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNiI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6TnVtYmVyUGFkNzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDc7
CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjciOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDg6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7
CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ4OworICAgICAgICBjaGFyYWN0ZXJz
ID0gQCI4IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ5OgorICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0g
a1ZLX0FOU0lfS2V5cGFkOTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiOSI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TnVtYmVyUGFkTXVsdGlwbHk6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlw
YWRNdWx0aXBseTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiKiI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVt
YmVyUGFkQWRkOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkUGx1czsKKyAg
ICAgICAgY2hhcmFjdGVycyA9IEAiKyI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU3VidHJhY3Q6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQ
YWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRNaW51czsKKyAgICAgICAgY2hh
cmFjdGVycyA9IEAiLSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkU2VwYXJhdG9yOgorICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAg
ICAgICAvLyBUaGUgJ1NlcGFyYXRvcicga2V5IGlzIG9ubHkgcHJlc2VudCBvbiBhIGZldyBpbnRl
cm5hdGlvbmFsIGtleWJvYXJkcy4KKyAgICAgICAgLy8gSXQgaXMgdXN1YWxseSBtYXBwZWQgdG8g
dGhlIHNhbWUgY2hhcmFjdGVyIGFzIERlY2ltYWwgKCcuJyBvciAnLCcpLgorICAgICAgICBGQUxM
VEhST1VHSDsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZERlY2ltYWw6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWREZWNpbWFsOworICAgICAgICAvLyBGSVhNRTogdGhpcyBtaWdodCBiZSBsb2NhbGUtZGVw
ZW5kZW50LiBTZWUgdGhlIGFib3ZlIGNvbW1lbnQuCisgICAgICAgIGNoYXJhY3RlcnMgPSBAIi4i
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERpdmlkZToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX0tleXBhZERpdmlkZTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiLyI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb24xOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpGdW5jdGlvbjI6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0YyOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1
bmN0aW9uMzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjM7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b240OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GNDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjU6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y1OworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNjoKKyAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfRjY7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb243OgorICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19GNzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjg6CisgICAgICAgIGNo
YW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0Y4OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uOToKKyAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNv
ZGUgPSBrVktfRjk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMDoKKyAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUg
PSBrVktfRjEwOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTE6CisgICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0g
a1ZLX0YxMTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEyOgorICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtW
S19GMTI7CisgICAgICAgIGJyZWFrOworICAgIH0KKworICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKKworICAgIEFTU0VSVChp
c1N0aWNreU1vZGlmaWVyIHx8IGludGVyYWN0aW9uID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlQcmVzcyk7CisKKyAgICBOU0V2
ZW50TW9kaWZpZXJGbGFncyBleGlzdGluZ01vZGlmaWVycyA9IFtOU0V2ZW50IG1vZGlmaWVyRmxh
Z3NdOworICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIHVwZGF0ZWRNb2RpZmllcnMgPSAwOworICAg
IE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZl
cmVuY2VEYXRlXTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygp
OworICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSB3aW5kb3cud2luZG93TnVtYmVyOworICAg
IE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9IE5TTWFrZVBvaW50KDAsIHdpbmRvdy5mcmFtZS5zaXpl
LmhlaWdodCk7CisKKyAgICBzd2l0Y2ggKGludGVyYWN0aW9uKSB7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJl
c3M6IHsKKyAgICAgICAgTlNFdmVudFR5cGUgZXZlbnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/
IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDogTlNFdmVudFR5cGVLZXlEb3duOworICAgICAgICB1
cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOwor
ICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5
cGU6ZXZlbnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVk
TW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBj
b250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZp
ZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBi
cmVhazsKKyAgICB9CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpL
ZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UmVsZWFzZTogeworICAgICAgICBOU0V2ZW50VHlw
ZSBldmVudFR5cGUgPSBpc1N0aWNreU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQg
OiBOU0V2ZW50VHlwZUtleVVwOworICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdN
b2RpZmllcnMgJiB+Y2hhbmdlZE1vZGlmaWVyczsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFk
ZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVu
dFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0
YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFy
YWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpO
TyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6Oklu
c2VydEJ5S2V5OiB7CisgICAgICAgIC8vIFN0aWNreSBtb2RpZmllcnMgc2hvdWxkIGVpdGhlciBi
ZSAnS2V5UHJlc3MnIG9yICdLZXlSZWxlYXNlJy4KKyAgICAgICAgQVNTRVJUKCFpc1N0aWNreU1v
ZGlmaWVyKTsKKyAgICAgICAgaWYgKGlzU3RpY2t5TW9kaWZpZXIpCisgICAgICAgICAgICByZXR1
cm47CisKKyAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hh
bmdlZE1vZGlmaWVyczsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVu
dCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93biBsb2NhdGlvbjpldmVudFBvc2l0
aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdp
bmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJz
IGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlD
b2RlOmtleUNvZGVdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVu
dCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlv
biBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5k
b3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBj
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29k
ZTprZXlDb2RlXV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICB9CisKKyAgICBzZW5kU3lu
dGhlc2l6ZWRFdmVudHNUb1BhZ2UocGFnZSwgZXZlbnRzVG9CZVNlbnQuZ2V0KCkpOworfQorCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2Vi
UGFnZVByb3h5JiBwYWdlLCBjb25zdCBTdHJpbmcmIGtleVNlcXVlbmNlKQoreworICAgIGF1dG8g
ZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsK
KworICAgIC8vIFNwbGl0IHRoZSB0ZXh0IGludG8gY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5j
ZXMgYW5kIHNlbmQgZWFjaCBzZXBhcmF0ZWx5LgorICAgIC8vIFRoaXMgaGFzIG5vIHNpbWlsYXJp
dHkgdG8gaG93IGtleWJvYXJkcyB3b3JrIHdoZW4gaW5wdXR0aW5nIGNvbXBsZXggdGV4dC4KKyAg
ICAvLyBUaGlzIGNvbW1hbmQgaXMgbW9yZSBzaW1pbGFyIHRvIHRoZSAnaW5zZXJ0VGV4dDonIGVk
aXRpbmcgY29tbWFuZCwgZXhjZXB0CisgICAgLy8gdGhhdCB0aGlzIGVtaXRzIGtleXVwL2tleWRv
d24va2V5cHJlc3MgZXZlbnRzIGZvciByb3VnaGx5IGVhY2ggY2hhcmFjdGVyLgorICAgIC8vIFRo
aXMgQVBJIHNob3VsZCBtb3ZlIG1vcmUgdG93YXJkcyB0aGF0IGRpcmVjdGlvbiBpbiB0aGUgZnV0
dXJlLgorICAgIE5TU3RyaW5nICp0ZXh0ID0ga2V5U2VxdWVuY2U7CisKKyAgICBOU0V2ZW50TW9k
aWZpZXJGbGFncyBtb2RpZmllcnMgPSBbTlNFdmVudCBtb2RpZmllckZsYWdzXTsKKyAgICBOU1Rp
bWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNl
RGF0ZV07CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKyAg
ICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKKyAgICBOU1Bv
aW50IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQb2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWln
aHQpOworCisgICAgW3RleHQgZW51bWVyYXRlU3Vic3RyaW5nc0luUmFuZ2U6TlNNYWtlUmFuZ2Uo
MCwgdGV4dC5sZW5ndGgpIG9wdGlvbnM6TlNTdHJpbmdFbnVtZXJhdGlvbkJ5Q29tcG9zZWRDaGFy
YWN0ZXJTZXF1ZW5jZXMgdXNpbmdCbG9jazpeKE5TU3RyaW5nICpzdWJzdHJpbmcsIE5TUmFuZ2Ug
c3Vic3RyaW5nUmFuZ2UsIE5TUmFuZ2UgZW5jbG9zaW5nUmFuZ2UsIEJPT0wgKnN0b3ApIHsKKyAg
ICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBl
Ok5TRXZlbnRUeXBlS2V5RG93biBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6
bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBj
b250ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmll
cnM6c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdXTsKKyAgICAgICAgW2V2ZW50c1Rv
QmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5
VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3Rh
bXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFj
dGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBpc0FS
ZXBlYXQ6Tk8ga2V5Q29kZTowXV07CisgICAgfV07CisKKyAgICBzZW5kU3ludGhlc2l6ZWRFdmVu
dHNUb1BhZ2UocGFnZSwgZXZlbnRzVG9CZVNlbnQuZ2V0KCkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0K
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDEyMWQ4ZjA4NTk0ZjU5NGZlOGJmM2U1NmE0
NWExOGIyY2M0NDVkMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9u
Q29jb2EubW0KKysrIC9kZXYvbnVsbApAQCAtMSw1MDkgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNp
bXBvcnQgImNvbmZpZy5oIgotI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIKLQotI2lt
cG9ydCAiV2ViUGFnZVByb3h5LmgiCi0jaW1wb3J0ICJfV0tBdXRvbWF0aW9uU2Vzc2lvbi5oIgot
I2ltcG9ydCA8V2ViQ29yZS9JbnRQb2ludC5oPgotI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+
Ci0jaW1wb3J0IDxXZWJDb3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgotI2ltcG9ydCA8b2JqYy9y
dW50aW1lLmg+Ci0KLSNpZiBVU0UoQVBQS0lUKQotI2ltcG9ydCA8SElUb29sYm94L0V2ZW50cy5o
PgotI2VuZGlmCi0KLXVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwotCi1uYW1lc3BhY2UgV2ViS2l0
IHsKLQotI2lmIFVTRShBUFBLSVQpCi0KLXN0YXRpYyBjb25zdCBOU0ludGVnZXIgc3ludGhlc2l6
ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51bWJlciA9IDA7Ci1zdGF0aWMgY29uc3Qgdm9pZCAqc3lu
dGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5ID0gJnN5bnRoZXNpemVk
QXV0b21hdGlvbkV2ZW50QXNzb2NpYXRlZE9iamVjdEtleTsKLQotdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6c2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSwg
TlNBcnJheSAqZXZlbnRzVG9TZW5kKQotewotICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBs
YXRmb3JtV2luZG93KCk7Ci0KLSAgICBmb3IgKE5TRXZlbnQgKmV2ZW50IGluIGV2ZW50c1RvU2Vu
ZCkgewotICAgICAgICAvLyBUYWtlIGZvY3VzIGJhY2sgaW4gY2FzZSB0aGUgSW5zcGVjdG9yIGJl
Y2FtZSBmb2N1c2VkIHdoaWxlIHRoZSBwcmlvciBjb21tYW5kIG9yCi0gICAgICAgIC8vIE5TRXZl
bnQgd2FzIGRlbGl2ZXJlZCB0byB0aGUgd2luZG93LgotICAgICAgICBbd2luZG93IG1ha2VLZXlB
bmRPcmRlckZyb250Om5pbF07Ci0KLSAgICAgICAgbWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1
dG9tYXRpb24oZXZlbnQpOwotICAgICAgICBbd2luZG93IHNlbmRFdmVudDpldmVudF07Ci0gICAg
fQotfQotCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjptYXJrRXZlbnRBc1N5bnRoZXNpemVk
Rm9yQXV0b21hdGlvbihOU0V2ZW50ICpldmVudCkKLXsKLSAgICBvYmpjX3NldEFzc29jaWF0ZWRP
YmplY3QoZXZlbnQsICZzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RL
ZXksIG1fc2Vzc2lvbklkZW50aWZpZXIsIE9CSkNfQVNTT0NJQVRJT05fUkVUQUlOX05PTkFUT01J
Qyk7Ci19Ci0KLWJvb2wgV2ViQXV0b21hdGlvblNlc3Npb246Ondhc0V2ZW50U3ludGhlc2l6ZWRG
b3JBdXRvbWF0aW9uKE5TRXZlbnQgKmV2ZW50KQotewotICAgIE5TU3RyaW5nICpzZW5kZXJTZXNz
aW9uSWRlbnRpZmllciA9IG9iamNfZ2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNp
emVkQXV0b21hdGlvbkV2ZW50QXNzb2NpYXRlZE9iamVjdEtleSk7Ci0gICAgaWYgKFtzZW5kZXJT
ZXNzaW9uSWRlbnRpZmllciBpc0VxdWFsVG9TdHJpbmc6bV9zZXNzaW9uSWRlbnRpZmllcl0pCi0g
ICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgc3dpdGNoIChldmVudC50eXBlKSB7Ci0gICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURvd246Ci0gICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgotICAgIGNhc2UgTlNF
dmVudFR5cGVNb3VzZU1vdmVkOgotICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoK
LSAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURyYWdnZWQ6Ci0gICAgY2FzZSBOU0V2ZW50
VHlwZU90aGVyTW91c2VVcDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246Ci0g
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNFdmVudFR5
cGVSaWdodE1vdXNlVXA6Ci0gICAgICAgIC8vIFVzZSB0aGlzIGFzIGEgYmFja3VwIGZvciBjaGVj
a2luZyBtb3VzZSBldmVudHMsIHdoaWNoIGFyZSBmcmVxdWVudGx5IGNvcGllZAotICAgICAgICAv
LyBhbmQvb3IgZmFrZWQgYnkgQXBwS2l0LCBjYXVzaW5nIHRoZW0gdG8gbG9zZSB0aGVpciBhc3Nv
Y2lhdGVkIG9iamVjdCB0YWcuCi0gICAgICAgIHJldHVybiBldmVudC5ldmVudE51bWJlciA9PSBz
eW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVtYmVyOwotICAgIGRlZmF1bHQ6Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViUGFnZVBy
b3h5JiBwYWdlLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgdmlld1Bvc2l0aW9uLCBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uIGludGVyYWN0aW9uLCBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbiBidXR0b24sIFdlYkV2
ZW50OjpNb2RpZmllcnMga2V5TW9kaWZpZXJzKQotewotICAgIEludFJlY3Qgd2luZG93UmVjdDsK
LSAgICBwYWdlLnJvb3RWaWV3VG9XaW5kb3coSW50UmVjdCh2aWV3UG9zaXRpb24sIEludFNpemUo
KSksIHdpbmRvd1JlY3QpOwotICAgIEludFBvaW50IHdpbmRvd1Bvc2l0aW9uID0gd2luZG93UmVj
dC5sb2NhdGlvbigpOwotCi0gICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJzID0gMDsK
LSAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6Ok1ldGFLZXkpCi0gICAgICAgIG1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKLSAgICBpZiAoa2V5TW9kaWZpZXJz
ICYgV2ViRXZlbnQ6OkFsdEtleSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdPcHRpb247Ci0gICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpDb250cm9sS2V5
KQotICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7Ci0gICAg
aWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpTaGlmdEtleSkKLSAgICAgICAgbW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdTaGlmdDsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2Vi
RXZlbnQ6OkNhcHNMb2NrS2V5KQotICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ0NhcHNMb2NrOwotCi0gICAgTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0
aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOwotICAgIE5TV2luZG93ICp3aW5kb3cgPSBw
YWdlLnBsYXRmb3JtV2luZG93KCk7Ci0gICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRv
dy53aW5kb3dOdW1iZXI7Ci0KLSAgICBOU0V2ZW50VHlwZSBkb3duRXZlbnRUeXBlOwotICAgIE5T
RXZlbnRUeXBlIGRyYWdFdmVudFR5cGU7Ci0gICAgTlNFdmVudFR5cGUgdXBFdmVudFR5cGU7Ci0g
ICAgc3dpdGNoIChidXR0b24pIHsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246Ok1vdXNlQnV0dG9uOjpOb25lOgotICAgICAgICBkb3duRXZlbnRUeXBlID0gdXBFdmVu
dFR5cGUgPSBkcmFnRXZlbnRUeXBlID0gTlNFdmVudFR5cGVNb3VzZU1vdmVkOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0
dG9uOjpMZWZ0OgotICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VE
b3duOwotICAgICAgICBkcmFnRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2Vk
OwotICAgICAgICB1cEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VC
dXR0b246Ok1pZGRsZToKLSAgICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlT3RoZXJN
b3VzZURvd247Ci0gICAgICAgIGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURy
YWdnZWQ7Ci0gICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
TW91c2VCdXR0b246OlJpZ2h0OgotICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjsKLSAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91
c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgYXV0byBldmVudHNUb0JlU2VudCA9
IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotCi0gICAgTlNJbnRlZ2Vy
IGV2ZW50TnVtYmVyID0gc3ludGhlc2l6ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51bWJlcjsKLQot
ICAgIHN3aXRjaCAoaW50ZXJhY3Rpb24pIHsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb246Ok1vdmU6Ci0gICAgICAgIFtldmVudHNUb0Jl
U2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRyYWdFdmVudFR5cGUg
bG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1w
OnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVt
YmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MCBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRl
cmFjdGlvbjo6RG93bjoKLSAgICAgICAgLy8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBv
bmUsIHNpbmNlIGNsaWVudHMgZG9uJ3QgZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCi0gICAg
ICAgIC8vIGRvd24vdXAgZXZlbnRzIHRvIGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3Vi
bGUgY2xpY2sgZXZlbnQuCi0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZl
bnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRp
b24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0
aW9uOjpVcDoKLSAgICAgICAgLy8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNp
bmNlIGNsaWVudHMgZG9uJ3QgZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCi0gICAgICAgIC8v
IGRvd24vdXAgZXZlbnRzIHRvIGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xp
Y2sgZXZlbnQuCi0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlm
aWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRv
d051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEg
cHJlc3N1cmU6MC4wZl1dOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb246OlNpbmdsZUNsaWNrOgotICAgICAg
ICAvLyBTZW5kIHNlcGFyYXRlIGRvd24gYW5kIHVwIGV2ZW50cy4gV2ViQ29yZSB3aWxsIHNlZSB0
aGlzIGFzIGEgc2luZ2xlLWNsaWNrIGV2ZW50LgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9u
OndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3Rh
bXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVu
dE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07Ci0g
ICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9k
aWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4w
Zl1dOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246Ok1vdXNlSW50ZXJhY3Rpb246OkRvdWJsZUNsaWNrOgotICAgICAgICAvLyBTZW5kIG11
bHRpcGxlIGRvd24gYW5kIHVwIGV2ZW50cyB3aXRoIHByb3BlciBjbGljayBjb3VudC4KLSAgICAg
ICAgLy8gV2ViQ29yZSB3aWxsIHNlZSB0aGlzIGFzIGEgc2luZ2xlLWNsaWNrIGV2ZW50IHRoZW4g
ZG91YmxlLWNsaWNrIGV2ZW50LgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltO
U0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bv
c2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93
TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBj
bGlja0NvdW50OjEgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07Ci0gICAgICAgIFtl
dmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZl
bnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRp
bWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBl
dmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOwotICAg
ICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9k
aWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1cmU6V2Vi
Q29yZTo6Rm9yY2VBdENsaWNrXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bv
c2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93
TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBj
bGlja0NvdW50OjIgcHJlc3N1cmU6MC4wZl1dOwotICAgIH0KLQotICAgIHNlbmRTeW50aGVzaXpl
ZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7Ci19Ci0KLXZvaWQgV2Vi
QXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5
JiBwYWdlLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0
aW9uVHlwZSBpbnRlcmFjdGlvbiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleSBrZXkpCi17Ci0gICAgLy8gSWYgdHJ1ZSwgdGhlIGtleSdzIG1vZGlmaWVyIGZsYWdz
IHNob3VsZCBhZmZlY3Qgb3RoZXIgZXZlbnRzIHdoaWxlIHByZXNzZWQgZG93bi4KLSAgICBib29s
IGlzU3RpY2t5TW9kaWZpZXIgPSBmYWxzZTsKLSAgICAvLyBUaGUgbW9kaWZpZXJzIGNoYW5nZWQg
YnkgdGhlIHZpcnR1YWwga2V5IHdoZW4gaXQgaXMgcHJlc3NlZCBvciByZWxlYXNlZC4KLSAgICAv
LyBUaGUgbWFwcGluZyBmcm9tIGtleXMgdG8gbW9kaWZpZXJzIGlzIHNwZWNpZmllZCBpbiB0aGUg
ZG9jdW1lbnRhdGlvbiBmb3IgTlNFdmVudC4KLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBjaGFu
Z2VkTW9kaWZpZXJzID0gMDsKLSAgICAvLyBUaGUgbGlrZWx5IGtleUNvZGUgZm9yIHRoZSB2aXJ0
dWFsIGtleSBhcyBkZWZpbmVkIGluIDxISVRvb2xib3gvRXZlbnRzLmg+LgotICAgIGludCBrZXlD
b2RlID0gMDsKLSAgICAvLyBUeXBpY2FsIGNoYXJhY3RlcnMgcHJvZHVjZWQgYnkgdGhlIHZpcnR1
YWwga2V5LCBpZiBhbnkuCi0gICAgTlNTdHJpbmcgKmNoYXJhY3RlcnMgPSBAIiI7Ci0KLSAgICAv
LyBGSVhNRTogdGhpcyBmdW5jdGlvbiBhbmQgdGhlIEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBz
aG91bGQgcHJvYmFibHkgYWRvcHQga2V5IG5hbWVzCi0gICAgLy8gZnJvbSBXM0MgVUlFdmVudHMg
c3RhbmRhcmQuIEZvciBtb3JlIGRldGFpbHM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50
cy1jb2RlLwotCi0gICAgc3dpdGNoIChrZXkpIHsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNoaWZ0OgotICAgICAgICBpc1N0aWNreU1vZGlm
aWVyID0gdHJ1ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnU2hpZnQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfU2hpZnQ7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29u
dHJvbDoKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfQ29udHJvbDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpBbHRlcm5hdGU6Ci0gICAgICAgIGlzU3RpY2t5
TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdPcHRpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfT3B0aW9uOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok1ldGE6Ci0gICAgICAgIC8vIFRoZSAnbWV0YScga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFw
cGxlIGtleWJvYXJkcyBhbmQgaXMgdXN1YWxseQotICAgICAgICAvLyBtYXBwZWQgdG8gdGhlIENv
bW1hbmQga2V5IHdoZW4gdXNpbmcgdGhpcmQtcGFydHkga2V5Ym9hcmRzLgotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKLSAgICAg
ICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQ29tbWFu
ZDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpIZWxwOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdIZWxwIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAg
ICBrZXlDb2RlID0ga1ZLX0hlbHA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6QmFja3NwYWNlOgotICAgICAgICBr
ZXlDb2RlID0ga1ZLX0RlbGV0ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpUYWI6Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfVGFiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNsZWFyOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZL
X0FOU0lfS2V5cGFkQ2xlYXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW50ZXI6Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfQU5TSV9LZXlwYWRFbnRlcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYXVzZToKLSAgICAgICAgLy8g
VGhlICdwYXVzZScga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFz
IG5vIGtleWNvZGUuCi0gICAgICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVz
dCBhYm9ydCBhbmQgZG8gbm90aGluZy4KLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q2FuY2VsOgotICAgICAgICAv
LyBUaGUgJ2NhbmNlbCcga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQg
aGFzIG5vIGtleWNvZGUuCi0gICAgICAgIC8vIEFjY29yZGluZyB0byB0aGUgaW50ZXJuZXQgaXRz
IGZ1bmN0aW9uYWxpdHkgaXMgc2ltaWxhciB0byAnRXNjYXBlJy4KLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVzY2FwZToKLSAgICAgICAga2V5
Q29kZSA9IGtWS19Fc2NhcGU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGFnZVVwOgotICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19QYWdlVXA7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGFnZURvd246Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2Rl
ID0ga1ZLX1BhZ2VEb3duOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVuZDoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfRW5kOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkhvbWU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0hvbWU7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6TGVmdEFycm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0xlZnRBcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFycm93
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZL
X1VwQXJyb3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UmlnaHRBcnJvdzoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZs
YWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19SaWdodEFycm93OwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkRvd25BcnJvdzoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19Eb3duQXJyb3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SW5zZXJ0OgotICAgICAgICAv
LyBUaGUgJ2luc2VydCcga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQg
aGFzIG5vIGtleWNvZGUuCi0gICAgICAgIC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28g
anVzdCBhYm9ydCBhbmQgZG8gbm90aGluZy4KLSAgICAgICAgcmV0dXJuOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RGVsZXRlOgotICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19Gb3J3YXJkRGVsZXRlOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNwYWNlOgotICAg
ICAgICBrZXlDb2RlID0ga1ZLX1NwYWNlOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIgIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpTZW1pY29sb246Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9TZW1pY29s
b247Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjsiOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0VxdWFsOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI9
IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpSZXR1cm46Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUmV0dXJuOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6Ok51bWJlclBhZDA6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWQwOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIwIjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQxOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMTsKLSAgICAgICAgY2hh
cmFjdGVycyA9IEAiMSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMjoKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5
Q29kZSA9IGtWS19BTlNJX0tleXBhZDI7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjIiOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZp
cnR1YWxLZXk6Ok51bWJlclBhZDM6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlw
YWQzOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIzIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0
OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNDsKLSAgICAgICAgY2hhcmFj
dGVycyA9IEAiNCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNToKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX0tleXBhZDU7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjUiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZDY6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ2
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI2IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3Ogot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFk
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNzsKLSAgICAgICAgY2hhcmFjdGVy
cyA9IEAiNyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkODoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZDg7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjgiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZDk6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ5Owot
ICAgICAgICBjaGFyYWN0ZXJzID0gQCI5IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0aXBs
eToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJp
Y1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZE11bHRpcGx5OwotICAgICAg
ICBjaGFyYWN0ZXJzID0gQCIqIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6Ci0gICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRQbHVzOwotICAgICAgICBjaGFyYWN0ZXJzID0g
QCIrIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRTdWJ0cmFjdDoKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX0tleXBhZE1pbnVzOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCItIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpOdW1iZXJQYWRTZXBhcmF0b3I6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIC8vIFRoZSAnU2VwYXJh
dG9yJyBrZXkgaXMgb25seSBwcmVzZW50IG9uIGEgZmV3IGludGVybmF0aW9uYWwga2V5Ym9hcmRz
LgotICAgICAgICAvLyBJdCBpcyB1c3VhbGx5IG1hcHBlZCB0byB0aGUgc2FtZSBjaGFyYWN0ZXIg
YXMgRGVjaW1hbCAoJy4nIG9yICcsJykuCi0gICAgICAgIEZBTExUSFJPVUdIOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVj
aW1hbDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVt
ZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZERlY2ltYWw7Ci0gICAg
ICAgIC8vIEZJWE1FOiB0aGlzIG1pZ2h0IGJlIGxvY2FsZS1kZXBlbmRlbnQuIFNlZSB0aGUgYWJv
dmUgY29tbWVudC4KLSAgICAgICAgY2hhcmFjdGVycyA9IEAiLiI7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVt
YmVyUGFkRGl2aWRlOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGl2aWRl
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIvIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6Ci0g
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwot
ICAgICAgICBrZXlDb2RlID0ga1ZLX0YxOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMjoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfRjI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24zOgotICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19GMzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjQ6Ci0gICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlD
b2RlID0ga1ZLX0Y0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNToKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfRjU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb242OgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtW
S19GNjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjc6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y3
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uODoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjg7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6RnVuY3Rpb245OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GOTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpGdW5jdGlvbjEwOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMTA7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6RnVuY3Rpb24xMToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjExOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkZ1bmN0aW9uMTI6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgfQotCi0gICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFi
bGVBcnJheSBhbGxvY10gaW5pdF0pOwotCi0gICAgQVNTRVJUKGlzU3RpY2t5TW9kaWZpZXIgfHwg
aW50ZXJhY3Rpb24gPT0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJ
bnRlcmFjdGlvblR5cGU6OktleVByZXNzKTsKLQotICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGV4
aXN0aW5nTW9kaWZpZXJzID0gW05TRXZlbnQgbW9kaWZpZXJGbGFnc107Ci0gICAgTlNFdmVudE1v
ZGlmaWVyRmxhZ3MgdXBkYXRlZE1vZGlmaWVycyA9IDA7Ci0gICAgTlNUaW1lSW50ZXJ2YWwgdGlt
ZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOwotICAgIE5T
V2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7Ci0gICAgTlNJbnRlZ2VyIHdp
bmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7Ci0gICAgTlNQb2ludCBldmVudFBvc2l0
aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKLQotICAgIHN3
aXRjaCAoaW50ZXJhY3Rpb24pIHsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlQcmVzczogewotICAgICAgICBOU0V2
ZW50VHlwZSBldmVudFR5cGUgPSBpc1N0aWNreU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0No
YW5nZWQgOiBOU0V2ZW50VHlwZUtleURvd247Ci0gICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBl
eGlzdGluZ01vZGlmaWVycyB8IGNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0Jl
U2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRp
b246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1w
OnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3Rl
cnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FS
ZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25U
eXBlOjpLZXlSZWxlYXNlOiB7Ci0gICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3Rp
Y2t5TW9kaWZpZXIgPyBOU0V2ZW50VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5VXA7
Ci0gICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyAmIH5jaGFuZ2Vk
TW9kaWZpZXJzOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtl
eUV2ZW50V2l0aFR5cGU6ZXZlbnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJG
bGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndp
bmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1d
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6SW5zZXJ0QnlLZXk6IHsKLSAgICAg
ICAgLy8gU3RpY2t5IG1vZGlmaWVycyBzaG91bGQgZWl0aGVyIGJlICdLZXlQcmVzcycgb3IgJ0tl
eVJlbGVhc2UnLgotICAgICAgICBBU1NFUlQoIWlzU3RpY2t5TW9kaWZpZXIpOwotICAgICAgICBp
ZiAoaXNTdGlja3lNb2RpZmllcikKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICB1cGRh
dGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOwotICAg
ICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1
cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051
bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5n
TW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOwotICAg
ICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBk
YXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1i
ZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotICAgIH0KLQotICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFn
ZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNv
bnN0IFN0cmluZyYga2V5U2VxdWVuY2UpCi17Ci0gICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFk
b3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwotCi0gICAgLy8gU3BsaXQgdGhl
IHRleHQgaW50byBjb21iaW5pbmcgY2hhcmFjdGVyIHNlcXVlbmNlcyBhbmQgc2VuZCBlYWNoIHNl
cGFyYXRlbHkuCi0gICAgLy8gVGhpcyBoYXMgbm8gc2ltaWxhcml0eSB0byBob3cga2V5Ym9hcmRz
IHdvcmsgd2hlbiBpbnB1dHRpbmcgY29tcGxleCB0ZXh0LgotICAgIC8vIFRoaXMgY29tbWFuZCBp
cyBtb3JlIHNpbWlsYXIgdG8gdGhlICdpbnNlcnRUZXh0OicgZWRpdGluZyBjb21tYW5kLCBleGNl
cHQKLSAgICAvLyB0aGF0IHRoaXMgZW1pdHMga2V5dXAva2V5ZG93bi9rZXlwcmVzcyBldmVudHMg
Zm9yIHJvdWdobHkgZWFjaCBjaGFyYWN0ZXIuCi0gICAgLy8gVGhpcyBBUEkgc2hvdWxkIG1vdmUg
bW9yZSB0b3dhcmRzIHRoYXQgZGlyZWN0aW9uIGluIHRoZSBmdXR1cmUuCi0gICAgTlNTdHJpbmcg
KnRleHQgPSBrZXlTZXF1ZW5jZTsKLQotICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVy
cyA9IFtOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdOwotICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFt
cCA9IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKLSAgICBOU1dpbmRv
dyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIE5TSW50ZWdlciB3aW5kb3dO
dW1iZXIgPSB3aW5kb3cud2luZG93TnVtYmVyOwotICAgIE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9
IE5TTWFrZVBvaW50KDAsIHdpbmRvdy5mcmFtZS5zaXplLmhlaWdodCk7Ci0KLSAgICBbdGV4dCBl
bnVtZXJhdGVTdWJzdHJpbmdzSW5SYW5nZTpOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCkgb3B0
aW9uczpOU1N0cmluZ0VudW1lcmF0aW9uQnlDb21wb3NlZENoYXJhY3RlclNlcXVlbmNlcyB1c2lu
Z0Jsb2NrOl4oTlNTdHJpbmcgKnN1YnN0cmluZywgTlNSYW5nZSBzdWJzdHJpbmdSYW5nZSwgTlNS
YW5nZSBlbmNsb3NpbmdSYW5nZSwgQk9PTCAqc3RvcCkgewotICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3du
IGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1w
OnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3Rl
cnM6c3Vic3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVw
ZWF0Ok5PIGtleUNvZGU6MF1dOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltO
U0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpldmVudFBv
c2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93
TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmluZyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBd
XTsKLSAgICB9XTsKLQotICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVu
dHNUb0JlU2VudC5nZXQoKSk7Ci19Ci0KLVN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxh
dGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRs
ZSYgaW1hZ2VEYXRhSGFuZGxlKQotewotICAgIFJlZlB0cjxTaGFyZWFibGVCaXRtYXA+IGJpdG1h
cCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YUhhbmRsZSwgU2hhcmVkTWVtb3J5
OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7Ci0gICAgUmV0YWluUHRyPENHSW1hZ2VSZWY+IGNnSW1h
Z2UgPSBiaXRtYXAtPm1ha2VDR0ltYWdlKCk7Ci0gICAgUmV0YWluUHRyPE5TTXV0YWJsZURhdGE+
IGltYWdlRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0XSk7Ci0gICAg
UmV0YWluUHRyPENHSW1hZ2VEZXN0aW5hdGlvblJlZj4gZGVzdGluYXRpb24gPSBhZG9wdENGKENH
SW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKChDRk11dGFibGVEYXRhUmVmKWltYWdlRGF0
YS5nZXQoKSwga1VUVHlwZVBORywgMSwgMCkpOwotICAgIGlmICghZGVzdGluYXRpb24pCi0gICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKLQotICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFkZEltYWdlKGRl
c3RpbmF0aW9uLmdldCgpLCBjZ0ltYWdlLmdldCgpLCAwKTsKLSAgICBDR0ltYWdlRGVzdGluYXRp
b25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQoKSk7Ci0KLSAgICByZXR1cm4gW2ltYWdlRGF0YSBi
YXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF07Ci19Ci0KLSNlbmRpZiAvLyBVU0UoQVBQ
S0lUKQotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQyL1dlYktp
dDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA5MzlkZGU5YjVkZTA0YTQxZDBlZTUy
ZDUwZGI2NTllM2NmYTAwNGMwLi44MDUxYTc4YTA4ZDY4YzY4ZTNhMjY0ODc2NGNmZTQ2MmMzMTU4
YzAxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0xMjY5LDEyICsxMjY5LDE1IEBACiAJCTk5MEQyOEMwMUM2NTUzRjEwMDk4Njk3
NyAvKiBBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTkwRDI4QjMxQzY1MjZENDAwOTg2OTc3IC8qIEFQSUF1
dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggKi87IH07CiAJCTk5NTVBNkVDMUM3OTgwQzIwMEVCNkE5
MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RUIxQzc5ODBCQjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uLmggKi87IH07CiAJCTk5NTVBNkVEMUM3OTgwQ0EwMEVCNkE5MyAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24u
Y3BwICovOyB9OwotCQk5OTU1QTZFRjFDNzk4MTA4MDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29u
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTk1NUE2RTkx
Qzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5OTU1QTZGNDFDNzk4NkRDMDBFQjZBOTMgLyog
QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMDFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21h
dGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHAgKi87IH07CiAJCTk5NTVBNkY1MUM3OTg2RTAwMEVC
NkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMTFDNzk4NjY0MDBFQjZBOTMgLyog
QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICovOyB9OwogCQk5OTU1QTZGNjFDNzk4NkUz
MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMjFDNzk4NjY0MDBFQjZBOTMg
LyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHAgKi87IH07CiAJCTk5NTVBNkY3MUM3OTg2
RTUwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMzFDNzk4NjY0MDBFQjZBOTMg
LyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oICovOyB9OwotCQk5OTg2QkRENzFDQTlBMjJD
MDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODZCREQ2MUNBOUEyMjIwMDQ4MDBBQSAv
KiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovOyB9OworCQk5OUMzQUUyNDFEQUQ4RTM3
MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gaW4gU291cmNlcyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyog
V2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gKi87IH07CisJCTk5QzNBRTI3MURBRDk0ODkwMEFG
NUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMjYxREFEOTQ4NTAwQUY1QzE2IC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi87IH07CisJCTk5QzNBRTJEMURBREE2QUQwMEFG
NUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMkMxREFEQTZBNzAwQUY1QzE2IC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi87IH07CisJCTk5QzNBRTJFMURBREIwNUMwMEFG
NUMxNiAvKiBBdXRvbWF0aW9uLmpzb24gaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OUMzQUUyOTFEQUQ5RjBGMDBBRjVDMTYgLyogQXV0b21hdGlvbi5qc29u
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTk5QzNB
RTJGMURBREIwNUMwMEFGNUMxNiAvKiBBdXRvbWF0aW9uLWlPUy5qc29uIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMjgxREFEOUYwRjAwQUY1QzE2
IC8qIEF1dG9tYXRpb24taU9TLmpzb24gKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJOTlDODFENTkxQzIwRTFFNTAwNUM0QzgyIC8qIEF1dG9tYXRpb25D
bGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5tbSAqLzsgfTsKIAkJ
OTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERGQkUwMDVD
NEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CiAJCTk5QzgxRDVEMUMyMUYzOEIwMDVD
NEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0b21h
dGlvbkNsaWVudC5oICovOyB9OwpAQCAtMzM2MiwxNCArMzM2NSwxOCBAQAogCQk5OTBEMjhCMzFD
NjUyNkQ0MDA5ODY5NzcgLyogQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTkwRDI4QjcxQzY1MzlBMDAwOTg2OTc3IC8qIEF1
dG9tYXRpb25TZXNzaW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEF1dG9tYXRpb25TZXNzaW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5MEQyOEI4MUM2NTM5QTAwMDk4Njk3NyAvKiBBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEF1dG9tYXRpb25TZXNzaW9u
Q2xpZW50Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTU1QTZFOTFDNzk4MEJC
MDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5qc29uOyBwYXRoID0g
QXV0b21hdGlvbi5qc29uOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OTU1QTZFOTFD
Nzk4MEJCMDBFQjZBOTMgLyogQXV0b21hdGlvbi5qc29uLmluICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEF1dG9tYXRpb24uanNvbi5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1
NUE2RUExQzc5ODBCQjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RUIxQzc5ODBCQjAwRUI2QTkzIC8q
IFdlYkF1dG9tYXRpb25TZXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkF1dG9tYXRpb25TZXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5
NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEF1dG9tYXRpb25CYWNrZW5k
RGlzcGF0Y2hlcnMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZGMTFD
Nzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAv
KiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk5OTU1QTZGMzFDNzk4NjY0MDBFQjZBOTMgLyogQXV0b21hdGlvblBy
b3RvY29sT2JqZWN0cy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvbWF0
aW9uUHJvdG9jb2xPYmplY3RzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTk5ODZC
REQ2MUNBOUEyMjIwMDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25D
b2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FFMjMxREFEOEUzNDAw
QUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW07IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5QzNBRTI2MURBRDk0ODUwMEFGNUMxNiAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJOTlDM0FFMjgxREFEOUYwRjAwQUY1QzE2IC8qIEF1dG9tYXRpb24taU9TLmpzb24g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0Lmpzb247IHBhdGggPSAiQXV0b21hdGlvbi1pT1MuanNvbiI7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5QzNBRTI5MURBRDlGMEYwMEFGNUMxNiAvKiBBdXRv
bWF0aW9uLmpzb24gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0Lmpzb247IHBhdGggPSBBdXRvbWF0aW9uLmpzb247
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5QzNBRTJDMURBREE2QTcwMEFGNUMxNiAv
KiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk5OUM4MUQ1NTFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uQ2xpZW50Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5QzgxRDU2MUMyMERGQkUwMDVDNEM4MiAvKiBB
dXRvbWF0aW9uQ2xpZW50Lm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gQXV0b21hdGlvbkNsaWVudC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlD
ODFENUIxQzIwRTgxNzAwNUM0QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQVBJQXV0b21hdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtNDgwMCw3ICs0ODA3LDYgQEAKIAkJCQkyREFGNEZGQTFCNjM2
MTgxMDA2MDEzRDYgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLmNwcCAqLywKIAkJCQkyRDEyNUM1
QzE4NTdFQTA1MDAzQkEzQ0IgLyogVmlld0dlc3R1cmVDb250cm9sbGVyLmggKi8sCiAJCQkJMkQx
QjVENUExODU4NjU5OTAwNkM2NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5p
biAqLywKLQkJCQk5OTg2QkRENjFDQTlBMjIyMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Np
b25Db2NvYS5tbSAqLywKIAkJCQkxQUMwMjczRTE5NjYyMkQ2MDBDMTJCNzUgLyogV2ViUGFnZVBy
b3h5Q29jb2EubW0gKi8sCiAJCQkJN0M0Njk0Q0IxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdlYlBhc3Rl
Ym9hcmRQcm94eUNvY29hLm1tICovLAogCQkJCUNEQTI5QTFFMUNCRUI1RkIwMDkwMUNDRiAvKiBX
ZWJQbGF5YmFja1Nlc3Npb25NYW5hZ2VyUHJveHkuaCAqLywKQEAgLTU4NTAsMTQgKzU4NTYsMzMg
QEAKIAkJOTk1NUE2RTgxQzc5ODA5MDAwRUI2QTkzIC8qIEF1dG9tYXRpb24gKi8gPSB7CiAJCQlp
c2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAotCQkJCTk5NTVBNkU5MUM3OTgwQkIwMEVC
NkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gKi8sCisJCQkJOTlDM0FFMjUxREFEOTQ2NzAwQUY1QzE2
IC8qIGNvY29hICovLAorCQkJCTk5QzNBRTIyMURBRDhFMTQwMEFGNUMxNiAvKiBtYWMgKi8sCisJ
CQkJOTk1NUE2RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbi5pbiAqLywKIAkJ
CQk5OTU1QTZFQTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uY3BwICov
LAogCQkJCTk5NTVBNkVCMUM3OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5o
ICovLAogCQkJCTFDMEExOTU5MUM5MDA2RUEwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lv
bi5tZXNzYWdlcy5pbiAqLywKKwkJCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0
b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQXV0b21hdGlvbjsK
IAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTk5QzNBRTIyMURBRDhFMTQwMEFG
NUMxNiAvKiBtYWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAor
CQkJCTk5QzNBRTIzMURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5t
bSAqLywKKwkJCSk7CisJCQlwYXRoID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsK
KwkJfTsKKwkJOTlDM0FFMjUxREFEOTQ2NzAwQUY1QzE2IC8qIGNvY29hICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5OUMzQUUyNjFEQUQ5NDg1MDBBRjVD
MTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0g
Y29jb2E7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTgyRDVCMTFCRTZC
Q0Y0MDA4N0E3Q0MgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJl
biA9ICgKQEAgLTcwNzMsNiArNzA5OCw4IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQk1MTJGNThB
MDEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25NYW5hZ2VyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk1MTJGNThBMTEyQTg4M0FEMDA2Mjk1MzAgLyogQXV0aGVudGljYXRpb25N
YW5hZ2VyTWVzc2FnZXMuaCAqLywKKwkJCQk5OUMzQUUyOTFEQUQ5RjBGMDBBRjVDMTYgLyogQXV0
b21hdGlvbi5qc29uICovLAorCQkJCTk5QzNBRTI4MURBRDlGMEYwMEFGNUMxNiAvKiBBdXRvbWF0
aW9uLWlPUy5qc29uICovLAogCQkJCTk5NTVBNkYwMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0
aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCAqLywKIAkJCQk5OTU1QTZGMTFDNzk4NjY0MDBFQjZB
OTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICovLAogCQkJCTk5NTVBNkYyMUM3
OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCAqLywKQEAgLTc0
NjEsNiArNzQ4OCw4IEBACiAJCQkJMzdBNjRFNTUxOEYzOEUzQzAwRUIzMEYxIC8qIF9XS0lucHV0
RGVsZWdhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENzkwQTlEMUFENzA1MEQwMEFCOTBCMyAv
KiBfV0tMYXlvdXRNb2RlLmggaW4gSGVhZGVycyAqLywKIAkJCQlBMTE4QTlGMzE5MDhCOEVBMDBG
N0M5MkIgLyogX1dLTlNGaWxlTWFuYWdlckV4dHJhcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTlD
M0FFMkUxREFEQjA1QzAwQUY1QzE2IC8qIEF1dG9tYXRpb24uanNvbiBpbiBIZWFkZXJzICovLAor
CQkJCTk5QzNBRTJGMURBREIwNUMwMEFGNUMxNiAvKiBBdXRvbWF0aW9uLWlPUy5qc29uIGluIEhl
YWRlcnMgKi8sCiAJCQkJOTMyMzYxMUUxQjAxNURBODAwRkE5MjMyIC8qIF9XS092ZXJsYXlTY3Jv
bGxiYXJTdHlsZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE0M0U4MkExODhGM0NEQzAwOUU0RDMw
IC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0M4
OUQyRDcxQTZDNkJFNjAwM0E1RkRFIC8qIF9XS1Byb2Nlc3NQb29sQ29uZmlndXJhdGlvbkludGVy
bmFsLmggaW4gSGVhZGVycyAqLywKQEAgLTc1NjcsNyArNzU5Niw2IEBACiAJCQkJNTE4RThFRjkx
NkIyMDkxQzAwRTkxNDI5IC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTEyRjU4QTMxMkE4ODNBRDAwNjI5NTMwIC8qIEF1dGhlbnRpY2F0aW9uTWFuYWdlck1l
c3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QxMDJEQTE4NjY3NzA2MDBFRDQyOUQgLyog
QXV0b0NvcnJlY3Rpb25DYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCi0JCQkJOTk1NUE2RUYxQzc5
ODEwODAwRUI2QTkzIC8qIEF1dG9tYXRpb24uanNvbiBpbiBIZWFkZXJzICovLAogCQkJCTk5NTVB
NkY1MUM3OTg2RTAwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5OUM4MUQ1QTFDMjBFN0UyMDA1QzRDODIgLyogQXV0b21hdGlvbkNs
aWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8qIEF1
dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovLApAQCAtODA4OCw2ICs4MTE2
LDcgQEAKIAkJCQlCQzQ5ODYyRjEyNEQxOEMxMDBEODM0RTEgLyogV0tCdW5kbGVIaXRUZXN0UmVz
dWx0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzIwNEVGMjExQzgzRUM4MDA4RjMzNzUgLyogV0tC
dW5kbGVJbml0aWFsaXplLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NUI4NkYxRTEyRjExREUzMDBC
N0REOEEgLyogV0tCdW5kbGVJbnNwZWN0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTk5QzNBRTJE
MURBREE2QUQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUE4QjY2QjQxQkM0NUIwMTAwODJERjc3IC8qIFdLQnVuZGxlTWFjLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCQzcwNDNDQzEyRjc1RUUwMDA2NDcyQjkgLyogV0tCdW5kbGVOYXZp
Z2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MUE3MjhERTFCMUJBRDM4MDAxMDJF
RUUgLyogV0tCdW5kbGVOYXZpZ2F0aW9uQWN0aW9uUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8sCkBA
IC05MTk5LDYgKzkyMjgsNyBAQAogCQkJCTUxRkQxOEI1MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJRTE1MjU1MUExNzAxMTgx
OTAwM0Q3QURCIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4g
U291cmNlcyAqLywKIAkJCQk1QzE0MjZFRjFDMjNGODA5MDBENDExODMgLyogTmV0d29ya1Jlc291
cmNlTG9hZFBhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJOTlDM0FFMjcxREFEOTQ4
OTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQlCQzgyODNBQzE2QjRCRjNGMDBBMjc4RkUgLyogTmV0d29ya1NlcnZpY2VFbnRyeVBvaW50
Lm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMyMENCOUQxQkIwRENGQTAwODk1QkIxIC8qIE5ldHdv
cmtTZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQkzMUEyRUM1NTE0ODk5ODJFMDA4
MTBENzEgLyogTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3QuY3BwIGluIFNvdXJjZXMgKi8s
CkBAIC05MzYzLDcgKzkzOTMsNiBAQAogCQkJCTFBOEU3RDNDMThDMTUxNDkwMDVBNzAyQSAvKiBW
aXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlDRURBMTJFMjE1MkNEMUFFMDBEOUUwOEQgLyogV2ViQWx0ZXJuYXRpdmVUZXh0Q2xp
ZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTk5NTVBNkVEMUM3OTgwQ0EwMEVCNkE5MyAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKLQkJCQk5OTg2QkRENzFDQTlB
MjJDMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICov
LAogCQkJCTFDMEExOTU3MUM5MDA2OEYwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQzBBMTk0NjFDOEZGMUE4MDBG
RTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eS5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQkxQzBBMTk1MzFDOEZGREZCMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKQEAgLTk1MDcsNiArOTUzNiw3IEBACiAJ
CQkJQkNCRDM5MTQxMjVCQjFBODAwRDJDMjlGIC8qIFdlYlBhZ2VQcm94eU1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MTIxMjdDMzE5MDgyMzlBMDBEQUYzNUMgLyogV2Vi
UGFzdGVib2FyZE92ZXJyaWRlcy5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2OTREMDFBNTFF
MzY4MDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFByb3h5LmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTk5QzNBRTI0MURBRDhFMzcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBp
biBTb3VyY2VzICovLAogCQkJCTdDNDY5NENDMUE0QjUxMEEwMEFENTg0NSAvKiBXZWJQYXN0ZWJv
YXJkUHJveHlDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCTdDNDY5NEM5MUE0QjRFQTEwMEFE
NTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMUFCMUY3NzQxRDFCMkY4QTAwN0M5QkQxIC8qIFdlYlBheW1lbnRDb29yZGluYXRv
ci5jcHAgaW4gU291cmNlcyAqLywK
</data>
<flag name="review"
          id="314656"
          type_id="1"
          status="+"
          setter="joepeck"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299089</attachid>
            <date>2017-01-17 17:05:33 -0800</date>
            <delta_ts>2017-01-17 18:16:33 -0800</delta_ts>
            <desc>Proposed Fix v2</desc>
            <filename>bug-163297-20170117170356.patch</filename>
            <type>text/plain</type>
            <size>88733</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGQwMDQ5MmZjMDM1ZmE3
ZTNmZTFkYWIxNmQzZTA2MzhkYzM1NjliYi4uYzJhMjA1ZmNkOTQzMjUyYTMyNTgxMGZmYjFjZGVm
N2FhNDllYTEwZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU0IEBACisyMDE3LTAxLTE3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
TWFjLXNwZWNpZmljIGF1dG9tYXRpb24gY29tbWFuZHMgdG8gYSBzZXBhcmF0ZSBpbXBsZW1lbnRh
dGlvbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjMyOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBhbGwgQXV0b21hdGlvbiBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuIFN0YXJ0IHNwbGl0dGluZyBv
dXQKKyAgICAgICAgY29tbWFuZCBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBiYXNl
ZCBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRp
b24vQXV0b21hdGlvbi5qc29uOgorICAgICAgICBHdWFyZCBjb21tYW5kcyB0aGF0IHNob3VsZCBu
b3QgYmUgYXZhaWxhYmxlIG9uIGlPUzoKKyAgICAgICAgICAgIC0gcmVzaXplV2luZG93T2ZCcm93
c2luZ0NvbnRleHQKKyAgICAgICAgICAgIC0gbW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0Cisg
ICAgICAgICAgICAtIGluc3BlY3RCcm93c2luZ0NvbnRleHQKKworICAgICAgICAqIFVJUHJvY2Vz
cy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0
QnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgLSBCdWlsZCB0aGVzZSBmb3IgUExBVEZPUk0oTUFD
KS4KKworICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11
bGF0ZUtleVNlcXVlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgLSBNb3ZlIHNoYXJlZCBjb252ZW5p
ZW5jZSBtYWNyb3MgdG8gaGVhZGVyIGZpbGUuCisgICAgICAgIC0gTW92ZSBvdXQgQ29jb2Etb25s
eSBvciBNYWMtb25seSBjb21tYW5kIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAqIFVJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgIFJlYXJyYW5n
ZSBzb21lIGRlY2xhcmF0aW9ucyBhbmQgc3dpdGNoIGZyb20gVVNFKEFQUEtJVCkgdG8gUExBVEZP
Uk0oTUFDKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uTWFjcm9zLmg6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24v
Y29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTogQWRkZWQuCisgICAgICAgIChXZWJL
aXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRh
KToKKyAgICAgICAgTW92ZWQgZnJvbSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tLiBBZGQg
aU9TLXNwZWNpZmljIGhlYWRlciBpbmNsdWRlcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRv
bWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tLgor
ICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5bnRoZXNpemVkRXZl
bnRzVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om1hcmtF
dmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246Ondhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKToKKyAgICAg
ICAgTW92ZSBvdXQgQXBwS2l0LXNwZWNpZmljIGV2ZW50IHNpbXVsYXRpb24gY29kZSB0byBoZXJl
LgorCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVs
YXRlTW91c2VJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNz
aW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6CisgICAgICAgIE1v
dmUgb3V0IE1hYyBwbGF0Zm9ybUZvbyBpbXBsZW1lbnRhdGlvbnMgdG8gaGVyZS4KKworICAgICAg
ICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBBZGRlZCBV
SVByb2Nlc3MvQXV0b21hdGlvbi97bWFjLGNvY29hfSBncm91cHMuCisgICAgICAgIC0gQWRkIG5l
dyBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBmaWxlcy4KKwogMjAxNy0wMS0xNyAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQW4gdXBkYXRlIHRv
IG9uZSBnYW1lcGFkJ3MgdmFsdWVzIHNob3VsZCBvbmx5IGNoYW5nZSB0aGF0IGdhbWVwYWQncyBt
b2RpZmllZCB0aW1lc3RhbXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggZTZiYTA3ZGM5
NWM0NDY3OTc0OTgzYzUxNWY1MGE0NzVhZWUwM2M1ZS4uZGY3N2QxYzdlZGQwNWYxODE2OGY3YjQ0
YjM2OWM2MjRjZTI5YzRjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1
dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMjgsNiArMjgsNyBA
QAogCiAjaW5jbHVkZSAiQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCIKICNpbmNsdWRlICJB
dXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgiCisjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Np
b25NYWNyb3MuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb25Qcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViQ29va2llTWFuYWdlclByb3h5LmgiCkBAIC00NCwzMiArNDUsNiBAQAogCiB1c2luZyBuYW1l
c3BhY2UgSW5zcGVjdG9yOwogCi1zdGF0aWMgY29uc3QgY2hhciogY29uc3QgZXJyb3JOYW1lQW5k
RGV0YWlsc1NlcGFyYXRvciA9ICI7IjsKLQotLy8gTWFrZSBzdXJlIHRoZSBwcmVkZWZpbmVkIGVy
cm9yIG5hbWUgaXMgdmFsaWQsIG90aGVyd2lzZSB1c2UgSW50ZXJuYWxFcnJvci4KLSNkZWZpbmUg
VkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JTdHJpbmcpIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1WYWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlPihlcnJvclN0cmluZykudmFsdWVfb3Io
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjpJbnRlcm5hbEVy
cm9yKQotCi0vLyBJZiB0aGUgZXJyb3IgbmFtZSBpcyBpbmNvcnJlY3QgZm9yIHRoZXNlIG1hY3Jv
cywgaXQgd2lsbCBiZSBhIGNvbXBpbGUtdGltZSBlcnJvci4KLSNkZWZpbmUgU1RSSU5HX0ZPUl9Q
UkVERUZJTkVEX0VSUk9SX05BTUUoZXJyb3JOYW1lKSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjplcnJvck5hbWUpCi0jZGVmaW5lIFNUUklOR19GT1Jf
UFJFREVGSU5FRF9FUlJPUl9OQU1FX0FORF9ERVRBSUxTKGVycm9yTmFtZSwgZGV0YWlsc1N0cmlu
ZykgbWFrZVN0cmluZyhJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0
RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JN
ZXNzYWdlOjplcnJvck5hbWUpLCBlcnJvck5hbWVBbmREZXRhaWxzU2VwYXJhdG9yLCBkZXRhaWxz
U3RyaW5nKQotCi0vLyBJZiB0aGUgZXJyb3IgbWVzc2FnZSBpcyBub3QgYSBwcmVkZWZpbmVkIGVy
cm9yLCBJbnRlcm5hbEVycm9yIHdpbGwgYmUgdXNlZCBpbnN0ZWFkLgotI2RlZmluZSBTVFJJTkdf
Rk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRShlcnJvck1lc3NhZ2UpIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShWQUxJREFURURf
RVJST1JfTUVTU0FHRShlcnJvck1lc3NhZ2UpKQotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklO
RURfRVJST1JfTUVTU0FHRV9BTkRfREVUQUlMUyhlcnJvck1lc3NhZ2UsIGRldGFpbHNTdHJpbmcp
IG1ha2VTdHJpbmcoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVu
dW1Db25zdGFudFZhbHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkpLCBl
cnJvck5hbWVBbmREZXRhaWxzU2VwYXJhdG9yLCBkZXRhaWxzU3RyaW5nKQotCi0vLyBDb252ZW5p
ZW5jZSBtYWNyb3MgZm9yIGZpbGxpbmcgaW4gdGhlIGVycm9yIHN0cmluZyBvZiBzeW5jaHJvbm91
cyBjb21tYW5kcyBpbiBiYWlsb3V0IGJyYW5jaGVzLgotI2RlZmluZSBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihlcnJvck5hbWUpIFwKLWRvIHsgXAotICAgIGVycm9yU3RyaW5nID0gU1RSSU5H
X0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoZXJyb3JOYW1lKTsgXAotICAgIHJldHVybjsgXAot
fSB3aGlsZSAoZmFsc2UpCi0KLSNkZWZpbmUgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKSBcCi1kbyB7IFwKLSAgICBlcnJvclN0
cmluZyA9IFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FX0FORF9ERVRBSUxTKGVycm9y
TmFtZSwgZGV0YWlsc1N0cmluZyk7IFwKLSAgICByZXR1cm47IFwKLX0gd2hpbGUgKGZhbHNlKQot
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogV2ViQXV0b21hdGlvblNlc3Npb246OldlYkF1dG9tYXRp
b25TZXNzaW9uKCkKQEAgLTI0NSw2ICsyMjAsOCBAQCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Ygog
ICAgICAgICAucmVsZWFzZSgpOwogfQogCisvLyBQbGF0Zm9ybS1pbmRlcGVuZGVudCBDb21tYW5k
cy4KKwogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0QnJvd3NpbmdDb250ZXh0cyhJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkFycmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4
dD4+JiBjb250ZXh0cykKIHsKICAgICBjb250ZXh0cyA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFy
cmF5PEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD46OmNy
ZWF0ZSgpOwpAQCAtMzExLDgwICsyODgsNiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpz
d2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvcgogICAg
IHBhZ2UtPnByb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5
OjpGb2N1c0ZyYW1lKHBhZ2UtPnBhZ2VJRCgpLCBmcmFtZUlELnZhbHVlKCkpLCAwKTsKIH0KIAot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxl
LCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZU9iamVjdCkKLXsKLSAgICBm
bG9hdCB3aWR0aDsKLSAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRl
cmFsKCJ3aWR0aCIpLCB3aWR0aCkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9S
X0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3dpZHRoJyBwYXJhbWV0ZXIgd2Fz
IG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAgZmxvYXQgaGVpZ2h0OwotICAgIGlmICgh
c2l6ZU9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoImhlaWdodCIpLCBoZWlnaHQp
KQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5n
UGFyYW1ldGVyLCAiVGhlICdoZWlnaHQnIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFs
aWQuIik7Ci0KLSAgICBpZiAod2lkdGggPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd3aWR0aCcgcGFyYW1l
dGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVlLiIpOwotCi0gICAgaWYgKGhlaWdodCA8IDApCi0gICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0
ZXIsICJUaGUgJ2hlaWdodCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVlLiIpOwotCi0g
ICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRsZSk7Ci0g
ICAgaWYgKCFwYWdlKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3JpZ2luYWxGcmFtZTsKLSAgICBw
YWdlLT5nZXRXaW5kb3dGcmFtZShvcmlnaW5hbEZyYW1lKTsKLQotICAgIFdlYkNvcmU6OkZsb2F0
UmVjdCBuZXdGcmFtZSA9IFdlYkNvcmU6OkZsb2F0UmVjdChvcmlnaW5hbEZyYW1lLmxvY2F0aW9u
KCksIFdlYkNvcmU6OkZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7Ci0gICAgaWYgKG5ld0ZyYW1l
ID09IG9yaWdpbmFsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPnNldFdpbmRv
d0ZyYW1lKG5ld0ZyYW1lKTsKLQotICAgIC8vIElmIG5vdGhpbmcgY2hhbmdlZCBhdCBhbGwsIGl0
J3MgcHJvYmFibHkgZmFpciB0byByZXBvcnQgdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZy4KLSAg
ICAvLyAoV2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFtZSBzaXplIHdpbGwg
YmUgaG9ub3JlZCBleGFjdGx5LCBob3dldmVyLikKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdXBk
YXRlZEZyYW1lOwotICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKHVwZGF0ZWRGcmFtZSk7Ci0gICAg
aWYgKG9yaWdpbmFsRnJhbWUgPT0gdXBkYXRlZEZyYW1lKQotICAgICAgICBGQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAiVGhlIHdpbmRvdyBzaXpl
IHdhcyBleHBlY3RlZCB0byBoYXZlIGNoYW5nZWQsIGJ1dCBkaWQgbm90LiIpOwotfQotCi12b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjptb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25z
dCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb25PYmplY3QpCi17Ci0gICAgZmxv
YXQgeDsKLSAgICBpZiAoIXBvc2l0aW9uT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJh
bCgieCIpLCB4KSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJ
TFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAneCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3Ig
aW52YWxpZC4iKTsKLQotICAgIGZsb2F0IHk7Ci0gICAgaWYgKCFwb3NpdGlvbk9iamVjdC5nZXRE
b3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoInkiKSwgeSkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3knIHBhcmFt
ZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7Ci0KLSAgICBpZiAoeCA8IDApCi0gICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0
ZXIsICJUaGUgJ3gnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIGlm
ICh5IDwgMCkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSAneScgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVl
LiIpOwotCi0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhh
bmRsZSk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
UihXaW5kb3dOb3RGb3VuZCk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3JpZ2luYWxGcmFt
ZTsKLSAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZShvcmlnaW5hbEZyYW1lKTsKLQotICAgIFdlYkNv
cmU6OkZsb2F0UmVjdCBuZXdGcmFtZSA9IFdlYkNvcmU6OkZsb2F0UmVjdChXZWJDb3JlOjpGbG9h
dFBvaW50KHgsIHkpLCBvcmlnaW5hbEZyYW1lLnNpemUoKSk7Ci0gICAgaWYgKG5ld0ZyYW1lID09
IG9yaWdpbmFsRnJhbWUpCi0gICAgICAgIHJldHVybjsKLQotICAgIHBhZ2UtPnNldFdpbmRvd0Zy
YW1lKG5ld0ZyYW1lKTsKLQotICAgIC8vIElmIG5vdGhpbmcgY2hhbmdlZCBhdCBhbGwsIGl0J3Mg
cHJvYmFibHkgZmFpciB0byByZXBvcnQgdGhhdCBzb21ldGhpbmcgd2VudCB3cm9uZy4KLSAgICAv
LyAoV2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFtZSBzaXplIHdpbGwgYmUg
aG9ub3JlZCBleGFjdGx5LCBob3dldmVyLikKLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgdXBkYXRl
ZEZyYW1lOwotICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKHVwZGF0ZWRGcmFtZSk7Ci0gICAgaWYg
KG9yaWdpbmFsRnJhbWUgPT0gdXBkYXRlZEZyYW1lKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAiVGhlIHdpbmRvdyBwb3NpdGlv
biB3YXMgZXhwZWN0ZWQgdG8gaGF2ZSBjaGFuZ2VkLCBidXQgZGlkIG5vdC4iKTsKLX0KLQogdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGVCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBT
dHJpbmcmIHVybCwgUmVmPE5hdmlnYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJh
Y2spCiB7CiAgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhh
bmRsZSk7CkBAIC00MzgsMjcgKzM0MSw2IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnJl
bG9hZEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0CiAgICAg
cGFnZS0+cmVsb2FkKHJlbG9hZEZyb21PcmlnaW4sIHsgfSk7CiB9CiAKLXZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246Omluc3BlY3RCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBib29sKiBvcHRpb25h
bEVuYWJsZUF1dG9DYXB0dXJpbmcsIFJlZjxJbnNwZWN0QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+
JiYgY2FsbGJhY2spCi17Ci0gICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9y
SGFuZGxlKGhhbmRsZSk7Ci0gICAgaWYgKCFwYWdlKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7Ci0KLSAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1f
cGVuZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLT5wYWdlSUQoKSkpCi0g
ICAgICAgIGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1Jf
TkFNRShUaW1lb3V0KSk7Ci0gICAgbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZS5z
ZXQocGFnZS0+cGFnZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKLQotICAgIC8vIERvbid0IGJy
aW5nIHRoZSBpbnNwZWN0b3IgdG8gZnJvbnQgc2luY2UgdGhpcyBtYXkgYmUgZG9uZSBhdXRvbWF0
aWNhbGx5LgotICAgIC8vIFdlIGp1c3Qgd2FudCBpdCBsb2FkZWQgc28gaXQgY2FuIHBhdXNlIGlm
IGEgYnJlYWtwb2ludCBpcyBoaXQgZHVyaW5nIGEgY29tbWFuZC4KLSAgICBpZiAocGFnZS0+aW5z
cGVjdG9yKCkpIHsKLSAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPmNvbm5lY3QoKTsKLQotICAg
ICAgICAvLyBTdGFydCBjb2xsZWN0aW5nIHByb2ZpbGUgaW5mb3JtYXRpb24gaW1tZWRpYXRlbHkg
c28gdGhlIGVudGlyZSBzZXNzaW9uIGlzIGNhcHR1cmVkLgotICAgICAgICBpZiAob3B0aW9uYWxF
bmFibGVBdXRvQ2FwdHVyaW5nICYmICpvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcpCi0gICAg
ICAgICAgICBwYWdlLT5pbnNwZWN0b3IoKS0+dG9nZ2xlUGFnZVByb2ZpbGluZygpOwotICAgIH0K
LX0KLQogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bmF2aWdhdGlvbk9jY3VycmVkRm9yUGFn
ZShjb25zdCBXZWJQYWdlUHJveHkmIHBhZ2UpCiB7CiAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBt
X3BlbmRpbmdOYXZpZ2F0aW9uSW5Ccm93c2luZ0NvbnRleHRDYWxsYmFja3NQZXJQYWdlLnRha2Uo
cGFnZS5wYWdlSUQoKSkpCkBAIC0xMDQzLDcgKzkyNSwxMDYgQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6ZGlkVGFrZVNjcmVlbnNob3QodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU2hh
cmVhYmwKICAgICBjYWxsYmFjay0+c2VuZFN1Y2Nlc3MoYmFzZTY0RW5jb2RlZERhdGEpOwogfQog
Ci0jaWYgIVVTRShBUFBLSVQpCisjaWYgIVBMQVRGT1JNKElPUykKK3ZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9y
OjpJbnNwZWN0b3JPYmplY3QmIHNpemVPYmplY3QpCit7CisgICAgZmxvYXQgd2lkdGg7CisgICAg
aWYgKCFzaXplT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2lk
dGgpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNz
aW5nUGFyYW1ldGVyLCAiVGhlICd3aWR0aCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52
YWxpZC4iKTsKKworICAgIGZsb2F0IGhlaWdodDsKKyAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91
YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJoZWlnaHQiKSwgaGVpZ2h0KSkKKyAgICAgICAgRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAn
aGVpZ2h0JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOworCisgICAgaWYg
KHdpZHRoIDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJ
TFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSAnd2lkdGgnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxp
ZCB2YWx1ZS4iKTsKKworICAgIGlmIChoZWlnaHQgPCAwKQorICAgICAgICBGQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICdoZWlnaHQn
IHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKKworICAgIFdlYlBhZ2VQcm94eSog
cGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICghcGFnZSkKKyAg
ICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOworCisgICAg
V2ViQ29yZTo6RmxvYXRSZWN0IG9yaWdpbmFsRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJh
bWUob3JpZ2luYWxGcmFtZSk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBX
ZWJDb3JlOjpGbG9hdFJlY3Qob3JpZ2luYWxGcmFtZS5sb2NhdGlvbigpLCBXZWJDb3JlOjpGbG9h
dFNpemUod2lkdGgsIGhlaWdodCkpOworICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1l
KQorICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7
CisKKyAgICAvLyBJZiBub3RoaW5nIGNoYW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIg
dG8gcmVwb3J0IHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgICAgLy8gKFdlIGNhbid0IGFz
c3VtZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3Rs
eSwgaG93ZXZlci4pCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKKyAgICBw
YWdlLT5nZXRXaW5kb3dGcmFtZSh1cGRhdGVkRnJhbWUpOworICAgIGlmIChvcmlnaW5hbEZyYW1l
ID09IHVwZGF0ZWRGcmFtZSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoSW50ZXJuYWxFcnJvciwgIlRoZSB3aW5kb3cgc2l6ZSB3YXMgZXhwZWN0ZWQgdG8g
aGF2ZSBjaGFuZ2VkLCBidXQgZGlkIG5vdC4iKTsKK30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6bW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JPYmplY3QmIHBvc2l0aW9uT2JqZWN0KQoreworICAgIGZsb2F0IHg7CisgICAgaWYgKCFw
b3NpdGlvbk9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoIngiKSwgeCkpCisgICAg
ICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0
ZXIsICJUaGUgJ3gnIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7CisKKyAg
ICBmbG9hdCB5OworICAgIGlmICghcG9zaXRpb25PYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlM
aXRlcmFsKCJ5IiksIHkpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRf
REVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd5JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3Vu
ZCBvciBpbnZhbGlkLiIpOworCisgICAgaWYgKHggPCAwKQorICAgICAgICBGQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJh
bWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7CisKKyAgICBpZiAoeSA8IDApCisgICAgICAg
IEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIs
ICJUaGUgJ3knIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKKworICAgIFdlYlBh
Z2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICgh
cGFnZSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQp
OworCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IG9yaWdpbmFsRnJhbWU7CisgICAgcGFnZS0+Z2V0
V2luZG93RnJhbWUob3JpZ2luYWxGcmFtZSk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3
RnJhbWUgPSBXZWJDb3JlOjpGbG9hdFJlY3QoV2ViQ29yZTo6RmxvYXRQb2ludCh4LCB5KSwgb3Jp
Z2luYWxGcmFtZS5zaXplKCkpOworICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQor
ICAgICAgICByZXR1cm47CisKKyAgICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7CisK
KyAgICAvLyBJZiBub3RoaW5nIGNoYW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8g
cmVwb3J0IHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgICAgLy8gKFdlIGNhbid0IGFzc3Vt
ZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwg
aG93ZXZlci4pCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKKyAgICBwYWdl
LT5nZXRXaW5kb3dGcmFtZSh1cGRhdGVkRnJhbWUpOworICAgIGlmIChvcmlnaW5hbEZyYW1lID09
IHVwZGF0ZWRGcmFtZSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RF
VEFJTFMoSW50ZXJuYWxFcnJvciwgIlRoZSB3aW5kb3cgcG9zaXRpb24gd2FzIGV4cGVjdGVkIHRv
IGhhdmUgY2hhbmdlZCwgYnV0IGRpZCBub3QuIik7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246Omluc3BlY3RCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJy
b3JTdHJpbmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBib29sKiBvcHRpb25hbEVuYWJs
ZUF1dG9DYXB0dXJpbmcsIFJlZjxJbnNwZWN0QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2Fs
bGJhY2spCit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxl
KGhhbmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUihXaW5kb3dOb3RGb3VuZCk7CisKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGlu
Z0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLT5wYWdlSUQoKSkpCisgICAgICAg
IGNhbGxiYWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShU
aW1lb3V0KSk7CisgICAgbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZS5zZXQocGFn
ZS0+cGFnZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIC8vIERvbid0IGJyaW5nIHRo
ZSBpbnNwZWN0b3IgdG8gZnJvbnQgc2luY2UgdGhpcyBtYXkgYmUgZG9uZSBhdXRvbWF0aWNhbGx5
LgorICAgIC8vIFdlIGp1c3Qgd2FudCBpdCBsb2FkZWQgc28gaXQgY2FuIHBhdXNlIGlmIGEgYnJl
YWtwb2ludCBpcyBoaXQgZHVyaW5nIGEgY29tbWFuZC4KKyAgICBpZiAocGFnZS0+aW5zcGVjdG9y
KCkpIHsKKyAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPmNvbm5lY3QoKTsKKworICAgICAgICAv
LyBTdGFydCBjb2xsZWN0aW5nIHByb2ZpbGUgaW5mb3JtYXRpb24gaW1tZWRpYXRlbHkgc28gdGhl
IGVudGlyZSBzZXNzaW9uIGlzIGNhcHR1cmVkLgorICAgICAgICBpZiAob3B0aW9uYWxFbmFibGVB
dXRvQ2FwdHVyaW5nICYmICpvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcpCisgICAgICAgICAg
ICBwYWdlLT5pbnNwZWN0b3IoKS0+dG9nZ2xlUGFnZVByb2ZpbGluZygpOworICAgIH0KK30KKyNl
bmRpZiAvLyAhUExBVEZPUk0oSU9TKQorCisvLyBQbGF0Zm9ybS1kZXBlbmRlbnQgSW1wbGVtZW50
YXRpb24gU3R1YnMuCisKKyNpZiAhUExBVEZPUk0oTUFDKQogdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6cGxhdGZvcm1TaW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViS2l0OjpXZWJQYWdlUHJv
eHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246Ok1vdXNlSW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlQnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJzKQogewogfQpAQCAtMTA1NSwxMSArMTAz
NiwxMyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ry
b2tlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rvcjo6UAogdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFN0cmlu
ZyYpCiB7CiB9CisjZW5kaWYgLy8gIVBMQVRGT1JNKE1BQykKIAorI2lmICFQTEFURk9STShDT0NP
QSkKIFN0cmluZyBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVk
UE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6OkhhbmRsZSYpCiB7CiAgICAgcmV0dXJuIFN0
cmluZygpOwogfQotI2VuZGlmIC8vICFVU0UoQVBQS0lUKQorI2VuZGlmIC8vICFQTEFURk9STShD
T0NPQSkKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uaAppbmRleCA2
MDI0YWE0OWJiMzA2MDg3NzMzOTJiNjA4ZTE4YTMwMTNhMDBjMTgzLi5iMzFjNTViZGFlOTZjNTQx
OTVhNjIxNTFhYzc5YWRjMDQ2Nzg1ZDY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTk2LDE4ICs5
NiwxOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB0ZXJtaW5hdGUoKTsKIAogICAgIC8vIEluc3BlY3Rv
cjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlciBBUEkKKyAgICAvLyBOT1RFOiB0
aGUgc2V0IG9mIGRlY2xhcmF0aW9ucyBpbmNsdWRlZCBpbiB0aGlzIGludGVyZmFjZSBkZXBlbmQg
b24gdGhlICJwbGF0Zm9ybSIgcHJvcGVydHkgaW4gQXV0b21hdGlvbi5qc29uCisgICAgLy8gYW5k
IHRoZSAtLXBsYXRmb3JtIGFyZ3VtZW50IHBhc3NlZCB0byB0aGUgcHJvdG9jb2wgYmluZGluZ3Mg
Z2VuZXJhdG9yLgorCisgICAgLy8gUGxhdGZvcm06IEdlbmVyaWMKICAgICB2b2lkIGdldEJyb3dz
aW5nQ29udGV4dHMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0Nv
bnRleHQ+PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZ2V0QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rv
cjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0PiYpIG92ZXJyaWRlOwogICAgIHZvaWQgY3Jl
YXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBTdHJpbmcqKSBvdmVy
cmlkZTsKICAgICB2b2lkIGNsb3NlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmKSBvdmVycmlkZTsKICAgICB2b2lkIHN3aXRjaFRvQnJvd3NpbmdD
b250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29u
dGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25hbEZyYW1lSGFuZGxlKSBvdmVycmlkZTsK
LSAgICB2b2lkIHJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JP
YmplY3QmIHNpemUpIG92ZXJyaWRlOwotICAgIHZvaWQgbW92ZVdpbmRvd09mQnJvd3NpbmdDb250
ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3Qg
SW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHBvc2l0aW9uKSBvdmVycmlkZTsKICAgICB2b2lk
IG5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxOYXZpZ2F0ZUJyb3dzaW5nQ29u
dGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGdvQmFja0luQnJvd3NpbmdDb250
ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWY8R29CYWNrSW5C
cm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBnb0ZvcndhcmRJ
bkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwg
UmVmPEdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAg
IHZvaWQgcmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25z
dCBTdHJpbmcmLCBSZWY8UmVsb2FkQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRl
OwotICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5n
LCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIGV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBj
b25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nKiBvcHRpb25h
bEZyYW1lSGFuZGxlLCBjb25zdCBTdHJpbmcmIGZ1bmN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Oklu
c3BlY3RvckFycmF5JiBhcmd1bWVudHMsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRXhwZWN0c0ltcGxp
Y2l0Q2FsbGJhY2tBcmd1bWVudCwgY29uc3QgaW50KiBvcHRpb25hbENhbGxiYWNrVGltZW91dCwg
UmVmPEluc3BlY3Rvcjo6QXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVySGFuZGxlcjo6RXZhbHVh
dGVKYXZhU2NyaXB0RnVuY3Rpb25DYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJm
b3JtTW91c2VJbnRlcmFjdGlvbihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiByZXF1ZXN0ZWRQb3Np
dGlvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUJ1dHRvbiwgY29uc3QgU3RyaW5nJiBtb3VzZUludGVy
YWN0aW9uLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3RvckFycmF5JiBrZXlNb2RpZmllcnMsIFJl
ZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpQb2ludD4mIHVwZGF0ZWRQb3Np
dGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBwZXJmb3JtS2V5Ym9hcmRJbnRlcmFjdGlvbnMoSW5z
cGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0
b3I6Okluc3BlY3RvckFycmF5JiBpbnRlcmFjdGlvbnMsIFJlZjxQZXJmb3JtS2V5Ym9hcmRJbnRl
cmFjdGlvbnNDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CkBAIC0xMjQsNyArMTI1LDE2IEBAIHB1Ymxp
YzoKICAgICB2b2lkIGRlbGV0ZVNpbmdsZUNvb2tpZShJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgY29va2ll
TmFtZSwgUmVmPERlbGV0ZVNpbmdsZUNvb2tpZUNhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2
b2lkIGFkZFNpbmdsZUNvb2tpZShJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0
JiBjb29raWUsIFJlZjxBZGRTaW5nbGVDb29raWVDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBkZWxldGVBbGxDb29raWVzKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJp
bmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSkgb3ZlcnJpZGU7Ci0jaWYgVVNFKEFQUEtJVCkKKwor
ICAgIC8vIFBsYXRmb3JtOiBtYWNPUworI2lmIFBMQVRGT1JNKE1BQykKKyAgICB2b2lkIHJlc2l6
ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIHNpemUpIG92
ZXJyaWRlOworICAgIHZvaWQgbW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6
RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JPYmplY3QmIHBvc2l0aW9uKSBvdmVycmlkZTsKKyAgICB2b2lkIGluc3BlY3RCcm93c2lu
Z0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IGJv
b2wqIG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywgUmVmPEluc3BlY3RCcm93c2luZ0NvbnRl
eHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CisjZW5kaWYKKworICAgIC8vIEV2ZW50IFNpbXVsYXRp
b24gU3VwcG9ydC4KKyNpZiBQTEFURk9STShNQUMpCiAgICAgYm9vbCB3YXNFdmVudFN5bnRoZXNp
emVkRm9yQXV0b21hdGlvbihOU0V2ZW50ICopOwogICAgIHZvaWQgbWFya0V2ZW50QXNTeW50aGVz
aXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqKTsKICNlbmRpZgpAQCAtMTM4LDEwICsxNDgsMTAg
QEAgcHJpdmF0ZToKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVJRCh1aW50NjRfdCBmcmFt
ZUlEKTsKICAgICBTdHJpbmcgaGFuZGxlRm9yV2ViRnJhbWVQcm94eShjb25zdCBXZWJGcmFtZVBy
b3h5Jik7CiAKLSAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQXV0b21hdGlvblNl
c3Npb25NZXNzYWdlUmVjZWl2ZXIuY3BwCisgICAgLy8gSW1wbGVtZW50ZWQgaW4gZ2VuZXJhdGVk
IFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcC4KICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIG92ZXJyaWRlOwog
Ci0gICAgLy8gQ2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uIG1lc3NhZ2VzCisgICAgLy8g
Q2FsbGVkIGJ5IFdlYkF1dG9tYXRpb25TZXNzaW9uIG1lc3NhZ2VzLgogICAgIHZvaWQgZGlkRXZh
bHVhdGVKYXZhU2NyaXB0RnVuY3Rpb24odWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5n
JiByZXN1bHQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKICAgICB2b2lkIGRpZFJlc29sdmVD
aGlsZEZyYW1lKHVpbnQ2NF90IGNhbGxiYWNrSUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFN0
cmluZyYgZXJyb3JUeXBlKTsKICAgICB2b2lkIGRpZFJlc29sdmVQYXJlbnRGcmFtZSh1aW50NjRf
dCBjYWxsYmFja0lELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7
CkBAIC0xNTAsNyArMTYwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEdldENvb2tpZXNGb3JG
cmFtZSh1aW50NjRfdCBjYWxsYmFja0lELCBWZWN0b3I8V2ViQ29yZTo6Q29va2llPiwgY29uc3Qg
U3RyaW5nJiBlcnJvclR5cGUpOwogICAgIHZvaWQgZGlkRGVsZXRlQ29va2llKHVpbnQ2NF90IGNh
bGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKIAotICAgIC8vIFBsYXRmb3JtLXNw
ZWNpZmljIGhlbHBlciBtZXRob2RzLgorICAgIC8vIFBsYXRmb3JtLWRlcGVuZGVudCBpbXBsZW1l
bnRhdGlvbnMuCiAgICAgdm9pZCBwbGF0Zm9ybVNpbXVsYXRlTW91c2VJbnRlcmFjdGlvbihXZWJQ
YWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpJbnRQb2ludCYgdmlld1Bvc2l0aW9uLCBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycyk7CiAg
ICAgLy8gU2ltdWxhdGVzIGEgc2luZ2xlIHZpcnR1YWwga2V5IGJlaW5nIHByZXNzZWQsIHN1Y2gg
YXMgQ29udHJvbCwgRi1rZXlzLCBOdW1wYWQga2V5cywgZXRjLiBhcyBhbGxvd2VkIGJ5IHRoZSBw
cm90b2NvbC4KICAgICB2b2lkIHBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5
JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5
cGUsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkpOwpAQCAtMTU5
LDcgKzE2OSw3IEBAIHByaXZhdGU6CiAgICAgLy8gR2V0IGJhc2U2NCBlbmNvZGVkIFBORyBkYXRh
IGZyb20gYSBiaXRtYXAuCiAgICAgU3RyaW5nIHBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0Rh
dGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmKTsKIAotI2lmIFVTRShBUFBLSVQpCisj
aWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKFdl
YlBhZ2VQcm94eSYsIE5TQXJyYXkgKmV2ZW50c1RvU2VuZCk7CiAjZW5kaWYKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b25NYWNyb3MuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uTWFjcm9zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDYzOTg3NjljZWJkMWYzMTJiOWI0ZDQx
ZGVmMDMwMTkwNmY0ODIzZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgKQEAgLTAsMCArMSw1
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjZGVmaW5lIGVycm9yTmFtZUFuZERl
dGFpbHNTZXBhcmF0b3IgIjsiCisKKy8vIE1ha2Ugc3VyZSB0aGUgcHJlZGVmaW5lZCBlcnJvciBu
YW1lIGlzIHZhbGlkLCBvdGhlcndpc2UgdXNlIEludGVybmFsRXJyb3IuCisjZGVmaW5lIFZBTElE
QVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yU3RyaW5nKSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uSGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZT4oZXJyb3JTdHJpbmcpLnZhbHVlX29yKEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6SW50ZXJuYWxFcnJvcikK
KworLy8gSWYgdGhlIGVycm9yIG5hbWUgaXMgaW5jb3JyZWN0IGZvciB0aGVzZSBtYWNyb3MsIGl0
IHdpbGwgYmUgYSBjb21waWxlLXRpbWUgZXJyb3IuCisjZGVmaW5lIFNUUklOR19GT1JfUFJFREVG
SU5FRF9FUlJPUl9OQU1FKGVycm9yTmFtZSkgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OkVycm9yTWVzc2FnZTo6ZXJyb3JOYW1lKQorI2RlZmluZSBTVFJJTkdfRk9SX1BSRURF
RklORURfRVJST1JfTkFNRV9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcpIG1h
a2VTdHJpbmcoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1D
b25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2Fn
ZTo6ZXJyb3JOYW1lKSwgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRvciwgZGV0YWlsc1N0cmlu
ZykKKworLy8gSWYgdGhlIGVycm9yIG1lc3NhZ2UgaXMgbm90IGEgcHJlZGVmaW5lZCBlcnJvciwg
SW50ZXJuYWxFcnJvciB3aWxsIGJlIHVzZWQgaW5zdGVhZC4KKyNkZWZpbmUgU1RSSU5HX0ZPUl9Q
UkVERUZJTkVEX0VSUk9SX01FU1NBR0UoZXJyb3JNZXNzYWdlKSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoVkFMSURBVEVEX0VSUk9S
X01FU1NBR0UoZXJyb3JNZXNzYWdlKSkKKyNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VS
Uk9SX01FU1NBR0VfQU5EX0RFVEFJTFMoZXJyb3JNZXNzYWdlLCBkZXRhaWxzU3RyaW5nKSBtYWtl
U3RyaW5nKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29u
c3RhbnRWYWx1ZShWQUxJREFURURfRVJST1JfTUVTU0FHRShlcnJvck1lc3NhZ2UpKSwgZXJyb3JO
YW1lQW5kRGV0YWlsc1NlcGFyYXRvciwgZGV0YWlsc1N0cmluZykKKworLy8gQ29udmVuaWVuY2Ug
bWFjcm9zIGZvciBmaWxsaW5nIGluIHRoZSBlcnJvciBzdHJpbmcgb2Ygc3luY2hyb25vdXMgY29t
bWFuZHMgaW4gYmFpbG91dCBicmFuY2hlcy4KKyNkZWZpbmUgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1IoZXJyb3JOYW1lKSBcCitkbyB7IFwKKyAgICBlcnJvclN0cmluZyA9IFNUUklOR19GT1Jf
UFJFREVGSU5FRF9FUlJPUl9OQU1FKGVycm9yTmFtZSk7IFwKKyAgICByZXR1cm47IFwKK30gd2hp
bGUgKGZhbHNlKQorCisjZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRB
SUxTKGVycm9yTmFtZSwgZGV0YWlsc1N0cmluZykgXAorZG8geyBcCisgICAgZXJyb3JTdHJpbmcg
PSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRV9BTkRfREVUQUlMUyhlcnJvck5hbWUs
IGRldGFpbHNTdHJpbmcpOyBcCisgICAgcmV0dXJuOyBcCit9IHdoaWxlIChmYWxzZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9t
YXRpb25TZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlv
bi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM2ODdkMjgy
NDIwMjVkOTcyOGJiMDAwOTRiMGY3MDAzYTNhNjI3YzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lv
bkNvY29hLm1tCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJj
b25maWcuaCIKKyNpbXBvcnQgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisKKyNpZiBQTEFURk9S
TShDT0NPQSkKKworI2lmIFBMQVRGT1JNKElPUykKKyNpbmNsdWRlIDxJbWFnZUlPL0NHSW1hZ2VE
ZXN0aW5hdGlvbi5oPgorI2luY2x1ZGUgPE1vYmlsZUNvcmVTZXJ2aWNlcy9VVENvcmVUeXBlcy5o
PgorI2VuZGlmCisKK3VzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0
IHsKKworU3RyaW5nIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29k
ZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGFIYW5kbGUp
Cit7CisgICAgUmVmUHRyPFNoYXJlYWJsZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFw
OjpjcmVhdGUoaW1hZ2VEYXRhSGFuZGxlLCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRP
bmx5KTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gY2dJbWFnZSA9IGJpdG1hcC0+bWFrZUNH
SW1hZ2UoKTsKKyAgICBSZXRhaW5QdHI8TlNNdXRhYmxlRGF0YT4gaW1hZ2VEYXRhID0gYWRvcHRO
UyhbW05TTXV0YWJsZURhdGEgYWxsb2NdIGluaXRdKTsKKyAgICBSZXRhaW5QdHI8Q0dJbWFnZURl
c3RpbmF0aW9uUmVmPiBkZXN0aW5hdGlvbiA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3Jl
YXRlV2l0aERhdGEoKENGTXV0YWJsZURhdGFSZWYpaW1hZ2VEYXRhLmdldCgpLCBrVVRUeXBlUE5H
LCAxLCAwKSk7CisgICAgaWYgKCFkZXN0aW5hdGlvbikKKyAgICAgICAgcmV0dXJuIFN0cmluZygp
OworCisgICAgQ0dJbWFnZURlc3RpbmF0aW9uQWRkSW1hZ2UoZGVzdGluYXRpb24uZ2V0KCksIGNn
SW1hZ2UuZ2V0KCksIDApOworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0
aW9uLmdldCgpKTsKKworICAgIHJldHVybiBbaW1hZ2VEYXRhIGJhc2U2NEVuY29kZWRTdHJpbmdX
aXRoT3B0aW9uczowXTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQ
TEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQpuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5kZjhmY2JlNjkwMjQwYTFkZDMxYjYwZDRlNTUwMGY1MTRlNWExMGZlCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9t
YXRpb25TZXNzaW9uTWFjLm1tCkBAIC0wLDAgKzEsNDk3IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIgorCisj
aWYgUExBVEZPUk0oTUFDKQorCisjaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5o
IgorI2ltcG9ydCAiV2ViSW5zcGVjdG9yUHJveHkuaCIKKyNpbXBvcnQgIldlYlBhZ2VQcm94eS5o
IgorI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb24uaCIKKyNpbXBvcnQgPEhJVG9vbGJveC9F
dmVudHMuaD4KKyNpbXBvcnQgPFdlYkNvcmUvSW50UG9pbnQuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
SW50U2l6ZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KKyNpbXBv
cnQgPG9iamMvcnVudGltZS5oPgorCit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKKyNwcmFnbWEgbWFyayBBcHBLaXQgRXZlbnQgU2ltdWxhdGlvbiBTdXBw
b3J0CisKK3N0YXRpYyBjb25zdCBOU0ludGVnZXIgc3ludGhlc2l6ZWRNb3VzZUV2ZW50TWFnaWNF
dmVudE51bWJlciA9IDA7CitzdGF0aWMgY29uc3Qgdm9pZCAqc3ludGhlc2l6ZWRBdXRvbWF0aW9u
RXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5ID0gJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2ZW50QXNz
b2NpYXRlZE9iamVjdEtleTsKKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5bnRo
ZXNpemVkRXZlbnRzVG9QYWdlKFdlYlBhZ2VQcm94eSYgcGFnZSwgTlNBcnJheSAqZXZlbnRzVG9T
ZW5kKQoreworICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7CisK
KyAgICBmb3IgKE5TRXZlbnQgKmV2ZW50IGluIGV2ZW50c1RvU2VuZCkgeworICAgICAgICAvLyBU
YWtlIGZvY3VzIGJhY2sgaW4gY2FzZSB0aGUgSW5zcGVjdG9yIGJlY2FtZSBmb2N1c2VkIHdoaWxl
IHRoZSBwcmlvciBjb21tYW5kIG9yCisgICAgICAgIC8vIE5TRXZlbnQgd2FzIGRlbGl2ZXJlZCB0
byB0aGUgd2luZG93LgorICAgICAgICBbd2luZG93IG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07
CisKKyAgICAgICAgbWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb24oZXZlbnQpOwor
ICAgICAgICBbd2luZG93IHNlbmRFdmVudDpldmVudF07CisgICAgfQorfQorCit2b2lkIFdlYkF1
dG9tYXRpb25TZXNzaW9uOjptYXJrRXZlbnRBc1N5bnRoZXNpemVkRm9yQXV0b21hdGlvbihOU0V2
ZW50ICpldmVudCkKK3sKKyAgICBvYmpjX3NldEFzc29jaWF0ZWRPYmplY3QoZXZlbnQsICZzeW50
aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RLZXksIG1fc2Vzc2lvbklkZW50
aWZpZXIsIE9CSkNfQVNTT0NJQVRJT05fUkVUQUlOX05PTkFUT01JQyk7Cit9CisKK2Jvb2wgV2Vi
QXV0b21hdGlvblNlc3Npb246Ondhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZl
bnQgKmV2ZW50KQoreworICAgIE5TU3RyaW5nICpzZW5kZXJTZXNzaW9uSWRlbnRpZmllciA9IG9i
amNfZ2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2ZW50
QXNzb2NpYXRlZE9iamVjdEtleSk7CisgICAgaWYgKFtzZW5kZXJTZXNzaW9uSWRlbnRpZmllciBp
c0VxdWFsVG9TdHJpbmc6bV9zZXNzaW9uSWRlbnRpZmllcl0pCisgICAgICAgIHJldHVybiB0cnVl
OworCisgICAgc3dpdGNoIChldmVudC50eXBlKSB7CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ6CisgICAgY2Fz
ZSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVNb3VzZU1vdmVk
OgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRU
eXBlT3RoZXJNb3VzZURyYWdnZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90aGVyTW91c2VVcDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURvd246CisgICAgY2FzZSBOU0V2ZW50VHlw
ZVJpZ2h0TW91c2VEcmFnZ2VkOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdodE1vdXNlVXA6Cisg
ICAgICAgIC8vIFVzZSB0aGlzIGFzIGEgYmFja3VwIGZvciBjaGVja2luZyBtb3VzZSBldmVudHMs
IHdoaWNoIGFyZSBmcmVxdWVudGx5IGNvcGllZAorICAgICAgICAvLyBhbmQvb3IgZmFrZWQgYnkg
QXBwS2l0LCBjYXVzaW5nIHRoZW0gdG8gbG9zZSB0aGVpciBhc3NvY2lhdGVkIG9iamVjdCB0YWcu
CisgICAgICAgIHJldHVybiBldmVudC5ldmVudE51bWJlciA9PSBzeW50aGVzaXplZE1vdXNlRXZl
bnRNYWdpY0V2ZW50TnVtYmVyOworICAgIGRlZmF1bHQ6CisgICAgICAgIGJyZWFrOworICAgIH0K
KworICAgIHJldHVybiBmYWxzZTsKK30KKworI3ByYWdtYSBtYXJrIFBsYXRmb3JtLWRlcGVuZGVu
dCBJbXBsZW1lbnRhdGlvbnMKKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1T
aW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBXZWJDb3Jl
OjpJbnRQb2ludCYgdmlld1Bvc2l0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpNb3VzZUludGVyYWN0aW9uIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpNb3VzZUJ1dHRvbiBidXR0b24sIFdlYkV2ZW50OjpNb2RpZmllcnMga2V5TW9kaWZp
ZXJzKQoreworICAgIEludFJlY3Qgd2luZG93UmVjdDsKKyAgICBwYWdlLnJvb3RWaWV3VG9XaW5k
b3coSW50UmVjdCh2aWV3UG9zaXRpb24sIEludFNpemUoKSksIHdpbmRvd1JlY3QpOworICAgIElu
dFBvaW50IHdpbmRvd1Bvc2l0aW9uID0gd2luZG93UmVjdC5sb2NhdGlvbigpOworCisgICAgTlNF
dmVudE1vZGlmaWVyRmxhZ3MgbW9kaWZpZXJzID0gMDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYg
V2ViRXZlbnQ6Ok1ldGFLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnQ29tbWFuZDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkFsdEtleSkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CisgICAgaWYgKGtl
eU1vZGlmaWVycyAmIFdlYkV2ZW50OjpDb250cm9sS2V5KQorICAgICAgICBtb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbnRyb2w7CisgICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2
ZW50OjpTaGlmdEtleSkKKyAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdT
aGlmdDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkNhcHNMb2NrS2V5KQorICAg
ICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NhcHNMb2NrOworCisgICAgTlNU
aW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5j
ZURhdGVdOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7Cisg
ICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7CisKKyAgICBO
U0V2ZW50VHlwZSBkb3duRXZlbnRUeXBlOworICAgIE5TRXZlbnRUeXBlIGRyYWdFdmVudFR5cGU7
CisgICAgTlNFdmVudFR5cGUgdXBFdmVudFR5cGU7CisgICAgc3dpdGNoIChidXR0b24pIHsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpOb25l
OgorICAgICAgICBkb3duRXZlbnRUeXBlID0gdXBFdmVudFR5cGUgPSBkcmFnRXZlbnRUeXBlID0g
TlNFdmVudFR5cGVNb3VzZU1vdmVkOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpMZWZ0OgorICAgICAgICBkb3du
RXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEb3duOworICAgICAgICBkcmFnRXZlbnRU
eXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOworICAgICAgICB1cEV2ZW50VHlwZSA9
IE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok1pZGRsZToKKyAgICAgICAg
ZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd247CisgICAgICAgIGRyYWdF
dmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZURyYWdnZWQ7CisgICAgICAgIHVwRXZlbnRU
eXBlID0gTlNFdmVudFR5cGVPdGhlck1vdXNlVXA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246OlJpZ2h0OgorICAg
ICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlRG93bjsKKyAgICAgICAg
dXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorCisgICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJh
eSBhbGxvY10gaW5pdF0pOworCisgICAgTlNJbnRlZ2VyIGV2ZW50TnVtYmVyID0gc3ludGhlc2l6
ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51bWJlcjsKKworICAgIHN3aXRjaCAoaW50ZXJhY3Rpb24p
IHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJh
Y3Rpb246Ok1vdmU6CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQg
bW91c2VFdmVudFdpdGhUeXBlOmRyYWdFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24g
bW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6
d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291
bnQ6MCBwcmVzc3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG93bjoKKyAgICAgICAg
Ly8gSGFyZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNpbmNlIGNsaWVudHMgZG9uJ3Qg
ZXhwZWN0IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCisgICAgICAgIC8vIGRvd24vdXAgZXZlbnRzIHRv
IGJlIHBvdGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xpY2sgZXZlbnQuCisgICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRv
d25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmll
cnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3Jl
OjpGb3JjZUF0Q2xpY2tdXTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpVcDoKKyAgICAgICAgLy8gSGFy
ZC1jb2RlIHRoZSBjbGljayBjb3VudCB0byBvbmUsIHNpbmNlIGNsaWVudHMgZG9uJ3QgZXhwZWN0
IHN1Y2Nlc3NpdmUgc2ltdWxhdGVkCisgICAgICAgIC8vIGRvd24vdXAgZXZlbnRzIHRvIGJlIHBv
dGVudGlhbGx5IGNvdW50ZWQgYXMgYSBkb3VibGUgY2xpY2sgZXZlbnQuCisgICAgICAgIFtldmVu
dHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRU
eXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVz
dGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVu
dE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
SW50ZXJhY3Rpb246OlNpbmdsZUNsaWNrOgorICAgICAgICAvLyBTZW5kIHNlcGFyYXRlIGRvd24g
YW5kIHVwIGV2ZW50cy4gV2ViQ29yZSB3aWxsIHNlZSB0aGlzIGFzIGEgc2luZ2xlLWNsaWNrIGV2
ZW50LgorICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVy
RmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051
bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJl
c3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBh
ZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9u
OndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3Rh
bXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVu
dE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb246
OkRvdWJsZUNsaWNrOgorICAgICAgICAvLyBTZW5kIG11bHRpcGxlIGRvd24gYW5kIHVwIGV2ZW50
cyB3aXRoIHByb3BlciBjbGljayBjb3VudC4KKyAgICAgICAgLy8gV2ViQ29yZSB3aWxsIHNlZSB0
aGlzIGFzIGEgc2luZ2xlLWNsaWNrIGV2ZW50IHRoZW4gZG91YmxlLWNsaWNrIGV2ZW50LgorICAg
ICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlw
ZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9k
aWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJlc3N1cmU6V2Vi
Q29yZTo6Rm9yY2VBdENsaWNrXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6
W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bv
c2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93
TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBj
bGlja0NvdW50OjEgcHJlc3N1cmU6MC4wZl1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9u
OndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3Rh
bXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVu
dE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07Cisg
ICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhU
eXBlOnVwRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9k
aWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjIgcHJlc3N1cmU6MC4w
Zl1dOworICAgIH0KKworICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVu
dHNUb0JlU2VudC5nZXQoKSk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRm
b3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiBwYWdlLCBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZSBpbnRlcmFjdGlvbiwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleSBrZXkpCit7CisgICAgLy8g
SWYgdHJ1ZSwgdGhlIGtleSdzIG1vZGlmaWVyIGZsYWdzIHNob3VsZCBhZmZlY3Qgb3RoZXIgZXZl
bnRzIHdoaWxlIHByZXNzZWQgZG93bi4KKyAgICBib29sIGlzU3RpY2t5TW9kaWZpZXIgPSBmYWxz
ZTsKKyAgICAvLyBUaGUgbW9kaWZpZXJzIGNoYW5nZWQgYnkgdGhlIHZpcnR1YWwga2V5IHdoZW4g
aXQgaXMgcHJlc3NlZCBvciByZWxlYXNlZC4KKyAgICAvLyBUaGUgbWFwcGluZyBmcm9tIGtleXMg
dG8gbW9kaWZpZXJzIGlzIHNwZWNpZmllZCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgTlNFdmVu
dC4KKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBjaGFuZ2VkTW9kaWZpZXJzID0gMDsKKyAgICAv
LyBUaGUgbGlrZWx5IGtleUNvZGUgZm9yIHRoZSB2aXJ0dWFsIGtleSBhcyBkZWZpbmVkIGluIDxI
SVRvb2xib3gvRXZlbnRzLmg+LgorICAgIGludCBrZXlDb2RlID0gMDsKKyAgICAvLyBUeXBpY2Fs
IGNoYXJhY3RlcnMgcHJvZHVjZWQgYnkgdGhlIHZpcnR1YWwga2V5LCBpZiBhbnkuCisgICAgTlNT
dHJpbmcgKmNoYXJhY3RlcnMgPSBAIiI7CisKKyAgICAvLyBGSVhNRTogdGhpcyBmdW5jdGlvbiBh
bmQgdGhlIEF1dG9tYXRpb24gcHJvdG9jb2wgZW51bSBzaG91bGQgcHJvYmFibHkgYWRvcHQga2V5
IG5hbWVzCisgICAgLy8gZnJvbSBXM0MgVUlFdmVudHMgc3RhbmRhcmQuIEZvciBtb3JlIGRldGFp
bHM6IGh0dHBzOi8vdzNjLmdpdGh1Yi5pby91aWV2ZW50cy1jb2RlLworCisgICAgc3dpdGNoIChr
ZXkpIHsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OlNoaWZ0OgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnU2hpZnQ7CisgICAgICAgIGtleUNv
ZGUgPSBrVktfU2hpZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q29udHJvbDoKKyAgICAgICAgaXNTdGlja3lN
b2RpZmllciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0NvbnRyb2w7CisgICAgICAgIGtleUNvZGUgPSBrVktfQ29udHJvbDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpBbHRlcm5hdGU6CisgICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOworICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdPcHRpb247CisgICAgICAg
IGtleUNvZGUgPSBrVktfT3B0aW9uOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok1ldGE6CisgICAgICAgIC8vIFRo
ZSAnbWV0YScga2V5IGRvZXMgbm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaXMgdXN1
YWxseQorICAgICAgICAvLyBtYXBwZWQgdG8gdGhlIENvbW1hbmQga2V5IHdoZW4gdXNpbmcgdGhp
cmQtcGFydHkga2V5Ym9hcmRzLgorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6Q29tbWFuZDoKKyAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRy
dWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1h
bmQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQ29tbWFuZDsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpIZWxwOgor
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdIZWxwIHwgTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0hlbHA7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6QmFja3NwYWNlOgorICAgICAgICBrZXlDb2RlID0ga1ZLX0RlbGV0ZTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpUYWI6CisgICAgICAgIGtleUNvZGUgPSBrVktfVGFiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkNsZWFyOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdO
dW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkQ2xlYXI7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RW50ZXI6CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRFbnRlcjsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpQYXVzZToKKyAgICAgICAgLy8gVGhlICdwYXVzZScga2V5IGRvZXMgbm90
IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisgICAgICAgIC8v
IFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8gbm90aGluZy4K
KyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6Q2FuY2VsOgorICAgICAgICAvLyBUaGUgJ2NhbmNlbCcga2V5IGRvZXMg
bm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisgICAgICAg
IC8vIEFjY29yZGluZyB0byB0aGUgaW50ZXJuZXQgaXRzIGZ1bmN0aW9uYWxpdHkgaXMgc2ltaWxh
ciB0byAnRXNjYXBlJy4KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkVzY2FwZToKKyAgICAgICAga2V5Q29kZSA9IGtWS19Fc2NhcGU7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6UGFnZVVwOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19QYWdlVXA7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6UGFnZURvd246CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VEb3duOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkVuZDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRW5kOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Okhv
bWU6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0
aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0hvbWU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TGVmdEFycm93
OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmlj
UGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZL
X0xlZnRBcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpVcEFycm93OgorICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1VwQXJyb3c7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
UmlnaHRBcnJvdzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5
Q29kZSA9IGtWS19SaWdodEFycm93OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRvd25BcnJvdzoKKyAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19Eb3duQXJyb3c7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6SW5zZXJ0OgorICAgICAgICAvLyBUaGUgJ2luc2VydCcga2V5IGRvZXMg
bm90IGV4aXN0IG9uIEFwcGxlIGtleWJvYXJkcyBhbmQgaGFzIG5vIGtleWNvZGUuCisgICAgICAg
IC8vIFRoZSBzZW1hbnRpY3MgYXJlIHVuY2xlYXIgc28ganVzdCBhYm9ydCBhbmQgZG8gbm90aGlu
Zy4KKyAgICAgICAgcmV0dXJuOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RGVsZXRlOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19Gb3J3YXJk
RGVsZXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OlNwYWNlOgorICAgICAgICBrZXlDb2RlID0ga1ZLX1NwYWNl
OworICAgICAgICBjaGFyYWN0ZXJzID0gQCIgIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTZW1pY29sb246Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9TZW1pY29sb247CisgICAgICAgIGNoYXJhY3RlcnMg
PSBAIjsiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkVxdWFsczoKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJ
X0VxdWFsOworICAgICAgICBjaGFyYWN0ZXJzID0gQCI9IjsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpSZXR1cm46
CisgICAgICAgIGtleUNvZGUgPSBrVktfUmV0dXJuOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDA6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQ
YWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQwOworICAgICAgICBjaGFyYWN0
ZXJzID0gQCIwIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQxOgorICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfS2V5cGFkMTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiMSI7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6TnVtYmVyUGFkMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDI7
CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjIiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDM6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7
CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQzOworICAgICAgICBjaGFyYWN0ZXJz
ID0gQCIzIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ0OgorICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0g
a1ZLX0FOU0lfS2V5cGFkNDsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNCI7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TnVtYmVyUGFkNToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDU7Cisg
ICAgICAgIGNoYXJhY3RlcnMgPSBAIjUiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDY6CisgICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ2OworICAgICAgICBjaGFyYWN0ZXJzID0g
QCI2IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ3OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZL
X0FOU0lfS2V5cGFkNzsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNyI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
TnVtYmVyUGFkODoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDg7CisgICAg
ICAgIGNoYXJhY3RlcnMgPSBAIjgiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDk6CisgICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAg
ICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ5OworICAgICAgICBjaGFyYWN0ZXJzID0gQCI5
IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRNdWx0aXBseToKKyAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZE11bHRpcGx5OworICAgICAgICBjaGFyYWN0ZXJzID0gQCIqIjsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpOdW1iZXJQYWRBZGQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWRQbHVzOworICAgICAgICBjaGFyYWN0ZXJzID0gQCIrIjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1i
ZXJQYWRTdWJ0cmFjdDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZE1pbnVz
OworICAgICAgICBjaGFyYWN0ZXJzID0gQCItIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWRTZXBh
cmF0b3I6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQ7CisgICAgICAgIC8vIFRoZSAnU2VwYXJhdG9yJyBrZXkgaXMgb25seSBwcmVzZW50
IG9uIGEgZmV3IGludGVybmF0aW9uYWwga2V5Ym9hcmRzLgorICAgICAgICAvLyBJdCBpcyB1c3Vh
bGx5IG1hcHBlZCB0byB0aGUgc2FtZSBjaGFyYWN0ZXIgYXMgRGVjaW1hbCAoJy4nIG9yICcsJyku
CisgICAgICAgIEZBTExUSFJPVUdIOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGVjaW1hbDoKKyAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX0tleXBhZERlY2ltYWw7CisgICAgICAgIC8vIEZJWE1FOiB0aGlzIG1pZ2h0
IGJlIGxvY2FsZS1kZXBlbmRlbnQuIFNlZSB0aGUgYWJvdmUgY29tbWVudC4KKyAgICAgICAgY2hh
cmFjdGVycyA9IEAiLiI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkRGl2aWRlOgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAg
ICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGl2aWRlOworICAgICAgICBjaGFyYWN0ZXJzID0g
QCIvIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjE6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Yx
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6RnVuY3Rpb24zOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMzsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpGdW5jdGlvbjQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y0OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkZ1bmN0aW9uNToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RnVuY3Rpb242OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GNjsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5j
dGlvbjc6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1
bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y3OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9u
ODoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjg7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb245Ogor
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsK
KyAgICAgICAga2V5Q29kZSA9IGtWS19GOTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjEwOgorICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAg
ICAgICAga2V5Q29kZSA9IGtWS19GMTA7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMToKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAg
ICAgIGtleUNvZGUgPSBrVktfRjExOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTI6CisgICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAg
ICBrZXlDb2RlID0ga1ZLX0YxMjsKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgYXV0byBl
dmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBhbGxvY10gaW5pdF0pOwor
CisgICAgQVNTRVJUKGlzU3RpY2t5TW9kaWZpZXIgfHwgaW50ZXJhY3Rpb24gPT0gSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVByZXNz
KTsKKworICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIGV4aXN0aW5nTW9kaWZpZXJzID0gW05TRXZl
bnQgbW9kaWZpZXJGbGFnc107CisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgdXBkYXRlZE1vZGlm
aWVycyA9IDA7CisgICAgTlNUaW1lSW50ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50
ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBs
YXRmb3JtV2luZG93KCk7CisgICAgTlNJbnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5k
b3dOdW1iZXI7CisgICAgTlNQb2ludCBldmVudFBvc2l0aW9uID0gTlNNYWtlUG9pbnQoMCwgd2lu
ZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKKworICAgIHN3aXRjaCAoaW50ZXJhY3Rpb24pIHsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rp
b25UeXBlOjpLZXlQcmVzczogeworICAgICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUgPSBpc1N0
aWNreU1vZGlmaWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgOiBOU0V2ZW50VHlwZUtleURv
d247CisgICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8IGNoYW5n
ZWRNb2RpZmllcnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQg
a2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmll
ckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6
d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJz
SWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2Rl
XV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpLZXlSZWxlYXNlOiB7CisgICAg
ICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIgPyBOU0V2ZW50VHlw
ZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5VXA7CisgICAgICAgIHVwZGF0ZWRNb2RpZmll
cnMgPSBleGlzdGluZ01vZGlmaWVycyAmIH5jaGFuZ2VkTW9kaWZpZXJzOworICAgICAgICBbZXZl
bnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6ZXZlbnRUeXBl
IGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRp
bWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBj
aGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3Rl
cnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBicmVhazsKKyAgICB9
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVy
YWN0aW9uVHlwZTo6SW5zZXJ0QnlLZXk6IHsKKyAgICAgICAgLy8gU3RpY2t5IG1vZGlmaWVycyBz
aG91bGQgZWl0aGVyIGJlICdLZXlQcmVzcycgb3IgJ0tleVJlbGVhc2UnLgorICAgICAgICBBU1NF
UlQoIWlzU3RpY2t5TW9kaWZpZXIpOworICAgICAgICBpZiAoaXNTdGlja3lNb2RpZmllcikKKyAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdN
b2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0
aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFt
cDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0
ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNB
UmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1dOworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlv
bjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6
dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVy
czpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJl
cGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIH0K
KworICAgIHNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5n
ZXQoKSk7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVL
ZXlTZXF1ZW5jZShXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFN0cmluZyYga2V5U2VxdWVuY2Up
Cit7CisgICAgYXV0byBldmVudHNUb0JlU2VudCA9IGFkb3B0TlMoW1tOU011dGFibGVBcnJheSBh
bGxvY10gaW5pdF0pOworCisgICAgLy8gU3BsaXQgdGhlIHRleHQgaW50byBjb21iaW5pbmcgY2hh
cmFjdGVyIHNlcXVlbmNlcyBhbmQgc2VuZCBlYWNoIHNlcGFyYXRlbHkuCisgICAgLy8gVGhpcyBo
YXMgbm8gc2ltaWxhcml0eSB0byBob3cga2V5Ym9hcmRzIHdvcmsgd2hlbiBpbnB1dHRpbmcgY29t
cGxleCB0ZXh0LgorICAgIC8vIFRoaXMgY29tbWFuZCBpcyBtb3JlIHNpbWlsYXIgdG8gdGhlICdp
bnNlcnRUZXh0OicgZWRpdGluZyBjb21tYW5kLCBleGNlcHQKKyAgICAvLyB0aGF0IHRoaXMgZW1p
dHMga2V5dXAva2V5ZG93bi9rZXlwcmVzcyBldmVudHMgZm9yIHJvdWdobHkgZWFjaCBjaGFyYWN0
ZXIuCisgICAgLy8gVGhpcyBBUEkgc2hvdWxkIG1vdmUgbW9yZSB0b3dhcmRzIHRoYXQgZGlyZWN0
aW9uIGluIHRoZSBmdXR1cmUuCisgICAgTlNTdHJpbmcgKnRleHQgPSBrZXlTZXF1ZW5jZTsKKwor
ICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVycyA9IFtOU0V2ZW50IG1vZGlmaWVyRmxh
Z3NdOworICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtOU0RhdGUgdGltZUludGVydmFs
U2luY2VSZWZlcmVuY2VEYXRlXTsKKyAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9y
bVdpbmRvdygpOworICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSB3aW5kb3cud2luZG93TnVt
YmVyOworICAgIE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9IE5TTWFrZVBvaW50KDAsIHdpbmRvdy5m
cmFtZS5zaXplLmhlaWdodCk7CisKKyAgICBbdGV4dCBlbnVtZXJhdGVTdWJzdHJpbmdzSW5SYW5n
ZTpOU01ha2VSYW5nZSgwLCB0ZXh0Lmxlbmd0aCkgb3B0aW9uczpOU1N0cmluZ0VudW1lcmF0aW9u
QnlDb21wb3NlZENoYXJhY3RlclNlcXVlbmNlcyB1c2luZ0Jsb2NrOl4oTlNTdHJpbmcgKnN1YnN0
cmluZywgTlNSYW5nZSBzdWJzdHJpbmdSYW5nZSwgTlNSYW5nZSBlbmNsb3NpbmdSYW5nZSwgQk9P
TCAqc3RvcCkgeworICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtl
eUV2ZW50V2l0aFR5cGU6TlNFdmVudFR5cGVLZXlEb3duIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24g
bW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6
d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6c3Vic3RyaW5nIGNoYXJhY3RlcnNJ
Z25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0Ok5PIGtleUNvZGU6MF1dOworICAg
ICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6
TlNFdmVudFR5cGVLZXlVcCBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9k
aWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250
ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6
c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlDb2RlOjBdXTsKKyAgICB9XTsKKworICAgIHNlbmRT
eW50aGVzaXplZEV2ZW50c1RvUGFnZShwYWdlLCBldmVudHNUb0JlU2VudC5nZXQoKSk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oTUFDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9u
Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViQXV0b21hdGlvblNl
c3Npb25Db2NvYS5tbQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTIxZDhmMDg1OTRm
NTk0ZmU4YmYzZTU2YTQ1YTE4YjJjYzQ0NWQxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvV2ViQXV0
b21hdGlvblNlc3Npb25Db2NvYS5tbQorKysgL2Rldi9udWxsCkBAIC0xLDUwOSArMCwwIEBACi0v
KgotICogQ29weXJpZ2h0IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
LSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCi0gKi8KLQotI2ltcG9ydCAiY29uZmlnLmgiCi0jaW1wb3J0ICJXZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oIgotCi0jaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKLSNpbXBvcnQgIl9XS0F1dG9tYXRp
b25TZXNzaW9uLmgiCi0jaW1wb3J0IDxXZWJDb3JlL0ludFBvaW50Lmg+Ci0jaW1wb3J0IDxXZWJD
b3JlL0ludFNpemUuaD4KLSNpbXBvcnQgPFdlYkNvcmUvUGxhdGZvcm1Nb3VzZUV2ZW50Lmg+Ci0j
aW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KLQotI2lmIFVTRShBUFBLSVQpCi0jaW1wb3J0IDxISVRv
b2xib3gvRXZlbnRzLmg+Ci0jZW5kaWYKLQotdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7Ci0KLW5h
bWVzcGFjZSBXZWJLaXQgewotCi0jaWYgVVNFKEFQUEtJVCkKLQotc3RhdGljIGNvbnN0IE5TSW50
ZWdlciBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVtYmVyID0gMDsKLXN0YXRpYyBj
b25zdCB2b2lkICpzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RLZXkg
PSAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5OwotCi12b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFn
ZVByb3h5JiBwYWdlLCBOU0FycmF5ICpldmVudHNUb1NlbmQpCi17Ci0gICAgTlNXaW5kb3cgKndp
bmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLQotICAgIGZvciAoTlNFdmVudCAqZXZlbnQg
aW4gZXZlbnRzVG9TZW5kKSB7Ci0gICAgICAgIC8vIFRha2UgZm9jdXMgYmFjayBpbiBjYXNlIHRo
ZSBJbnNwZWN0b3IgYmVjYW1lIGZvY3VzZWQgd2hpbGUgdGhlIHByaW9yIGNvbW1hbmQgb3IKLSAg
ICAgICAgLy8gTlNFdmVudCB3YXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cuCi0gICAgICAgIFt3
aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKLQotICAgICAgICBtYXJrRXZlbnRBc1N5
bnRoZXNpemVkRm9yQXV0b21hdGlvbihldmVudCk7Ci0gICAgICAgIFt3aW5kb3cgc2VuZEV2ZW50
OmV2ZW50XTsKLSAgICB9Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1hcmtFdmVu
dEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKmV2ZW50KQotewotICAgIG9iamNf
c2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2ZW50QXNz
b2NpYXRlZE9iamVjdEtleSwgbV9zZXNzaW9uSWRlbnRpZmllciwgT0JKQ19BU1NPQ0lBVElPTl9S
RVRBSU5fTk9OQVRPTUlDKTsKLX0KLQotYm9vbCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FzRXZl
bnRTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqZXZlbnQpCi17Ci0gICAgTlNTdHJp
bmcgKnNlbmRlclNlc3Npb25JZGVudGlmaWVyID0gb2JqY19nZXRBc3NvY2lhdGVkT2JqZWN0KGV2
ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5KTsKLSAg
ICBpZiAoW3NlbmRlclNlc3Npb25JZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzptX3Nlc3Npb25J
ZGVudGlmaWVyXSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBzd2l0Y2ggKGV2ZW50LnR5
cGUpIHsKLSAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKLSAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6
Ci0gICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6Ci0gICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEb3duOgotICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKLSAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgotICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRG93bjoKLSAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Ci0gICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKLSAgICAgICAgLy8gVXNlIHRoaXMgYXMgYSBi
YWNrdXAgZm9yIGNoZWNraW5nIG1vdXNlIGV2ZW50cywgd2hpY2ggYXJlIGZyZXF1ZW50bHkgY29w
aWVkCi0gICAgICAgIC8vIGFuZC9vciBmYWtlZCBieSBBcHBLaXQsIGNhdXNpbmcgdGhlbSB0byBs
b3NlIHRoZWlyIGFzc29jaWF0ZWQgb2JqZWN0IHRhZy4KLSAgICAgICAgcmV0dXJuIGV2ZW50LmV2
ZW50TnVtYmVyID09IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotCi0gICAgcmV0dXJuIGZhbHNlOwotfQot
Ci12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJbnRlcmFj
dGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB2aWV3UG9z
aXRpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb24g
aW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9u
IGJ1dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycyBrZXlNb2RpZmllcnMpCi17Ci0gICAgSW50UmVj
dCB3aW5kb3dSZWN0OwotICAgIHBhZ2Uucm9vdFZpZXdUb1dpbmRvdyhJbnRSZWN0KHZpZXdQb3Np
dGlvbiwgSW50U2l6ZSgpKSwgd2luZG93UmVjdCk7Ci0gICAgSW50UG9pbnQgd2luZG93UG9zaXRp
b24gPSB3aW5kb3dSZWN0LmxvY2F0aW9uKCk7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBt
b2RpZmllcnMgPSAwOwotICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6TWV0YUtleSkK
LSAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOwotICAgIGlm
IChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6QWx0S2V5KQotICAgICAgICBtb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZl
bnQ6OkNvbnRyb2xLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
Q29udHJvbDsKLSAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OlNoaWZ0S2V5KQotICAg
ICAgICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OwotICAgIGlmIChrZXlN
b2RpZmllcnMgJiBXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7Ci0KLSAgICBOU1RpbWVJbnRlcnZhbCB0aW1lc3Rh
bXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07Ci0gICAgTlNXaW5k
b3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLSAgICBOU0ludGVnZXIgd2luZG93
TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKLQotICAgIE5TRXZlbnRUeXBlIGRvd25FdmVu
dFR5cGU7Ci0gICAgTlNFdmVudFR5cGUgZHJhZ0V2ZW50VHlwZTsKLSAgICBOU0V2ZW50VHlwZSB1
cEV2ZW50VHlwZTsKLSAgICBzd2l0Y2ggKGJ1dHRvbikgewotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok5vbmU6Ci0gICAgICAgIGRvd25FdmVu
dFR5cGUgPSB1cEV2ZW50VHlwZSA9IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92
ZWQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6TW91c2VCdXR0b246OkxlZnQ6Ci0gICAgICAgIGRvd25FdmVudFR5cGUgPSBOU0V2ZW50
VHlwZUxlZnRNb3VzZURvd247Ci0gICAgICAgIGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURyYWdnZWQ7Ci0gICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91
c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpNb3VzZUJ1dHRvbjo6TWlkZGxlOgotICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNF
dmVudFR5cGVPdGhlck1vdXNlRG93bjsKLSAgICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU90
aGVyTW91c2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6UmlnaHQ6Ci0gICAgICAgIGRvd25FdmVudFR5cGUg
PSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOwotICAgICAgICB1cEV2ZW50VHlwZSA9IE5TRXZl
bnRUeXBlUmlnaHRNb3VzZVVwOwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBhdXRvIGV2
ZW50c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0K
LSAgICBOU0ludGVnZXIgZXZlbnROdW1iZXIgPSBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2
ZW50TnVtYmVyOwotCi0gICAgc3dpdGNoIChpbnRlcmFjdGlvbikgewotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6TW92ZToKLSAgICAg
ICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6
ZHJhZ0V2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlm
aWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDowIHByZXNzdXJlOjAuMGZd
XTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpNb3VzZUludGVyYWN0aW9uOjpEb3duOgotICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNs
aWNrIGNvdW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBz
aW11bGF0ZWQKLSAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291
bnRlZCBhcyBhIGRvdWJsZSBjbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFk
ZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlv
bjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0
YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZl
bnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlSW50ZXJhY3Rpb246OlVwOgotICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNsaWNrIGNv
dW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBzaW11bGF0
ZWQKLSAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291bnRlZCBh
cyBhIGRvdWJsZSBjbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVj
dDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93
UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5k
b3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVy
IGNsaWNrQ291bnQ6MSBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6U2luZ2xl
Q2xpY2s6Ci0gICAgICAgIC8vIFNlbmQgc2VwYXJhdGUgZG93biBhbmQgdXAgZXZlbnRzLiBXZWJD
b3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sgZXZlbnQuCi0gICAgICAgIFtldmVu
dHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVu
dFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGlt
ZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2
ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3Jj
ZUF0Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9k
aWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2lu
ZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6
MSBwcmVzc3VyZTowLjBmXV07Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG91YmxlQ2xpY2s6Ci0gICAg
ICAgIC8vIFNlbmQgbXVsdGlwbGUgZG93biBhbmQgdXAgZXZlbnRzIHdpdGggcHJvcGVyIGNsaWNr
IGNvdW50LgotICAgICAgICAvLyBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xp
Y2sgZXZlbnQgdGhlbiBkb3VibGUtY2xpY2sgZXZlbnQuCi0gICAgICAgIFtldmVudHNUb0JlU2Vu
dCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9j
YXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRp
bWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2td
XTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50
V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFn
czptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVy
IGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3Vy
ZTowLjBmXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91
c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9k
aWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2lu
ZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6
MiBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVT
ZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9j
YXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRp
bWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVy
OmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MiBwcmVzc3VyZTowLjBmXV07Ci0gICAgfQotCi0gICAg
c2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsK
LX0KLQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9r
ZShXZWJQYWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Oktl
eWJvYXJkSW50ZXJhY3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkKLXsKLSAgICAvLyBJZiB0cnVlLCB0aGUga2V5J3Mg
bW9kaWZpZXIgZmxhZ3Mgc2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJlc3NlZCBk
b3duLgotICAgIGJvb2wgaXNTdGlja3lNb2RpZmllciA9IGZhbHNlOwotICAgIC8vIFRoZSBtb2Rp
ZmllcnMgY2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9yIHJl
bGVhc2VkLgotICAgIC8vIFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMgaXMgc3Bl
Y2lmaWVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgotICAgIE5TRXZlbnRNb2Rp
ZmllckZsYWdzIGNoYW5nZWRNb2RpZmllcnMgPSAwOwotICAgIC8vIFRoZSBsaWtlbHkga2V5Q29k
ZSBmb3IgdGhlIHZpcnR1YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVudHMuaD4u
Ci0gICAgaW50IGtleUNvZGUgPSAwOwotICAgIC8vIFR5cGljYWwgY2hhcmFjdGVycyBwcm9kdWNl
ZCBieSB0aGUgdmlydHVhbCBrZXksIGlmIGFueS4KLSAgICBOU1N0cmluZyAqY2hhcmFjdGVycyA9
IEAiIjsKLQotICAgIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0b21hdGlvbiBw
cm90b2NvbCBlbnVtIHNob3VsZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKLSAgICAvLyBmcm9t
IFczQyBVSUV2ZW50cyBzdGFuZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly93M2MuZ2l0
aHViLmlvL3VpZXZlbnRzLWNvZGUvCi0KLSAgICBzd2l0Y2ggKGtleSkgewotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6Ci0gICAgICAg
IGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdTaGlmdDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19TaGlmdDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpDb250cm9sOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19Db250cm9sOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkFsdGVybmF0ZToKLSAg
ICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19PcHRp
b247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6TWV0YToKLSAgICAgICAgLy8gVGhlICdtZXRhJyBrZXkgZG9lcyBu
b3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBpcyB1c3VhbGx5Ci0gICAgICAgIC8vIG1h
cHBlZCB0byB0aGUgQ29tbWFuZCBrZXkgd2hlbiB1c2luZyB0aGlyZC1wYXJ0eSBrZXlib2FyZHMu
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpD
b21tYW5kOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19Db21tYW5kOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhlbHA6Ci0gICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVu
Y3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfSGVscDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpCYWNrc3Bh
Y2U6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRGVsZXRlOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlRhYjoKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19UYWI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q2xlYXI6Ci0gICAgICAgIGNo
YW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAg
IGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRDbGVhcjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRlcjoKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZEVudGVyOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhdXNl
OgotICAgICAgICAvLyBUaGUgJ3BhdXNlJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5
Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gVGhlIHNlbWFudGljcyBhcmUg
dW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICByZXR1cm47Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDYW5j
ZWw6Ci0gICAgICAgIC8vIFRoZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUg
a2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRo
ZSBpbnRlcm5ldCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBzaW1pbGFyIHRvICdFc2NhcGUnLgotICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXNjYXBl
OgotICAgICAgICBrZXlDb2RlID0ga1ZLX0VzY2FwZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6Ci0g
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwot
ICAgICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VVcDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93bjoKLSAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfUGFnZURvd247Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgotICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19FbmQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SG9tZToKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfSG9tZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfTGVmdEFycm93OwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OlVwQXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAg
IGtleUNvZGUgPSBrVktfVXBBcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93OgotICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX1JpZ2h0QXJy
b3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RG93bkFycm93OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0
aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Rvd25BcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpJbnNl
cnQ6Ci0gICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUg
a2V5Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KLSAgICAgICAgLy8gVGhlIHNlbWFudGljcyBh
cmUgdW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgotICAgICAgICByZXR1cm47
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpE
ZWxldGU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1
bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0ZvcndhcmREZWxldGU7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6U3BhY2U6Ci0gICAgICAgIGtleUNvZGUgPSBrVktfU3BhY2U7Ci0gICAgICAgIGNoYXJhY3Rl
cnMgPSBAIiAiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKLSAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX1NlbWljb2xvbjsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiOyI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6RXF1YWxzOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfRXF1YWw7Ci0gICAgICAgIGNo
YXJhY3RlcnMgPSBAIj0iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKLSAgICAgICAga2V5Q29kZSA9
IGtWS19SZXR1cm47Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19BTlNJX0tleXBhZDA7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjAiOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6Ok51bWJlclBhZDE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQx
OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIxIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQyOgot
ICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFk
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMjsKLSAgICAgICAgY2hhcmFjdGVy
cyA9IEAiMiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMzoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZDM7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjMiOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZDQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ0Owot
ICAgICAgICBjaGFyYWN0ZXJzID0gQCI0IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1OgotICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwot
ICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNTsKLSAgICAgICAgY2hhcmFjdGVycyA9
IEAiNSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX0tleXBhZDY7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjYiOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
Ok51bWJlclBhZDc6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ3OwotICAg
ICAgICBjaGFyYWN0ZXJzID0gQCI3IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4OgotICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAg
ICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkODsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAi
OCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkOToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19B
TlNJX0tleXBhZDk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjkiOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZE11bHRpcGx5OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTXVs
dGlwbHk7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIioiOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZEFkZDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVt
ZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZFBsdXM7Ci0gICAgICAg
IGNoYXJhY3RlcnMgPSBAIisiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0OgotICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwot
ICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTWludXM7Ci0gICAgICAgIGNoYXJhY3Rl
cnMgPSBAIi0iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAg
Ly8gVGhlICdTZXBhcmF0b3InIGtleSBpcyBvbmx5IHByZXNlbnQgb24gYSBmZXcgaW50ZXJuYXRp
b25hbCBrZXlib2FyZHMuCi0gICAgICAgIC8vIEl0IGlzIHVzdWFsbHkgbWFwcGVkIHRvIHRoZSBz
YW1lIGNoYXJhY3RlciBhcyBEZWNpbWFsICgnLicgb3IgJywnKS4KLSAgICAgICAgRkFMTFRIUk9V
R0g7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpOdW1iZXJQYWREZWNpbWFsOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFk
RGVjaW1hbDsKLSAgICAgICAgLy8gRklYTUU6IHRoaXMgbWlnaHQgYmUgbG9jYWxlLWRlcGVuZGVu
dC4gU2VlIHRoZSBhYm92ZSBjb21tZW50LgotICAgICAgICBjaGFyYWN0ZXJzID0gQCIuIjsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpOdW1iZXJQYWREaXZpZGU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5T
SV9LZXlwYWREaXZpZGU7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIi8iOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkZ1bmN0aW9uMToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjE7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVu
Y3Rpb24yOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdG
dW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlv
bjM6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0
aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YzOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNDoK
LSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247
Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjQ7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb241OgotICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19GNTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjY6Ci0gICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAg
ICBrZXlDb2RlID0ga1ZLX0Y2OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtl
eUNvZGUgPSBrVktfRjc7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244OgotICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19GODsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6Ci0gICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0g
a1ZLX0Y5OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZL
X0YxMDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19G
MTE7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjEy
OwotICAgICAgICBicmVhazsKLSAgICB9Ci0KLSAgICBhdXRvIGV2ZW50c1RvQmVTZW50ID0gYWRv
cHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0KLSAgICBBU1NFUlQoaXNTdGlj
a3lNb2RpZmllciB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3MpOwotCi0gICAgTlNFdmVudE1v
ZGlmaWVyRmxhZ3MgZXhpc3RpbmdNb2RpZmllcnMgPSBbTlNFdmVudCBtb2RpZmllckZsYWdzXTsK
LSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyB1cGRhdGVkTW9kaWZpZXJzID0gMDsKLSAgICBOU1Rp
bWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNl
RGF0ZV07Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLSAg
ICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKLSAgICBOU1Bv
aW50IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQb2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWln
aHQpOwotCi0gICAgc3dpdGNoIChpbnRlcmFjdGlvbikgewotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVByZXNzOiB7
Ci0gICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIgPyBOU0V2
ZW50VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5RG93bjsKLSAgICAgICAgdXBkYXRl
ZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsKLSAgICAg
ICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmV2
ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlm
aWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpj
aGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAgICAgYnJlYWs7
Ci0gICAgfQotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9h
cmRJbnRlcmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKLSAgICAgICAgTlNFdmVudFR5cGUgZXZl
bnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDogTlNF
dmVudFR5cGVLZXlVcDsKLSAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZp
ZXJzICYgfmNoYW5nZWRNb2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmpl
Y3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3Np
dGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3
aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVy
cyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5
Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpJbnNlcnRC
eUtleTogewotICAgICAgICAvLyBTdGlja3kgbW9kaWZpZXJzIHNob3VsZCBlaXRoZXIgYmUgJ0tl
eVByZXNzJyBvciAnS2V5UmVsZWFzZScuCi0gICAgICAgIEFTU0VSVCghaXNTdGlja3lNb2RpZmll
cik7Ci0gICAgICAgIGlmIChpc1N0aWNreU1vZGlmaWVyKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8IGNoYW5nZWRN
b2RpZmllcnM7Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpr
ZXlDb2RlXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5
RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9k
aWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVt
YmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFj
dGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5
Q29kZV1dOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgfQotCi0gICAgc2VuZFN5bnRoZXNp
emVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKLX0KLQotdm9pZCBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQ
cm94eSYgcGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKLXsKLSAgICBhdXRvIGV2ZW50
c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7Ci0KLSAg
ICAvLyBTcGxpdCB0aGUgdGV4dCBpbnRvIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzIGFu
ZCBzZW5kIGVhY2ggc2VwYXJhdGVseS4KLSAgICAvLyBUaGlzIGhhcyBubyBzaW1pbGFyaXR5IHRv
IGhvdyBrZXlib2FyZHMgd29yayB3aGVuIGlucHV0dGluZyBjb21wbGV4IHRleHQuCi0gICAgLy8g
VGhpcyBjb21tYW5kIGlzIG1vcmUgc2ltaWxhciB0byB0aGUgJ2luc2VydFRleHQ6JyBlZGl0aW5n
IGNvbW1hbmQsIGV4Y2VwdAotICAgIC8vIHRoYXQgdGhpcyBlbWl0cyBrZXl1cC9rZXlkb3duL2tl
eXByZXNzIGV2ZW50cyBmb3Igcm91Z2hseSBlYWNoIGNoYXJhY3Rlci4KLSAgICAvLyBUaGlzIEFQ
SSBzaG91bGQgbW92ZSBtb3JlIHRvd2FyZHMgdGhhdCBkaXJlY3Rpb24gaW4gdGhlIGZ1dHVyZS4K
LSAgICBOU1N0cmluZyAqdGV4dCA9IGtleVNlcXVlbmNlOwotCi0gICAgTlNFdmVudE1vZGlmaWVy
RmxhZ3MgbW9kaWZpZXJzID0gW05TRXZlbnQgbW9kaWZpZXJGbGFnc107Ci0gICAgTlNUaW1lSW50
ZXJ2YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVd
OwotICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7Ci0gICAgTlNJ
bnRlZ2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7Ci0gICAgTlNQb2ludCBl
dmVudFBvc2l0aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsK
LQotICAgIFt0ZXh0IGVudW1lcmF0ZVN1YnN0cmluZ3NJblJhbmdlOk5TTWFrZVJhbmdlKDAsIHRl
eHQubGVuZ3RoKSBvcHRpb25zOk5TU3RyaW5nRW51bWVyYXRpb25CeUNvbXBvc2VkQ2hhcmFjdGVy
U2VxdWVuY2VzIHVzaW5nQmxvY2s6XihOU1N0cmluZyAqc3Vic3RyaW5nLCBOU1JhbmdlIHN1YnN0
cmluZ1JhbmdlLCBOU1JhbmdlIGVuY2xvc2luZ1JhbmdlLCBCT09MICpzdG9wKSB7Ci0gICAgICAg
IFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2
ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlm
aWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1
YnN0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07Ci0gICAgICAgIFtldmVudHNUb0JlU2Vu
dCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxv
Y2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRp
bWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6
c3Vic3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0
Ok5PIGtleUNvZGU6MF1dOwotICAgIH1dOwotCi0gICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9Q
YWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKLX0KLQotU3RyaW5nIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJs
ZUJpdG1hcDo6SGFuZGxlJiBpbWFnZURhdGFIYW5kbGUpCi17Ci0gICAgUmVmUHRyPFNoYXJlYWJs
ZUJpdG1hcD4gYml0bWFwID0gU2hhcmVhYmxlQml0bWFwOjpjcmVhdGUoaW1hZ2VEYXRhSGFuZGxl
LCBTaGFyZWRNZW1vcnk6OlByb3RlY3Rpb246OlJlYWRPbmx5KTsKLSAgICBSZXRhaW5QdHI8Q0dJ
bWFnZVJlZj4gY2dJbWFnZSA9IGJpdG1hcC0+bWFrZUNHSW1hZ2UoKTsKLSAgICBSZXRhaW5QdHI8
TlNNdXRhYmxlRGF0YT4gaW1hZ2VEYXRhID0gYWRvcHROUyhbW05TTXV0YWJsZURhdGEgYWxsb2Nd
IGluaXRdKTsKLSAgICBSZXRhaW5QdHI8Q0dJbWFnZURlc3RpbmF0aW9uUmVmPiBkZXN0aW5hdGlv
biA9IGFkb3B0Q0YoQ0dJbWFnZURlc3RpbmF0aW9uQ3JlYXRlV2l0aERhdGEoKENGTXV0YWJsZURh
dGFSZWYpaW1hZ2VEYXRhLmdldCgpLCBrVVRUeXBlUE5HLCAxLCAwKSk7Ci0gICAgaWYgKCFkZXN0
aW5hdGlvbikKLSAgICAgICAgcmV0dXJuIFN0cmluZygpOwotCi0gICAgQ0dJbWFnZURlc3RpbmF0
aW9uQWRkSW1hZ2UoZGVzdGluYXRpb24uZ2V0KCksIGNnSW1hZ2UuZ2V0KCksIDApOwotICAgIENH
SW1hZ2VEZXN0aW5hdGlvbkZpbmFsaXplKGRlc3RpbmF0aW9uLmdldCgpKTsKLQotICAgIHJldHVy
biBbaW1hZ2VEYXRhIGJhc2U2NEVuY29kZWRTdHJpbmdXaXRoT3B0aW9uczowXTsKLX0KLQotI2Vu
ZGlmIC8vIFVTRShBUFBLSVQpCi0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGJiY2Q3OTYx
YWY0YjJlOThlZGY3NTk3ZDQzZjYyZmYwMjhkMTRjYjYuLjEzMDU2N2U0YjNhMDdmN2NhZmQ5OGU0
YjlkZmNiNmMxZjRiNTY4MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTEzMjMsNyArMTMyMyw5IEBACiAJCTk5NTVBNkY1MUM3
OTg2RTAwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMTFDNzk4NjY0MDBF
QjZBOTMgLyogQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5oICovOyB9OwogCQk5OTU1QTZG
NjFDNzk4NkUzMDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHAgaW4gU291
cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMjFDNzk4NjY0
MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHAgKi87IH07CiAJCTk5NTVB
NkY3MUM3OTg2RTUwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OTU1QTZGMzFDNzk4NjY0
MDBFQjZBOTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oICovOyB9OwotCQk5OTg2QkRE
NzFDQTlBMjJDMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5ODZCREQ2MUNBOUEyMjIw
MDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tICovOyB9OworCQk5OUMzQUUy
NDFEQUQ4RTM3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUMzQUUyMzFEQUQ4RTM0MDBB
RjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gKi87IH07CisJCTk5QzNBRTI3MURB
RDk0ODkwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMjYxREFEOTQ4NTAwQUY1
QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi87IH07CisJCTk5QzNBRTJEMURB
REE2QUQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDM0FFMkMxREFEQTZBNzAwQUY1
QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi87IH07CiAJCTk5QzgxRDU5MUMy
MEUxRTUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDODFENTYxQzIwREZCRTAwNUM0QzgyIC8qIEF1
dG9tYXRpb25DbGllbnQubW0gKi87IH07CiAJCTk5QzgxRDVBMUMyMEU3RTIwMDVDNEM4MiAvKiBB
dXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA5OUM4MUQ1NTFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5oICov
OyB9OwogCQk5OUM4MUQ1RDFDMjFGMzhCMDA1QzRDODIgLyogQVBJQXV0b21hdGlvbkNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTlDODFENUIx
QzIwRTgxNzAwNUM0QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCAqLzsgfTsKQEAgLTM0NzUs
NyArMzQ3Nyw5IEBACiAJCTk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFj
a2VuZERpc3BhdGNoZXJzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9t
YXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTk1NUE2RjIxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQXV0b21hdGlvblByb3RvY29s
T2JqZWN0cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTk5NTVBNkYzMUM3OTg2
NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKLQkJOTk4NkJERDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25N
YWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0
aW9uU2Vzc2lvbk1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTlDM0FFMjYx
REFEOTQ4NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29h
Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVD
MTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJOTlDODFENTUxQzIwREZCRTAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGll
bnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvbkNsaWVudC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIg
LyogQXV0b21hdGlvbkNsaWVudC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEF1dG9tYXRpb25DbGllbnQubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTk5QzgxRDVCMUMyMEU4MTcwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEFQSUF1dG9tYXRpb25DbGllbnQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTQ5MTQsNyArNDkxOCw2IEBACiAJCQkJMkRBRjRGRkEx
QjYzNjE4MTAwNjAxM0Q2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5jcHAgKi8sCiAJCQkJMkQx
MjVDNUMxODU3RUEwNTAwM0JBM0NCIC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5oICovLAogCQkJ
CTJEMUI1RDVBMTg1ODY1OTkwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXIubWVzc2Fn
ZXMuaW4gKi8sCi0JCQkJOTk4NkJERDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uQ29jb2EubW0gKi8sCiAJCQkJMUFDMDI3M0UxOTY2MjJENjAwQzEyQjc1IC8qIFdlYlBh
Z2VQcm94eUNvY29hLm1tICovLAogCQkJCTdDNDY5NENCMUE0QjUxMEEwMEFENTg0NSAvKiBXZWJQ
YXN0ZWJvYXJkUHJveHlDb2NvYS5tbSAqLywKIAkJCQlDREEyOUExRTFDQkVCNUZCMDA5MDFDQ0Yg
LyogV2ViUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5LmggKi8sCkBAIC02MDI1LDEzICs2MDI4
LDMyIEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTk5NTVBNkU5
MUM3OTgwQkIwMEVCNkE5MyAvKiBBdXRvbWF0aW9uLmpzb24gKi8sCisJCQkJOTlDM0FFMjUxREFE
OTQ2NzAwQUY1QzE2IC8qIGNvY29hICovLAorCQkJCTk5QzNBRTIyMURBRDhFMTQwMEFGNUMxNiAv
KiBtYWMgKi8sCiAJCQkJOTk1NUE2RUExQzc5ODBCQjAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcCAqLywKIAkJCQk5OTU1QTZFQjFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21h
dGlvblNlc3Npb24uaCAqLywKIAkJCQkxQzBBMTk1OTFDOTAwNkVBMDBGRTBFQkIgLyogV2ViQXV0
b21hdGlvblNlc3Npb24ubWVzc2FnZXMuaW4gKi8sCisJCQkJOTlDM0FFMkMxREFEQTZBNzAwQUY1
QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggKi8sCiAJCQkpOwogCQkJcGF0aCA9
IEF1dG9tYXRpb247CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwogCQl9OworCQk5OUMzQUUy
MjFEQUQ4RTE0MDBBRjVDMTYgLyogbWFjICovID0geworCQkJaXNhID0gUEJYR3JvdXA7CisJCQlj
aGlsZHJlbiA9ICgKKwkJCQk5OUMzQUUyMzFEQUQ4RTM0MDBBRjVDMTYgLyogV2ViQXV0b21hdGlv
blNlc3Npb25NYWMubW0gKi8sCisJCQkpOworCQkJcGF0aCA9IG1hYzsKKwkJCXNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7CisJCX07CisJCTk5QzNBRTI1MURBRDk0NjcwMEFGNUMxNiAvKiBjb2NvYSAq
LyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJOTlDM0FFMjYx
REFEOTQ4NTAwQUY1QzE2IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gKi8sCisJCQkp
OworCQkJcGF0aCA9IGNvY29hOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJ
QTE4MkQ1QjExQkU2QkNGNDAwODdBN0NDIC8qIGlvcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCkBAIC04MzAxLDYgKzgzMjMsNyBAQAogCQkJCUJDNDk4NjJGMTI0
RDE4QzEwMEQ4MzRFMSAvKiBXS0J1bmRsZUhpdFRlc3RSZXN1bHQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDMjA0RUYyMTFDODNFQzgwMDhGMzM3NSAvKiBXS0J1bmRsZUluaXRpYWxpemUuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTY1Qjg2RjFFMTJGMTFERTMwMEI3REQ4QSAvKiBXS0J1bmRsZUluc3Bl
Y3Rvci5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQThCNjZCNDFC
QzQ1QjAxMDA4MkRGNzcgLyogV0tCdW5kbGVNYWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNzA0
M0NDMTJGNzVFRTAwMDY0NzJCOSAvKiBXS0J1bmRsZU5hdmlnYXRpb25BY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTUxQTcyOERFMUIxQkFEMzgwMDEwMkVFRSAvKiBXS0J1bmRsZU5hdmlnYXRp
b25BY3Rpb25Qcml2YXRlLmggaW4gSGVhZGVycyAqLywKQEAgLTk0MzQsNiArOTQ1Nyw3IEBACiAJ
CQkJNTFGRDE4QjUxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlFMTUyNTUxQTE3MDExODE5MDAzRDdBREIgLyogTmV0d29ya1Jl
c291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTVDMTQy
NkVGMUMyM0Y4MDkwMEQ0MTE4MyAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycy5jcHAg
aW4gU291cmNlcyAqLywKKwkJCQk5OUMzQUUyNzFEQUQ5NDg5MDBBRjVDMTYgLyogV2ViQXV0b21h
dGlvblNlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJCUJDODI4M0FDMTZCNEJGM0Yw
MEEyNzhGRSAvKiBOZXR3b3JrU2VydmljZUVudHJ5UG9pbnQubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MzIxNTk1MzFEQkFFNzE4MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNUMyMENCOUQxQkIwRENGQTAwODk1QkIxIC8qIE5ldHdvcmtTZXNzaW9uQ29j
b2EubW0gaW4gU291cmNlcyAqLywKQEAgLTk2MDAsNyArOTYyNCw2IEBACiAJCQkJMUE4RTdEM0Mx
OEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5rVGFibGVDb250cm9sbGVyTWVzc2FnZVJlY2Vp
dmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUNFREExMkUyMTUyQ0QxQUUwMEQ5RTA4RCAvKiBX
ZWJBbHRlcm5hdGl2ZVRleHRDbGllbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJOTk1NUE2RUQx
Qzc5ODBDQTAwRUI2QTkzIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBpbiBTb3VyY2VzICov
LAotCQkJCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNv
Y29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NTcxQzkwMDY4RjAwRkUwRUJCIC8qIFdl
YkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTFDMEExOTQ2MUM4RkYxQTgwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5LmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTFDMEExOTUzMUM4RkZERkIwMEZFMEVCQiAvKiBXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLApAQCAt
OTc0NCw2ICs5NzY3LDcgQEAKIAkJCQlCQ0JEMzkxNDEyNUJCMUE4MDBEMkMyOUYgLyogV2ViUGFn
ZVByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxMjEyN0MzMTkw
ODIzOUEwMERBRjM1QyAvKiBXZWJQYXN0ZWJvYXJkT3ZlcnJpZGVzLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTdDNDY5NEQwMUE1MUUzNjgwMEFENTg0NSAvKiBXZWJQYXN0ZWJvYXJkUHJveHkuY3Bw
IGluIFNvdXJjZXMgKi8sCisJCQkJOTlDM0FFMjQxREFEOEUzNzAwQUY1QzE2IC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uTWFjLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0Q0MxQTRCNTEwQTAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJ
N0M0Njk0QzkxQTRCNEVBMTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUIxRjc3NDFEMUIyRjhBMDA3QzlCRDEgLyog
V2ViUGF5bWVudENvb3JkaW5hdG9yLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299100</attachid>
            <date>2017-01-17 18:16:38 -0800</date>
            <delta_ts>2017-01-17 21:06:47 -0800</delta_ts>
            <desc>Proposed Fix v2.1</desc>
            <filename>bug-163297-20170117181500.patch</filename>
            <type>text/plain</type>
            <size>92356</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGQwMDQ5MmZjMDM1ZmE3
ZTNmZTFkYWIxNmQzZTA2MzhkYzM1NjliYi4uMzlkNzg0MzM4ZTQzZWVmYjA4MjlkMTAzYjk3NzY5
NDcwNzM5NjIwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU3IEBACisyMDE3LTAxLTE3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
TWFjLXNwZWNpZmljIGF1dG9tYXRpb24gY29tbWFuZHMgdG8gYSBzZXBhcmF0ZSBpbXBsZW1lbnRh
dGlvbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjMyOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBhbGwgQXV0b21hdGlvbiBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuIFN0YXJ0IHNwbGl0dGluZyBv
dXQKKyAgICAgICAgY29tbWFuZCBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBiYXNl
ZCBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgU2V0IGFuIGFwcHJvcHJpYXRlIC0tcGxhdGZvcm0gc28gdGhlIGNvcnJlY3Qg
YmFja2VuZCBpbnRlcmZhY2UgaXMgZ2VuZXJhdGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uOgorICAgICAgICBHdWFyZCBjb21tYW5kcyB0aGF0IHNo
b3VsZCBub3QgYmUgYXZhaWxhYmxlIG9uIGlPUzoKKyAgICAgICAgICAgIC0gcmVzaXplV2luZG93
T2ZCcm93c2luZ0NvbnRleHQKKyAgICAgICAgICAgIC0gbW92ZVdpbmRvd09mQnJvd3NpbmdDb250
ZXh0CisgICAgICAgICAgICAtIGluc3BlY3RCcm93c2luZ0NvbnRleHQKKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0
KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJy
b3dzaW5nQ29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpp
bnNwZWN0QnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgLSBCdWlsZCB0aGVzZSBmb3IgUExBVEZP
Uk0oTUFDKS4KKworICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZv
cm1TaW11bGF0ZUtleVNlcXVlbmNlKTogRGVsZXRlZC4KKyAgICAgICAgLSBNb3ZlIHNoYXJlZCBj
b252ZW5pZW5jZSBtYWNyb3MgdG8gaGVhZGVyIGZpbGUuCisgICAgICAgIC0gTW92ZSBvdXQgQ29j
b2Etb25seSBvciBNYWMtb25seSBjb21tYW5kIGltcGxlbWVudGF0aW9ucy4KKworICAgICAgICAq
IFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmg6CisgICAgICAgIFJl
YXJyYW5nZSBzb21lIGRlY2xhcmF0aW9ucyBhbmQgc3dpdGNoIGZyb20gVVNFKEFQUEtJVCkgdG8g
UExBVEZPUk0oTUFDKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uTWFjcm9zLmg6IEFkZGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1dG9t
YXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbTogQWRkZWQuCisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQ
TkdEYXRhKToKKyAgICAgICAgTW92ZWQgZnJvbSBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1t
LiBBZGQgaU9TLXNwZWNpZmljIGhlYWRlciBpbmNsdWRlcy4KKworICAgICAgICAqIFVJUHJvY2Vz
cy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbTogUmVuYW1lZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29h
Lm1tLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2VuZFN5bnRoZXNp
emVkRXZlbnRzVG9QYWdlKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
Om1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246Ondhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKToK
KyAgICAgICAgTW92ZSBvdXQgQXBwS2l0LXNwZWNpZmljIGV2ZW50IHNpbXVsYXRpb24gY29kZSB0
byBoZXJlLgorCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9y
bVNpbXVsYXRlTW91c2VJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6CisgICAg
ICAgIE1vdmUgb3V0IE1hYyBwbGF0Zm9ybUZvbyBpbXBsZW1lbnRhdGlvbnMgdG8gaGVyZS4KKwor
ICAgICAgICAqIFdlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgLSBB
ZGRlZCBVSVByb2Nlc3MvQXV0b21hdGlvbi97bWFjLGNvY29hfSBncm91cHMuCisgICAgICAgIC0g
QWRkIG5ldyBwbGF0Zm9ybS1zcGVjaWZpYyBpbXBsZW1lbnRhdGlvbiBmaWxlcy4KKwogMjAxNy0w
MS0xNyAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQW4gdXBk
YXRlIHRvIG9uZSBnYW1lcGFkJ3MgdmFsdWVzIHNob3VsZCBvbmx5IGNoYW5nZSB0aGF0IGdhbWVw
YWQncyBtb2RpZmllZCB0aW1lc3RhbXAuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCA0YjkzODJiODBhNjY5MTZhNjdjZTllNGM2MzhmYzM1OGYwNmQ1MTI5Li5kY2E0ZjU4OGUxNThj
MDI5ZDJlOGFjMmUxY2JkYTE0NDhlZTczNDQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9E
ZXJpdmVkU291cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJLaXQyL0Rlcml2ZWRTb3VyY2VzLm1h
a2UKQEAgLTIzNCw5ICsyMzQsMTcgQEAgQVVUT01BVElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMg
PSBcCiAgICAgQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5jcHAgXAogIwogCitpZmVxICgk
KE9TKSxNQUNPUykKK2lmZXEgKCQoc2hlbGwgJChDQykgLXN0ZD1nbnUrKzExIC14IGMrKyAtRSAt
UCAtZE0gJChTREtfRkxBR1MpICQoRlJBTUVXT1JLX0ZMQUdTKSAkKEhFQURFUl9GTEFHUykgLWlu
Y2x1ZGUgInd0Zi9QbGF0Zm9ybS5oIiAvZGV2L251bGwgfCBncmVwICcgV1RGX1BMQVRGT1JNX0lP
UyAnIHwgY3V0IC1kJyAnIC1mMyksIDEpCisJQVVUT01BVElPTl9CQUNLRU5EX1BMQVRGT1JNX0FS
R1VNRU5UUyA9IC0tcGxhdGZvcm0gaU9TCitlbHNlCisJQVVUT01BVElPTl9CQUNLRU5EX1BMQVRG
T1JNX0FSR1VNRU5UUyA9IC0tcGxhdGZvcm0gbWFjT1MKK2VuZGlmCitlbmRpZiAjIE1BQ09TCisK
ICMgSlNPTi1SUEMgQmFja2VuZCBEaXNwYXRjaGVycywgVHlwZSBCdWlsZGVycwogJChmaXJzdHdv
cmQgJChBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBVVF9GSUxFUykpIDogJChBVVRPTUFUSU9OX1BS
T1RPQ09MX0lOUFVUX0ZJTEVTKSAkKEFVVE9NQVRJT05fUFJPVE9DT0xfR0VORVJBVE9SX1NDUklQ
VFMpCi0JJChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWlu
c3BlY3Rvci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLWZyYW1ld29yayBXZWJLaXQgLS1iYWNrZW5k
IC0tb3V0cHV0RGlyIC4gJChBVVRPTUFUSU9OX1BST1RPQ09MX0lOUFVUX0ZJTEVTKQorCSQoUFlU
SE9OKSAkKEphdmFTY3JpcHRDb3JlX1NDUklQVFNfRElSKS9nZW5lcmF0ZS1pbnNwZWN0b3ItcHJv
dG9jb2wtYmluZGluZ3MucHkgLS1mcmFtZXdvcmsgV2ViS2l0ICQoQVVUT01BVElPTl9CQUNLRU5E
X1BMQVRGT1JNX0FSR1VNRU5UUykgLS1iYWNrZW5kIC0tb3V0cHV0RGlyIC4gJChBVVRPTUFUSU9O
X1BST1RPQ09MX0lOUFVUX0ZJTEVTKQogCiBhbGwgOiAkKGZpcnN0d29yZCAkKEFVVE9NQVRJT05f
UFJPVE9DT0xfT1VUUFVUX0ZJTEVTKSkKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDQ2Y2NlYTgyYjBlZTliOThmOWNk
MzBmNmRiOGFmZjY2MWExZjIzMDguLjFjNzE5ZDUzY2ZkNDdmNDhkYjI2OTcxNThhNzc3NzRmYmQ0
YzEwN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1
dG9tYXRpb24uanNvbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9B
dXRvbWF0aW9uLmpzb24KQEAgLTI0OCw2ICsyNDgsNyBAQAogICAgICAgICB7CiAgICAgICAgICAg
ICAibmFtZSI6ICJyZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dCIsCiAgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiUmVzaXplcyB0aGUgd2luZG93IG9mIHRoZSBzcGVjaWZpZWQgYnJvd3Np
bmcgY29udGV4dCB0byB0aGUgc3BlY2lmaWVkIHNpemUuIiwKKyAgICAgICAgICAgICJwbGF0Zm9y
bSI6ICJtYWNPUyIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0byBiZSBy
ZXNpemVkLiIgfSwKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogInNpemUiLCAiJHJlZiI6ICJT
aXplIiwgImRlc2NyaXB0aW9uIjogIlRoZSBuZXcgc2l6ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRl
eHQncyB3aW5kb3cuIiB9CkBAIC0yNTYsNiArMjU3LDcgQEAKICAgICAgICAgewogICAgICAgICAg
ICAgIm5hbWUiOiAibW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJNb3ZlcyB0aGUgd2luZG93IG9mIHRoZSBzcGVjaWZpZWQgYnJvd3Npbmcg
Y29udGV4dCB0byB0aGUgc3BlY2lmaWVkIHBvc2l0aW9uLiIsCisgICAgICAgICAgICAicGxhdGZv
cm0iOiAibWFjT1MiLAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJoYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
ZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQgdG8gYmUg
bW92ZWQuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAib3JpZ2luIiwgIiRyZWYiOiAi
UG9pbnQiLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBvcmlnaW4gZm9yIHRoZSBicm93c2luZyBj
b250ZXh0J3Mgd2luZG93LiBUaGUgcG9zaXRpb24gaXMgaW50ZXJwcmV0ZWQgaW4gc2NyZWVuIGNv
b3JkaW5hdGUgc3BhY2UsIHJlbGF0aXZlIHRvIHRoZSB1cHBlciBsZWZ0IGNvcm5lciBvZiB0aGUg
c2NyZWVuLiIgfQpAQCAtMjk3LDYgKzI5OSw3IEBACiAgICAgICAgIHsKICAgICAgICAgICAgICJu
YW1lIjogImluc3BlY3RCcm93c2luZ0NvbnRleHQiLAogICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogIkluc3BlY3QgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IHVzaW5nIFdlYiBJbnNw
ZWN0b3IuIiwKKyAgICAgICAgICAgICJwbGF0Zm9ybSI6ICJtYWNPUyIsCiAgICAgICAgICAgICAi
cGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgYnJvd3NpbmcgY29udGV4dCB0aGF0IHNob3VsZCBiZSBpbnNwZWN0ZWQuIiB9LAogICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiZW5hYmxlQXV0b0NhcHR1cmluZyIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhpcyBvcHRpb24g
aXMgcHJlc2VudCBhbmQgc2V0IHRvIHRydWUsIHRoZSBXZWIgSW5zcGVjdG9yIHdpbGwgYXV0b21h
dGljYWxseSBzdGFydCBhIHRpbWVsaW5lIHJlY29yZGluZyBvZiB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQgb25jZSBpdCBpcyBhdHRhY2hlZC4gTm90ZSB0aGF0IHRoaXMgZGlzYWJsZXMg
dGhlIGRlYnVnZ2VyIGZvciB0aGUgZHVyYXRpb24gb2YgdGhlIHJlY29yZGluZy4iIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcAppbmRleCBlNmJhMDdkYzk1YzQ0Njc5NzQ5ODNjNTE1ZjUwYTQ3NWFl
ZTAzYzVlLi5kZjc3ZDFjN2VkZDA1ZjE4MTY4ZjdiNDRiMzY5YzYyNGNlMjljNGMwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpbmNsdWRlICJBUElBdXRvbWF0
aW9uU2Vzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIkF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMu
aCIKKyNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgogI2luY2x1ZGUgIldl
YkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vz
c2lvblByb3h5TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5hZ2VyUHJveHkuaCIK
QEAgLTQ0LDMyICs0NSw2IEBACiAKIHVzaW5nIG5hbWVzcGFjZSBJbnNwZWN0b3I7CiAKLXN0YXRp
YyBjb25zdCBjaGFyKiBjb25zdCBlcnJvck5hbWVBbmREZXRhaWxzU2VwYXJhdG9yID0gIjsiOwot
Ci0vLyBNYWtlIHN1cmUgdGhlIHByZWRlZmluZWQgZXJyb3IgbmFtZSBpcyB2YWxpZCwgb3RoZXJ3
aXNlIHVzZSBJbnRlcm5hbEVycm9yLgotI2RlZmluZSBWQUxJREFURURfRVJST1JfTUVTU0FHRShl
cnJvclN0cmluZykgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OnBhcnNl
RW51bVZhbHVlRnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJv
ck1lc3NhZ2U+KGVycm9yU3RyaW5nKS52YWx1ZV9vcihJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpFcnJvck1lc3NhZ2U6OkludGVybmFsRXJyb3IpCi0KLS8vIElmIHRoZSBlcnJvciBu
YW1lIGlzIGluY29ycmVjdCBmb3IgdGhlc2UgbWFjcm9zLCBpdCB3aWxsIGJlIGEgY29tcGlsZS10
aW1lIGVycm9yLgotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJv
ck5hbWUpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29u
c3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6
OmVycm9yTmFtZSkKLSNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5E
X0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSksIGVycm9y
TmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCi0KLS8vIElmIHRoZSBlcnJv
ciBtZXNzYWdlIGlzIG5vdCBhIHByZWRlZmluZWQgZXJyb3IsIEludGVybmFsRXJyb3Igd2lsbCBi
ZSB1c2VkIGluc3RlYWQuCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNT
QUdFKGVycm9yTWVzc2FnZSkgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6
OmdldEVudW1Db25zdGFudFZhbHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2Fn
ZSkpCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFX0FORF9ERVRB
SUxTKGVycm9yTWVzc2FnZSwgZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoVkFMSURBVEVE
X0VSUk9SX01FU1NBR0UoZXJyb3JNZXNzYWdlKSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0
b3IsIGRldGFpbHNTdHJpbmcpCi0KLS8vIENvbnZlbmllbmNlIG1hY3JvcyBmb3IgZmlsbGluZyBp
biB0aGUgZXJyb3Igc3RyaW5nIG9mIHN5bmNocm9ub3VzIGNvbW1hbmRzIGluIGJhaWxvdXQgYnJh
bmNoZXMuCi0jZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKGVycm9yTmFtZSkgXAot
ZG8geyBcCi0gICAgZXJyb3JTdHJpbmcgPSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFN
RShlcnJvck5hbWUpOyBcCi0gICAgcmV0dXJuOyBcCi19IHdoaWxlIChmYWxzZSkKLQotI2RlZmlu
ZSBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFp
bHNTdHJpbmcpIFwKLWRvIHsgXAotICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZPUl9QUkVERUZJ
TkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKTsgXAot
ICAgIHJldHVybjsgXAotfSB3aGlsZSAoZmFsc2UpCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6V2ViQXV0b21hdGlvblNlc3Npb24oKQpAQCAtMjQ1LDYgKzIy
MCw4IEBAIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0Nv
bnRleHQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpiCiAgICAgICAgIC5yZWxlYXNlKCk7CiB9CiAK
Ky8vIFBsYXRmb3JtLWluZGVwZW5kZW50IENvbW1hbmRzLgorCiB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpnZXRCcm93c2luZ0NvbnRleHRzKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9y
U3RyaW5nLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0Pj4mIGNvbnRleHRzKQogewogICAgIGNv
bnRleHRzID0gSW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0Pjo6Y3JlYXRlKCk7CkBAIC0zMTEsODAgKzI4OCw2
IEBAIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnN3aXRjaFRvQnJvd3NpbmdDb250ZXh0KElu
c3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yCiAgICAgcGFnZS0+cHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYkF1dG9tYXRpb25TZXNzaW9uUHJveHk6OkZvY3VzRnJhbWUocGFnZS0+cGFnZUlE
KCksIGZyYW1lSUQudmFsdWUoKSksIDApOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9u
OjpyZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBl
cnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVj
dG9yT2JqZWN0JiBzaXplT2JqZWN0KQotewotICAgIGZsb2F0IHdpZHRoOwotICAgIGlmICghc2l6
ZU9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoIndpZHRoIiksIHdpZHRoKSkKLSAg
ICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFt
ZXRlciwgIlRoZSAnd2lkdGgnIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7
Ci0KLSAgICBmbG9hdCBoZWlnaHQ7Ci0gICAgaWYgKCFzaXplT2JqZWN0LmdldERvdWJsZShXVEY6
OkFTQ0lJTGl0ZXJhbCgiaGVpZ2h0IiksIGhlaWdodCkpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ2hlaWdodCcg
cGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKLQotICAgIGlmICh3aWR0aCA8
IDApCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFs
aWRQYXJhbWV0ZXIsICJUaGUgJ3dpZHRoJyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUu
Iik7Ci0KLSAgICBpZiAoaGVpZ2h0IDwgMCkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSAnaGVpZ2h0JyBwYXJhbWV0
ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7Ci0KLSAgICBXZWJQYWdlUHJveHkqIHBhZ2UgPSB3
ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKLSAgICBpZiAoIXBhZ2UpCi0gICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKLQotICAgIFdlYkNvcmU6
OkZsb2F0UmVjdCBvcmlnaW5hbEZyYW1lOwotICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKG9yaWdp
bmFsRnJhbWUpOwotCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG5ld0ZyYW1lID0gV2ViQ29yZTo6
RmxvYXRSZWN0KG9yaWdpbmFsRnJhbWUubG9jYXRpb24oKSwgV2ViQ29yZTo6RmxvYXRTaXplKHdp
ZHRoLCBoZWlnaHQpKTsKLSAgICBpZiAobmV3RnJhbWUgPT0gb3JpZ2luYWxGcmFtZSkKLSAgICAg
ICAgcmV0dXJuOwotCi0gICAgcGFnZS0+c2V0V2luZG93RnJhbWUobmV3RnJhbWUpOwotCi0gICAg
Ly8gSWYgbm90aGluZyBjaGFuZ2VkIGF0IGFsbCwgaXQncyBwcm9iYWJseSBmYWlyIHRvIHJlcG9y
dCB0aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nLgotICAgIC8vIChXZSBjYW4ndCBhc3N1bWUgdGhh
dCB0aGUgcmVxdWVzdGVkIGZyYW1lIHNpemUgd2lsbCBiZSBob25vcmVkIGV4YWN0bHksIGhvd2V2
ZXIuKQotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB1cGRhdGVkRnJhbWU7Ci0gICAgcGFnZS0+Z2V0
V2luZG93RnJhbWUodXBkYXRlZEZyYW1lKTsKLSAgICBpZiAob3JpZ2luYWxGcmFtZSA9PSB1cGRh
dGVkRnJhbWUpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxT
KEludGVybmFsRXJyb3IsICJUaGUgd2luZG93IHNpemUgd2FzIGV4cGVjdGVkIHRvIGhhdmUgY2hh
bmdlZCwgYnV0IGRpZCBub3QuIik7Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1v
dmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0
cmluZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2Jq
ZWN0JiBwb3NpdGlvbk9iamVjdCkKLXsKLSAgICBmbG9hdCB4OwotICAgIGlmICghcG9zaXRpb25P
YmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFsKCJ4IiksIHgpKQotICAgICAgICBGQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhl
ICd4JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAgZmxvYXQg
eTsKLSAgICBpZiAoIXBvc2l0aW9uT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgi
eSIpLCB5KSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
TWlzc2luZ1BhcmFtZXRlciwgIlRoZSAneScgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52
YWxpZC4iKTsKLQotICAgIGlmICh4IDwgMCkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSAneCcgcGFyYW1ldGVyIGhh
ZCBhbiBpbnZhbGlkIHZhbHVlLiIpOwotCi0gICAgaWYgKHkgPCAwKQotICAgICAgICBGQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd5
JyBwYXJhbWV0ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7Ci0KLSAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKLSAgICBpZiAoIXBhZ2UpCi0g
ICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKLQotICAg
IFdlYkNvcmU6OkZsb2F0UmVjdCBvcmlnaW5hbEZyYW1lOwotICAgIHBhZ2UtPmdldFdpbmRvd0Zy
YW1lKG9yaWdpbmFsRnJhbWUpOwotCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG5ld0ZyYW1lID0g
V2ViQ29yZTo6RmxvYXRSZWN0KFdlYkNvcmU6OkZsb2F0UG9pbnQoeCwgeSksIG9yaWdpbmFsRnJh
bWUuc2l6ZSgpKTsKLSAgICBpZiAobmV3RnJhbWUgPT0gb3JpZ2luYWxGcmFtZSkKLSAgICAgICAg
cmV0dXJuOwotCi0gICAgcGFnZS0+c2V0V2luZG93RnJhbWUobmV3RnJhbWUpOwotCi0gICAgLy8g
SWYgbm90aGluZyBjaGFuZ2VkIGF0IGFsbCwgaXQncyBwcm9iYWJseSBmYWlyIHRvIHJlcG9ydCB0
aGF0IHNvbWV0aGluZyB3ZW50IHdyb25nLgotICAgIC8vIChXZSBjYW4ndCBhc3N1bWUgdGhhdCB0
aGUgcmVxdWVzdGVkIGZyYW1lIHNpemUgd2lsbCBiZSBob25vcmVkIGV4YWN0bHksIGhvd2V2ZXIu
KQotICAgIFdlYkNvcmU6OkZsb2F0UmVjdCB1cGRhdGVkRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2lu
ZG93RnJhbWUodXBkYXRlZEZyYW1lKTsKLSAgICBpZiAob3JpZ2luYWxGcmFtZSA9PSB1cGRhdGVk
RnJhbWUpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKElu
dGVybmFsRXJyb3IsICJUaGUgd2luZG93IHBvc2l0aW9uIHdhcyBleHBlY3RlZCB0byBoYXZlIGNo
YW5nZWQsIGJ1dCBkaWQgbm90LiIpOwotfQotCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpu
YXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmlu
ZywgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyYgdXJsLCBSZWY8TmF2aWdhdGVC
cm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKIHsKICAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKQEAgLTQzOCwyNyArMzQxLDYg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVsb2FkQnJvd3NpbmdDb250ZXh0KEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3QKICAgICBwYWdlLT5yZWxvYWQocmVsb2FkRnJvbU9y
aWdpbiwgeyB9KTsKIH0KIAotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5zcGVjdEJyb3dz
aW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3Ry
aW5nJiBoYW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywgUmVm
PEluc3BlY3RCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKLXsKLSAgICBXZWJQ
YWdlUHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKLSAgICBpZiAo
IXBhZ2UpCi0gICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5k
KTsKLQotICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tz
UGVyUGFnZS50YWtlKHBhZ2UtPnBhZ2VJRCgpKSkKLSAgICAgICAgY2FsbGJhY2stPnNlbmRGYWls
dXJlKFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKLSAgICBtX3Bl
bmRpbmdJbnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlLnNldChwYWdlLT5wYWdlSUQoKSwgV1RGTW92
ZShjYWxsYmFjaykpOwotCi0gICAgLy8gRG9uJ3QgYnJpbmcgdGhlIGluc3BlY3RvciB0byBmcm9u
dCBzaW5jZSB0aGlzIG1heSBiZSBkb25lIGF1dG9tYXRpY2FsbHkuCi0gICAgLy8gV2UganVzdCB3
YW50IGl0IGxvYWRlZCBzbyBpdCBjYW4gcGF1c2UgaWYgYSBicmVha3BvaW50IGlzIGhpdCBkdXJp
bmcgYSBjb21tYW5kLgotICAgIGlmIChwYWdlLT5pbnNwZWN0b3IoKSkgewotICAgICAgICBwYWdl
LT5pbnNwZWN0b3IoKS0+Y29ubmVjdCgpOwotCi0gICAgICAgIC8vIFN0YXJ0IGNvbGxlY3Rpbmcg
cHJvZmlsZSBpbmZvcm1hdGlvbiBpbW1lZGlhdGVseSBzbyB0aGUgZW50aXJlIHNlc3Npb24gaXMg
Y2FwdHVyZWQuCi0gICAgICAgIGlmIChvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcgJiYgKm9w
dGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZykKLSAgICAgICAgICAgIHBhZ2UtPmluc3BlY3Rvcigp
LT50b2dnbGVQYWdlUHJvZmlsaW5nKCk7Ci0gICAgfQotfQotCiB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpuYXZpZ2F0aW9uT2NjdXJyZWRGb3JQYWdlKGNvbnN0IFdlYlBhZ2VQcm94eSYgcGFn
ZSkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ05hdmlnYXRpb25JbkJyb3dz
aW5nQ29udGV4dENhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLnBhZ2VJRCgpKSkKQEAgLTEwNDMs
NyArOTI1LDEwNiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRUYWtlU2NyZWVuc2hv
dCh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTaGFyZWFibAogICAgIGNhbGxiYWNrLT5zZW5k
U3VjY2VzcyhiYXNlNjRFbmNvZGVkRGF0YSk7CiB9CiAKLSNpZiAhVVNFKEFQUEtJVCkKKyNpZiAh
UExBVEZPUk0oSU9TKQordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVzaXplV2luZG93T2ZC
cm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0
IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZU9i
amVjdCkKK3sKKyAgICBmbG9hdCB3aWR0aDsKKyAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91Ymxl
KFdURjo6QVNDSUlMaXRlcmFsKCJ3aWR0aCIpLCB3aWR0aCkpCisgICAgICAgIEZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJUaGUgJ3dpZHRo
JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOworCisgICAgZmxvYXQgaGVp
Z2h0OworICAgIGlmICghc2l6ZU9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoImhl
aWdodCIpLCBoZWlnaHQpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRf
REVUQUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICdoZWlnaHQnIHBhcmFtZXRlciB3YXMgbm90
IGZvdW5kIG9yIGludmFsaWQuIik7CisKKyAgICBpZiAod2lkdGggPCAwKQorICAgICAgICBGQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhl
ICd3aWR0aCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlkIHZhbHVlLiIpOworCisgICAgaWYgKGhl
aWdodCA8IDApCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxT
KEludmFsaWRQYXJhbWV0ZXIsICJUaGUgJ2hlaWdodCcgcGFyYW1ldGVyIGhhZCBhbiBpbnZhbGlk
IHZhbHVlLiIpOworCisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFu
ZGxlKGhhbmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3Qgb3JpZ2lu
YWxGcmFtZTsKKyAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZShvcmlnaW5hbEZyYW1lKTsKKworICAg
IFdlYkNvcmU6OkZsb2F0UmVjdCBuZXdGcmFtZSA9IFdlYkNvcmU6OkZsb2F0UmVjdChvcmlnaW5h
bEZyYW1lLmxvY2F0aW9uKCksIFdlYkNvcmU6OkZsb2F0U2l6ZSh3aWR0aCwgaGVpZ2h0KSk7Cisg
ICAgaWYgKG5ld0ZyYW1lID09IG9yaWdpbmFsRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAg
IHBhZ2UtPnNldFdpbmRvd0ZyYW1lKG5ld0ZyYW1lKTsKKworICAgIC8vIElmIG5vdGhpbmcgY2hh
bmdlZCBhdCBhbGwsIGl0J3MgcHJvYmFibHkgZmFpciB0byByZXBvcnQgdGhhdCBzb21ldGhpbmcg
d2VudCB3cm9uZy4KKyAgICAvLyAoV2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3RlZCBm
cmFtZSBzaXplIHdpbGwgYmUgaG9ub3JlZCBleGFjdGx5LCBob3dldmVyLikKKyAgICBXZWJDb3Jl
OjpGbG9hdFJlY3QgdXBkYXRlZEZyYW1lOworICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKHVwZGF0
ZWRGcmFtZSk7CisgICAgaWYgKG9yaWdpbmFsRnJhbWUgPT0gdXBkYXRlZEZyYW1lKQorICAgICAg
ICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAi
VGhlIHdpbmRvdyBzaXplIHdhcyBleHBlY3RlZCB0byBoYXZlIGNoYW5nZWQsIGJ1dCBkaWQgbm90
LiIpOworfQorCit2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjptb3ZlV2luZG93T2ZCcm93c2lu
Z0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb25PYmpl
Y3QpCit7CisgICAgZmxvYXQgeDsKKyAgICBpZiAoIXBvc2l0aW9uT2JqZWN0LmdldERvdWJsZShX
VEY6OkFTQ0lJTGl0ZXJhbCgieCIpLCB4KSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURf
RVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAneCcgcGFyYW1ldGVyIHdh
cyBub3QgZm91bmQgb3IgaW52YWxpZC4iKTsKKworICAgIGZsb2F0IHk7CisgICAgaWYgKCFwb3Np
dGlvbk9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoInkiKSwgeSkpCisgICAgICAg
IEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIs
ICJUaGUgJ3knIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7CisKKyAgICBp
ZiAoeCA8IDApCisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxT
KEludmFsaWRQYXJhbWV0ZXIsICJUaGUgJ3gnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1
ZS4iKTsKKworICAgIGlmICh5IDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJS
T1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSAneScgcGFyYW1ldGVyIGhhZCBh
biBpbnZhbGlkIHZhbHVlLiIpOworCisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVBy
b3h5Rm9ySGFuZGxlKGhhbmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBGQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJl
Y3Qgb3JpZ2luYWxGcmFtZTsKKyAgICBwYWdlLT5nZXRXaW5kb3dGcmFtZShvcmlnaW5hbEZyYW1l
KTsKKworICAgIFdlYkNvcmU6OkZsb2F0UmVjdCBuZXdGcmFtZSA9IFdlYkNvcmU6OkZsb2F0UmVj
dChXZWJDb3JlOjpGbG9hdFBvaW50KHgsIHkpLCBvcmlnaW5hbEZyYW1lLnNpemUoKSk7CisgICAg
aWYgKG5ld0ZyYW1lID09IG9yaWdpbmFsRnJhbWUpCisgICAgICAgIHJldHVybjsKKworICAgIHBh
Z2UtPnNldFdpbmRvd0ZyYW1lKG5ld0ZyYW1lKTsKKworICAgIC8vIElmIG5vdGhpbmcgY2hhbmdl
ZCBhdCBhbGwsIGl0J3MgcHJvYmFibHkgZmFpciB0byByZXBvcnQgdGhhdCBzb21ldGhpbmcgd2Vu
dCB3cm9uZy4KKyAgICAvLyAoV2UgY2FuJ3QgYXNzdW1lIHRoYXQgdGhlIHJlcXVlc3RlZCBmcmFt
ZSBzaXplIHdpbGwgYmUgaG9ub3JlZCBleGFjdGx5LCBob3dldmVyLikKKyAgICBXZWJDb3JlOjpG
bG9hdFJlY3QgdXBkYXRlZEZyYW1lOworICAgIHBhZ2UtPmdldFdpbmRvd0ZyYW1lKHVwZGF0ZWRG
cmFtZSk7CisgICAgaWYgKG9yaWdpbmFsRnJhbWUgPT0gdXBkYXRlZEZyYW1lKQorICAgICAgICBG
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnRlcm5hbEVycm9yLCAiVGhl
IHdpbmRvdyBwb3NpdGlvbiB3YXMgZXhwZWN0ZWQgdG8gaGF2ZSBjaGFuZ2VkLCBidXQgZGlkIG5v
dC4iKTsKK30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6aW5zcGVjdEJyb3dzaW5nQ29u
dGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiBlcnJvclN0cmluZywgY29uc3QgU3RyaW5nJiBo
YW5kbGUsIGNvbnN0IGJvb2wqIG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywgUmVmPEluc3Bl
Y3RCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJiBjYWxsYmFjaykKK3sKKyAgICBXZWJQYWdlUHJv
eHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoaGFuZGxlKTsKKyAgICBpZiAoIXBhZ2Up
CisgICAgICAgIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKwor
ICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFn
ZS50YWtlKHBhZ2UtPnBhZ2VJRCgpKSkKKyAgICAgICAgY2FsbGJhY2stPnNlbmRGYWlsdXJlKFNU
UklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FKFRpbWVvdXQpKTsKKyAgICBtX3BlbmRpbmdJ
bnNwZWN0b3JDYWxsYmFja3NQZXJQYWdlLnNldChwYWdlLT5wYWdlSUQoKSwgV1RGTW92ZShjYWxs
YmFjaykpOworCisgICAgLy8gRG9uJ3QgYnJpbmcgdGhlIGluc3BlY3RvciB0byBmcm9udCBzaW5j
ZSB0aGlzIG1heSBiZSBkb25lIGF1dG9tYXRpY2FsbHkuCisgICAgLy8gV2UganVzdCB3YW50IGl0
IGxvYWRlZCBzbyBpdCBjYW4gcGF1c2UgaWYgYSBicmVha3BvaW50IGlzIGhpdCBkdXJpbmcgYSBj
b21tYW5kLgorICAgIGlmIChwYWdlLT5pbnNwZWN0b3IoKSkgeworICAgICAgICBwYWdlLT5pbnNw
ZWN0b3IoKS0+Y29ubmVjdCgpOworCisgICAgICAgIC8vIFN0YXJ0IGNvbGxlY3RpbmcgcHJvZmls
ZSBpbmZvcm1hdGlvbiBpbW1lZGlhdGVseSBzbyB0aGUgZW50aXJlIHNlc3Npb24gaXMgY2FwdHVy
ZWQuCisgICAgICAgIGlmIChvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcgJiYgKm9wdGlvbmFs
RW5hYmxlQXV0b0NhcHR1cmluZykKKyAgICAgICAgICAgIHBhZ2UtPmluc3BlY3RvcigpLT50b2dn
bGVQYWdlUHJvZmlsaW5nKCk7CisgICAgfQorfQorI2VuZGlmIC8vICFQTEFURk9STShJT1MpCisK
Ky8vIFBsYXRmb3JtLWRlcGVuZGVudCBJbXBsZW1lbnRhdGlvbiBTdHVicy4KKworI2lmICFQTEFU
Rk9STShNQUMpCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91
c2VJbnRlcmFjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkludFBv
aW50JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbiwg
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b24sIFdlYkV2ZW50OjpN
b2RpZmllcnMpCiB7CiB9CkBAIC0xMDU1LDExICsxMDM2LDEzIEBAIHZvaWQgV2ViQXV0b21hdGlv
blNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UoV2ViUGFnZVByb3h5JiwgSW5zcGVj
dG9yOjpQCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U2Vx
dWVuY2UoV2ViUGFnZVByb3h5JiwgY29uc3QgU3RyaW5nJikKIHsKIH0KKyNlbmRpZiAvLyAhUExB
VEZPUk0oTUFDKQogCisjaWYgIVBMQVRGT1JNKENPQ09BKQogU3RyaW5nIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpwbGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJsZUJp
dG1hcDo6SGFuZGxlJikKIHsKICAgICByZXR1cm4gU3RyaW5nKCk7CiB9Ci0jZW5kaWYgLy8gIVVT
RShBUFBLSVQpCisjZW5kaWYgLy8gIVBMQVRGT1JNKENPQ09BKQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IDYwMjRhYTQ5YmIzMDYwODc3MzM5MmI2MDhl
MThhMzAxM2EwMGMxODMuLmIzMWM1NWJkYWU5NmM1NDE5NWE2MjE1MWFjNzlhZGMwNDY3ODVkNjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChD
KSAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtOTYsMTggKzk2LDE5IEBAIHB1YmxpYzoKICAgICB2b2lk
IHRlcm1pbmF0ZSgpOwogCiAgICAgLy8gSW5zcGVjdG9yOjpBdXRvbWF0aW9uQmFja2VuZERpc3Bh
dGNoZXJIYW5kbGVyIEFQSQorICAgIC8vIE5PVEU6IHRoZSBzZXQgb2YgZGVjbGFyYXRpb25zIGlu
Y2x1ZGVkIGluIHRoaXMgaW50ZXJmYWNlIGRlcGVuZCBvbiB0aGUgInBsYXRmb3JtIiBwcm9wZXJ0
eSBpbiBBdXRvbWF0aW9uLmpzb24KKyAgICAvLyBhbmQgdGhlIC0tcGxhdGZvcm0gYXJndW1lbnQg
cGFzc2VkIHRvIHRoZSBwcm90b2NvbCBiaW5kaW5ncyBnZW5lcmF0b3IuCisKKyAgICAvLyBQbGF0
Zm9ybTogR2VuZXJpYwogICAgIHZvaWQgZ2V0QnJvd3NpbmdDb250ZXh0cyhJbnNwZWN0b3I6OkVy
cm9yU3RyaW5nJiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkFycmF5PEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4dD4+Jikgb3ZlcnJpZGU7CiAgICAg
dm9pZCBnZXRCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0
cmluZyYsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0Nv
bnRleHQ+Jikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjcmVhdGVCcm93c2luZ0NvbnRleHQoSW5zcGVj
dG9yOjpFcnJvclN0cmluZyYsIFN0cmluZyopIG92ZXJyaWRlOwogICAgIHZvaWQgY2xvc2VCcm93
c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYpIG92ZXJy
aWRlOwogICAgIHZvaWQgc3dpdGNoVG9Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0
cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcq
IG9wdGlvbmFsRnJhbWVIYW5kbGUpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVzaXplV2luZG93T2ZC
cm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFu
ZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZSkgb3ZlcnJpZGU7Ci0g
ICAgdm9pZCBtb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVj
dCYgcG9zaXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgbmF2aWdhdGVCcm93c2luZ0NvbnRleHQo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBTdHJp
bmcmIHVybCwgUmVmPE5hdmlnYXRlQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRl
OwogICAgIHZvaWQgZ29CYWNrSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmlu
ZyYsIGNvbnN0IFN0cmluZyYsIFJlZjxHb0JhY2tJbkJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGdvRm9yd2FyZEluQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rv
cjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBSZWY8R29Gb3J3YXJkSW5Ccm93c2luZ0Nv
bnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCByZWxvYWRCcm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZjxSZWxvYWRCcm93
c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBpbnNwZWN0QnJvd3Np
bmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBi
b29sKiBvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcsIFJlZjxJbnNwZWN0QnJvd3NpbmdDb250
ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZXZhbHVhdGVKYXZhU2NyaXB0RnVu
Y3Rpb24oSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcqIG9wdGlvbmFsRnJhbWVIYW5kbGUsIGNvbnN0IFN0cmlu
ZyYgZnVuY3Rpb24sIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJyYXkmIGFyZ3VtZW50cywg
Y29uc3QgYm9vbCogb3B0aW9uYWxFeHBlY3RzSW1wbGljaXRDYWxsYmFja0FyZ3VtZW50LCBjb25z
dCBpbnQqIG9wdGlvbmFsQ2FsbGJhY2tUaW1lb3V0LCBSZWY8SW5zcGVjdG9yOjpBdXRvbWF0aW9u
QmFja2VuZERpc3BhdGNoZXJIYW5kbGVyOjpFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbkNhbGxi
YWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHBlcmZvcm1Nb3VzZUludGVyYWN0aW9uKEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9y
OjpJbnNwZWN0b3JPYmplY3QmIHJlcXVlc3RlZFBvc2l0aW9uLCBjb25zdCBTdHJpbmcmIG1vdXNl
QnV0dG9uLCBjb25zdCBTdHJpbmcmIG1vdXNlSW50ZXJhY3Rpb24sIGNvbnN0IEluc3BlY3Rvcjo6
SW5zcGVjdG9yQXJyYXkmIGtleU1vZGlmaWVycywgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlBvaW50PiYgdXBkYXRlZFBvc2l0aW9uKSBvdmVycmlkZTsKICAgICB2b2lk
IHBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9ucyhJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29u
c3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yQXJyYXkmIGludGVy
YWN0aW9ucywgUmVmPFBlcmZvcm1LZXlib2FyZEludGVyYWN0aW9uc0NhbGxiYWNrPiYmKSBvdmVy
cmlkZTsKQEAgLTEyNCw3ICsxMjUsMTYgQEAgcHVibGljOgogICAgIHZvaWQgZGVsZXRlU2luZ2xl
Q29va2llKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29u
dGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBjb29raWVOYW1lLCBSZWY8RGVsZXRlU2luZ2xlQ29v
a2llQ2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgYWRkU2luZ2xlQ29va2llKEluc3Bl
Y3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwg
Y29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JPYmplY3QmIGNvb2tpZSwgUmVmPEFkZFNpbmdsZUNv
b2tpZUNhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRlbGV0ZUFsbENvb2tpZXMoSW5z
cGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxl
KSBvdmVycmlkZTsKLSNpZiBVU0UoQVBQS0lUKQorCisgICAgLy8gUGxhdGZvcm06IG1hY09TCisj
aWYgUExBVEZPUk0oTUFDKQorICAgIHZvaWQgcmVzaXplV2luZG93T2ZCcm93c2luZ0NvbnRleHQo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNw
ZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgc2l6ZSkgb3ZlcnJpZGU7CisgICAgdm9pZCBtb3ZlV2lu
ZG93T2ZCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmlu
ZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgcG9zaXRpb24pIG92
ZXJyaWRlOworICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9y
U3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2Fw
dHVyaW5nLCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsK
KyNlbmRpZgorCisgICAgLy8gRXZlbnQgU2ltdWxhdGlvbiBTdXBwb3J0LgorI2lmIFBMQVRGT1JN
KE1BQykKICAgICBib29sIHdhc0V2ZW50U3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQg
Kik7CiAgICAgdm9pZCBtYXJrRXZlbnRBc1N5bnRoZXNpemVkRm9yQXV0b21hdGlvbihOU0V2ZW50
ICopOwogI2VuZGlmCkBAIC0xMzgsMTAgKzE0OCwxMCBAQCBwcml2YXRlOgogICAgIFN0cmluZyBo
YW5kbGVGb3JXZWJGcmFtZUlEKHVpbnQ2NF90IGZyYW1lSUQpOwogICAgIFN0cmluZyBoYW5kbGVG
b3JXZWJGcmFtZVByb3h5KGNvbnN0IFdlYkZyYW1lUHJveHkmKTsKIAotICAgIC8vIEltcGxlbWVu
dGVkIGluIGdlbmVyYXRlZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VSZWNlaXZlci5jcHAK
KyAgICAvLyBJbXBsZW1lbnRlZCBpbiBnZW5lcmF0ZWQgV2ViQXV0b21hdGlvblNlc3Npb25NZXNz
YWdlUmVjZWl2ZXIuY3BwLgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0
aW9uJiwgSVBDOjpEZWNvZGVyJikgb3ZlcnJpZGU7CiAKLSAgICAvLyBDYWxsZWQgYnkgV2ViQXV0
b21hdGlvblNlc3Npb24gbWVzc2FnZXMKKyAgICAvLyBDYWxsZWQgYnkgV2ViQXV0b21hdGlvblNl
c3Npb24gbWVzc2FnZXMuCiAgICAgdm9pZCBkaWRFdmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlvbih1
aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIHJlc3VsdCwgY29uc3QgU3RyaW5nJiBl
cnJvclR5cGUpOwogICAgIHZvaWQgZGlkUmVzb2x2ZUNoaWxkRnJhbWUodWludDY0X3QgY2FsbGJh
Y2tJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwogICAgIHZv
aWQgZGlkUmVzb2x2ZVBhcmVudEZyYW1lKHVpbnQ2NF90IGNhbGxiYWNrSUQsIHVpbnQ2NF90IGZy
YW1lSUQsIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKQEAgLTE1MCw3ICsxNjAsNyBAQCBwcml2
YXRlOgogICAgIHZvaWQgZGlkR2V0Q29va2llc0ZvckZyYW1lKHVpbnQ2NF90IGNhbGxiYWNrSUQs
IFZlY3RvcjxXZWJDb3JlOjpDb29raWU+LCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CiAgICAg
dm9pZCBkaWREZWxldGVDb29raWUodWludDY0X3QgY2FsbGJhY2tJRCwgY29uc3QgU3RyaW5nJiBl
cnJvclR5cGUpOwogCi0gICAgLy8gUGxhdGZvcm0tc3BlY2lmaWMgaGVscGVyIG1ldGhvZHMuCisg
ICAgLy8gUGxhdGZvcm0tZGVwZW5kZW50IGltcGxlbWVudGF0aW9ucy4KICAgICB2b2lkIHBsYXRm
b3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6
OkludFBvaW50JiB2aWV3UG9zaXRpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
Ok1vdXNlSW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
QnV0dG9uLCBXZWJFdmVudDo6TW9kaWZpZXJzKTsKICAgICAvLyBTaW11bGF0ZXMgYSBzaW5nbGUg
dmlydHVhbCBrZXkgYmVpbmcgcHJlc3NlZCwgc3VjaCBhcyBDb250cm9sLCBGLWtleXMsIE51bXBh
ZCBrZXlzLCBldGMuIGFzIGFsbG93ZWQgYnkgdGhlIHByb3RvY29sLgogICAgIHZvaWQgcGxhdGZv
cm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJveHkmLCBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZSwgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleSk7CkBAIC0xNTksNyArMTY5LDcgQEAgcHJpdmF0ZToKICAg
ICAvLyBHZXQgYmFzZTY0IGVuY29kZWQgUE5HIGRhdGEgZnJvbSBhIGJpdG1hcC4KICAgICBTdHJp
bmcgcGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRtYXA6
OkhhbmRsZSYpOwogCi0jaWYgVVNFKEFQUEtJVCkKKyNpZiBQTEFURk9STShNQUMpCiAgICAgdm9p
ZCBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFnZVByb3h5JiwgTlNBcnJheSAqZXZl
bnRzVG9TZW5kKTsKICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kNjM5ODc2OWNlYmQxZjMxMmI5YjRkNDFkZWYwMzAxOTA2ZjQ4MjNlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb25NYWNyb3MuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNkZWZpbmUgZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRvciAiOyIKKworLy8g
TWFrZSBzdXJlIHRoZSBwcmVkZWZpbmVkIGVycm9yIG5hbWUgaXMgdmFsaWQsIG90aGVyd2lzZSB1
c2UgSW50ZXJuYWxFcnJvci4KKyNkZWZpbmUgVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JT
dHJpbmcpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1W
YWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNz
YWdlPihlcnJvclN0cmluZykudmFsdWVfb3IoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6RXJyb3JNZXNzYWdlOjpJbnRlcm5hbEVycm9yKQorCisvLyBJZiB0aGUgZXJyb3IgbmFtZSBp
cyBpbmNvcnJlY3QgZm9yIHRoZXNlIG1hY3JvcywgaXQgd2lsbCBiZSBhIGNvbXBpbGUtdGltZSBl
cnJvci4KKyNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoZXJyb3JOYW1l
KSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50
VmFsdWUoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjplcnJv
ck5hbWUpCisjZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1FX0FORF9ERVRB
SUxTKGVycm9yTmFtZSwgZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6RXJyb3JNZXNzYWdlOjplcnJvck5hbWUpLCBlcnJvck5hbWVB
bmREZXRhaWxzU2VwYXJhdG9yLCBkZXRhaWxzU3RyaW5nKQorCisvLyBJZiB0aGUgZXJyb3IgbWVz
c2FnZSBpcyBub3QgYSBwcmVkZWZpbmVkIGVycm9yLCBJbnRlcm5hbEVycm9yIHdpbGwgYmUgdXNl
ZCBpbnN0ZWFkLgorI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRShl
cnJvck1lc3NhZ2UpIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRF
bnVtQ29uc3RhbnRWYWx1ZShWQUxJREFURURfRVJST1JfTUVTU0FHRShlcnJvck1lc3NhZ2UpKQor
I2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTUVTU0FHRV9BTkRfREVUQUlMUyhl
cnJvck1lc3NhZ2UsIGRldGFpbHNTdHJpbmcpIG1ha2VTdHJpbmcoSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKFZBTElEQVRFRF9FUlJP
Ul9NRVNTQUdFKGVycm9yTWVzc2FnZSkpLCBlcnJvck5hbWVBbmREZXRhaWxzU2VwYXJhdG9yLCBk
ZXRhaWxzU3RyaW5nKQorCisvLyBDb252ZW5pZW5jZSBtYWNyb3MgZm9yIGZpbGxpbmcgaW4gdGhl
IGVycm9yIHN0cmluZyBvZiBzeW5jaHJvbm91cyBjb21tYW5kcyBpbiBiYWlsb3V0IGJyYW5jaGVz
LgorI2RlZmluZSBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihlcnJvck5hbWUpIFwKK2RvIHsg
XAorICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoZXJy
b3JOYW1lKTsgXAorICAgIHJldHVybjsgXAorfSB3aGlsZSAoZmFsc2UpCisKKyNkZWZpbmUgRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3Ry
aW5nKSBcCitkbyB7IFwKKyAgICBlcnJvclN0cmluZyA9IFNUUklOR19GT1JfUFJFREVGSU5FRF9F
UlJPUl9OQU1FX0FORF9ERVRBSUxTKGVycm9yTmFtZSwgZGV0YWlsc1N0cmluZyk7IFwKKyAgICBy
ZXR1cm47IFwKK30gd2hpbGUgKGZhbHNlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNz
aW9uQ29jb2EubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzY4N2QyODI0MjAyNWQ5NzI4YmIwMDA5NGIwZjcwMDNh
M2E2MjdjNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL2NvY29hL1dlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0KQEAgLTAsMCArMSw1NyBA
QAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiV2ViQXV0
b21hdGlvblNlc3Npb24uaCIKKworI2lmIFBMQVRGT1JNKENPQ09BKQorCisjaWYgUExBVEZPUk0o
SU9TKQorI2luY2x1ZGUgPEltYWdlSU8vQ0dJbWFnZURlc3RpbmF0aW9uLmg+CisjaW5jbHVkZSA8
TW9iaWxlQ29yZVNlcnZpY2VzL1VUQ29yZVR5cGVzLmg+CisjZW5kaWYKKwordXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitTdHJpbmcgV2ViQXV0b21hdGlv
blNlc3Npb246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxl
Qml0bWFwOjpIYW5kbGUmIGltYWdlRGF0YUhhbmRsZSkKK3sKKyAgICBSZWZQdHI8U2hhcmVhYmxl
Qml0bWFwPiBiaXRtYXAgPSBTaGFyZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGFIYW5kbGUs
IFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlvbjo6UmVhZE9ubHkpOworICAgIFJldGFpblB0cjxDR0lt
YWdlUmVmPiBjZ0ltYWdlID0gYml0bWFwLT5tYWtlQ0dJbWFnZSgpOworICAgIFJldGFpblB0cjxO
U011dGFibGVEYXRhPiBpbWFnZURhdGEgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10g
aW5pdF0pOworICAgIFJldGFpblB0cjxDR0ltYWdlRGVzdGluYXRpb25SZWY+IGRlc3RpbmF0aW9u
ID0gYWRvcHRDRihDR0ltYWdlRGVzdGluYXRpb25DcmVhdGVXaXRoRGF0YSgoQ0ZNdXRhYmxlRGF0
YVJlZilpbWFnZURhdGEuZ2V0KCksIGtVVFR5cGVQTkcsIDEsIDApKTsKKyAgICBpZiAoIWRlc3Rp
bmF0aW9uKQorICAgICAgICByZXR1cm4gU3RyaW5nKCk7CisKKyAgICBDR0ltYWdlRGVzdGluYXRp
b25BZGRJbWFnZShkZXN0aW5hdGlvbi5nZXQoKSwgY2dJbWFnZS5nZXQoKSwgMCk7CisgICAgQ0dJ
bWFnZURlc3RpbmF0aW9uRmluYWxpemUoZGVzdGluYXRpb24uZ2V0KCkpOworCisgICAgcmV0dXJu
IFtpbWFnZURhdGEgYmFzZTY0RW5jb2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIFBMQVRGT1JNKENPQ09BKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25T
ZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dl
YkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmRmOGZjYmU2OTAyNDBhMWRkMzFi
NjBkNGU1NTAwZjUxNGU1YTEwZmUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KQEAgLTAs
MCArMSw0OTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTYsIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBv
cnQgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCisKKyNpZiBQTEFURk9STShNQUMpCisKKyNpbXBv
cnQgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCisjaW1wb3J0ICJXZWJJbnNwZWN0b3JQ
cm94eS5oIgorI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCisjaW1wb3J0ICJfV0tBdXRvbWF0aW9u
U2Vzc2lvbi5oIgorI2ltcG9ydCA8SElUb29sYm94L0V2ZW50cy5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9JbnRQb2ludC5oPgorI2ltcG9ydCA8V2ViQ29yZS9JbnRTaXplLmg+CisjaW1wb3J0IDxXZWJD
b3JlL1BsYXRmb3JtTW91c2VFdmVudC5oPgorI2ltcG9ydCA8b2JqYy9ydW50aW1lLmg+CisKK3Vz
aW5nIG5hbWVzcGFjZSBXZWJDb3JlOworCituYW1lc3BhY2UgV2ViS2l0IHsKKworI3ByYWdtYSBt
YXJrIEFwcEtpdCBFdmVudCBTaW11bGF0aW9uIFN1cHBvcnQKKworc3RhdGljIGNvbnN0IE5TSW50
ZWdlciBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVtYmVyID0gMDsKK3N0YXRpYyBj
b25zdCB2b2lkICpzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RLZXkg
PSAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5OworCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UoV2ViUGFn
ZVByb3h5JiBwYWdlLCBOU0FycmF5ICpldmVudHNUb1NlbmQpCit7CisgICAgTlNXaW5kb3cgKndp
bmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKworICAgIGZvciAoTlNFdmVudCAqZXZlbnQg
aW4gZXZlbnRzVG9TZW5kKSB7CisgICAgICAgIC8vIFRha2UgZm9jdXMgYmFjayBpbiBjYXNlIHRo
ZSBJbnNwZWN0b3IgYmVjYW1lIGZvY3VzZWQgd2hpbGUgdGhlIHByaW9yIGNvbW1hbmQgb3IKKyAg
ICAgICAgLy8gTlNFdmVudCB3YXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cuCisgICAgICAgIFt3
aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKworICAgICAgICBtYXJrRXZlbnRBc1N5
bnRoZXNpemVkRm9yQXV0b21hdGlvbihldmVudCk7CisgICAgICAgIFt3aW5kb3cgc2VuZEV2ZW50
OmV2ZW50XTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1hcmtFdmVu
dEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKmV2ZW50KQoreworICAgIG9iamNf
c2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2ZW50QXNz
b2NpYXRlZE9iamVjdEtleSwgbV9zZXNzaW9uSWRlbnRpZmllciwgT0JKQ19BU1NPQ0lBVElPTl9S
RVRBSU5fTk9OQVRPTUlDKTsKK30KKworYm9vbCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FzRXZl
bnRTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqZXZlbnQpCit7CisgICAgTlNTdHJp
bmcgKnNlbmRlclNlc3Npb25JZGVudGlmaWVyID0gb2JqY19nZXRBc3NvY2lhdGVkT2JqZWN0KGV2
ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5KTsKKyAg
ICBpZiAoW3NlbmRlclNlc3Npb25JZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzptX3Nlc3Npb25J
ZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzd2l0Y2ggKGV2ZW50LnR5
cGUpIHsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZl
bnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlVXA6
CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlwZU90
aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoKKyAg
ICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVSaWdo
dE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6CisgICAg
Y2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgLy8gVXNlIHRoaXMgYXMgYSBi
YWNrdXAgZm9yIGNoZWNraW5nIG1vdXNlIGV2ZW50cywgd2hpY2ggYXJlIGZyZXF1ZW50bHkgY29w
aWVkCisgICAgICAgIC8vIGFuZC9vciBmYWtlZCBieSBBcHBLaXQsIGNhdXNpbmcgdGhlbSB0byBs
b3NlIHRoZWlyIGFzc29jaWF0ZWQgb2JqZWN0IHRhZy4KKyAgICAgICAgcmV0dXJuIGV2ZW50LmV2
ZW50TnVtYmVyID09IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQor
CisjcHJhZ21hIG1hcmsgUGxhdGZvcm0tZGVwZW5kZW50IEltcGxlbWVudGF0aW9ucworCit2b2lk
IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJbnRlcmFjdGlvbihX
ZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB2aWV3UG9zaXRpb24s
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb24gaW50ZXJh
Y3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uIGJ1dHRv
biwgV2ViRXZlbnQ6Ok1vZGlmaWVycyBrZXlNb2RpZmllcnMpCit7CisgICAgSW50UmVjdCB3aW5k
b3dSZWN0OworICAgIHBhZ2Uucm9vdFZpZXdUb1dpbmRvdyhJbnRSZWN0KHZpZXdQb3NpdGlvbiwg
SW50U2l6ZSgpKSwgd2luZG93UmVjdCk7CisgICAgSW50UG9pbnQgd2luZG93UG9zaXRpb24gPSB3
aW5kb3dSZWN0LmxvY2F0aW9uKCk7CisKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmll
cnMgPSAwOworICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6TWV0YUtleSkKKyAgICAg
ICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOworICAgIGlmIChrZXlN
b2RpZmllcnMgJiBXZWJFdmVudDo6QWx0S2V5KQorICAgICAgICBtb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OkNv
bnRyb2xLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJv
bDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OlNoaWZ0S2V5KQorICAgICAgICBt
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGlmIChrZXlNb2RpZmll
cnMgJiBXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7CisKKyAgICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBb
TlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07CisgICAgTlNXaW5kb3cgKndp
bmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKyAgICBOU0ludGVnZXIgd2luZG93TnVtYmVy
ID0gd2luZG93LndpbmRvd051bWJlcjsKKworICAgIE5TRXZlbnRUeXBlIGRvd25FdmVudFR5cGU7
CisgICAgTlNFdmVudFR5cGUgZHJhZ0V2ZW50VHlwZTsKKyAgICBOU0V2ZW50VHlwZSB1cEV2ZW50
VHlwZTsKKyAgICBzd2l0Y2ggKGJ1dHRvbikgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok5vbmU6CisgICAgICAgIGRvd25FdmVudFR5cGUg
PSB1cEV2ZW50VHlwZSA9IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
TW91c2VCdXR0b246OkxlZnQ6CisgICAgICAgIGRvd25FdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxl
ZnRNb3VzZURvd247CisgICAgICAgIGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3Vz
ZURyYWdnZWQ7CisgICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VVcDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpNb3VzZUJ1dHRvbjo6TWlkZGxlOgorICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVudFR5
cGVPdGhlck1vdXNlRG93bjsKKyAgICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVm
dE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU90aGVyTW91
c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpNb3VzZUJ1dHRvbjo6UmlnaHQ6CisgICAgICAgIGRvd25FdmVudFR5cGUgPSBOU0V2
ZW50VHlwZVJpZ2h0TW91c2VEb3duOworICAgICAgICB1cEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBl
UmlnaHRNb3VzZVVwOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBhdXRvIGV2ZW50c1Rv
QmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICBO
U0ludGVnZXIgZXZlbnROdW1iZXIgPSBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVt
YmVyOworCisgICAgc3dpdGNoIChpbnRlcmFjdGlvbikgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6TW92ZToKKyAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZHJhZ0V2
ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0
aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
ZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDowIHByZXNzdXJlOjAuMGZdXTsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpN
b3VzZUludGVyYWN0aW9uOjpEb3duOgorICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNsaWNrIGNv
dW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBzaW11bGF0
ZWQKKyAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291bnRlZCBh
cyBhIGRvdWJsZSBjbGljayBldmVudC4KKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVj
dDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5k
b3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdp
bmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1i
ZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOworICAgICAg
ICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNl
SW50ZXJhY3Rpb246OlVwOgorICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNsaWNrIGNvdW50IHRv
IG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBzaW11bGF0ZWQKKyAg
ICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291bnRlZCBhcyBhIGRv
dWJsZSBjbGljayBldmVudC4KKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRp
b24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNr
Q291bnQ6MSBwcmVzc3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6U2luZ2xlQ2xpY2s6
CisgICAgICAgIC8vIFNlbmQgc2VwYXJhdGUgZG93biBhbmQgdXAgZXZlbnRzLiBXZWJDb3JlIHdp
bGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sgZXZlbnQuCisgICAgICAgIFtldmVudHNUb0Jl
U2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUg
bG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1w
OnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVt
YmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xp
Y2tdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2
ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJG
bGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVt
YmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVz
c3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG91YmxlQ2xpY2s6CisgICAgICAgIC8v
IFNlbmQgbXVsdGlwbGUgZG93biBhbmQgdXAgZXZlbnRzIHdpdGggcHJvcGVyIGNsaWNrIGNvdW50
LgorICAgICAgICAvLyBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sgZXZl
bnQgdGhlbiBkb3VibGUtY2xpY2sgZXZlbnQuCisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRP
YmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246
d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFt
cCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50
TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKKyAg
ICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5
cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2Rp
ZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRl
eHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTowLjBm
XV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVu
dFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJG
bGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVt
YmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MiBwcmVz
c3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFk
ZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246
d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFt
cCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50
TnVtYmVyIGNsaWNrQ291bnQ6MiBwcmVzc3VyZTowLjBmXV07CisgICAgfQorCisgICAgc2VuZFN5
bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKK30KKwor
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQ
YWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJk
SW50ZXJhY3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5IGtleSkKK3sKKyAgICAvLyBJZiB0cnVlLCB0aGUga2V5J3MgbW9kaWZp
ZXIgZmxhZ3Mgc2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJlc3NlZCBkb3duLgor
ICAgIGJvb2wgaXNTdGlja3lNb2RpZmllciA9IGZhbHNlOworICAgIC8vIFRoZSBtb2RpZmllcnMg
Y2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9yIHJlbGVhc2Vk
LgorICAgIC8vIFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMgaXMgc3BlY2lmaWVk
IGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgorICAgIE5TRXZlbnRNb2RpZmllckZs
YWdzIGNoYW5nZWRNb2RpZmllcnMgPSAwOworICAgIC8vIFRoZSBsaWtlbHkga2V5Q29kZSBmb3Ig
dGhlIHZpcnR1YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVudHMuaD4uCisgICAg
aW50IGtleUNvZGUgPSAwOworICAgIC8vIFR5cGljYWwgY2hhcmFjdGVycyBwcm9kdWNlZCBieSB0
aGUgdmlydHVhbCBrZXksIGlmIGFueS4KKyAgICBOU1N0cmluZyAqY2hhcmFjdGVycyA9IEAiIjsK
KworICAgIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0b21hdGlvbiBwcm90b2Nv
bCBlbnVtIHNob3VsZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKKyAgICAvLyBmcm9tIFczQyBV
SUV2ZW50cyBzdGFuZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly93M2MuZ2l0aHViLmlv
L3VpZXZlbnRzLWNvZGUvCisKKyAgICBzd2l0Y2ggKGtleSkgeworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6CisgICAgICAgIGlzU3Rp
Y2t5TW9kaWZpZXIgPSB0cnVlOworICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdTaGlmdDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19TaGlmdDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpDb250cm9sOgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19Db250cm9sOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkFsdGVybmF0ZToKKyAgICAgICAg
aXNTdGlja3lNb2RpZmllciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19PcHRpb247Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TWV0YToKKyAgICAgICAgLy8gVGhlICdtZXRhJyBrZXkgZG9lcyBub3QgZXhp
c3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBpcyB1c3VhbGx5CisgICAgICAgIC8vIG1hcHBlZCB0
byB0aGUgQ29tbWFuZCBrZXkgd2hlbiB1c2luZyB0aGlyZC1wYXJ0eSBrZXlib2FyZHMuCisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb21tYW5k
OgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICAgICAga2V5Q29kZSA9IGtW
S19Db21tYW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhlbHA6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247
CisgICAgICAgIGtleUNvZGUgPSBrVktfSGVscDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpCYWNrc3BhY2U6Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfRGVsZXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlRhYjoKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19UYWI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q2xlYXI6CisgICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNv
ZGUgPSBrVktfQU5TSV9LZXlwYWRDbGVhcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRlcjoKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZEVudGVyOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhdXNlOgorICAg
ICAgICAvLyBUaGUgJ3BhdXNlJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRz
IGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAgICAgICAgLy8gVGhlIHNlbWFudGljcyBhcmUgdW5jbGVh
ciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgorICAgICAgICByZXR1cm47CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDYW5jZWw6Cisg
ICAgICAgIC8vIFRoZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9h
cmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBpbnRl
cm5ldCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBzaW1pbGFyIHRvICdFc2NhcGUnLgorICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXNjYXBlOgorICAg
ICAgICBrZXlDb2RlID0ga1ZLX0VzY2FwZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6CisgICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAg
ICBrZXlDb2RlID0ga1ZLX1BhZ2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93bjoKKyAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAg
IGtleUNvZGUgPSBrVktfUGFnZURvd247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgorICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5
Q29kZSA9IGtWS19FbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SG9tZToKKyAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBr
VktfSG9tZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6CisgICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfTGVmdEFycm93OworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OlVwQXJyb3c6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNv
ZGUgPSBrVktfVXBBcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93OgorICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1v
ZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1JpZ2h0QXJyb3c7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6RG93bkFycm93OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0Rvd25BcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpJbnNlcnQ6Cisg
ICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9h
cmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAgICAgICAgLy8gVGhlIHNlbWFudGljcyBhcmUgdW5j
bGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgorICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEZWxldGU6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OworICAgICAgICBrZXlDb2RlID0ga1ZLX0ZvcndhcmREZWxldGU7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U3Bh
Y2U6CisgICAgICAgIGtleUNvZGUgPSBrVktfU3BhY2U7CisgICAgICAgIGNoYXJhY3RlcnMgPSBA
IiAiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJ
X1NlbWljb2xvbjsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiOyI7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXF1
YWxzOgorICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfRXF1YWw7CisgICAgICAgIGNoYXJhY3Rl
cnMgPSBAIj0iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKKyAgICAgICAga2V5Q29kZSA9IGtWS19S
ZXR1cm47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX0tleXBhZDA7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjAiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
Ok51bWJlclBhZDE6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQxOworICAg
ICAgICBjaGFyYWN0ZXJzID0gQCIxIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQyOgorICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAg
ICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMjsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAi
MiI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19B
TlNJX0tleXBhZDM7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjMiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZDQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ0OworICAgICAg
ICBjaGFyYWN0ZXJzID0gQCI0IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1OgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAg
ICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiNSI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJ
X0tleXBhZDY7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjYiOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZDc6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ3OworICAgICAgICBj
aGFyYWN0ZXJzID0gQCI3IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4OgorICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkODsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiOCI7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TnVtYmVyUGFkOToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tl
eXBhZDk7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjkiOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBh
ZE11bHRpcGx5OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTXVsdGlwbHk7
CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIioiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZEFkZDoK
KyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1Bh
ZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZFBsdXM7CisgICAgICAgIGNoYXJh
Y3RlcnMgPSBAIisiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0OgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAg
ICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTWludXM7CisgICAgICAgIGNoYXJhY3RlcnMgPSBA
Ii0iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKKyAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAgLy8gVGhl
ICdTZXBhcmF0b3InIGtleSBpcyBvbmx5IHByZXNlbnQgb24gYSBmZXcgaW50ZXJuYXRpb25hbCBr
ZXlib2FyZHMuCisgICAgICAgIC8vIEl0IGlzIHVzdWFsbHkgbWFwcGVkIHRvIHRoZSBzYW1lIGNo
YXJhY3RlciBhcyBEZWNpbWFsICgnLicgb3IgJywnKS4KKyAgICAgICAgRkFMTFRIUk9VR0g7Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1i
ZXJQYWREZWNpbWFsOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGVjaW1h
bDsKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgbWlnaHQgYmUgbG9jYWxlLWRlcGVuZGVudC4gU2Vl
IHRoZSBhYm92ZSBjb21tZW50LgorICAgICAgICBjaGFyYWN0ZXJzID0gQCIuIjsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpOdW1iZXJQYWREaXZpZGU6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVu
dE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlw
YWREaXZpZGU7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIi8iOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uMToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVu
Y3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjE7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24y
OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlv
bjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjM6Cisg
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0YzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNDoKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAg
ICAgIGtleUNvZGUgPSBrVktfRjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb241OgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19GNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjY6CisgICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlD
b2RlID0ga1ZLX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKKyAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUg
PSBrVktfRjc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244OgorICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtW
S19GODsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Y5
OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMDsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMTE7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjEyOworICAg
ICAgICBicmVhazsKKyAgICB9CisKKyAgICBhdXRvIGV2ZW50c1RvQmVTZW50ID0gYWRvcHROUyhb
W05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICBBU1NFUlQoaXNTdGlja3lNb2Rp
ZmllciB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpL
ZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3MpOworCisgICAgTlNFdmVudE1vZGlmaWVy
RmxhZ3MgZXhpc3RpbmdNb2RpZmllcnMgPSBbTlNFdmVudCBtb2RpZmllckZsYWdzXTsKKyAgICBO
U0V2ZW50TW9kaWZpZXJGbGFncyB1cGRhdGVkTW9kaWZpZXJzID0gMDsKKyAgICBOU1RpbWVJbnRl
cnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07
CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKyAgICBOU0lu
dGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKKyAgICBOU1BvaW50IGV2
ZW50UG9zaXRpb24gPSBOU01ha2VQb2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQpOwor
CisgICAgc3dpdGNoIChpbnRlcmFjdGlvbikgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVByZXNzOiB7CisgICAg
ICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIgPyBOU0V2ZW50VHlw
ZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5RG93bjsKKyAgICAgICAgdXBkYXRlZE1vZGlm
aWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsKKyAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmV2ZW50VHlw
ZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVycyB0
aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
Y2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFyYWN0
ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAgYnJlYWs7CisgICAg
fQorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRl
cmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKKyAgICAgICAgTlNFdmVudFR5cGUgZXZlbnRUeXBl
ID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDogTlNFdmVudFR5
cGVLZXlVcDsKKyAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzICYg
fmNoYW5nZWRNb2RpZmllcnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05T
RXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFy
YWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTpr
ZXlDb2RlXV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpJbnNlcnRCeUtleTog
eworICAgICAgICAvLyBTdGlja3kgbW9kaWZpZXJzIHNob3VsZCBlaXRoZXIgYmUgJ0tleVByZXNz
JyBvciAnS2V5UmVsZWFzZScuCisgICAgICAgIEFTU0VSVCghaXNTdGlja3lNb2RpZmllcik7Cisg
ICAgICAgIGlmIChpc1N0aWNreU1vZGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuOworCisgICAg
ICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8IGNoYW5nZWRNb2RpZmll
cnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmll
ckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6
d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJz
SWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2Rl
XV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRX
aXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJG
bGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndp
bmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29kZV1d
OworICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorCisgICAgc2VuZFN5bnRoZXNpemVkRXZl
bnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKK30KKwordm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94eSYg
cGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKK3sKKyAgICBhdXRvIGV2ZW50c1RvQmVT
ZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICAvLyBT
cGxpdCB0aGUgdGV4dCBpbnRvIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzIGFuZCBzZW5k
IGVhY2ggc2VwYXJhdGVseS4KKyAgICAvLyBUaGlzIGhhcyBubyBzaW1pbGFyaXR5IHRvIGhvdyBr
ZXlib2FyZHMgd29yayB3aGVuIGlucHV0dGluZyBjb21wbGV4IHRleHQuCisgICAgLy8gVGhpcyBj
b21tYW5kIGlzIG1vcmUgc2ltaWxhciB0byB0aGUgJ2luc2VydFRleHQ6JyBlZGl0aW5nIGNvbW1h
bmQsIGV4Y2VwdAorICAgIC8vIHRoYXQgdGhpcyBlbWl0cyBrZXl1cC9rZXlkb3duL2tleXByZXNz
IGV2ZW50cyBmb3Igcm91Z2hseSBlYWNoIGNoYXJhY3Rlci4KKyAgICAvLyBUaGlzIEFQSSBzaG91
bGQgbW92ZSBtb3JlIHRvd2FyZHMgdGhhdCBkaXJlY3Rpb24gaW4gdGhlIGZ1dHVyZS4KKyAgICBO
U1N0cmluZyAqdGV4dCA9IGtleVNlcXVlbmNlOworCisgICAgTlNFdmVudE1vZGlmaWVyRmxhZ3Mg
bW9kaWZpZXJzID0gW05TRXZlbnQgbW9kaWZpZXJGbGFnc107CisgICAgTlNUaW1lSW50ZXJ2YWwg
dGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOworICAg
IE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7CisgICAgTlNJbnRlZ2Vy
IHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7CisgICAgTlNQb2ludCBldmVudFBv
c2l0aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKKworICAg
IFt0ZXh0IGVudW1lcmF0ZVN1YnN0cmluZ3NJblJhbmdlOk5TTWFrZVJhbmdlKDAsIHRleHQubGVu
Z3RoKSBvcHRpb25zOk5TU3RyaW5nRW51bWVyYXRpb25CeUNvbXBvc2VkQ2hhcmFjdGVyU2VxdWVu
Y2VzIHVzaW5nQmxvY2s6XihOU1N0cmluZyAqc3Vic3RyaW5nLCBOU1JhbmdlIHN1YnN0cmluZ1Jh
bmdlLCBOU1JhbmdlIGVuY2xvc2luZ1JhbmdlLCBCT09MICpzdG9wKSB7CisgICAgICAgIFtldmVu
dHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlw
ZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0
aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
Y2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0cmlu
ZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRP
YmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9u
OmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFt
cCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6c3Vic3Ry
aW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0Ok5PIGtl
eUNvZGU6MF1dOworICAgIH1dOworCisgICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBh
Z2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAxMjFkOGYwODU5NGY1OTRmZThiZjNlNTZhNDVhMThiMmNjNDQ1
ZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCisr
KyAvZGV2L251bGwKQEAgLTEsNTA5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTYg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJjb25m
aWcuaCIKLSNpbXBvcnQgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCi0KLSNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgotI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb24uaCIKLSNpbXBvcnQgPFdl
YkNvcmUvSW50UG9pbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSW50U2l6ZS5oPgotI2ltcG9ydCA8
V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KLSNpbXBvcnQgPG9iamMvcnVudGltZS5oPgot
Ci0jaWYgVVNFKEFQUEtJVCkKLSNpbXBvcnQgPEhJVG9vbGJveC9FdmVudHMuaD4KLSNlbmRpZgot
Ci11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLSNpZiBV
U0UoQVBQS0lUKQotCi1zdGF0aWMgY29uc3QgTlNJbnRlZ2VyIHN5bnRoZXNpemVkTW91c2VFdmVu
dE1hZ2ljRXZlbnROdW1iZXIgPSAwOwotc3RhdGljIGNvbnN0IHZvaWQgKnN5bnRoZXNpemVkQXV0
b21hdGlvbkV2ZW50QXNzb2NpYXRlZE9iamVjdEtleSA9ICZzeW50aGVzaXplZEF1dG9tYXRpb25F
dmVudEFzc29jaWF0ZWRPYmplY3RLZXk7Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnNl
bmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIE5TQXJyYXkgKmV2
ZW50c1RvU2VuZCkKLXsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRv
dygpOwotCi0gICAgZm9yIChOU0V2ZW50ICpldmVudCBpbiBldmVudHNUb1NlbmQpIHsKLSAgICAg
ICAgLy8gVGFrZSBmb2N1cyBiYWNrIGluIGNhc2UgdGhlIEluc3BlY3RvciBiZWNhbWUgZm9jdXNl
ZCB3aGlsZSB0aGUgcHJpb3IgY29tbWFuZCBvcgotICAgICAgICAvLyBOU0V2ZW50IHdhcyBkZWxp
dmVyZWQgdG8gdGhlIHdpbmRvdy4KLSAgICAgICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9u
dDpuaWxdOwotCi0gICAgICAgIG1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKGV2
ZW50KTsKLSAgICAgICAgW3dpbmRvdyBzZW5kRXZlbnQ6ZXZlbnRdOwotICAgIH0KLX0KLQotdm9p
ZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRp
b24oTlNFdmVudCAqZXZlbnQpCi17Ci0gICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGV2ZW50
LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5LCBtX3Nlc3Np
b25JZGVudGlmaWVyLCBPQkpDX0FTU09DSUFUSU9OX1JFVEFJTl9OT05BVE9NSUMpOwotfQotCi1i
b29sIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21hdGlv
bihOU0V2ZW50ICpldmVudCkKLXsKLSAgICBOU1N0cmluZyAqc2VuZGVyU2Vzc2lvbklkZW50aWZp
ZXIgPSBvYmpjX2dldEFzc29jaWF0ZWRPYmplY3QoZXZlbnQsICZzeW50aGVzaXplZEF1dG9tYXRp
b25FdmVudEFzc29jaWF0ZWRPYmplY3RLZXkpOwotICAgIGlmIChbc2VuZGVyU2Vzc2lvbklkZW50
aWZpZXIgaXNFcXVhbFRvU3RyaW5nOm1fc2Vzc2lvbklkZW50aWZpZXJdKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLQotICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewotICAgIGNhc2UgTlNFdmVudFR5
cGVMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOgot
ICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlTW91
c2VNb3ZlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246Ci0gICAgY2FzZSBO
U0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1v
dXNlVXA6Ci0gICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgotICAgIGNhc2UgTlNF
dmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZVVwOgotICAgICAgICAvLyBVc2UgdGhpcyBhcyBhIGJhY2t1cCBmb3IgY2hlY2tpbmcgbW91c2Ug
ZXZlbnRzLCB3aGljaCBhcmUgZnJlcXVlbnRseSBjb3BpZWQKLSAgICAgICAgLy8gYW5kL29yIGZh
a2VkIGJ5IEFwcEtpdCwgY2F1c2luZyB0aGVtIHRvIGxvc2UgdGhlaXIgYXNzb2NpYXRlZCBvYmpl
Y3QgdGFnLgotICAgICAgICByZXR1cm4gZXZlbnQuZXZlbnROdW1iZXIgPT0gc3ludGhlc2l6ZWRN
b3VzZUV2ZW50TWFnaWNFdmVudE51bWJlcjsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVhazsK
LSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFnZSwg
Y29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHZpZXdQb3NpdGlvbiwgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b24gYnV0dG9uLCBXZWJFdmVudDo6TW9kaWZp
ZXJzIGtleU1vZGlmaWVycykKLXsKLSAgICBJbnRSZWN0IHdpbmRvd1JlY3Q7Ci0gICAgcGFnZS5y
b290Vmlld1RvV2luZG93KEludFJlY3Qodmlld1Bvc2l0aW9uLCBJbnRTaXplKCkpLCB3aW5kb3dS
ZWN0KTsKLSAgICBJbnRQb2ludCB3aW5kb3dQb3NpdGlvbiA9IHdpbmRvd1JlY3QubG9jYXRpb24o
KTsKLQotICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVycyA9IDA7Ci0gICAgaWYgKGtl
eU1vZGlmaWVycyAmIFdlYkV2ZW50OjpNZXRhS2V5KQotICAgICAgICBtb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0gICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50
OjpBbHRLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0aW9u
OwotICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6Q29udHJvbEtleSkKLSAgICAgICAg
bW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwotICAgIGlmIChrZXlNb2Rp
ZmllcnMgJiBXZWJFdmVudDo6U2hpZnRLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnU2hpZnQ7Ci0gICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpDYXBz
TG9ja0tleSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBzTG9j
azsKLQotICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtOU0RhdGUgdGltZUludGVydmFs
U2luY2VSZWZlcmVuY2VEYXRlXTsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9y
bVdpbmRvdygpOwotICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSB3aW5kb3cud2luZG93TnVt
YmVyOwotCi0gICAgTlNFdmVudFR5cGUgZG93bkV2ZW50VHlwZTsKLSAgICBOU0V2ZW50VHlwZSBk
cmFnRXZlbnRUeXBlOwotICAgIE5TRXZlbnRUeXBlIHVwRXZlbnRUeXBlOwotICAgIHN3aXRjaCAo
YnV0dG9uKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3Vz
ZUJ1dHRvbjo6Tm9uZToKLSAgICAgICAgZG93bkV2ZW50VHlwZSA9IHVwRXZlbnRUeXBlID0gZHJh
Z0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91c2VNb3ZlZDsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6TGVmdDoK
LSAgICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKLSAgICAg
ICAgZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAgICAg
dXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpNaWRk
bGU6Ci0gICAgICAgIGRvd25FdmVudFR5cGUgPSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3duOwot
ICAgICAgICBkcmFnRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwotICAg
ICAgICB1cEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9u
OjpSaWdodDoKLSAgICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3VzZURv
d247Ci0gICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLQotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLQotICAgIE5TSW50ZWdlciBldmVudE51bWJl
ciA9IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7Ci0KLSAgICBzd2l0Y2gg
KGludGVyYWN0aW9uKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpNb3VzZUludGVyYWN0aW9uOjpNb3ZlOgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2Jq
ZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkcmFnRXZlbnRUeXBlIGxvY2F0aW9uOndp
bmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAg
d2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51
bWJlciBjbGlja0NvdW50OjAgcHJlc3N1cmU6MC4wZl1dOwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb246OkRv
d246Ci0gICAgICAgIC8vIEhhcmQtY29kZSB0aGUgY2xpY2sgY291bnQgdG8gb25lLCBzaW5jZSBj
bGllbnRzIGRvbid0IGV4cGVjdCBzdWNjZXNzaXZlIHNpbXVsYXRlZAotICAgICAgICAvLyBkb3du
L3VwIGV2ZW50cyB0byBiZSBwb3RlbnRpYWxseSBjb3VudGVkIGFzIGEgZG91YmxlIGNsaWNrIGV2
ZW50LgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZl
bnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVy
RmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRvd051
bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEgcHJl
c3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6VXA6Ci0g
ICAgICAgIC8vIEhhcmQtY29kZSB0aGUgY2xpY2sgY291bnQgdG8gb25lLCBzaW5jZSBjbGllbnRz
IGRvbid0IGV4cGVjdCBzdWNjZXNzaXZlIHNpbXVsYXRlZAotICAgICAgICAvLyBkb3duL3VwIGV2
ZW50cyB0byBiZSBwb3RlbnRpYWxseSBjb3VudGVkIGFzIGEgZG91YmxlIGNsaWNrIGV2ZW50Lgot
ICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRo
VHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1v
ZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29u
dGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOjAu
MGZdXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpTaW5nbGVDbGljazoKLSAgICAgICAgLy8gU2VuZCBz
ZXBhcmF0ZSBkb3duIGFuZCB1cCBldmVudHMuIFdlYkNvcmUgd2lsbCBzZWUgdGhpcyBhcyBhIHNp
bmdsZS1jbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNF
dmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3Np
dGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051
bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xp
Y2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOwotICAgICAgICBbZXZl
bnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50
VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1l
c3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZl
bnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOjAuMGZdXTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3Vz
ZUludGVyYWN0aW9uOjpEb3VibGVDbGljazoKLSAgICAgICAgLy8gU2VuZCBtdWx0aXBsZSBkb3du
IGFuZCB1cCBldmVudHMgd2l0aCBwcm9wZXIgY2xpY2sgY291bnQuCi0gICAgICAgIC8vIFdlYkNv
cmUgd2lsbCBzZWUgdGhpcyBhcyBhIHNpbmdsZS1jbGljayBldmVudCB0aGVuIGRvdWJsZS1jbGlj
ayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2Rp
ZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5k
b3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDox
IHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOwotICAgICAgICBbZXZlbnRzVG9CZVNl
bnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBsb2Nh
dGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGlt
ZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6
ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOjAuMGZdXTsKLSAgICAgICAgW2V2ZW50
c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50
VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1l
c3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZl
bnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoyIHByZXNzdXJlOldlYkNvcmU6OkZvcmNl
QXRDbGlja11dOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1v
dXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2Rp
ZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5k
b3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoy
IHByZXNzdXJlOjAuMGZdXTsKLSAgICB9Ci0KLSAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1Bh
Z2UocGFnZSwgZXZlbnRzVG9CZVNlbnQuZ2V0KCkpOwotfQotCi12b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKFdlYlBhZ2VQcm94eSYgcGFnZSwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUgaW50
ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkga2V5
KQotewotICAgIC8vIElmIHRydWUsIHRoZSBrZXkncyBtb2RpZmllciBmbGFncyBzaG91bGQgYWZm
ZWN0IG90aGVyIGV2ZW50cyB3aGlsZSBwcmVzc2VkIGRvd24uCi0gICAgYm9vbCBpc1N0aWNreU1v
ZGlmaWVyID0gZmFsc2U7Ci0gICAgLy8gVGhlIG1vZGlmaWVycyBjaGFuZ2VkIGJ5IHRoZSB2aXJ0
dWFsIGtleSB3aGVuIGl0IGlzIHByZXNzZWQgb3IgcmVsZWFzZWQuCi0gICAgLy8gVGhlIG1hcHBp
bmcgZnJvbSBrZXlzIHRvIG1vZGlmaWVycyBpcyBzcGVjaWZpZWQgaW4gdGhlIGRvY3VtZW50YXRp
b24gZm9yIE5TRXZlbnQuCi0gICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgY2hhbmdlZE1vZGlmaWVy
cyA9IDA7Ci0gICAgLy8gVGhlIGxpa2VseSBrZXlDb2RlIGZvciB0aGUgdmlydHVhbCBrZXkgYXMg
ZGVmaW5lZCBpbiA8SElUb29sYm94L0V2ZW50cy5oPi4KLSAgICBpbnQga2V5Q29kZSA9IDA7Ci0g
ICAgLy8gVHlwaWNhbCBjaGFyYWN0ZXJzIHByb2R1Y2VkIGJ5IHRoZSB2aXJ0dWFsIGtleSwgaWYg
YW55LgotICAgIE5TU3RyaW5nICpjaGFyYWN0ZXJzID0gQCIiOwotCi0gICAgLy8gRklYTUU6IHRo
aXMgZnVuY3Rpb24gYW5kIHRoZSBBdXRvbWF0aW9uIHByb3RvY29sIGVudW0gc2hvdWxkIHByb2Jh
Ymx5IGFkb3B0IGtleSBuYW1lcwotICAgIC8vIGZyb20gVzNDIFVJRXZlbnRzIHN0YW5kYXJkLiBG
b3IgbW9yZSBkZXRhaWxzOiBodHRwczovL3czYy5naXRodWIuaW8vdWlldmVudHMtY29kZS8KLQot
ICAgIHN3aXRjaCAoa2V5KSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpTaGlmdDoKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7
Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0Owot
ICAgICAgICBrZXlDb2RlID0ga1ZLX1NoaWZ0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbnRyb2w6Ci0gICAg
ICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0NvbnRy
b2w7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6QWx0ZXJuYXRlOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0g
dHJ1ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX09wdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpNZXRhOgot
ICAgICAgICAvLyBUaGUgJ21ldGEnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2Fy
ZHMgYW5kIGlzIHVzdWFsbHkKLSAgICAgICAgLy8gbWFwcGVkIHRvIHRoZSBDb21tYW5kIGtleSB3
aGVuIHVzaW5nIHRoaXJkLXBhcnR5IGtleWJvYXJkcy4KLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbW1hbmQ6Ci0gICAgICAgIGlzU3RpY2t5
TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdDb21tYW5kOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0NvbW1hbmQ7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6SGVscDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnSGVscCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9
IGtWS19IZWxwOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkJhY2tzcGFjZToKLSAgICAgICAga2V5Q29kZSA9IGtW
S19EZWxldGU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VGFiOgotICAgICAgICBrZXlDb2RlID0ga1ZLX1RhYjsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpDbGVhcjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50
TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBh
ZENsZWFyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OkVudGVyOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lf
S2V5cGFkRW50ZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGF1c2U6Ci0gICAgICAgIC8vIFRoZSAncGF1c2Un
IGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXljb2Rl
LgotICAgICAgICAvLyBUaGUgc2VtYW50aWNzIGFyZSB1bmNsZWFyIHNvIGp1c3QgYWJvcnQgYW5k
IGRvIG5vdGhpbmcuCi0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNhbmNlbDoKLSAgICAgICAgLy8gVGhlICdjYW5j
ZWwnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXlj
b2RlLgotICAgICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIGludGVybmV0IGl0cyBmdW5jdGlvbmFs
aXR5IGlzIHNpbWlsYXIgdG8gJ0VzY2FwZScuCi0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFc2NhcGU6Ci0gICAgICAgIGtleUNvZGUgPSBrVktf
RXNjYXBlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VVcDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUGFn
ZVVwOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OlBhZ2VEb3duOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19QYWdl
RG93bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpFbmQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0VuZDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpW
aXJ0dWFsS2V5OjpIb21lOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Ib21lOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkxlZnRBcnJvdzoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19MZWZ0QXJyb3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VXBBcnJvdzoKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19VcEFycm93Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OlJpZ2h0QXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247
Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUmlnaHRBcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEb3duQXJy
b3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVy
aWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfRG93bkFycm93OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Okluc2VydDoKLSAgICAgICAgLy8gVGhlICdpbnNl
cnQnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXlj
b2RlLgotICAgICAgICAvLyBUaGUgc2VtYW50aWNzIGFyZSB1bmNsZWFyIHNvIGp1c3QgYWJvcnQg
YW5kIGRvIG5vdGhpbmcuCi0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRlbGV0ZToKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfRm9yd2FyZERlbGV0ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTcGFjZToKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19TcGFjZTsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiICI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
U2VtaWNvbG9uOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfU2VtaWNvbG9uOwotICAgICAg
ICBjaGFyYWN0ZXJzID0gQCI7IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFcXVhbHM6Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfQU5TSV9FcXVhbDsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiPSI7Ci0gICAgICAg
IGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVh
bEtleTo6UmV0dXJuOgotICAgICAgICBrZXlDb2RlID0ga1ZLX1JldHVybjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpOdW1iZXJQYWQwOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMDsKLSAg
ICAgICAgY2hhcmFjdGVycyA9IEAiMCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMToKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDE7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBA
IjEiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDI6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktf
QU5TSV9LZXlwYWQyOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIyIjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWQzOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMzsKLSAgICAg
ICAgY2hhcmFjdGVycyA9IEAiMyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNDoKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDQ7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjQi
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5T
SV9LZXlwYWQ1OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI1IjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1i
ZXJQYWQ2OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdO
dW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNjsKLSAgICAgICAg
Y2hhcmFjdGVycyA9IEAiNiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNzoKLSAgICAgICAgY2hh
bmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDc7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjciOwot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6Ok51bWJlclBhZDg6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWQ4OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI4IjsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQ
YWQ5OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1l
cmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkOTsKLSAgICAgICAgY2hh
cmFjdGVycyA9IEAiOSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkTXVsdGlwbHk6Ci0gICAgICAg
IGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAg
ICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRNdWx0aXBseTsKLSAgICAgICAgY2hhcmFjdGVy
cyA9IEAiKiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkQWRkOgotICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0FOU0lfS2V5cGFkUGx1czsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiKyI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6TnVtYmVyUGFkU3VidHJhY3Q6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5T
SV9LZXlwYWRNaW51czsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiLSI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
TnVtYmVyUGFkU2VwYXJhdG9yOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICAvLyBUaGUgJ1NlcGFyYXRvcicga2V5IGlz
IG9ubHkgcHJlc2VudCBvbiBhIGZldyBpbnRlcm5hdGlvbmFsIGtleWJvYXJkcy4KLSAgICAgICAg
Ly8gSXQgaXMgdXN1YWxseSBtYXBwZWQgdG8gdGhlIHNhbWUgY2hhcmFjdGVyIGFzIERlY2ltYWwg
KCcuJyBvciAnLCcpLgotICAgICAgICBGQUxMVEhST1VHSDsKLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERlY2ltYWw6Ci0gICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWREZWNpbWFsOwotICAgICAgICAvLyBGSVhN
RTogdGhpcyBtaWdodCBiZSBsb2NhbGUtZGVwZW5kZW50LiBTZWUgdGhlIGFib3ZlIGNvbW1lbnQu
Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIi4iOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERpdmlk
ZToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJp
Y1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZERpdmlkZTsKLSAgICAgICAg
Y2hhcmFjdGVycyA9IEAiLyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xOgotICAgICAgICBjaGFu
Z2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5
Q29kZSA9IGtWS19GMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjI6Ci0gICAgICAgIGNoYW5nZWRN
b2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2Rl
ID0ga1ZLX0YyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMzoKLSAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfRjM7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb240OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19G
NDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y1Owot
ICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjY7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6RnVuY3Rpb243OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNzsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpGdW5jdGlvbjg6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y4OwotICAgICAgICBicmVh
azsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
OkZ1bmN0aW9uOToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjk7Ci0gICAgICAgIGJyZWFrOwot
ICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVu
Y3Rpb24xMDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjEwOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0
aW9uMTE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1
bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMTsKLSAgICAgICAgYnJlYWs7Ci0gICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlv
bjEyOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMTI7Ci0gICAgICAgIGJyZWFrOwotICAgIH0K
LQotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkgYWxs
b2NdIGluaXRdKTsKLQotICAgIEFTU0VSVChpc1N0aWNreU1vZGlmaWVyIHx8IGludGVyYWN0aW9u
ID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25U
eXBlOjpLZXlQcmVzcyk7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBleGlzdGluZ01vZGlm
aWVycyA9IFtOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdOwotICAgIE5TRXZlbnRNb2RpZmllckZsYWdz
IHVwZGF0ZWRNb2RpZmllcnMgPSAwOwotICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtO
U0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKLSAgICBOU1dpbmRvdyAqd2lu
ZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIg
PSB3aW5kb3cud2luZG93TnVtYmVyOwotICAgIE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9IE5TTWFr
ZVBvaW50KDAsIHdpbmRvdy5mcmFtZS5zaXplLmhlaWdodCk7Ci0KLSAgICBzd2l0Y2ggKGludGVy
YWN0aW9uKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXli
b2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3M6IHsKLSAgICAgICAgTlNFdmVudFR5cGUgZXZl
bnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDogTlNF
dmVudFR5cGVLZXlEb3duOwotICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2Rp
ZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2Jq
ZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6ZXZlbnRUeXBlIGxvY2F0aW9uOmV2ZW50UG9z
aXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAg
d2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3Rl
cnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtl
eUNvZGU6a2V5Q29kZV1dOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UmVs
ZWFzZTogewotICAgICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUgPSBpc1N0aWNreU1vZGlmaWVy
ID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgOiBOU0V2ZW50VHlwZUtleVVwOwotICAgICAgICB1
cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2RpZmllcnMgJiB+Y2hhbmdlZE1vZGlmaWVyczsK
LSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhU
eXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRl
ZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlm
aWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAgICAg
YnJlYWs7Ci0gICAgfQotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6Okluc2VydEJ5S2V5OiB7Ci0gICAgICAgIC8vIFN0aWNr
eSBtb2RpZmllcnMgc2hvdWxkIGVpdGhlciBiZSAnS2V5UHJlc3MnIG9yICdLZXlSZWxlYXNlJy4K
LSAgICAgICAgQVNTRVJUKCFpc1N0aWNreU1vZGlmaWVyKTsKLSAgICAgICAgaWYgKGlzU3RpY2t5
TW9kaWZpZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdXBkYXRlZE1vZGlmaWVy
cyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsKLSAgICAgICAgW2V2ZW50
c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
S2V5RG93biBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlm
aWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4
dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpj
aGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAgICAgW2V2ZW50
c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBl
S2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmll
cnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6
bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hh
cmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIGJyZWFrOwot
ICAgIH0KLSAgICB9Ci0KLSAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UocGFnZSwgZXZl
bnRzVG9CZVNlbnQuZ2V0KCkpOwotfQotCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0
Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBTdHJpbmcm
IGtleVNlcXVlbmNlKQotewotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtbTlNN
dXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLQotICAgIC8vIFNwbGl0IHRoZSB0ZXh0IGludG8g
Y29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMgYW5kIHNlbmQgZWFjaCBzZXBhcmF0ZWx5Lgot
ICAgIC8vIFRoaXMgaGFzIG5vIHNpbWlsYXJpdHkgdG8gaG93IGtleWJvYXJkcyB3b3JrIHdoZW4g
aW5wdXR0aW5nIGNvbXBsZXggdGV4dC4KLSAgICAvLyBUaGlzIGNvbW1hbmQgaXMgbW9yZSBzaW1p
bGFyIHRvIHRoZSAnaW5zZXJ0VGV4dDonIGVkaXRpbmcgY29tbWFuZCwgZXhjZXB0Ci0gICAgLy8g
dGhhdCB0aGlzIGVtaXRzIGtleXVwL2tleWRvd24va2V5cHJlc3MgZXZlbnRzIGZvciByb3VnaGx5
IGVhY2ggY2hhcmFjdGVyLgotICAgIC8vIFRoaXMgQVBJIHNob3VsZCBtb3ZlIG1vcmUgdG93YXJk
cyB0aGF0IGRpcmVjdGlvbiBpbiB0aGUgZnV0dXJlLgotICAgIE5TU3RyaW5nICp0ZXh0ID0ga2V5
U2VxdWVuY2U7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllcnMgPSBbTlNFdmVu
dCBtb2RpZmllckZsYWdzXTsKLSAgICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRl
IHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07Ci0gICAgTlNXaW5kb3cgKndpbmRvdyA9
IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLSAgICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0gd2lu
ZG93LndpbmRvd051bWJlcjsKLSAgICBOU1BvaW50IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQb2lu
dCgwLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQpOwotCi0gICAgW3RleHQgZW51bWVyYXRlU3Vi
c3RyaW5nc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgpIG9wdGlvbnM6TlNTdHJp
bmdFbnVtZXJhdGlvbkJ5Q29tcG9zZWRDaGFyYWN0ZXJTZXF1ZW5jZXMgdXNpbmdCbG9jazpeKE5T
U3RyaW5nICpzdWJzdHJpbmcsIE5TUmFuZ2Ugc3Vic3RyaW5nUmFuZ2UsIE5TUmFuZ2UgZW5jbG9z
aW5nUmFuZ2UsIEJPT0wgKnN0b3ApIHsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVj
dDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93biBsb2NhdGlvbjpl
dmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAg
d2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0cmlu
ZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBrZXlD
b2RlOjBdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlF
dmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2Rp
ZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5k
b3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9y
aW5nTW9kaWZpZXJzOnN1YnN0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07Ci0gICAgfV07
Ci0KLSAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UocGFnZSwgZXZlbnRzVG9CZVNlbnQu
Z2V0KCkpOwotfQotCi1TdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0QmFz
ZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdlRGF0
YUhhbmRsZSkKLXsKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFyZWFi
bGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGFIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVjdGlv
bjo6UmVhZE9ubHkpOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gYml0bWFw
LT5tYWtlQ0dJbWFnZSgpOwotICAgIFJldGFpblB0cjxOU011dGFibGVEYXRhPiBpbWFnZURhdGEg
PSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdF0pOwotICAgIFJldGFpblB0cjxD
R0ltYWdlRGVzdGluYXRpb25SZWY+IGRlc3RpbmF0aW9uID0gYWRvcHRDRihDR0ltYWdlRGVzdGlu
YXRpb25DcmVhdGVXaXRoRGF0YSgoQ0ZNdXRhYmxlRGF0YVJlZilpbWFnZURhdGEuZ2V0KCksIGtV
VFR5cGVQTkcsIDEsIDApKTsKLSAgICBpZiAoIWRlc3RpbmF0aW9uKQotICAgICAgICByZXR1cm4g
U3RyaW5nKCk7Ci0KLSAgICBDR0ltYWdlRGVzdGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlvbi5n
ZXQoKSwgY2dJbWFnZS5nZXQoKSwgMCk7Ci0gICAgQ0dJbWFnZURlc3RpbmF0aW9uRmluYWxpemUo
ZGVzdGluYXRpb24uZ2V0KCkpOwotCi0gICAgcmV0dXJuIFtpbWFnZURhdGEgYmFzZTY0RW5jb2Rl
ZFN0cmluZ1dpdGhPcHRpb25zOjBdOwotfQotCi0jZW5kaWYgLy8gVVNFKEFQUEtJVCkKLQotfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmJjZDc5NjFhZjRiMmU5OGVkZjc1OTdkNDNmNjJmZjAy
OGQxNGNiNi4uMTMwNTY3ZTRiM2EwN2Y3Y2FmZDk4ZTRiOWRmY2I2YzFmNGI1NjgwOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAt
MTMyMyw3ICsxMzIzLDkgQEAKIAkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9tYXRp
b25CYWNrZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFja2Vu
ZERpc3BhdGNoZXJzLmggKi87IH07CiAJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAvKiBBdXRv
bWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJv
dG9jb2xPYmplY3RzLmNwcCAqLzsgfTsKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8qIEF1
dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uUHJv
dG9jb2xPYmplY3RzLmggKi87IH07Ci0JCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBXZWJB
dXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gOTk4NkJERDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25T
ZXNzaW9uQ29jb2EubW0gKi87IH07CisJCTk5QzNBRTI0MURBRDhFMzcwMEFGNUMxNiAvKiBXZWJB
dXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDk5QzNBRTIzMURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hYy5tbSAqLzsgfTsKKwkJOTlDM0FFMjcxREFEOTQ4OTAwQUY1QzE2IC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Np
b25Db2NvYS5tbSAqLzsgfTsKKwkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Np
b25NYWNyb3MuaCAqLzsgfTsKIAkJOTlDODFENTkxQzIwRTFFNTAwNUM0QzgyIC8qIEF1dG9tYXRp
b25DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA5OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5tbSAqLzsgfTsK
IAkJOTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERGQkUw
MDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CiAJCTk5QzgxRDVEMUMyMUYzOEIw
MDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJQXV0
b21hdGlvbkNsaWVudC5oICovOyB9OwpAQCAtMzQ3NSw3ICszNDc3LDkgQEAKIAkJOTk1NUE2RjEx
Qzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVycy5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZGMjFDNzk4NjY0MDBFQjZBOTMg
LyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25Q
cm90b2NvbE9iamVjdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21h
dGlvblByb3RvY29sT2JqZWN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5OTg2
QkRENjFDQTlBMjIyMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9u
Q29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5QzNBRTIzMURBRDhFMzQw
MEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQk5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0
b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTk5QzNBRTJDMURBREE2QTcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lv
bk1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUM4MUQ1NTFD
MjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTk5QzgxRDU2MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50Lm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b21hdGlvbkNsaWVudC5t
bTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENUIxQzIwRTgxNzAwNUM0Qzgy
IC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gQVBJQXV0b21hdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
NDkxNCw3ICs0OTE4LDYgQEAKIAkJCQkyREFGNEZGQTFCNjM2MTgxMDA2MDEzRDYgLyogVmlld0dl
c3R1cmVDb250cm9sbGVyLmNwcCAqLywKIAkJCQkyRDEyNUM1QzE4NTdFQTA1MDAzQkEzQ0IgLyog
Vmlld0dlc3R1cmVDb250cm9sbGVyLmggKi8sCiAJCQkJMkQxQjVENUExODU4NjU5OTAwNkM2NTk2
IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbiAqLywKLQkJCQk5OTg2QkRENjFD
QTlBMjIyMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLywKIAkJCQkx
QUMwMjczRTE5NjYyMkQ2MDBDMTJCNzUgLyogV2ViUGFnZVByb3h5Q29jb2EubW0gKi8sCiAJCQkJ
N0M0Njk0Q0IxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1tICov
LAogCQkJCUNEQTI5QTFFMUNCRUI1RkIwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHkuaCAqLywKQEAgLTYwMjUsMTMgKzYwMjgsMzIgQEAKIAkJCWlzYSA9IFBCWEdyb3Vw
OwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOTk1NUE2RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1dG9t
YXRpb24uanNvbiAqLywKKwkJCQk5OUMzQUUyNTFEQUQ5NDY3MDBBRjVDMTYgLyogY29jb2EgKi8s
CisJCQkJOTlDM0FFMjIxREFEOEUxNDAwQUY1QzE2IC8qIG1hYyAqLywKIAkJCQk5OTU1QTZFQTFD
Nzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uY3BwICovLAogCQkJCTk5NTVB
NkVCMUM3OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oICovLAogCQkJCTFD
MEExOTU5MUM5MDA2RUEwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdlcy5p
biAqLywKKwkJCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Np
b25NYWNyb3MuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTk5QzNBRTIyMURBRDhFMTQwMEFGNUMxNiAvKiBtYWMg
Ki8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk5QzNBRTIz
MURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLywKKwkJCSk7
CisJCQlwYXRoID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJOTlD
M0FFMjUxREFEOTQ2NzAwQUY1QzE2IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3JvdXA7
CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0
b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJCQlz
b3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTgyRDVCMTFCRTZCQ0Y0MDA4N0E3Q0Mg
LyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTgz
MDEsNiArODMyMyw3IEBACiAJCQkJQkM0OTg2MkYxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVuZGxl
SGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMDRFRjIxMUM4M0VDODAwOEYz
Mzc1IC8qIFdLQnVuZGxlSW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCODZGMUUx
MkYxMURFMzAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk5OUMzQUUyRDFEQURBNkFEMDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3Mu
aCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEI2NkI0MUJDNDVCMDEwMDgyREY3NyAvKiBXS0J1bmRs
ZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3MDQzQ0MxMkY3NUVFMDAwNjQ3MkI5IC8qIFdL
QnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNzI4REUxQjFC
QUQzODAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBpbiBIZWFk
ZXJzICovLApAQCAtOTQzNCw2ICs5NDU3LDcgQEAKIAkJCQk1MUZEMThCNTE2NTFGQkFEMDBEQkUx
Q0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUxNTI1
NTFBMTcwMTE4MTkwMDNEN0FEQiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxNDI2RUYxQzIzRjgwOTAwRDQxMTgzIC8qIE5l
dHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5QzNB
RTI3MURBRDk0ODkwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGluIFNv
dXJjZXMgKi8sCiAJCQkJQkM4MjgzQUMxNkI0QkYzRjAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2aWNl
RW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzMjE1OTUzMURCQUU3MTgwMDU0QUEz
QyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzIwQ0I5RDFCQjBE
Q0ZBMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovLApAQCAt
OTYwMCw3ICs5NjI0LDYgQEAKIAkJCQkxQThFN0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlzaXRl
ZExpbmtUYWJsZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQ0VEQTEyRTIxNTJDRDFBRTAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk5OTU1QTZFRDFDNzk4MENBMDBFQjZBOTMgLyogV2ViQXV0
b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTk4NkJERDcxQ0E5QTIyQzAw
NDgwMEFBIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQkxQzBBMTk1NzFDOTAwNjhGMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NDYxQzhGRjFBODAwRkUwRUJC
IC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMw
QTE5NTMxQzhGRkRGQjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNzYWdl
UmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NzQ0LDYgKzk3NjcsNyBAQAogCQkJCUJD
QkQzOTE0MTI1QkIxQTgwMEQyQzI5RiAvKiBXZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyMTI3QzMxOTA4MjM5QTAwREFGMzVDIC8qIFdlYlBhc3Rl
Ym9hcmRPdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0RDAxQTUxRTM2ODAw
QUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5OUMz
QUUyNDFEQUQ4RTM3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gaW4gU291
cmNlcyAqLywKIAkJCQk3QzQ2OTRDQzFBNEI1MTBBMDBBRDU4NDUgLyogV2ViUGFzdGVib2FyZFBy
b3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2OTRDOTFBNEI0RUExMDBBRDU4NDUg
LyogV2ViUGFzdGVib2FyZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBQjFGNzc0MUQxQjJGOEEwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3IuY3Bw
IGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>299117</attachid>
            <date>2017-01-17 21:06:51 -0800</date>
            <delta_ts>2017-01-19 09:53:48 -0800</delta_ts>
            <desc>Proposed Fix v2.2</desc>
            <filename>bug-163297-20170117210514.patch</filename>
            <type>text/plain</type>
            <size>92473</size>
            <attacher name="Blaze Burg">bburg</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjEwODI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZGQwMDQ5MmZjMDM1ZmE3
ZTNmZTFkYWIxNmQzZTA2MzhkYzM1NjliYi4uZDZjNGJjMDRiYjNkNjJiMDhmYjVmYjA3M2ExNzJi
MWMxZTFlZmE2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDE3LTAxLTE3ICBCcmlh
biBCdXJnICA8YmJ1cmdAYXBwbGUuY29tPgorCisgICAgICAgIFdlYiBJbnNwZWN0b3I6IG1vdmUg
TWFjLXNwZWNpZmljIGF1dG9tYXRpb24gY29tbWFuZHMgdG8gYSBzZXBhcmF0ZSBpbXBsZW1lbnRh
dGlvbiBmaWxlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xNjMyOTcKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzI4NzE4OTkwPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vdCBhbGwgQXV0b21hdGlvbiBj
b21tYW5kcyBhcmUgYXZhaWxhYmxlIG9uIGFsbCBwbGF0Zm9ybXMuIFN0YXJ0IHNwbGl0dGluZyBv
dXQKKyAgICAgICAgY29tbWFuZCBkZWNsYXJhdGlvbnMgYW5kIGltcGxlbWVudGF0aW9ucyBiYXNl
ZCBvbiB0aGUgdGFyZ2V0IHBsYXRmb3JtLgorCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgU2V0IGFuIGFwcHJvcHJpYXRlIC0tcGxhdGZvcm0gc28gdGhlIGNvcnJlY3Qg
YmFja2VuZCBpbnRlcmZhY2UgaXMgZ2VuZXJhdGVkLgorCisgICAgICAgICogVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uOgorICAgICAgICBHdWFyZCBjb21tYW5kcyB0aGF0IHNo
b3VsZCBub3QgYmUgYXZhaWxhYmxlIG9uIGlPUzoKKyAgICAgICAgICAgIC0gcmVzaXplV2luZG93
T2ZCcm93c2luZ0NvbnRleHQKKyAgICAgICAgICAgIC0gbW92ZVdpbmRvd09mQnJvd3NpbmdDb250
ZXh0CisgICAgICAgICAgICAtIGluc3BlY3RCcm93c2luZ0NvbnRleHQKKworICAgICAgICAqIFVJ
UHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5jZSk6
IERlbGV0ZWQuCisgICAgICAgIC0gTW92ZSBzaGFyZWQgY29udmVuaWVuY2UgbWFjcm9zIHRvIGhl
YWRlciBmaWxlLgorICAgICAgICAtIE1vdmUgb3V0IENvY29hLW9ubHkgb3IgTWFjLW9ubHkgY29t
bWFuZCBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICBSZWFycmFuZ2Ugc29tZSBkZWNsYXJhdGlv
bnMgYW5kIHN3aXRjaCBmcm9tIFVTRShBUFBLSVQpIHRvIFBMQVRGT1JNKE1BQykuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oOiBB
ZGRlZC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL2NvY29hL1dlYkF1dG9tYXRp
b25TZXNzaW9uQ29jb2EubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6cGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0YSk6CisgICAgICAgIE1vdmVk
IGZyb20gV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbS4gQWRkIGlPUy1zcGVjaWZpYyBoZWFk
ZXIgaW5jbHVkZXMuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0
b21hdGlvblNlc3Npb25NYWMubW06IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbS4KKyAgICAgICAgKFdlYktpdDo6
V2ViQXV0b21hdGlvblNlc3Npb246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246Om1vdmVXaW5kb3dPZkJyb3dzaW5n
Q29udGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0
QnJvd3NpbmdDb250ZXh0KToKKyAgICAgICAgTW92ZSBtYWNPUyBwbGF0Zm9ybSBjb21tYW5kIGlt
cGxlbWVudGF0aW9ucyB0byBoZXJlLiBJZiBvdGhlciBkZXNrdG9wIHBvcnRzIHdhbnQKKyAgICAg
ICAgdG8gdXNlIHRoZXNlIGNvbW1hbmRzLCB3ZSBjYW4gbW92ZSB0aGVtIHNvbWV3aGVyZSBlbHNl
IGxhdGVyLgorCisgICAgICAgIChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3lu
dGhlc2l6ZWRFdmVudHNUb1BhZ2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6bWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9tYXRpb24pOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2FzRXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRp
b24pOgorICAgICAgICBNb3ZlIG91dCBBcHBLaXQtc3BlY2lmaWMgZXZlbnQgc2ltdWxhdGlvbiBj
b2RlIHRvIGhlcmUuCisKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246OnBs
YXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0
b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTdHJva2UpOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKToK
KyAgICAgICAgTW92ZSBvdXQgTWFjIHBsYXRmb3JtRm9vIGltcGxlbWVudGF0aW9ucyB0byBoZXJl
LgorCisgICAgICAgICogV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAtIEFkZGVkIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL3ttYWMsY29jb2F9IGdyb3Vwcy4KKyAgICAg
ICAgLSBBZGQgbmV3IHBsYXRmb3JtLXNwZWNpZmljIGltcGxlbWVudGF0aW9uIGZpbGVzLgorCiAy
MDE3LTAxLTE3ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBB
biB1cGRhdGUgdG8gb25lIGdhbWVwYWQncyB2YWx1ZXMgc2hvdWxkIG9ubHkgY2hhbmdlIHRoYXQg
Z2FtZXBhZCdzIG1vZGlmaWVkIHRpbWVzdGFtcC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViS2l0Mi9EZXJpdmVkU291cmNlcy5tYWtl
CmluZGV4IDRiOTM4MmI4MGE2NjkxNmE2N2NlOWU0YzYzOGZjMzU4ZjA2ZDUxMjkuLmRjYTRmNTg4
ZTE1OGMwMjlkMmU4YWMyZTFjYmRhMTQ0OGVlNzM0NDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdDIvRGVyaXZlZFNvdXJj
ZXMubWFrZQpAQCAtMjM0LDkgKzIzNCwxNyBAQCBBVVRPTUFUSU9OX1BST1RPQ09MX09VVFBVVF9G
SUxFUyA9IFwKICAgICBBdXRvbWF0aW9uQmFja2VuZERpc3BhdGNoZXJzLmNwcCBcCiAjCiAKK2lm
ZXEgKCQoT1MpLE1BQ09TKQoraWZlcSAoJChzaGVsbCAkKENDKSAtc3RkPWdudSsrMTEgLXggYysr
IC1FIC1QIC1kTSAkKFNES19GTEFHUykgJChGUkFNRVdPUktfRkxBR1MpICQoSEVBREVSX0ZMQUdT
KSAtaW5jbHVkZSAid3RmL1BsYXRmb3JtLmgiIC9kZXYvbnVsbCB8IGdyZXAgJyBXVEZfUExBVEZP
Uk1fSU9TICcgfCBjdXQgLWQnICcgLWYzKSwgMSkKKwlBVVRPTUFUSU9OX0JBQ0tFTkRfUExBVEZP
Uk1fQVJHVU1FTlRTID0gLS1wbGF0Zm9ybSBpT1MKK2Vsc2UKKwlBVVRPTUFUSU9OX0JBQ0tFTkRf
UExBVEZPUk1fQVJHVU1FTlRTID0gLS1wbGF0Zm9ybSBtYWNPUworZW5kaWYKK2VuZGlmICMgTUFD
T1MKKwogIyBKU09OLVJQQyBCYWNrZW5kIERpc3BhdGNoZXJzLCBUeXBlIEJ1aWxkZXJzCiAkKGZp
cnN0d29yZCAkKEFVVE9NQVRJT05fUFJPVE9DT0xfT1VUUFVUX0ZJTEVTKSkgOiAkKEFVVE9NQVRJ
T05fUFJPVE9DT0xfSU5QVVRfRklMRVMpICQoQVVUT01BVElPTl9QUk9UT0NPTF9HRU5FUkFUT1Jf
U0NSSVBUUykKLQkkKFBZVEhPTikgJChKYXZhU2NyaXB0Q29yZV9TQ1JJUFRTX0RJUikvZ2VuZXJh
dGUtaW5zcGVjdG9yLXByb3RvY29sLWJpbmRpbmdzLnB5IC0tZnJhbWV3b3JrIFdlYktpdCAtLWJh
Y2tlbmQgLS1vdXRwdXREaXIgLiAkKEFVVE9NQVRJT05fUFJPVE9DT0xfSU5QVVRfRklMRVMpCisJ
JChQWVRIT04pICQoSmF2YVNjcmlwdENvcmVfU0NSSVBUU19ESVIpL2dlbmVyYXRlLWluc3BlY3Rv
ci1wcm90b2NvbC1iaW5kaW5ncy5weSAtLWZyYW1ld29yayBXZWJLaXQgJChBVVRPTUFUSU9OX0JB
Q0tFTkRfUExBVEZPUk1fQVJHVU1FTlRTKSAtLWJhY2tlbmQgLS1vdXRwdXREaXIgLiAkKEFVVE9N
QVRJT05fUFJPVE9DT0xfSU5QVVRfRklMRVMpCiAKIGFsbCA6ICQoZmlyc3R3b3JkICQoQVVUT01B
VElPTl9QUk9UT0NPTF9PVVRQVVRfRklMRVMpKQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24gYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXggNDZjY2VhODJiMGVlOWI5
OGY5Y2QzMGY2ZGI4YWZmNjYxYTFmMjMwOC4uMWM3MTlkNTNjZmQ0N2Y0OGRiMjY5NzE1OGE3Nzc3
NGZiZDRjMTA3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRp
b24vQXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL0F1dG9tYXRpb24uanNvbgpAQCAtMjQ4LDYgKzI0OCw3IEBACiAgICAgICAgIHsKICAgICAg
ICAgICAgICJuYW1lIjogInJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0IiwKICAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJSZXNpemVzIHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBi
cm93c2luZyBjb250ZXh0IHRvIHRoZSBzcGVjaWZpZWQgc2l6ZS4iLAorICAgICAgICAgICAgInBs
YXRmb3JtIjogIm1hY09TIiwKICAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxl
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRv
IGJlIHJlc2l6ZWQuIiB9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2l6ZSIsICIkcmVm
IjogIlNpemUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIG5ldyBzaXplIGZvciB0aGUgYnJvd3Npbmcg
Y29udGV4dCdzIHdpbmRvdy4iIH0KQEAgLTI1Niw2ICsyNTcsNyBAQAogICAgICAgICB7CiAgICAg
ICAgICAgICAibmFtZSI6ICJtb3ZlV2luZG93T2ZCcm93c2luZ0NvbnRleHQiLAogICAgICAgICAg
ICAgImRlc2NyaXB0aW9uIjogIk1vdmVzIHRoZSB3aW5kb3cgb2YgdGhlIHNwZWNpZmllZCBicm93
c2luZyBjb250ZXh0IHRvIHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uIiwKKyAgICAgICAgICAgICJw
bGF0Zm9ybSI6ICJtYWNPUyIsCiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAg
ICAgICAgICB7ICJuYW1lIjogImhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRs
ZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dCB0
byBiZSBtb3ZlZC4iIH0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJvcmlnaW4iLCAiJHJl
ZiI6ICJQb2ludCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgbmV3IG9yaWdpbiBmb3IgdGhlIGJyb3dz
aW5nIGNvbnRleHQncyB3aW5kb3cuIFRoZSBwb3NpdGlvbiBpcyBpbnRlcnByZXRlZCBpbiBzY3Jl
ZW4gY29vcmRpbmF0ZSBzcGFjZSwgcmVsYXRpdmUgdG8gdGhlIHVwcGVyIGxlZnQgY29ybmVyIG9m
IHRoZSBzY3JlZW4uIiB9CkBAIC0yOTcsNiArMjk5LDcgQEAKICAgICAgICAgewogICAgICAgICAg
ICAgIm5hbWUiOiAiaW5zcGVjdEJyb3dzaW5nQ29udGV4dCIsCiAgICAgICAgICAgICAiZGVzY3Jp
cHRpb24iOiAiSW5zcGVjdCB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQgdXNpbmcgV2Vi
IEluc3BlY3Rvci4iLAorICAgICAgICAgICAgInBsYXRmb3JtIjogIm1hY09TIiwKICAgICAgICAg
ICAgICJwYXJhbWV0ZXJzIjogWwogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFuZGxlIiwg
IiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5k
bGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0IHRoYXQgc2hvdWxkIGJlIGluc3BlY3RlZC4iIH0s
CiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJlbmFibGVBdXRvQ2FwdHVyaW5nIiwgInR5cGUi
OiAiYm9vbGVhbiIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGlzIG9w
dGlvbiBpcyBwcmVzZW50IGFuZCBzZXQgdG8gdHJ1ZSwgdGhlIFdlYiBJbnNwZWN0b3Igd2lsbCBh
dXRvbWF0aWNhbGx5IHN0YXJ0IGEgdGltZWxpbmUgcmVjb3JkaW5nIG9mIHRoZSBzcGVjaWZpZWQg
YnJvd3NpbmcgY29udGV4dCBvbmNlIGl0IGlzIGF0dGFjaGVkLiBOb3RlIHRoYXQgdGhpcyBkaXNh
YmxlcyB0aGUgZGVidWdnZXIgZm9yIHRoZSBkdXJhdGlvbiBvZiB0aGUgcmVjb3JkaW5nLiIgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2Vi
QXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IGU2YmEwN2RjOTVjNDQ2Nzk3NDk4M2M1MTVmNTBh
NDc1YWVlMDNjNWUuLjVmMDMxNDY1MGRmNTMzMzIyNGMxZTYwMWExZGE2MTIwYmIyZmFjYWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRp
b25TZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE2IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2luY2x1ZGUgIkFQSUF1
dG9tYXRpb25TZXNzaW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2Jq
ZWN0cy5oIgorI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCiAjaW5jbHVk
ZSAiV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRp
b25TZXNzaW9uUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94
eS5oIgpAQCAtNDQsMzIgKzQ1LDYgQEAKIAogdXNpbmcgbmFtZXNwYWNlIEluc3BlY3RvcjsKIAot
c3RhdGljIGNvbnN0IGNoYXIqIGNvbnN0IGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IgPSAi
OyI7Ci0KLS8vIE1ha2Ugc3VyZSB0aGUgcHJlZGVmaW5lZCBlcnJvciBuYW1lIGlzIHZhbGlkLCBv
dGhlcndpc2UgdXNlIEludGVybmFsRXJyb3IuCi0jZGVmaW5lIFZBTElEQVRFRF9FUlJPUl9NRVNT
QUdFKGVycm9yU3RyaW5nKSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVscGVyczo6
cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OkVycm9yTWVzc2FnZT4oZXJyb3JTdHJpbmcpLnZhbHVlX29yKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6SW50ZXJuYWxFcnJvcikKLQotLy8gSWYgdGhlIGVy
cm9yIG5hbWUgaXMgaW5jb3JyZWN0IGZvciB0aGVzZSBtYWNyb3MsIGl0IHdpbGwgYmUgYSBjb21w
aWxlLXRpbWUgZXJyb3IuCi0jZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9OQU1F
KGVycm9yTmFtZSkgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVu
dW1Db25zdGFudFZhbHVlKEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVz
c2FnZTo6ZXJyb3JOYW1lKQotI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFN
RV9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcpIG1ha2VTdHJpbmcoSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1Db25zdGFudFZhbHVlKElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkVycm9yTWVzc2FnZTo6ZXJyb3JOYW1lKSwg
ZXJyb3JOYW1lQW5kRGV0YWlsc1NlcGFyYXRvciwgZGV0YWlsc1N0cmluZykKLQotLy8gSWYgdGhl
IGVycm9yIG1lc3NhZ2UgaXMgbm90IGEgcHJlZGVmaW5lZCBlcnJvciwgSW50ZXJuYWxFcnJvciB3
aWxsIGJlIHVzZWQgaW5zdGVhZC4KLSNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X01FU1NBR0UoZXJyb3JNZXNzYWdlKSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uSGVs
cGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoVkFMSURBVEVEX0VSUk9SX01FU1NBR0UoZXJyb3JN
ZXNzYWdlKSkKLSNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX01FU1NBR0VfQU5E
X0RFVEFJTFMoZXJyb3JNZXNzYWdlLCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShWQUxJ
REFURURfRVJST1JfTUVTU0FHRShlcnJvck1lc3NhZ2UpKSwgZXJyb3JOYW1lQW5kRGV0YWlsc1Nl
cGFyYXRvciwgZGV0YWlsc1N0cmluZykKLQotLy8gQ29udmVuaWVuY2UgbWFjcm9zIGZvciBmaWxs
aW5nIGluIHRoZSBlcnJvciBzdHJpbmcgb2Ygc3luY2hyb25vdXMgY29tbWFuZHMgaW4gYmFpbG91
dCBicmFuY2hlcy4KLSNkZWZpbmUgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoZXJyb3JOYW1l
KSBcCi1kbyB7IFwKLSAgICBlcnJvclN0cmluZyA9IFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJP
Ul9OQU1FKGVycm9yTmFtZSk7IFwKLSAgICByZXR1cm47IFwKLX0gd2hpbGUgKGZhbHNlKQotCi0j
ZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKGVycm9yTmFtZSwg
ZGV0YWlsc1N0cmluZykgXAotZG8geyBcCi0gICAgZXJyb3JTdHJpbmcgPSBTVFJJTkdfRk9SX1BS
RURFRklORURfRVJST1JfTkFNRV9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcp
OyBcCi0gICAgcmV0dXJuOyBcCi19IHdoaWxlIChmYWxzZSkKLQogbmFtZXNwYWNlIFdlYktpdCB7
CiAKIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpXZWJBdXRvbWF0aW9uU2Vzc2lvbigpCkBAIC0yNDUs
NiArMjIwLDggQEAgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dz
aW5nQ29udGV4dD4gV2ViQXV0b21hdGlvblNlc3Npb246OmIKICAgICAgICAgLnJlbGVhc2UoKTsK
IH0KIAorLy8gUGxhdGZvcm0taW5kZXBlbmRlbnQgQ29tbWFuZHMuCisKIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246OmdldEJyb3dzaW5nQ29udGV4dHMoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYg
ZXJyb3JTdHJpbmcsIFJlZlB0cjxJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+PiYgY29udGV4dHMpCiB7CiAg
ICAgY29udGV4dHMgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBcnJheTxJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHQ+OjpjcmVhdGUoKTsKQEAgLTMxMSw4MCAr
Mjg4LDYgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c3dpdGNoVG9Ccm93c2luZ0NvbnRl
eHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3IKICAgICBwYWdlLT5wcm9jZXNzKCkuc2Vu
ZChNZXNzYWdlczo6V2ViQXV0b21hdGlvblNlc3Npb25Qcm94eTo6Rm9jdXNGcmFtZShwYWdlLT5w
YWdlSUQoKSwgZnJhbWVJRC52YWx1ZSgpKSwgMCk7CiB9CiAKLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmIGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJ
bnNwZWN0b3JPYmplY3QmIHNpemVPYmplY3QpCi17Ci0gICAgZmxvYXQgd2lkdGg7Ci0gICAgaWYg
KCFzaXplT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2lkdGgp
KQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5n
UGFyYW1ldGVyLCAiVGhlICd3aWR0aCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxp
ZC4iKTsKLQotICAgIGZsb2F0IGhlaWdodDsKLSAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91Ymxl
KFdURjo6QVNDSUlMaXRlcmFsKCJoZWlnaHQiKSwgaGVpZ2h0KSkKLSAgICAgICAgRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnaGVp
Z2h0JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOwotCi0gICAgaWYgKHdp
ZHRoIDwgMCkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW52YWxpZFBhcmFtZXRlciwgIlRoZSAnd2lkdGgnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2
YWx1ZS4iKTsKLQotICAgIGlmIChoZWlnaHQgPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICdoZWlnaHQnIHBh
cmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIFdlYlBhZ2VQcm94eSogcGFn
ZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOwotICAgIGlmICghcGFnZSkKLSAgICAg
ICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwotCi0gICAgV2Vi
Q29yZTo6RmxvYXRSZWN0IG9yaWdpbmFsRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2luZG93RnJhbWUo
b3JpZ2luYWxGcmFtZSk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBXZWJD
b3JlOjpGbG9hdFJlY3Qob3JpZ2luYWxGcmFtZS5sb2NhdGlvbigpLCBXZWJDb3JlOjpGbG9hdFNp
emUod2lkdGgsIGhlaWdodCkpOwotICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQot
ICAgICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7Ci0K
LSAgICAvLyBJZiBub3RoaW5nIGNoYW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8g
cmVwb3J0IHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCi0gICAgLy8gKFdlIGNhbid0IGFzc3Vt
ZSB0aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwg
aG93ZXZlci4pCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKLSAgICBwYWdl
LT5nZXRXaW5kb3dGcmFtZSh1cGRhdGVkRnJhbWUpOwotICAgIGlmIChvcmlnaW5hbEZyYW1lID09
IHVwZGF0ZWRGcmFtZSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RF
VEFJTFMoSW50ZXJuYWxFcnJvciwgIlRoZSB3aW5kb3cgc2l6ZSB3YXMgZXhwZWN0ZWQgdG8gaGF2
ZSBjaGFuZ2VkLCBidXQgZGlkIG5vdC4iKTsKLX0KLQotdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lv
bjo6bW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVy
cm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0
b3JPYmplY3QmIHBvc2l0aW9uT2JqZWN0KQotewotICAgIGZsb2F0IHg7Ci0gICAgaWYgKCFwb3Np
dGlvbk9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoIngiKSwgeCkpCi0gICAgICAg
IEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIs
ICJUaGUgJ3gnIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7Ci0KLSAgICBm
bG9hdCB5OwotICAgIGlmICghcG9zaXRpb25PYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRl
cmFsKCJ5IiksIHkpKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVU
QUlMUyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd5JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBv
ciBpbnZhbGlkLiIpOwotCi0gICAgaWYgKHggPCAwKQotICAgICAgICBGQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0
ZXIgaGFkIGFuIGludmFsaWQgdmFsdWUuIik7Ci0KLSAgICBpZiAoeSA8IDApCi0gICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJU
aGUgJ3knIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKLQotICAgIFdlYlBhZ2VQ
cm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOwotICAgIGlmICghcGFn
ZSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOwot
Ci0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IG9yaWdpbmFsRnJhbWU7Ci0gICAgcGFnZS0+Z2V0V2lu
ZG93RnJhbWUob3JpZ2luYWxGcmFtZSk7Ci0KLSAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJh
bWUgPSBXZWJDb3JlOjpGbG9hdFJlY3QoV2ViQ29yZTo6RmxvYXRQb2ludCh4LCB5KSwgb3JpZ2lu
YWxGcmFtZS5zaXplKCkpOwotICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7Ci0KLSAg
ICAvLyBJZiBub3RoaW5nIGNoYW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVw
b3J0IHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCi0gICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0
aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93
ZXZlci4pCi0gICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKLSAgICBwYWdlLT5n
ZXRXaW5kb3dGcmFtZSh1cGRhdGVkRnJhbWUpOwotICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVw
ZGF0ZWRGcmFtZSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJ
TFMoSW50ZXJuYWxFcnJvciwgIlRoZSB3aW5kb3cgcG9zaXRpb24gd2FzIGV4cGVjdGVkIHRvIGhh
dmUgY2hhbmdlZCwgYnV0IGRpZCBub3QuIik7Ci19Ci0KIHZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246Om5hdmlnYXRlQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgU3RyaW5nJiB1cmwsIFJlZjxOYXZp
Z2F0ZUJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQogewogICAgIFdlYlBhZ2VQ
cm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOwpAQCAtNDM4LDI3ICsz
NDEsNiBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZWxvYWRCcm93c2luZ0NvbnRleHQo
SW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdAogICAgIHBhZ2UtPnJlbG9hZChyZWxvYWRG
cm9tT3JpZ2luLCB7IH0pOwogfQogCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjppbnNwZWN0
QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9yU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgYm9vbCogb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5n
LCBSZWY8SW5zcGVjdEJyb3dzaW5nQ29udGV4dENhbGxiYWNrPiYmIGNhbGxiYWNrKQotewotICAg
IFdlYlBhZ2VQcm94eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOwotICAg
IGlmICghcGFnZSkKLSAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90
Rm91bmQpOwotCi0gICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRpbmdJbnNwZWN0b3JDYWxs
YmFja3NQZXJQYWdlLnRha2UocGFnZS0+cGFnZUlEKCkpKQotICAgICAgICBjYWxsYmFjay0+c2Vu
ZEZhaWx1cmUoU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUUoVGltZW91dCkpOwotICAg
IG1fcGVuZGluZ0luc3BlY3RvckNhbGxiYWNrc1BlclBhZ2Uuc2V0KHBhZ2UtPnBhZ2VJRCgpLCBX
VEZNb3ZlKGNhbGxiYWNrKSk7Ci0KLSAgICAvLyBEb24ndCBicmluZyB0aGUgaW5zcGVjdG9yIHRv
IGZyb250IHNpbmNlIHRoaXMgbWF5IGJlIGRvbmUgYXV0b21hdGljYWxseS4KLSAgICAvLyBXZSBq
dXN0IHdhbnQgaXQgbG9hZGVkIHNvIGl0IGNhbiBwYXVzZSBpZiBhIGJyZWFrcG9pbnQgaXMgaGl0
IGR1cmluZyBhIGNvbW1hbmQuCi0gICAgaWYgKHBhZ2UtPmluc3BlY3RvcigpKSB7Ci0gICAgICAg
IHBhZ2UtPmluc3BlY3RvcigpLT5jb25uZWN0KCk7Ci0KLSAgICAgICAgLy8gU3RhcnQgY29sbGVj
dGluZyBwcm9maWxlIGluZm9ybWF0aW9uIGltbWVkaWF0ZWx5IHNvIHRoZSBlbnRpcmUgc2Vzc2lv
biBpcyBjYXB0dXJlZC4KLSAgICAgICAgaWYgKG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZyAm
JiAqb3B0aW9uYWxFbmFibGVBdXRvQ2FwdHVyaW5nKQotICAgICAgICAgICAgcGFnZS0+aW5zcGVj
dG9yKCktPnRvZ2dsZVBhZ2VQcm9maWxpbmcoKTsKLSAgICB9Ci19Ci0KIHZvaWQgV2ViQXV0b21h
dGlvblNlc3Npb246Om5hdmlnYXRpb25PY2N1cnJlZEZvclBhZ2UoY29uc3QgV2ViUGFnZVByb3h5
JiBwYWdlKQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nTmF2aWdhdGlvbklu
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2tzUGVyUGFnZS50YWtlKHBhZ2UucGFnZUlEKCkpKQpAQCAt
MTA0Myw3ICs5MjUsOSBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpkaWRUYWtlU2NyZWVu
c2hvdCh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTaGFyZWFibAogICAgIGNhbGxiYWNrLT5z
ZW5kU3VjY2VzcyhiYXNlNjRFbmNvZGVkRGF0YSk7CiB9CiAKLSNpZiAhVVNFKEFQUEtJVCkKKy8v
IFBsYXRmb3JtLWRlcGVuZGVudCBJbXBsZW1lbnRhdGlvbiBTdHVicy4KKworI2lmICFQTEFURk9S
TShNQUMpCiB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJ
bnRlcmFjdGlvbihXZWJLaXQ6OldlYlBhZ2VQcm94eSYsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50
JiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbiwgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b24sIFdlYkV2ZW50OjpNb2Rp
ZmllcnMpCiB7CiB9CkBAIC0xMDU1LDExICs5MzksMTMgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShXZWJQYWdlUHJveHkmLCBJbnNwZWN0b3I6
OlAKIHZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtU2ltdWxhdGVLZXlTZXF1ZW5j
ZShXZWJQYWdlUHJveHkmLCBjb25zdCBTdHJpbmcmKQogewogfQorI2VuZGlmIC8vICFQTEFURk9S
TShNQUMpCiAKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiBTdHJpbmcgV2ViQXV0b21hdGlvblNlc3Np
b246OnBsYXRmb3JtR2V0QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFw
OjpIYW5kbGUmKQogewogICAgIHJldHVybiBTdHJpbmcoKTsKIH0KLSNlbmRpZiAvLyAhVVNFKEFQ
UEtJVCkKKyNlbmRpZiAvLyAhUExBVEZPUk0oQ09DT0EpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0
b21hdGlvblNlc3Npb24uaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggNjAyNGFhNDliYjMwNjA4NzczMzkyYjYwOGUxOGEz
MDEzYTAwYzE4My4uYjMxYzU1YmRhZTk2YzU0MTk1YTYyMTUxYWM3OWFkYzA0Njc4NWQ2NiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykg
MjAxNiBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTYsIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCkBAIC05NiwxOCArOTYsMTkgQEAgcHVibGljOgogICAgIHZvaWQgdGVy
bWluYXRlKCk7CiAKICAgICAvLyBJbnNwZWN0b3I6OkF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hl
ckhhbmRsZXIgQVBJCisgICAgLy8gTk9URTogdGhlIHNldCBvZiBkZWNsYXJhdGlvbnMgaW5jbHVk
ZWQgaW4gdGhpcyBpbnRlcmZhY2UgZGVwZW5kIG9uIHRoZSAicGxhdGZvcm0iIHByb3BlcnR5IGlu
IEF1dG9tYXRpb24uanNvbgorICAgIC8vIGFuZCB0aGUgLS1wbGF0Zm9ybSBhcmd1bWVudCBwYXNz
ZWQgdG8gdGhlIHByb3RvY29sIGJpbmRpbmdzIGdlbmVyYXRvci4KKworICAgIC8vIFBsYXRmb3Jt
OiBHZW5lcmljCiAgICAgdm9pZCBnZXRCcm93c2luZ0NvbnRleHRzKEluc3BlY3Rvcjo6RXJyb3JT
dHJpbmcmLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXJyYXk8SW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0Pj4mKSBvdmVycmlkZTsKICAgICB2b2lk
IGdldEJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5n
JiwgUmVmUHRyPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkJyb3dzaW5nQ29udGV4
dD4mKSBvdmVycmlkZTsKICAgICB2b2lkIGNyZWF0ZUJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6
OkVycm9yU3RyaW5nJiwgU3RyaW5nKikgb3ZlcnJpZGU7CiAgICAgdm9pZCBjbG9zZUJyb3dzaW5n
Q29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJikgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzd2l0Y2hUb0Jyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5n
JiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyogb3B0
aW9uYWxGcmFtZUhhbmRsZSkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZXNpemVXaW5kb3dPZkJyb3dz
aW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUs
IGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBzaXplKSBvdmVycmlkZTsKLSAgICB2
b2lkIG1vdmVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBw
b3NpdGlvbikgb3ZlcnJpZGU7CiAgICAgdm9pZCBuYXZpZ2F0ZUJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IFN0cmluZyYg
dXJsLCBSZWY8TmF2aWdhdGVCcm93c2luZ0NvbnRleHRDYWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBnb0JhY2tJbkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwg
Y29uc3QgU3RyaW5nJiwgUmVmPEdvQmFja0luQnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92
ZXJyaWRlOwogICAgIHZvaWQgZ29Gb3J3YXJkSW5Ccm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpF
cnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIFJlZjxHb0ZvcndhcmRJbkJyb3dzaW5nQ29udGV4
dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIHJlbG9hZEJyb3dzaW5nQ29udGV4dChJ
bnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiwgUmVmPFJlbG9hZEJyb3dzaW5n
Q29udGV4dENhbGxiYWNrPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGluc3BlY3RCcm93c2luZ0Nv
bnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYsIGNvbnN0IGJvb2wq
IG9wdGlvbmFsRW5hYmxlQXV0b0NhcHR1cmluZywgUmVmPEluc3BlY3RCcm93c2luZ0NvbnRleHRD
YWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBldmFsdWF0ZUphdmFTY3JpcHRGdW5jdGlv
bihJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRI
YW5kbGUsIGNvbnN0IFN0cmluZyogb3B0aW9uYWxGcmFtZUhhbmRsZSwgY29uc3QgU3RyaW5nJiBm
dW5jdGlvbiwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYgYXJndW1lbnRzLCBjb25z
dCBib29sKiBvcHRpb25hbEV4cGVjdHNJbXBsaWNpdENhbGxiYWNrQXJndW1lbnQsIGNvbnN0IGlu
dCogb3B0aW9uYWxDYWxsYmFja1RpbWVvdXQsIFJlZjxJbnNwZWN0b3I6OkF1dG9tYXRpb25CYWNr
ZW5kRGlzcGF0Y2hlckhhbmRsZXI6OkV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uQ2FsbGJhY2s+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgcGVyZm9ybU1vdXNlSW50ZXJhY3Rpb24oSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBJbnNwZWN0b3I6Oklu
c3BlY3Rvck9iamVjdCYgcmVxdWVzdGVkUG9zaXRpb24sIGNvbnN0IFN0cmluZyYgbW91c2VCdXR0
b24sIGNvbnN0IFN0cmluZyYgbW91c2VJbnRlcmFjdGlvbiwgY29uc3QgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JBcnJheSYga2V5TW9kaWZpZXJzLCBSZWZQdHI8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6UG9pbnQ+JiB1cGRhdGVkUG9zaXRpb24pIG92ZXJyaWRlOwogICAgIHZvaWQgcGVy
Zm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zKEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmLCBjb25zdCBT
dHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JBcnJheSYgaW50ZXJhY3Rp
b25zLCBSZWY8UGVyZm9ybUtleWJvYXJkSW50ZXJhY3Rpb25zQ2FsbGJhY2s+JiYpIG92ZXJyaWRl
OwpAQCAtMTI0LDcgKzEyNSwxNiBAQCBwdWJsaWM6CiAgICAgdm9pZCBkZWxldGVTaW5nbGVDb29r
aWUoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0
SGFuZGxlLCBjb25zdCBTdHJpbmcmIGNvb2tpZU5hbWUsIFJlZjxEZWxldGVTaW5nbGVDb29raWVD
YWxsYmFjaz4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBhZGRTaW5nbGVDb29raWUoSW5zcGVjdG9y
OjpFcnJvclN0cmluZyYsIGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25z
dCBJbnNwZWN0b3I6Okluc3BlY3Rvck9iamVjdCYgY29va2llLCBSZWY8QWRkU2luZ2xlQ29va2ll
Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGVsZXRlQWxsQ29va2llcyhJbnNwZWN0
b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUpIG92
ZXJyaWRlOwotI2lmIFVTRShBUFBLSVQpCisKKyAgICAvLyBQbGF0Zm9ybTogbWFjT1MKKyNpZiBQ
TEFURk9STShNQUMpCisgICAgdm9pZCByZXNpemVXaW5kb3dPZkJyb3dzaW5nQ29udGV4dChJbnNw
ZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBoYW5kbGUsIGNvbnN0IEluc3BlY3Rv
cjo6SW5zcGVjdG9yT2JqZWN0JiBzaXplKSBvdmVycmlkZTsKKyAgICB2b2lkIG1vdmVXaW5kb3dP
ZkJyb3dzaW5nQ29udGV4dChJbnNwZWN0b3I6OkVycm9yU3RyaW5nJiwgY29uc3QgU3RyaW5nJiBo
YW5kbGUsIGNvbnN0IEluc3BlY3Rvcjo6SW5zcGVjdG9yT2JqZWN0JiBwb3NpdGlvbikgb3ZlcnJp
ZGU7CisgICAgdm9pZCBpbnNwZWN0QnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJp
bmcmLCBjb25zdCBTdHJpbmcmLCBjb25zdCBib29sKiBvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJp
bmcsIFJlZjxJbnNwZWN0QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpIG92ZXJyaWRlOworI2Vu
ZGlmCisKKyAgICAvLyBFdmVudCBTaW11bGF0aW9uIFN1cHBvcnQuCisjaWYgUExBVEZPUk0oTUFD
KQogICAgIGJvb2wgd2FzRXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqKTsK
ICAgICB2b2lkIG1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKik7
CiAjZW5kaWYKQEAgLTEzOCwxMCArMTQ4LDEwIEBAIHByaXZhdGU6CiAgICAgU3RyaW5nIGhhbmRs
ZUZvcldlYkZyYW1lSUQodWludDY0X3QgZnJhbWVJRCk7CiAgICAgU3RyaW5nIGhhbmRsZUZvcldl
YkZyYW1lUHJveHkoY29uc3QgV2ViRnJhbWVQcm94eSYpOwogCi0gICAgLy8gSW1wbGVtZW50ZWQg
aW4gZ2VuZXJhdGVkIFdlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZVJlY2VpdmVyLmNwcAorICAg
IC8vIEltcGxlbWVudGVkIGluIGdlbmVyYXRlZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1lc3NhZ2VS
ZWNlaXZlci5jcHAuCiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24m
LCBJUEM6OkRlY29kZXImKSBvdmVycmlkZTsKIAotICAgIC8vIENhbGxlZCBieSBXZWJBdXRvbWF0
aW9uU2Vzc2lvbiBtZXNzYWdlcworICAgIC8vIENhbGxlZCBieSBXZWJBdXRvbWF0aW9uU2Vzc2lv
biBtZXNzYWdlcy4KICAgICB2b2lkIGRpZEV2YWx1YXRlSmF2YVNjcmlwdEZ1bmN0aW9uKHVpbnQ2
NF90IGNhbGxiYWNrSUQsIGNvbnN0IFN0cmluZyYgcmVzdWx0LCBjb25zdCBTdHJpbmcmIGVycm9y
VHlwZSk7CiAgICAgdm9pZCBkaWRSZXNvbHZlQ2hpbGRGcmFtZSh1aW50NjRfdCBjYWxsYmFja0lE
LCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBTdHJpbmcmIGVycm9yVHlwZSk7CiAgICAgdm9pZCBk
aWRSZXNvbHZlUGFyZW50RnJhbWUodWludDY0X3QgY2FsbGJhY2tJRCwgdWludDY0X3QgZnJhbWVJ
RCwgY29uc3QgU3RyaW5nJiBlcnJvclR5cGUpOwpAQCAtMTUwLDcgKzE2MCw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBkaWRHZXRDb29raWVzRm9yRnJhbWUodWludDY0X3QgY2FsbGJhY2tJRCwgVmVj
dG9yPFdlYkNvcmU6OkNvb2tpZT4sIGNvbnN0IFN0cmluZyYgZXJyb3JUeXBlKTsKICAgICB2b2lk
IGRpZERlbGV0ZUNvb2tpZSh1aW50NjRfdCBjYWxsYmFja0lELCBjb25zdCBTdHJpbmcmIGVycm9y
VHlwZSk7CiAKLSAgICAvLyBQbGF0Zm9ybS1zcGVjaWZpYyBoZWxwZXIgbWV0aG9kcy4KKyAgICAv
LyBQbGF0Zm9ybS1kZXBlbmRlbnQgaW1wbGVtZW50YXRpb25zLgogICAgIHZvaWQgcGxhdGZvcm1T
aW11bGF0ZU1vdXNlSW50ZXJhY3Rpb24oV2ViUGFnZVByb3h5JiwgY29uc3QgV2ViQ29yZTo6SW50
UG9pbnQmIHZpZXdQb3NpdGlvbiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91
c2VJbnRlcmFjdGlvbiwgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0
b24sIFdlYkV2ZW50OjpNb2RpZmllcnMpOwogICAgIC8vIFNpbXVsYXRlcyBhIHNpbmdsZSB2aXJ0
dWFsIGtleSBiZWluZyBwcmVzc2VkLCBzdWNoIGFzIENvbnRyb2wsIEYta2V5cywgTnVtcGFkIGtl
eXMsIGV0Yy4gYXMgYWxsb3dlZCBieSB0aGUgcHJvdG9jb2wuCiAgICAgdm9pZCBwbGF0Zm9ybVNp
bXVsYXRlS2V5U3Ryb2tlKFdlYlBhZ2VQcm94eSYsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5KTsKQEAgLTE1OSw3ICsxNjksNyBAQCBwcml2YXRlOgogICAgIC8v
IEdldCBiYXNlNjQgZW5jb2RlZCBQTkcgZGF0YSBmcm9tIGEgYml0bWFwLgogICAgIFN0cmluZyBw
bGF0Zm9ybUdldEJhc2U2NEVuY29kZWRQTkdEYXRhKGNvbnN0IFNoYXJlYWJsZUJpdG1hcDo6SGFu
ZGxlJik7CiAKLSNpZiBVU0UoQVBQS0lUKQorI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIHNl
bmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShXZWJQYWdlUHJveHkmLCBOU0FycmF5ICpldmVudHNU
b1NlbmQpOwogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmQ2Mzk4NzY5Y2ViZDFmMzEyYjliNGQ0MWRlZjAzMDE5MDZmNDgyM2UKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9u
Y2UKKworI2RlZmluZSBlcnJvck5hbWVBbmREZXRhaWxzU2VwYXJhdG9yICI7IgorCisvLyBNYWtl
IHN1cmUgdGhlIHByZWRlZmluZWQgZXJyb3IgbmFtZSBpcyB2YWxpZCwgb3RoZXJ3aXNlIHVzZSBJ
bnRlcm5hbEVycm9yLgorI2RlZmluZSBWQUxJREFURURfRVJST1JfTUVTU0FHRShlcnJvclN0cmlu
ZykgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OnBhcnNlRW51bVZhbHVl
RnJvbVN0cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U+
KGVycm9yU3RyaW5nKS52YWx1ZV9vcihJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpF
cnJvck1lc3NhZ2U6OkludGVybmFsRXJyb3IpCisKKy8vIElmIHRoZSBlcnJvciBuYW1lIGlzIGlu
Y29ycmVjdCBmb3IgdGhlc2UgbWFjcm9zLCBpdCB3aWxsIGJlIGEgY29tcGlsZS10aW1lIGVycm9y
LgorI2RlZmluZSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5hbWUpIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1
ZShJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFt
ZSkKKyNkZWZpbmUgU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9SX05BTUVfQU5EX0RFVEFJTFMo
ZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKSBtYWtlU3RyaW5nKEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb25IZWxwZXJzOjpnZXRFbnVtQ29uc3RhbnRWYWx1ZShJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpFcnJvck1lc3NhZ2U6OmVycm9yTmFtZSksIGVycm9yTmFtZUFuZERl
dGFpbHNTZXBhcmF0b3IsIGRldGFpbHNTdHJpbmcpCisKKy8vIElmIHRoZSBlcnJvciBtZXNzYWdl
IGlzIG5vdCBhIHByZWRlZmluZWQgZXJyb3IsIEludGVybmFsRXJyb3Igd2lsbCBiZSB1c2VkIGlu
c3RlYWQuCisjZGVmaW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFKGVycm9y
TWVzc2FnZSkgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OmdldEVudW1D
b25zdGFudFZhbHVlKFZBTElEQVRFRF9FUlJPUl9NRVNTQUdFKGVycm9yTWVzc2FnZSkpCisjZGVm
aW5lIFNUUklOR19GT1JfUFJFREVGSU5FRF9FUlJPUl9NRVNTQUdFX0FORF9ERVRBSUxTKGVycm9y
TWVzc2FnZSwgZGV0YWlsc1N0cmluZykgbWFrZVN0cmluZyhJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uSGVscGVyczo6Z2V0RW51bUNvbnN0YW50VmFsdWUoVkFMSURBVEVEX0VSUk9SX01F
U1NBR0UoZXJyb3JNZXNzYWdlKSksIGVycm9yTmFtZUFuZERldGFpbHNTZXBhcmF0b3IsIGRldGFp
bHNTdHJpbmcpCisKKy8vIENvbnZlbmllbmNlIG1hY3JvcyBmb3IgZmlsbGluZyBpbiB0aGUgZXJy
b3Igc3RyaW5nIG9mIHN5bmNocm9ub3VzIGNvbW1hbmRzIGluIGJhaWxvdXQgYnJhbmNoZXMuCisj
ZGVmaW5lIEZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKGVycm9yTmFtZSkgXAorZG8geyBcCisg
ICAgZXJyb3JTdHJpbmcgPSBTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShlcnJvck5h
bWUpOyBcCisgICAgcmV0dXJuOyBcCit9IHdoaWxlIChmYWxzZSkKKworI2RlZmluZSBGQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhlcnJvck5hbWUsIGRldGFpbHNTdHJpbmcp
IFwKK2RvIHsgXAorICAgIGVycm9yU3RyaW5nID0gU1RSSU5HX0ZPUl9QUkVERUZJTkVEX0VSUk9S
X05BTUVfQU5EX0RFVEFJTFMoZXJyb3JOYW1lLCBkZXRhaWxzU3RyaW5nKTsgXAorICAgIHJldHVy
bjsgXAorfSB3aGlsZSAoZmFsc2UpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQXV0b21hdGlvbi9jb2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRpb24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25D
b2NvYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4zNjg3ZDI4MjQyMDI1ZDk3MjhiYjAwMDk0YjBmNzAwM2EzYTYy
N2M0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0F1dG9tYXRp
b24vY29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbQpAQCAtMCwwICsxLDU3IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE2LCAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJXZWJBdXRvbWF0
aW9uU2Vzc2lvbi5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpCisKKyNpZiBQTEFURk9STShJT1Mp
CisjaW5jbHVkZSA8SW1hZ2VJTy9DR0ltYWdlRGVzdGluYXRpb24uaD4KKyNpbmNsdWRlIDxNb2Jp
bGVDb3JlU2VydmljZXMvVVRDb3JlVHlwZXMuaD4KKyNlbmRpZgorCit1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1N0cmluZyBXZWJBdXRvbWF0aW9uU2Vz
c2lvbjo6cGxhdGZvcm1HZXRCYXNlNjRFbmNvZGVkUE5HRGF0YShjb25zdCBTaGFyZWFibGVCaXRt
YXA6OkhhbmRsZSYgaW1hZ2VEYXRhSGFuZGxlKQoreworICAgIFJlZlB0cjxTaGFyZWFibGVCaXRt
YXA+IGJpdG1hcCA9IFNoYXJlYWJsZUJpdG1hcDo6Y3JlYXRlKGltYWdlRGF0YUhhbmRsZSwgU2hh
cmVkTWVtb3J5OjpQcm90ZWN0aW9uOjpSZWFkT25seSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VS
ZWY+IGNnSW1hZ2UgPSBiaXRtYXAtPm1ha2VDR0ltYWdlKCk7CisgICAgUmV0YWluUHRyPE5TTXV0
YWJsZURhdGE+IGltYWdlRGF0YSA9IGFkb3B0TlMoW1tOU011dGFibGVEYXRhIGFsbG9jXSBpbml0
XSk7CisgICAgUmV0YWluUHRyPENHSW1hZ2VEZXN0aW5hdGlvblJlZj4gZGVzdGluYXRpb24gPSBh
ZG9wdENGKENHSW1hZ2VEZXN0aW5hdGlvbkNyZWF0ZVdpdGhEYXRhKChDRk11dGFibGVEYXRhUmVm
KWltYWdlRGF0YS5nZXQoKSwga1VUVHlwZVBORywgMSwgMCkpOworICAgIGlmICghZGVzdGluYXRp
b24pCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKKworICAgIENHSW1hZ2VEZXN0aW5hdGlvbkFk
ZEltYWdlKGRlc3RpbmF0aW9uLmdldCgpLCBjZ0ltYWdlLmdldCgpLCAwKTsKKyAgICBDR0ltYWdl
RGVzdGluYXRpb25GaW5hbGl6ZShkZXN0aW5hdGlvbi5nZXQoKSk7CisKKyAgICByZXR1cm4gW2lt
YWdlRGF0YSBiYXNlNjRFbmNvZGVkU3RyaW5nV2l0aE9wdGlvbnM6MF07Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Np
b25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0
b21hdGlvblNlc3Npb25NYWMubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkwNmIxMzJlYzg5NjI3MzQ5Mzc2Y2Rm
NmE3MGY5NTQ0ODBmNjgyYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQpAQCAtMCwwICsx
LDU5NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNiwgMjAxNyBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
V2ViQXV0b21hdGlvblNlc3Npb24uaCIKKworI2lmIFBMQVRGT1JNKE1BQykKKworI2ltcG9ydCAi
V2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3MuaCIKKyNpbXBvcnQgIldlYkluc3BlY3RvclByb3h5
LmgiCisjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKKyNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNz
aW9uLmgiCisjaW1wb3J0IDxISVRvb2xib3gvRXZlbnRzLmg+CisjaW1wb3J0IDxXZWJDb3JlL0lu
dFBvaW50Lmg+CisjaW1wb3J0IDxXZWJDb3JlL0ludFNpemUuaD4KKyNpbXBvcnQgPFdlYkNvcmUv
UGxhdGZvcm1Nb3VzZUV2ZW50Lmg+CisjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KKwordXNpbmcg
bmFtZXNwYWNlIFdlYkNvcmU7CisKK25hbWVzcGFjZSBXZWJLaXQgeworCisjcHJhZ21hIG1hcmsg
Q29tbWFuZHMgZm9yIFBsYXRmb3JtOiAnbWFjT1MnCisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Np
b246OnJlc2l6ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcm
IGVycm9yU3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNw
ZWN0b3JPYmplY3QmIHNpemVPYmplY3QpCit7CisgICAgZmxvYXQgd2lkdGg7CisgICAgaWYgKCFz
aXplT2JqZWN0LmdldERvdWJsZShXVEY6OkFTQ0lJTGl0ZXJhbCgid2lkdGgiKSwgd2lkdGgpKQor
ICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhNaXNzaW5nUGFy
YW1ldGVyLCAiVGhlICd3aWR0aCcgcGFyYW1ldGVyIHdhcyBub3QgZm91bmQgb3IgaW52YWxpZC4i
KTsKKworICAgIGZsb2F0IGhlaWdodDsKKyAgICBpZiAoIXNpemVPYmplY3QuZ2V0RG91YmxlKFdU
Rjo6QVNDSUlMaXRlcmFsKCJoZWlnaHQiKSwgaGVpZ2h0KSkKKyAgICAgICAgRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTWlzc2luZ1BhcmFtZXRlciwgIlRoZSAnaGVpZ2h0
JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBpbnZhbGlkLiIpOworCisgICAgaWYgKHdpZHRo
IDwgMCkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52
YWxpZFBhcmFtZXRlciwgIlRoZSAnd2lkdGgnIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1
ZS4iKTsKKworICAgIGlmIChoZWlnaHQgPCAwKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICdoZWlnaHQnIHBhcmFt
ZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKKworICAgIFdlYlBhZ2VQcm94eSogcGFnZSA9
IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICghcGFnZSkKKyAgICAgICAg
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOworCisgICAgV2ViQ29y
ZTo6RmxvYXRSZWN0IG9yaWdpbmFsRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93RnJhbWUob3Jp
Z2luYWxGcmFtZSk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUgPSBXZWJDb3Jl
OjpGbG9hdFJlY3Qob3JpZ2luYWxGcmFtZS5sb2NhdGlvbigpLCBXZWJDb3JlOjpGbG9hdFNpemUo
d2lkdGgsIGhlaWdodCkpOworICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQorICAg
ICAgICByZXR1cm47CisKKyAgICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7CisKKyAg
ICAvLyBJZiBub3RoaW5nIGNoYW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVw
b3J0IHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0
aGF0IHRoZSByZXF1ZXN0ZWQgZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93
ZXZlci4pCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKKyAgICBwYWdlLT5n
ZXRXaW5kb3dGcmFtZSh1cGRhdGVkRnJhbWUpOworICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVw
ZGF0ZWRGcmFtZSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJ
TFMoSW50ZXJuYWxFcnJvciwgIlRoZSB3aW5kb3cgc2l6ZSB3YXMgZXhwZWN0ZWQgdG8gaGF2ZSBj
aGFuZ2VkLCBidXQgZGlkIG5vdC4iKTsKK30KKwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
bW92ZVdpbmRvd09mQnJvd3NpbmdDb250ZXh0KEluc3BlY3Rvcjo6RXJyb3JTdHJpbmcmIGVycm9y
U3RyaW5nLCBjb25zdCBTdHJpbmcmIGhhbmRsZSwgY29uc3QgSW5zcGVjdG9yOjpJbnNwZWN0b3JP
YmplY3QmIHBvc2l0aW9uT2JqZWN0KQoreworICAgIGZsb2F0IHg7CisgICAgaWYgKCFwb3NpdGlv
bk9iamVjdC5nZXREb3VibGUoV1RGOjpBU0NJSUxpdGVyYWwoIngiKSwgeCkpCisgICAgICAgIEZB
SUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE1pc3NpbmdQYXJhbWV0ZXIsICJU
aGUgJ3gnIHBhcmFtZXRlciB3YXMgbm90IGZvdW5kIG9yIGludmFsaWQuIik7CisKKyAgICBmbG9h
dCB5OworICAgIGlmICghcG9zaXRpb25PYmplY3QuZ2V0RG91YmxlKFdURjo6QVNDSUlMaXRlcmFs
KCJ5IiksIHkpKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlM
UyhNaXNzaW5nUGFyYW1ldGVyLCAiVGhlICd5JyBwYXJhbWV0ZXIgd2FzIG5vdCBmb3VuZCBvciBp
bnZhbGlkLiIpOworCisgICAgaWYgKHggPCAwKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlICd4JyBwYXJhbWV0ZXIg
aGFkIGFuIGludmFsaWQgdmFsdWUuIik7CisKKyAgICBpZiAoeSA8IDApCisgICAgICAgIEZBSUxf
V0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUg
J3knIHBhcmFtZXRlciBoYWQgYW4gaW52YWxpZCB2YWx1ZS4iKTsKKworICAgIFdlYlBhZ2VQcm94
eSogcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShoYW5kbGUpOworICAgIGlmICghcGFnZSkK
KyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2luZG93Tm90Rm91bmQpOworCisg
ICAgV2ViQ29yZTo6RmxvYXRSZWN0IG9yaWdpbmFsRnJhbWU7CisgICAgcGFnZS0+Z2V0V2luZG93
RnJhbWUob3JpZ2luYWxGcmFtZSk7CisKKyAgICBXZWJDb3JlOjpGbG9hdFJlY3QgbmV3RnJhbWUg
PSBXZWJDb3JlOjpGbG9hdFJlY3QoV2ViQ29yZTo6RmxvYXRQb2ludCh4LCB5KSwgb3JpZ2luYWxG
cmFtZS5zaXplKCkpOworICAgIGlmIChuZXdGcmFtZSA9PSBvcmlnaW5hbEZyYW1lKQorICAgICAg
ICByZXR1cm47CisKKyAgICBwYWdlLT5zZXRXaW5kb3dGcmFtZShuZXdGcmFtZSk7CisKKyAgICAv
LyBJZiBub3RoaW5nIGNoYW5nZWQgYXQgYWxsLCBpdCdzIHByb2JhYmx5IGZhaXIgdG8gcmVwb3J0
IHRoYXQgc29tZXRoaW5nIHdlbnQgd3JvbmcuCisgICAgLy8gKFdlIGNhbid0IGFzc3VtZSB0aGF0
IHRoZSByZXF1ZXN0ZWQgZnJhbWUgc2l6ZSB3aWxsIGJlIGhvbm9yZWQgZXhhY3RseSwgaG93ZXZl
ci4pCisgICAgV2ViQ29yZTo6RmxvYXRSZWN0IHVwZGF0ZWRGcmFtZTsKKyAgICBwYWdlLT5nZXRX
aW5kb3dGcmFtZSh1cGRhdGVkRnJhbWUpOworICAgIGlmIChvcmlnaW5hbEZyYW1lID09IHVwZGF0
ZWRGcmFtZSkKKyAgICAgICAgRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
SW50ZXJuYWxFcnJvciwgIlRoZSB3aW5kb3cgcG9zaXRpb24gd2FzIGV4cGVjdGVkIHRvIGhhdmUg
Y2hhbmdlZCwgYnV0IGRpZCBub3QuIik7Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
Omluc3BlY3RCcm93c2luZ0NvbnRleHQoSW5zcGVjdG9yOjpFcnJvclN0cmluZyYgZXJyb3JTdHJp
bmcsIGNvbnN0IFN0cmluZyYgaGFuZGxlLCBjb25zdCBib29sKiBvcHRpb25hbEVuYWJsZUF1dG9D
YXB0dXJpbmcsIFJlZjxJbnNwZWN0QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYgY2FsbGJhY2sp
Cit7CisgICAgV2ViUGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGhhbmRs
ZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBGQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihX
aW5kb3dOb3RGb3VuZCk7CisKKyAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0luc3Bl
Y3RvckNhbGxiYWNrc1BlclBhZ2UudGFrZShwYWdlLT5wYWdlSUQoKSkpCisgICAgICAgIGNhbGxi
YWNrLT5zZW5kRmFpbHVyZShTVFJJTkdfRk9SX1BSRURFRklORURfRVJST1JfTkFNRShUaW1lb3V0
KSk7CisgICAgbV9wZW5kaW5nSW5zcGVjdG9yQ2FsbGJhY2tzUGVyUGFnZS5zZXQocGFnZS0+cGFn
ZUlEKCksIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIC8vIERvbid0IGJyaW5nIHRoZSBpbnNw
ZWN0b3IgdG8gZnJvbnQgc2luY2UgdGhpcyBtYXkgYmUgZG9uZSBhdXRvbWF0aWNhbGx5LgorICAg
IC8vIFdlIGp1c3Qgd2FudCBpdCBsb2FkZWQgc28gaXQgY2FuIHBhdXNlIGlmIGEgYnJlYWtwb2lu
dCBpcyBoaXQgZHVyaW5nIGEgY29tbWFuZC4KKyAgICBpZiAocGFnZS0+aW5zcGVjdG9yKCkpIHsK
KyAgICAgICAgcGFnZS0+aW5zcGVjdG9yKCktPmNvbm5lY3QoKTsKKworICAgICAgICAvLyBTdGFy
dCBjb2xsZWN0aW5nIHByb2ZpbGUgaW5mb3JtYXRpb24gaW1tZWRpYXRlbHkgc28gdGhlIGVudGly
ZSBzZXNzaW9uIGlzIGNhcHR1cmVkLgorICAgICAgICBpZiAob3B0aW9uYWxFbmFibGVBdXRvQ2Fw
dHVyaW5nICYmICpvcHRpb25hbEVuYWJsZUF1dG9DYXB0dXJpbmcpCisgICAgICAgICAgICBwYWdl
LT5pbnNwZWN0b3IoKS0+dG9nZ2xlUGFnZVByb2ZpbGluZygpOworICAgIH0KK30KKworI3ByYWdt
YSBtYXJrIEFwcEtpdCBFdmVudCBTaW11bGF0aW9uIFN1cHBvcnQKKworc3RhdGljIGNvbnN0IE5T
SW50ZWdlciBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50TnVtYmVyID0gMDsKK3N0YXRp
YyBjb25zdCB2b2lkICpzeW50aGVzaXplZEF1dG9tYXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RL
ZXkgPSAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5OworCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UoV2Vi
UGFnZVByb3h5JiBwYWdlLCBOU0FycmF5ICpldmVudHNUb1NlbmQpCit7CisgICAgTlNXaW5kb3cg
KndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKworICAgIGZvciAoTlNFdmVudCAqZXZl
bnQgaW4gZXZlbnRzVG9TZW5kKSB7CisgICAgICAgIC8vIFRha2UgZm9jdXMgYmFjayBpbiBjYXNl
IHRoZSBJbnNwZWN0b3IgYmVjYW1lIGZvY3VzZWQgd2hpbGUgdGhlIHByaW9yIGNvbW1hbmQgb3IK
KyAgICAgICAgLy8gTlNFdmVudCB3YXMgZGVsaXZlcmVkIHRvIHRoZSB3aW5kb3cuCisgICAgICAg
IFt3aW5kb3cgbWFrZUtleUFuZE9yZGVyRnJvbnQ6bmlsXTsKKworICAgICAgICBtYXJrRXZlbnRB
c1N5bnRoZXNpemVkRm9yQXV0b21hdGlvbihldmVudCk7CisgICAgICAgIFt3aW5kb3cgc2VuZEV2
ZW50OmV2ZW50XTsKKyAgICB9Cit9CisKK3ZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246Om1hcmtF
dmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9uKE5TRXZlbnQgKmV2ZW50KQoreworICAgIG9i
amNfc2V0QXNzb2NpYXRlZE9iamVjdChldmVudCwgJnN5bnRoZXNpemVkQXV0b21hdGlvbkV2ZW50
QXNzb2NpYXRlZE9iamVjdEtleSwgbV9zZXNzaW9uSWRlbnRpZmllciwgT0JKQ19BU1NPQ0lBVElP
Tl9SRVRBSU5fTk9OQVRPTUlDKTsKK30KKworYm9vbCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6d2Fz
RXZlbnRTeW50aGVzaXplZEZvckF1dG9tYXRpb24oTlNFdmVudCAqZXZlbnQpCit7CisgICAgTlNT
dHJpbmcgKnNlbmRlclNlc3Npb25JZGVudGlmaWVyID0gb2JqY19nZXRBc3NvY2lhdGVkT2JqZWN0
KGV2ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5KTsK
KyAgICBpZiAoW3NlbmRlclNlc3Npb25JZGVudGlmaWVyIGlzRXF1YWxUb1N0cmluZzptX3Nlc3Np
b25JZGVudGlmaWVyXSkKKyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBzd2l0Y2ggKGV2ZW50
LnR5cGUpIHsKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjoKKyAgICBjYXNlIE5T
RXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDoKKyAgICBjYXNlIE5TRXZlbnRUeXBlTGVmdE1vdXNl
VXA6CisgICAgY2FzZSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ6CisgICAgY2FzZSBOU0V2ZW50VHlw
ZU90aGVyTW91c2VEb3duOgorICAgIGNhc2UgTlNFdmVudFR5cGVPdGhlck1vdXNlRHJhZ2dlZDoK
KyAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOgorICAgIGNhc2UgTlNFdmVudFR5cGVS
aWdodE1vdXNlRG93bjoKKyAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRNb3VzZURyYWdnZWQ6Cisg
ICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VVcDoKKyAgICAgICAgLy8gVXNlIHRoaXMgYXMg
YSBiYWNrdXAgZm9yIGNoZWNraW5nIG1vdXNlIGV2ZW50cywgd2hpY2ggYXJlIGZyZXF1ZW50bHkg
Y29waWVkCisgICAgICAgIC8vIGFuZC9vciBmYWtlZCBieSBBcHBLaXQsIGNhdXNpbmcgdGhlbSB0
byBsb3NlIHRoZWlyIGFzc29jaWF0ZWQgb2JqZWN0IHRhZy4KKyAgICAgICAgcmV0dXJuIGV2ZW50
LmV2ZW50TnVtYmVyID09IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgYnJlYWs7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOwor
fQorCisjcHJhZ21hIG1hcmsgUGxhdGZvcm0tZGVwZW5kZW50IEltcGxlbWVudGF0aW9ucworCit2
b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlTW91c2VJbnRlcmFjdGlv
bihXZWJQYWdlUHJveHkmIHBhZ2UsIGNvbnN0IFdlYkNvcmU6OkludFBvaW50JiB2aWV3UG9zaXRp
b24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb24gaW50
ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uIGJ1
dHRvbiwgV2ViRXZlbnQ6Ok1vZGlmaWVycyBrZXlNb2RpZmllcnMpCit7CisgICAgSW50UmVjdCB3
aW5kb3dSZWN0OworICAgIHBhZ2Uucm9vdFZpZXdUb1dpbmRvdyhJbnRSZWN0KHZpZXdQb3NpdGlv
biwgSW50U2l6ZSgpKSwgd2luZG93UmVjdCk7CisgICAgSW50UG9pbnQgd2luZG93UG9zaXRpb24g
PSB3aW5kb3dSZWN0LmxvY2F0aW9uKCk7CisKKyAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2Rp
ZmllcnMgPSAwOworICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6TWV0YUtleSkKKyAg
ICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb21tYW5kOworICAgIGlmIChr
ZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6QWx0S2V5KQorICAgICAgICBtb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6
OkNvbnRyb2xLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29u
dHJvbDsKKyAgICBpZiAoa2V5TW9kaWZpZXJzICYgV2ViRXZlbnQ6OlNoaWZ0S2V5KQorICAgICAg
ICBtb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0OworICAgIGlmIChrZXlNb2Rp
ZmllcnMgJiBXZWJFdmVudDo6Q2Fwc0xvY2tLZXkpCisgICAgICAgIG1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnQ2Fwc0xvY2s7CisKKyAgICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAg
PSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07CisgICAgTlNXaW5kb3cg
KndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKyAgICBOU0ludGVnZXIgd2luZG93TnVt
YmVyID0gd2luZG93LndpbmRvd051bWJlcjsKKworICAgIE5TRXZlbnRUeXBlIGRvd25FdmVudFR5
cGU7CisgICAgTlNFdmVudFR5cGUgZHJhZ0V2ZW50VHlwZTsKKyAgICBOU0V2ZW50VHlwZSB1cEV2
ZW50VHlwZTsKKyAgICBzd2l0Y2ggKGJ1dHRvbikgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b246Ok5vbmU6CisgICAgICAgIGRvd25FdmVudFR5
cGUgPSB1cEV2ZW50VHlwZSA9IGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU1vdXNlTW92ZWQ7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6TW91c2VCdXR0b246OkxlZnQ6CisgICAgICAgIGRvd25FdmVudFR5cGUgPSBOU0V2ZW50VHlw
ZUxlZnRNb3VzZURvd247CisgICAgICAgIGRyYWdFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRN
b3VzZURyYWdnZWQ7CisgICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VV
cDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpNb3VzZUJ1dHRvbjo6TWlkZGxlOgorICAgICAgICBkb3duRXZlbnRUeXBlID0gTlNFdmVu
dFR5cGVPdGhlck1vdXNlRG93bjsKKyAgICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBl
TGVmdE1vdXNlRHJhZ2dlZDsKKyAgICAgICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZU90aGVy
TW91c2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6UmlnaHQ6CisgICAgICAgIGRvd25FdmVudFR5cGUgPSBO
U0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOworICAgICAgICB1cEV2ZW50VHlwZSA9IE5TRXZlbnRU
eXBlUmlnaHRNb3VzZVVwOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBhdXRvIGV2ZW50
c1RvQmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAg
ICBOU0ludGVnZXIgZXZlbnROdW1iZXIgPSBzeW50aGVzaXplZE1vdXNlRXZlbnRNYWdpY0V2ZW50
TnVtYmVyOworCisgICAgc3dpdGNoIChpbnRlcmFjdGlvbikgeworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6TW92ZToKKyAgICAgICAg
W2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZHJh
Z0V2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVy
cyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDowIHByZXNzdXJlOjAuMGZdXTsK
KyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpNb3VzZUludGVyYWN0aW9uOjpEb3duOgorICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNsaWNr
IGNvdW50IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBzaW11
bGF0ZWQKKyAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291bnRl
ZCBhcyBhIGRvdWJsZSBjbGljayBldmVudC4KKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9i
amVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3
aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1w
IHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnRO
dW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOworICAg
ICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1v
dXNlSW50ZXJhY3Rpb246OlVwOgorICAgICAgICAvLyBIYXJkLWNvZGUgdGhlIGNsaWNrIGNvdW50
IHRvIG9uZSwgc2luY2UgY2xpZW50cyBkb24ndCBleHBlY3Qgc3VjY2Vzc2l2ZSBzaW11bGF0ZWQK
KyAgICAgICAgLy8gZG93bi91cCBldmVudHMgdG8gYmUgcG90ZW50aWFsbHkgY291bnRlZCBhcyBh
IGRvdWJsZSBjbGljayBldmVudC4KKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9z
aXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dO
dW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNs
aWNrQ291bnQ6MSBwcmVzc3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6U2luZ2xlQ2xp
Y2s6CisgICAgICAgIC8vIFNlbmQgc2VwYXJhdGUgZG93biBhbmQgdXAgZXZlbnRzLiBXZWJDb3Jl
IHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sgZXZlbnQuCisgICAgICAgIFtldmVudHNU
b0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5
cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0
YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50
TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0
Q2xpY2tdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3Vz
ZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZp
ZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93
TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBw
cmVzc3VyZTowLjBmXV07CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6RG91YmxlQ2xpY2s6CisgICAgICAg
IC8vIFNlbmQgbXVsdGlwbGUgZG93biBhbmQgdXAgZXZlbnRzIHdpdGggcHJvcGVyIGNsaWNrIGNv
dW50LgorICAgICAgICAvLyBXZWJDb3JlIHdpbGwgc2VlIHRoaXMgYXMgYSBzaW5nbGUtY2xpY2sg
ZXZlbnQgdGhlbiBkb3VibGUtY2xpY2sgZXZlbnQuCisgICAgICAgIFtldmVudHNUb0JlU2VudCBh
ZGRPYmplY3Q6W05TRXZlbnQgbW91c2VFdmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRp
b246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVz
dGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2
ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsK
KyAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0
aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczpt
b2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNv
bnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MSBwcmVzc3VyZTow
LjBmXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQgbW91c2VF
dmVudFdpdGhUeXBlOmRvd25FdmVudFR5cGUgbG9jYXRpb246d2luZG93UG9zaXRpb24gbW9kaWZp
ZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93
TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2ZW50TnVtYmVyIGNsaWNrQ291bnQ6MiBw
cmVzc3VyZTpXZWJDb3JlOjpGb3JjZUF0Q2xpY2tdXTsKKyAgICAgICAgW2V2ZW50c1RvQmVTZW50
IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6dXBFdmVudFR5cGUgbG9jYXRp
b246d2luZG93UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVz
dGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGV2ZW50TnVtYmVyOmV2
ZW50TnVtYmVyIGNsaWNrQ291bnQ6MiBwcmVzc3VyZTowLjBmXV07CisgICAgfQorCisgICAgc2Vu
ZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKK30K
Kwordm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVN0cm9rZShX
ZWJQYWdlUHJveHkmIHBhZ2UsIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJv
YXJkSW50ZXJhY3Rpb25UeXBlIGludGVyYWN0aW9uLCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5IGtleSkKK3sKKyAgICAvLyBJZiB0cnVlLCB0aGUga2V5J3MgbW9k
aWZpZXIgZmxhZ3Mgc2hvdWxkIGFmZmVjdCBvdGhlciBldmVudHMgd2hpbGUgcHJlc3NlZCBkb3du
LgorICAgIGJvb2wgaXNTdGlja3lNb2RpZmllciA9IGZhbHNlOworICAgIC8vIFRoZSBtb2RpZmll
cnMgY2hhbmdlZCBieSB0aGUgdmlydHVhbCBrZXkgd2hlbiBpdCBpcyBwcmVzc2VkIG9yIHJlbGVh
c2VkLgorICAgIC8vIFRoZSBtYXBwaW5nIGZyb20ga2V5cyB0byBtb2RpZmllcnMgaXMgc3BlY2lm
aWVkIGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBOU0V2ZW50LgorICAgIE5TRXZlbnRNb2RpZmll
ckZsYWdzIGNoYW5nZWRNb2RpZmllcnMgPSAwOworICAgIC8vIFRoZSBsaWtlbHkga2V5Q29kZSBm
b3IgdGhlIHZpcnR1YWwga2V5IGFzIGRlZmluZWQgaW4gPEhJVG9vbGJveC9FdmVudHMuaD4uCisg
ICAgaW50IGtleUNvZGUgPSAwOworICAgIC8vIFR5cGljYWwgY2hhcmFjdGVycyBwcm9kdWNlZCBi
eSB0aGUgdmlydHVhbCBrZXksIGlmIGFueS4KKyAgICBOU1N0cmluZyAqY2hhcmFjdGVycyA9IEAi
IjsKKworICAgIC8vIEZJWE1FOiB0aGlzIGZ1bmN0aW9uIGFuZCB0aGUgQXV0b21hdGlvbiBwcm90
b2NvbCBlbnVtIHNob3VsZCBwcm9iYWJseSBhZG9wdCBrZXkgbmFtZXMKKyAgICAvLyBmcm9tIFcz
QyBVSUV2ZW50cyBzdGFuZGFyZC4gRm9yIG1vcmUgZGV0YWlsczogaHR0cHM6Ly93M2MuZ2l0aHVi
LmlvL3VpZXZlbnRzLWNvZGUvCisKKyAgICBzd2l0Y2ggKGtleSkgeworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6U2hpZnQ6CisgICAgICAgIGlz
U3RpY2t5TW9kaWZpZXIgPSB0cnVlOworICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdTaGlmdDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19TaGlmdDsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpDb250cm9sOgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29udHJvbDsKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19Db250cm9sOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3Bl
Y3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkFsdGVybmF0ZToKKyAgICAg
ICAgaXNTdGlja3lNb2RpZmllciA9IHRydWU7CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ09wdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19PcHRpb247
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6TWV0YToKKyAgICAgICAgLy8gVGhlICdtZXRhJyBrZXkgZG9lcyBub3Qg
ZXhpc3Qgb24gQXBwbGUga2V5Ym9hcmRzIGFuZCBpcyB1c3VhbGx5CisgICAgICAgIC8vIG1hcHBl
ZCB0byB0aGUgQ29tbWFuZCBrZXkgd2hlbiB1c2luZyB0aGlyZC1wYXJ0eSBrZXlib2FyZHMuCisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDb21t
YW5kOgorICAgICAgICBpc1N0aWNreU1vZGlmaWVyID0gdHJ1ZTsKKyAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnQ29tbWFuZDsKKyAgICAgICAga2V5Q29kZSA9
IGtWS19Db21tYW5kOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkhlbHA6CisgICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0hlbHAgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247CisgICAgICAgIGtleUNvZGUgPSBrVktfSGVscDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpCYWNrc3BhY2U6
CisgICAgICAgIGtleUNvZGUgPSBrVktfRGVsZXRlOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlRhYjoKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19UYWI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6Q2xlYXI6CisgICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtl
eUNvZGUgPSBrVktfQU5TSV9LZXlwYWRDbGVhcjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbnRlcjoKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZEVudGVyOworICAgICAgICBicmVhazsKKyAgICBj
YXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhdXNlOgor
ICAgICAgICAvLyBUaGUgJ3BhdXNlJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5Ym9h
cmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAgICAgICAgLy8gVGhlIHNlbWFudGljcyBhcmUgdW5j
bGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgorICAgICAgICByZXR1cm47CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpDYW5jZWw6
CisgICAgICAgIC8vIFRoZSAnY2FuY2VsJyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5
Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAgICAgICAgLy8gQWNjb3JkaW5nIHRvIHRoZSBp
bnRlcm5ldCBpdHMgZnVuY3Rpb25hbGl0eSBpcyBzaW1pbGFyIHRvICdFc2NhcGUnLgorICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RXNjYXBlOgor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0VzY2FwZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJ
bnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlVXA6CisgICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAg
ICAgICBrZXlDb2RlID0ga1ZLX1BhZ2VVcDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpQYWdlRG93bjoKKyAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAg
ICAgIGtleUNvZGUgPSBrVktfUGFnZURvd247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RW5kOgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAg
a2V5Q29kZSA9IGtWS19FbmQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6SG9tZToKKyAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUg
PSBrVktfSG9tZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpMZWZ0QXJyb3c6CisgICAgICAgIGNoYW5nZWRNb2Rp
ZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfTGVmdEFycm93OworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OlVwQXJyb3c6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtl
eUNvZGUgPSBrVktfVXBBcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpSaWdodEFycm93OgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVu
dE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX1JpZ2h0QXJyb3c7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6RG93bkFycm93OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5T
RXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkIHwgTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OworICAgICAgICBrZXlDb2RlID0ga1ZLX0Rvd25BcnJvdzsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpJbnNlcnQ6
CisgICAgICAgIC8vIFRoZSAnaW5zZXJ0JyBrZXkgZG9lcyBub3QgZXhpc3Qgb24gQXBwbGUga2V5
Ym9hcmRzIGFuZCBoYXMgbm8ga2V5Y29kZS4KKyAgICAgICAgLy8gVGhlIHNlbWFudGljcyBhcmUg
dW5jbGVhciBzbyBqdXN0IGFib3J0IGFuZCBkbyBub3RoaW5nLgorICAgICAgICByZXR1cm47Cisg
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEZWxl
dGU6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0
aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0ZvcndhcmREZWxldGU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
U3BhY2U6CisgICAgICAgIGtleUNvZGUgPSBrVktfU3BhY2U7CisgICAgICAgIGNoYXJhY3RlcnMg
PSBAIiAiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OlNlbWljb2xvbjoKKyAgICAgICAga2V5Q29kZSA9IGtWS19B
TlNJX1NlbWljb2xvbjsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiOyI7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RXF1YWxzOgorICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfRXF1YWw7CisgICAgICAgIGNoYXJh
Y3RlcnMgPSBAIj0iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlJldHVybjoKKyAgICAgICAga2V5Q29kZSA9IGtW
S19SZXR1cm47CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMDoKKyAgICAgICAgY2hhbmdlZE1vZGlm
aWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9
IGtWS19BTlNJX0tleXBhZDA7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjAiOworICAgICAgICBi
cmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6Ok51bWJlclBhZDE6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlm
aWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQxOwor
ICAgICAgICBjaGFyYWN0ZXJzID0gQCIxIjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQyOgorICAg
ICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwor
ICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMjsKKyAgICAgICAgY2hhcmFjdGVycyA9
IEAiMiI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMzoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtW
S19BTlNJX0tleXBhZDM7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjMiOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6
Ok51bWJlclBhZDQ6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVy
RmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ0OworICAg
ICAgICBjaGFyYWN0ZXJzID0gQCI0IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ1OgorICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAg
ICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNTsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAi
NSI7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8
PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19B
TlNJX0tleXBhZDY7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjYiOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51
bWJlclBhZDc6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWQ3OworICAgICAg
ICBjaGFyYWN0ZXJzID0gQCI3IjsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1iZXJQYWQ4OgorICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAgICAg
ICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkODsKKyAgICAgICAgY2hhcmFjdGVycyA9IEAiOCI7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6TnVtYmVyUGFkOToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJ
X0tleXBhZDk7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIjkiOworICAgICAgICBicmVhazsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJl
clBhZE11bHRpcGx5OgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTXVsdGlw
bHk7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIioiOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZEFk
ZDoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJp
Y1BhZDsKKyAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZFBsdXM7CisgICAgICAgIGNo
YXJhY3RlcnMgPSBAIisiOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFN1YnRyYWN0OgorICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOworICAg
ICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkTWludXM7CisgICAgICAgIGNoYXJhY3RlcnMg
PSBAIi0iOworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZFNlcGFyYXRvcjoKKyAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKKyAgICAgICAgLy8g
VGhlICdTZXBhcmF0b3InIGtleSBpcyBvbmx5IHByZXNlbnQgb24gYSBmZXcgaW50ZXJuYXRpb25h
bCBrZXlib2FyZHMuCisgICAgICAgIC8vIEl0IGlzIHVzdWFsbHkgbWFwcGVkIHRvIHRoZSBzYW1l
IGNoYXJhY3RlciBhcyBEZWNpbWFsICgnLicgb3IgJywnKS4KKyAgICAgICAgRkFMTFRIUk9VR0g7
CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWREZWNpbWFsOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkOworICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkRGVj
aW1hbDsKKyAgICAgICAgLy8gRklYTUU6IHRoaXMgbWlnaHQgYmUgbG9jYWxlLWRlcGVuZGVudC4g
U2VlIHRoZSBhYm92ZSBjb21tZW50LgorICAgICAgICBjaGFyYWN0ZXJzID0gQCIuIjsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpOdW1iZXJQYWREaXZpZGU6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNF
dmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7CisgICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9L
ZXlwYWREaXZpZGU7CisgICAgICAgIGNoYXJhY3RlcnMgPSBAIi8iOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1
bmN0aW9uMToKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
RnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjE7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rp
b24yOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5j
dGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMjsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjM6
CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9u
OworICAgICAgICBrZXlDb2RlID0ga1ZLX0YzOworICAgICAgICBicmVhazsKKyAgICBjYXNlIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNDoKKyAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Cisg
ICAgICAgIGtleUNvZGUgPSBrVktfRjQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb241OgorICAgICAg
ICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAg
ICAga2V5Q29kZSA9IGtWS19GNTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6
OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjY6CisgICAgICAgIGNo
YW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBr
ZXlDb2RlID0ga1ZLX0Y2OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNzoKKyAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNv
ZGUgPSBrVktfRjc7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb244OgorICAgICAgICBjaGFuZ2VkTW9k
aWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9
IGtWS19GODsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjk6CisgICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZL
X0Y5OworICAgICAgICBicmVhazsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMTA6CisgICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOworICAgICAgICBrZXlDb2RlID0ga1ZLX0Yx
MDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjExOgorICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9
IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKKyAgICAgICAga2V5Q29kZSA9IGtWS19GMTE7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEtleTo6RnVuY3Rpb24xMjoKKyAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247CisgICAgICAgIGtleUNvZGUgPSBrVktfRjEyOwor
ICAgICAgICBicmVhazsKKyAgICB9CisKKyAgICBhdXRvIGV2ZW50c1RvQmVTZW50ID0gYWRvcHRO
UyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICBBU1NFUlQoaXNTdGlja3lN
b2RpZmllciB8fCBpbnRlcmFjdGlvbiA9PSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3MpOworCisgICAgTlNFdmVudE1vZGlm
aWVyRmxhZ3MgZXhpc3RpbmdNb2RpZmllcnMgPSBbTlNFdmVudCBtb2RpZmllckZsYWdzXTsKKyAg
ICBOU0V2ZW50TW9kaWZpZXJGbGFncyB1cGRhdGVkTW9kaWZpZXJzID0gMDsKKyAgICBOU1RpbWVJ
bnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNEYXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0
ZV07CisgICAgTlNXaW5kb3cgKndpbmRvdyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKKyAgICBO
U0ludGVnZXIgd2luZG93TnVtYmVyID0gd2luZG93LndpbmRvd051bWJlcjsKKyAgICBOU1BvaW50
IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQb2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQp
OworCisgICAgc3dpdGNoIChpbnRlcmFjdGlvbikgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6OktleVByZXNzOiB7Cisg
ICAgICAgIE5TRXZlbnRUeXBlIGV2ZW50VHlwZSA9IGlzU3RpY2t5TW9kaWZpZXIgPyBOU0V2ZW50
VHlwZUZsYWdzQ2hhbmdlZCA6IE5TRXZlbnRUeXBlS2V5RG93bjsKKyAgICAgICAgdXBkYXRlZE1v
ZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsKKyAgICAgICAg
W2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOmV2ZW50
VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1vZGlmaWVy
cyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpjaGFy
YWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgfQorICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJ
bnRlcmFjdGlvblR5cGU6OktleVJlbGVhc2U6IHsKKyAgICAgICAgTlNFdmVudFR5cGUgZXZlbnRU
eXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDogTlNFdmVu
dFR5cGVLZXlVcDsKKyAgICAgICAgdXBkYXRlZE1vZGlmaWVycyA9IGV4aXN0aW5nTW9kaWZpZXJz
ICYgfmNoYW5nZWRNb2RpZmllcnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6
W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpldmVudFR5cGUgbG9jYXRpb246ZXZlbnRQb3NpdGlv
biBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5k
b3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBj
aGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29k
ZTprZXlDb2RlXV07CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rpb25UeXBlOjpJbnNlcnRCeUtl
eTogeworICAgICAgICAvLyBTdGlja3kgbW9kaWZpZXJzIHNob3VsZCBlaXRoZXIgYmUgJ0tleVBy
ZXNzJyBvciAnS2V5UmVsZWFzZScuCisgICAgICAgIEFTU0VSVCghaXNTdGlja3lNb2RpZmllcik7
CisgICAgICAgIGlmIChpc1N0aWNreU1vZGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuOworCisg
ICAgICAgIHVwZGF0ZWRNb2RpZmllcnMgPSBleGlzdGluZ01vZGlmaWVycyB8IGNoYW5nZWRNb2Rp
ZmllcnM7CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2Rp
ZmllckZsYWdzOnVwZGF0ZWRNb2RpZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1i
ZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0
ZXJzSWdub3JpbmdNb2RpZmllcnM6Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlD
b2RlXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZl
bnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZp
ZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVy
OndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJhY3RlcnMgY2hhcmFjdGVy
c0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5PIGtleUNvZGU6a2V5Q29k
ZV1dOworICAgICAgICBicmVhazsKKyAgICB9CisgICAgfQorCisgICAgc2VuZFN5bnRoZXNpemVk
RXZlbnRzVG9QYWdlKHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKK30KKwordm9pZCBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZUtleVNlcXVlbmNlKFdlYlBhZ2VQcm94
eSYgcGFnZSwgY29uc3QgU3RyaW5nJiBrZXlTZXF1ZW5jZSkKK3sKKyAgICBhdXRvIGV2ZW50c1Rv
QmVTZW50ID0gYWRvcHROUyhbW05TTXV0YWJsZUFycmF5IGFsbG9jXSBpbml0XSk7CisKKyAgICAv
LyBTcGxpdCB0aGUgdGV4dCBpbnRvIGNvbWJpbmluZyBjaGFyYWN0ZXIgc2VxdWVuY2VzIGFuZCBz
ZW5kIGVhY2ggc2VwYXJhdGVseS4KKyAgICAvLyBUaGlzIGhhcyBubyBzaW1pbGFyaXR5IHRvIGhv
dyBrZXlib2FyZHMgd29yayB3aGVuIGlucHV0dGluZyBjb21wbGV4IHRleHQuCisgICAgLy8gVGhp
cyBjb21tYW5kIGlzIG1vcmUgc2ltaWxhciB0byB0aGUgJ2luc2VydFRleHQ6JyBlZGl0aW5nIGNv
bW1hbmQsIGV4Y2VwdAorICAgIC8vIHRoYXQgdGhpcyBlbWl0cyBrZXl1cC9rZXlkb3duL2tleXBy
ZXNzIGV2ZW50cyBmb3Igcm91Z2hseSBlYWNoIGNoYXJhY3Rlci4KKyAgICAvLyBUaGlzIEFQSSBz
aG91bGQgbW92ZSBtb3JlIHRvd2FyZHMgdGhhdCBkaXJlY3Rpb24gaW4gdGhlIGZ1dHVyZS4KKyAg
ICBOU1N0cmluZyAqdGV4dCA9IGtleVNlcXVlbmNlOworCisgICAgTlNFdmVudE1vZGlmaWVyRmxh
Z3MgbW9kaWZpZXJzID0gW05TRXZlbnQgbW9kaWZpZXJGbGFnc107CisgICAgTlNUaW1lSW50ZXJ2
YWwgdGltZXN0YW1wID0gW05TRGF0ZSB0aW1lSW50ZXJ2YWxTaW5jZVJlZmVyZW5jZURhdGVdOwor
ICAgIE5TV2luZG93ICp3aW5kb3cgPSBwYWdlLnBsYXRmb3JtV2luZG93KCk7CisgICAgTlNJbnRl
Z2VyIHdpbmRvd051bWJlciA9IHdpbmRvdy53aW5kb3dOdW1iZXI7CisgICAgTlNQb2ludCBldmVu
dFBvc2l0aW9uID0gTlNNYWtlUG9pbnQoMCwgd2luZG93LmZyYW1lLnNpemUuaGVpZ2h0KTsKKwor
ICAgIFt0ZXh0IGVudW1lcmF0ZVN1YnN0cmluZ3NJblJhbmdlOk5TTWFrZVJhbmdlKDAsIHRleHQu
bGVuZ3RoKSBvcHRpb25zOk5TU3RyaW5nRW51bWVyYXRpb25CeUNvbXBvc2VkQ2hhcmFjdGVyU2Vx
dWVuY2VzIHVzaW5nQmxvY2s6XihOU1N0cmluZyAqc3Vic3RyaW5nLCBOU1JhbmdlIHN1YnN0cmlu
Z1JhbmdlLCBOU1JhbmdlIGVuY2xvc2luZ1JhbmdlLCBCT09MICpzdG9wKSB7CisgICAgICAgIFtl
dmVudHNUb0JlU2VudCBhZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50
VHlwZUtleURvd24gbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVy
cyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpu
aWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOnN1YnN0
cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07CisgICAgICAgIFtldmVudHNUb0JlU2VudCBh
ZGRPYmplY3Q6W05TRXZlbnQga2V5RXZlbnRXaXRoVHlwZTpOU0V2ZW50VHlwZUtleVVwIGxvY2F0
aW9uOmV2ZW50UG9zaXRpb24gbW9kaWZpZXJGbGFnczptb2RpZmllcnMgdGltZXN0YW1wOnRpbWVz
dGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRleHQ6bmlsIGNoYXJhY3RlcnM6c3Vi
c3RyaW5nIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVyczpzdWJzdHJpbmcgaXNBUmVwZWF0Ok5P
IGtleUNvZGU6MF1dOworICAgIH1dOworCisgICAgc2VuZFN5bnRoZXNpemVkRXZlbnRzVG9QYWdl
KHBhZ2UsIGV2ZW50c1RvQmVTZW50LmdldCgpKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CisKKyNlbmRpZiAvLyBQTEFURk9STShNQUMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMjFkOGYwODU5NGY1OTRmZThiZjNlNTZhNDVhMThiMmNj
NDQ1ZDFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9XZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1t
CisrKyAvZGV2L251bGwKQEAgLTEsNTA5ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MTYgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW1wb3J0ICJj
b25maWcuaCIKLSNpbXBvcnQgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCi0KLSNpbXBvcnQgIldl
YlBhZ2VQcm94eS5oIgotI2ltcG9ydCAiX1dLQXV0b21hdGlvblNlc3Npb24uaCIKLSNpbXBvcnQg
PFdlYkNvcmUvSW50UG9pbnQuaD4KLSNpbXBvcnQgPFdlYkNvcmUvSW50U2l6ZS5oPgotI2ltcG9y
dCA8V2ViQ29yZS9QbGF0Zm9ybU1vdXNlRXZlbnQuaD4KLSNpbXBvcnQgPG9iamMvcnVudGltZS5o
PgotCi0jaWYgVVNFKEFQUEtJVCkKLSNpbXBvcnQgPEhJVG9vbGJveC9FdmVudHMuaD4KLSNlbmRp
ZgotCi11c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLSNp
ZiBVU0UoQVBQS0lUKQotCi1zdGF0aWMgY29uc3QgTlNJbnRlZ2VyIHN5bnRoZXNpemVkTW91c2VF
dmVudE1hZ2ljRXZlbnROdW1iZXIgPSAwOwotc3RhdGljIGNvbnN0IHZvaWQgKnN5bnRoZXNpemVk
QXV0b21hdGlvbkV2ZW50QXNzb2NpYXRlZE9iamVjdEtleSA9ICZzeW50aGVzaXplZEF1dG9tYXRp
b25FdmVudEFzc29jaWF0ZWRPYmplY3RLZXk7Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNlc3Npb246
OnNlbmRTeW50aGVzaXplZEV2ZW50c1RvUGFnZShXZWJQYWdlUHJveHkmIHBhZ2UsIE5TQXJyYXkg
KmV2ZW50c1RvU2VuZCkKLXsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0Zm9ybVdp
bmRvdygpOwotCi0gICAgZm9yIChOU0V2ZW50ICpldmVudCBpbiBldmVudHNUb1NlbmQpIHsKLSAg
ICAgICAgLy8gVGFrZSBmb2N1cyBiYWNrIGluIGNhc2UgdGhlIEluc3BlY3RvciBiZWNhbWUgZm9j
dXNlZCB3aGlsZSB0aGUgcHJpb3IgY29tbWFuZCBvcgotICAgICAgICAvLyBOU0V2ZW50IHdhcyBk
ZWxpdmVyZWQgdG8gdGhlIHdpbmRvdy4KLSAgICAgICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJG
cm9udDpuaWxdOwotCi0gICAgICAgIG1hcmtFdmVudEFzU3ludGhlc2l6ZWRGb3JBdXRvbWF0aW9u
KGV2ZW50KTsKLSAgICAgICAgW3dpbmRvdyBzZW5kRXZlbnQ6ZXZlbnRdOwotICAgIH0KLX0KLQot
dm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6bWFya0V2ZW50QXNTeW50aGVzaXplZEZvckF1dG9t
YXRpb24oTlNFdmVudCAqZXZlbnQpCi17Ci0gICAgb2JqY19zZXRBc3NvY2lhdGVkT2JqZWN0KGV2
ZW50LCAmc3ludGhlc2l6ZWRBdXRvbWF0aW9uRXZlbnRBc3NvY2lhdGVkT2JqZWN0S2V5LCBtX3Nl
c3Npb25JZGVudGlmaWVyLCBPQkpDX0FTU09DSUFUSU9OX1JFVEFJTl9OT05BVE9NSUMpOwotfQot
Ci1ib29sIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp3YXNFdmVudFN5bnRoZXNpemVkRm9yQXV0b21h
dGlvbihOU0V2ZW50ICpldmVudCkKLXsKLSAgICBOU1N0cmluZyAqc2VuZGVyU2Vzc2lvbklkZW50
aWZpZXIgPSBvYmpjX2dldEFzc29jaWF0ZWRPYmplY3QoZXZlbnQsICZzeW50aGVzaXplZEF1dG9t
YXRpb25FdmVudEFzc29jaWF0ZWRPYmplY3RLZXkpOwotICAgIGlmIChbc2VuZGVyU2Vzc2lvbklk
ZW50aWZpZXIgaXNFcXVhbFRvU3RyaW5nOm1fc2Vzc2lvbklkZW50aWZpZXJdKQotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLQotICAgIHN3aXRjaCAoZXZlbnQudHlwZSkgewotICAgIGNhc2UgTlNFdmVu
dFR5cGVMZWZ0TW91c2VEb3duOgotICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2Vk
OgotICAgIGNhc2UgTlNFdmVudFR5cGVMZWZ0TW91c2VVcDoKLSAgICBjYXNlIE5TRXZlbnRUeXBl
TW91c2VNb3ZlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlT3RoZXJNb3VzZURvd246Ci0gICAgY2Fz
ZSBOU0V2ZW50VHlwZU90aGVyTW91c2VEcmFnZ2VkOgotICAgIGNhc2UgTlNFdmVudFR5cGVPdGhl
ck1vdXNlVXA6Ci0gICAgY2FzZSBOU0V2ZW50VHlwZVJpZ2h0TW91c2VEb3duOgotICAgIGNhc2Ug
TlNFdmVudFR5cGVSaWdodE1vdXNlRHJhZ2dlZDoKLSAgICBjYXNlIE5TRXZlbnRUeXBlUmlnaHRN
b3VzZVVwOgotICAgICAgICAvLyBVc2UgdGhpcyBhcyBhIGJhY2t1cCBmb3IgY2hlY2tpbmcgbW91
c2UgZXZlbnRzLCB3aGljaCBhcmUgZnJlcXVlbnRseSBjb3BpZWQKLSAgICAgICAgLy8gYW5kL29y
IGZha2VkIGJ5IEFwcEtpdCwgY2F1c2luZyB0aGVtIHRvIGxvc2UgdGhlaXIgYXNzb2NpYXRlZCBv
YmplY3QgdGFnLgotICAgICAgICByZXR1cm4gZXZlbnQuZXZlbnROdW1iZXIgPT0gc3ludGhlc2l6
ZWRNb3VzZUV2ZW50TWFnaWNFdmVudE51bWJlcjsKLSAgICBkZWZhdWx0OgotICAgICAgICBicmVh
azsKLSAgICB9Ci0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnBsYXRmb3JtU2ltdWxhdGVNb3VzZUludGVyYWN0aW9uKFdlYlBhZ2VQcm94eSYgcGFn
ZSwgY29uc3QgV2ViQ29yZTo6SW50UG9pbnQmIHZpZXdQb3NpdGlvbiwgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbiBpbnRlcmFjdGlvbiwgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VCdXR0b24gYnV0dG9uLCBXZWJFdmVudDo6TW9k
aWZpZXJzIGtleU1vZGlmaWVycykKLXsKLSAgICBJbnRSZWN0IHdpbmRvd1JlY3Q7Ci0gICAgcGFn
ZS5yb290Vmlld1RvV2luZG93KEludFJlY3Qodmlld1Bvc2l0aW9uLCBJbnRTaXplKCkpLCB3aW5k
b3dSZWN0KTsKLSAgICBJbnRQb2ludCB3aW5kb3dQb3NpdGlvbiA9IHdpbmRvd1JlY3QubG9jYXRp
b24oKTsKLQotICAgIE5TRXZlbnRNb2RpZmllckZsYWdzIG1vZGlmaWVycyA9IDA7Ci0gICAgaWYg
KGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpNZXRhS2V5KQotICAgICAgICBtb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0NvbW1hbmQ7Ci0gICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2
ZW50OjpBbHRLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnT3B0
aW9uOwotICAgIGlmIChrZXlNb2RpZmllcnMgJiBXZWJFdmVudDo6Q29udHJvbEtleSkKLSAgICAg
ICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwotICAgIGlmIChrZXlN
b2RpZmllcnMgJiBXZWJFdmVudDo6U2hpZnRLZXkpCi0gICAgICAgIG1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnU2hpZnQ7Ci0gICAgaWYgKGtleU1vZGlmaWVycyAmIFdlYkV2ZW50OjpD
YXBzTG9ja0tleSkKLSAgICAgICAgbW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdDYXBz
TG9jazsKLQotICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9IFtOU0RhdGUgdGltZUludGVy
dmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKLSAgICBOU1dpbmRvdyAqd2luZG93ID0gcGFnZS5wbGF0
Zm9ybVdpbmRvdygpOwotICAgIE5TSW50ZWdlciB3aW5kb3dOdW1iZXIgPSB3aW5kb3cud2luZG93
TnVtYmVyOwotCi0gICAgTlNFdmVudFR5cGUgZG93bkV2ZW50VHlwZTsKLSAgICBOU0V2ZW50VHlw
ZSBkcmFnRXZlbnRUeXBlOwotICAgIE5TRXZlbnRUeXBlIHVwRXZlbnRUeXBlOwotICAgIHN3aXRj
aCAoYnV0dG9uKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpN
b3VzZUJ1dHRvbjo6Tm9uZToKLSAgICAgICAgZG93bkV2ZW50VHlwZSA9IHVwRXZlbnRUeXBlID0g
ZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTW91c2VNb3ZlZDsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpNb3VzZUJ1dHRvbjo6TGVm
dDoKLSAgICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRG93bjsKLSAg
ICAgICAgZHJhZ0V2ZW50VHlwZSA9IE5TRXZlbnRUeXBlTGVmdE1vdXNlRHJhZ2dlZDsKLSAgICAg
ICAgdXBFdmVudFR5cGUgPSBOU0V2ZW50VHlwZUxlZnRNb3VzZVVwOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0dG9uOjpN
aWRkbGU6Ci0gICAgICAgIGRvd25FdmVudFR5cGUgPSBOU0V2ZW50VHlwZU90aGVyTW91c2VEb3du
OwotICAgICAgICBkcmFnRXZlbnRUeXBlID0gTlNFdmVudFR5cGVMZWZ0TW91c2VEcmFnZ2VkOwot
ICAgICAgICB1cEV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlT3RoZXJNb3VzZVVwOwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlQnV0
dG9uOjpSaWdodDoKLSAgICAgICAgZG93bkV2ZW50VHlwZSA9IE5TRXZlbnRUeXBlUmlnaHRNb3Vz
ZURvd247Ci0gICAgICAgIHVwRXZlbnRUeXBlID0gTlNFdmVudFR5cGVSaWdodE1vdXNlVXA7Ci0g
ICAgICAgIGJyZWFrOwotICAgIH0KLQotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5T
KFtbTlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLQotICAgIE5TSW50ZWdlciBldmVudE51
bWJlciA9IHN5bnRoZXNpemVkTW91c2VFdmVudE1hZ2ljRXZlbnROdW1iZXI7Ci0KLSAgICBzd2l0
Y2ggKGludGVyYWN0aW9uKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpNb3VzZUludGVyYWN0aW9uOjpNb3ZlOgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTpkcmFnRXZlbnRUeXBlIGxvY2F0aW9u
OndpbmRvd1Bvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3Rh
bXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVu
dE51bWJlciBjbGlja0NvdW50OjAgcHJlc3N1cmU6MC4wZl1dOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246Ok1vdXNlSW50ZXJhY3Rpb246
OkRvd246Ci0gICAgICAgIC8vIEhhcmQtY29kZSB0aGUgY2xpY2sgY291bnQgdG8gb25lLCBzaW5j
ZSBjbGllbnRzIGRvbid0IGV4cGVjdCBzdWNjZXNzaXZlIHNpbXVsYXRlZAotICAgICAgICAvLyBk
b3duL3VwIGV2ZW50cyB0byBiZSBwb3RlbnRpYWxseSBjb3VudGVkIGFzIGEgZG91YmxlIGNsaWNr
IGV2ZW50LgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNl
RXZlbnRXaXRoVHlwZTpkb3duRXZlbnRUeXBlIGxvY2F0aW9uOndpbmRvd1Bvc2l0aW9uIG1vZGlm
aWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3RhbXAgd2luZG93TnVtYmVyOndpbmRv
d051bWJlciBjb250ZXh0Om5pbCBldmVudE51bWJlcjpldmVudE51bWJlciBjbGlja0NvdW50OjEg
cHJlc3N1cmU6V2ViQ29yZTo6Rm9yY2VBdENsaWNrXV07Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6TW91c2VJbnRlcmFjdGlvbjo6VXA6
Ci0gICAgICAgIC8vIEhhcmQtY29kZSB0aGUgY2xpY2sgY291bnQgdG8gb25lLCBzaW5jZSBjbGll
bnRzIGRvbid0IGV4cGVjdCBzdWNjZXNzaXZlIHNpbXVsYXRlZAotICAgICAgICAvLyBkb3duL3Vw
IGV2ZW50cyB0byBiZSBwb3RlbnRpYWxseSBjb3VudGVkIGFzIGEgZG91YmxlIGNsaWNrIGV2ZW50
LgotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRX
aXRoVHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdz
Om1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIg
Y29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJl
OjAuMGZdXTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpNb3VzZUludGVyYWN0aW9uOjpTaW5nbGVDbGljazoKLSAgICAgICAgLy8gU2Vu
ZCBzZXBhcmF0ZSBkb3duIGFuZCB1cCBldmVudHMuIFdlYkNvcmUgd2lsbCBzZWUgdGhpcyBhcyBh
IHNpbmdsZS1jbGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpb
TlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQ
b3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRv
d051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIg
Y2xpY2tDb3VudDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOwotICAgICAgICBb
ZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2
ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0
aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
ZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOjAuMGZdXTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpN
b3VzZUludGVyYWN0aW9uOjpEb3VibGVDbGljazoKLSAgICAgICAgLy8gU2VuZCBtdWx0aXBsZSBk
b3duIGFuZCB1cCBldmVudHMgd2l0aCBwcm9wZXIgY2xpY2sgY291bnQuCi0gICAgICAgIC8vIFdl
YkNvcmUgd2lsbCBzZWUgdGhpcyBhcyBhIHNpbmdsZS1jbGljayBldmVudCB0aGVuIGRvdWJsZS1j
bGljayBldmVudC4KLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBt
b3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBt
b2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3
aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3Vu
dDoxIHByZXNzdXJlOldlYkNvcmU6OkZvcmNlQXRDbGlja11dOwotICAgICAgICBbZXZlbnRzVG9C
ZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBs
b2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6
dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1i
ZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoxIHByZXNzdXJlOjAuMGZdXTsKLSAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBtb3VzZUV2ZW50V2l0aFR5cGU6ZG93bkV2
ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBtb2RpZmllckZsYWdzOm1vZGlmaWVycyB0
aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29udGV4dDpuaWwg
ZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3VudDoyIHByZXNzdXJlOldlYkNvcmU6OkZv
cmNlQXRDbGlja11dOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRkT2JqZWN0OltOU0V2ZW50
IG1vdXNlRXZlbnRXaXRoVHlwZTp1cEV2ZW50VHlwZSBsb2NhdGlvbjp3aW5kb3dQb3NpdGlvbiBt
b2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3
aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgZXZlbnROdW1iZXI6ZXZlbnROdW1iZXIgY2xpY2tDb3Vu
dDoyIHByZXNzdXJlOjAuMGZdXTsKLSAgICB9Ci0KLSAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNU
b1BhZ2UocGFnZSwgZXZlbnRzVG9CZVNlbnQuZ2V0KCkpOwotfQotCi12b2lkIFdlYkF1dG9tYXRp
b25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlS2V5U3Ryb2tlKFdlYlBhZ2VQcm94eSYgcGFnZSwg
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGUg
aW50ZXJhY3Rpb24sIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXkg
a2V5KQotewotICAgIC8vIElmIHRydWUsIHRoZSBrZXkncyBtb2RpZmllciBmbGFncyBzaG91bGQg
YWZmZWN0IG90aGVyIGV2ZW50cyB3aGlsZSBwcmVzc2VkIGRvd24uCi0gICAgYm9vbCBpc1N0aWNr
eU1vZGlmaWVyID0gZmFsc2U7Ci0gICAgLy8gVGhlIG1vZGlmaWVycyBjaGFuZ2VkIGJ5IHRoZSB2
aXJ0dWFsIGtleSB3aGVuIGl0IGlzIHByZXNzZWQgb3IgcmVsZWFzZWQuCi0gICAgLy8gVGhlIG1h
cHBpbmcgZnJvbSBrZXlzIHRvIG1vZGlmaWVycyBpcyBzcGVjaWZpZWQgaW4gdGhlIGRvY3VtZW50
YXRpb24gZm9yIE5TRXZlbnQuCi0gICAgTlNFdmVudE1vZGlmaWVyRmxhZ3MgY2hhbmdlZE1vZGlm
aWVycyA9IDA7Ci0gICAgLy8gVGhlIGxpa2VseSBrZXlDb2RlIGZvciB0aGUgdmlydHVhbCBrZXkg
YXMgZGVmaW5lZCBpbiA8SElUb29sYm94L0V2ZW50cy5oPi4KLSAgICBpbnQga2V5Q29kZSA9IDA7
Ci0gICAgLy8gVHlwaWNhbCBjaGFyYWN0ZXJzIHByb2R1Y2VkIGJ5IHRoZSB2aXJ0dWFsIGtleSwg
aWYgYW55LgotICAgIE5TU3RyaW5nICpjaGFyYWN0ZXJzID0gQCIiOwotCi0gICAgLy8gRklYTUU6
IHRoaXMgZnVuY3Rpb24gYW5kIHRoZSBBdXRvbWF0aW9uIHByb3RvY29sIGVudW0gc2hvdWxkIHBy
b2JhYmx5IGFkb3B0IGtleSBuYW1lcwotICAgIC8vIGZyb20gVzNDIFVJRXZlbnRzIHN0YW5kYXJk
LiBGb3IgbW9yZSBkZXRhaWxzOiBodHRwczovL3czYy5naXRodWIuaW8vdWlldmVudHMtY29kZS8K
LQotICAgIHN3aXRjaCAoa2V5KSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpTaGlmdDoKLSAgICAgICAgaXNTdGlja3lNb2RpZmllciA9IHRy
dWU7Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ1NoaWZ0
OwotICAgICAgICBrZXlDb2RlID0ga1ZLX1NoaWZ0OwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbnRyb2w6Ci0g
ICAgICAgIGlzU3RpY2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdDb250cm9sOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Nv
bnRyb2w7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0
b21hdGlvbjo6VmlydHVhbEtleTo6QWx0ZXJuYXRlOgotICAgICAgICBpc1N0aWNreU1vZGlmaWVy
ID0gdHJ1ZTsKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFn
T3B0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX09wdGlvbjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpNZXRh
OgotICAgICAgICAvLyBUaGUgJ21ldGEnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXli
b2FyZHMgYW5kIGlzIHVzdWFsbHkKLSAgICAgICAgLy8gbWFwcGVkIHRvIHRoZSBDb21tYW5kIGtl
eSB3aGVuIHVzaW5nIHRoaXJkLXBhcnR5IGtleWJvYXJkcy4KLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNvbW1hbmQ6Ci0gICAgICAgIGlzU3Rp
Y2t5TW9kaWZpZXIgPSB0cnVlOwotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdDb21tYW5kOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0NvbW1hbmQ7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6SGVscDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnSGVscCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29k
ZSA9IGtWS19IZWxwOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkJhY2tzcGFjZToKLSAgICAgICAga2V5Q29kZSA9
IGtWS19EZWxldGU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VGFiOgotICAgICAgICBrZXlDb2RlID0ga1ZLX1Rh
YjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0
aW9uOjpWaXJ0dWFsS2V5OjpDbGVhcjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2
ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tl
eXBhZENsZWFyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkVudGVyOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FO
U0lfS2V5cGFkRW50ZXI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90
b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6UGF1c2U6Ci0gICAgICAgIC8vIFRoZSAncGF1
c2UnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBrZXlj
b2RlLgotICAgICAgICAvLyBUaGUgc2VtYW50aWNzIGFyZSB1bmNsZWFyIHNvIGp1c3QgYWJvcnQg
YW5kIGRvIG5vdGhpbmcuCi0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkNhbmNlbDoKLSAgICAgICAgLy8gVGhlICdj
YW5jZWwnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBr
ZXljb2RlLgotICAgICAgICAvLyBBY2NvcmRpbmcgdG8gdGhlIGludGVybmV0IGl0cyBmdW5jdGlv
bmFsaXR5IGlzIHNpbWlsYXIgdG8gJ0VzY2FwZScuCi0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3Rv
Y29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFc2NhcGU6Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfRXNjYXBlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VVcDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVy
cyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktf
UGFnZVVwOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6OlBhZ2VEb3duOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJz
IHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Q
YWdlRG93bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpB
dXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFbmQ6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0VuZDsK
LSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
OjpWaXJ0dWFsS2V5OjpIb21lOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRN
b2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19Ib21lOwotICAgICAg
ICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1
YWxLZXk6OkxlZnRBcnJvdzoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9k
aWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19MZWZ0QXJyb3c7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6VXBBcnJvdzoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZCB8IE5T
RXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19VcEFycm93
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OlJpZ2h0QXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rp
b247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfUmlnaHRBcnJvdzsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpEb3du
QXJyb3c6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051
bWVyaWNQYWQgfCBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfRG93bkFycm93OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Okluc2VydDoKLSAgICAgICAgLy8gVGhlICdp
bnNlcnQnIGtleSBkb2VzIG5vdCBleGlzdCBvbiBBcHBsZSBrZXlib2FyZHMgYW5kIGhhcyBubyBr
ZXljb2RlLgotICAgICAgICAvLyBUaGUgc2VtYW50aWNzIGFyZSB1bmNsZWFyIHNvIGp1c3QgYWJv
cnQgYW5kIGRvIG5vdGhpbmcuCi0gICAgICAgIHJldHVybjsKLSAgICBjYXNlIEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkRlbGV0ZToKLSAgICAgICAgY2hhbmdl
ZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNv
ZGUgPSBrVktfRm9yd2FyZERlbGV0ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpTcGFjZToKLSAgICAgICAga2V5
Q29kZSA9IGtWS19TcGFjZTsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiICI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6U2VtaWNvbG9uOgotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfU2VtaWNvbG9uOwotICAg
ICAgICBjaGFyYWN0ZXJzID0gQCI7IjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpFcXVhbHM6Ci0gICAgICAgIGtl
eUNvZGUgPSBrVktfQU5TSV9FcXVhbDsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiPSI7Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6Vmly
dHVhbEtleTo6UmV0dXJuOgotICAgICAgICBrZXlDb2RlID0ga1ZLX1JldHVybjsKLSAgICAgICAg
YnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFs
S2V5OjpOdW1iZXJQYWQwOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2Rp
ZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMDsK
LSAgICAgICAgY2hhcmFjdGVycyA9IEAiMCI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkMToKLSAg
ICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsK
LSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDE7Ci0gICAgICAgIGNoYXJhY3RlcnMg
PSBAIjEiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDI6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmll
cnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBr
VktfQU5TSV9LZXlwYWQyOwotICAgICAgICBjaGFyYWN0ZXJzID0gQCIyIjsKLSAgICAgICAgYnJl
YWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5
OjpOdW1iZXJQYWQzOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmll
ckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkMzsKLSAg
ICAgICAgY2hhcmFjdGVycyA9IEAiMyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNDoKLSAgICAg
ICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAg
ICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDQ7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBA
IjQiOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktf
QU5TSV9LZXlwYWQ1OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI1IjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpO
dW1iZXJQYWQ2OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZs
YWdOdW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkNjsKLSAgICAg
ICAgY2hhcmFjdGVycyA9IEAiNiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkNzoKLSAgICAgICAg
Y2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVtZXJpY1BhZDsKLSAgICAg
ICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZDc7Ci0gICAgICAgIGNoYXJhY3RlcnMgPSBAIjci
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6Ok51bWJlclBhZDg6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0g
TlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5T
SV9LZXlwYWQ4OwotICAgICAgICBjaGFyYWN0ZXJzID0gQCI4IjsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpOdW1i
ZXJQYWQ5OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdO
dW1lcmljUGFkOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0FOU0lfS2V5cGFkOTsKLSAgICAgICAg
Y2hhcmFjdGVycyA9IEAiOSI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkTXVsdGlwbHk6Ci0gICAg
ICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0g
ICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWRNdWx0aXBseTsKLSAgICAgICAgY2hhcmFj
dGVycyA9IEAiKiI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2Nv
bDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6TnVtYmVyUGFkQWRkOgotICAgICAgICBjaGFuZ2Vk
TW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICBrZXlD
b2RlID0ga1ZLX0FOU0lfS2V5cGFkUGx1czsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiKyI7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6TnVtYmVyUGFkU3VidHJhY3Q6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7Ci0gICAgICAgIGtleUNvZGUgPSBrVktf
QU5TSV9LZXlwYWRNaW51czsKLSAgICAgICAgY2hhcmFjdGVycyA9IEAiLSI7Ci0gICAgICAgIGJy
ZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtl
eTo6TnVtYmVyUGFkU2VwYXJhdG9yOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdOdW1lcmljUGFkOwotICAgICAgICAvLyBUaGUgJ1NlcGFyYXRvcicga2V5
IGlzIG9ubHkgcHJlc2VudCBvbiBhIGZldyBpbnRlcm5hdGlvbmFsIGtleWJvYXJkcy4KLSAgICAg
ICAgLy8gSXQgaXMgdXN1YWxseSBtYXBwZWQgdG8gdGhlIHNhbWUgY2hhcmFjdGVyIGFzIERlY2lt
YWwgKCcuJyBvciAnLCcpLgotICAgICAgICBGQUxMVEhST1VHSDsKLSAgICBjYXNlIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERlY2ltYWw6Ci0g
ICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ051bWVyaWNQYWQ7
Ci0gICAgICAgIGtleUNvZGUgPSBrVktfQU5TSV9LZXlwYWREZWNpbWFsOwotICAgICAgICAvLyBG
SVhNRTogdGhpcyBtaWdodCBiZSBsb2NhbGUtZGVwZW5kZW50LiBTZWUgdGhlIGFib3ZlIGNvbW1l
bnQuCi0gICAgICAgIGNoYXJhY3RlcnMgPSBAIi4iOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6Ok51bWJlclBhZERp
dmlkZToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnTnVt
ZXJpY1BhZDsKLSAgICAgICAga2V5Q29kZSA9IGtWS19BTlNJX0tleXBhZERpdmlkZTsKLSAgICAg
ICAgY2hhcmFjdGVycyA9IEAiLyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb24xOgotICAgICAgICBj
aGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAg
a2V5Q29kZSA9IGtWS19GMTsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjI6Ci0gICAgICAgIGNoYW5n
ZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlD
b2RlID0ga1ZLX0YyOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9j
b2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uMzoKLSAgICAgICAgY2hhbmdlZE1v
ZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUg
PSBrVktfRjM7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjo6VmlydHVhbEtleTo6RnVuY3Rpb240OgotICAgICAgICBjaGFuZ2VkTW9kaWZp
ZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtW
S19GNDsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5jdGlvbjU6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMg
fD0gTlNFdmVudE1vZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y1
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246OlZpcnR1YWxLZXk6OkZ1bmN0aW9uNjoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBO
U0V2ZW50TW9kaWZpZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjY7Ci0g
ICAgICAgIGJyZWFrOwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
VmlydHVhbEtleTo6RnVuY3Rpb243OgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZl
bnRNb2RpZmllckZsYWdGdW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GNzsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0
dWFsS2V5OjpGdW5jdGlvbjg6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1v
ZGlmaWVyRmxhZ0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0Y4OwotICAgICAgICBi
cmVhazsKLSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxL
ZXk6OkZ1bmN0aW9uOToKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZp
ZXJGbGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjk7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6VmlydHVhbEtleTo6
RnVuY3Rpb24xMDoKLSAgICAgICAgY2hhbmdlZE1vZGlmaWVycyB8PSBOU0V2ZW50TW9kaWZpZXJG
bGFnRnVuY3Rpb247Ci0gICAgICAgIGtleUNvZGUgPSBrVktfRjEwOwotICAgICAgICBicmVhazsK
LSAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OlZpcnR1YWxLZXk6OkZ1
bmN0aW9uMTE6Ci0gICAgICAgIGNoYW5nZWRNb2RpZmllcnMgfD0gTlNFdmVudE1vZGlmaWVyRmxh
Z0Z1bmN0aW9uOwotICAgICAgICBrZXlDb2RlID0ga1ZLX0YxMTsKLSAgICAgICAgYnJlYWs7Ci0g
ICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsS2V5OjpGdW5j
dGlvbjEyOgotICAgICAgICBjaGFuZ2VkTW9kaWZpZXJzIHw9IE5TRXZlbnRNb2RpZmllckZsYWdG
dW5jdGlvbjsKLSAgICAgICAga2V5Q29kZSA9IGtWS19GMTI7Ci0gICAgICAgIGJyZWFrOwotICAg
IH0KLQotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtbTlNNdXRhYmxlQXJyYXkg
YWxsb2NdIGluaXRdKTsKLQotICAgIEFTU0VSVChpc1N0aWNreU1vZGlmaWVyIHx8IGludGVyYWN0
aW9uID09IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OktleWJvYXJkSW50ZXJhY3Rp
b25UeXBlOjpLZXlQcmVzcyk7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBleGlzdGluZ01v
ZGlmaWVycyA9IFtOU0V2ZW50IG1vZGlmaWVyRmxhZ3NdOwotICAgIE5TRXZlbnRNb2RpZmllckZs
YWdzIHVwZGF0ZWRNb2RpZmllcnMgPSAwOwotICAgIE5TVGltZUludGVydmFsIHRpbWVzdGFtcCA9
IFtOU0RhdGUgdGltZUludGVydmFsU2luY2VSZWZlcmVuY2VEYXRlXTsKLSAgICBOU1dpbmRvdyAq
d2luZG93ID0gcGFnZS5wbGF0Zm9ybVdpbmRvdygpOwotICAgIE5TSW50ZWdlciB3aW5kb3dOdW1i
ZXIgPSB3aW5kb3cud2luZG93TnVtYmVyOwotICAgIE5TUG9pbnQgZXZlbnRQb3NpdGlvbiA9IE5T
TWFrZVBvaW50KDAsIHdpbmRvdy5mcmFtZS5zaXplLmhlaWdodCk7Ci0KLSAgICBzd2l0Y2ggKGlu
dGVyYWN0aW9uKSB7Ci0gICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpL
ZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5UHJlc3M6IHsKLSAgICAgICAgTlNFdmVudFR5cGUg
ZXZlbnRUeXBlID0gaXNTdGlja3lNb2RpZmllciA/IE5TRXZlbnRUeXBlRmxhZ3NDaGFuZ2VkIDog
TlNFdmVudFR5cGVLZXlEb3duOwotICAgICAgICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdN
b2RpZmllcnMgfCBjaGFuZ2VkTW9kaWZpZXJzOwotICAgICAgICBbZXZlbnRzVG9CZVNlbnQgYWRk
T2JqZWN0OltOU0V2ZW50IGtleUV2ZW50V2l0aFR5cGU6ZXZlbnRUeXBlIGxvY2F0aW9uOmV2ZW50
UG9zaXRpb24gbW9kaWZpZXJGbGFnczp1cGRhdGVkTW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3Rh
bXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOmNoYXJh
Y3RlcnMgY2hhcmFjdGVyc0lnbm9yaW5nTW9kaWZpZXJzOmNoYXJhY3RlcnMgaXNBUmVwZWF0Ok5P
IGtleUNvZGU6a2V5Q29kZV1dOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpLZXlib2FyZEludGVyYWN0aW9uVHlwZTo6S2V5
UmVsZWFzZTogewotICAgICAgICBOU0V2ZW50VHlwZSBldmVudFR5cGUgPSBpc1N0aWNreU1vZGlm
aWVyID8gTlNFdmVudFR5cGVGbGFnc0NoYW5nZWQgOiBOU0V2ZW50VHlwZUtleVVwOwotICAgICAg
ICB1cGRhdGVkTW9kaWZpZXJzID0gZXhpc3RpbmdNb2RpZmllcnMgJiB+Y2hhbmdlZE1vZGlmaWVy
czsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdp
dGhUeXBlOmV2ZW50VHlwZSBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBk
YXRlZE1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1i
ZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01v
ZGlmaWVyczpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6S2V5Ym9hcmRJbnRlcmFjdGlvblR5cGU6Okluc2VydEJ5S2V5OiB7Ci0gICAgICAgIC8vIFN0
aWNreSBtb2RpZmllcnMgc2hvdWxkIGVpdGhlciBiZSAnS2V5UHJlc3MnIG9yICdLZXlSZWxlYXNl
Jy4KLSAgICAgICAgQVNTRVJUKCFpc1N0aWNreU1vZGlmaWVyKTsKLSAgICAgICAgaWYgKGlzU3Rp
Y2t5TW9kaWZpZXIpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgdXBkYXRlZE1vZGlm
aWVycyA9IGV4aXN0aW5nTW9kaWZpZXJzIHwgY2hhbmdlZE1vZGlmaWVyczsKLSAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlS2V5RG93biBsb2NhdGlvbjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6dXBkYXRlZE1v
ZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3aW5kb3dOdW1iZXIgY29u
dGV4dDpuaWwgY2hhcmFjdGVyczpjaGFyYWN0ZXJzIGNoYXJhY3RlcnNJZ25vcmluZ01vZGlmaWVy
czpjaGFyYWN0ZXJzIGlzQVJlcGVhdDpOTyBrZXlDb2RlOmtleUNvZGVdXTsKLSAgICAgICAgW2V2
ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRU
eXBlS2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBtb2RpZmllckZsYWdzOnVwZGF0ZWRNb2Rp
ZmllcnMgdGltZXN0YW1wOnRpbWVzdGFtcCB3aW5kb3dOdW1iZXI6d2luZG93TnVtYmVyIGNvbnRl
eHQ6bmlsIGNoYXJhY3RlcnM6Y2hhcmFjdGVycyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6
Y2hhcmFjdGVycyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTprZXlDb2RlXV07Ci0gICAgICAgIGJyZWFr
OwotICAgIH0KLSAgICB9Ci0KLSAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UocGFnZSwg
ZXZlbnRzVG9CZVNlbnQuZ2V0KCkpOwotfQotCi12b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpw
bGF0Zm9ybVNpbXVsYXRlS2V5U2VxdWVuY2UoV2ViUGFnZVByb3h5JiBwYWdlLCBjb25zdCBTdHJp
bmcmIGtleVNlcXVlbmNlKQotewotICAgIGF1dG8gZXZlbnRzVG9CZVNlbnQgPSBhZG9wdE5TKFtb
TlNNdXRhYmxlQXJyYXkgYWxsb2NdIGluaXRdKTsKLQotICAgIC8vIFNwbGl0IHRoZSB0ZXh0IGlu
dG8gY29tYmluaW5nIGNoYXJhY3RlciBzZXF1ZW5jZXMgYW5kIHNlbmQgZWFjaCBzZXBhcmF0ZWx5
LgotICAgIC8vIFRoaXMgaGFzIG5vIHNpbWlsYXJpdHkgdG8gaG93IGtleWJvYXJkcyB3b3JrIHdo
ZW4gaW5wdXR0aW5nIGNvbXBsZXggdGV4dC4KLSAgICAvLyBUaGlzIGNvbW1hbmQgaXMgbW9yZSBz
aW1pbGFyIHRvIHRoZSAnaW5zZXJ0VGV4dDonIGVkaXRpbmcgY29tbWFuZCwgZXhjZXB0Ci0gICAg
Ly8gdGhhdCB0aGlzIGVtaXRzIGtleXVwL2tleWRvd24va2V5cHJlc3MgZXZlbnRzIGZvciByb3Vn
aGx5IGVhY2ggY2hhcmFjdGVyLgotICAgIC8vIFRoaXMgQVBJIHNob3VsZCBtb3ZlIG1vcmUgdG93
YXJkcyB0aGF0IGRpcmVjdGlvbiBpbiB0aGUgZnV0dXJlLgotICAgIE5TU3RyaW5nICp0ZXh0ID0g
a2V5U2VxdWVuY2U7Ci0KLSAgICBOU0V2ZW50TW9kaWZpZXJGbGFncyBtb2RpZmllcnMgPSBbTlNF
dmVudCBtb2RpZmllckZsYWdzXTsKLSAgICBOU1RpbWVJbnRlcnZhbCB0aW1lc3RhbXAgPSBbTlNE
YXRlIHRpbWVJbnRlcnZhbFNpbmNlUmVmZXJlbmNlRGF0ZV07Ci0gICAgTlNXaW5kb3cgKndpbmRv
dyA9IHBhZ2UucGxhdGZvcm1XaW5kb3coKTsKLSAgICBOU0ludGVnZXIgd2luZG93TnVtYmVyID0g
d2luZG93LndpbmRvd051bWJlcjsKLSAgICBOU1BvaW50IGV2ZW50UG9zaXRpb24gPSBOU01ha2VQ
b2ludCgwLCB3aW5kb3cuZnJhbWUuc2l6ZS5oZWlnaHQpOwotCi0gICAgW3RleHQgZW51bWVyYXRl
U3Vic3RyaW5nc0luUmFuZ2U6TlNNYWtlUmFuZ2UoMCwgdGV4dC5sZW5ndGgpIG9wdGlvbnM6TlNT
dHJpbmdFbnVtZXJhdGlvbkJ5Q29tcG9zZWRDaGFyYWN0ZXJTZXF1ZW5jZXMgdXNpbmdCbG9jazpe
KE5TU3RyaW5nICpzdWJzdHJpbmcsIE5TUmFuZ2Ugc3Vic3RyaW5nUmFuZ2UsIE5TUmFuZ2UgZW5j
bG9zaW5nUmFuZ2UsIEJPT0wgKnN0b3ApIHsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9i
amVjdDpbTlNFdmVudCBrZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5RG93biBsb2NhdGlv
bjpldmVudFBvc2l0aW9uIG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJzIHRpbWVzdGFtcDp0aW1lc3Rh
bXAgd2luZG93TnVtYmVyOndpbmRvd051bWJlciBjb250ZXh0Om5pbCBjaGFyYWN0ZXJzOnN1YnN0
cmluZyBjaGFyYWN0ZXJzSWdub3JpbmdNb2RpZmllcnM6c3Vic3RyaW5nIGlzQVJlcGVhdDpOTyBr
ZXlDb2RlOjBdXTsKLSAgICAgICAgW2V2ZW50c1RvQmVTZW50IGFkZE9iamVjdDpbTlNFdmVudCBr
ZXlFdmVudFdpdGhUeXBlOk5TRXZlbnRUeXBlS2V5VXAgbG9jYXRpb246ZXZlbnRQb3NpdGlvbiBt
b2RpZmllckZsYWdzOm1vZGlmaWVycyB0aW1lc3RhbXA6dGltZXN0YW1wIHdpbmRvd051bWJlcjp3
aW5kb3dOdW1iZXIgY29udGV4dDpuaWwgY2hhcmFjdGVyczpzdWJzdHJpbmcgY2hhcmFjdGVyc0ln
bm9yaW5nTW9kaWZpZXJzOnN1YnN0cmluZyBpc0FSZXBlYXQ6Tk8ga2V5Q29kZTowXV07Ci0gICAg
fV07Ci0KLSAgICBzZW5kU3ludGhlc2l6ZWRFdmVudHNUb1BhZ2UocGFnZSwgZXZlbnRzVG9CZVNl
bnQuZ2V0KCkpOwotfQotCi1TdHJpbmcgV2ViQXV0b21hdGlvblNlc3Npb246OnBsYXRmb3JtR2V0
QmFzZTY0RW5jb2RlZFBOR0RhdGEoY29uc3QgU2hhcmVhYmxlQml0bWFwOjpIYW5kbGUmIGltYWdl
RGF0YUhhbmRsZSkKLXsKLSAgICBSZWZQdHI8U2hhcmVhYmxlQml0bWFwPiBiaXRtYXAgPSBTaGFy
ZWFibGVCaXRtYXA6OmNyZWF0ZShpbWFnZURhdGFIYW5kbGUsIFNoYXJlZE1lbW9yeTo6UHJvdGVj
dGlvbjo6UmVhZE9ubHkpOwotICAgIFJldGFpblB0cjxDR0ltYWdlUmVmPiBjZ0ltYWdlID0gYml0
bWFwLT5tYWtlQ0dJbWFnZSgpOwotICAgIFJldGFpblB0cjxOU011dGFibGVEYXRhPiBpbWFnZURh
dGEgPSBhZG9wdE5TKFtbTlNNdXRhYmxlRGF0YSBhbGxvY10gaW5pdF0pOwotICAgIFJldGFpblB0
cjxDR0ltYWdlRGVzdGluYXRpb25SZWY+IGRlc3RpbmF0aW9uID0gYWRvcHRDRihDR0ltYWdlRGVz
dGluYXRpb25DcmVhdGVXaXRoRGF0YSgoQ0ZNdXRhYmxlRGF0YVJlZilpbWFnZURhdGEuZ2V0KCks
IGtVVFR5cGVQTkcsIDEsIDApKTsKLSAgICBpZiAoIWRlc3RpbmF0aW9uKQotICAgICAgICByZXR1
cm4gU3RyaW5nKCk7Ci0KLSAgICBDR0ltYWdlRGVzdGluYXRpb25BZGRJbWFnZShkZXN0aW5hdGlv
bi5nZXQoKSwgY2dJbWFnZS5nZXQoKSwgMCk7Ci0gICAgQ0dJbWFnZURlc3RpbmF0aW9uRmluYWxp
emUoZGVzdGluYXRpb24uZ2V0KCkpOwotCi0gICAgcmV0dXJuIFtpbWFnZURhdGEgYmFzZTY0RW5j
b2RlZFN0cmluZ1dpdGhPcHRpb25zOjBdOwotfQotCi0jZW5kaWYgLy8gVVNFKEFQUEtJVCkKLQot
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQy
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0Mi9XZWJLaXQyLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggYmJjZDc5NjFhZjRiMmU5OGVkZjc1OTdkNDNmNjJm
ZjAyOGQxNGNiNi4uMTMwNTY3ZTRiM2EwN2Y3Y2FmZDk4ZTRiOWRmY2I2YzFmNGI1NjgwOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTMyMyw3ICsxMzIzLDkgQEAKIAkJOTk1NUE2RjUxQzc5ODZFMDAwRUI2QTkzIC8qIEF1dG9t
YXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYxMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9uQmFj
a2VuZERpc3BhdGNoZXJzLmggKi87IH07CiAJCTk5NTVBNkY2MUM3OTg2RTMwMEVCNkE5MyAvKiBB
dXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYyMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9u
UHJvdG9jb2xPYmplY3RzLmNwcCAqLzsgfTsKIAkJOTk1NUE2RjcxQzc5ODZFNTAwRUI2QTkzIC8q
IEF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDk5NTVBNkYzMUM3OTg2NjQwMEVCNkE5MyAvKiBBdXRvbWF0aW9u
UHJvdG9jb2xPYmplY3RzLmggKi87IH07Ci0JCTk5ODZCREQ3MUNBOUEyMkMwMDQ4MDBBQSAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gOTk4NkJERDYxQ0E5QTIyMjAwNDgwMEFBIC8qIFdlYkF1dG9tYXRp
b25TZXNzaW9uQ29jb2EubW0gKi87IH07CisJCTk5QzNBRTI0MURBRDhFMzcwMEFGNUMxNiAvKiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDk5QzNBRTIzMURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hYy5tbSAqLzsgfTsKKwkJOTlDM0FFMjcxREFEOTQ4OTAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNl
c3Npb25Db2NvYS5tbSAqLzsgfTsKKwkJOTlDM0FFMkQxREFEQTZBRDAwQUY1QzE2IC8qIFdlYkF1
dG9tYXRpb25TZXNzaW9uTWFjcm9zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNl
c3Npb25NYWNyb3MuaCAqLzsgfTsKIAkJOTlDODFENTkxQzIwRTFFNTAwNUM0QzgyIC8qIEF1dG9t
YXRpb25DbGllbnQubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5OUM4MUQ1NjFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5tbSAqLzsg
fTsKIAkJOTlDODFENUExQzIwRTdFMjAwNUM0QzgyIC8qIEF1dG9tYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDk5QzgxRDU1MUMyMERG
QkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50LmggKi87IH07CiAJCTk5QzgxRDVEMUMyMUYz
OEIwMDVDNEM4MiAvKiBBUElBdXRvbWF0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5OUM4MUQ1QjFDMjBFODE3MDA1QzRDODIgLyogQVBJ
QXV0b21hdGlvbkNsaWVudC5oICovOyB9OwpAQCAtMzQ3NSw3ICszNDc3LDkgQEAKIAkJOTk1NUE2
RjExQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRpb25CYWNrZW5kRGlzcGF0Y2hlcnMuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0b21hdGlvbkJhY2tlbmREaXNwYXRjaGVy
cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OTU1QTZGMjFDNzk4NjY0MDBFQjZB
OTMgLyogQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTk1NUE2RjMxQzc5ODY2NDAwRUI2QTkzIC8qIEF1dG9tYXRp
b25Qcm90b2NvbE9iamVjdHMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXV0
b21hdGlvblByb3RvY29sT2JqZWN0cy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk5
OTg2QkRENjFDQTlBMjIyMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNz
aW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTk5QzNBRTIzMURBRDhF
MzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2Vi
QXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW07IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTk5QzNBRTJDMURBREE2QTcwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vz
c2lvbk1hY3Jvcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBdXRvbWF0
aW9uU2Vzc2lvbk1hY3Jvcy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5OUM4MUQ1
NTFDMjBERkJFMDA1QzRDODIgLyogQXV0b21hdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBBdXRvbWF0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTk5QzgxRDU2MUMyMERGQkUwMDVDNEM4MiAvKiBBdXRvbWF0aW9uQ2xpZW50Lm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0b21hdGlvbkNsaWVu
dC5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTlDODFENUIxQzIwRTgxNzAwNUM0
QzgyIC8qIEFQSUF1dG9tYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQVBJQXV0b21hdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpA
QCAtNDkxNCw3ICs0OTE4LDYgQEAKIAkJCQkyREFGNEZGQTFCNjM2MTgxMDA2MDEzRDYgLyogVmll
d0dlc3R1cmVDb250cm9sbGVyLmNwcCAqLywKIAkJCQkyRDEyNUM1QzE4NTdFQTA1MDAzQkEzQ0Ig
LyogVmlld0dlc3R1cmVDb250cm9sbGVyLmggKi8sCiAJCQkJMkQxQjVENUExODU4NjU5OTAwNkM2
NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlci5tZXNzYWdlcy5pbiAqLywKLQkJCQk5OTg2QkRE
NjFDQTlBMjIyMDA0ODAwQUEgLyogV2ViQXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLywKIAkJ
CQkxQUMwMjczRTE5NjYyMkQ2MDBDMTJCNzUgLyogV2ViUGFnZVByb3h5Q29jb2EubW0gKi8sCiAJ
CQkJN0M0Njk0Q0IxQTRCNTEwQTAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eUNvY29hLm1t
ICovLAogCQkJCUNEQTI5QTFFMUNCRUI1RkIwMDkwMUNDRiAvKiBXZWJQbGF5YmFja1Nlc3Npb25N
YW5hZ2VyUHJveHkuaCAqLywKQEAgLTYwMjUsMTMgKzYwMjgsMzIgQEAKIAkJCWlzYSA9IFBCWEdy
b3VwOwogCQkJY2hpbGRyZW4gPSAoCiAJCQkJOTk1NUE2RTkxQzc5ODBCQjAwRUI2QTkzIC8qIEF1
dG9tYXRpb24uanNvbiAqLywKKwkJCQk5OUMzQUUyNTFEQUQ5NDY3MDBBRjVDMTYgLyogY29jb2Eg
Ki8sCisJCQkJOTlDM0FFMjIxREFEOEUxNDAwQUY1QzE2IC8qIG1hYyAqLywKIAkJCQk5OTU1QTZF
QTFDNzk4MEJCMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uY3BwICovLAogCQkJCTk5
NTVBNkVCMUM3OTgwQkIwMEVCNkE5MyAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5oICovLAogCQkJ
CTFDMEExOTU5MUM5MDA2RUEwMEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbi5tZXNzYWdl
cy5pbiAqLywKKwkJCQk5OUMzQUUyQzFEQURBNkE3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNl
c3Npb25NYWNyb3MuaCAqLywKIAkJCSk7CiAJCQlwYXRoID0gQXV0b21hdGlvbjsKIAkJCXNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTk5QzNBRTIyMURBRDhFMTQwMEFGNUMxNiAvKiBt
YWMgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTk5QzNB
RTIzMURBRDhFMzQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSAqLywKKwkJ
CSk7CisJCQlwYXRoID0gbWFjOworCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKKwkJfTsKKwkJ
OTlDM0FFMjUxREFEOTQ2NzAwQUY1QzE2IC8qIGNvY29hICovID0geworCQkJaXNhID0gUEJYR3Jv
dXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk5OUMzQUUyNjFEQUQ5NDg1MDBBRjVDMTYgLyogV2Vi
QXV0b21hdGlvblNlc3Npb25Db2NvYS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gY29jb2E7CisJ
CQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9OwogCQlBMTgyRDVCMTFCRTZCQ0Y0MDA4N0E3
Q0MgLyogaW9zICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAg
LTgzMDEsNiArODMyMyw3IEBACiAJCQkJQkM0OTg2MkYxMjREMThDMTAwRDgzNEUxIC8qIFdLQnVu
ZGxlSGl0VGVzdFJlc3VsdC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMyMDRFRjIxMUM4M0VDODAw
OEYzMzc1IC8qIFdLQnVuZGxlSW5pdGlhbGl6ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjVCODZG
MUUxMkYxMURFMzAwQjdERDhBIC8qIFdLQnVuZGxlSW5zcGVjdG9yLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5OUMzQUUyRDFEQURBNkFEMDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWNy
b3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOEI2NkI0MUJDNDVCMDEwMDgyREY3NyAvKiBXS0J1
bmRsZU1hYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkM3MDQzQ0MxMkY3NUVFMDAwNjQ3MkI5IC8q
IFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTFBNzI4REUx
QjFCQUQzODAwMTAyRUVFIC8qIFdLQnVuZGxlTmF2aWdhdGlvbkFjdGlvblByaXZhdGUuaCBpbiBI
ZWFkZXJzICovLApAQCAtOTQzNCw2ICs5NDU3LDcgQEAKIAkJCQk1MUZEMThCNTE2NTFGQkFEMDBE
QkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUUx
NTI1NTFBMTcwMTE4MTkwMDNEN0FEQiAvKiBOZXR3b3JrUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNUMxNDI2RUYxQzIzRjgwOTAwRDQxMTgzIC8q
IE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJzLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTk5
QzNBRTI3MURBRDk0ODkwMEFGNUMxNiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvbkNvY29hLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQkM4MjgzQUMxNkI0QkYzRjAwQTI3OEZFIC8qIE5ldHdvcmtTZXJ2
aWNlRW50cnlQb2ludC5tbSBpbiBTb3VyY2VzICovLAogCQkJCTUzMjE1OTUzMURCQUU3MTgwMDU0
QUEzQyAvKiBOZXR3b3JrU2Vzc2lvbi5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1QzIwQ0I5RDFC
QjBEQ0ZBMDA4OTVCQjEgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5tbSBpbiBTb3VyY2VzICovLApA
QCAtOTYwMCw3ICs5NjI0LDYgQEAKIAkJCQkxQThFN0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlz
aXRlZExpbmtUYWJsZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQ0VEQTEyRTIxNTJDRDFBRTAwRDlFMDhEIC8qIFdlYkFsdGVybmF0aXZlVGV4dENsaWVu
dC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk5OTU1QTZFRDFDNzk4MENBMDBFQjZBOTMgLyogV2Vi
QXV0b21hdGlvblNlc3Npb24uY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJOTk4NkJERDcxQ0E5QTIy
QzAwNDgwMEFBIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uQ29jb2EubW0gaW4gU291cmNlcyAqLywK
IAkJCQkxQzBBMTk1NzFDOTAwNjhGMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUMwQTE5NDYxQzhGRjFBODAwRkUw
RUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHkuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MUMwQTE5NTMxQzhGRkRGQjAwRkUwRUJCIC8qIFdlYkF1dG9tYXRpb25TZXNzaW9uUHJveHlNZXNz
YWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCkBAIC05NzQ0LDYgKzk3NjcsNyBAQAogCQkJ
CUJDQkQzOTE0MTI1QkIxQTgwMEQyQzI5RiAvKiBXZWJQYWdlUHJveHlNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTEyMTI3QzMxOTA4MjM5QTAwREFGMzVDIC8qIFdlYlBh
c3RlYm9hcmRPdmVycmlkZXMuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0M0Njk0RDAxQTUxRTM2
ODAwQUQ1ODQ1IC8qIFdlYlBhc3RlYm9hcmRQcm94eS5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk5
OUMzQUUyNDFEQUQ4RTM3MDBBRjVDMTYgLyogV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0gaW4g
U291cmNlcyAqLywKIAkJCQk3QzQ2OTRDQzFBNEI1MTBBMDBBRDU4NDUgLyogV2ViUGFzdGVib2Fy
ZFByb3h5Q29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJCQk3QzQ2OTRDOTFBNEI0RUExMDBBRDU4
NDUgLyogV2ViUGFzdGVib2FyZFByb3h5TWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICov
LAogCQkJCTFBQjFGNzc0MUQxQjJGOEEwMDdDOUJEMSAvKiBXZWJQYXltZW50Q29vcmRpbmF0b3Iu
Y3BwIGluIFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>