<?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>130620</bug_id>
          
          <creation_ts>2014-03-21 15:50:41 -0700</creation_ts>
          <short_desc>Update the code related to SelectorPseudoTypeMap to reflect its new purpose</short_desc>
          <delta_ts>2014-03-28 20:09:29 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Benjamin Poulain">benjamin</reporter>
          <assigned_to name="Benjamin Poulain">benjamin</assigned_to>
          <cc>allan.jensen</cc>
    
    <cc>bunhere</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>rakuco</cc>
    
    <cc>sergio</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>993349</commentid>
    <comment_count>0</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-21 15:50:41 -0700</bug_when>
    <thetext>Update the code related to SelectorPseudoTypeMap to reflect its new purpose</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993351</commentid>
    <comment_count>1</comment_count>
      <attachid>227501</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-21 15:52:41 -0700</bug_when>
    <thetext>Created attachment 227501
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993371</commentid>
    <comment_count>2</comment_count>
      <attachid>227509</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-21 16:22:09 -0700</bug_when>
    <thetext>Created attachment 227509
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>993984</commentid>
    <comment_count>3</comment_count>
      <attachid>227694</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-24 15:16:58 -0700</bug_when>
    <thetext>Created attachment 227694
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995479</commentid>
    <comment_count>4</comment_count>
      <attachid>228088</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-28 16:05:09 -0700</bug_when>
    <thetext>Created attachment 228088
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995545</commentid>
    <comment_count>5</comment_count>
      <attachid>228088</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-28 20:09:20 -0700</bug_when>
    <thetext>Comment on attachment 228088
Patch

Clearing flags on attachment: 228088

Committed r166447: &lt;http://trac.webkit.org/changeset/166447&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>995546</commentid>
    <comment_count>6</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2014-03-28 20:09:29 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227501</attachid>
            <date>2014-03-21 15:52:41 -0700</date>
            <delta_ts>2014-03-21 16:22:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130620-20140321155220.patch</filename>
            <type>text/plain</type>
            <size>53588</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIzM2RhNmUwYjNjN2Zj
MzNiZmEyMTliZjAxYWQ3ODU5ZGIzNzViZi4uNGM0ZGFlNGVjODBlODllODQxMzJjZTU0MTY0OTVi
ZjE0ODQ4YTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE0LTAzLTIxICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCisgICAgICAgIFVwZGF0ZSB0aGUg
Y29kZSByZWxhdGVkIHRvIFNlbGVjdG9yUHNldWRvVHlwZU1hcCB0byByZWZsZWN0IGl0cyBuZXcg
cHVycG9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMwNjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2luY2UgcjE2NjA5NCwgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwIG9ubHkgY29udGFpbnMgUHNldWRv
Q2xhc3MgaW5zdGFuY2VzIGFuZCB0aGUgNCBjb21wYXRpYmlsaXR5IFBzZXVkb0VsZW1lbnQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWUgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwIHRvIFNlbGVj
dG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcCBhbmQgdXBkYXRlIHRoZSBw
YXJzaW5nCisgICAgICAgIHRvIHNwbGl0IFBzZXVkb0NsYXNzIGFuZCBQc2V1ZG9FbGVtZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNz
QW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXJTZWxlY3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Bh
cnNlclZhbHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbi4KKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmg6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHk6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weS4KKyAgICAgICAgKGVudW1lcmFi
bGVQc2V1ZG9UeXBlKToKKyAgICAgICAgKGV4cGFuZF9pZmRlZl9jb25kaXRpb24pOgorCisyMDE0
LTAzLTIxICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCiAgICAgICAg
IFBzZXVkbyB0eXBlIGNsZWFudXAgcGFydCAyOiBzcGxpdCBwc2V1ZG8gZWxlbWVudHMgcGFyc2lu
ZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMzcw
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODdiN2U4YWJlMDk1NGFkM2MyZWVkZDExYzIyNmVk
ZjQxYzg2OWFiNi4uOTM3NDc5YTliZmQ4MjM2YWE2NGE1MDllY2QwMmQ4ZDIzM2FlN2FkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTMxMjcsMTIgKzMxMjcsMTIgQEAgQUREX1NPVVJDRV9XRUJD
T1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9D
U1NHcmFtbWEKIAogIyBHZW5lcmF0ZSBDU1MgU2VsZWN0b3IgcHNldWRvIHR5cGUgbmFtZSB0byB2
YWx1ZSBtYXBzLgogYWRkX2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwCi0gICAgTUFJTl9E
RVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5
CisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmYgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1h
cC5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXRUJDT1JFX0RJUn0vY3NzL21ha2VTZWxlY3Rv
clBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKICAgICBXT1JLSU5HX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KLSAgICBDT01NQU5EICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBl
TWFwLnB5ICR7V0VCQ09SRV9ESVJ9L2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gIiR7RkVB
VFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIKKyAgICBDT01NQU5EICR7UFlUSE9O
X0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5ICR7V0VCQ09SRV9ESVJ9L2Nzcy9TZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gIiR7RkVBVFVSRV9ERUZJTkVT
X1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIKICAgICBWRVJCQVRJTSkKLWxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmNwcCkKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwLmNwcCkKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuZ3BlcmYgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuY3Bw
CiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1
ZG9FbGVtZW50c01hcC5weQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGY0YTI5
NDQ4N2U0YzhhN2UzZGE2MWU4ODBmNjc0M2EyMzc0MTdmNi4uM2M1ZDc3MGNiZWE1ZTRiMzg2MmQ0
ZmJiYTZiNzQxODVmZDkxZmU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03
NTEsOCArNzUxLDggQEAgYWxsIDogXAogICAgIFBsdWdJbnNSZXNvdXJjZXMuaCBcCiAgICAgU1ZH
RWxlbWVudEZhY3RvcnkuY3BwIFwKICAgICBTVkdOYW1lcy5jcHAgXAorICAgIFNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgXAogICAgIFNlbGVjdG9yUHNl
dWRvRWxlbWVudFR5cGVNYXAuY3BwIFwKLSAgICBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIFwK
ICAgICBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCBcCkBAIC03OTcsOSArNzk3LDkgQEAg
Q1NTVmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgY3NzL21h
a2V2YWx1ZXMucGwgYmluZGluZ3Mvc2MKIAogIyBDU1MgU2VsZWN0b3IgcHNldWRvIHR5cGUgbmFt
ZSB0byB2YWx1ZSBtYXAuCiAKLVdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01BUF9L
RVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4KLVNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgOiAkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLnB5ICQoV0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZUEVfTUFQX0tFWVdPUkRT
KQotCXB5dGhvbiAiJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSIg
JChXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09SRFMpICIkKEZFQVRV
UkVfREVGSU5FUykiCitXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09S
RFMgOj0gJChXZWJDb3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlF
bGVtZW50TWFwLmluCitTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRp
YmlsaXR5RWxlbWVudE1hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01B
UF9LRVlXT1JEUykKKwlweXRob24gIiQoV2ViQ29yZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkiICQoV0VCQ09SRV9DU1NfU0VMRUNUT1Jf
UFNFVURPX1RZUEVfTUFQX0tFWVdPUkRTKSAiJChGRUFUVVJFX0RFRklORVMpIgogCiBXRUJDT1JF
X0NTU19TRUxFQ1RPUl9QU0VVRE9fRUxFTUVOVFNfVFlQRV9NQVBfS0VZV09SRFMgOj0gJChXZWJD
b3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5pbgogU2VsZWN0b3JQc2V1ZG9F
bGVtZW50VHlwZU1hcC5jcHAgOiAkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVt
ZW50c01hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19FTEVNRU5UU19UWVBFX01B
UF9LRVlXT1JEUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAxMjQxMDU0MjBhZDhjMWIyMTRmMWM4YzAyM2Y0YzRjZWNjMGU1Nzdj
Li40YzU1YTZhMWIxM2UxMmI3ZmRhZDkwYzFiYmFiNGY4ZDI3MDY4NmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDc1LDcg
KzE0NzUsNyBAQAogCQk0M0E2MjVGODEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1
RjYxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuaCAqLzsgfTsKIAkJNDNBNjI1
RjkxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4
IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovOyB9OwogCQk0M0E2MjY2NzEzQjNEMTEwMDBBQzk0
QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDNBNjI2NjYxM0IzRDExMDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVk
U3RyaW5nLmNwcCAqLzsgfTsKLQkJNDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9y
UHNldWRvVHlwZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFw
LmNwcCAqLzsgfTsKKwkJNDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRv
Q2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2Vs
ZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCAqLzsgfTsKIAkJ
NDNCOTMzNjkxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I5MzM2NzEzQjI2MUIx
MDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCAqLzsgfTsKIAkJNDNCOTMzNkExM0Iy
NjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQjkzMzY4MTNCMjYxQjEwMDQ1ODRCRiAv
KiBTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgKi87IH07CiAJCTQzQzA5MkJDMTJEOUU0RUUwMEE5
ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0MwOTJCQTEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oICovOyB9OwpAQCAtODQwMSwxMCArODQwMSwxMCBAQAogCQk0M0E2
MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29s
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0E2MjY2NjEzQjNEMTEwMDBB
Qzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0M0I4NUVEMDE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IG1ha2VTZWxlY3Rv
clBzZXVkb1R5cGVNYXAucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1RUQy
MThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNl
bGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuZ3BlcmY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1
RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0M0I4NUVEMDE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IG1ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQyMThD
QkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1l
bnRNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0b3JQ
c2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRv
Q2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBh
dGggPSBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmY7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAv
KiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVt
ZW50TWFwLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0I5MzM2NzEzQjI2MUIx
MDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDNCOTMzNjgxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9p
bnRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNDMDkyQjkxMkQ5RTRF
RTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkxMiwxMCArMTU5MTIsMTAgQEAKIAkJCQk0NEEyOEFB
RTEyREZCOEJGMDBBRTkyM0IgLyogTWF0aE1MTmFtZXMuaCAqLywKIAkJCQk3MUUyMTgzODE3MzU5
RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oICovLAogCQkJCTcxRTIxODM5MTczNTlG
QjgwMDZFNkU0RCAvKiBQbHVnSW5zUmVzb3VyY2VzRGF0YS5jcHAgKi8sCisJCQkJNDNCODVFRDIx
OENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudE1hcC5jcHAgKi8sCisJCQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9y
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiAqLywKIAkJCQkyNkFB
MEY5RDE4RDJBMThCMDA0MTkzODEgLyogU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5jcHAg
Ki8sCiAJCQkJMjZBQTBGOUYxOEQyQTFDMTAwNDE5MzgxIC8qIFNlbGVjdG9yUHNldWRvRWxlbWVu
dFR5cGVNYXAuZ3BlcmYgKi8sCi0JCQkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgKi8sCi0JCQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8q
IFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAqLywKIAkJCQk1M0VGNzY2QTE2NTMwQTYxMDA0
Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCAqLywKIAkJCQk2NTY1ODFFNjA5RDE1MDhEMDAwRTYx
RDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJCTY1NjU4MUU3MDlEMTUwOEQwMDBF
NjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovLApAQCAtMjE2NDksNyArMjE2NDksNyBAQAog
CQkJCUU1NUY0OTc5MTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwICovLAog
CQkJCUU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLywKIAkJ
CQkyNkFBMEY5OTE4RDI5NzNEMDA0MTkzODEgLyogbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNN
YXAucHkgKi8sCi0JCQkJNDNCODVFRDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VTZWxlY3RvclBz
ZXVkb1R5cGVNYXAucHkgKi8sCisJCQkJNDNCODVFRDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VT
ZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkgKi8sCiAJCQkJ
OTNDQTRDOUEwOURGOTNGQTAwREY4Njc3IC8qIG1ha2UtY3NzLWZpbGUtYXJyYXlzLnBsICovLAog
CQkJCTkzQ0E0QzlCMDlERjkzRkEwMERGODY3NyAvKiBtYWtlcHJvcC5wbCAqLywKIAkJCQk5M0NB
NEM5RDA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXZhbHVlcy5wbCAqLywKQEAgLTIxNjk3LDcgKzIx
Njk3LDcgQEAKIAkJCQk0MTUwNzE1NTE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIu
Y3BwICovLAogCQkJCTQxNTA3MTU2MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5o
ICovLAogCQkJCTI2QUEwRjlBMThEMjk3M0QwMDQxOTM4MSAvKiBTZWxlY3RvclBzZXVkb0VsZW1l
bnRUeXBlTWFwLmluICovLAotCQkJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuaW4gKi8sCisJCQkJNDNCODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbiAqLywKIAkJCQk0
MzEwN0JFMTE4Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggKi8sCiAJ
CQkJRTQ3QTk3Q0UxNjMwNTlGQzAwNURDRDk5IC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMu
Y3BwICovLAogCQkJCUU0N0E5N0NGMTYzMDU5RkMwMDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlv
bkFuYWx5c2lzLmggKi8sCkBAIC0yNzE1MCw3ICsyNzE1MCw3IEBACiAJCQkJNkU2N0QyQTYxMjgw
RThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDNCODVFRDQxOENC
RUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk0M0I4NUVENDE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENv
bXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUx
REUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhB
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
biBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggZjgzY2EzMzI0NjRj
NjZhMTU1ZTJiNGI1OGJhNzAxNDQ0Y2FlNzc2My4uMWYzMGM4ZGE5OTc4YTcxOWYzOWEyZjdkZTBh
MjNlNGI5MThkODBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIu
eS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTc1LDEz
ICsxMTc1LDcgQEAgcHNldWRvX3BhZ2U6CiAKIHBzZXVkbzoKICAgICAnOicgSURFTlQgewotICAg
ICAgICAkJCA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5p
cXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwotICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKLSAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgc2Vs
ZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgkMik7Ci0gICAgICAgIGlmIChzZWxlY3Rvci0+cHNl
dWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQotICAgICAgICAgICAgJCQg
PSBzZWxlY3Rvci5yZWxlYXNlKCk7CisgICAgICAgICQkID0gQ1NTUGFyc2VyU2VsZWN0b3I6OnBh
cnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVjdG9yKCQyKTsKICAgICB9
CiAgICAgfCAnOicgJzonIElERU5UIHsKICAgICAgICAgJCQgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6
cGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3IoJDMpOwpAQCAtMTIwMyw4ICsxMTk3LDcgQEAgcHNl
dWRvOgogICAgICAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFy
c2VyU2VsZWN0b3I+KCk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVj
dG9yKCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4+PigkNCkpOwotICAgICAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgICAgIHNlbGVj
dG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICAgICAgc2VsZWN0b3ItPnNldFBz
ZXVkb0NsYXNzVmFsdWUoJDIpOwogICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBl
KCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0FueSkKICAgICAgICAgICAgICAgICAkJCA9IHNlbGVj
dG9yLnJlbGVhc2UoKTsKICAgICAgICAgfQpAQCAtMTIxNSw3ICsxMjA4LDcgQEAgcHNldWRvOgog
ICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rv
cj4oKTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
cyk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgIHNlbGVjdG9y
LT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xh
c3NWYWx1ZSgkMik7CiAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1Nl
bGVjdG9yOjpQc2V1ZG9Vbmtub3duKQogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNl
KCk7CiAgICAgfQpAQCAtMTIyNSw3ICsxMjE4LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRvIHNl
bGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAg
c2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgIHNl
bGVjdG9yLT5zZXRBcmd1bWVudChBdG9taWNTdHJpbmc6Om51bWJlcigkNCAqICQ1KSk7Ci0gICAg
ICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+
c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlw
ZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQogICAgICAgICAgICAgJCQgPSBzZWxl
Y3Rvci5yZWxlYXNlKCk7CiAgICAgfQpAQCAtMTIzNCw4ICsxMjI3LDcgQEAgcHNldWRvOgogICAg
ICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4o
KTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7
CiAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgICQyLmxvd2VyKCk7
Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxl
Y3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1
ZG9UeXBlIHR5cGUgPSBzZWxlY3Rvci0+cHNldWRvVHlwZSgpOwogICAgICAgICBpZiAodHlwZSA9
PSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikKICAgICAgICAgICAgIHNlbGVjdG9yID0gbnVs
bHB0cjsKQEAgLTEyNTksOSArMTI1MSw3IEBAIHBzZXVkbzoKICAgICAgICAgICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiBzZWxlY3RvclZlY3RvcjsKICAgICAg
ICAgICAgIHNlbGVjdG9yVmVjdG9yLmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKICAgICAg
ICAgICAgICQkLT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKLQotICAgICAg
ICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgICAgICQkLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIp
OworICAgICAgICAgICAgJCQtPnNldFBzZXVkb0NsYXNzVmFsdWUoJDIpOwogICAgICAgICB9CiAg
ICAgfQogICA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IDRmYjFk
ZTI0MzQ3YThlOGI1MDNhZDUzNjI5ZDEzMjU0M2RhNGFiMjYuLjQ3ZTVkZTlhN2ZmYzgyZDgxODg0
M2RlMDExZmMzY2JlNTYzZmY5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMu
Y3BwCkBAIC0xOTcsNiArMTk3LDI2IEBAIENTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXJTZWxl
Y3Rvcjo6cGFyc2VQc2V1ZG9DdWVGdW5jdGlvblNlbGVjdG9yKGNvbnN0IENTU1BhCiAgICAgcmV0
dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsKIH0KIAorQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNl
clNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3Rv
cihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpCit7CisgICAgUHNldWRvQ2xhc3NP
ckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBzZXVkb1R5cGUgPSBwYXJzZVBzZXVkb0NsYXNz
QW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcocHNldWRvVHlwZVN0cmluZyk7CisgICAgaWYg
KHBzZXVkb1R5cGUucHNldWRvQ2xhc3MgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pIHsK
KyAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0
b3I+KCk7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzOworICAgICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9wc2V1ZG9U
eXBlID0gcHNldWRvVHlwZS5wc2V1ZG9DbGFzczsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yLnJl
bGVhc2UoKTsKKyAgICB9CisgICAgaWYgKHBzZXVkb1R5cGUuY29tcGF0aWJpbGl0eVBzZXVkb0Vs
ZW1lbnQgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pIHsKKyAgICAgICAgYXV0byBzZWxl
Y3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CisgICAgICAgIHNl
bGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ7
CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUgPSBwc2V1ZG9UeXBl
LmNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50OworICAgICAgICBBdG9taWNTdHJpbmcgbmFtZSA9
IHBzZXVkb1R5cGVTdHJpbmc7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5zZXRWYWx1
ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICB9CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKIENTU1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3Rv
cigpCiAgICAgOiBtX3NlbGVjdG9yKHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3I+KCkpCiB7
CkBAIC0yMjksMTEyICsyNDksMTIgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxl
Y3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGUKICAgICBtX3Nl
bGVjdG9yLT5zZXRTZWxlY3Rvckxpc3Qoc3RkOjptb3ZlKHNlbGVjdG9yTGlzdCkpOwogfQogCi12
b2lkIENTU1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3QgQ1NTUGFyc2Vy
U3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKQordm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0UHNl
dWRvQ2xhc3NWYWx1ZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKQog
ewotICAgIEF0b21pY1N0cmluZyBuYW1lID0gcHNldWRvVHlwZVN0cmluZzsKLSAgICBtX3NlbGVj
dG9yLT5zZXRWYWx1ZShuYW1lKTsKLQotICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVk
b1R5cGUgPSBwYXJzZVBzZXVkb1R5cGVTdHJpbmcoKm5hbWUuaW1wbCgpKTsKLSAgICBib29sIGlz
Q29tcGF0aWJpbGl0eUVsZW1lbnRUeXBlID0gZmFsc2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRi
aWxpdHkgbW9kZQotCi0gICAgc3dpdGNoIChwc2V1ZG9UeXBlKSB7Ci0gICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQmVmb3JlOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0TGV0dGVyOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0ZpcnN0TGluZToKLSAgICAgICAgaXNDb21wYXRpYmlsaXR5RWxlbWVudFR5
cGUgPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9V
bmtub3duOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgotICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdENoaWxkOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvT25seUNoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5
cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTnRoT2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050
aExhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmlzaXRlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Bbnk6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluazoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9BdXRvZmlsbDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Zv
Y3VzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJs
ZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFBhZ2VNZWRpYToKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0Rpc2FibGVkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09wdGlvbmFsOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb1JlYWRPbmx5OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlYWRXcml0ZToKLSAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY29wZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9WYWxpZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZhbGlkOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0ZXJtaW5hdGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvVGFyZ2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b1Jvb3Q6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyQmFjazoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJGb3J3YXJkOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0Nvcm5lclByZXNlbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVjcmVtZW50Ogot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9Ib3Jpem9udGFsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1ZlcnRp
Y2FsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0VuZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Eb3VibGVCdXR0
b246Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2luZ2xlQnV0dG9uOgotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb05vQnV0dG9uOgotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
LSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9GdWxsU2NyZWVuQW5jZXN0b3I6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW5p
bWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246Ci0jZW5kaWYKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9JblJhbmdlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFuZ2U6
Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1
dHVyZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgotI2VuZGlmCi0gICAgICAg
IGJyZWFrOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9DdWU6Ci0jZW5kaWYKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZXNpemVyOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhcjoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9TY3JvbGxiYXJDb3JuZXI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
U2Nyb2xsYmFyQnV0dG9uOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRo
dW1iOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRyYWNrOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRyYWNrUGllY2U6Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvU2VsZWN0aW9uOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vz
ZXJBZ2VudEN1c3RvbUVsZW1lbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvV2ViS2l0
Q3VzdG9tRWxlbWVudDoKLQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0OgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvUmlnaHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0KLSAgICB1bnNpZ25lZCBtYXRjaFR5cGUgPSBtX3NlbGVjdG9yLT5tX21hdGNoOwot
ICAgIGlmIChpc0NvbXBhdGliaWxpdHlFbGVtZW50VHlwZSkKLSAgICAgICAgbWF0Y2hUeXBlID0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ7CisgICAgQVNTRVJUKG1fc2VsZWN0b3ItPm1fbWF0
Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKIAotICAgIG1fc2VsZWN0b3ItPm1fbWF0
Y2ggPSBtYXRjaFR5cGU7Ci0gICAgbV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBlID0gcHNldWRvVHlw
ZTsKKyAgICBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcHNldWRvVHlw
ZSA9IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhwc2V1ZG9D
bGFzc1N0cmluZyk7CisgICAgbV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBlID0gcHNldWRvVHlwZS5w
c2V1ZG9DbGFzczsKIH0KIAogYm9vbCBDU1NQYXJzZXJTZWxlY3Rvcjo6aXNTaW1wbGUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IDFkOWFkMTUzZTU4NjEzZDhi
M2RhZDk1ODU3OTczNWFhZTJiMWY3ZjcuLjU2YzIwNmZjOGFkNWZiMGRmNTZlMzRmY2Q0ZTI1NzZh
ODlmZTVhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTE3NCw2ICsx
NzQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENTU1BhcnNlclNlbGVjdG9yKiBwYXJzZVBhZ2VQ
c2V1ZG9TZWxlY3Rvcihjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwog
ICAgIHN0YXRpYyBDU1NQYXJzZXJTZWxlY3RvciogcGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3Io
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKICAgICBzdGF0aWMgQ1NTUGFyc2Vy
U2VsZWN0b3IqIHBhcnNlUHNldWRvQ3VlRnVuY3Rpb25TZWxlY3Rvcihjb25zdCBDU1NQYXJzZXJT
dHJpbmcmIGZ1bmN0aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4+KiBzZWxlY3RvclZlY3Rvcik7CisgICAgc3RhdGljIENTU1BhcnNlclNlbGVj
dG9yKiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3RvcihDU1NQ
YXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwogCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3Io
KTsKICAgICBleHBsaWNpdCBDU1NQYXJzZXJTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJik7
CkBAIC0xOTEsNyArMTkyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVj
dG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JW
ZWN0b3IpOwogCi0gICAgdm9pZCBzZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3Ry
aW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKKyAgICB2b2lkIHNldFBzZXVkb0NsYXNzVmFsdWUoY29u
c3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CiAgICAgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPnBzZXVk
b1R5cGUoKTsgfQogICAgIGJvb2wgaXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rvci0+aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAKaW5kZXggMDRlNGY2ZTJiZDYxOGViZjBkMWU2NjQ3YzZlZTE3YTM0OThh
NWU5ZS4uNDAxNTAxNTQzOTYzM2RlMzc3NjVjMTIzZWU4N2M0ZGJjM2RiNDY1YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yOTQsMTQgKzI5NCw5IEBAIGJvb2wgQ1NTU2VsZWN0
b3I6Om9wZXJhdG9yPT0oY29uc3QgQ1NTU2VsZWN0b3ImIG90aGVyKSBjb25zdAogICAgIHJldHVy
biB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBhcHBlbmRQc2V1ZG9UeXBlVGFpbElmTmVjZXNzYXJ5
KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQorc3RhdGlj
IHZvaWQgYXBwZW5kUHNldWRvQ2xhc3NGdW5jdGlvblRhaWwoU3RyaW5nQnVpbGRlciYgc3RyLCBj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiB7CiAgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNl
dWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgotICAgICAgICBp
ZiAoY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QgPSBzZWxlY3Rvci0+c2VsZWN0
b3JMaXN0KCkpCi0gICAgICAgICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKS0+
c2VsZWN0b3JUZXh0KCkpOwotICAgICAgICBzdHIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6CiAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvTnRoQ2hpbGQ6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENo
aWxkOgpAQCAtMzEwLDE5ICszMDUsMTAgQEAgc3RhdGljIHZvaWQgYXBwZW5kUHNldWRvVHlwZVRh
aWxJZk5lY2Vzc2FyeShTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG8KICAgICAg
ICAgc3RyLmFwcGVuZChzZWxlY3Rvci0+YXJndW1lbnQoKSk7CiAgICAgICAgIHN0ci5hcHBlbmQo
JyknKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55OiB7
Ci0gICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9yID0gc2VsZWN0b3It
PnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOwotICAgICAgICBmb3IgKGNvbnN0IENTU1NlbGVjdG9y
KiBzdWJTZWxlY3RvciA9IGZpcnN0U3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9yOyBzdWJTZWxlY3Rv
ciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJTZWxlY3RvcikpIHsKLSAgICAgICAgICAgIGlm
IChzdWJTZWxlY3RvciAhPSBmaXJzdFN1YlNlbGVjdG9yKQotICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmQoJywnKTsKLSAgICAgICAgICAgIHN0ci5hcHBlbmQoc3ViU2VsZWN0b3ItPnNlbGVjdG9y
VGV4dCgpKTsKLSAgICAgICAgfQotICAgICAgICBzdHIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CisKIH0KIAog
U3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUp
IGNvbnN0CkBAIC0zNDcsMjIgKzMzMywxOTQgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3Rv
clRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAgICAgICAgIH0gZWxzZSBpZiAo
Y3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKSB7CiAgICAgICAgICAgICBzdHIuYXBw
ZW5kKCcuJyk7CiAgICAgICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKGNzLT52YWx1ZSgpLCBz
dHIpOwotICAgICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzcyB8fCBjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzKSB7
CisgICAgICAgIH0gZWxzZSBpZiAoY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGNzLT5wc2V1ZG9UeXBlKCkpIHsKLSAgICAgICAg
ICAgIGNhc2UgUHNldWRvRmlyc3Q6Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpmaXJzdCIpOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW5pbWF0aW5n
RnVsbFNjcmVlblRyYW5zaXRpb246CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
Ijotd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbi10cmFuc2l0aW9uIik7CiAgICAgICAgICAg
ICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFBzZXVkb0xlZnQ6Ci0gICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjpsZWZ0Iik7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9Bbnk6IHsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOi13
ZWJraXQtYW55KCIpOworICAgICAgICAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1
YlNlbGVjdG9yID0gY3MtPnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOworICAgICAgICAgICAgICAg
IGZvciAoY29uc3QgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gZmlyc3RTdWJTZWxlY3Rvcjsg
c3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YlNlbGVj
dG9yKSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoc3ViU2VsZWN0b3IgIT0gZmlyc3RTdWJT
ZWxlY3RvcikKKyAgICAgICAgICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJywnKTsKKyAgICAg
ICAgICAgICAgICAgICAgc3RyLmFwcGVuZChzdWJTZWxlY3Rvci0+c2VsZWN0b3JUZXh0KCkpOwor
ICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CiAgICAg
ICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFBzZXVkb1JpZ2h0OgotICAgICAg
ICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cmlnaHQiKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FueUxpbms6CisgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWFueS1saW5rIik7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmQoJzonKTsKLSAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNzLT52YWx1ZSgpKTsKLSAgICAg
ICAgICAgICAgICBhcHBlbmRQc2V1ZG9UeXBlVGFpbElmTmVjZXNzYXJ5KHN0ciwgY3MpOworICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQXV0b2ZpbGw6CisgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWF1dG9maWxsIik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgorICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1kcmFnIik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxs
UGFnZU1lZGlhOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1m
dWxsLXBhZ2UtbWVkaWEiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW46CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjotd2Via2l0LWZ1bGwtc2NyZWVuIik7CisgICAgICAgICAgICAgICAgYnJl
YWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuQW5jZXN0
b3I6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWZ1bGwtc2Ny
ZWVuLWFuY2VzdG9yIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuRG9jdW1lbnQ6CisgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWZ1bGwtc2NyZWVuLWRvY3VtZW50Iik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9B
Y3RpdmU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjphY3RpdmUiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0NoZWNrZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpjaGVja2VkIik7
CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9Db3JuZXJQcmVzZW50OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
Y29ybmVyLXByZXNlbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlY3JlbWVudDoKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kTGl0ZXJhbCgiOmRlY3JlbWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVmYXVsdDoKKyAgICAgICAgICAgICAgICBz
dHIuYXBwZW5kTGl0ZXJhbCgiOmRlZmF1bHQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgorICAgICAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZGlzYWJsZWQiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RvdWJsZUJ1dHRvbjoKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRvdWJsZS1idXR0b24iKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Vt
cHR5OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZW1wdHkiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Vu
YWJsZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjplbmFibGVkIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9FbmQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjplbmQiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Zp
cnN0Q2hpbGQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdC1jaGls
ZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvRmlyc3RPZlR5cGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpmaXJzdC1vZi10eXBlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Gb2N1czoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOmZvY3VzIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdXR1cmU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVu
ZExpdGVyYWwoIjpmdXR1cmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvcml6b250YWw6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpob3Jpem9udGFsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKKyAgICAgICAgICAgICAg
ICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmhvdmVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlOgorICAgICAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6aW4tcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKKyAgICAg
ICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmluY3JlbWVudCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1p
bmF0ZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmluZGV0ZXJtaW5hdGUi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0ludmFsaWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjppbnZh
bGlkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9MYW5nOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGFu
ZygiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIs
IGNzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0xhc3RDaGlsZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
Omxhc3QtY2hpbGQiKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVu
ZExpdGVyYWwoIjpsYXN0LW9mLXR5cGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpsaW5rIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob0J1dHRvbjoKKyAgICAgICAgICAgICAgICBz
dHIuYXBwZW5kTGl0ZXJhbCgiOm5vLWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgorICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6bm90KCIpOworICAgICAgICAgICAgICAgIGlmIChjb25zdCBD
U1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IGNzLT5zZWxlY3Rvckxpc3QoKSkKKyAgICAg
ICAgICAgICAgICAgICAgc3RyLmFwcGVuZChzZWxlY3Rvckxpc3QtPmZpcnN0KCktPnNlbGVjdG9y
VGV4dCgpKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoK
KyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1jaGlsZCgiKTsKKyAgICAg
ICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050
aExhc3RDaGlsZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1sYXN0
LWNoaWxkKCIpOworICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWls
KHN0ciwgY3MpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOm50aC1sYXN0LW9mLXR5cGUoIik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHNl
dWRvQ2xhc3NGdW5jdGlvblRhaWwoc3RyLCBjcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6CisgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpudGgtb2YtdHlwZSgiKTsKKyAgICAgICAgICAgICAg
ICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlDaGlsZDoK
KyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm9ubHktY2hpbGQiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09u
bHlPZlR5cGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpvbmx5LW9mLXR5
cGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb09wdGlvbmFsOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
b3B0aW9uYWwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb091dE9mUmFuZ2U6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjpvdXQtb2YtcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3Q6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjpwYXN0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkT25seToKKyAgICAgICAgICAgICAgICBzdHIu
YXBwZW5kTGl0ZXJhbCgiOnJlYWQtb25seSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVhZFdyaXRlOgorICAgICAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cmVhZC13cml0ZSIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVxdWlyZWQ6CisgICAg
ICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpyZXF1aXJlZCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUm9vdDoKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJvb3QiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njb3BlOgorICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6c2NvcGUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1NpbmdsZUJ1dHRv
bjoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnNpbmdsZS1idXR0b24iKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb1N0YXJ0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6c3RhcnQiKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb1RhcmdldDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnRhcmdldCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmFsaWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjp2YWxpZCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmVydGljYWw6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjp2ZXJ0
aWNhbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvVmlzaXRlZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
OnZpc2l0ZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6d2luZG93LWluYWN0aXZlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9FbGVtZW50KSB7CiAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
OjoiKTsKQEAgLTQwNSw3ICs1NjMsMjIgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRl
eHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgc2VyaWFs
aXplU3RyaW5nKGNzLT52YWx1ZSgpLCBzdHIpOwogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQo
J10nKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjcy0+bV9tYXRjaCA9PSBD
U1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNzLT5w
c2V1ZG9UeXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2UgUHNldWRvRmlyc3Q6CisgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBQc2V1ZG9MZWZ0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6bGVmdCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBQc2V1ZG9SaWdodDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJp
Z2h0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAg
ICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQogICAgICAg
ICB9CisKICAgICAgICAgaWYgKGNzLT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxl
Y3RvciB8fCAhY3MtPnRhZ0hpc3RvcnkoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBj
cyA9IGNzLT50YWdIaXN0b3J5KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2Vs
ZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluIGIvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5p
bgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4xZjYyOGExYjk1MzJkMmE1ZWUzNmFkM2RiM2JkYzY4Y2E4NGUzOGUwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgpAQCAtMCwwICsxLDY3IEBACista2h0bWwtZHJh
ZworLXdlYmtpdC1hbnkoCistd2Via2l0LWFueS1saW5rCistd2Via2l0LWF1dG9maWxsCistd2Vi
a2l0LWRyYWcKKy13ZWJraXQtZnVsbC1wYWdlLW1lZGlhCithY3RpdmUKK2FmdGVyLCBQc2V1ZG9V
bmtub3duLCBQc2V1ZG9BZnRlcgorYmVmb3JlLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9CZWZvcmUK
K2NoZWNrZWQKK2Nvcm5lci1wcmVzZW50CitkZWNyZW1lbnQKK2RlZmF1bHQKK2Rpc2FibGVkCitk
b3VibGUtYnV0dG9uCitlbXB0eQorZW5hYmxlZAorZW5kCitmaXJzdC1jaGlsZAorZmlyc3QtbGV0
dGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9GaXJzdExldHRlcgorZmlyc3QtbGluZSwgUHNldWRv
VW5rbm93biwgUHNldWRvRmlyc3RMaW5lCitmaXJzdC1vZi10eXBlCitmb2N1cworaG9yaXpvbnRh
bAoraG92ZXIKK2luLXJhbmdlCitpbmNyZW1lbnQKK2luZGV0ZXJtaW5hdGUKK2ludmFsaWQKK2xh
bmcoCitsYXN0LWNoaWxkCitsYXN0LW9mLXR5cGUKK2xpbmsKK25vLWJ1dHRvbgorbm90KAorbnRo
LWNoaWxkKAorbnRoLWxhc3QtY2hpbGQoCitudGgtbGFzdC1vZi10eXBlKAorbnRoLW9mLXR5cGUo
Citvbmx5LWNoaWxkCitvbmx5LW9mLXR5cGUKK29wdGlvbmFsCitvdXQtb2YtcmFuZ2UKK3JlYWQt
b25seQorcmVhZC13cml0ZQorcmVxdWlyZWQKK3Jvb3QKK3Njb3BlCitzaW5nbGUtYnV0dG9uCitz
dGFydAordGFyZ2V0Cit2YWxpZAordmVydGljYWwKK3Zpc2l0ZWQKK3dpbmRvdy1pbmFjdGl2ZQor
CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorLXdlYmtpdC1hbmltYXRpbmctZnVsbC1zY3Jl
ZW4tdHJhbnNpdGlvbgorLXdlYmtpdC1mdWxsLXNjcmVlbgorLXdlYmtpdC1mdWxsLXNjcmVlbi1h
bmNlc3RvcgorLXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1bWVudAorI2VuZGlmCisKKyNpZiBFTkFC
TEUoVklERU9fVFJBQ0spCitmdXR1cmUKK3Bhc3QKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oIGIvU291cmNlL1dlYkNvcmUvY3Nz
L1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oCmluZGV4IDdkMjYyM2E3MDNmMWUwOWJkM2JiZWFkZDEx
YWJkNjQzZWI3NTQwMWEuLjhlNzE1ZjU1ZjI2M2VkNGU4M2ZmZDI5YWNiMGZmNmJkYjE0M2NiYWIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgKQEAgLTMxLDcg
KzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotQ1NTU2VsZWN0b3I6OlBzZXVkb1R5
cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0IFN0cmluZ0ltcGwmIHBzZXVkb1R5cGVTdHJp
bmcpOworc3RydWN0IFBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudCB7Cisg
ICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRvQ2xhc3M7CisgICAgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGUgY29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQ7Cit9OworCitQc2V1ZG9DbGFz
c09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGli
aWxpdHlFbGVtZW50U3RyaW5nKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlwZVN0cmlu
Zyk7CiBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29u
c3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0cmluZyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAu
aW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjkzYTYxNDBiNmZkNmQxMTUwNTY4ZDIwNmIxY2RlYzgx
NWM2NWIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4KKysrIC9kZXYvbnVsbApA
QCAtMSw2NyArMCwwIEBACi0ta2h0bWwtZHJhZwotLXdlYmtpdC1hbnkoCi0td2Via2l0LWFueS1s
aW5rCi0td2Via2l0LWF1dG9maWxsCi0td2Via2l0LWRyYWcKLS13ZWJraXQtZnVsbC1wYWdlLW1l
ZGlhCi1hY3RpdmUKLWFmdGVyCi1iZWZvcmUKLWNoZWNrZWQKLWNvcm5lci1wcmVzZW50Ci1kZWNy
ZW1lbnQKLWRlZmF1bHQKLWRpc2FibGVkCi1kb3VibGUtYnV0dG9uCi1lbXB0eQotZW5hYmxlZAot
ZW5kCi1maXJzdC1jaGlsZAotZmlyc3QtbGV0dGVyCi1maXJzdC1saW5lCi1maXJzdC1vZi10eXBl
Ci1mb2N1cwotaG9yaXpvbnRhbAotaG92ZXIKLWluLXJhbmdlCi1pbmNyZW1lbnQKLWluZGV0ZXJt
aW5hdGUKLWludmFsaWQKLWxhbmcoCi1sYXN0LWNoaWxkCi1sYXN0LW9mLXR5cGUKLWxpbmsKLW5v
LWJ1dHRvbgotbm90KAotbnRoLWNoaWxkKAotbnRoLWxhc3QtY2hpbGQoCi1udGgtbGFzdC1vZi10
eXBlKAotbnRoLW9mLXR5cGUoCi1vbmx5LWNoaWxkCi1vbmx5LW9mLXR5cGUKLW9wdGlvbmFsCi1v
dXQtb2YtcmFuZ2UKLXJlYWQtb25seQotcmVhZC13cml0ZQotcmVxdWlyZWQKLXJvb3QKLXNjb3Bl
Ci1zaW5nbGUtYnV0dG9uCi1zdGFydAotdGFyZ2V0Ci12YWxpZAotdmVydGljYWwKLXZpc2l0ZWQK
LXdpbmRvdy1pbmFjdGl2ZQotCi0jaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotLXdlYmtpdC1h
bmltYXRpbmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbgotLXdlYmtpdC1mdWxsLXNjcmVlbgotLXdl
YmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvcgotLXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1bWVudAot
I2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi1mdXR1cmUKLXBhc3QKLSNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5k
Q29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVj
dG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41
YzJjNDNkNDdiZDRhYjY4OTAxYTgxZDEzNTFkNWRlMjUwNTgzYmQ4Ci0tLSAvZGV2L251bGwKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJp
bGl0eUVsZW1lbnRNYXAucHkKQEAgLTAsMCArMSwyMTUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisj
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisj
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IG9zCitp
bXBvcnQgc3lzCisKKworZGVmIGVudW1lcmFibGVQc2V1ZG9UeXBlKHN0cmluZ1BzZXVkb1R5cGUp
OgorICAgIG91dHB1dCA9IFsnQ1NTU2VsZWN0b3I6OlBzZXVkbyddCisKKyAgICBpZiBzdHJpbmdQ
c2V1ZG9UeXBlLmVuZHN3aXRoKCcoJyk6CisgICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJp
bmdQc2V1ZG9UeXBlWzotMV0KKworICAgIHdlYmtpdFByZWZpeCA9ICctd2Via2l0LScKKyAgICBp
ZiAoc3RyaW5nUHNldWRvVHlwZS5zdGFydHN3aXRoKHdlYmtpdFByZWZpeCkpOgorICAgICAgICBz
dHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlwZVtsZW4od2Via2l0UHJlZml4KTpdCisK
KyAgICBraHRtbFByZWZpeCA9ICcta2h0bWwtJworICAgIGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0
YXJ0c3dpdGgoa2h0bWxQcmVmaXgpKToKKyAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmlu
Z1BzZXVkb1R5cGVbbGVuKGtodG1sUHJlZml4KTpdCisKKyAgICBzdWJzdHJpbmdfc3RhcnQgPSAw
CisgICAgbmV4dF9kYXNoX3Bvc2l0aW9uID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJykKKyAg
ICB3aGlsZSAobmV4dF9kYXNoX3Bvc2l0aW9uICE9IC0xKToKKyAgICAgICAgb3V0cHV0LmFwcGVu
ZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydF0udXBwZXIoKSkKKyAgICAgICAgb3V0
cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydCArIDE6bmV4dF9kYXNo
X3Bvc2l0aW9uXSkKKyAgICAgICAgc3Vic3RyaW5nX3N0YXJ0ID0gbmV4dF9kYXNoX3Bvc2l0aW9u
ICsgMQorICAgICAgICBuZXh0X2Rhc2hfcG9zaXRpb24gPSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQo
Jy0nLCBzdWJzdHJpbmdfc3RhcnQpCisKKyAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5
cGVbc3Vic3RyaW5nX3N0YXJ0XS51cHBlcigpKQorICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNl
dWRvVHlwZVtzdWJzdHJpbmdfc3RhcnQgKyAxOl0pCisgICAgcmV0dXJuICcnLmpvaW4ob3V0cHV0
KQorCisKK2RlZiBleHBhbmRfaWZkZWZfY29uZGl0aW9uKGNvbmRpdGlvbik6CisgICAgcmV0dXJu
IGNvbmRpdGlvbi5yZXBsYWNlKCcoJywgJ18nKS5yZXBsYWNlKCcpJywgJycpCisKK291dHB1dF9m
aWxlID0gb3BlbignU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFw
LmdwZXJmJywgJ3cnKQorCitvdXRwdXRfZmlsZS53cml0ZSgiIiIKKyV7CisvKgorICogQ29weXJp
Z2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
Ly8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmluIGJ5IG1ha2Vwcm9wLCBkbyBub3QgZWRpdCBieSBoYW5kLgorCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgiCisKKyNpZiBk
ZWZpbmVkKF9fY2xhbmdfXykKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCisjcHJhZ21hIGNs
YW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLXJlZ2lzdGVyIgorI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCisjZW5kaWYK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU2VsZWN0b3JQc2V1ZG9DbGFzc09yQ29t
cGF0aWJpbGl0eVBzZXVkb0VsZW1lbnRFbnRyeSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAg
ICBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcHNldWRvVHlwZXM7Cit9
OworCislfQorJXN0cnVjdC10eXBlCislZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAse0NTU1Nl
bGVjdG9yOjpQc2V1ZG9Vbmtub3duLENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3dufQorJWRlZmlu
ZSBjbGFzcy1uYW1lIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1h
cEhhc2gKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVz
CislZ2xvYmFsLXRhYmxlCislaWdub3JlLWNhc2UKKyVjb21wYXJlLXN0cm5jbXAKKyVlbnVtCisK
K3N0cnVjdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVu
dHJ5OworCislJQorIiIiKQorCit3ZWJjb3JlX2RlZmluZXMgPSBbaS5zdHJpcCgpIGZvciBpIGlu
IHN5cy5hcmd2Wy0xXS5zcGxpdCgnICcpXQorCitsb25nZXN0X2tleXdvcmQgPSAwCisKK2lnbm9y
ZV91bnRpbF9lbmRpZiA9IEZhbHNlCitpbnB1dF9maWxlID0gb3BlbihzeXMuYXJndlsxXSwgJ3In
KQorZm9yIGxpbmUgaW4gaW5wdXRfZmlsZToKKyAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAg
aWYgbm90IGxpbmU6CisgICAgICAgIGNvbnRpbnVlCisKKyAgICBpZiBsaW5lLnN0YXJ0c3dpdGgo
JyNpZiAnKToKKyAgICAgICAgY29uZGl0aW9uID0gbGluZVs0Ol0uc3RyaXAoKQorICAgICAgICBp
ZiBleHBhbmRfaWZkZWZfY29uZGl0aW9uKGNvbmRpdGlvbikgbm90IGluIHdlYmNvcmVfZGVmaW5l
czoKKyAgICAgICAgICAgIGlnbm9yZV91bnRpbF9lbmRpZiA9IFRydWUKKyAgICAgICAgY29udGlu
dWUKKworICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnI2VuZGlmJyk6CisgICAgICAgIGlnbm9yZV91
bnRpbF9lbmRpZiA9IEZhbHNlCisgICAgICAgIGNvbnRpbnVlCisKKyAgICBpZiBpZ25vcmVfdW50
aWxfZW5kaWY6CisgICAgICAgIGNvbnRpbnVlCisKKyAgICBrZXl3b3JkX2RlZmluaXRpb24gPSBs
aW5lLnNwbGl0KCcsJykKKyAgICBpZiBsZW4oa2V5d29yZF9kZWZpbml0aW9uKSA9PSAxOgorICAg
ICAgICBrZXl3b3JkID0ga2V5d29yZF9kZWZpbml0aW9uWzBdLnN0cmlwKCkKKyAgICAgICAgb3V0
cHV0X2ZpbGUud3JpdGUoJyIlcyIsIHslcywgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd259XG4n
ICUgKGtleXdvcmQsIGVudW1lcmFibGVQc2V1ZG9UeXBlKGtleXdvcmQpKSkKKyAgICBlbHNlOgor
ICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgnIiVzIiwge0NTU1NlbGVjdG9yOjolcywgQ1NTU2Vs
ZWN0b3I6OiVzfVxuJyAlIChrZXl3b3JkX2RlZmluaXRpb25bMF0uc3RyaXAoKSwga2V5d29yZF9k
ZWZpbml0aW9uWzFdLnN0cmlwKCksIGtleXdvcmRfZGVmaW5pdGlvblsyXS5zdHJpcCgpKSkKKwor
ICAgIGxvbmdlc3Rfa2V5d29yZCA9IG1heChsb25nZXN0X2tleXdvcmQsIGxlbihrZXl3b3JkKSkK
Kworb3V0cHV0X2ZpbGUud3JpdGUoIiIiJSUKKworc3RhdGljIGlubGluZSBjb25zdCBTZWxlY3Rv
clBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5KiBwYXJzZVBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3Rl
cnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1cm4gU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwSGFzaDo6aW5fd29yZF9zZXQocmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBjaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0aCk7Cit9IiIiKQorCitvdXRwdXRfZmls
ZS53cml0ZSgiIiIKKworc3RhdGljIGlubGluZSBjb25zdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JD
b21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5KiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0
aWJpbGl0eUVsZW1lbnRTdHJpbmcoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxl
bmd0aCkKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBtYXhLZXl3b3JkTGVuZ3RoID0gJXM7CisgICAg
TENoYXIgYnVmZmVyW21heEtleXdvcmRMZW5ndGhdOworICAgIGlmIChsZW5ndGggPiBtYXhLZXl3
b3JkTGVuZ3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGZvciAodW5zaWduZWQg
aSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFy
YWN0ZXJzW2ldOworICAgICAgICBpZiAoY2hhcmFjdGVyICYgfjB4ZmYpCisgICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDxMQ2hhcj4o
Y2hhcmFjdGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRp
YmlsaXR5RWxlbWVudFN0cmluZyhidWZmZXIsIGxlbmd0aCk7Cit9CisiIiIgJSBsb25nZXN0X2tl
eXdvcmQpCisKK291dHB1dF9maWxlLndyaXRlKCIiIgorUHNldWRvQ2xhc3NPckNvbXBhdGliaWxp
dHlQc2V1ZG9FbGVtZW50IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0
cmluZyhjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpCit7CisgICAgY29u
c3QgU2VsZWN0b3JQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnRFbnRyeSog
ZW50cnk7CisgICAgaWYgKHBzZXVkb1R5cGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAgIGVudHJ5
ID0gcGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKHBzZXVkb1R5
cGVTdHJpbmcuY2hhcmFjdGVyczgoKSwgcHNldWRvVHlwZVN0cmluZy5sZW5ndGgoKSk7CisgICAg
ZWxzZQorICAgICAgICBlbnRyeSA9IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudFN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nLmNoYXJhY3RlcnMxNigpLCBwc2V1ZG9UeXBlU3Ry
aW5nLmxlbmd0aCgpKTsKKworICAgIGlmIChlbnRyeSkKKyAgICAgICAgcmV0dXJuIGVudHJ5LT5w
c2V1ZG9UeXBlczsKKyAgICByZXR1cm4geyBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93biwgQ1NT
U2VsZWN0b3I6OlBzZXVkb1Vua25vd24gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjaWYgZGVmaW5lZChfX2NsYW5nX18pCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisj
ZW5kaWYKKworIiIiKQorb3V0cHV0X2ZpbGUuY2xvc2UoKQorCitncGVyZl9jb21tYW5kID0gJ2dw
ZXJmJworaWYgJ0dQRVJGJyBpbiBvcy5lbnZpcm9uOgorICAgIGdwZXJmX2NvbW1hbmQgPSBvcy5l
bnZpcm9uWydHUEVSRiddCisKK2dwZXJmX3JldHVybiA9IG9zLnN5c3RlbSgiJXMgLS1rZXktcG9z
aXRpb25zPScqJyAtbSAxMCAtcyAyIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5
RWxlbWVudE1hcC5ncGVyZiAtLW91dHB1dC1maWxlPVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5jcHAiICUgZ3BlcmZfY29tbWFuZCkKK2lmIGdwZXJmX3JldHVy
biAhPSAwOgorICAgIHByaW50KCJFcnJvciB3aGVuIGdlbmVyYXRpbmcgU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCBmcm9tIFNlbGVjdG9yUHNldWRvQ2xh
c3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiA6KCIpCisgICAgc3lzLmV4aXQoZ3Bl
cmZfcmV0dXJuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBz
ZXVkb1R5cGVNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYmU5YmU0YTkwOTU2NmZkMjUy
OWQ3MTYzNGQzZTVjZThlNGMyMmViMy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1h
cC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIwNSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRo
b24KLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAot
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgot
IyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBvcwot
aW1wb3J0IHN5cwotCi0KLWRlZiBlbnVtZXJhYmxlUHNldWRvVHlwZShzdHJpbmdQc2V1ZG9UeXBl
KToKLSAgICBvdXRwdXQgPSBbJ0NTU1NlbGVjdG9yOjpQc2V1ZG8nXQotCi0gICAgaWYgc3RyaW5n
UHNldWRvVHlwZS5lbmRzd2l0aCgnKCcpOgotICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3Ry
aW5nUHNldWRvVHlwZVs6LTFdCi0KLSAgICB3ZWJraXRQcmVmaXggPSAnLXdlYmtpdC0nCi0gICAg
aWYgKHN0cmluZ1BzZXVkb1R5cGUuc3RhcnRzd2l0aCh3ZWJraXRQcmVmaXgpKToKLSAgICAgICAg
c3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVbbGVuKHdlYmtpdFByZWZpeCk6XQot
Ci0gICAga2h0bWxQcmVmaXggPSAnLWtodG1sLScKLSAgICBpZiAoc3RyaW5nUHNldWRvVHlwZS5z
dGFydHN3aXRoKGtodG1sUHJlZml4KSk6Ci0gICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJp
bmdQc2V1ZG9UeXBlW2xlbihraHRtbFByZWZpeCk6XQotCi0gICAgc3Vic3RyaW5nX3N0YXJ0ID0g
MAotICAgIG5leHRfZGFzaF9wb3NpdGlvbiA9IHN0cmluZ1BzZXVkb1R5cGUuZmluZCgnLScpCi0g
ICAgd2hpbGUgKG5leHRfZGFzaF9wb3NpdGlvbiAhPSAtMSk6Ci0gICAgICAgIG91dHB1dC5hcHBl
bmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3RhcnRdLnVwcGVyKCkpCi0gICAgICAgIG91
dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3RhcnQgKyAxOm5leHRfZGFz
aF9wb3NpdGlvbl0pCi0gICAgICAgIHN1YnN0cmluZ19zdGFydCA9IG5leHRfZGFzaF9wb3NpdGlv
biArIDEKLSAgICAgICAgbmV4dF9kYXNoX3Bvc2l0aW9uID0gc3RyaW5nUHNldWRvVHlwZS5maW5k
KCctJywgc3Vic3RyaW5nX3N0YXJ0KQotCi0gICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9U
eXBlW3N1YnN0cmluZ19zdGFydF0udXBwZXIoKSkKLSAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1Bz
ZXVkb1R5cGVbc3Vic3RyaW5nX3N0YXJ0ICsgMTpdKQotICAgIHJldHVybiAnJy5qb2luKG91dHB1
dCkKLQotCi1kZWYgZXhwYW5kX2lmZGVmX2NvbmRpdGlvbihjb25kaXRpb24pOgotICAgIHJldHVy
biBjb25kaXRpb24ucmVwbGFjZSgnKCcsICdfJykucmVwbGFjZSgnKScsICcnKQotCi1vdXRwdXRf
ZmlsZSA9IG9wZW4oJ1NlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZicsICd3JykKLQotb3V0cHV0
X2ZpbGUud3JpdGUoIiIiCi0lewotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLS8vIFRoaXMgZmlsZSBpcyBhdXRvbWF0
aWNhbGx5IGdlbmVyYXRlZCBmcm9tIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5pbiBieSBtYWtlcHJv
cCwgZG8gbm90IGVkaXQgYnkgaGFuZC4KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUg
IlNlbGVjdG9yUHNldWRvVHlwZU1hcC5oIgotCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJh
Z21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQg
Ii1XZGVwcmVjYXRlZC1yZWdpc3RlciIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsK
LQotc3RydWN0IFNlbGVjdG9yUHNldWRvVHlwZUVudHJ5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1l
OwotICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHR5cGU7Ci19OwotCi0lfQotJXN0cnVjdC10
eXBlCi0lZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAsQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25v
d24KLSVkZWZpbmUgY2xhc3MtbmFtZSBTZWxlY3RvclBzZXVkb1R5cGVNYXBIYXNoCi0lb21pdC1z
dHJ1Y3QtdHlwZQotJWxhbmd1YWdlPUMrKwotJXJlYWRvbmx5LXRhYmxlcwotJWdsb2JhbC10YWJs
ZQotJWlnbm9yZS1jYXNlCi0lY29tcGFyZS1zdHJuY21wCi0lZW51bQotCi1zdHJ1Y3QgU2VsZWN0
b3JQc2V1ZG9UeXBlRW50cnk7Ci0KLSUlCi0iIiIpCi0KLXdlYmNvcmVfZGVmaW5lcyA9IFtpLnN0
cmlwKCkgZm9yIGkgaW4gc3lzLmFyZ3ZbLTFdLnNwbGl0KCcgJyldCi0KLWxvbmdlc3Rfa2V5d29y
ZCA9IDAKLQotaWdub3JlX3VudGlsX2VuZGlmID0gRmFsc2UKLWlucHV0X2ZpbGUgPSBvcGVuKHN5
cy5hcmd2WzFdLCAncicpCi1mb3IgbGluZSBpbiBpbnB1dF9maWxlOgotICAgIGtleXdvcmQgPSBs
aW5lLnN0cmlwKCkKLSAgICBpZiBub3Qga2V5d29yZDoKLSAgICAgICAgY29udGludWUKLQotICAg
IGlmIGtleXdvcmQuc3RhcnRzd2l0aCgnI2lmICcpOgotICAgICAgICBjb25kaXRpb24gPSBrZXl3
b3JkWzQ6XS5zdHJpcCgpCi0gICAgICAgIGlmIGV4cGFuZF9pZmRlZl9jb25kaXRpb24oY29uZGl0
aW9uKSBub3QgaW4gd2ViY29yZV9kZWZpbmVzOgotICAgICAgICAgICAgaWdub3JlX3VudGlsX2Vu
ZGlmID0gVHJ1ZQotICAgICAgICBjb250aW51ZQotCi0gICAgaWYga2V5d29yZC5zdGFydHN3aXRo
KCcjZW5kaWYnKToKLSAgICAgICAgaWdub3JlX3VudGlsX2VuZGlmID0gRmFsc2UKLSAgICAgICAg
Y29udGludWUKLQotICAgIGlmIGlnbm9yZV91bnRpbF9lbmRpZjoKLSAgICAgICAgY29udGludWUK
LQotICAgIG91dHB1dF9maWxlLndyaXRlKCciJXMiLCAlc1xuJyAlIChrZXl3b3JkLCBlbnVtZXJh
YmxlUHNldWRvVHlwZShrZXl3b3JkKSkpCi0gICAgbG9uZ2VzdF9rZXl3b3JkID0gbWF4KGxvbmdl
c3Rfa2V5d29yZCwgbGVuKGtleXdvcmQpKQotCi1vdXRwdXRfZmlsZS53cml0ZSgiIiIlJQotCi1z
dGF0aWMgaW5saW5lIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlwZVN0cmlu
Zyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIGlmIChj
b25zdCBTZWxlY3RvclBzZXVkb1R5cGVFbnRyeSogZW50cnkgPSBTZWxlY3RvclBzZXVkb1R5cGVN
YXBIYXNoOjppbl93b3JkX3NldChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjaGFyYWN0
ZXJzKSwgbGVuZ3RoKSkKLSAgICAgICAgcmV0dXJuIGVudHJ5LT50eXBlOwotICAgIHJldHVybiBD
U1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bjsKLX0iIiIpCi0KLW91dHB1dF9maWxlLndyaXRlKCIi
IgotCi1zdGF0aWMgaW5saW5lIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlw
ZVN0cmluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQotewotICAg
IGNvbnN0IHVuc2lnbmVkIG1heEtleXdvcmRMZW5ndGggPSAlczsKLSAgICBMQ2hhciBidWZmZXJb
bWF4S2V5d29yZExlbmd0aF07Ci0gICAgaWYgKGxlbmd0aCA+IG1heEtleXdvcmRMZW5ndGgpCi0g
ICAgICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bjsKLQotICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewotICAgICAgICBVQ2hhciBjaGFyYWN0ZXIg
PSBjaGFyYWN0ZXJzW2ldOwotICAgICAgICBpZiAoY2hhcmFjdGVyICYgfjB4ZmYpCi0gICAgICAg
ICAgICByZXR1cm4gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd247Ci0KLSAgICAgICAgYnVmZmVy
W2ldID0gc3RhdGljX2Nhc3Q8TENoYXI+KGNoYXJhY3Rlcik7Ci0gICAgfQotICAgIHJldHVybiBw
YXJzZVBzZXVkb1R5cGVTdHJpbmcoYnVmZmVyLCBsZW5ndGgpOwotfQotIiIiICUgbG9uZ2VzdF9r
ZXl3b3JkKQotCi1vdXRwdXRfZmlsZS53cml0ZSgiIiIKLUNTU1NlbGVjdG9yOjpQc2V1ZG9UeXBl
IHBhcnNlUHNldWRvVHlwZVN0cmluZyhjb25zdCBTdHJpbmdJbXBsJiBwc2V1ZG9UeXBlU3RyaW5n
KQotewotICAgIGlmIChwc2V1ZG9UeXBlU3RyaW5nLmlzOEJpdCgpKQotICAgICAgICByZXR1cm4g
cGFyc2VQc2V1ZG9UeXBlU3RyaW5nKHBzZXVkb1R5cGVTdHJpbmcuY2hhcmFjdGVyczgoKSwgcHNl
dWRvVHlwZVN0cmluZy5sZW5ndGgoKSk7Ci0gICAgcmV0dXJuIHBhcnNlUHNldWRvVHlwZVN0cmlu
Zyhwc2V1ZG9UeXBlU3RyaW5nLmNoYXJhY3RlcnMxNigpLCBwc2V1ZG9UeXBlU3RyaW5nLmxlbmd0
aCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQotCi0jaWYgZGVmaW5lZChfX2NsYW5n
X18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCi0jZW5kaWYKLQotIiIiKQotb3V0cHV0
X2ZpbGUuY2xvc2UoKQotCi1ncGVyZl9jb21tYW5kID0gJ2dwZXJmJwotaWYgJ0dQRVJGJyBpbiBv
cy5lbnZpcm9uOgotICAgIGdwZXJmX2NvbW1hbmQgPSBvcy5lbnZpcm9uWydHUEVSRiddCi0KLWdw
ZXJmX3JldHVybiA9IG9zLnN5c3RlbSgiJXMgLS1rZXktcG9zaXRpb25zPScqJyAtbSAxMCAtcyAy
IFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAtLW91dHB1dC1maWxlPVNlbGVjdG9yUHNldWRv
VHlwZU1hcC5jcHAiICUgZ3BlcmZfY29tbWFuZCkKLWlmIGdwZXJmX3JldHVybiAhPSAwOgotICAg
IHByaW50KCJFcnJvciB3aGVuIGdlbmVyYXRpbmcgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCBm
cm9tIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiA6KCIpCi0gICAgc3lzLmV4aXQoZ3BlcmZf
cmV0dXJuKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227509</attachid>
            <date>2014-03-21 16:22:09 -0700</date>
            <delta_ts>2014-03-24 15:16:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130620-20140321162148.patch</filename>
            <type>text/plain</type>
            <size>53726</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MDk0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGIzM2RhNmUwYjNjN2Zj
MzNiZmEyMTliZjAxYWQ3ODU5ZGIzNzViZi4uNGM0ZGFlNGVjODBlODllODQxMzJjZTU0MTY0OTVi
ZjE0ODQ4YTUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDM0IEBACiAyMDE0LTAzLTIxICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgogCisgICAgICAgIFVwZGF0ZSB0aGUg
Y29kZSByZWxhdGVkIHRvIFNlbGVjdG9yUHNldWRvVHlwZU1hcCB0byByZWZsZWN0IGl0cyBuZXcg
cHVycG9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMwNjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2luY2UgcjE2NjA5NCwgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwIG9ubHkgY29udGFpbnMgUHNldWRv
Q2xhc3MgaW5zdGFuY2VzIGFuZCB0aGUgNCBjb21wYXRpYmlsaXR5IFBzZXVkb0VsZW1lbnQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWUgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwIHRvIFNlbGVj
dG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcCBhbmQgdXBkYXRlIHRoZSBw
YXJzaW5nCisgICAgICAgIHRvIHNwbGl0IFBzZXVkb0NsYXNzIGFuZCBQc2V1ZG9FbGVtZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNz
QW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXJTZWxlY3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Bh
cnNlclZhbHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbi4KKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmg6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHk6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weS4KKyAgICAgICAgKGVudW1lcmFi
bGVQc2V1ZG9UeXBlKToKKyAgICAgICAgKGV4cGFuZF9pZmRlZl9jb25kaXRpb24pOgorCisyMDE0
LTAzLTIxICBCZW5qYW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCiAgICAgICAg
IFBzZXVkbyB0eXBlIGNsZWFudXAgcGFydCAyOiBzcGxpdCBwc2V1ZG8gZWxlbWVudHMgcGFyc2lu
ZwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTMwMzcw
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODdiN2U4YWJlMDk1NGFkM2MyZWVkZDExYzIyNmVk
ZjQxYzg2OWFiNi4uOTM3NDc5YTliZmQ4MjM2YWE2NGE1MDllY2QwMmQ4ZDIzM2FlN2FkYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTMxMjcsMTIgKzMxMjcsMTIgQEAgQUREX1NPVVJDRV9XRUJD
T1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9D
U1NHcmFtbWEKIAogIyBHZW5lcmF0ZSBDU1MgU2VsZWN0b3IgcHNldWRvIHR5cGUgbmFtZSB0byB2
YWx1ZSBtYXBzLgogYWRkX2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwCi0gICAgTUFJTl9E
RVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5
CisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmYgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1h
cC5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXRUJDT1JFX0RJUn0vY3NzL21ha2VTZWxlY3Rv
clBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKICAgICBXT1JLSU5HX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KLSAgICBDT01NQU5EICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBl
TWFwLnB5ICR7V0VCQ09SRV9ESVJ9L2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gIiR7RkVB
VFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIKKyAgICBDT01NQU5EICR7UFlUSE9O
X0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5ICR7V0VCQ09SRV9ESVJ9L2Nzcy9TZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gIiR7RkVBVFVSRV9ERUZJTkVT
X1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIKICAgICBWRVJCQVRJTSkKLWxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmNwcCkKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwLmNwcCkKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuZ3BlcmYgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuY3Bw
CiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1
ZG9FbGVtZW50c01hcC5weQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGY0YTI5
NDQ4N2U0YzhhN2UzZGE2MWU4ODBmNjc0M2EyMzc0MTdmNi4uM2M1ZDc3MGNiZWE1ZTRiMzg2MmQ0
ZmJiYTZiNzQxODVmZDkxZmU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03
NTEsOCArNzUxLDggQEAgYWxsIDogXAogICAgIFBsdWdJbnNSZXNvdXJjZXMuaCBcCiAgICAgU1ZH
RWxlbWVudEZhY3RvcnkuY3BwIFwKICAgICBTVkdOYW1lcy5jcHAgXAorICAgIFNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgXAogICAgIFNlbGVjdG9yUHNl
dWRvRWxlbWVudFR5cGVNYXAuY3BwIFwKLSAgICBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIFwK
ICAgICBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCBcCkBAIC03OTcsOSArNzk3LDkgQEAg
Q1NTVmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgY3NzL21h
a2V2YWx1ZXMucGwgYmluZGluZ3Mvc2MKIAogIyBDU1MgU2VsZWN0b3IgcHNldWRvIHR5cGUgbmFt
ZSB0byB2YWx1ZSBtYXAuCiAKLVdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01BUF9L
RVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4KLVNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgOiAkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLnB5ICQoV0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZUEVfTUFQX0tFWVdPUkRT
KQotCXB5dGhvbiAiJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSIg
JChXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09SRFMpICIkKEZFQVRV
UkVfREVGSU5FUykiCitXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09S
RFMgOj0gJChXZWJDb3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlF
bGVtZW50TWFwLmluCitTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRp
YmlsaXR5RWxlbWVudE1hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01B
UF9LRVlXT1JEUykKKwlweXRob24gIiQoV2ViQ29yZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkiICQoV0VCQ09SRV9DU1NfU0VMRUNUT1Jf
UFNFVURPX1RZUEVfTUFQX0tFWVdPUkRTKSAiJChGRUFUVVJFX0RFRklORVMpIgogCiBXRUJDT1JF
X0NTU19TRUxFQ1RPUl9QU0VVRE9fRUxFTUVOVFNfVFlQRV9NQVBfS0VZV09SRFMgOj0gJChXZWJD
b3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5pbgogU2VsZWN0b3JQc2V1ZG9F
bGVtZW50VHlwZU1hcC5jcHAgOiAkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVt
ZW50c01hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19FTEVNRU5UU19UWVBFX01B
UF9LRVlXT1JEUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagppbmRleCAxMjQxMDU0MjBhZDhjMWIyMTRmMWM4YzAyM2Y0YzRjZWNjMGU1Nzdj
Li40YzU1YTZhMWIxM2UxMmI3ZmRhZDkwYzFiYmFiNGY4ZDI3MDY4NmY3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDc1LDcg
KzE0NzUsNyBAQAogCQk0M0E2MjVGODEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xv
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1
RjYxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuaCAqLzsgfTsKIAkJNDNBNjI1
RjkxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4
IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovOyB9OwogCQk0M0E2MjY2NzEzQjNEMTEwMDBBQzk0
QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDNBNjI2NjYxM0IzRDExMDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVk
U3RyaW5nLmNwcCAqLzsgfTsKLQkJNDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9y
UHNldWRvVHlwZU1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFw
LmNwcCAqLzsgfTsKKwkJNDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRv
Q2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2Vs
ZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCAqLzsgfTsKIAkJ
NDNCOTMzNjkxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I5MzM2NzEzQjI2MUIx
MDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCAqLzsgfTsKIAkJNDNCOTMzNkExM0Iy
NjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQjkzMzY4MTNCMjYxQjEwMDQ1ODRCRiAv
KiBTVkdBbmltYXRlZFBvaW50TGlzdC5jcHAgKi87IH07CiAJCTQzQzA5MkJDMTJEOUU0RUUwMEE5
ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0MwOTJCQTEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVy
U1ZHRm9yZWlnbk9iamVjdC5oICovOyB9OwpAQCAtODQwMSwxMCArODQwMSwxMCBAQAogCQk0M0E2
MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZENvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQTYyNUY3MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9y
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29s
b3IuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0E2MjY2NjEzQjNEMTEwMDBB
Qzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwotCQk0M0I4NUVEMDE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IG1ha2VTZWxlY3Rv
clBzZXVkb1R5cGVNYXAucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1RUQy
MThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNl
bGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuZ3BlcmY7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1
RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQk0M0I4NUVEMDE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2Ny
aXB0LnB5dGhvbjsgcGF0aCA9IG1ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAucHk7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQyMThD
QkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1l
bnRNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0b3JQ
c2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRv
Q2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBh
dGggPSBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmY7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAv
KiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVt
ZW50TWFwLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0I5MzM2NzEzQjI2MUIx
MDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNDNCOTMzNjgxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9p
bnRMaXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNDMDkyQjkxMkQ5RTRF
RTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xNTkxMiwxMCArMTU5MTIsMTAgQEAKIAkJCQk0NEEyOEFB
RTEyREZCOEJGMDBBRTkyM0IgLyogTWF0aE1MTmFtZXMuaCAqLywKIAkJCQk3MUUyMTgzODE3MzU5
RkI4MDA2RTZFNEQgLyogUGx1Z0luc1Jlc291cmNlcy5oICovLAogCQkJCTcxRTIxODM5MTczNTlG
QjgwMDZFNkU0RCAvKiBQbHVnSW5zUmVzb3VyY2VzRGF0YS5jcHAgKi8sCisJCQkJNDNCODVFRDIx
OENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudE1hcC5jcHAgKi8sCisJCQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9y
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiAqLywKIAkJCQkyNkFB
MEY5RDE4RDJBMThCMDA0MTkzODEgLyogU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5jcHAg
Ki8sCiAJCQkJMjZBQTBGOUYxOEQyQTFDMTAwNDE5MzgxIC8qIFNlbGVjdG9yUHNldWRvRWxlbWVu
dFR5cGVNYXAuZ3BlcmYgKi8sCi0JCQkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgKi8sCi0JCQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8q
IFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAqLywKIAkJCQk1M0VGNzY2QTE2NTMwQTYxMDA0
Q0JFNDkgLyogU2V0dGluZ3NNYWNyb3MuaCAqLywKIAkJCQk2NTY1ODFFNjA5RDE1MDhEMDAwRTYx
RDcgLyogU1ZHRWxlbWVudEZhY3RvcnkuY3BwICovLAogCQkJCTY1NjU4MUU3MDlEMTUwOEQwMDBF
NjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5oICovLApAQCAtMjE2NDksNyArMjE2NDksNyBAQAog
CQkJCUU1NUY0OTc5MTUxQjg4ODAwMEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwICovLAog
CQkJCUU1QkE3RDYyMTUxNDM3Q0EwMEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLywKIAkJ
CQkyNkFBMEY5OTE4RDI5NzNEMDA0MTkzODEgLyogbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNN
YXAucHkgKi8sCi0JCQkJNDNCODVFRDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VTZWxlY3RvclBz
ZXVkb1R5cGVNYXAucHkgKi8sCisJCQkJNDNCODVFRDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VT
ZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkgKi8sCiAJCQkJ
OTNDQTRDOUEwOURGOTNGQTAwREY4Njc3IC8qIG1ha2UtY3NzLWZpbGUtYXJyYXlzLnBsICovLAog
CQkJCTkzQ0E0QzlCMDlERjkzRkEwMERGODY3NyAvKiBtYWtlcHJvcC5wbCAqLywKIAkJCQk5M0NB
NEM5RDA5REY5M0ZBMDBERjg2NzcgLyogbWFrZXZhbHVlcy5wbCAqLywKQEAgLTIxNjk3LDcgKzIx
Njk3LDcgQEAKIAkJCQk0MTUwNzE1NTE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIu
Y3BwICovLAogCQkJCTQxNTA3MTU2MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5o
ICovLAogCQkJCTI2QUEwRjlBMThEMjk3M0QwMDQxOTM4MSAvKiBTZWxlY3RvclBzZXVkb0VsZW1l
bnRUeXBlTWFwLmluICovLAotCQkJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3Rv
clBzZXVkb1R5cGVNYXAuaW4gKi8sCisJCQkJNDNCODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbiAqLywKIAkJCQk0
MzEwN0JFMTE4Q0MxOURFMDBDQzE4RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggKi8sCiAJ
CQkJRTQ3QTk3Q0UxNjMwNTlGQzAwNURDRDk5IC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMu
Y3BwICovLAogCQkJCUU0N0E5N0NGMTYzMDU5RkMwMDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlv
bkFuYWx5c2lzLmggKi8sCkBAIC0yNzE1MCw3ICsyNzE1MCw3IEBACiAJCQkJNkU2N0QyQTYxMjgw
RThBNDAwODc1OEY3IC8qIEV4dGVuc2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk0NERBQjVCMTE1QTYyMzU4MDA5N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNw
cCBpbiBTb3VyY2VzICovLAogCQkJCTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0
dXJlRmlsdGVyQW5pc290cm9waWMuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDNCODVFRDQxOENC
RUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk0M0I4NUVENDE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENv
bXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUx
REUyRDYwMDdGMjQ4MSAvKiBGRUJsZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhB
MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CUE3NUU4QjhDMEUxREUyRDYwMDdGMjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBT
b3VyY2VzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5p
biBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggZjgzY2EzMzI0NjRj
NjZhMTU1ZTJiNGI1OGJhNzAxNDQ0Y2FlNzc2My4uMWYzMGM4ZGE5OTc4YTcxOWYzOWEyZjdkZTBh
MjNlNGI5MThkODBmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIu
eS5pbgorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTc1LDEz
ICsxMTc1LDcgQEAgcHNldWRvX3BhZ2U6CiAKIHBzZXVkbzoKICAgICAnOicgSURFTlQgewotICAg
ICAgICAkJCA9IG51bGxwdHI7Ci0gICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5p
cXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwotICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NT
U2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKLSAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgc2Vs
ZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgkMik7Ci0gICAgICAgIGlmIChzZWxlY3Rvci0+cHNl
dWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQotICAgICAgICAgICAgJCQg
PSBzZWxlY3Rvci5yZWxlYXNlKCk7CisgICAgICAgICQkID0gQ1NTUGFyc2VyU2VsZWN0b3I6OnBh
cnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVjdG9yKCQyKTsKICAgICB9
CiAgICAgfCAnOicgJzonIElERU5UIHsKICAgICAgICAgJCQgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6
cGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3IoJDMpOwpAQCAtMTIwMyw4ICsxMTk3LDcgQEAgcHNl
dWRvOgogICAgICAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFy
c2VyU2VsZWN0b3I+KCk7CiAgICAgICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgICAgIHNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVj
dG9yKCpzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxl
Y3Rvcj4+PigkNCkpOwotICAgICAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgICAgIHNlbGVj
dG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICAgICAgc2VsZWN0b3ItPnNldFBz
ZXVkb0NsYXNzVmFsdWUoJDIpOwogICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBl
KCkgPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0FueSkKICAgICAgICAgICAgICAgICAkJCA9IHNlbGVj
dG9yLnJlbGVhc2UoKTsKICAgICAgICAgfQpAQCAtMTIxNSw3ICsxMjA4LDcgQEAgcHNldWRvOgog
ICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rv
cj4oKTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFz
cyk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgIHNlbGVjdG9y
LT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xh
c3NWYWx1ZSgkMik7CiAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1Nl
bGVjdG9yOjpQc2V1ZG9Vbmtub3duKQogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNl
KCk7CiAgICAgfQpAQCAtMTIyNSw3ICsxMjE4LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRvIHNl
bGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAg
c2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgIHNl
bGVjdG9yLT5zZXRBcmd1bWVudChBdG9taWNTdHJpbmc6Om51bWJlcigkNCAqICQ1KSk7Ci0gICAg
ICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+
c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlw
ZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duKQogICAgICAgICAgICAgJCQgPSBzZWxl
Y3Rvci5yZWxlYXNlKCk7CiAgICAgfQpAQCAtMTIzNCw4ICsxMjI3LDcgQEAgcHNldWRvOgogICAg
ICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4o
KTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7
CiAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgICQyLmxvd2VyKCk7
Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxl
Y3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1
ZG9UeXBlIHR5cGUgPSBzZWxlY3Rvci0+cHNldWRvVHlwZSgpOwogICAgICAgICBpZiAodHlwZSA9
PSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikKICAgICAgICAgICAgIHNlbGVjdG9yID0gbnVs
bHB0cjsKQEAgLTEyNTksOSArMTI1MSw3IEBAIHBzZXVkbzoKICAgICAgICAgICAgIFZlY3Rvcjxz
dGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiBzZWxlY3RvclZlY3RvcjsKICAgICAg
ICAgICAgIHNlbGVjdG9yVmVjdG9yLmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKICAgICAg
ICAgICAgICQkLT5hZG9wdFNlbGVjdG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKLQotICAgICAg
ICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgICAgICQkLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIp
OworICAgICAgICAgICAgJCQtPnNldFBzZXVkb0NsYXNzVmFsdWUoJDIpOwogICAgICAgICB9CiAg
ICAgfQogICA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IDRmYjFk
ZTI0MzQ3YThlOGI1MDNhZDUzNjI5ZDEzMjU0M2RhNGFiMjYuLjQ3ZTVkZTlhN2ZmYzgyZDgxODg0
M2RlMDExZmMzY2JlNTYzZmY5ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMu
Y3BwCkBAIC0xOTcsNiArMTk3LDI2IEBAIENTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXJTZWxl
Y3Rvcjo6cGFyc2VQc2V1ZG9DdWVGdW5jdGlvblNlbGVjdG9yKGNvbnN0IENTU1BhCiAgICAgcmV0
dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsKIH0KIAorQ1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNl
clNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3Rv
cihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpCit7CisgICAgUHNldWRvQ2xhc3NP
ckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBzZXVkb1R5cGUgPSBwYXJzZVBzZXVkb0NsYXNz
QW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcocHNldWRvVHlwZVN0cmluZyk7CisgICAgaWYg
KHBzZXVkb1R5cGUucHNldWRvQ2xhc3MgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pIHsK
KyAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0
b3I+KCk7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzOworICAgICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rvci0+bV9wc2V1ZG9U
eXBlID0gcHNldWRvVHlwZS5wc2V1ZG9DbGFzczsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yLnJl
bGVhc2UoKTsKKyAgICB9CisgICAgaWYgKHBzZXVkb1R5cGUuY29tcGF0aWJpbGl0eVBzZXVkb0Vs
ZW1lbnQgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pIHsKKyAgICAgICAgYXV0byBzZWxl
Y3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CisgICAgICAgIHNl
bGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ7
CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUgPSBwc2V1ZG9UeXBl
LmNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50OworICAgICAgICBBdG9taWNTdHJpbmcgbmFtZSA9
IHBzZXVkb1R5cGVTdHJpbmc7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5zZXRWYWx1
ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICB9CisgICAg
cmV0dXJuIG51bGxwdHI7Cit9CisKIENTU1BhcnNlclNlbGVjdG9yOjpDU1NQYXJzZXJTZWxlY3Rv
cigpCiAgICAgOiBtX3NlbGVjdG9yKHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2VsZWN0b3I+KCkpCiB7
CkBAIC0yMjksMTEyICsyNDksMTIgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6YWRvcHRTZWxl
Y3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGUKICAgICBtX3Nl
bGVjdG9yLT5zZXRTZWxlY3Rvckxpc3Qoc3RkOjptb3ZlKHNlbGVjdG9yTGlzdCkpOwogfQogCi12
b2lkIENTU1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3QgQ1NTUGFyc2Vy
U3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKQordm9pZCBDU1NQYXJzZXJTZWxlY3Rvcjo6c2V0UHNl
dWRvQ2xhc3NWYWx1ZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKQog
ewotICAgIEF0b21pY1N0cmluZyBuYW1lID0gcHNldWRvVHlwZVN0cmluZzsKLSAgICBtX3NlbGVj
dG9yLT5zZXRWYWx1ZShuYW1lKTsKLQotICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBzZXVk
b1R5cGUgPSBwYXJzZVBzZXVkb1R5cGVTdHJpbmcoKm5hbWUuaW1wbCgpKTsKLSAgICBib29sIGlz
Q29tcGF0aWJpbGl0eUVsZW1lbnRUeXBlID0gZmFsc2U7IC8vIHNpbmdsZSBjb2xvbiBjb21wYXRi
aWxpdHkgbW9kZQotCi0gICAgc3dpdGNoIChwc2V1ZG9UeXBlKSB7Ci0gICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQmVmb3JlOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0TGV0dGVyOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0ZpcnN0TGluZToKLSAgICAgICAgaXNDb21wYXRpYmlsaXR5RWxlbWVudFR5
cGUgPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9V
bmtub3duOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgotICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
Rmlyc3RPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdENoaWxkOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvT25seUNoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5
cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvTnRoT2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050
aExhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVmlzaXRlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Bbnk6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluazoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9BdXRvZmlsbDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Zv
Y3VzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJs
ZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFBhZ2VNZWRpYToKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0Rpc2FibGVkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09wdGlvbmFsOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb1JlYWRPbmx5OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlYWRXcml0ZToKLSAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY29wZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9WYWxpZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZhbGlkOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0ZXJtaW5hdGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvVGFyZ2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b1Jvb3Q6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyQmFjazoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJGb3J3YXJkOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0Nvcm5lclByZXNlbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVjcmVtZW50Ogot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9Ib3Jpem9udGFsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1ZlcnRp
Y2FsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0VuZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Eb3VibGVCdXR0
b246Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2luZ2xlQnV0dG9uOgotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb05vQnV0dG9uOgotI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
LSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9GdWxsU2NyZWVuQW5jZXN0b3I6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW5p
bWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246Ci0jZW5kaWYKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9JblJhbmdlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFuZ2U6
Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1
dHVyZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgotI2VuZGlmCi0gICAgICAg
IGJyZWFrOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9DdWU6Ci0jZW5kaWYKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZXNpemVyOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhcjoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9TY3JvbGxiYXJDb3JuZXI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
U2Nyb2xsYmFyQnV0dG9uOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRo
dW1iOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRyYWNrOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRyYWNrUGllY2U6Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvU2VsZWN0aW9uOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vz
ZXJBZ2VudEN1c3RvbUVsZW1lbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvV2ViS2l0
Q3VzdG9tRWxlbWVudDoKLQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0OgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvUmlnaHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBicmVhazsK
LSAgICB9Ci0KLSAgICB1bnNpZ25lZCBtYXRjaFR5cGUgPSBtX3NlbGVjdG9yLT5tX21hdGNoOwot
ICAgIGlmIChpc0NvbXBhdGliaWxpdHlFbGVtZW50VHlwZSkKLSAgICAgICAgbWF0Y2hUeXBlID0g
Q1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ7CisgICAgQVNTRVJUKG1fc2VsZWN0b3ItPm1fbWF0
Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKIAotICAgIG1fc2VsZWN0b3ItPm1fbWF0
Y2ggPSBtYXRjaFR5cGU7Ci0gICAgbV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBlID0gcHNldWRvVHlw
ZTsKKyAgICBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcHNldWRvVHlw
ZSA9IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhwc2V1ZG9D
bGFzc1N0cmluZyk7CisgICAgbV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBlID0gcHNldWRvVHlwZS5w
c2V1ZG9DbGFzczsKIH0KIAogYm9vbCBDU1NQYXJzZXJTZWxlY3Rvcjo6aXNTaW1wbGUoKSBjb25z
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IDFkOWFkMTUzZTU4NjEzZDhi
M2RhZDk1ODU3OTczNWFhZTJiMWY3ZjcuLjU2YzIwNmZjOGFkNWZiMGRmNTZlMzRmY2Q0ZTI1NzZh
ODlmZTVhYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKQEAgLTE3NCw2ICsx
NzQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENTU1BhcnNlclNlbGVjdG9yKiBwYXJzZVBhZ2VQ
c2V1ZG9TZWxlY3Rvcihjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwog
ICAgIHN0YXRpYyBDU1NQYXJzZXJTZWxlY3RvciogcGFyc2VQc2V1ZG9FbGVtZW50U2VsZWN0b3Io
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKICAgICBzdGF0aWMgQ1NTUGFyc2Vy
U2VsZWN0b3IqIHBhcnNlUHNldWRvQ3VlRnVuY3Rpb25TZWxlY3Rvcihjb25zdCBDU1NQYXJzZXJT
dHJpbmcmIGZ1bmN0aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJz
ZXJTZWxlY3Rvcj4+KiBzZWxlY3RvclZlY3Rvcik7CisgICAgc3RhdGljIENTU1BhcnNlclNlbGVj
dG9yKiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3RvcihDU1NQ
YXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwogCiAgICAgQ1NTUGFyc2VyU2VsZWN0b3Io
KTsKICAgICBleHBsaWNpdCBDU1NQYXJzZXJTZWxlY3Rvcihjb25zdCBRdWFsaWZpZWROYW1lJik7
CkBAIC0xOTEsNyArMTkyLDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZG9wdFNlbGVjdG9yVmVj
dG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+PiYgc2VsZWN0b3JW
ZWN0b3IpOwogCi0gICAgdm9pZCBzZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3Ry
aW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKKyAgICB2b2lkIHNldFBzZXVkb0NsYXNzVmFsdWUoY29u
c3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CiAgICAgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2VsZWN0b3ItPnBzZXVk
b1R5cGUoKTsgfQogICAgIGJvb2wgaXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkgY29uc3QgeyByZXR1
cm4gbV9zZWxlY3Rvci0+aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NTZWxlY3Rvci5jcHAKaW5kZXggMDRlNGY2ZTJiZDYxOGViZjBkMWU2NjQ3YzZlZTE3YTM0OThh
NWU5ZS4uY2M3NDBlMzg4MjE0MDcwYWIwOGM3NzJlZDdhNDcxYmYyOTJiYzBhZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yOTQsMTQgKzI5NCw5IEBAIGJvb2wgQ1NTU2VsZWN0
b3I6Om9wZXJhdG9yPT0oY29uc3QgQ1NTU2VsZWN0b3ImIG90aGVyKSBjb25zdAogICAgIHJldHVy
biB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBhcHBlbmRQc2V1ZG9UeXBlVGFpbElmTmVjZXNzYXJ5
KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVjdG9yKQorc3RhdGlj
IHZvaWQgYXBwZW5kUHNldWRvQ2xhc3NGdW5jdGlvblRhaWwoU3RyaW5nQnVpbGRlciYgc3RyLCBj
b25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiB7CiAgICAgc3dpdGNoIChzZWxlY3Rvci0+cHNl
dWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgotICAgICAgICBp
ZiAoY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QgPSBzZWxlY3Rvci0+c2VsZWN0
b3JMaXN0KCkpCi0gICAgICAgICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKS0+
c2VsZWN0b3JUZXh0KCkpOwotICAgICAgICBzdHIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6CiAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvTnRoQ2hpbGQ6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdENo
aWxkOgpAQCAtMzEwLDE5ICszMDUsMTAgQEAgc3RhdGljIHZvaWQgYXBwZW5kUHNldWRvVHlwZVRh
aWxJZk5lY2Vzc2FyeShTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1NlbGVjdG8KICAgICAg
ICAgc3RyLmFwcGVuZChzZWxlY3Rvci0+YXJndW1lbnQoKSk7CiAgICAgICAgIHN0ci5hcHBlbmQo
JyknKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55OiB7
Ci0gICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9yID0gc2VsZWN0b3It
PnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOwotICAgICAgICBmb3IgKGNvbnN0IENTU1NlbGVjdG9y
KiBzdWJTZWxlY3RvciA9IGZpcnN0U3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9yOyBzdWJTZWxlY3Rv
ciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJTZWxlY3RvcikpIHsKLSAgICAgICAgICAgIGlm
IChzdWJTZWxlY3RvciAhPSBmaXJzdFN1YlNlbGVjdG9yKQotICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmQoJywnKTsKLSAgICAgICAgICAgIHN0ci5hcHBlbmQoc3ViU2VsZWN0b3ItPnNlbGVjdG9y
VGV4dCgpKTsKLSAgICAgICAgfQotICAgICAgICBzdHIuYXBwZW5kKCcpJyk7Ci0gICAgICAgIGJy
ZWFrOwotICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAgICB9CisKIH0KIAog
U3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUp
IGNvbnN0CkBAIC0zNDcsMjIgKzMzMywyMDIgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3Rv
clRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAgICAgICAgIH0gZWxzZSBpZiAo
Y3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKSB7CiAgICAgICAgICAgICBzdHIuYXBw
ZW5kKCcuJyk7CiAgICAgICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKGNzLT52YWx1ZSgpLCBz
dHIpOwotICAgICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1
ZG9DbGFzcyB8fCBjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzKSB7
CisgICAgICAgIH0gZWxzZSBpZiAoY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0Ns
YXNzKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGNzLT5wc2V1ZG9UeXBlKCkpIHsKLSAgICAgICAg
ICAgIGNhc2UgUHNldWRvRmlyc3Q6Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpmaXJzdCIpOworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0FuaW1hdGluZ0Z1bGxTY3JlZW5UcmFuc2l0aW9uOgorICAgICAg
ICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hbmltYXRpbmctZnVsbC1zY3Jl
ZW4tdHJhbnNpdGlvbiIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAgICAgICAgICAgY2Fz
ZSBQc2V1ZG9MZWZ0OgotICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGVmdCIp
OworI2VuZGlmCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Bbnk6IHsKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOi13ZWJraXQtYW55KCIpOworICAgICAg
ICAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9yID0gY3MtPnNlbGVj
dG9yTGlzdCgpLT5maXJzdCgpOworICAgICAgICAgICAgICAgIGZvciAoY29uc3QgQ1NTU2VsZWN0
b3IqIHN1YlNlbGVjdG9yID0gZmlyc3RTdWJTZWxlY3Rvcjsgc3ViU2VsZWN0b3I7IHN1YlNlbGVj
dG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YlNlbGVjdG9yKSkgeworICAgICAgICAgICAg
ICAgICAgICBpZiAoc3ViU2VsZWN0b3IgIT0gZmlyc3RTdWJTZWxlY3RvcikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZChzdWJTZWxlY3Rvci0+c2VsZWN0b3JUZXh0KCkpOworICAgICAgICAgICAgICAgIH0KKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0g
ICAgICAgICAgICBjYXNlIFBzZXVkb1JpZ2h0OgotICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRM
aXRlcmFsKCI6cmlnaHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0FueUxpbms6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
Ijotd2Via2l0LWFueS1saW5rIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJzonKTsKLSAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kKGNzLT52YWx1ZSgpKTsKLSAgICAgICAgICAgICAgICBhcHBlbmRQc2V1
ZG9UeXBlVGFpbElmTmVjZXNzYXJ5KHN0ciwgY3MpOworICAgICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvQXV0b2ZpbGw6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
Ijotd2Via2l0LWF1dG9maWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgorICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6LXdlYmtpdC1kcmFnIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsUGFnZU1lZGlhOgorICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpCisgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgorICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXNjcmVlbiIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVl
bkFuY2VzdG9yOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1m
dWxsLXNjcmVlbi1hbmNlc3RvciIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbkRvY3VtZW50OgorICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1bWVudCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9BY3RpdmU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjphY3RpdmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0NoZWNrZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIjpjaGVja2VkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9Db3JuZXJQcmVzZW50OgorICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmRMaXRlcmFsKCI6Y29ybmVyLXByZXNlbnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlY3JlbWVudDoKKyAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRlY3JlbWVudCIpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVmYXVsdDoKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRlZmF1bHQiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rpc2FibGVk
OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZGlzYWJsZWQiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rv
dWJsZUJ1dHRvbjoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRvdWJsZS1i
dXR0b24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0VtcHR5OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
ZW1wdHkiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0VuYWJsZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjplbmFibGVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9FbmQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjplbmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIjpmaXJzdC1jaGlsZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RPZlR5cGU6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpmaXJzdC1vZi10eXBlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Gb2N1czoKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmZvY3VzIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRnV0dXJlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZnV0dXJl
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0hvcml6b250YWw6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjpob3Jpem9udGFsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kTGl0ZXJhbCgiOmhvdmVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlOgorICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmRMaXRlcmFsKCI6aW4tcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKKyAgICAgICAgICAgICAg
ICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmluY3JlbWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1pbmF0ZToKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmluZGV0ZXJtaW5hdGUiKTsKKyAgICAg
ICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0lu
dmFsaWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjppbnZhbGlkIik7CiAg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9MYW5nOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGFuZygiKTsKKyAg
ICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0xhc3RDaGlsZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmxhc3QtY2hp
bGQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0xhc3RPZlR5cGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpsYXN0LW9mLXR5cGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjpsaW5rIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9Ob0J1dHRvbjoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOm5vLWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgorICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6bm90KCIpOworICAgICAgICAgICAgICAgIGlmIChjb25zdCBDU1NTZWxlY3Rv
ckxpc3QqIHNlbGVjdG9yTGlzdCA9IGNzLT5zZWxlY3Rvckxpc3QoKSkKKyAgICAgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZChzZWxlY3Rvckxpc3QtPmZpcnN0KCktPnNlbGVjdG9yVGV4dCgpKTsK
KyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKKyAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1jaGlsZCgiKTsKKyAgICAgICAgICAgICAg
ICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RDaGls
ZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1sYXN0LWNoaWxkKCIp
OworICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKHN0ciwgY3Mp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvTnRoTGFzdE9mVHlwZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
Om50aC1sYXN0LW9mLXR5cGUoIik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHNldWRvQ2xhc3NG
dW5jdGlvblRhaWwoc3RyLCBjcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpudGgtb2YtdHlwZSgiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQ
c2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAgICAgICAgICAgICAgICBicmVhazsK
KyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlDaGlsZDoKKyAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm9ubHktY2hpbGQiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlPZlR5cGU6
CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpvbmx5LW9mLXR5cGUiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b09wdGlvbmFsOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6b3B0aW9uYWwi
KTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb091dE9mUmFuZ2U6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpv
dXQtb2YtcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoVklERU9f
VFJBQ0spCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgorICAgICAg
ICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cGFzdCIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworI2VuZGlmCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9SZWFkT25s
eToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJlYWQtb25seSIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
UmVhZFdyaXRlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cmVhZC13cml0
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvUmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpy
ZXF1aXJlZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvUm9vdDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
OnJvb3QiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Njb3BlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
c2NvcGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1NpbmdsZUJ1dHRvbjoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0
ZXJhbCgiOnNpbmdsZS1idXR0b24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgorICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmRMaXRlcmFsKCI6c3RhcnQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1RhcmdldDoKKyAgICAgICAgICAgICAgICBzdHIu
YXBwZW5kTGl0ZXJhbCgiOnRhcmdldCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQ6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjp2YWxpZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmVydGljYWw6CisgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjp2ZXJ0aWNhbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnZpc2l0ZWQiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlOgor
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6d2luZG93LWluYWN0aXZlIik7Cisg
ICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgfQogICAgICAgICB9IGVsc2Ug
aWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50KSB7CiAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOjoiKTsKQEAgLTQwNSw3ICs1NzEsMjIgQEAgU3RyaW5n
IENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0
CiAgICAgICAgICAgICAgICAgc2VyaWFsaXplU3RyaW5nKGNzLT52YWx1ZSgpLCBzdHIpOwogICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmQoJ10nKTsKICAgICAgICAgICAgIH0KKyAgICAgICAgfSBl
bHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVkb0NsYXNzKSB7Cisg
ICAgICAgICAgICBzd2l0Y2ggKGNzLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICAgICAgICAgIGNhc2Ug
UHNldWRvRmlyc3Q6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQc2V1ZG9MZWZ0Ogor
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGVmdCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQc2V1ZG9SaWdodDoKKyAgICAgICAgICAgICAg
ICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJpZ2h0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICAgICAgfQogICAgICAgICB9CisKICAgICAgICAgaWYgKGNzLT5yZWxhdGlvbigp
ICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvciB8fCAhY3MtPnRhZ0hpc3RvcnkoKSkKICAgICAg
ICAgICAgIGJyZWFrOwogICAgICAgICBjcyA9IGNzLT50YWdIaXN0b3J5KCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlF
bGVtZW50TWFwLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjYyOGExYjk1MzJkMmE1ZWUz
NmFkM2RiM2JkYzY4Y2E4NGUzOGUwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
Y3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgpAQCAt
MCwwICsxLDY3IEBACista2h0bWwtZHJhZworLXdlYmtpdC1hbnkoCistd2Via2l0LWFueS1saW5r
Cistd2Via2l0LWF1dG9maWxsCistd2Via2l0LWRyYWcKKy13ZWJraXQtZnVsbC1wYWdlLW1lZGlh
CithY3RpdmUKK2FmdGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9BZnRlcgorYmVmb3JlLCBQc2V1
ZG9Vbmtub3duLCBQc2V1ZG9CZWZvcmUKK2NoZWNrZWQKK2Nvcm5lci1wcmVzZW50CitkZWNyZW1l
bnQKK2RlZmF1bHQKK2Rpc2FibGVkCitkb3VibGUtYnV0dG9uCitlbXB0eQorZW5hYmxlZAorZW5k
CitmaXJzdC1jaGlsZAorZmlyc3QtbGV0dGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9GaXJzdExl
dHRlcgorZmlyc3QtbGluZSwgUHNldWRvVW5rbm93biwgUHNldWRvRmlyc3RMaW5lCitmaXJzdC1v
Zi10eXBlCitmb2N1cworaG9yaXpvbnRhbAoraG92ZXIKK2luLXJhbmdlCitpbmNyZW1lbnQKK2lu
ZGV0ZXJtaW5hdGUKK2ludmFsaWQKK2xhbmcoCitsYXN0LWNoaWxkCitsYXN0LW9mLXR5cGUKK2xp
bmsKK25vLWJ1dHRvbgorbm90KAorbnRoLWNoaWxkKAorbnRoLWxhc3QtY2hpbGQoCitudGgtbGFz
dC1vZi10eXBlKAorbnRoLW9mLXR5cGUoCitvbmx5LWNoaWxkCitvbmx5LW9mLXR5cGUKK29wdGlv
bmFsCitvdXQtb2YtcmFuZ2UKK3JlYWQtb25seQorcmVhZC13cml0ZQorcmVxdWlyZWQKK3Jvb3QK
K3Njb3BlCitzaW5nbGUtYnV0dG9uCitzdGFydAordGFyZ2V0Cit2YWxpZAordmVydGljYWwKK3Zp
c2l0ZWQKK3dpbmRvdy1pbmFjdGl2ZQorCisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorLXdl
YmtpdC1hbmltYXRpbmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbgorLXdlYmtpdC1mdWxsLXNjcmVl
bgorLXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvcgorLXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1
bWVudAorI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCitmdXR1cmUKK3Bhc3QKKyNl
bmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1h
cC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oCmluZGV4IDdk
MjYyM2E3MDNmMWUwOWJkM2JiZWFkZDExYWJkNjQzZWI3NTQwMWEuLjhlNzE1ZjU1ZjI2M2VkNGU4
M2ZmZDI5YWNiMGZmNmJkYjE0M2NiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvclBzZXVkb1R5cGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmgKQEAgLTMxLDcgKzMxLDEyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0IFN0
cmluZ0ltcGwmIHBzZXVkb1R5cGVTdHJpbmcpOworc3RydWN0IFBzZXVkb0NsYXNzT3JDb21wYXRp
YmlsaXR5UHNldWRvRWxlbWVudCB7CisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRv
Q2xhc3M7CisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgY29tcGF0aWJpbGl0eVBzZXVkb0Vs
ZW1lbnQ7Cit9OworCitQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcGFy
c2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKGNvbnN0IENTU1BhcnNl
clN0cmluZyYgcHNldWRvVHlwZVN0cmluZyk7CiBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwYXJz
ZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0cmluZyk7
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiZjkzYTYxNDBi
NmZkNmQxMTUwNTY4ZDIwNmIxY2RlYzgxNWM2NWIyLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5
cGVNYXAuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0ta2h0bWwtZHJhZwotLXdl
YmtpdC1hbnkoCi0td2Via2l0LWFueS1saW5rCi0td2Via2l0LWF1dG9maWxsCi0td2Via2l0LWRy
YWcKLS13ZWJraXQtZnVsbC1wYWdlLW1lZGlhCi1hY3RpdmUKLWFmdGVyCi1iZWZvcmUKLWNoZWNr
ZWQKLWNvcm5lci1wcmVzZW50Ci1kZWNyZW1lbnQKLWRlZmF1bHQKLWRpc2FibGVkCi1kb3VibGUt
YnV0dG9uCi1lbXB0eQotZW5hYmxlZAotZW5kCi1maXJzdC1jaGlsZAotZmlyc3QtbGV0dGVyCi1m
aXJzdC1saW5lCi1maXJzdC1vZi10eXBlCi1mb2N1cwotaG9yaXpvbnRhbAotaG92ZXIKLWluLXJh
bmdlCi1pbmNyZW1lbnQKLWluZGV0ZXJtaW5hdGUKLWludmFsaWQKLWxhbmcoCi1sYXN0LWNoaWxk
Ci1sYXN0LW9mLXR5cGUKLWxpbmsKLW5vLWJ1dHRvbgotbm90KAotbnRoLWNoaWxkKAotbnRoLWxh
c3QtY2hpbGQoCi1udGgtbGFzdC1vZi10eXBlKAotbnRoLW9mLXR5cGUoCi1vbmx5LWNoaWxkCi1v
bmx5LW9mLXR5cGUKLW9wdGlvbmFsCi1vdXQtb2YtcmFuZ2UKLXJlYWQtb25seQotcmVhZC13cml0
ZQotcmVxdWlyZWQKLXJvb3QKLXNjb3BlCi1zaW5nbGUtYnV0dG9uCi1zdGFydAotdGFyZ2V0Ci12
YWxpZAotdmVydGljYWwKLXZpc2l0ZWQKLXdpbmRvdy1pbmFjdGl2ZQotCi0jaWYgRU5BQkxFKEZV
TExTQ1JFRU5fQVBJKQotLXdlYmtpdC1hbmltYXRpbmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbgot
LXdlYmtpdC1mdWxsLXNjcmVlbgotLXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvcgotLXdlYmtp
dC1mdWxsLXNjcmVlbi1kb2N1bWVudAotI2VuZGlmCi0KLSNpZiBFTkFCTEUoVklERU9fVFJBQ0sp
Ci1mdXR1cmUKLXBhc3QKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL21h
a2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudE1hcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzJjNDNkNDdiZDRhYjY4OTAxYTgxZDEzNTFkNWRlMjUw
NTgzYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3Rv
clBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKQEAgLTAsMCArMSwyMTUg
QEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMgbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisj
IGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisjIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorIyBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKKworZGVmIGVudW1lcmFibGVQc2V1
ZG9UeXBlKHN0cmluZ1BzZXVkb1R5cGUpOgorICAgIG91dHB1dCA9IFsnQ1NTU2VsZWN0b3I6OlBz
ZXVkbyddCisKKyAgICBpZiBzdHJpbmdQc2V1ZG9UeXBlLmVuZHN3aXRoKCcoJyk6CisgICAgICAg
IHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQc2V1ZG9UeXBlWzotMV0KKworICAgIHdlYmtpdFBy
ZWZpeCA9ICctd2Via2l0LScKKyAgICBpZiAoc3RyaW5nUHNldWRvVHlwZS5zdGFydHN3aXRoKHdl
YmtpdFByZWZpeCkpOgorICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlw
ZVtsZW4od2Via2l0UHJlZml4KTpdCisKKyAgICBraHRtbFByZWZpeCA9ICcta2h0bWwtJworICAg
IGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0YXJ0c3dpdGgoa2h0bWxQcmVmaXgpKToKKyAgICAgICAg
c3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVbbGVuKGtodG1sUHJlZml4KTpdCisK
KyAgICBzdWJzdHJpbmdfc3RhcnQgPSAwCisgICAgbmV4dF9kYXNoX3Bvc2l0aW9uID0gc3RyaW5n
UHNldWRvVHlwZS5maW5kKCctJykKKyAgICB3aGlsZSAobmV4dF9kYXNoX3Bvc2l0aW9uICE9IC0x
KToKKyAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFy
dF0udXBwZXIoKSkKKyAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0
cmluZ19zdGFydCArIDE6bmV4dF9kYXNoX3Bvc2l0aW9uXSkKKyAgICAgICAgc3Vic3RyaW5nX3N0
YXJ0ID0gbmV4dF9kYXNoX3Bvc2l0aW9uICsgMQorICAgICAgICBuZXh0X2Rhc2hfcG9zaXRpb24g
PSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQoJy0nLCBzdWJzdHJpbmdfc3RhcnQpCisKKyAgICBvdXRw
dXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3RyaW5nX3N0YXJ0XS51cHBlcigpKQorICAg
IG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3RhcnQgKyAxOl0pCisg
ICAgcmV0dXJuICcnLmpvaW4ob3V0cHV0KQorCisKK2RlZiBleHBhbmRfaWZkZWZfY29uZGl0aW9u
KGNvbmRpdGlvbik6CisgICAgcmV0dXJuIGNvbmRpdGlvbi5yZXBsYWNlKCcoJywgJ18nKS5yZXBs
YWNlKCcpJywgJycpCisKK291dHB1dF9maWxlID0gb3BlbignU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmdwZXJmJywgJ3cnKQorCitvdXRwdXRfZmlsZS53cml0
ZSgiIiIKKyV7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2Vu
ZXJhdGVkIGZyb20gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluIGJ5IG1ha2Vwcm9wLCBkbyBub3Qg
ZWRpdCBieSBoYW5kLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmgiCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyNwcmFnbWEgY2xhbmcg
ZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtu
b3duLXByYWdtYXMiCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNh
dGVkLXJlZ2lzdGVyIgorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGlj
aXQtZmFsbHRocm91Z2giCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U2VsZWN0b3JQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnRFbnRyeSB7Cisg
ICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVk
b0VsZW1lbnQgcHNldWRvVHlwZXM7Cit9OworCislfQorJXN0cnVjdC10eXBlCislZGVmaW5lIGlu
aXRpYWxpemVyLXN1ZmZpeCAse0NTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duLENTU1NlbGVjdG9y
OjpQc2V1ZG9Vbmtub3dufQorJWRlZmluZSBjbGFzcy1uYW1lIFNlbGVjdG9yUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcEhhc2gKKyVvbWl0LXN0cnVjdC10eXBlCislbGFuZ3Vh
Z2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislaWdub3JlLWNhc2UKKyVj
b21wYXJlLXN0cm5jbXAKKyVlbnVtCisKK3N0cnVjdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21w
YXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5OworCislJQorIiIiKQorCit3ZWJjb3JlX2RlZmlu
ZXMgPSBbaS5zdHJpcCgpIGZvciBpIGluIHN5cy5hcmd2Wy0xXS5zcGxpdCgnICcpXQorCitsb25n
ZXN0X2tleXdvcmQgPSAwCisKK2lnbm9yZV91bnRpbF9lbmRpZiA9IEZhbHNlCitpbnB1dF9maWxl
ID0gb3BlbihzeXMuYXJndlsxXSwgJ3InKQorZm9yIGxpbmUgaW4gaW5wdXRfZmlsZToKKyAgICBs
aW5lID0gbGluZS5zdHJpcCgpCisgICAgaWYgbm90IGxpbmU6CisgICAgICAgIGNvbnRpbnVlCisK
KyAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJyNpZiAnKToKKyAgICAgICAgY29uZGl0aW9uID0gbGlu
ZVs0Ol0uc3RyaXAoKQorICAgICAgICBpZiBleHBhbmRfaWZkZWZfY29uZGl0aW9uKGNvbmRpdGlv
bikgbm90IGluIHdlYmNvcmVfZGVmaW5lczoKKyAgICAgICAgICAgIGlnbm9yZV91bnRpbF9lbmRp
ZiA9IFRydWUKKyAgICAgICAgY29udGludWUKKworICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnI2Vu
ZGlmJyk6CisgICAgICAgIGlnbm9yZV91bnRpbF9lbmRpZiA9IEZhbHNlCisgICAgICAgIGNvbnRp
bnVlCisKKyAgICBpZiBpZ25vcmVfdW50aWxfZW5kaWY6CisgICAgICAgIGNvbnRpbnVlCisKKyAg
ICBrZXl3b3JkX2RlZmluaXRpb24gPSBsaW5lLnNwbGl0KCcsJykKKyAgICBpZiBsZW4oa2V5d29y
ZF9kZWZpbml0aW9uKSA9PSAxOgorICAgICAgICBrZXl3b3JkID0ga2V5d29yZF9kZWZpbml0aW9u
WzBdLnN0cmlwKCkKKyAgICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoJyIlcyIsIHslcywgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Vua25vd259XG4nICUgKGtleXdvcmQsIGVudW1lcmFibGVQc2V1ZG9UeXBl
KGtleXdvcmQpKSkKKyAgICBlbHNlOgorICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgnIiVzIiwg
e0NTU1NlbGVjdG9yOjolcywgQ1NTU2VsZWN0b3I6OiVzfVxuJyAlIChrZXl3b3JkX2RlZmluaXRp
b25bMF0uc3RyaXAoKSwga2V5d29yZF9kZWZpbml0aW9uWzFdLnN0cmlwKCksIGtleXdvcmRfZGVm
aW5pdGlvblsyXS5zdHJpcCgpKSkKKworICAgIGxvbmdlc3Rfa2V5d29yZCA9IG1heChsb25nZXN0
X2tleXdvcmQsIGxlbihrZXl3b3JkKSkKKworb3V0cHV0X2ZpbGUud3JpdGUoIiIiJSUKKworc3Rh
dGljIGlubGluZSBjb25zdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRv
RWxlbWVudEVudHJ5KiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJp
bmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICByZXR1
cm4gU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwSGFzaDo6aW5f
d29yZF9zZXQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oY2hhcmFjdGVycyksIGxlbmd0
aCk7Cit9IiIiKQorCitvdXRwdXRfZmlsZS53cml0ZSgiIiIKKworc3RhdGljIGlubGluZSBjb25z
dCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5KiBw
YXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcoY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBjb25zdCB1bnNpZ25lZCBtYXhL
ZXl3b3JkTGVuZ3RoID0gJXM7CisgICAgTENoYXIgYnVmZmVyW21heEtleXdvcmRMZW5ndGhdOwor
ICAgIGlmIChsZW5ndGggPiBtYXhLZXl3b3JkTGVuZ3RoKQorICAgICAgICByZXR1cm4gbnVsbHB0
cjsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgeworICAgICAg
ICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzW2ldOworICAgICAgICBpZiAoY2hhcmFjdGVy
ICYgfjB4ZmYpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgICAgICBidWZmZXJb
aV0gPSBzdGF0aWNfY2FzdDxMQ2hhcj4oY2hhcmFjdGVyKTsKKyAgICB9CisgICAgcmV0dXJuIHBh
cnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhidWZmZXIsIGxlbmd0
aCk7Cit9CisiIiIgJSBsb25nZXN0X2tleXdvcmQpCisKK291dHB1dF9maWxlLndyaXRlKCIiIgor
UHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBhcnNlUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVk
b1R5cGVTdHJpbmcpCit7CisgICAgY29uc3QgU2VsZWN0b3JQc2V1ZG9DbGFzc09yQ29tcGF0aWJp
bGl0eVBzZXVkb0VsZW1lbnRFbnRyeSogZW50cnk7CisgICAgaWYgKHBzZXVkb1R5cGVTdHJpbmcu
aXM4Qml0KCkpCisgICAgICAgIGVudHJ5ID0gcGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxp
dHlFbGVtZW50U3RyaW5nKHBzZXVkb1R5cGVTdHJpbmcuY2hhcmFjdGVyczgoKSwgcHNldWRvVHlw
ZVN0cmluZy5sZW5ndGgoKSk7CisgICAgZWxzZQorICAgICAgICBlbnRyeSA9IHBhcnNlUHNldWRv
Q2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nLmNoYXJh
Y3RlcnMxNigpLCBwc2V1ZG9UeXBlU3RyaW5nLmxlbmd0aCgpKTsKKworICAgIGlmIChlbnRyeSkK
KyAgICAgICAgcmV0dXJuIGVudHJ5LT5wc2V1ZG9UeXBlczsKKyAgICByZXR1cm4geyBDU1NTZWxl
Y3Rvcjo6UHNldWRvVW5rbm93biwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24gfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjaWYgZGVmaW5lZChfX2NsYW5nX18pCisjcHJhZ21h
IGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKworIiIiKQorb3V0cHV0X2ZpbGUuY2xvc2Uo
KQorCitncGVyZl9jb21tYW5kID0gJ2dwZXJmJworaWYgJ0dQRVJGJyBpbiBvcy5lbnZpcm9uOgor
ICAgIGdwZXJmX2NvbW1hbmQgPSBvcy5lbnZpcm9uWydHUEVSRiddCisKK2dwZXJmX3JldHVybiA9
IG9zLnN5c3RlbSgiJXMgLS1rZXktcG9zaXRpb25zPScqJyAtbSAxMCAtcyAyIFNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiAtLW91dHB1dC1maWxlPVNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAiICUgZ3BlcmZf
Y29tbWFuZCkKK2lmIGdwZXJmX3JldHVybiAhPSAwOgorICAgIHByaW50KCJFcnJvciB3aGVuIGdl
bmVyYXRpbmcgU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNw
cCBmcm9tIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVy
ZiA6KCIpCisgICAgc3lzLmV4aXQoZ3BlcmZfcmV0dXJuKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggYmU5YmU0YTkwOTU2NmZkMjUyOWQ3MTYzNGQzZTVjZThlNGMyMmViMy4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3Mv
bWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weQorKysgL2Rldi9udWxsCkBAIC0xLDIwNSArMCww
IEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0jIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
IyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotIyBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMgQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSMg
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi0KLWRlZiBlbnVtZXJhYmxlUHNl
dWRvVHlwZShzdHJpbmdQc2V1ZG9UeXBlKToKLSAgICBvdXRwdXQgPSBbJ0NTU1NlbGVjdG9yOjpQ
c2V1ZG8nXQotCi0gICAgaWYgc3RyaW5nUHNldWRvVHlwZS5lbmRzd2l0aCgnKCcpOgotICAgICAg
ICBzdHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlwZVs6LTFdCi0KLSAgICB3ZWJraXRQ
cmVmaXggPSAnLXdlYmtpdC0nCi0gICAgaWYgKHN0cmluZ1BzZXVkb1R5cGUuc3RhcnRzd2l0aCh3
ZWJraXRQcmVmaXgpKToKLSAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5
cGVbbGVuKHdlYmtpdFByZWZpeCk6XQotCi0gICAga2h0bWxQcmVmaXggPSAnLWtodG1sLScKLSAg
ICBpZiAoc3RyaW5nUHNldWRvVHlwZS5zdGFydHN3aXRoKGtodG1sUHJlZml4KSk6Ci0gICAgICAg
IHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQc2V1ZG9UeXBlW2xlbihraHRtbFByZWZpeCk6XQot
Ci0gICAgc3Vic3RyaW5nX3N0YXJ0ID0gMAotICAgIG5leHRfZGFzaF9wb3NpdGlvbiA9IHN0cmlu
Z1BzZXVkb1R5cGUuZmluZCgnLScpCi0gICAgd2hpbGUgKG5leHRfZGFzaF9wb3NpdGlvbiAhPSAt
MSk6Ci0gICAgICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3Rh
cnRdLnVwcGVyKCkpCi0gICAgICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJz
dHJpbmdfc3RhcnQgKyAxOm5leHRfZGFzaF9wb3NpdGlvbl0pCi0gICAgICAgIHN1YnN0cmluZ19z
dGFydCA9IG5leHRfZGFzaF9wb3NpdGlvbiArIDEKLSAgICAgICAgbmV4dF9kYXNoX3Bvc2l0aW9u
ID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJywgc3Vic3RyaW5nX3N0YXJ0KQotCi0gICAgb3V0
cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydF0udXBwZXIoKSkKLSAg
ICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3RyaW5nX3N0YXJ0ICsgMTpdKQot
ICAgIHJldHVybiAnJy5qb2luKG91dHB1dCkKLQotCi1kZWYgZXhwYW5kX2lmZGVmX2NvbmRpdGlv
bihjb25kaXRpb24pOgotICAgIHJldHVybiBjb25kaXRpb24ucmVwbGFjZSgnKCcsICdfJykucmVw
bGFjZSgnKScsICcnKQotCi1vdXRwdXRfZmlsZSA9IG9wZW4oJ1NlbGVjdG9yUHNldWRvVHlwZU1h
cC5ncGVyZicsICd3JykKLQotb3V0cHV0X2ZpbGUud3JpdGUoIiIiCi0lewotLyoKLSAqIENvcHly
aWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0g
KgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0g
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0K
LS8vIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9tIFNlbGVjdG9yUHNl
dWRvVHlwZU1hcC5pbiBieSBtYWtlcHJvcCwgZG8gbm90IGVkaXQgYnkgaGFuZC4KLQotI2luY2x1
ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlbGVjdG9yUHNldWRvVHlwZU1hcC5oIgotCi0jaWYg
ZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcHVzaAotI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFzIgotI3ByYWdtYSBj
bGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1yZWdpc3RlciIKLSNwcmFnbWEg
Y2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJvdWdoIgotI2VuZGlm
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IFNlbGVjdG9yUHNldWRvVHlwZUVudHJ5
IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHR5
cGU7Ci19OwotCi0lfQotJXN0cnVjdC10eXBlCi0lZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAs
Q1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24KLSVkZWZpbmUgY2xhc3MtbmFtZSBTZWxlY3RvclBz
ZXVkb1R5cGVNYXBIYXNoCi0lb21pdC1zdHJ1Y3QtdHlwZQotJWxhbmd1YWdlPUMrKwotJXJlYWRv
bmx5LXRhYmxlcwotJWdsb2JhbC10YWJsZQotJWlnbm9yZS1jYXNlCi0lY29tcGFyZS1zdHJuY21w
Ci0lZW51bQotCi1zdHJ1Y3QgU2VsZWN0b3JQc2V1ZG9UeXBlRW50cnk7Ci0KLSUlCi0iIiIpCi0K
LXdlYmNvcmVfZGVmaW5lcyA9IFtpLnN0cmlwKCkgZm9yIGkgaW4gc3lzLmFyZ3ZbLTFdLnNwbGl0
KCcgJyldCi0KLWxvbmdlc3Rfa2V5d29yZCA9IDAKLQotaWdub3JlX3VudGlsX2VuZGlmID0gRmFs
c2UKLWlucHV0X2ZpbGUgPSBvcGVuKHN5cy5hcmd2WzFdLCAncicpCi1mb3IgbGluZSBpbiBpbnB1
dF9maWxlOgotICAgIGtleXdvcmQgPSBsaW5lLnN0cmlwKCkKLSAgICBpZiBub3Qga2V5d29yZDoK
LSAgICAgICAgY29udGludWUKLQotICAgIGlmIGtleXdvcmQuc3RhcnRzd2l0aCgnI2lmICcpOgot
ICAgICAgICBjb25kaXRpb24gPSBrZXl3b3JkWzQ6XS5zdHJpcCgpCi0gICAgICAgIGlmIGV4cGFu
ZF9pZmRlZl9jb25kaXRpb24oY29uZGl0aW9uKSBub3QgaW4gd2ViY29yZV9kZWZpbmVzOgotICAg
ICAgICAgICAgaWdub3JlX3VudGlsX2VuZGlmID0gVHJ1ZQotICAgICAgICBjb250aW51ZQotCi0g
ICAgaWYga2V5d29yZC5zdGFydHN3aXRoKCcjZW5kaWYnKToKLSAgICAgICAgaWdub3JlX3VudGls
X2VuZGlmID0gRmFsc2UKLSAgICAgICAgY29udGludWUKLQotICAgIGlmIGlnbm9yZV91bnRpbF9l
bmRpZjoKLSAgICAgICAgY29udGludWUKLQotICAgIG91dHB1dF9maWxlLndyaXRlKCciJXMiLCAl
c1xuJyAlIChrZXl3b3JkLCBlbnVtZXJhYmxlUHNldWRvVHlwZShrZXl3b3JkKSkpCi0gICAgbG9u
Z2VzdF9rZXl3b3JkID0gbWF4KGxvbmdlc3Rfa2V5d29yZCwgbGVuKGtleXdvcmQpKQotCi1vdXRw
dXRfZmlsZS53cml0ZSgiIiIlJQotCi1zdGF0aWMgaW5saW5lIENTU1NlbGVjdG9yOjpQc2V1ZG9U
eXBlIHBhcnNlUHNldWRvVHlwZVN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWdu
ZWQgbGVuZ3RoKQotewotICAgIGlmIChjb25zdCBTZWxlY3RvclBzZXVkb1R5cGVFbnRyeSogZW50
cnkgPSBTZWxlY3RvclBzZXVkb1R5cGVNYXBIYXNoOjppbl93b3JkX3NldChyZWludGVycHJldF9j
YXN0PGNvbnN0IGNoYXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3RoKSkKLSAgICAgICAgcmV0dXJuIGVu
dHJ5LT50eXBlOwotICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bjsKLX0iIiIp
Ci0KLW91dHB1dF9maWxlLndyaXRlKCIiIgotCi1zdGF0aWMgaW5saW5lIENTU1NlbGVjdG9yOjpQ
c2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlwZVN0cmluZyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywg
dW5zaWduZWQgbGVuZ3RoKQotewotICAgIGNvbnN0IHVuc2lnbmVkIG1heEtleXdvcmRMZW5ndGgg
PSAlczsKLSAgICBMQ2hhciBidWZmZXJbbWF4S2V5d29yZExlbmd0aF07Ci0gICAgaWYgKGxlbmd0
aCA+IG1heEtleXdvcmRMZW5ndGgpCi0gICAgICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRv
VW5rbm93bjsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsraSkgewot
ICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzW2ldOwotICAgICAgICBpZiAoY2hh
cmFjdGVyICYgfjB4ZmYpCi0gICAgICAgICAgICByZXR1cm4gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vu
a25vd247Ci0KLSAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nhc3Q8TENoYXI+KGNoYXJhY3Rl
cik7Ci0gICAgfQotICAgIHJldHVybiBwYXJzZVBzZXVkb1R5cGVTdHJpbmcoYnVmZmVyLCBsZW5n
dGgpOwotfQotIiIiICUgbG9uZ2VzdF9rZXl3b3JkKQotCi1vdXRwdXRfZmlsZS53cml0ZSgiIiIK
LUNTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlwZVN0cmluZyhjb25zdCBTdHJp
bmdJbXBsJiBwc2V1ZG9UeXBlU3RyaW5nKQotewotICAgIGlmIChwc2V1ZG9UeXBlU3RyaW5nLmlz
OEJpdCgpKQotICAgICAgICByZXR1cm4gcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKHBzZXVkb1R5cGVT
dHJpbmcuY2hhcmFjdGVyczgoKSwgcHNldWRvVHlwZVN0cmluZy5sZW5ndGgoKSk7Ci0gICAgcmV0
dXJuIHBhcnNlUHNldWRvVHlwZVN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nLmNoYXJhY3RlcnMxNigp
LCBwc2V1ZG9UeXBlU3RyaW5nLmxlbmd0aCgpKTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQotCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9w
Ci0jZW5kaWYKLQotIiIiKQotb3V0cHV0X2ZpbGUuY2xvc2UoKQotCi1ncGVyZl9jb21tYW5kID0g
J2dwZXJmJwotaWYgJ0dQRVJGJyBpbiBvcy5lbnZpcm9uOgotICAgIGdwZXJmX2NvbW1hbmQgPSBv
cy5lbnZpcm9uWydHUEVSRiddCi0KLWdwZXJmX3JldHVybiA9IG9zLnN5c3RlbSgiJXMgLS1rZXkt
cG9zaXRpb25zPScqJyAtbSAxMCAtcyAyIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAtLW91
dHB1dC1maWxlPVNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAiICUgZ3BlcmZfY29tbWFuZCkKLWlm
IGdwZXJmX3JldHVybiAhPSAwOgotICAgIHByaW50KCJFcnJvciB3aGVuIGdlbmVyYXRpbmcgU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCBmcm9tIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiA6
KCIpCi0gICAgc3lzLmV4aXQoZ3BlcmZfcmV0dXJuKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>227694</attachid>
            <date>2014-03-24 15:16:58 -0700</date>
            <delta_ts>2014-03-28 16:05:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130620-20140324151637.patch</filename>
            <type>text/plain</type>
            <size>57211</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2MTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzdkMWZiOGM3NDRlNTBi
NTk0MjA0N2VkY2I5YzQyYWE3YjQ4MzRhZS4uZmE5ODRjYTdiOTI0NDI2ZTRmN2QzNDk3NjQ5NmYw
ZjMyYTJlZWFmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTAzLTI0ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSB0aGUg
Y29kZSByZWxhdGVkIHRvIFNlbGVjdG9yUHNldWRvVHlwZU1hcCB0byByZWZsZWN0IGl0cyBuZXcg
cHVycG9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMwNjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
U2luY2UgcjE2NjA5NCwgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwIG9ubHkgY29udGFpbnMgUHNldWRv
Q2xhc3MgaW5zdGFuY2VzIGFuZCB0aGUgNCBjb21wYXRpYmlsaXR5IFBzZXVkb0VsZW1lbnQuCisK
KyAgICAgICAgVGhpcyBwYXRjaCByZW5hbWUgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwIHRvIFNlbGVj
dG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcCBhbmQgdXBkYXRlIHRoZSBw
YXJzaW5nCisgICAgICAgIHRvIHNwbGl0IFBzZXVkb0NsYXNzIGFuZCBQc2V1ZG9FbGVtZW50Lgor
CisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFr
ZToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAg
ICogY3NzL0NTU0dyYW1tYXIueS5pbjoKKyAgICAgICAgKiBjc3MvQ1NTUGFyc2VyVmFsdWVzLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNz
QW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTZWxlY3Rvcik6CisgICAgICAgIChXZWJDb3JlOjpDU1NQ
YXJzZXJTZWxlY3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZSk6CisgICAgICAgICogY3NzL0NTU1Bh
cnNlclZhbHVlcy5oOgorICAgICAgICAqIGNzcy9DU1NTZWxlY3Rvci5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjphcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbCk6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NTZWxlY3Rvcjo6c2VsZWN0b3JUZXh0KToKKyAgICAgICAgKiBjc3MvU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluOiBSZW5hbWVkIGZyb20gU291cmNl
L1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbi4KKyAgICAgICAgKiBjc3MvU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmg6CisgICAgICAgICogY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHk6IFJlbmFtZWQgZnJvbSBTb3VyY2UvV2Vi
Q29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weS4KKyAgICAgICAgKGVudW1lcmFi
bGVQc2V1ZG9UeXBlKToKKyAgICAgICAgKGV4cGFuZF9pZmRlZl9jb25kaXRpb24pOgorCiAyMDE0
LTAzLTI0ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbaU9TXSBE
b3dubG9hZCBzdXBwb3J0IGJ5IENGVVJMRG93bmxvYWRSZWYgdW5kZXIgVVNFKENGTkVUV09SSyku
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGUzZTEwZGM3ODEyZjNmZmQyYjVkMDQxMmJiYzhhYWYw
YTNiMGUzZWUuLjQzNDU2ZWU1NjZhYmM3OTc4MWMyZWJiODI3ZDA4MDgyN2RhNjY2YjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0zMTMwLDEyICszMTMwLDEyIEBAIEFERF9TT1VSQ0VfV0VCQ09S
RV9ERVJJVkVEX0RFUEVOREVOQ0lFUygke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vQ1NT
R3JhbW1hCiAKICMgR2VuZXJhdGUgQ1NTIFNlbGVjdG9yIHBzZXVkbyB0eXBlIG5hbWUgdG8gdmFs
dWUgbWFwcy4KIGFkZF9jdXN0b21fY29tbWFuZCgKLSAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZiAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcAotICAgIE1BSU5fREVQ
RU5ERU5DWSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weQor
ICAgIE9VVFBVVCAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmdwZXJmICR7REVSSVZFRF9TT1VSQ0VTX1dF
QkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAu
Y3BwCisgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQ
c2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5CiAgICAgV09SS0lOR19ESVJF
Q1RPUlkgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9Ci0gICAgQ09NTUFORCAke1BZVEhP
Tl9FWEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1h
cC5weSAke1dFQkNPUkVfRElSfS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluICIke0ZFQVRV
UkVfREVGSU5FU19XSVRIX1NQQUNFX1NFUEFSQVRPUn0iCisgICAgQ09NTUFORCAke1BZVEhPTl9F
WEVDVVRBQkxFfSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5weSAke1dFQkNPUkVfRElSfS9jc3MvU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluICIke0ZFQVRVUkVfREVGSU5FU19X
SVRIX1NQQUNFX1NFUEFSQVRPUn0iCiAgICAgVkVSQkFUSU0pCi1saXN0KEFQUEVORCBXZWJDb3Jl
X1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvVHlw
ZU1hcC5jcHApCitsaXN0KEFQUEVORCBXZWJDb3JlX1NPVVJDRVMgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1h
cC5jcHApCiBhZGRfY3VzdG9tX2NvbW1hbmQoCiAgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VT
X1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmdwZXJmICR7REVSSVZF
RF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmNwcAog
ICAgIE1BSU5fREVQRU5ERU5DWSAke1dFQkNPUkVfRElSfS9jc3MvbWFrZVNlbGVjdG9yUHNldWRv
RWxlbWVudHNNYXAucHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
Lm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRmNGEyOTQ0
ODdlNGM4YTdlM2RhNjFlODgwZjY3NDNhMjM3NDE3ZjYuLjNjNWQ3NzBjYmVhNWU0YjM4NjJkNGZi
YmE2Yjc0MTg1ZmQ5MWZlNWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNzUx
LDggKzc1MSw4IEBAIGFsbCA6IFwKICAgICBQbHVnSW5zUmVzb3VyY2VzLmggXAogICAgIFNWR0Vs
ZW1lbnRGYWN0b3J5LmNwcCBcCiAgICAgU1ZHTmFtZXMuY3BwIFwKKyAgICBTZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuY3BwIFwKICAgICBTZWxlY3RvclBzZXVk
b0VsZW1lbnRUeXBlTWFwLmNwcCBcCi0gICAgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCBcCiAg
ICAgVXNlckFnZW50U3R5bGVTaGVldHMuaCBcCiAgICAgV2ViS2l0Rm9udEZhbWlseU5hbWVzLmNw
cCBcCiAgICAgV2ViS2l0Rm9udEZhbWlseU5hbWVzLmggXApAQCAtNzk3LDkgKzc5Nyw5IEBAIENT
U1ZhbHVlS2V5d29yZHMuaCA6ICQoV0VCQ09SRV9DU1NfVkFMVUVfS0VZV09SRFMpIGNzcy9tYWtl
dmFsdWVzLnBsIGJpbmRpbmdzL3NjCiAKICMgQ1NTIFNlbGVjdG9yIHBzZXVkbyB0eXBlIG5hbWUg
dG8gdmFsdWUgbWFwLgogCi1XRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZ
V09SRFMgOj0gJChXZWJDb3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluCi1TZWxlY3Rv
clBzZXVkb1R5cGVNYXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01BUF9LRVlXT1JEUykK
LQlweXRob24gIiQoV2ViQ29yZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHkiICQo
V0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZUEVfTUFQX0tFWVdPUkRTKSAiJChGRUFUVVJF
X0RFRklORVMpIgorV0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZUEVfTUFQX0tFWVdPUkRT
IDo9ICQoV2ViQ29yZSkvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudE1hcC5pbgorU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFw
LmNwcCA6ICQoV2ViQ29yZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJp
bGl0eUVsZW1lbnRNYXAucHkgJChXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBf
S0VZV09SRFMpCisJcHl0aG9uICIkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFz
c0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5IiAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BT
RVVET19UWVBFX01BUF9LRVlXT1JEUykgIiQoRkVBVFVSRV9ERUZJTkVTKSIKIAogV0VCQ09SRV9D
U1NfU0VMRUNUT1JfUFNFVURPX0VMRU1FTlRTX1RZUEVfTUFQX0tFWVdPUkRTIDo9ICQoV2ViQ29y
ZSkvY3NzL1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuaW4KIFNlbGVjdG9yUHNldWRvRWxl
bWVudFR5cGVNYXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVu
dHNNYXAucHkgJChXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fRUxFTUVOVFNfVFlQRV9NQVBf
S0VZV09SRFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0LmFt
IGIvU291cmNlL1dlYkNvcmUvR05VbWFrZWZpbGUubGlzdC5hbQppbmRleCBiNzEyNmJkMjQ0ZmNl
NTk2ZjE4MGVjZWQ1YzZhMWNlN2YwZDgzNTBkLi5jNWRmNTZiMmY5ZGY5ZGU1ZmEwNWRiY2VkYWI0
NWFjZTA0ODdiMjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9HTlVtYWtlZmlsZS5saXN0
LmFtCisrKyBiL1NvdXJjZS9XZWJDb3JlL0dOVW1ha2VmaWxlLmxpc3QuYW0KQEAgLTg1NSw4ICs4
NTUsOCBAQCB3ZWJjb3JlX2J1aWx0X3NvdXJjZXMgKz0gXAogCURlcml2ZWRTb3VyY2VzL1dlYkNv
cmUvUGx1Z0luc1Jlc291cmNlc0RhdGEuY3BwIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1Bs
dWdJbnNSZXNvdXJjZXMuaCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9TZXR0aW5nc01hY3Jv
cy5oIFwKKwlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU2VsZWN0
b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5jcHAgXAotCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCBcCiAJRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9Vc2VyQWdl
bnRTY3JpcHRzRGF0YS5jcHAgXAogCURlcml2ZWRTb3VyY2VzL1dlYkNvcmUvVXNlckFnZW50U2Ny
aXB0cy5oIFwKIAlEZXJpdmVkU291cmNlcy9XZWJDb3JlL1VzZXJBZ2VudFN0eWxlU2hlZXRzRGF0
YS5jcHAgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNv
cmUudmN4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHBy
b2oKaW5kZXggMWI0YzgwMDFlOTVjOTdiNjZhMGJjODZiMTJhYzdiYjdiY2QwNDE4Mi4uNWJhNjg4
NjUxZmEwNmNiYjQwNWFmYjVkNTFmODZiOWRmNmM2MzE4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qCkBAIC0yOTAsOCArMjkwLDggQEAKICAg
ICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1
aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVk
U291cmNlc1xDU1NQcm9wZXJ0eU5hbWVzLmNwcCIgLz4KICAgICA8Q2xDb21waWxlIEluY2x1ZGU9
IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFBy
b2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xDU1NWYWx1ZUtleXdvcmRzLmNwcCIgLz4KKyAgICA8
Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3Jt
QXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xTZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1
cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFNlbGVjdG9yUHNldWRvRWxlbWVudFR5
cGVNYXAuY3BwIiAvPgotICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVp
bGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRT
b3VyY2VzXFNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
V2ViQ29yZVxEZXJpdmVkU291cmNlc1xKU0FOR0xFSW5zdGFuY2VkQXJyYXlzLmNwcCI+CiAgICAg
ICA8RXhjbHVkZWRGcm9tQnVpbGQgQ29uZGl0aW9uPSInJChDb25maWd1cmF0aW9uKXwkKFBsYXRm
b3JtKSc9PSdEZWJ1Z3xXaW4zMiciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgogICAgICAgPEV4
Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQbGF0Zm9ybSkn
PT0nRGVidWd8eDY0JyI+dHJ1ZTwvRXhjbHVkZWRGcm9tQnVpbGQ+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMgYi9Tb3Vy
Y2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKaW5kZXgg
OWQyMDRhMDM0ZTVhMTMzMjBlZTU3M2E5N2RjMTI3ODdmOGRmMjllYy4uZTdmZDYxNzMzMmE1YWU0
ODgwMDk1Y2NkN2JmNDQ5MmNmMmEwZGYzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycwpAQCAtNTE1NSwxMCArNTE1
NSwxMCBAQAogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XENTU1ZhbHVlS2V5d29yZHMuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZlZFNvdXJjZXM8L0Zp
bHRlcj4KICAgICA8L0NsQ29tcGlsZT4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmln
dXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1l
KVxEZXJpdmVkU291cmNlc1xTZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmNwcCI+CisgICAg
PENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9y
bUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCI+CiAgICAgICA8RmlsdGVyPkRl
cml2ZWRTb3VyY2VzPC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJ
bmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVy
ZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNw
cCI+CisgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2Jq
JChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU2Vs
ZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5jcHAiPgogICAgICAgPEZpbHRlcj5EZXJpdmVkU291
cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgogICAgIDxDbENvbXBpbGUgSW5jbHVkZT0i
JChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJv
amVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXEV2ZW50RmFjdG9yeS5jcHAiPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDViMWM3MzU0
ODkxODljOTU2NTgzMzc0M2FjYWU0ZjFjNjQ5ZTFhOTYuLmU3ZGYyODU5NGViZjk2NDMzNDc5Yjlj
MDNhYTZkNTlhODAxODM1YWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE0NzcsNyArMTQ3Nyw3IEBACiAJCTQzQTYyNUY4MTNC
MzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0E2MjVGNjEzQjMzMDQwMDBBQzk0QjggLyogU1ZH
QW5pbWF0ZWRDb2xvci5oICovOyB9OwogCQk0M0E2MjVGOTEzQjMzMDQwMDBBQzk0QjggLyogU1ZH
QW5pbWF0ZWRDb2xvci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0M0E2MjVGNzEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5jcHAg
Ki87IH07CiAJCTQzQTYyNjY3MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmluZy5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0E2MjY2
NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJpbmcuY3BwICovOyB9OwotCQk0M0I4
NUVENDE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQzQjg1RUQyMThDQkVDNTIw
MEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwICovOyB9OworCQk0M0I4NUVENDE4
Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVt
ZW50TWFwLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQzQjg1RUQyMThDQkVDNTIwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0
aWJpbGl0eUVsZW1lbnRNYXAuY3BwICovOyB9OwogCQk0M0I5MzM2OTEzQjI2MUIxMDA0NTg0QkYg
LyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQzQjkzMzY3MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBv
aW50TGlzdC5oICovOyB9OwogCQk0M0I5MzM2QTEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0
ZWRQb2ludExpc3QuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDNCOTMzNjgxM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNw
cCAqLzsgfTsKIAkJNDNDMDkyQkMxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNWR0ZvcmVpZ25P
YmplY3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQz
QzA5MkJBMTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3JlaWduT2JqZWN0LmggKi87IH07
CkBAIC04NDEwLDEwICs4NDEwLDEwIEBACiAJCTQzQTYyNUY2MTNCMzMwNDAwMEFDOTRCOCAvKiBT
VkdBbmltYXRlZENvbG9yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNWR0Fu
aW1hdGVkQ29sb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNBNjI1RjcxM0Iz
MzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3IuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRDb2xvci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CiAJCTQzQTYyNjY2MTNCM0QxMTAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZFN0cmlu
Zy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTVkdBbmltYXRlZFN0
cmluZy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1RUQwMThDQkVBQ0Uw
MEUzMUFGNCAvKiBtYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5ICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5z
Y3JpcHQucHl0aG9uOyBwYXRoID0gbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQk0M0I4NUVEMzE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJm
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNlbGVjdG9yUHNldWRvVHlwZU1hcC5ncGVyZjsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJNDNCODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNl
bGVjdG9yUHNldWRvVHlwZU1hcC5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3RvclBz
ZXVkb1R5cGVNYXAuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQwMThD
QkVBQ0UwMEUzMUFGNCAvKiBtYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlF
bGVtZW50TWFwLnB5ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5zY3JpcHQucHl0aG9uOyBwYXRoID0gbWFrZVNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9y
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRNYXAuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0I4NUVEMzE4
Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVt
ZW50TWFwLmdwZXJmICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gZmlsZTsgcGF0aCA9IFNlbGVjdG9yUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDNCODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3Rv
clBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW47IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQzQjkzMzY3MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBv
aW50TGlzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTVkdBbmltYXRlZFBv
aW50TGlzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0M0I5MzM2ODEzQjI2MUIx
MDA0NTg0QkYgLyogU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0ZWRQb2ludExpc3QuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0M0MwOTJCOTEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVyU1ZHRm9y
ZWlnbk9iamVjdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW5k
ZXJTVkdGb3JlaWduT2JqZWN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE1
OTI2LDEwICsxNTkyNiwxMCBAQAogCQkJCTQ0QTI4QUFFMTJERkI4QkYwMEFFOTIzQiAvKiBNYXRo
TUxOYW1lcy5oICovLAogCQkJCTcxRTIxODM4MTczNTlGQjgwMDZFNkU0RCAvKiBQbHVnSW5zUmVz
b3VyY2VzLmggKi8sCiAJCQkJNzFFMjE4MzkxNzM1OUZCODAwNkU2RTREIC8qIFBsdWdJbnNSZXNv
dXJjZXNEYXRhLmNwcCAqLywKKwkJCQk0M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0
b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCAqLywKKwkJCQk0M0I4
NUVEMzE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxp
dHlFbGVtZW50TWFwLmdwZXJmICovLAogCQkJCTI2QUEwRjlEMThEMkExOEIwMDQxOTM4MSAvKiBT
ZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmNwcCAqLywKIAkJCQkyNkFBMEY5RjE4RDJBMUMx
MDA0MTkzODEgLyogU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5ncGVyZiAqLywKLQkJCQk0
M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCAqLywK
LQkJCQk0M0I4NUVEMzE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdw
ZXJmICovLAogCQkJCTUzRUY3NjZBMTY1MzBBNjEwMDRDQkU0OSAvKiBTZXR0aW5nc01hY3Jvcy5o
ICovLAogCQkJCTY1NjU4MUU2MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFjdG9yeS5j
cHAgKi8sCiAJCQkJNjU2NTgxRTcwOUQxNTA4RDAwMEU2MUQ3IC8qIFNWR0VsZW1lbnRGYWN0b3J5
LmggKi8sCkBAIC0yMTY3OCw3ICsyMTY3OCw3IEBACiAJCQkJRTU1RjQ5NzkxNTFCODg4MDAwQkI2
N0RCIC8qIExlbmd0aEZ1bmN0aW9ucy5jcHAgKi8sCiAJCQkJRTVCQTdENjIxNTE0MzdDQTAwRkUx
RTNGIC8qIExlbmd0aEZ1bmN0aW9ucy5oICovLAogCQkJCTI2QUEwRjk5MThEMjk3M0QwMDQxOTM4
MSAvKiBtYWtlU2VsZWN0b3JQc2V1ZG9FbGVtZW50c01hcC5weSAqLywKLQkJCQk0M0I4NUVEMDE4
Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSAqLywKKwkJCQk0
M0I4NUVEMDE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5weSAqLywKIAkJCQk5M0NBNEM5QTA5REY5M0ZBMDBERjg2Nzcg
LyogbWFrZS1jc3MtZmlsZS1hcnJheXMucGwgKi8sCiAJCQkJOTNDQTRDOUIwOURGOTNGQTAwREY4
Njc3IC8qIG1ha2Vwcm9wLnBsICovLAogCQkJCTkzQ0E0QzlEMDlERjkzRkEwMERGODY3NyAvKiBt
YWtldmFsdWVzLnBsICovLApAQCAtMjE3MjYsNyArMjE3MjYsNyBAQAogCQkJCTQxNTA3MTU1MTY4
NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5jcHAgKi8sCiAJCQkJNDE1MDcxNTYxNjg1
MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmggKi8sCiAJCQkJMjZBQTBGOUExOEQyOTcz
RDAwNDE5MzgxIC8qIFNlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuaW4gKi8sCi0JCQkJNDNC
ODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5pbiAqLywKKwkJ
CQk0M0I4NUVENjE4Q0JFQzk3MDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBh
dGliaWxpdHlFbGVtZW50TWFwLmluICovLAogCQkJCTQzMTA3QkUxMThDQzE5REUwMENDMThFOCAv
KiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaCAqLywKIAkJCQlFNDdBOTdDRTE2MzA1OUZDMDA1RENE
OTkgLyogU3R5bGVJbnZhbGlkYXRpb25BbmFseXNpcy5jcHAgKi8sCiAJCQkJRTQ3QTk3Q0YxNjMw
NTlGQzAwNURDRDk5IC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMuaCAqLywKQEAgLTI3MTg1
LDcgKzI3MTg1LDcgQEAKIAkJCQk2RTY3RDJBNjEyODBFOEE0MDA4NzU4RjcgLyogRXh0ZW5zaW9u
czNET3BlbkdMLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQ0REFCNUIxMTVBNjIzNTgwMDk3QzFF
NCAvKiBFeHRlbnNpb25zM0RPcGVuR0xDb21tb24uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNzcy
ODY5NEUxNEY4ODgyNTAwRjQ4NERDIC8qIEVYVFRleHR1cmVGaWx0ZXJBbmlzb3Ryb3BpYy5jcHAg
aW4gU291cmNlcyAqLywKLQkJCQk0M0I4NUVENDE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQ
c2V1ZG9UeXBlTWFwLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTQzQjg1RUQ0MThDQkVDNTIwMEUz
MUFGNCAvKiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCODgwRTFERTJENjAwN0YyNDgxIC8qIEZFQmxlbmQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEEwRTFERTJENjAwN0YyNDgxIC8qIEZFQ29s
b3JNYXRyaXguY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTc1RThCOEMwRTFERTJENjAwN0YyNDgx
IC8qIEZFQ29tcG9uZW50VHJhbnNmZXIuY3BwIGluIFNvdXJjZXMgKi8sCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluIGIvU291cmNlL1dlYkNvcmUvY3NzL0NT
U0dyYW1tYXIueS5pbgppbmRleCBlYWZiODZmNGI3YTMzMTYyMmE0OWM2YTlkNGY0Zjc4MDJhNmY4
Y2FhLi45MWZlMzVkZDRiYTczMmZlYWRhYWJjOTQ3ZGYzOGUyZGE3OTM4OTJiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTR3JhbW1hci55LmluCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NHcmFtbWFyLnkuaW4KQEAgLTExOTYsMTMgKzExOTYsNyBAQCBwc2V1ZG9fcGFnZToK
IAogcHNldWRvOgogICAgICc6JyBJREVOVCB7Ci0gICAgICAgICQkID0gbnVsbHB0cjsKLSAgICAg
ICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7
Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwot
ICAgICAgICAkMi5sb3dlcigpOwotICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvVHlwZVZhbHVl
KCQyKTsKLSAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6
OlBzZXVkb1Vua25vd24pCi0gICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAg
ICAgICAgJCQgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGli
aWxpdHlFbGVtZW50U2VsZWN0b3IoJDIpOwogICAgIH0KICAgICB8ICc6JyAnOicgSURFTlQgewog
ICAgICAgICAkJCA9IENTU1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0VsZW1lbnRTZWxlY3Rv
cigkMyk7CkBAIC0xMjI0LDggKzEyMTgsNyBAQCBwc2V1ZG86CiAgICAgICAgICAgICBhdXRvIHNl
bGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAg
ICAgIHNlbGVjdG9yLT5zZXRNYXRjaChDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogICAgICAg
ICAgICAgc2VsZWN0b3ItPmFkb3B0U2VsZWN0b3JWZWN0b3IoKnN0ZDo6dW5pcXVlX3B0cjxWZWN0
b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNlbGVjdG9yPj4+KCQ0KSk7Ci0gICAgICAgICAg
ICAkMi5sb3dlcigpOwotICAgICAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgk
Mik7CisgICAgICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAg
ICAgICAgICBpZiAoc2VsZWN0b3ItPnBzZXVkb1R5cGUoKSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRv
QW55KQogICAgICAgICAgICAgICAgICQkID0gc2VsZWN0b3IucmVsZWFzZSgpOwogICAgICAgICB9
CkBAIC0xMjM2LDcgKzEyMjksNyBAQCBwc2V1ZG86CiAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBz
dGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICBzZWxlY3Rvci0+
c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgc2VsZWN0b3ItPnNl
dEFyZ3VtZW50KCQ0KTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5cGVWYWx1ZSgkMik7
CisgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFzc1ZhbHVlKCQyKTsKICAgICAgICAgaWYg
KHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pCiAg
ICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICB9CkBAIC0xMjQ2LDcgKzEy
MzksNyBAQCBwc2V1ZG86CiAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVl
PENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgc2VsZWN0b3ItPnNldEFyZ3VtZW50KEF0b21p
Y1N0cmluZzo6bnVtYmVyKCQ0ICogJDUpKTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5
cGVWYWx1ZSgkMik7CisgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFzc1ZhbHVlKCQyKTsK
ICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgIT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b1Vua25vd24pCiAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICB9CkBA
IC0xMjU1LDggKzEyNDgsNyBAQCBwc2V1ZG86CiAgICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6
Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9yPigpOwogICAgICAgICBzZWxlY3Rvci0+c2V0
TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKICAgICAgICAgc2VsZWN0b3ItPnNldEFy
Z3VtZW50KCQ0KTsKLSAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFBz
ZXVkb1R5cGVWYWx1ZSgkMik7CisgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9DbGFzc1ZhbHVl
KCQyKTsKICAgICAgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgdHlwZSA9IHNlbGVjdG9yLT5w
c2V1ZG9UeXBlKCk7CiAgICAgICAgIGlmICh0eXBlID09IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtu
b3duKQogICAgICAgICAgICAgc2VsZWN0b3IgPSBudWxscHRyOwpAQCAtMTI4MCw5ICsxMjcyLDcg
QEAgcHNldWRvOgogICAgICAgICAgICAgVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJT
ZWxlY3Rvcj4+IHNlbGVjdG9yVmVjdG9yOwogICAgICAgICAgICAgc2VsZWN0b3JWZWN0b3IuYXBw
ZW5kKHN0ZDo6bW92ZShzZWxlY3RvcikpOwogICAgICAgICAgICAgJCQtPmFkb3B0U2VsZWN0b3JW
ZWN0b3Ioc2VsZWN0b3JWZWN0b3IpOwotCi0gICAgICAgICAgICAkMi5sb3dlcigpOwotICAgICAg
ICAgICAgJCQtPnNldFBzZXVkb1R5cGVWYWx1ZSgkMik7CisgICAgICAgICAgICAkJC0+c2V0UHNl
dWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAgIH0KICAgICB9CiAgIDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1BhcnNlclZhbHVlcy5jcHAKaW5kZXggMjkyMjIwZmE0Zjk2ZTcyMTRiODM3OGEwZDgwNjE2
ZTdhMzZhOWM5Yy4uYjY2Yzc4NTcxNDljOTU5OTM4NjNjOTUxNTRlN2JhOGQyNjcwOTc5YyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5jcHAKQEAgLTIwMyw2ICsyMDMsMjYgQEAg
Q1NTUGFyc2VyU2VsZWN0b3IqIENTU1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0N1ZUZ1bmN0
aW9uU2VsZWN0b3IoY29uc3QgQ1NTUGEKIH0KICNlbmRpZgogCitDU1NQYXJzZXJTZWxlY3Rvciog
Q1NTUGFyc2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVu
dFNlbGVjdG9yKENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlwZVN0cmluZykKK3sKKyAgICBQc2V1
ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcHNldWRvVHlwZSA9IHBhcnNlUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nKTsK
KyAgICBpZiAocHNldWRvVHlwZS5wc2V1ZG9DbGFzcyAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5r
bm93bikgeworICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJz
ZXJTZWxlY3Rvcj4oKTsKKyAgICAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPm1fbWF0Y2ggPSBD
U1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3M7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5t
X3BzZXVkb1R5cGUgPSBwc2V1ZG9UeXBlLnBzZXVkb0NsYXNzOworICAgICAgICByZXR1cm4gc2Vs
ZWN0b3IucmVsZWFzZSgpOworICAgIH0KKyAgICBpZiAocHNldWRvVHlwZS5jb21wYXRpYmlsaXR5
UHNldWRvRWxlbWVudCAhPSBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bikgeworICAgICAgICBh
dXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKKyAg
ICAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPm1fbWF0Y2ggPSBDU1NTZWxlY3Rvcjo6UHNldWRv
RWxlbWVudDsKKyAgICAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3ItPm1fcHNldWRvVHlwZSA9IHBz
ZXVkb1R5cGUuY29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQ7CisgICAgICAgIEF0b21pY1N0cmlu
ZyBuYW1lID0gcHNldWRvVHlwZVN0cmluZzsKKyAgICAgICAgc2VsZWN0b3ItPm1fc2VsZWN0b3It
PnNldFZhbHVlKG5hbWUpOworICAgICAgICByZXR1cm4gc2VsZWN0b3IucmVsZWFzZSgpOworICAg
IH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogQ1NTUGFyc2VyU2VsZWN0b3I6OkNTU1BhcnNl
clNlbGVjdG9yKCkKICAgICA6IG1fc2VsZWN0b3Ioc3RkOjptYWtlX3VuaXF1ZTxDU1NTZWxlY3Rv
cj4oKSkKIHsKQEAgLTIzNSwxMTIgKzI1NSwxMiBAQCB2b2lkIENTU1BhcnNlclNlbGVjdG9yOjph
ZG9wdFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZQog
ICAgIG1fc2VsZWN0b3ItPnNldFNlbGVjdG9yTGlzdChzdGQ6Om1vdmUoc2VsZWN0b3JMaXN0KSk7
CiB9CiAKLXZvaWQgQ1NTUGFyc2VyU2VsZWN0b3I6OnNldFBzZXVkb1R5cGVWYWx1ZShjb25zdCBD
U1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpCit2b2lkIENTU1BhcnNlclNlbGVjdG9y
OjpzZXRQc2V1ZG9DbGFzc1ZhbHVlKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvQ2xhc3NT
dHJpbmcpCiB7Ci0gICAgQXRvbWljU3RyaW5nIG5hbWUgPSBwc2V1ZG9UeXBlU3RyaW5nOwotICAg
IG1fc2VsZWN0b3ItPnNldFZhbHVlKG5hbWUpOwotCi0gICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5
cGUgcHNldWRvVHlwZSA9IHBhcnNlUHNldWRvVHlwZVN0cmluZygqbmFtZS5pbXBsKCkpOwotICAg
IGJvb2wgaXNDb21wYXRpYmlsaXR5RWxlbWVudFR5cGUgPSBmYWxzZTsgLy8gc2luZ2xlIGNvbG9u
IGNvbXBhdGJpbGl0eSBtb2RlCi0KLSAgICBzd2l0Y2ggKHBzZXVkb1R5cGUpIHsKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9BZnRlcjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9C
ZWZvcmU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RMZXR0ZXI6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RMaW5lOgotICAgICAgICBpc0NvbXBhdGliaWxpdHlF
bGVtZW50VHlwZSA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1Vua25vd246Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW1wdHk6Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9GaXJzdE9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9MYXN0Q2hp
bGQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9Pbmx5Q2hpbGQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
T25seU9mVHlwZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvTnRoTGFzdENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aExhc3RP
ZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FueToK
LSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9BbnlMaW5rOgotICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0F1dG9maWxsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvdmVyOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RyYWc6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRm9jdXM6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWN0aXZlOgotICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NoZWNrZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRW5hYmxlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsUGFnZU1lZGlhOgot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlZmF1bHQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvRGlzYWJsZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT3B0aW9uYWw6
Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVxdWlyZWQ6Ci0gICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvUmVhZE9ubHk6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVhZFdy
aXRlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njb3BlOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1ZhbGlkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ludmFsaWQ6
Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRlcm1pbmF0ZToKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9UYXJnZXQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFu
ZzoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3Q6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvUm9vdDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJCYWNr
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckZvcndhcmQ6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvV2luZG93SW5hY3RpdmU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQ29ybmVyUHJlc2VudDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWNy
ZW1lbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5jcmVtZW50OgotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb0hvcml6b250YWw6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvVmVydGljYWw6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU3RhcnQ6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5kOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Rv
dWJsZUJ1dHRvbjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TaW5nbGVCdXR0b246Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm9CdXR0b246Ci0jaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW46Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbkRvY3VtZW50OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW5BbmNlc3RvcjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9BbmltYXRpbmdGdWxsU2NyZWVuVHJhbnNpdGlvbjoKLSNlbmRpZgotICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb0luUmFuZ2U6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT3V0
T2ZSYW5nZToKLSNpZiBFTkFCTEUoVklERU9fVFJBQ0spCi0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRnV0dXJlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3Q6Ci0jZW5kaWYK
LSAgICAgICAgYnJlYWs7Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0N1ZToKLSNlbmRpZgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Jl
c2l6ZXI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyOgotICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhckNvcm5lcjoKLSAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9TY3JvbGxiYXJCdXR0b246Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Ny
b2xsYmFyVGh1bWI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyVHJhY2s6
Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFyVHJhY2tQaWVjZToKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TZWxlY3Rpb246Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvVXNlckFnZW50Q3VzdG9tRWxlbWVudDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9XZWJLaXRDdXN0b21FbGVtZW50OgotCi0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmly
c3Q6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGVmdDoKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9SaWdodDoKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLQotICAgIHVuc2lnbmVkIG1hdGNoVHlwZSA9IG1fc2VsZWN0b3ItPm1f
bWF0Y2g7Ci0gICAgaWYgKGlzQ29tcGF0aWJpbGl0eUVsZW1lbnRUeXBlKQotICAgICAgICBtYXRj
aFR5cGUgPSBDU1NTZWxlY3Rvcjo6UHNldWRvRWxlbWVudDsKKyAgICBBU1NFUlQobV9zZWxlY3Rv
ci0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2xhc3MpOwogCi0gICAgbV9zZWxlY3Rv
ci0+bV9tYXRjaCA9IG1hdGNoVHlwZTsKLSAgICBtX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUgPSBw
c2V1ZG9UeXBlOworICAgIFBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudCBw
c2V1ZG9UeXBlID0gcGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5n
KHBzZXVkb0NsYXNzU3RyaW5nKTsKKyAgICBtX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUgPSBwc2V1
ZG9UeXBlLnBzZXVkb0NsYXNzOwogfQogCiBib29sIENTU1BhcnNlclNlbGVjdG9yOjppc1NpbXBs
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgKaW5kZXggMGQ1NTY0NTI3
YzMyNTMxOGVlZTVlNTI0MjhhZDdkNWRhMzA0OTBhZS4uNDk2ZGMyNzBiN2M4ZTAyYTU5NmJkYTRm
Y2FjZjE3MGRkNDFjNGJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNl
clZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuaApAQCAt
MTc4LDYgKzE3OCw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgQ1NTUGFyc2VyU2VsZWN0b3IqIHBh
cnNlUGFnZVBzZXVkb1NlbGVjdG9yKGNvbnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlwZVN0
cmluZyk7CiAgICAgc3RhdGljIENTU1BhcnNlclNlbGVjdG9yKiBwYXJzZVBzZXVkb0VsZW1lbnRT
ZWxlY3RvcihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwogICAgIHN0YXRpYyBD
U1NQYXJzZXJTZWxlY3RvciogcGFyc2VQc2V1ZG9DdWVGdW5jdGlvblNlbGVjdG9yKGNvbnN0IENT
U1BhcnNlclN0cmluZyYgZnVuY3Rpb25JZGVudGlmaWVyLCBWZWN0b3I8c3RkOjp1bmlxdWVfcHRy
PENTU1BhcnNlclNlbGVjdG9yPj4qIHNlbGVjdG9yVmVjdG9yKTsKKyAgICBzdGF0aWMgQ1NTUGFy
c2VyU2VsZWN0b3IqIHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVj
dG9yKENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlwZVN0cmluZyk7CiAKICAgICBDU1NQYXJzZXJT
ZWxlY3RvcigpOwogICAgIGV4cGxpY2l0IENTU1BhcnNlclNlbGVjdG9yKGNvbnN0IFF1YWxpZmll
ZE5hbWUmKTsKQEAgLTE5NSw3ICsxOTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkb3B0U2Vs
ZWN0b3JWZWN0b3IoVmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+JiBz
ZWxlY3RvclZlY3Rvcik7CiAKLSAgICB2b2lkIHNldFBzZXVkb1R5cGVWYWx1ZShjb25zdCBDU1NQ
YXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOworICAgIHZvaWQgc2V0UHNldWRvQ2xhc3NW
YWx1ZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb0NsYXNzU3RyaW5nKTsKICAgICBDU1NT
ZWxlY3Rvcjo6UHNldWRvVHlwZSBwc2V1ZG9UeXBlKCkgY29uc3QgeyByZXR1cm4gbV9zZWxlY3Rv
ci0+cHNldWRvVHlwZSgpOyB9CiAgICAgYm9vbCBpc0N1c3RvbVBzZXVkb0VsZW1lbnQoKSBjb25z
dCB7IHJldHVybiBtX3NlbGVjdG9yLT5pc0N1c3RvbVBzZXVkb0VsZW1lbnQoKTsgfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwIGIvU291cmNlL1dlYkNv
cmUvY3NzL0NTU1NlbGVjdG9yLmNwcAppbmRleCAwNGU0ZjZlMmJkNjE4ZWJmMGQxZTY2NDdjNmVl
MTdhMzQ5OGE1ZTllLi5jYzc0MGUzODgyMTQwNzBhYjA4Yzc3MmVkN2E0NzFiZjI5MmJjMGFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKQEAgLTI5NCwxNCArMjk0LDkgQEAgYm9vbCBD
U1NTZWxlY3Rvcjo6b3BlcmF0b3I9PShjb25zdCBDU1NTZWxlY3RvciYgb3RoZXIpIGNvbnN0CiAg
ICAgcmV0dXJuIHRydWU7CiB9CiAKLXN0YXRpYyB2b2lkIGFwcGVuZFBzZXVkb1R5cGVUYWlsSWZO
ZWNlc3NhcnkoU3RyaW5nQnVpbGRlciYgc3RyLCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3Ip
CitzdGF0aWMgdm9pZCBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChTdHJpbmdCdWlsZGVy
JiBzdHIsIGNvbnN0IENTU1NlbGVjdG9yKiBzZWxlY3RvcikKIHsKICAgICBzd2l0Y2ggKHNlbGVj
dG9yLT5wc2V1ZG9UeXBlKCkpIHsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3Q6Ci0g
ICAgICAgIGlmIChjb25zdCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IHNlbGVjdG9y
LT5zZWxlY3Rvckxpc3QoKSkKLSAgICAgICAgICAgIHN0ci5hcHBlbmQoc2VsZWN0b3JMaXN0LT5m
aXJzdCgpLT5zZWxlY3RvclRleHQoKSk7Ci0gICAgICAgIHN0ci5hcHBlbmQoJyknKTsKLSAgICAg
ICAgYnJlYWs7CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFuZzoKICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGlsZDoKICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9O
dGhMYXN0Q2hpbGQ6CkBAIC0zMTAsMTkgKzMwNSwxMCBAQCBzdGF0aWMgdm9pZCBhcHBlbmRQc2V1
ZG9UeXBlVGFpbElmTmVjZXNzYXJ5KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0
bwogICAgICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yLT5hcmd1bWVudCgpKTsKICAgICAgICAgc3Ry
LmFwcGVuZCgnKScpOwogICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9Bbnk6IHsKLSAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGZpcnN0U3ViU2VsZWN0b3IgPSBz
ZWxlY3Rvci0+c2VsZWN0b3JMaXN0KCktPmZpcnN0KCk7Ci0gICAgICAgIGZvciAoY29uc3QgQ1NT
U2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gZmlyc3RTdWJTZWxlY3Rvcjsgc3ViU2VsZWN0b3I7IHN1
YlNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YlNlbGVjdG9yKSkgewotICAgICAg
ICAgICAgaWYgKHN1YlNlbGVjdG9yICE9IGZpcnN0U3ViU2VsZWN0b3IpCi0gICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZCgnLCcpOwotICAgICAgICAgICAgc3RyLmFwcGVuZChzdWJTZWxlY3Rvci0+
c2VsZWN0b3JUZXh0KCkpOwotICAgICAgICB9Ci0gICAgICAgIHN0ci5hcHBlbmQoJyknKTsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQogICAgIGRlZmF1bHQ6CiAgICAgICAgIGJyZWFrOwogICAgIH0K
KwogfQogCiBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJp
Z2h0U2lkZSkgY29uc3QKQEAgLTM0NywyMiArMzMzLDIwMiBAQCBTdHJpbmcgQ1NTU2VsZWN0b3I6
OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lkZSkgY29uc3QKICAgICAgICAgfSBl
bHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6Q2xhc3MpIHsKICAgICAgICAgICAg
IHN0ci5hcHBlbmQoJy4nKTsKICAgICAgICAgICAgIHNlcmlhbGl6ZUlkZW50aWZpZXIoY3MtPnZh
bHVlKCksIHN0cik7Ci0gICAgICAgIH0gZWxzZSBpZiAoY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzIHx8IGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQYWdlUHNldWRv
Q2xhc3MpIHsKKyAgICAgICAgfSBlbHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6
UHNldWRvQ2xhc3MpIHsKICAgICAgICAgICAgIHN3aXRjaCAoY3MtPnBzZXVkb1R5cGUoKSkgewot
ICAgICAgICAgICAgY2FzZSBQc2V1ZG9GaXJzdDoKLSAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOmZpcnN0Iik7CisjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQorICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246
CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWFuaW1hdGluZy1m
dWxsLXNjcmVlbi10cmFuc2l0aW9uIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAg
ICAgICBjYXNlIFBzZXVkb0xlZnQ6Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpsZWZ0Iik7CisjZW5kaWYKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Fu
eTogeworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hbnkoIik7
CisgICAgICAgICAgICAgICAgY29uc3QgQ1NTU2VsZWN0b3IqIGZpcnN0U3ViU2VsZWN0b3IgPSBj
cy0+c2VsZWN0b3JMaXN0KCktPmZpcnN0KCk7CisgICAgICAgICAgICAgICAgZm9yIChjb25zdCBD
U1NTZWxlY3Rvciogc3ViU2VsZWN0b3IgPSBmaXJzdFN1YlNlbGVjdG9yOyBzdWJTZWxlY3Rvcjsg
c3ViU2VsZWN0b3IgPSBDU1NTZWxlY3Rvckxpc3Q6Om5leHQoc3ViU2VsZWN0b3IpKSB7CisgICAg
ICAgICAgICAgICAgICAgIGlmIChzdWJTZWxlY3RvciAhPSBmaXJzdFN1YlNlbGVjdG9yKQorICAg
ICAgICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnLCcpOworICAgICAgICAgICAgICAgICAg
ICBzdHIuYXBwZW5kKHN1YlNlbGVjdG9yLT5zZWxlY3RvclRleHQoKSk7CisgICAgICAgICAgICAg
ICAgfQorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJyknKTsKICAgICAgICAgICAgICAgICBi
cmVhazsKLSAgICAgICAgICAgIGNhc2UgUHNldWRvUmlnaHQ6Ci0gICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpyaWdodCIpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluazoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOi13ZWJraXQtYW55LWxpbmsiKTsKICAgICAgICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgICAgIGRlZmF1bHQ6Ci0gICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnOicpOwotICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmQoY3MtPnZhbHVlKCkpOwotICAgICAgICAgICAgICAgIGFw
cGVuZFBzZXVkb1R5cGVUYWlsSWZOZWNlc3Nhcnkoc3RyLCBjcyk7CisgICAgICAgICAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9BdXRvZmlsbDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOi13ZWJraXQtYXV0b2ZpbGwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RyYWc6CisgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWRyYWciKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxQYWdlTWVkaWE6Cisg
ICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWZ1bGwtcGFnZS1tZWRp
YSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkK
KyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW46CisgICAgICAg
ICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWZ1bGwtc2NyZWVuIik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9G
dWxsU2NyZWVuQW5jZXN0b3I6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjot
d2Via2l0LWZ1bGwtc2NyZWVuLWFuY2VzdG9yIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuRG9jdW1lbnQ6Cisg
ICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjotd2Via2l0LWZ1bGwtc2NyZWVuLWRv
Y3VtZW50Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOmFjdGl2ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQ2hlY2tlZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kTGl0ZXJhbCgiOmNoZWNrZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Nvcm5lclByZXNlbnQ6CisgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjpjb3JuZXItcHJlc2VudCIpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRGVjcmVtZW50Ogor
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZGVjcmVtZW50Iik7CisgICAgICAg
ICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZh
dWx0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZGVmYXVsdCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
RGlzYWJsZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpkaXNhYmxlZCIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvRG91YmxlQnV0dG9uOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
ZG91YmxlLWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW1wdHk6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjplbXB0eSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRW5hYmxlZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOmVuYWJsZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOmVuZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RDaGlsZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kTGl0ZXJhbCgiOmZpcnN0LWNoaWxkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GaXJzdE9mVHlwZToKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmZpcnN0LW9mLXR5cGUiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZvY3VzOgorICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6Zm9jdXMiKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9GdXR1cmU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwo
IjpmdXR1cmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNlbmRpZgorICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSG9yaXpvbnRhbDoKKyAgICAgICAgICAgICAgICBzdHIu
YXBwZW5kTGl0ZXJhbCgiOmhvcml6b250YWwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvdmVyOgorICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6aG92ZXIiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luUmFuZ2U6CisgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjppbi1yYW5nZSIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5jcmVtZW50OgorICAgICAg
ICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6aW5jcmVtZW50Iik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbmRldGVybWlu
YXRlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6aW5kZXRlcm1pbmF0ZSIp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvSW52YWxpZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmludmFs
aWQiKTsKICAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0xhbmc6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpsYW5n
KCIpOworICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKHN0ciwg
Y3MpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvTGFzdENoaWxkOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
bGFzdC1jaGlsZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvTGFzdE9mVHlwZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5k
TGl0ZXJhbCgiOmxhc3Qtb2YtdHlwZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAg
ICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGluazoKKyAgICAgICAgICAgICAgICBzdHIu
YXBwZW5kTGl0ZXJhbCgiOmxpbmsiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vQnV0dG9uOgorICAgICAgICAgICAgICAgIHN0
ci5hcHBlbmRMaXRlcmFsKCI6bm8tYnV0dG9uIik7CisgICAgICAgICAgICAgICAgYnJlYWs7Cisg
ICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob3Q6CisgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpub3QoIik7CisgICAgICAgICAgICAgICAgaWYgKGNvbnN0IENT
U1NlbGVjdG9yTGlzdCogc2VsZWN0b3JMaXN0ID0gY3MtPnNlbGVjdG9yTGlzdCgpKQorICAgICAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yTGlzdC0+Zmlyc3QoKS0+c2VsZWN0b3JU
ZXh0KCkpOworICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJyknKTsKKyAgICAgICAgICAgICAg
ICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aENoaWxkOgor
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bnRoLWNoaWxkKCIpOworICAgICAg
ICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKHN0ciwgY3MpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRo
TGFzdENoaWxkOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bnRoLWxhc3Qt
Y2hpbGQoIik7CisgICAgICAgICAgICAgICAgYXBwZW5kUHNldWRvQ2xhc3NGdW5jdGlvblRhaWwo
c3RyLCBjcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9OdGhMYXN0T2ZUeXBlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRM
aXRlcmFsKCI6bnRoLWxhc3Qtb2YtdHlwZSgiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQc2V1
ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb050aE9mVHlwZToKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1vZi10eXBlKCIpOworICAgICAgICAgICAgICAg
IGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKHN0ciwgY3MpOworICAgICAgICAgICAgICAg
IGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seUNoaWxkOgor
ICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6b25seS1jaGlsZCIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25s
eU9mVHlwZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm9ubHktb2YtdHlw
ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvT3B0aW9uYWw6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpv
cHRpb25hbCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvT3V0T2ZSYW5nZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0
ZXJhbCgiOm91dC1vZi1yYW5nZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworI2lmIEVOQUJM
RShWSURFT19UUkFDSykKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Bhc3Q6
CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpwYXN0Iik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b1JlYWRPbmx5OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cmVhZC1vbmx5
Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9y
OjpQc2V1ZG9SZWFkV3JpdGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpy
ZWFkLXdyaXRlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9SZXF1aXJlZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0
ZXJhbCgiOnJlcXVpcmVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Sb290OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRM
aXRlcmFsKCI6cm9vdCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2NvcGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExp
dGVyYWwoIjpzY29wZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2luZ2xlQnV0dG9uOgorICAgICAgICAgICAgICAgIHN0ci5h
cHBlbmRMaXRlcmFsKCI6c2luZ2xlLWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU3RhcnQ6CisgICAgICAgICAgICAg
ICAgc3RyLmFwcGVuZExpdGVyYWwoIjpzdGFydCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVGFyZ2V0OgorICAgICAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6dGFyZ2V0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WYWxpZDoKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnZhbGlkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WZXJ0aWNhbDoKKyAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnZlcnRpY2FsIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9WaXNpdGVkOgorICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6dmlzaXRlZCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvV2luZG93SW5h
Y3RpdmU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjp3aW5kb3ctaW5hY3Rp
dmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgICAgICB9CiAgICAgICAg
IH0gZWxzZSBpZiAoY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQpIHsK
ICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6OiIpOwpAQCAtNDA1LDcgKzU3MSwyMiBA
QCBTdHJpbmcgQ1NTU2VsZWN0b3I6OnNlbGVjdG9yVGV4dChjb25zdCBTdHJpbmcmIHJpZ2h0U2lk
ZSkgY29uc3QKICAgICAgICAgICAgICAgICBzZXJpYWxpemVTdHJpbmcoY3MtPnZhbHVlKCksIHN0
cik7CiAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZCgnXScpOwogICAgICAgICAgICAgfQorICAg
ICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQYWdlUHNldWRvQ2xh
c3MpIHsKKyAgICAgICAgICAgIHN3aXRjaCAoY3MtPnBzZXVkb1R5cGUoKSkgeworICAgICAgICAg
ICAgY2FzZSBQc2V1ZG9GaXJzdDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgi
OmZpcnN0Iik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBzZXVk
b0xlZnQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpsZWZ0Iik7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIFBzZXVkb1JpZ2h0OgorICAgICAg
ICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cmlnaHQiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7CisgICAgICAgICAgICB9CiAgICAgICAgIH0KKwogICAgICAgICBpZiAoY3MtPnJl
bGF0aW9uKCkgIT0gQ1NTU2VsZWN0b3I6OlN1YlNlbGVjdG9yIHx8ICFjcy0+dGFnSGlzdG9yeSgp
KQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNzID0gY3MtPnRhZ0hpc3RvcnkoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0
aWJpbGl0eUVsZW1lbnRNYXAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9D
bGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFmNjI4YTFiOTUz
MmQyYTVlZTM2YWQzZGIzYmRjNjhjYTg0ZTM4ZTAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFw
LmluCkBAIC0wLDAgKzEsNjcgQEAKKy1raHRtbC1kcmFnCistd2Via2l0LWFueSgKKy13ZWJraXQt
YW55LWxpbmsKKy13ZWJraXQtYXV0b2ZpbGwKKy13ZWJraXQtZHJhZworLXdlYmtpdC1mdWxsLXBh
Z2UtbWVkaWEKK2FjdGl2ZQorYWZ0ZXIsIFBzZXVkb1Vua25vd24sIFBzZXVkb0FmdGVyCitiZWZv
cmUsIFBzZXVkb1Vua25vd24sIFBzZXVkb0JlZm9yZQorY2hlY2tlZAorY29ybmVyLXByZXNlbnQK
K2RlY3JlbWVudAorZGVmYXVsdAorZGlzYWJsZWQKK2RvdWJsZS1idXR0b24KK2VtcHR5CitlbmFi
bGVkCitlbmQKK2ZpcnN0LWNoaWxkCitmaXJzdC1sZXR0ZXIsIFBzZXVkb1Vua25vd24sIFBzZXVk
b0ZpcnN0TGV0dGVyCitmaXJzdC1saW5lLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9GaXJzdExpbmUK
K2ZpcnN0LW9mLXR5cGUKK2ZvY3VzCitob3Jpem9udGFsCitob3ZlcgoraW4tcmFuZ2UKK2luY3Jl
bWVudAoraW5kZXRlcm1pbmF0ZQoraW52YWxpZAorbGFuZygKK2xhc3QtY2hpbGQKK2xhc3Qtb2Yt
dHlwZQorbGluaworbm8tYnV0dG9uCitub3QoCitudGgtY2hpbGQoCitudGgtbGFzdC1jaGlsZCgK
K250aC1sYXN0LW9mLXR5cGUoCitudGgtb2YtdHlwZSgKK29ubHktY2hpbGQKK29ubHktb2YtdHlw
ZQorb3B0aW9uYWwKK291dC1vZi1yYW5nZQorcmVhZC1vbmx5CityZWFkLXdyaXRlCityZXF1aXJl
ZAorcm9vdAorc2NvcGUKK3NpbmdsZS1idXR0b24KK3N0YXJ0Cit0YXJnZXQKK3ZhbGlkCit2ZXJ0
aWNhbAordmlzaXRlZAord2luZG93LWluYWN0aXZlCisKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCistd2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbi10cmFuc2l0aW9uCistd2Via2l0LWZ1
bGwtc2NyZWVuCistd2Via2l0LWZ1bGwtc2NyZWVuLWFuY2VzdG9yCistd2Via2l0LWZ1bGwtc2Ny
ZWVuLWRvY3VtZW50CisjZW5kaWYKKworI2lmIEVOQUJMRShWSURFT19UUkFDSykKK2Z1dHVyZQor
cGFzdAorI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgK
aW5kZXggN2QyNjIzYTcwM2YxZTA5YmQzYmJlYWRkMTFhYmQ2NDNlYjc1NDAxYS4uOGU3MTVmNTVm
MjYzZWQ0ZTgzZmZkMjlhY2IwZmY2YmRiMTQzY2JhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvclBzZXVkb1R5cGVNYXAuaApAQCAtMzEsNyArMzEsMTIgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1DU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBwYXJzZVBzZXVkb1R5cGVTdHJpbmco
Y29uc3QgU3RyaW5nSW1wbCYgcHNldWRvVHlwZVN0cmluZyk7CitzdHJ1Y3QgUHNldWRvQ2xhc3NP
ckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHsKKyAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlw
ZSBwc2V1ZG9DbGFzczsKKyAgICBDU1NTZWxlY3Rvcjo6UHNldWRvVHlwZSBjb21wYXRpYmlsaXR5
UHNldWRvRWxlbWVudDsKK307CisKK1BzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxl
bWVudCBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcoY29uc3Qg
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKIENTU1NlbGVjdG9yOjpQc2V1ZG9U
eXBlIHBhcnNlUHNldWRvRWxlbWVudFN0cmluZyhjb25zdCBTdHJpbmdJbXBsJiBwc2V1ZG9UeXBl
U3RyaW5nKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1hcC5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9T
ZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGJm
OTNhNjE0MGI2ZmQ2ZDExNTA1NjhkMjA2YjFjZGVjODE1YzY1YjIuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
UHNldWRvVHlwZU1hcC5pbgorKysgL2Rldi9udWxsCkBAIC0xLDY3ICswLDAgQEAKLS1raHRtbC1k
cmFnCi0td2Via2l0LWFueSgKLS13ZWJraXQtYW55LWxpbmsKLS13ZWJraXQtYXV0b2ZpbGwKLS13
ZWJraXQtZHJhZwotLXdlYmtpdC1mdWxsLXBhZ2UtbWVkaWEKLWFjdGl2ZQotYWZ0ZXIKLWJlZm9y
ZQotY2hlY2tlZAotY29ybmVyLXByZXNlbnQKLWRlY3JlbWVudAotZGVmYXVsdAotZGlzYWJsZWQK
LWRvdWJsZS1idXR0b24KLWVtcHR5Ci1lbmFibGVkCi1lbmQKLWZpcnN0LWNoaWxkCi1maXJzdC1s
ZXR0ZXIKLWZpcnN0LWxpbmUKLWZpcnN0LW9mLXR5cGUKLWZvY3VzCi1ob3Jpem9udGFsCi1ob3Zl
cgotaW4tcmFuZ2UKLWluY3JlbWVudAotaW5kZXRlcm1pbmF0ZQotaW52YWxpZAotbGFuZygKLWxh
c3QtY2hpbGQKLWxhc3Qtb2YtdHlwZQotbGluawotbm8tYnV0dG9uCi1ub3QoCi1udGgtY2hpbGQo
Ci1udGgtbGFzdC1jaGlsZCgKLW50aC1sYXN0LW9mLXR5cGUoCi1udGgtb2YtdHlwZSgKLW9ubHkt
Y2hpbGQKLW9ubHktb2YtdHlwZQotb3B0aW9uYWwKLW91dC1vZi1yYW5nZQotcmVhZC1vbmx5Ci1y
ZWFkLXdyaXRlCi1yZXF1aXJlZAotcm9vdAotc2NvcGUKLXNpbmdsZS1idXR0b24KLXN0YXJ0Ci10
YXJnZXQKLXZhbGlkCi12ZXJ0aWNhbAotdmlzaXRlZAotd2luZG93LWluYWN0aXZlCi0KLSNpZiBF
TkFCTEUoRlVMTFNDUkVFTl9BUEkpCi0td2Via2l0LWFuaW1hdGluZy1mdWxsLXNjcmVlbi10cmFu
c2l0aW9uCi0td2Via2l0LWZ1bGwtc2NyZWVuCi0td2Via2l0LWZ1bGwtc2NyZWVuLWFuY2VzdG9y
Ci0td2Via2l0LWZ1bGwtc2NyZWVuLWRvY3VtZW50Ci0jZW5kaWYKLQotI2lmIEVOQUJMRShWSURF
T19UUkFDSykKLWZ1dHVyZQotcGFzdAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5w
eSBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGli
aWxpdHlFbGVtZW50TWFwLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjMmM0M2Q0N2JkNGFiNjg5MDFhODFkMTM1
MWQ1ZGUyNTA1ODNiZDgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFr
ZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weQpAQCAtMCww
ICsxLDIxNSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uCisjCisjIENvcHlyaWdodCAoQykgMjAx
NCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorIyBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorIyAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
IyAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisjICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisjIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyMg
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisjIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyMgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisjIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyMgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyMgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisjIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisjIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisjIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworCitkZWYgZW51bWVy
YWJsZVBzZXVkb1R5cGUoc3RyaW5nUHNldWRvVHlwZSk6CisgICAgb3V0cHV0ID0gWydDU1NTZWxl
Y3Rvcjo6UHNldWRvJ10KKworICAgIGlmIHN0cmluZ1BzZXVkb1R5cGUuZW5kc3dpdGgoJygnKToK
KyAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVbOi0xXQorCisgICAg
d2Via2l0UHJlZml4ID0gJy13ZWJraXQtJworICAgIGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0YXJ0
c3dpdGgod2Via2l0UHJlZml4KSk6CisgICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQ
c2V1ZG9UeXBlW2xlbih3ZWJraXRQcmVmaXgpOl0KKworICAgIGtodG1sUHJlZml4ID0gJy1raHRt
bC0nCisgICAgaWYgKHN0cmluZ1BzZXVkb1R5cGUuc3RhcnRzd2l0aChraHRtbFByZWZpeCkpOgor
ICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlwZVtsZW4oa2h0bWxQcmVm
aXgpOl0KKworICAgIHN1YnN0cmluZ19zdGFydCA9IDAKKyAgICBuZXh0X2Rhc2hfcG9zaXRpb24g
PSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQoJy0nKQorICAgIHdoaWxlIChuZXh0X2Rhc2hfcG9zaXRp
b24gIT0gLTEpOgorICAgICAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3Ry
aW5nX3N0YXJ0XS51cHBlcigpKQorICAgICAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5
cGVbc3Vic3RyaW5nX3N0YXJ0ICsgMTpuZXh0X2Rhc2hfcG9zaXRpb25dKQorICAgICAgICBzdWJz
dHJpbmdfc3RhcnQgPSBuZXh0X2Rhc2hfcG9zaXRpb24gKyAxCisgICAgICAgIG5leHRfZGFzaF9w
b3NpdGlvbiA9IHN0cmluZ1BzZXVkb1R5cGUuZmluZCgnLScsIHN1YnN0cmluZ19zdGFydCkKKwor
ICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3RhcnRdLnVwcGVy
KCkpCisgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydCAr
IDE6XSkKKyAgICByZXR1cm4gJycuam9pbihvdXRwdXQpCisKKworZGVmIGV4cGFuZF9pZmRlZl9j
b25kaXRpb24oY29uZGl0aW9uKToKKyAgICByZXR1cm4gY29uZGl0aW9uLnJlcGxhY2UoJygnLCAn
XycpLnJlcGxhY2UoJyknLCAnJykKKworb3V0cHV0X2ZpbGUgPSBvcGVuKCdTZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmYnLCAndycpCisKK291dHB1dF9m
aWxlLndyaXRlKCIiIgorJXsKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTQgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUaGlzIGZpbGUgaXMgYXV0b21hdGlj
YWxseSBnZW5lcmF0ZWQgZnJvbSBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gYnkgbWFrZXByb3As
IGRvIG5vdCBlZGl0IGJ5IGhhbmQuCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJT
ZWxlY3RvclBzZXVkb1R5cGVNYXAuaCIKKworI2lmIGRlZmluZWQoX19jbGFuZ19fKQorI3ByYWdt
YSBjbGFuZyBkaWFnbm9zdGljIHB1c2gKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVk
ICItV3Vua25vd24tcHJhZ21hcyIKKyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICIt
V2RlcHJlY2F0ZWQtcmVnaXN0ZXIiCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAi
LVdpbXBsaWNpdC1mYWxsdGhyb3VnaCIKKyNlbmRpZgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVu
dHJ5IHsKKyAgICBjb25zdCBjaGFyKiBuYW1lOworICAgIFBzZXVkb0NsYXNzT3JDb21wYXRpYmls
aXR5UHNldWRvRWxlbWVudCBwc2V1ZG9UeXBlczsKK307CisKKyV9Cislc3RydWN0LXR5cGUKKyVk
ZWZpbmUgaW5pdGlhbGl6ZXItc3VmZml4ICx7Q1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24sQ1NT
U2VsZWN0b3I6OlBzZXVkb1Vua25vd259CislZGVmaW5lIGNsYXNzLW5hbWUgU2VsZWN0b3JQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwSGFzaAorJW9taXQtc3RydWN0LXR5cGUK
KyVsYW5ndWFnZT1DKysKKyVyZWFkb25seS10YWJsZXMKKyVnbG9iYWwtdGFibGUKKyVpZ25vcmUt
Y2FzZQorJWNvbXBhcmUtc3RybmNtcAorJWVudW0KKworc3RydWN0IFNlbGVjdG9yUHNldWRvQ2xh
c3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50RW50cnk7CisKKyUlCisiIiIpCisKK3dlYmNv
cmVfZGVmaW5lcyA9IFtpLnN0cmlwKCkgZm9yIGkgaW4gc3lzLmFyZ3ZbLTFdLnNwbGl0KCcgJyld
CisKK2xvbmdlc3Rfa2V5d29yZCA9IDAKKworaWdub3JlX3VudGlsX2VuZGlmID0gRmFsc2UKK2lu
cHV0X2ZpbGUgPSBvcGVuKHN5cy5hcmd2WzFdLCAncicpCitmb3IgbGluZSBpbiBpbnB1dF9maWxl
OgorICAgIGxpbmUgPSBsaW5lLnN0cmlwKCkKKyAgICBpZiBub3QgbGluZToKKyAgICAgICAgY29u
dGludWUKKworICAgIGlmIGxpbmUuc3RhcnRzd2l0aCgnI2lmICcpOgorICAgICAgICBjb25kaXRp
b24gPSBsaW5lWzQ6XS5zdHJpcCgpCisgICAgICAgIGlmIGV4cGFuZF9pZmRlZl9jb25kaXRpb24o
Y29uZGl0aW9uKSBub3QgaW4gd2ViY29yZV9kZWZpbmVzOgorICAgICAgICAgICAgaWdub3JlX3Vu
dGlsX2VuZGlmID0gVHJ1ZQorICAgICAgICBjb250aW51ZQorCisgICAgaWYgbGluZS5zdGFydHN3
aXRoKCcjZW5kaWYnKToKKyAgICAgICAgaWdub3JlX3VudGlsX2VuZGlmID0gRmFsc2UKKyAgICAg
ICAgY29udGludWUKKworICAgIGlmIGlnbm9yZV91bnRpbF9lbmRpZjoKKyAgICAgICAgY29udGlu
dWUKKworICAgIGtleXdvcmRfZGVmaW5pdGlvbiA9IGxpbmUuc3BsaXQoJywnKQorICAgIGlmIGxl
bihrZXl3b3JkX2RlZmluaXRpb24pID09IDE6CisgICAgICAgIGtleXdvcmQgPSBrZXl3b3JkX2Rl
ZmluaXRpb25bMF0uc3RyaXAoKQorICAgICAgICBvdXRwdXRfZmlsZS53cml0ZSgnIiVzIiwgeyVz
LCBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bn1cbicgJSAoa2V5d29yZCwgZW51bWVyYWJsZVBz
ZXVkb1R5cGUoa2V5d29yZCkpKQorICAgIGVsc2U6CisgICAgICAgIG91dHB1dF9maWxlLndyaXRl
KCciJXMiLCB7Q1NTU2VsZWN0b3I6OiVzLCBDU1NTZWxlY3Rvcjo6JXN9XG4nICUgKGtleXdvcmRf
ZGVmaW5pdGlvblswXS5zdHJpcCgpLCBrZXl3b3JkX2RlZmluaXRpb25bMV0uc3RyaXAoKSwga2V5
d29yZF9kZWZpbml0aW9uWzJdLnN0cmlwKCkpKQorCisgICAgbG9uZ2VzdF9rZXl3b3JkID0gbWF4
KGxvbmdlc3Rfa2V5d29yZCwgbGVuKGtleXdvcmQpKQorCitvdXRwdXRfZmlsZS53cml0ZSgiIiIl
JQorCitzdGF0aWMgaW5saW5lIGNvbnN0IFNlbGVjdG9yUHNldWRvQ2xhc3NPckNvbXBhdGliaWxp
dHlQc2V1ZG9FbGVtZW50RW50cnkqIHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudFN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQorewor
ICAgIHJldHVybiBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXBI
YXNoOjppbl93b3JkX3NldChyZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjaGFyYWN0ZXJz
KSwgbGVuZ3RoKTsKK30iIiIpCisKK291dHB1dF9maWxlLndyaXRlKCIiIgorCitzdGF0aWMgaW5s
aW5lIGNvbnN0IFNlbGVjdG9yUHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50
RW50cnkqIHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhjb25z
dCBVQ2hhciogY2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQoreworICAgIGNvbnN0IHVuc2ln
bmVkIG1heEtleXdvcmRMZW5ndGggPSAlczsKKyAgICBMQ2hhciBidWZmZXJbbWF4S2V5d29yZExl
bmd0aF07CisgICAgaWYgKGxlbmd0aCA+IG1heEtleXdvcmRMZW5ndGgpCisgICAgICAgIHJldHVy
biBudWxscHRyOworCisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsgKytpKSB7
CisgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IGNoYXJhY3RlcnNbaV07CisgICAgICAgIGlmIChj
aGFyYWN0ZXIgJiB+MHhmZikKKyAgICAgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgICAg
IGJ1ZmZlcltpXSA9IHN0YXRpY19jYXN0PExDaGFyPihjaGFyYWN0ZXIpOworICAgIH0KKyAgICBy
ZXR1cm4gcGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKGJ1ZmZl
ciwgbGVuZ3RoKTsKK30KKyIiIiAlIGxvbmdlc3Rfa2V5d29yZCkKKworb3V0cHV0X2ZpbGUud3Jp
dGUoIiIiCitQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnQgcGFyc2VQc2V1
ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKGNvbnN0IENTU1BhcnNlclN0cmlu
ZyYgcHNldWRvVHlwZVN0cmluZykKK3sKKyAgICBjb25zdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JD
b21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5KiBlbnRyeTsKKyAgICBpZiAocHNldWRvVHlw
ZVN0cmluZy5pczhCaXQoKSkKKyAgICAgICAgZW50cnkgPSBwYXJzZVBzZXVkb0NsYXNzQW5kQ29t
cGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcocHNldWRvVHlwZVN0cmluZy5jaGFyYWN0ZXJzOCgpLCBw
c2V1ZG9UeXBlU3RyaW5nLmxlbmd0aCgpKTsKKyAgICBlbHNlCisgICAgICAgIGVudHJ5ID0gcGFy
c2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKHBzZXVkb1R5cGVTdHJp
bmcuY2hhcmFjdGVyczE2KCksIHBzZXVkb1R5cGVTdHJpbmcubGVuZ3RoKCkpOworCisgICAgaWYg
KGVudHJ5KQorICAgICAgICByZXR1cm4gZW50cnktPnBzZXVkb1R5cGVzOworICAgIHJldHVybiB7
IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3duLCBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93biB9
OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykK
KyNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwb3AKKyNlbmRpZgorCisiIiIpCitvdXRwdXRfZmls
ZS5jbG9zZSgpCisKK2dwZXJmX2NvbW1hbmQgPSAnZ3BlcmYnCitpZiAnR1BFUkYnIGluIG9zLmVu
dmlyb246CisgICAgZ3BlcmZfY29tbWFuZCA9IG9zLmVudmlyb25bJ0dQRVJGJ10KKworZ3BlcmZf
cmV0dXJuID0gb3Muc3lzdGVtKCIlcyAtLWtleS1wb3NpdGlvbnM9JyonIC1tIDEwIC1zIDIgU2Vs
ZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmdwZXJmIC0tb3V0cHV0
LWZpbGU9U2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCIg
JSBncGVyZl9jb21tYW5kKQoraWYgZ3BlcmZfcmV0dXJuICE9IDA6CisgICAgcHJpbnQoIkVycm9y
IHdoZW4gZ2VuZXJhdGluZyBTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1l
bnRNYXAuY3BwIGZyb20gU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwLmdwZXJmIDooIikKKyAgICBzeXMuZXhpdChncGVyZl9yZXR1cm4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBiZTliZTRhOTA5NTY2ZmQyNTI5ZDcxNjM0ZDNlNWNlOGU0YzIyZWIzLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJD
b3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5CisrKyAvZGV2L251bGwKQEAgLTEs
MjA1ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbgotIwotIyBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotIwotIyBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSMgbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0jIGFyZSBtZXQ6Ci0jIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSMgMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQotIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotIwotIyBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0j
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAotIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0jIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotIyBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCi0jIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0jIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotIyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0jIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLQotZGVmIGVudW1l
cmFibGVQc2V1ZG9UeXBlKHN0cmluZ1BzZXVkb1R5cGUpOgotICAgIG91dHB1dCA9IFsnQ1NTU2Vs
ZWN0b3I6OlBzZXVkbyddCi0KLSAgICBpZiBzdHJpbmdQc2V1ZG9UeXBlLmVuZHN3aXRoKCcoJyk6
Ci0gICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQc2V1ZG9UeXBlWzotMV0KLQotICAg
IHdlYmtpdFByZWZpeCA9ICctd2Via2l0LScKLSAgICBpZiAoc3RyaW5nUHNldWRvVHlwZS5zdGFy
dHN3aXRoKHdlYmtpdFByZWZpeCkpOgotICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5n
UHNldWRvVHlwZVtsZW4od2Via2l0UHJlZml4KTpdCi0KLSAgICBraHRtbFByZWZpeCA9ICcta2h0
bWwtJwotICAgIGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0YXJ0c3dpdGgoa2h0bWxQcmVmaXgpKToK
LSAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVbbGVuKGtodG1sUHJl
Zml4KTpdCi0KLSAgICBzdWJzdHJpbmdfc3RhcnQgPSAwCi0gICAgbmV4dF9kYXNoX3Bvc2l0aW9u
ID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJykKLSAgICB3aGlsZSAobmV4dF9kYXNoX3Bvc2l0
aW9uICE9IC0xKToKLSAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0
cmluZ19zdGFydF0udXBwZXIoKSkKLSAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9U
eXBlW3N1YnN0cmluZ19zdGFydCArIDE6bmV4dF9kYXNoX3Bvc2l0aW9uXSkKLSAgICAgICAgc3Vi
c3RyaW5nX3N0YXJ0ID0gbmV4dF9kYXNoX3Bvc2l0aW9uICsgMQotICAgICAgICBuZXh0X2Rhc2hf
cG9zaXRpb24gPSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQoJy0nLCBzdWJzdHJpbmdfc3RhcnQpCi0K
LSAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3RyaW5nX3N0YXJ0XS51cHBl
cigpKQotICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3RhcnQg
KyAxOl0pCi0gICAgcmV0dXJuICcnLmpvaW4ob3V0cHV0KQotCi0KLWRlZiBleHBhbmRfaWZkZWZf
Y29uZGl0aW9uKGNvbmRpdGlvbik6Ci0gICAgcmV0dXJuIGNvbmRpdGlvbi5yZXBsYWNlKCcoJywg
J18nKS5yZXBsYWNlKCcpJywgJycpCi0KLW91dHB1dF9maWxlID0gb3BlbignU2VsZWN0b3JQc2V1
ZG9UeXBlTWFwLmdwZXJmJywgJ3cnKQotCi1vdXRwdXRfZmlsZS53cml0ZSgiIiIKLSV7Ci0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAq
Ci0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0g
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotLy8gVGhpcyBmaWxlIGlzIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gU2Vs
ZWN0b3JQc2V1ZG9UeXBlTWFwLmluIGJ5IG1ha2Vwcm9wLCBkbyBub3QgZWRpdCBieSBoYW5kLgot
Ci0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgi
Ci0KLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNo
Ci0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVd1bmtub3duLXByYWdtYXMiCi0j
cHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3JlZCAiLVdkZXByZWNhdGVkLXJlZ2lzdGVyIgot
I3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2gi
Ci0jZW5kaWYKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1zdHJ1Y3QgU2VsZWN0b3JQc2V1ZG9U
eXBlRW50cnkgewotICAgIGNvbnN0IGNoYXIqIG5hbWU7Ci0gICAgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGUgdHlwZTsKLX07Ci0KLSV9Ci0lc3RydWN0LXR5cGUKLSVkZWZpbmUgaW5pdGlhbGl6ZXIt
c3VmZml4ICxDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93bgotJWRlZmluZSBjbGFzcy1uYW1lIFNl
bGVjdG9yUHNldWRvVHlwZU1hcEhhc2gKLSVvbWl0LXN0cnVjdC10eXBlCi0lbGFuZ3VhZ2U9Qysr
Ci0lcmVhZG9ubHktdGFibGVzCi0lZ2xvYmFsLXRhYmxlCi0laWdub3JlLWNhc2UKLSVjb21wYXJl
LXN0cm5jbXAKLSVlbnVtCi0KLXN0cnVjdCBTZWxlY3RvclBzZXVkb1R5cGVFbnRyeTsKLQotJSUK
LSIiIikKLQotd2ViY29yZV9kZWZpbmVzID0gW2kuc3RyaXAoKSBmb3IgaSBpbiBzeXMuYXJndlst
MV0uc3BsaXQoJyAnKV0KLQotbG9uZ2VzdF9rZXl3b3JkID0gMAotCi1pZ25vcmVfdW50aWxfZW5k
aWYgPSBGYWxzZQotaW5wdXRfZmlsZSA9IG9wZW4oc3lzLmFyZ3ZbMV0sICdyJykKLWZvciBsaW5l
IGluIGlucHV0X2ZpbGU6Ci0gICAga2V5d29yZCA9IGxpbmUuc3RyaXAoKQotICAgIGlmIG5vdCBr
ZXl3b3JkOgotICAgICAgICBjb250aW51ZQotCi0gICAgaWYga2V5d29yZC5zdGFydHN3aXRoKCcj
aWYgJyk6Ci0gICAgICAgIGNvbmRpdGlvbiA9IGtleXdvcmRbNDpdLnN0cmlwKCkKLSAgICAgICAg
aWYgZXhwYW5kX2lmZGVmX2NvbmRpdGlvbihjb25kaXRpb24pIG5vdCBpbiB3ZWJjb3JlX2RlZmlu
ZXM6Ci0gICAgICAgICAgICBpZ25vcmVfdW50aWxfZW5kaWYgPSBUcnVlCi0gICAgICAgIGNvbnRp
bnVlCi0KLSAgICBpZiBrZXl3b3JkLnN0YXJ0c3dpdGgoJyNlbmRpZicpOgotICAgICAgICBpZ25v
cmVfdW50aWxfZW5kaWYgPSBGYWxzZQotICAgICAgICBjb250aW51ZQotCi0gICAgaWYgaWdub3Jl
X3VudGlsX2VuZGlmOgotICAgICAgICBjb250aW51ZQotCi0gICAgb3V0cHV0X2ZpbGUud3JpdGUo
JyIlcyIsICVzXG4nICUgKGtleXdvcmQsIGVudW1lcmFibGVQc2V1ZG9UeXBlKGtleXdvcmQpKSkK
LSAgICBsb25nZXN0X2tleXdvcmQgPSBtYXgobG9uZ2VzdF9rZXl3b3JkLCBsZW4oa2V5d29yZCkp
Ci0KLW91dHB1dF9maWxlLndyaXRlKCIiIiUlCi0KLXN0YXRpYyBpbmxpbmUgQ1NTU2VsZWN0b3I6
OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0IExDaGFyKiBjaGFyYWN0ZXJz
LCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgaWYgKGNvbnN0IFNlbGVjdG9yUHNldWRvVHlwZUVu
dHJ5KiBlbnRyeSA9IFNlbGVjdG9yUHNldWRvVHlwZU1hcEhhc2g6OmluX3dvcmRfc2V0KHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgY2hhcio+KGNoYXJhY3RlcnMpLCBsZW5ndGgpKQotICAgICAgICBy
ZXR1cm4gZW50cnktPnR5cGU7Ci0gICAgcmV0dXJuIENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3du
OwotfSIiIikKLQotb3V0cHV0X2ZpbGUud3JpdGUoIiIiCi0KLXN0YXRpYyBpbmxpbmUgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCi17Ci0gICAgY29uc3QgdW5zaWduZWQgbWF4S2V5d29y
ZExlbmd0aCA9ICVzOwotICAgIExDaGFyIGJ1ZmZlclttYXhLZXl3b3JkTGVuZ3RoXTsKLSAgICBp
ZiAobGVuZ3RoID4gbWF4S2V5d29yZExlbmd0aCkKLSAgICAgICAgcmV0dXJuIENTU1NlbGVjdG9y
OjpQc2V1ZG9Vbmtub3duOwotCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKSB7Ci0gICAgICAgIFVDaGFyIGNoYXJhY3RlciA9IGNoYXJhY3RlcnNbaV07Ci0gICAgICAg
IGlmIChjaGFyYWN0ZXIgJiB+MHhmZikKLSAgICAgICAgICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6
UHNldWRvVW5rbm93bjsKLQotICAgICAgICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDxMQ2hhcj4o
Y2hhcmFjdGVyKTsKLSAgICB9Ci0gICAgcmV0dXJuIHBhcnNlUHNldWRvVHlwZVN0cmluZyhidWZm
ZXIsIGxlbmd0aCk7Ci19Ci0iIiIgJSBsb25nZXN0X2tleXdvcmQpCi0KLW91dHB1dF9maWxlLndy
aXRlKCIiIgotQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKGNv
bnN0IFN0cmluZ0ltcGwmIHBzZXVkb1R5cGVTdHJpbmcpCi17Ci0gICAgaWYgKHBzZXVkb1R5cGVT
dHJpbmcuaXM4Qml0KCkpCi0gICAgICAgIHJldHVybiBwYXJzZVBzZXVkb1R5cGVTdHJpbmcocHNl
dWRvVHlwZVN0cmluZy5jaGFyYWN0ZXJzOCgpLCBwc2V1ZG9UeXBlU3RyaW5nLmxlbmd0aCgpKTsK
LSAgICByZXR1cm4gcGFyc2VQc2V1ZG9UeXBlU3RyaW5nKHBzZXVkb1R5cGVTdHJpbmcuY2hhcmFj
dGVyczE2KCksIHBzZXVkb1R5cGVTdHJpbmcubGVuZ3RoKCkpOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCi0KLSNpZiBkZWZpbmVkKF9fY2xhbmdfXykKLSNwcmFnbWEgY2xhbmcgZGlhZ25v
c3RpYyBwb3AKLSNlbmRpZgotCi0iIiIpCi1vdXRwdXRfZmlsZS5jbG9zZSgpCi0KLWdwZXJmX2Nv
bW1hbmQgPSAnZ3BlcmYnCi1pZiAnR1BFUkYnIGluIG9zLmVudmlyb246Ci0gICAgZ3BlcmZfY29t
bWFuZCA9IG9zLmVudmlyb25bJ0dQRVJGJ10KLQotZ3BlcmZfcmV0dXJuID0gb3Muc3lzdGVtKCIl
cyAtLWtleS1wb3NpdGlvbnM9JyonIC1tIDEwIC1zIDIgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdw
ZXJmIC0tb3V0cHV0LWZpbGU9U2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCIgJSBncGVyZl9jb21t
YW5kKQotaWYgZ3BlcmZfcmV0dXJuICE9IDA6Ci0gICAgcHJpbnQoIkVycm9yIHdoZW4gZ2VuZXJh
dGluZyBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIGZyb20gU2VsZWN0b3JQc2V1ZG9UeXBlTWFw
LmdwZXJmIDooIikKLSAgICBzeXMuZXhpdChncGVyZl9yZXR1cm4pCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>228088</attachid>
            <date>2014-03-28 16:05:09 -0700</date>
            <delta_ts>2014-03-28 20:09:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-130620-20140328160449.patch</filename>
            <type>text/plain</type>
            <size>56360</size>
            <attacher name="Benjamin Poulain">benjamin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY2NDI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM5ZTlhMTRjYTM5ZDgy
MzY1YWI3ODljNDlmZTk2YTQzNDVmMzZkOC4uNDNmNzZkOTk0MTEwOTY2Y2FkNTNhMjhlM2VjODc0
Njg3ZjA0MjE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDE0LTAzLTI4ICBCZW5q
YW1pbiBQb3VsYWluICA8YnBvdWxhaW5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSB0aGUg
Y29kZSByZWxhdGVkIHRvIFNlbGVjdG9yUHNldWRvVHlwZU1hcCB0byByZWZsZWN0IGl0cyBuZXcg
cHVycG9zZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTMwNjIwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQW5kcmVhcyBLbGluZy4KKworICAgICAgICBT
aW5jZSByMTY2MDk0LCBTZWxlY3RvclBzZXVkb1R5cGVNYXAgb25seSBjb250YWlucyBQc2V1ZG9D
bGFzcyBpbnN0YW5jZXMgYW5kIHRoZSA0IGNvbXBhdGliaWxpdHkgUHNldWRvRWxlbWVudC4KKwor
ICAgICAgICBUaGlzIHBhdGNoIHJlbmFtZSBTZWxlY3RvclBzZXVkb1R5cGVNYXAgdG8gU2VsZWN0
b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwIGFuZCB1cGRhdGUgdGhlIHBh
cnNpbmcKKyAgICAgICAgdG8gc3BsaXQgUHNldWRvQ2xhc3MgYW5kIFBzZXVkb0VsZW1lbnQuCisK
KyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtl
OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAg
KiBjc3MvQ1NTR3JhbW1hci55LmluOgorICAgICAgICAqIGNzcy9DU1NQYXJzZXJWYWx1ZXMuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q1NTUGFyc2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvQ2xhc3NB
bmRDb21wYXRpYmlsaXR5RWxlbWVudFNlbGVjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNTU1Bh
cnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9DbGFzc1ZhbHVlKToKKyAgICAgICAgKiBjc3MvQ1NTUGFy
c2VyVmFsdWVzLmg6CisgICAgICAgICogY3NzL0NTU1NlbGVjdG9yLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25UYWlsKToKKyAgICAgICAgKFdlYkNvcmU6
OkNTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQpOgorICAgICAgICAqIGNzcy9TZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW46IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluLgorICAgICAgICAqIGNzcy9TZWxl
Y3RvclBzZXVkb1R5cGVNYXAuaDoKKyAgICAgICAgKiBjc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xh
c3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5weTogUmVuYW1lZCBmcm9tIFNvdXJjZS9XZWJD
b3JlL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5LgorICAgICAgICAoZW51bWVyYWJs
ZVBzZXVkb1R5cGUpOgorICAgICAgICAoZXhwYW5kX2lmZGVmX2NvbmRpdGlvbik6CisKIDIwMTQt
MDMtMjggIEJldGggRGFraW4gIDxiZGFraW5AYXBwbGUuY29tPgogCiAgICAgICAgIEJ1aWxkIGZp
eC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggM2NhNWRmOTI3ODk1ZDU3MTc0YTNhM2FiNGIwNjk3
Y2ZkOTllMjdiNi4uNDU0NjAzNWVjYTM3MjBjNjE3YTI1NDA0YzdmMWRmZTEwNTY2YjE3MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNlL1dlYkNv
cmUvQ01ha2VMaXN0cy50eHQKQEAgLTMxMzEsMTIgKzMxMzEsMTIgQEAgQUREX1NPVVJDRV9XRUJD
T1JFX0RFUklWRURfREVQRU5ERU5DSUVTKCR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9D
U1NHcmFtbWEKIAogIyBHZW5lcmF0ZSBDU1MgU2VsZWN0b3IgcHNldWRvIHR5cGUgbmFtZSB0byB2
YWx1ZSBtYXBzLgogYWRkX2N1c3RvbV9jb21tYW5kKAotICAgIE9VVFBVVCAke0RFUklWRURfU09V
UkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmdwZXJmICR7REVSSVZFRF9T
T1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwCi0gICAgTUFJTl9E
RVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLnB5
CisgICAgT1VUUFVUICR7REVSSVZFRF9TT1VSQ0VTX1dFQkNPUkVfRElSfS9TZWxlY3RvclBzZXVk
b0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmYgJHtERVJJVkVEX1NPVVJDRVNf
V0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1h
cC5jcHAKKyAgICBNQUlOX0RFUEVOREVOQ1kgJHtXRUJDT1JFX0RJUn0vY3NzL21ha2VTZWxlY3Rv
clBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKICAgICBXT1JLSU5HX0RJ
UkVDVE9SWSAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0KLSAgICBDT01NQU5EICR7UFlU
SE9OX0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9UeXBl
TWFwLnB5ICR7V0VCQ09SRV9ESVJ9L2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gIiR7RkVB
VFVSRV9ERUZJTkVTX1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIKKyAgICBDT01NQU5EICR7UFlUSE9O
X0VYRUNVVEFCTEV9ICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLnB5ICR7V0VCQ09SRV9ESVJ9L2Nzcy9TZWxlY3RvclBz
ZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gIiR7RkVBVFVSRV9ERUZJTkVT
X1dJVEhfU1BBQ0VfU0VQQVJBVE9SfSIKICAgICBWRVJCQVRJTSkKLWxpc3QoQVBQRU5EIFdlYkNv
cmVfU09VUkNFUyAke0RFUklWRURfU09VUkNFU19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLmNwcCkKK2xpc3QoQVBQRU5EIFdlYkNvcmVfU09VUkNFUyAke0RFUklWRURfU09VUkNF
U19XRUJDT1JFX0RJUn0vU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwLmNwcCkKIGFkZF9jdXN0b21fY29tbWFuZCgKICAgICBPVVRQVVQgJHtERVJJVkVEX1NPVVJD
RVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuZ3BlcmYgJHtERVJJ
VkVEX1NPVVJDRVNfV0VCQ09SRV9ESVJ9L1NlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuY3Bw
CiAgICAgTUFJTl9ERVBFTkRFTkNZICR7V0VCQ09SRV9ESVJ9L2Nzcy9tYWtlU2VsZWN0b3JQc2V1
ZG9FbGVtZW50c01hcC5weQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJj
ZXMubWFrZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggZGY0YTI5
NDQ4N2U0YzhhN2UzZGE2MWU4ODBmNjc0M2EyMzc0MTdmNi4uM2M1ZDc3MGNiZWE1ZTRiMzg2MmQ0
ZmJiYTZiNzQxODVmZDkxZmU1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC03
NTEsOCArNzUxLDggQEAgYWxsIDogXAogICAgIFBsdWdJbnNSZXNvdXJjZXMuaCBcCiAgICAgU1ZH
RWxlbWVudEZhY3RvcnkuY3BwIFwKICAgICBTVkdOYW1lcy5jcHAgXAorICAgIFNlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgXAogICAgIFNlbGVjdG9yUHNl
dWRvRWxlbWVudFR5cGVNYXAuY3BwIFwKLSAgICBTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIFwK
ICAgICBVc2VyQWdlbnRTdHlsZVNoZWV0cy5oIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMu
Y3BwIFwKICAgICBXZWJLaXRGb250RmFtaWx5TmFtZXMuaCBcCkBAIC03OTcsOSArNzk3LDkgQEAg
Q1NTVmFsdWVLZXl3b3Jkcy5oIDogJChXRUJDT1JFX0NTU19WQUxVRV9LRVlXT1JEUykgY3NzL21h
a2V2YWx1ZXMucGwgYmluZGluZ3Mvc2MKIAogIyBDU1MgU2VsZWN0b3IgcHNldWRvIHR5cGUgbmFt
ZSB0byB2YWx1ZSBtYXAuCiAKLVdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01BUF9L
RVlXT1JEUyA6PSAkKFdlYkNvcmUpL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4KLVNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgOiAkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9U
eXBlTWFwLnB5ICQoV0VCQ09SRV9DU1NfU0VMRUNUT1JfUFNFVURPX1RZUEVfTUFQX0tFWVdPUkRT
KQotCXB5dGhvbiAiJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSIg
JChXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09SRFMpICIkKEZFQVRV
UkVfREVGSU5FUykiCitXRUJDT1JFX0NTU19TRUxFQ1RPUl9QU0VVRE9fVFlQRV9NQVBfS0VZV09S
RFMgOj0gJChXZWJDb3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlF
bGVtZW50TWFwLmluCitTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAuY3BwIDogJChXZWJDb3JlKS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRp
YmlsaXR5RWxlbWVudE1hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19UWVBFX01B
UF9LRVlXT1JEUykKKwlweXRob24gIiQoV2ViQ29yZSkvY3NzL21ha2VTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkiICQoV0VCQ09SRV9DU1NfU0VMRUNUT1Jf
UFNFVURPX1RZUEVfTUFQX0tFWVdPUkRTKSAiJChGRUFUVVJFX0RFRklORVMpIgogCiBXRUJDT1JF
X0NTU19TRUxFQ1RPUl9QU0VVRE9fRUxFTUVOVFNfVFlQRV9NQVBfS0VZV09SRFMgOj0gJChXZWJD
b3JlKS9jc3MvU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5pbgogU2VsZWN0b3JQc2V1ZG9F
bGVtZW50VHlwZU1hcC5jcHAgOiAkKFdlYkNvcmUpL2Nzcy9tYWtlU2VsZWN0b3JQc2V1ZG9FbGVt
ZW50c01hcC5weSAkKFdFQkNPUkVfQ1NTX1NFTEVDVE9SX1BTRVVET19FTEVNRU5UU19UWVBFX01B
UF9LRVlXT1JEUykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9X
ZWJDb3JlLnZjeHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52
Y3hwcm9qCmluZGV4IDg3NWFlOTQ5NTQ3NTc0MjIwMGRjMmUyYzdjYzRiZjA4ODRjNzM3NDcuLmQ5
ZTE4NmRmY2JjZmI5ZTYzZWE3MjljMzIxZDQ2NWI2YmQyMDNmNjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvagpAQCAtMjkwLDggKzI5MCw4IEBA
CiAgICAgPC9DbENvbXBpbGU+CiAgICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRp
b25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVy
aXZlZFNvdXJjZXNcQ1NTUHJvcGVydHlOYW1lcy5jcHAiIC8+CiAgICAgPENsQ29tcGlsZSBJbmNs
dWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlc
JChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcQ1NTVmFsdWVLZXl3b3Jkcy5jcHAiIC8+Cisg
ICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENvbmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0
Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0TmFtZSlcRGVyaXZlZFNvdXJjZXNcU2VsZWN0b3JQ
c2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCIgLz4KICAgICA8Q2xDb21w
aWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0
ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xTZWxlY3RvclBzZXVkb0VsZW1l
bnRUeXBlTWFwLmNwcCIgLz4KLSAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlv
bkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJp
dmVkU291cmNlc1xTZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwIiAvPgogICAgIDxDbENvbXBpbGUg
SW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1
cmUpXFdlYkNvcmVcRGVyaXZlZFNvdXJjZXNcSlNBTkdMRUluc3RhbmNlZEFycmF5cy5jcHAiPgog
ICAgICAgPEV4Y2x1ZGVkRnJvbUJ1aWxkIENvbmRpdGlvbj0iJyQoQ29uZmlndXJhdGlvbil8JChQ
bGF0Zm9ybSknPT0nRGVidWd8V2luMzInIj50cnVlPC9FeGNsdWRlZEZyb21CdWlsZD4KICAgICAg
IDxFeGNsdWRlZEZyb21CdWlsZCBDb25kaXRpb249IickKENvbmZpZ3VyYXRpb24pfCQoUGxhdGZv
cm0pJz09J0RlYnVnfHg2NCciPnRydWU8L0V4Y2x1ZGVkRnJvbUJ1aWxkPgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS52Y3hwcm9qL1dlYkNvcmUudmN4cHJvai5maWx0ZXJzCmlu
ZGV4IDBlZDNlMDgwNDBmNjZhZjIxZWE0ZjFiNzlhMDFiMWI2NTVmNmIxMzcuLmE3YWVjZmM4MmNm
YTAyZDNmZGU4MjlhZWViNGVkZWYzZjM0Mzg4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUudmN4cHJvai9XZWJDb3JlLnZjeHByb2ouZmlsdGVycworKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnZjeHByb2ovV2ViQ29yZS52Y3hwcm9qLmZpbHRlcnMKQEAgLTUxNTUsMTAg
KzUxNTUsMTAgQEAKICAgICA8Q2xDb21waWxlIEluY2x1ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxk
RGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwkKFByb2plY3ROYW1lKVxEZXJpdmVkU291
cmNlc1xDU1NWYWx1ZUtleXdvcmRzLmNwcCI+CiAgICAgICA8RmlsdGVyPkRlcml2ZWRTb3VyY2Vz
PC9GaWx0ZXI+CiAgICAgPC9DbENvbXBpbGU+Ci0gICAgPENsQ29tcGlsZSBJbmNsdWRlPSIkKENv
bmZpZ3VyYXRpb25CdWlsZERpcilcb2JqJChQbGF0Zm9ybUFyY2hpdGVjdHVyZSlcJChQcm9qZWN0
TmFtZSlcRGVyaXZlZFNvdXJjZXNcU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5jcHAiPgor
ICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxh
dGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFNlbGVjdG9y
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAiPgogICAgICAgPEZpbHRl
cj5EZXJpdmVkU291cmNlczwvRmlsdGVyPgogICAgIDwvQ2xDb21waWxlPgotICAgIDxDbENvbXBp
bGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIpXG9iaiQoUGxhdGZvcm1BcmNoaXRl
Y3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2VzXFNlbGVjdG9yUHNldWRvVHlwZU1h
cC5jcHAiPgorICAgIDxDbENvbXBpbGUgSW5jbHVkZT0iJChDb25maWd1cmF0aW9uQnVpbGREaXIp
XG9iaiQoUGxhdGZvcm1BcmNoaXRlY3R1cmUpXCQoUHJvamVjdE5hbWUpXERlcml2ZWRTb3VyY2Vz
XFNlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuY3BwIj4KICAgICAgIDxGaWx0ZXI+RGVyaXZl
ZFNvdXJjZXM8L0ZpbHRlcj4KICAgICA8L0NsQ29tcGlsZT4KICAgICA8Q2xDb21waWxlIEluY2x1
ZGU9IiQoQ29uZmlndXJhdGlvbkJ1aWxkRGlyKVxvYmokKFBsYXRmb3JtQXJjaGl0ZWN0dXJlKVwk
KFByb2plY3ROYW1lKVxEZXJpdmVkU291cmNlc1xFdmVudEZhY3RvcnkuY3BwIj4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YjVi
OGEwYWJhZWQ5ZWU3MjFhMTY5N2Q0N2I0ZmE1MzBkNGJhODU1Li5jNjlhN2QyMmNiMmJiMDAwZWI5
OTgyMDgyMDg2OTgyOTAwMzEwMTE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNDc3LDcgKzE0NzcsNyBAQAogCQk0M0E2MjVG
ODEzQjMzMDQwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRDb2xvci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNBNjI1RjYxM0IzMzA0MDAwQUM5NEI4IC8q
IFNWR0FuaW1hdGVkQ29sb3IuaCAqLzsgfTsKIAkJNDNBNjI1RjkxM0IzMzA0MDAwQUM5NEI4IC8q
IFNWR0FuaW1hdGVkQ29sb3IuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gNDNBNjI1RjcxM0IzMzA0MDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkQ29sb3Iu
Y3BwICovOyB9OwogCQk0M0E2MjY2NzEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRTdHJp
bmcuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDNB
NjI2NjYxM0IzRDExMDAwQUM5NEI4IC8qIFNWR0FuaW1hdGVkU3RyaW5nLmNwcCAqLzsgfTsKLQkJ
NDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I4NUVEMjE4Q0JF
QzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCAqLzsgfTsKKwkJNDNCODVF
RDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5
RWxlbWVudE1hcC5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0M0I4NUVEMjE4Q0JFQzUyMDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENv
bXBhdGliaWxpdHlFbGVtZW50TWFwLmNwcCAqLzsgfTsKIAkJNDNCOTMzNjkxM0IyNjFCMTAwNDU4
NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0M0I5MzM2NzEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0
ZWRQb2ludExpc3QuaCAqLzsgfTsKIAkJNDNCOTMzNkExM0IyNjFCMTAwNDU4NEJGIC8qIFNWR0Fu
aW1hdGVkUG9pbnRMaXN0LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDQzQjkzMzY4MTNCMjYxQjEwMDQ1ODRCRiAvKiBTVkdBbmltYXRlZFBvaW50TGlz
dC5jcHAgKi87IH07CiAJCTQzQzA5MkJDMTJEOUU0RUUwMEE5ODlDMyAvKiBSZW5kZXJTVkdGb3Jl
aWduT2JqZWN0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0M0MwOTJCQTEyRDlFNEVFMDBBOTg5QzMgLyogUmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5oICov
OyB9OwpAQCAtODQxNSwxMCArODQxNSwxMCBAQAogCQk0M0E2MjVGNjEzQjMzMDQwMDBBQzk0Qjgg
LyogU1ZHQW5pbWF0ZWRDb2xvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBT
VkdBbmltYXRlZENvbG9yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQzQTYyNUY3
MTNCMzMwNDAwMEFDOTRCOCAvKiBTVkdBbmltYXRlZENvbG9yLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkQ29sb3IuY3BwOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0M0E2MjY2NjEzQjNEMTEwMDBBQzk0QjggLyogU1ZHQW5pbWF0ZWRT
dHJpbmcuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU1ZHQW5pbWF0
ZWRTdHJpbmcuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQk0M0I4NUVEMDE4Q0JF
QUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weSAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IG1ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHk7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1RUQyMThDQkVDNTIwMEUzMUFGNCAvKiBT
ZWxlY3RvclBzZXVkb1R5cGVNYXAuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKLQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5n
cGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTZWxlY3RvclBzZXVkb1R5cGVNYXAuZ3BlcmY7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAv
KiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2VsZWN0
b3JQc2V1ZG9UeXBlTWFwLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0M0I4NUVE
MDE4Q0JFQUNFMDBFMzFBRjQgLyogbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmls
aXR5RWxlbWVudE1hcC5weSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQuc2NyaXB0LnB5dGhvbjsgcGF0aCA9IG1h
a2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHk7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQzQjg1RUQyMThDQkVDNTIwMEUzMUFGNCAvKiBTZWxl
Y3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGli
aWxpdHlFbGVtZW50TWFwLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDNCODVF
RDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5
RWxlbWVudE1hcC5ncGVyZiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IGZpbGU7IHBhdGggPSBTZWxlY3RvclBzZXVkb0Ns
YXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuZ3BlcmY7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb0NsYXNz
QW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gU2Vs
ZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmluOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk0M0I5MzM2NzEzQjI2MUIxMDA0NTg0QkYgLyogU1ZHQW5pbWF0
ZWRQb2ludExpc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU1ZHQW5pbWF0
ZWRQb2ludExpc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNCOTMzNjgxM0Iy
NjFCMTAwNDU4NEJGIC8qIFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNWR0FuaW1hdGVkUG9pbnRMaXN0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDNDMDkyQjkxMkQ5RTRFRTAwQTk4OUMzIC8qIFJlbmRlclNW
R0ZvcmVpZ25PYmplY3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UmVuZGVyU1ZHRm9yZWlnbk9iamVjdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBA
IC0xNTkzNSwxMCArMTU5MzUsMTAgQEAKIAkJCQk0NEEyOEFBRTEyREZCOEJGMDBBRTkyM0IgLyog
TWF0aE1MTmFtZXMuaCAqLywKIAkJCQk3MUUyMTgzODE3MzU5RkI4MDA2RTZFNEQgLyogUGx1Z0lu
c1Jlc291cmNlcy5oICovLAogCQkJCTcxRTIxODM5MTczNTlGQjgwMDZFNkU0RCAvKiBQbHVnSW5z
UmVzb3VyY2VzRGF0YS5jcHAgKi8sCisJCQkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNl
bGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5jcHAgKi8sCisJCQkJ
NDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRp
YmlsaXR5RWxlbWVudE1hcC5ncGVyZiAqLywKIAkJCQkyNkFBMEY5RDE4RDJBMThCMDA0MTkzODEg
LyogU2VsZWN0b3JQc2V1ZG9FbGVtZW50VHlwZU1hcC5jcHAgKi8sCiAJCQkJMjZBQTBGOUYxOEQy
QTFDMTAwNDE5MzgxIC8qIFNlbGVjdG9yUHNldWRvRWxlbWVudFR5cGVNYXAuZ3BlcmYgKi8sCi0J
CQkJNDNCODVFRDIxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAg
Ki8sCi0JCQkJNDNCODVFRDMxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvVHlwZU1h
cC5ncGVyZiAqLywKIAkJCQk1M0VGNzY2QTE2NTMwQTYxMDA0Q0JFNDkgLyogU2V0dGluZ3NNYWNy
b3MuaCAqLywKIAkJCQk2NTY1ODFFNjA5RDE1MDhEMDAwRTYxRDcgLyogU1ZHRWxlbWVudEZhY3Rv
cnkuY3BwICovLAogCQkJCTY1NjU4MUU3MDlEMTUwOEQwMDBFNjFENyAvKiBTVkdFbGVtZW50RmFj
dG9yeS5oICovLApAQCAtMjE2OTQsNyArMjE2OTQsNyBAQAogCQkJCUU1NUY0OTc5MTUxQjg4ODAw
MEJCNjdEQiAvKiBMZW5ndGhGdW5jdGlvbnMuY3BwICovLAogCQkJCUU1QkE3RDYyMTUxNDM3Q0Ew
MEZFMUUzRiAvKiBMZW5ndGhGdW5jdGlvbnMuaCAqLywKIAkJCQkyNkFBMEY5OTE4RDI5NzNEMDA0
MTkzODEgLyogbWFrZVNlbGVjdG9yUHNldWRvRWxlbWVudHNNYXAucHkgKi8sCi0JCQkJNDNCODVF
RDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHkgKi8sCisJ
CQkJNDNCODVFRDAxOENCRUFDRTAwRTMxQUY0IC8qIG1ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5k
Q29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkgKi8sCiAJCQkJOTNDQTRDOUEwOURGOTNGQTAwREY4
Njc3IC8qIG1ha2UtY3NzLWZpbGUtYXJyYXlzLnBsICovLAogCQkJCTkzQ0E0QzlCMDlERjkzRkEw
MERGODY3NyAvKiBtYWtlcHJvcC5wbCAqLywKIAkJCQk5M0NBNEM5RDA5REY5M0ZBMDBERjg2Nzcg
LyogbWFrZXZhbHVlcy5wbCAqLywKQEAgLTIxNzQyLDcgKzIxNzQyLDcgQEAKIAkJCQk0MTUwNzE1
NTE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuY3BwICovLAogCQkJCTQxNTA3MTU2
MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5oICovLAogCQkJCTI2QUEwRjlBMThE
Mjk3M0QwMDQxOTM4MSAvKiBTZWxlY3RvclBzZXVkb0VsZW1lbnRUeXBlTWFwLmluICovLAotCQkJ
CTQzQjg1RUQ2MThDQkVDOTcwMEUzMUFGNCAvKiBTZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gKi8s
CisJCQkJNDNCODVFRDYxOENCRUM5NzAwRTMxQUY0IC8qIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRD
b21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbiAqLywKIAkJCQk0MzEwN0JFMTE4Q0MxOURFMDBDQzE4
RTggLyogU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmggKi8sCiAJCQkJRTQ3QTk3Q0UxNjMwNTlGQzAw
NURDRDk5IC8qIFN0eWxlSW52YWxpZGF0aW9uQW5hbHlzaXMuY3BwICovLAogCQkJCUU0N0E5N0NG
MTYzMDU5RkMwMDVEQ0Q5OSAvKiBTdHlsZUludmFsaWRhdGlvbkFuYWx5c2lzLmggKi8sCkBAIC0y
NzIwMSw3ICsyNzIwMSw3IEBACiAJCQkJNkU2N0QyQTYxMjgwRThBNDAwODc1OEY3IC8qIEV4dGVu
c2lvbnMzRE9wZW5HTC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk0NERBQjVCMTE1QTYyMzU4MDA5
N0MxRTQgLyogRXh0ZW5zaW9uczNET3BlbkdMQ29tbW9uLmNwcCBpbiBTb3VyY2VzICovLAogCQkJ
CTc3Mjg2OTRFMTRGODg4MjUwMEY0ODREQyAvKiBFWFRUZXh0dXJlRmlsdGVyQW5pc290cm9waWMu
Y3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJNDNCODVFRDQxOENCRUM1MjAwRTMxQUY0IC8qIFNlbGVj
dG9yUHNldWRvVHlwZU1hcC5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk0M0I4NUVENDE4Q0JFQzUy
MDBFMzFBRjQgLyogU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFw
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4Qjg4MEUxREUyRDYwMDdGMjQ4MSAvKiBGRUJs
ZW5kLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhBMEUxREUyRDYwMDdGMjQ4MSAvKiBG
RUNvbG9yTWF0cml4LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE3NUU4QjhDMEUxREUyRDYwMDdG
MjQ4MSAvKiBGRUNvbXBvbmVudFRyYW5zZmVyLmNwcCBpbiBTb3VyY2VzICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbiBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NHcmFtbWFyLnkuaW4KaW5kZXggZWFmYjg2ZjRiN2EzMzE2MjJhNDljNmE5ZDRmNGY3ODAy
YTZmOGNhYS4uOTFmZTM1ZGQ0YmE3MzJmZWFkYWFiYzk0N2RmMzhlMmRhNzkzODkyYiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0dyYW1tYXIueS5pbgorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTR3JhbW1hci55LmluCkBAIC0xMTk2LDEzICsxMTk2LDcgQEAgcHNldWRvX3Bh
Z2U6CiAKIHBzZXVkbzoKICAgICAnOicgSURFTlQgewotICAgICAgICAkJCA9IG51bGxwdHI7Ci0g
ICAgICAgIGF1dG8gc2VsZWN0b3IgPSBzdGQ6Om1ha2VfdW5pcXVlPENTU1BhcnNlclNlbGVjdG9y
PigpOwotICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNz
KTsKLSAgICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb1R5cGVW
YWx1ZSgkMik7Ci0gICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVj
dG9yOjpQc2V1ZG9Vbmtub3duKQotICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7
CisgICAgICAgICQkID0gQ1NTUGFyc2VyU2VsZWN0b3I6OnBhcnNlUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudFNlbGVjdG9yKCQyKTsKICAgICB9CiAgICAgfCAnOicgJzonIElERU5U
IHsKICAgICAgICAgJCQgPSBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9FbGVtZW50U2Vs
ZWN0b3IoJDMpOwpAQCAtMTIyNCw4ICsxMjE4LDcgQEAgcHNldWRvOgogICAgICAgICAgICAgYXV0
byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7CiAgICAg
ICAgICAgICBzZWxlY3Rvci0+c2V0TWF0Y2goQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKICAg
ICAgICAgICAgIHNlbGVjdG9yLT5hZG9wdFNlbGVjdG9yVmVjdG9yKCpzdGQ6OnVuaXF1ZV9wdHI8
VmVjdG9yPHN0ZDo6dW5pcXVlX3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+PigkNCkpOwotICAgICAg
ICAgICAgJDIubG93ZXIoKTsKLSAgICAgICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFs
dWUoJDIpOworICAgICAgICAgICAgc2VsZWN0b3ItPnNldFBzZXVkb0NsYXNzVmFsdWUoJDIpOwog
ICAgICAgICAgICAgaWYgKHNlbGVjdG9yLT5wc2V1ZG9UeXBlKCkgPT0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0FueSkKICAgICAgICAgICAgICAgICAkJCA9IHNlbGVjdG9yLnJlbGVhc2UoKTsKICAgICAg
ICAgfQpAQCAtMTIzNiw3ICsxMjI5LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRvIHNlbGVjdG9y
ID0gc3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAgc2VsZWN0
b3ItPnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgIHNlbGVjdG9y
LT5zZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1ZG9UeXBlVmFsdWUo
JDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgkMik7CiAgICAgICAg
IGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3du
KQogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CiAgICAgfQpAQCAtMTI0Niw3
ICsxMjM5LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRvIHNlbGVjdG9yID0gc3RkOjptYWtlX3Vu
aXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAgc2VsZWN0b3ItPnNldE1hdGNoKENT
U1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgIHNlbGVjdG9yLT5zZXRBcmd1bWVudChB
dG9taWNTdHJpbmc6Om51bWJlcigkNCAqICQ1KSk7Ci0gICAgICAgIHNlbGVjdG9yLT5zZXRQc2V1
ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NWYWx1ZSgk
Mik7CiAgICAgICAgIGlmIChzZWxlY3Rvci0+cHNldWRvVHlwZSgpICE9IENTU1NlbGVjdG9yOjpQ
c2V1ZG9Vbmtub3duKQogICAgICAgICAgICAgJCQgPSBzZWxlY3Rvci5yZWxlYXNlKCk7CiAgICAg
fQpAQCAtMTI1NSw4ICsxMjQ4LDcgQEAgcHNldWRvOgogICAgICAgICBhdXRvIHNlbGVjdG9yID0g
c3RkOjptYWtlX3VuaXF1ZTxDU1NQYXJzZXJTZWxlY3Rvcj4oKTsKICAgICAgICAgc2VsZWN0b3It
PnNldE1hdGNoKENTU1NlbGVjdG9yOjpQc2V1ZG9DbGFzcyk7CiAgICAgICAgIHNlbGVjdG9yLT5z
ZXRBcmd1bWVudCgkNCk7Ci0gICAgICAgICQyLmxvd2VyKCk7Ci0gICAgICAgIHNlbGVjdG9yLT5z
ZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICBzZWxlY3Rvci0+c2V0UHNldWRvQ2xhc3NW
YWx1ZSgkMik7CiAgICAgICAgIENTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHR5cGUgPSBzZWxlY3Rv
ci0+cHNldWRvVHlwZSgpOwogICAgICAgICBpZiAodHlwZSA9PSBDU1NTZWxlY3Rvcjo6UHNldWRv
VW5rbm93bikKICAgICAgICAgICAgIHNlbGVjdG9yID0gbnVsbHB0cjsKQEAgLTEyODAsOSArMTI3
Miw3IEBAIHBzZXVkbzoKICAgICAgICAgICAgIFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFy
c2VyU2VsZWN0b3I+PiBzZWxlY3RvclZlY3RvcjsKICAgICAgICAgICAgIHNlbGVjdG9yVmVjdG9y
LmFwcGVuZChzdGQ6Om1vdmUoc2VsZWN0b3IpKTsKICAgICAgICAgICAgICQkLT5hZG9wdFNlbGVj
dG9yVmVjdG9yKHNlbGVjdG9yVmVjdG9yKTsKLQotICAgICAgICAgICAgJDIubG93ZXIoKTsKLSAg
ICAgICAgICAgICQkLT5zZXRQc2V1ZG9UeXBlVmFsdWUoJDIpOworICAgICAgICAgICAgJCQtPnNl
dFBzZXVkb0NsYXNzVmFsdWUoJDIpOwogICAgICAgICB9CiAgICAgfQogICA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCmluZGV4IDI5MjIyMGZhNGY5NmU3MjE0YjgzNzhhMGQ4
MDYxNmU3YTM2YTljOWMuLmI2NmM3ODU3MTQ5Yzk1OTkzODYzYzk1MTU0ZTdiYThkMjY3MDk3OWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQYXJzZXJWYWx1ZXMuY3BwCkBAIC0yMDMsNiArMjAzLDI2
IEBAIENTU1BhcnNlclNlbGVjdG9yKiBDU1NQYXJzZXJTZWxlY3Rvcjo6cGFyc2VQc2V1ZG9DdWVG
dW5jdGlvblNlbGVjdG9yKGNvbnN0IENTU1BhCiB9CiAjZW5kaWYKIAorQ1NTUGFyc2VyU2VsZWN0
b3IqIENTU1BhcnNlclNlbGVjdG9yOjpwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVs
ZW1lbnRTZWxlY3RvcihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpCit7CisgICAg
UHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBzZXVkb1R5cGUgPSBwYXJz
ZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmcocHNldWRvVHlwZVN0cmlu
Zyk7CisgICAgaWYgKHBzZXVkb1R5cGUucHNldWRvQ2xhc3MgIT0gQ1NTU2VsZWN0b3I6OlBzZXVk
b1Vua25vd24pIHsKKyAgICAgICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NT
UGFyc2VyU2VsZWN0b3I+KCk7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNo
ID0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzOworICAgICAgICBzZWxlY3Rvci0+bV9zZWxlY3Rv
ci0+bV9wc2V1ZG9UeXBlID0gcHNldWRvVHlwZS5wc2V1ZG9DbGFzczsKKyAgICAgICAgcmV0dXJu
IHNlbGVjdG9yLnJlbGVhc2UoKTsKKyAgICB9CisgICAgaWYgKHBzZXVkb1R5cGUuY29tcGF0aWJp
bGl0eVBzZXVkb0VsZW1lbnQgIT0gQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24pIHsKKyAgICAg
ICAgYXV0byBzZWxlY3RvciA9IHN0ZDo6bWFrZV91bmlxdWU8Q1NTUGFyc2VyU2VsZWN0b3I+KCk7
CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX21hdGNoID0gQ1NTU2VsZWN0b3I6OlBz
ZXVkb0VsZW1lbnQ7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVjdG9yLT5tX3BzZXVkb1R5cGUg
PSBwc2V1ZG9UeXBlLmNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50OworICAgICAgICBBdG9taWNT
dHJpbmcgbmFtZSA9IHBzZXVkb1R5cGVTdHJpbmc7CisgICAgICAgIHNlbGVjdG9yLT5tX3NlbGVj
dG9yLT5zZXRWYWx1ZShuYW1lKTsKKyAgICAgICAgcmV0dXJuIHNlbGVjdG9yLnJlbGVhc2UoKTsK
KyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIENTU1BhcnNlclNlbGVjdG9yOjpDU1NQ
YXJzZXJTZWxlY3RvcigpCiAgICAgOiBtX3NlbGVjdG9yKHN0ZDo6bWFrZV91bmlxdWU8Q1NTU2Vs
ZWN0b3I+KCkpCiB7CkBAIC0yMzUsMTEyICsyNTUsMTIgQEAgdm9pZCBDU1NQYXJzZXJTZWxlY3Rv
cjo6YWRvcHRTZWxlY3RvclZlY3RvcihWZWN0b3I8c3RkOjp1bmlxdWVfcHRyPENTU1BhcnNlclNl
bGUKICAgICBtX3NlbGVjdG9yLT5zZXRTZWxlY3Rvckxpc3Qoc3RkOjptb3ZlKHNlbGVjdG9yTGlz
dCkpOwogfQogCi12b2lkIENTU1BhcnNlclNlbGVjdG9yOjpzZXRQc2V1ZG9UeXBlVmFsdWUoY29u
c3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKQordm9pZCBDU1NQYXJzZXJTZWxl
Y3Rvcjo6c2V0UHNldWRvQ2xhc3NWYWx1ZShjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb0Ns
YXNzU3RyaW5nKQogewotICAgIEF0b21pY1N0cmluZyBuYW1lID0gcHNldWRvVHlwZVN0cmluZzsK
LSAgICBtX3NlbGVjdG9yLT5zZXRWYWx1ZShuYW1lKTsKLQotICAgIENTU1NlbGVjdG9yOjpQc2V1
ZG9UeXBlIHBzZXVkb1R5cGUgPSBwYXJzZVBzZXVkb1R5cGVTdHJpbmcoKm5hbWUuaW1wbCgpKTsK
LSAgICBib29sIGlzQ29tcGF0aWJpbGl0eUVsZW1lbnRUeXBlID0gZmFsc2U7IC8vIHNpbmdsZSBj
b2xvbiBjb21wYXRiaWxpdHkgbW9kZQotCi0gICAgc3dpdGNoIChwc2V1ZG9UeXBlKSB7Ci0gICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQWZ0ZXI6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvQmVmb3JlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0TGV0dGVyOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0TGluZToKLSAgICAgICAgaXNDb21wYXRpYmls
aXR5RWxlbWVudFR5cGUgPSB0cnVlOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIENTU1NlbGVj
dG9yOjpQc2V1ZG9Vbmtub3duOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5Ogot
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6Ci0gICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvRmlyc3RPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTGFz
dENoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvT25seUNoaWxkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb09ubHlPZlR5cGU6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoT2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb050aExhc3RDaGlsZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhM
YXN0T2ZUeXBlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6Ci0gICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9B
bnk6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQW55TGluazoKLSAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9BdXRvZmlsbDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3Zl
cjoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgotICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0ZvY3VzOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FjdGl2ZToKLSAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9DaGVja2VkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb0VuYWJsZWQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFBhZ2VNZWRp
YToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EZWZhdWx0OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0Rpc2FibGVkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09wdGlv
bmFsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1JlcXVpcmVkOgotICAgIGNhc2UgQ1NT
U2VsZWN0b3I6OlBzZXVkb1JlYWRPbmx5OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Jl
YWRXcml0ZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY29wZToKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9WYWxpZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JbnZh
bGlkOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luZGV0ZXJtaW5hdGU6Ci0gICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvVGFyZ2V0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0xhbmc6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb1Jvb3Q6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2Nyb2xsYmFy
QmFjazoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJGb3J3YXJkOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1dpbmRvd0luYWN0aXZlOgotICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0Nvcm5lclByZXNlbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
RGVjcmVtZW50OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3Jpem9udGFsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6
OlBzZXVkb1ZlcnRpY2FsOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuZDoKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9Eb3VibGVCdXR0b246Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2luZ2xlQnV0dG9u
OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb05vQnV0dG9uOgotI2lmIEVOQUJMRShGVUxM
U0NSRUVOX0FQSSkKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgotICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0Z1bGxTY3JlZW5Eb2N1bWVudDoKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuQW5jZXN0b3I6Ci0gICAgY2FzZSBDU1NTZWxlY3Rv
cjo6UHNldWRvQW5pbWF0aW5nRnVsbFNjcmVlblRyYW5zaXRpb246Ci0jZW5kaWYKLSAgICBjYXNl
IENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b091dE9mUmFuZ2U6Ci0jaWYgRU5BQkxFKFZJREVPX1RSQUNLKQotICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0Z1dHVyZToKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9QYXN0OgotI2Vu
ZGlmCi0gICAgICAgIGJyZWFrOwotI2lmIEVOQUJMRShWSURFT19UUkFDSykKLSAgICBjYXNlIENT
U1NlbGVjdG9yOjpQc2V1ZG9DdWU6Ci0jZW5kaWYKLSAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9SZXNpemVyOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhcjoKLSAgICBj
YXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9TY3JvbGxiYXJDb3JuZXI6Ci0gICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvU2Nyb2xsYmFyQnV0dG9uOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b1Njcm9sbGJhclRodW1iOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRy
YWNrOgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njcm9sbGJhclRyYWNrUGllY2U6Ci0g
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvU2VsZWN0aW9uOgotICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb1VzZXJBZ2VudEN1c3RvbUVsZW1lbnQ6Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvV2ViS2l0Q3VzdG9tRWxlbWVudDoKLQotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b0ZpcnN0OgotICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xlZnQ6Ci0gICAgY2FzZSBDU1NT
ZWxlY3Rvcjo6UHNldWRvUmlnaHQ6Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICBicmVhazsKLSAgICB9Ci0KLSAgICB1bnNpZ25lZCBtYXRjaFR5cGUgPSBtX3NlbGVjdG9y
LT5tX21hdGNoOwotICAgIGlmIChpc0NvbXBhdGliaWxpdHlFbGVtZW50VHlwZSkKLSAgICAgICAg
bWF0Y2hUeXBlID0gQ1NTU2VsZWN0b3I6OlBzZXVkb0VsZW1lbnQ7CisgICAgQVNTRVJUKG1fc2Vs
ZWN0b3ItPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OlBzZXVkb0NsYXNzKTsKIAotICAgIG1fc2Vs
ZWN0b3ItPm1fbWF0Y2ggPSBtYXRjaFR5cGU7Ci0gICAgbV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBl
ID0gcHNldWRvVHlwZTsKKyAgICBQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1l
bnQgcHNldWRvVHlwZSA9IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0
cmluZyhwc2V1ZG9DbGFzc1N0cmluZyk7CisgICAgbV9zZWxlY3Rvci0+bV9wc2V1ZG9UeXBlID0g
cHNldWRvVHlwZS5wc2V1ZG9DbGFzczsKIH0KIAogYm9vbCBDU1NQYXJzZXJTZWxlY3Rvcjo6aXNT
aW1wbGUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZh
bHVlcy5oIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1BhcnNlclZhbHVlcy5oCmluZGV4IDBkNTU2
NDUyN2MzMjUzMThlZWU1ZTUyNDI4YWQ3ZDVkYTMwNDkwYWUuLjQ5NmRjMjcwYjdjOGUwMmE1OTZi
ZGE0ZmNhY2YxNzBkZDQxYzRiZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NQ
YXJzZXJWYWx1ZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTUGFyc2VyVmFsdWVzLmgK
QEAgLTE3OCw2ICsxNzgsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIENTU1BhcnNlclNlbGVjdG9y
KiBwYXJzZVBhZ2VQc2V1ZG9TZWxlY3Rvcihjb25zdCBDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5
cGVTdHJpbmcpOwogICAgIHN0YXRpYyBDU1NQYXJzZXJTZWxlY3RvciogcGFyc2VQc2V1ZG9FbGVt
ZW50U2VsZWN0b3IoQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKICAgICBzdGF0
aWMgQ1NTUGFyc2VyU2VsZWN0b3IqIHBhcnNlUHNldWRvQ3VlRnVuY3Rpb25TZWxlY3Rvcihjb25z
dCBDU1NQYXJzZXJTdHJpbmcmIGZ1bmN0aW9uSWRlbnRpZmllciwgVmVjdG9yPHN0ZDo6dW5pcXVl
X3B0cjxDU1NQYXJzZXJTZWxlY3Rvcj4+KiBzZWxlY3RvclZlY3Rvcik7CisgICAgc3RhdGljIENT
U1BhcnNlclNlbGVjdG9yKiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRT
ZWxlY3RvcihDU1NQYXJzZXJTdHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpOwogCiAgICAgQ1NTUGFy
c2VyU2VsZWN0b3IoKTsKICAgICBleHBsaWNpdCBDU1NQYXJzZXJTZWxlY3Rvcihjb25zdCBRdWFs
aWZpZWROYW1lJik7CkBAIC0xOTUsNyArMTk2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCBhZG9w
dFNlbGVjdG9yVmVjdG9yKFZlY3RvcjxzdGQ6OnVuaXF1ZV9wdHI8Q1NTUGFyc2VyU2VsZWN0b3I+
PiYgc2VsZWN0b3JWZWN0b3IpOwogCi0gICAgdm9pZCBzZXRQc2V1ZG9UeXBlVmFsdWUoY29uc3Qg
Q1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9UeXBlU3RyaW5nKTsKKyAgICB2b2lkIHNldFBzZXVkb0Ns
YXNzVmFsdWUoY29uc3QgQ1NTUGFyc2VyU3RyaW5nJiBwc2V1ZG9DbGFzc1N0cmluZyk7CiAgICAg
Q1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcHNldWRvVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fc2Vs
ZWN0b3ItPnBzZXVkb1R5cGUoKTsgfQogICAgIGJvb2wgaXNDdXN0b21Qc2V1ZG9FbGVtZW50KCkg
Y29uc3QgeyByZXR1cm4gbV9zZWxlY3Rvci0+aXNDdXN0b21Qc2V1ZG9FbGVtZW50KCk7IH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NTZWxlY3Rvci5jcHAKaW5kZXggMDRlNGY2ZTJiZDYxOGViZjBkMWU2NjQ3
YzZlZTE3YTM0OThhNWU5ZS4uY2M3NDBlMzg4MjE0MDcwYWIwOGM3NzJlZDdhNDcxYmYyOTJiYzBh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1NlbGVjdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9jc3MvQ1NTU2VsZWN0b3IuY3BwCkBAIC0yOTQsMTQgKzI5NCw5IEBAIGJv
b2wgQ1NTU2VsZWN0b3I6Om9wZXJhdG9yPT0oY29uc3QgQ1NTU2VsZWN0b3ImIG90aGVyKSBjb25z
dAogICAgIHJldHVybiB0cnVlOwogfQogCi1zdGF0aWMgdm9pZCBhcHBlbmRQc2V1ZG9UeXBlVGFp
bElmTmVjZXNzYXJ5KFN0cmluZ0J1aWxkZXImIHN0ciwgY29uc3QgQ1NTU2VsZWN0b3IqIHNlbGVj
dG9yKQorc3RhdGljIHZvaWQgYXBwZW5kUHNldWRvQ2xhc3NGdW5jdGlvblRhaWwoU3RyaW5nQnVp
bGRlciYgc3RyLCBjb25zdCBDU1NTZWxlY3Rvciogc2VsZWN0b3IpCiB7CiAgICAgc3dpdGNoIChz
ZWxlY3Rvci0+cHNldWRvVHlwZSgpKSB7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90
OgotICAgICAgICBpZiAoY29uc3QgQ1NTU2VsZWN0b3JMaXN0KiBzZWxlY3Rvckxpc3QgPSBzZWxl
Y3Rvci0+c2VsZWN0b3JMaXN0KCkpCi0gICAgICAgICAgICBzdHIuYXBwZW5kKHNlbGVjdG9yTGlz
dC0+Zmlyc3QoKS0+c2VsZWN0b3JUZXh0KCkpOwotICAgICAgICBzdHIuYXBwZW5kKCcpJyk7Ci0g
ICAgICAgIGJyZWFrOwogICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhbmc6CiAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvTnRoQ2hpbGQ6CiAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvTnRoTGFzdENoaWxkOgpAQCAtMzEwLDE5ICszMDUsMTAgQEAgc3RhdGljIHZvaWQgYXBwZW5k
UHNldWRvVHlwZVRhaWxJZk5lY2Vzc2FyeShTdHJpbmdCdWlsZGVyJiBzdHIsIGNvbnN0IENTU1Nl
bGVjdG8KICAgICAgICAgc3RyLmFwcGVuZChzZWxlY3Rvci0+YXJndW1lbnQoKSk7CiAgICAgICAg
IHN0ci5hcHBlbmQoJyknKTsKICAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBDU1NTZWxlY3Rvcjo6
UHNldWRvQW55OiB7Ci0gICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9y
ID0gc2VsZWN0b3ItPnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOwotICAgICAgICBmb3IgKGNvbnN0
IENTU1NlbGVjdG9yKiBzdWJTZWxlY3RvciA9IGZpcnN0U3ViU2VsZWN0b3I7IHN1YlNlbGVjdG9y
OyBzdWJTZWxlY3RvciA9IENTU1NlbGVjdG9yTGlzdDo6bmV4dChzdWJTZWxlY3RvcikpIHsKLSAg
ICAgICAgICAgIGlmIChzdWJTZWxlY3RvciAhPSBmaXJzdFN1YlNlbGVjdG9yKQotICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmQoJywnKTsKLSAgICAgICAgICAgIHN0ci5hcHBlbmQoc3ViU2VsZWN0
b3ItPnNlbGVjdG9yVGV4dCgpKTsKLSAgICAgICAgfQotICAgICAgICBzdHIuYXBwZW5kKCcpJyk7
Ci0gICAgICAgIGJyZWFrOwotICAgIH0KICAgICBkZWZhdWx0OgogICAgICAgICBicmVhazsKICAg
ICB9CisKIH0KIAogU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5n
JiByaWdodFNpZGUpIGNvbnN0CkBAIC0zNDcsMjIgKzMzMywyMDIgQEAgU3RyaW5nIENTU1NlbGVj
dG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdodFNpZGUpIGNvbnN0CiAgICAgICAg
IH0gZWxzZSBpZiAoY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0b3I6OkNsYXNzKSB7CiAgICAgICAg
ICAgICBzdHIuYXBwZW5kKCcuJyk7CiAgICAgICAgICAgICBzZXJpYWxpemVJZGVudGlmaWVyKGNz
LT52YWx1ZSgpLCBzdHIpOwotICAgICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1Nl
bGVjdG9yOjpQc2V1ZG9DbGFzcyB8fCBjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UGFnZVBz
ZXVkb0NsYXNzKSB7CisgICAgICAgIH0gZWxzZSBpZiAoY3MtPm1fbWF0Y2ggPT0gQ1NTU2VsZWN0
b3I6OlBzZXVkb0NsYXNzKSB7CiAgICAgICAgICAgICBzd2l0Y2ggKGNzLT5wc2V1ZG9UeXBlKCkp
IHsKLSAgICAgICAgICAgIGNhc2UgUHNldWRvRmlyc3Q6Ci0gICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjpmaXJzdCIpOworI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkKKyAgICAg
ICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FuaW1hdGluZ0Z1bGxTY3JlZW5UcmFuc2l0
aW9uOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1hbmltYXRp
bmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbiIpOwogICAgICAgICAgICAgICAgIGJyZWFrOwotICAg
ICAgICAgICAgY2FzZSBQc2V1ZG9MZWZ0OgotICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRl
cmFsKCI6bGVmdCIpOworI2VuZGlmCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1
ZG9Bbnk6IHsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOi13ZWJraXQtYW55
KCIpOworICAgICAgICAgICAgICAgIGNvbnN0IENTU1NlbGVjdG9yKiBmaXJzdFN1YlNlbGVjdG9y
ID0gY3MtPnNlbGVjdG9yTGlzdCgpLT5maXJzdCgpOworICAgICAgICAgICAgICAgIGZvciAoY29u
c3QgQ1NTU2VsZWN0b3IqIHN1YlNlbGVjdG9yID0gZmlyc3RTdWJTZWxlY3Rvcjsgc3ViU2VsZWN0
b3I7IHN1YlNlbGVjdG9yID0gQ1NTU2VsZWN0b3JMaXN0OjpuZXh0KHN1YlNlbGVjdG9yKSkgewor
ICAgICAgICAgICAgICAgICAgICBpZiAoc3ViU2VsZWN0b3IgIT0gZmlyc3RTdWJTZWxlY3RvcikK
KyAgICAgICAgICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJywnKTsKKyAgICAgICAgICAgICAg
ICAgICAgc3RyLmFwcGVuZChzdWJTZWxlY3Rvci0+c2VsZWN0b3JUZXh0KCkpOworICAgICAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CiAgICAgICAgICAgICAg
ICAgYnJlYWs7Ci0gICAgICAgICAgICBjYXNlIFBzZXVkb1JpZ2h0OgotICAgICAgICAgICAgICAg
IHN0ci5hcHBlbmRMaXRlcmFsKCI6cmlnaHQiKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0FueUxpbms6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjotd2Via2l0LWFueS1saW5rIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7
Ci0gICAgICAgICAgICBkZWZhdWx0OgotICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJzonKTsK
LSAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKGNzLT52YWx1ZSgpKTsKLSAgICAgICAgICAgICAg
ICBhcHBlbmRQc2V1ZG9UeXBlVGFpbElmTmVjZXNzYXJ5KHN0ciwgY3MpOworICAgICAgICAgICAg
Y2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvQXV0b2ZpbGw6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjotd2Via2l0LWF1dG9maWxsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9EcmFnOgorICAgICAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1kcmFnIik7CisgICAgICAgICAgICAgICAg
YnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsUGFnZU1lZGlh
OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXBhZ2Ut
bWVkaWEiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBFTkFCTEUoRlVMTFNDUkVFTl9B
UEkpCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9GdWxsU2NyZWVuOgorICAg
ICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXNjcmVlbiIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNl
dWRvRnVsbFNjcmVlbkFuY2VzdG9yOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFs
KCI6LXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvciIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRnVsbFNjcmVlbkRvY3VtZW50
OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6LXdlYmtpdC1mdWxsLXNjcmVl
bi1kb2N1bWVudCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgICAg
ICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9BY3RpdmU6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjphY3RpdmUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0NoZWNrZWQ6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpjaGVja2VkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Db3JuZXJQcmVzZW50OgorICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6Y29ybmVyLXByZXNlbnQiKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0RlY3JlbWVu
dDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRlY3JlbWVudCIpOworICAg
ICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRv
RGVmYXVsdDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmRlZmF1bHQiKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBz
ZXVkb0Rpc2FibGVkOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6ZGlzYWJs
ZWQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0RvdWJsZUJ1dHRvbjoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJh
bCgiOmRvdWJsZS1idXR0b24iKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VtcHR5OgorICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6ZW1wdHkiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0VuYWJsZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjplbmFibGVkIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAg
ICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9FbmQ6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjplbmQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0ZpcnN0Q2hpbGQ6CisgICAgICAgICAgICAgICAgc3Ry
LmFwcGVuZExpdGVyYWwoIjpmaXJzdC1jaGlsZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOwor
ICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvRmlyc3RPZlR5cGU6CisgICAgICAg
ICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpmaXJzdC1vZi10eXBlIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Gb2N1czoK
KyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmZvY3VzIik7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisjaWYgRU5BQkxFKFZJREVPX1RSQUNLKQorICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvRnV0dXJlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRl
cmFsKCI6ZnV0dXJlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisjZW5kaWYKKyAgICAgICAg
ICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0hvcml6b250YWw6CisgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpob3Jpem9udGFsIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ib3ZlcjoKKyAgICAgICAgICAg
ICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmhvdmVyIik7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9JblJhbmdlOgorICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6aW4tcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICBi
cmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0luY3JlbWVudDoKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmluY3JlbWVudCIpOworICAgICAgICAg
ICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvSW5kZXRl
cm1pbmF0ZToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOmluZGV0ZXJtaW5h
dGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0
b3I6OlBzZXVkb0ludmFsaWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpp
bnZhbGlkIik7CiAgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1Nl
bGVjdG9yOjpQc2V1ZG9MYW5nOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6
bGFuZygiKTsKKyAgICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChz
dHIsIGNzKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb0xhc3RDaGlsZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJh
bCgiOmxhc3QtY2hpbGQiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNh
c2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xhc3RPZlR5cGU6CisgICAgICAgICAgICAgICAgc3RyLmFw
cGVuZExpdGVyYWwoIjpsYXN0LW9mLXR5cGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb0xpbms6CisgICAgICAgICAgICAgICAg
c3RyLmFwcGVuZExpdGVyYWwoIjpsaW5rIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAg
ICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Ob0J1dHRvbjoKKyAgICAgICAgICAgICAg
ICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm5vLWJ1dHRvbiIpOworICAgICAgICAgICAgICAgIGJyZWFr
OworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvTm90OgorICAgICAgICAgICAg
ICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bm90KCIpOworICAgICAgICAgICAgICAgIGlmIChjb25z
dCBDU1NTZWxlY3Rvckxpc3QqIHNlbGVjdG9yTGlzdCA9IGNzLT5zZWxlY3Rvckxpc3QoKSkKKyAg
ICAgICAgICAgICAgICAgICAgc3RyLmFwcGVuZChzZWxlY3Rvckxpc3QtPmZpcnN0KCktPnNlbGVj
dG9yVGV4dCgpKTsKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kKCcpJyk7CisgICAgICAgICAg
ICAgICAgYnJlYWs7CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhDaGls
ZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1jaGlsZCgiKTsKKyAg
ICAgICAgICAgICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b050aExhc3RDaGlsZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm50aC1s
YXN0LWNoaWxkKCIpOworICAgICAgICAgICAgICAgIGFwcGVuZFBzZXVkb0NsYXNzRnVuY3Rpb25U
YWlsKHN0ciwgY3MpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBD
U1NTZWxlY3Rvcjo6UHNldWRvTnRoTGFzdE9mVHlwZToKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kTGl0ZXJhbCgiOm50aC1sYXN0LW9mLXR5cGUoIik7CisgICAgICAgICAgICAgICAgYXBwZW5k
UHNldWRvQ2xhc3NGdW5jdGlvblRhaWwoc3RyLCBjcyk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9OdGhPZlR5cGU6CisgICAgICAg
ICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpudGgtb2YtdHlwZSgiKTsKKyAgICAgICAgICAg
ICAgICBhcHBlbmRQc2V1ZG9DbGFzc0Z1bmN0aW9uVGFpbChzdHIsIGNzKTsKKyAgICAgICAgICAg
ICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb09ubHlDaGls
ZDoKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOm9ubHktY2hpbGQiKTsKKyAg
ICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVk
b09ubHlPZlR5cGU6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjpvbmx5LW9m
LXR5cGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2Vs
ZWN0b3I6OlBzZXVkb09wdGlvbmFsOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFs
KCI6b3B0aW9uYWwiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2Ug
Q1NTU2VsZWN0b3I6OlBzZXVkb091dE9mUmFuZ2U6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVu
ZExpdGVyYWwoIjpvdXQtb2YtcmFuZ2UiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyNpZiBF
TkFCTEUoVklERU9fVFJBQ0spCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQc2V1ZG9Q
YXN0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6cGFzdCIpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworI2VuZGlmCisgICAgICAgICAgICBjYXNlIENTU1NlbGVjdG9yOjpQ
c2V1ZG9SZWFkT25seToKKyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJlYWQt
b25seSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxl
Y3Rvcjo6UHNldWRvUmVhZFdyaXRlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFs
KCI6cmVhZC13cml0ZSIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2Fz
ZSBDU1NTZWxlY3Rvcjo6UHNldWRvUmVxdWlyZWQ6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVu
ZExpdGVyYWwoIjpyZXF1aXJlZCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAg
ICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvUm9vdDoKKyAgICAgICAgICAgICAgICBzdHIuYXBw
ZW5kTGl0ZXJhbCgiOnJvb3QiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1Njb3BlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBl
bmRMaXRlcmFsKCI6c2NvcGUiKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAg
IGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1NpbmdsZUJ1dHRvbjoKKyAgICAgICAgICAgICAgICBz
dHIuYXBwZW5kTGl0ZXJhbCgiOnNpbmdsZS1idXR0b24iKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1N0YXJ0OgorICAgICAgICAg
ICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6c3RhcnQiKTsKKyAgICAgICAgICAgICAgICBicmVh
azsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1RhcmdldDoKKyAgICAgICAg
ICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnRhcmdldCIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmFsaWQ6CisgICAgICAg
ICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjp2YWxpZCIpOworICAgICAgICAgICAgICAgIGJy
ZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmVydGljYWw6CisgICAg
ICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVyYWwoIjp2ZXJ0aWNhbCIpOworICAgICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBDU1NTZWxlY3Rvcjo6UHNldWRvVmlzaXRlZDoK
KyAgICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnZpc2l0ZWQiKTsKKyAgICAgICAg
ICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgQ1NTU2VsZWN0b3I6OlBzZXVkb1dpbmRv
d0luYWN0aXZlOgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6d2luZG93LWlu
YWN0aXZlIik7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0Ogor
ICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICAgICAgfQogICAg
ICAgICB9IGVsc2UgaWYgKGNzLT5tX21hdGNoID09IENTU1NlbGVjdG9yOjpQc2V1ZG9FbGVtZW50
KSB7CiAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOjoiKTsKQEAgLTQwNSw3ICs1NzEs
MjIgQEAgU3RyaW5nIENTU1NlbGVjdG9yOjpzZWxlY3RvclRleHQoY29uc3QgU3RyaW5nJiByaWdo
dFNpZGUpIGNvbnN0CiAgICAgICAgICAgICAgICAgc2VyaWFsaXplU3RyaW5nKGNzLT52YWx1ZSgp
LCBzdHIpOwogICAgICAgICAgICAgICAgIHN0ci5hcHBlbmQoJ10nKTsKICAgICAgICAgICAgIH0K
KyAgICAgICAgfSBlbHNlIGlmIChjcy0+bV9tYXRjaCA9PSBDU1NTZWxlY3Rvcjo6UGFnZVBzZXVk
b0NsYXNzKSB7CisgICAgICAgICAgICBzd2l0Y2ggKGNzLT5wc2V1ZG9UeXBlKCkpIHsKKyAgICAg
ICAgICAgIGNhc2UgUHNldWRvRmlyc3Q6CisgICAgICAgICAgICAgICAgc3RyLmFwcGVuZExpdGVy
YWwoIjpmaXJzdCIpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQ
c2V1ZG9MZWZ0OgorICAgICAgICAgICAgICAgIHN0ci5hcHBlbmRMaXRlcmFsKCI6bGVmdCIpOwor
ICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBQc2V1ZG9SaWdodDoKKyAg
ICAgICAgICAgICAgICBzdHIuYXBwZW5kTGl0ZXJhbCgiOnJpZ2h0Iik7CisgICAgICAgICAgICAg
ICAgYnJlYWs7CisgICAgICAgICAgICBkZWZhdWx0OgorICAgICAgICAgICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOworICAgICAgICAgICAgfQogICAgICAgICB9CisKICAgICAgICAgaWYgKGNz
LT5yZWxhdGlvbigpICE9IENTU1NlbGVjdG9yOjpTdWJTZWxlY3RvciB8fCAhY3MtPnRhZ0hpc3Rv
cnkoKSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBjcyA9IGNzLT50YWdIaXN0b3J5KCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENv
bXBhdGliaWxpdHlFbGVtZW50TWFwLmluIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNl
dWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5pbgpuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZjYyOGEx
Yjk1MzJkMmE1ZWUzNmFkM2RiM2JkYzY4Y2E4NGUzOGUwCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVu
dE1hcC5pbgpAQCAtMCwwICsxLDY3IEBACista2h0bWwtZHJhZworLXdlYmtpdC1hbnkoCistd2Vi
a2l0LWFueS1saW5rCistd2Via2l0LWF1dG9maWxsCistd2Via2l0LWRyYWcKKy13ZWJraXQtZnVs
bC1wYWdlLW1lZGlhCithY3RpdmUKK2FmdGVyLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9BZnRlcgor
YmVmb3JlLCBQc2V1ZG9Vbmtub3duLCBQc2V1ZG9CZWZvcmUKK2NoZWNrZWQKK2Nvcm5lci1wcmVz
ZW50CitkZWNyZW1lbnQKK2RlZmF1bHQKK2Rpc2FibGVkCitkb3VibGUtYnV0dG9uCitlbXB0eQor
ZW5hYmxlZAorZW5kCitmaXJzdC1jaGlsZAorZmlyc3QtbGV0dGVyLCBQc2V1ZG9Vbmtub3duLCBQ
c2V1ZG9GaXJzdExldHRlcgorZmlyc3QtbGluZSwgUHNldWRvVW5rbm93biwgUHNldWRvRmlyc3RM
aW5lCitmaXJzdC1vZi10eXBlCitmb2N1cworaG9yaXpvbnRhbAoraG92ZXIKK2luLXJhbmdlCitp
bmNyZW1lbnQKK2luZGV0ZXJtaW5hdGUKK2ludmFsaWQKK2xhbmcoCitsYXN0LWNoaWxkCitsYXN0
LW9mLXR5cGUKK2xpbmsKK25vLWJ1dHRvbgorbm90KAorbnRoLWNoaWxkKAorbnRoLWxhc3QtY2hp
bGQoCitudGgtbGFzdC1vZi10eXBlKAorbnRoLW9mLXR5cGUoCitvbmx5LWNoaWxkCitvbmx5LW9m
LXR5cGUKK29wdGlvbmFsCitvdXQtb2YtcmFuZ2UKK3JlYWQtb25seQorcmVhZC13cml0ZQorcmVx
dWlyZWQKK3Jvb3QKK3Njb3BlCitzaW5nbGUtYnV0dG9uCitzdGFydAordGFyZ2V0Cit2YWxpZAor
dmVydGljYWwKK3Zpc2l0ZWQKK3dpbmRvdy1pbmFjdGl2ZQorCisjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKQorLXdlYmtpdC1hbmltYXRpbmctZnVsbC1zY3JlZW4tdHJhbnNpdGlvbgorLXdlYmtp
dC1mdWxsLXNjcmVlbgorLXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNlc3RvcgorLXdlYmtpdC1mdWxs
LXNjcmVlbi1kb2N1bWVudAorI2VuZGlmCisKKyNpZiBFTkFCTEUoVklERU9fVFJBQ0spCitmdXR1
cmUKK3Bhc3QKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9y
UHNldWRvVHlwZU1hcC5oIGIvU291cmNlL1dlYkNvcmUvY3NzL1NlbGVjdG9yUHNldWRvVHlwZU1h
cC5oCmluZGV4IDdkMjYyM2E3MDNmMWUwOWJkM2JiZWFkZDExYWJkNjQzZWI3NTQwMWEuLjhlNzE1
ZjU1ZjI2M2VkNGU4M2ZmZDI5YWNiMGZmNmJkYjE0M2NiYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgKQEAgLTMxLDcgKzMxLDEyIEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAotQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgcGFyc2VQc2V1ZG9UeXBlU3Ry
aW5nKGNvbnN0IFN0cmluZ0ltcGwmIHBzZXVkb1R5cGVTdHJpbmcpOworc3RydWN0IFBzZXVkb0Ns
YXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudCB7CisgICAgQ1NTU2VsZWN0b3I6OlBzZXVk
b1R5cGUgcHNldWRvQ2xhc3M7CisgICAgQ1NTU2VsZWN0b3I6OlBzZXVkb1R5cGUgY29tcGF0aWJp
bGl0eVBzZXVkb0VsZW1lbnQ7Cit9OworCitQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVk
b0VsZW1lbnQgcGFyc2VQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKGNv
bnN0IENTU1BhcnNlclN0cmluZyYgcHNldWRvVHlwZVN0cmluZyk7CiBDU1NTZWxlY3Rvcjo6UHNl
dWRvVHlwZSBwYXJzZVBzZXVkb0VsZW1lbnRTdHJpbmcoY29uc3QgU3RyaW5nSW1wbCYgcHNldWRv
VHlwZVN0cmluZyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TZWxlY3RvclBzZXVkb1R5cGVNYXAuaW4gYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiZjkzYTYxNDBiNmZkNmQxMTUwNTY4ZDIwNmIxY2RlYzgxNWM2NWIyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TZWxl
Y3RvclBzZXVkb1R5cGVNYXAuaW4KKysrIC9kZXYvbnVsbApAQCAtMSw2NyArMCwwIEBACi0ta2h0
bWwtZHJhZwotLXdlYmtpdC1hbnkoCi0td2Via2l0LWFueS1saW5rCi0td2Via2l0LWF1dG9maWxs
Ci0td2Via2l0LWRyYWcKLS13ZWJraXQtZnVsbC1wYWdlLW1lZGlhCi1hY3RpdmUKLWFmdGVyCi1i
ZWZvcmUKLWNoZWNrZWQKLWNvcm5lci1wcmVzZW50Ci1kZWNyZW1lbnQKLWRlZmF1bHQKLWRpc2Fi
bGVkCi1kb3VibGUtYnV0dG9uCi1lbXB0eQotZW5hYmxlZAotZW5kCi1maXJzdC1jaGlsZAotZmly
c3QtbGV0dGVyCi1maXJzdC1saW5lCi1maXJzdC1vZi10eXBlCi1mb2N1cwotaG9yaXpvbnRhbAot
aG92ZXIKLWluLXJhbmdlCi1pbmNyZW1lbnQKLWluZGV0ZXJtaW5hdGUKLWludmFsaWQKLWxhbmco
Ci1sYXN0LWNoaWxkCi1sYXN0LW9mLXR5cGUKLWxpbmsKLW5vLWJ1dHRvbgotbm90KAotbnRoLWNo
aWxkKAotbnRoLWxhc3QtY2hpbGQoCi1udGgtbGFzdC1vZi10eXBlKAotbnRoLW9mLXR5cGUoCi1v
bmx5LWNoaWxkCi1vbmx5LW9mLXR5cGUKLW9wdGlvbmFsCi1vdXQtb2YtcmFuZ2UKLXJlYWQtb25s
eQotcmVhZC13cml0ZQotcmVxdWlyZWQKLXJvb3QKLXNjb3BlCi1zaW5nbGUtYnV0dG9uCi1zdGFy
dAotdGFyZ2V0Ci12YWxpZAotdmVydGljYWwKLXZpc2l0ZWQKLXdpbmRvdy1pbmFjdGl2ZQotCi0j
aWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKQotLXdlYmtpdC1hbmltYXRpbmctZnVsbC1zY3JlZW4t
dHJhbnNpdGlvbgotLXdlYmtpdC1mdWxsLXNjcmVlbgotLXdlYmtpdC1mdWxsLXNjcmVlbi1hbmNl
c3RvcgotLXdlYmtpdC1mdWxsLXNjcmVlbi1kb2N1bWVudAotI2VuZGlmCi0KLSNpZiBFTkFCTEUo
VklERU9fVFJBQ0spCi1mdXR1cmUKLXBhc3QKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRN
YXAucHkgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21w
YXRpYmlsaXR5RWxlbWVudE1hcC5weQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41YzJjNDNkNDdiZDRhYjY4OTAxYTgx
ZDEzNTFkNWRlMjUwNTgzYmQ4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L21ha2VTZWxlY3RvclBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRNYXAucHkKQEAg
LTAsMCArMSwyMTUgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbgorIworIyBDb3B5cmlnaHQgKEMp
IDIwMTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyMg
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyMgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisjIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorIyBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisjIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworIyBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisjIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisjIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworIyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorIyBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorIyBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisjIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKKworZGVmIGVu
dW1lcmFibGVQc2V1ZG9UeXBlKHN0cmluZ1BzZXVkb1R5cGUpOgorICAgIG91dHB1dCA9IFsnQ1NT
U2VsZWN0b3I6OlBzZXVkbyddCisKKyAgICBpZiBzdHJpbmdQc2V1ZG9UeXBlLmVuZHN3aXRoKCco
Jyk6CisgICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQc2V1ZG9UeXBlWzotMV0KKwor
ICAgIHdlYmtpdFByZWZpeCA9ICctd2Via2l0LScKKyAgICBpZiAoc3RyaW5nUHNldWRvVHlwZS5z
dGFydHN3aXRoKHdlYmtpdFByZWZpeCkpOgorICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3Ry
aW5nUHNldWRvVHlwZVtsZW4od2Via2l0UHJlZml4KTpdCisKKyAgICBraHRtbFByZWZpeCA9ICct
a2h0bWwtJworICAgIGlmIChzdHJpbmdQc2V1ZG9UeXBlLnN0YXJ0c3dpdGgoa2h0bWxQcmVmaXgp
KToKKyAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0cmluZ1BzZXVkb1R5cGVbbGVuKGtodG1s
UHJlZml4KTpdCisKKyAgICBzdWJzdHJpbmdfc3RhcnQgPSAwCisgICAgbmV4dF9kYXNoX3Bvc2l0
aW9uID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJykKKyAgICB3aGlsZSAobmV4dF9kYXNoX3Bv
c2l0aW9uICE9IC0xKToKKyAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1
YnN0cmluZ19zdGFydF0udXBwZXIoKSkKKyAgICAgICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1
ZG9UeXBlW3N1YnN0cmluZ19zdGFydCArIDE6bmV4dF9kYXNoX3Bvc2l0aW9uXSkKKyAgICAgICAg
c3Vic3RyaW5nX3N0YXJ0ID0gbmV4dF9kYXNoX3Bvc2l0aW9uICsgMQorICAgICAgICBuZXh0X2Rh
c2hfcG9zaXRpb24gPSBzdHJpbmdQc2V1ZG9UeXBlLmZpbmQoJy0nLCBzdWJzdHJpbmdfc3RhcnQp
CisKKyAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3RyaW5nX3N0YXJ0XS51
cHBlcigpKQorICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtzdWJzdHJpbmdfc3Rh
cnQgKyAxOl0pCisgICAgcmV0dXJuICcnLmpvaW4ob3V0cHV0KQorCisKK2RlZiBleHBhbmRfaWZk
ZWZfY29uZGl0aW9uKGNvbmRpdGlvbik6CisgICAgcmV0dXJuIGNvbmRpdGlvbi5yZXBsYWNlKCco
JywgJ18nKS5yZXBsYWNlKCcpJywgJycpCisKK291dHB1dF9maWxlID0gb3BlbignU2VsZWN0b3JQ
c2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50TWFwLmdwZXJmJywgJ3cnKQorCitvdXRw
dXRfZmlsZS53cml0ZSgiIiIKKyV7CisvKgorICogQ29weXJpZ2h0IChDKSAyMDE0IEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyBmaWxlIGlzIGF1dG9t
YXRpY2FsbHkgZ2VuZXJhdGVkIGZyb20gU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmluIGJ5IG1ha2Vw
cm9wLCBkbyBub3QgZWRpdCBieSBoYW5kLgorCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmgiCisKKyNpZiBkZWZpbmVkKF9fY2xhbmdfXykKKyNw
cmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBwdXNoCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdu
b3JlZCAiLVd1bmtub3duLXByYWdtYXMiCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgaWdub3Jl
ZCAiLVdkZXByZWNhdGVkLXJlZ2lzdGVyIgorI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9y
ZWQgIi1XaW1wbGljaXQtZmFsbHRocm91Z2giCisjZW5kaWYKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgU2VsZWN0b3JQc2V1ZG9DbGFzc09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1l
bnRFbnRyeSB7CisgICAgY29uc3QgY2hhciogbmFtZTsKKyAgICBQc2V1ZG9DbGFzc09yQ29tcGF0
aWJpbGl0eVBzZXVkb0VsZW1lbnQgcHNldWRvVHlwZXM7Cit9OworCislfQorJXN0cnVjdC10eXBl
CislZGVmaW5lIGluaXRpYWxpemVyLXN1ZmZpeCAse0NTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3du
LENTU1NlbGVjdG9yOjpQc2V1ZG9Vbmtub3dufQorJWRlZmluZSBjbGFzcy1uYW1lIFNlbGVjdG9y
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcEhhc2gKKyVvbWl0LXN0cnVjdC10
eXBlCislbGFuZ3VhZ2U9QysrCislcmVhZG9ubHktdGFibGVzCislZ2xvYmFsLXRhYmxlCislaWdu
b3JlLWNhc2UKKyVjb21wYXJlLXN0cm5jbXAKKyVlbnVtCisKK3N0cnVjdCBTZWxlY3RvclBzZXVk
b0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxlbWVudEVudHJ5OworCislJQorIiIiKQorCit3
ZWJjb3JlX2RlZmluZXMgPSBbaS5zdHJpcCgpIGZvciBpIGluIHN5cy5hcmd2Wy0xXS5zcGxpdCgn
ICcpXQorCitsb25nZXN0X2tleXdvcmQgPSAwCisKK2lnbm9yZV91bnRpbF9lbmRpZiA9IEZhbHNl
CitpbnB1dF9maWxlID0gb3BlbihzeXMuYXJndlsxXSwgJ3InKQorZm9yIGxpbmUgaW4gaW5wdXRf
ZmlsZToKKyAgICBsaW5lID0gbGluZS5zdHJpcCgpCisgICAgaWYgbm90IGxpbmU6CisgICAgICAg
IGNvbnRpbnVlCisKKyAgICBpZiBsaW5lLnN0YXJ0c3dpdGgoJyNpZiAnKToKKyAgICAgICAgY29u
ZGl0aW9uID0gbGluZVs0Ol0uc3RyaXAoKQorICAgICAgICBpZiBleHBhbmRfaWZkZWZfY29uZGl0
aW9uKGNvbmRpdGlvbikgbm90IGluIHdlYmNvcmVfZGVmaW5lczoKKyAgICAgICAgICAgIGlnbm9y
ZV91bnRpbF9lbmRpZiA9IFRydWUKKyAgICAgICAgY29udGludWUKKworICAgIGlmIGxpbmUuc3Rh
cnRzd2l0aCgnI2VuZGlmJyk6CisgICAgICAgIGlnbm9yZV91bnRpbF9lbmRpZiA9IEZhbHNlCisg
ICAgICAgIGNvbnRpbnVlCisKKyAgICBpZiBpZ25vcmVfdW50aWxfZW5kaWY6CisgICAgICAgIGNv
bnRpbnVlCisKKyAgICBrZXl3b3JkX2RlZmluaXRpb24gPSBsaW5lLnNwbGl0KCcsJykKKyAgICBp
ZiBsZW4oa2V5d29yZF9kZWZpbml0aW9uKSA9PSAxOgorICAgICAgICBrZXl3b3JkID0ga2V5d29y
ZF9kZWZpbml0aW9uWzBdLnN0cmlwKCkKKyAgICAgICAgb3V0cHV0X2ZpbGUud3JpdGUoJyIlcyIs
IHslcywgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd259XG4nICUgKGtleXdvcmQsIGVudW1lcmFi
bGVQc2V1ZG9UeXBlKGtleXdvcmQpKSkKKyAgICBlbHNlOgorICAgICAgICBvdXRwdXRfZmlsZS53
cml0ZSgnIiVzIiwge0NTU1NlbGVjdG9yOjolcywgQ1NTU2VsZWN0b3I6OiVzfVxuJyAlIChrZXl3
b3JkX2RlZmluaXRpb25bMF0uc3RyaXAoKSwga2V5d29yZF9kZWZpbml0aW9uWzFdLnN0cmlwKCks
IGtleXdvcmRfZGVmaW5pdGlvblsyXS5zdHJpcCgpKSkKKworICAgIGxvbmdlc3Rfa2V5d29yZCA9
IG1heChsb25nZXN0X2tleXdvcmQsIGxlbihrZXl3b3JkKSkKKworb3V0cHV0X2ZpbGUud3JpdGUo
IiIiJSUKKworc3RhdGljIGlubGluZSBjb25zdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRp
YmlsaXR5UHNldWRvRWxlbWVudEVudHJ5KiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0
eUVsZW1lbnRTdHJpbmcoY29uc3QgTENoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkK
K3sKKyAgICByZXR1cm4gU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlFbGVtZW50
TWFwSGFzaDo6aW5fd29yZF9zZXQocmVpbnRlcnByZXRfY2FzdDxjb25zdCBjaGFyKj4oY2hhcmFj
dGVycyksIGxlbmd0aCk7Cit9IiIiKQorCitvdXRwdXRfZmlsZS53cml0ZSgiIiIKKworc3RhdGlj
IGlubGluZSBjb25zdCBTZWxlY3RvclBzZXVkb0NsYXNzT3JDb21wYXRpYmlsaXR5UHNldWRvRWxl
bWVudEVudHJ5KiBwYXJzZVBzZXVkb0NsYXNzQW5kQ29tcGF0aWJpbGl0eUVsZW1lbnRTdHJpbmco
Y29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHVuc2lnbmVkIGxlbmd0aCkKK3sKKyAgICBjb25zdCB1
bnNpZ25lZCBtYXhLZXl3b3JkTGVuZ3RoID0gJXM7CisgICAgTENoYXIgYnVmZmVyW21heEtleXdv
cmRMZW5ndGhdOworICAgIGlmIChsZW5ndGggPiBtYXhLZXl3b3JkTGVuZ3RoKQorICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKKworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICsr
aSkgeworICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzW2ldOworICAgICAgICBp
ZiAoY2hhcmFjdGVyICYgfjB4ZmYpCisgICAgICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAg
ICAgICBidWZmZXJbaV0gPSBzdGF0aWNfY2FzdDxMQ2hhcj4oY2hhcmFjdGVyKTsKKyAgICB9Cisg
ICAgcmV0dXJuIHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhi
dWZmZXIsIGxlbmd0aCk7Cit9CisiIiIgJSBsb25nZXN0X2tleXdvcmQpCisKK291dHB1dF9maWxl
LndyaXRlKCIiIgorUHNldWRvQ2xhc3NPckNvbXBhdGliaWxpdHlQc2V1ZG9FbGVtZW50IHBhcnNl
UHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhjb25zdCBDU1NQYXJzZXJT
dHJpbmcmIHBzZXVkb1R5cGVTdHJpbmcpCit7CisgICAgY29uc3QgU2VsZWN0b3JQc2V1ZG9DbGFz
c09yQ29tcGF0aWJpbGl0eVBzZXVkb0VsZW1lbnRFbnRyeSogZW50cnk7CisgICAgaWYgKHBzZXVk
b1R5cGVTdHJpbmcuaXM4Qml0KCkpCisgICAgICAgIGVudHJ5ID0gcGFyc2VQc2V1ZG9DbGFzc0Fu
ZENvbXBhdGliaWxpdHlFbGVtZW50U3RyaW5nKHBzZXVkb1R5cGVTdHJpbmcuY2hhcmFjdGVyczgo
KSwgcHNldWRvVHlwZVN0cmluZy5sZW5ndGgoKSk7CisgICAgZWxzZQorICAgICAgICBlbnRyeSA9
IHBhcnNlUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudFN0cmluZyhwc2V1ZG9UeXBl
U3RyaW5nLmNoYXJhY3RlcnMxNigpLCBwc2V1ZG9UeXBlU3RyaW5nLmxlbmd0aCgpKTsKKworICAg
IGlmIChlbnRyeSkKKyAgICAgICAgcmV0dXJuIGVudHJ5LT5wc2V1ZG9UeXBlczsKKyAgICByZXR1
cm4geyBDU1NTZWxlY3Rvcjo6UHNldWRvVW5rbm93biwgQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25v
d24gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjaWYgZGVmaW5lZChfX2NsYW5n
X18pCisjcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMgcG9wCisjZW5kaWYKKworIiIiKQorb3V0cHV0
X2ZpbGUuY2xvc2UoKQorCitncGVyZl9jb21tYW5kID0gJ2dwZXJmJworaWYgJ0dQRVJGJyBpbiBv
cy5lbnZpcm9uOgorICAgIGdwZXJmX2NvbW1hbmQgPSBvcy5lbnZpcm9uWydHUEVSRiddCisKK2dw
ZXJmX3JldHVybiA9IG9zLnN5c3RlbSgiJXMgLS1rZXktcG9zaXRpb25zPScqJyAtbSAxMCAtcyAy
IFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5ncGVyZiAtLW91
dHB1dC1maWxlPVNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxlbWVudE1hcC5j
cHAiICUgZ3BlcmZfY29tbWFuZCkKK2lmIGdwZXJmX3JldHVybiAhPSAwOgorICAgIHByaW50KCJF
cnJvciB3aGVuIGdlbmVyYXRpbmcgU2VsZWN0b3JQc2V1ZG9DbGFzc0FuZENvbXBhdGliaWxpdHlF
bGVtZW50TWFwLmNwcCBmcm9tIFNlbGVjdG9yUHNldWRvQ2xhc3NBbmRDb21wYXRpYmlsaXR5RWxl
bWVudE1hcC5ncGVyZiA6KCIpCisgICAgc3lzLmV4aXQoZ3BlcmZfcmV0dXJuKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvY3NzL21ha2VTZWxlY3RvclBzZXVkb1R5cGVNYXAucHkgYi9Tb3Vy
Y2UvV2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYmU5YmU0YTkwOTU2NmZkMjUyOWQ3MTYzNGQzZTVjZThlNGMyMmVi
My4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvbWFrZVNlbGVjdG9yUHNldWRvVHlwZU1hcC5weQorKysgL2Rldi9udWxsCkBA
IC0xLDIwNSArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24KLSMKLSMgQ29weXJpZ2h0IChD
KSAyMDE0IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSMKLSMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0j
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwotIyBhcmUgbWV0OgotIyAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotIyAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0jIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0jICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKLSMgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSMKLSMgVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JwotIyBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKLSMgVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotIyBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotIyBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotIyBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSMgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSMgQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSMgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotIyBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi0KLWRlZiBl
bnVtZXJhYmxlUHNldWRvVHlwZShzdHJpbmdQc2V1ZG9UeXBlKToKLSAgICBvdXRwdXQgPSBbJ0NT
U1NlbGVjdG9yOjpQc2V1ZG8nXQotCi0gICAgaWYgc3RyaW5nUHNldWRvVHlwZS5lbmRzd2l0aCgn
KCcpOgotICAgICAgICBzdHJpbmdQc2V1ZG9UeXBlID0gc3RyaW5nUHNldWRvVHlwZVs6LTFdCi0K
LSAgICB3ZWJraXRQcmVmaXggPSAnLXdlYmtpdC0nCi0gICAgaWYgKHN0cmluZ1BzZXVkb1R5cGUu
c3RhcnRzd2l0aCh3ZWJraXRQcmVmaXgpKToKLSAgICAgICAgc3RyaW5nUHNldWRvVHlwZSA9IHN0
cmluZ1BzZXVkb1R5cGVbbGVuKHdlYmtpdFByZWZpeCk6XQotCi0gICAga2h0bWxQcmVmaXggPSAn
LWtodG1sLScKLSAgICBpZiAoc3RyaW5nUHNldWRvVHlwZS5zdGFydHN3aXRoKGtodG1sUHJlZml4
KSk6Ci0gICAgICAgIHN0cmluZ1BzZXVkb1R5cGUgPSBzdHJpbmdQc2V1ZG9UeXBlW2xlbihraHRt
bFByZWZpeCk6XQotCi0gICAgc3Vic3RyaW5nX3N0YXJ0ID0gMAotICAgIG5leHRfZGFzaF9wb3Np
dGlvbiA9IHN0cmluZ1BzZXVkb1R5cGUuZmluZCgnLScpCi0gICAgd2hpbGUgKG5leHRfZGFzaF9w
b3NpdGlvbiAhPSAtMSk6Ci0gICAgICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNldWRvVHlwZVtz
dWJzdHJpbmdfc3RhcnRdLnVwcGVyKCkpCi0gICAgICAgIG91dHB1dC5hcHBlbmQoc3RyaW5nUHNl
dWRvVHlwZVtzdWJzdHJpbmdfc3RhcnQgKyAxOm5leHRfZGFzaF9wb3NpdGlvbl0pCi0gICAgICAg
IHN1YnN0cmluZ19zdGFydCA9IG5leHRfZGFzaF9wb3NpdGlvbiArIDEKLSAgICAgICAgbmV4dF9k
YXNoX3Bvc2l0aW9uID0gc3RyaW5nUHNldWRvVHlwZS5maW5kKCctJywgc3Vic3RyaW5nX3N0YXJ0
KQotCi0gICAgb3V0cHV0LmFwcGVuZChzdHJpbmdQc2V1ZG9UeXBlW3N1YnN0cmluZ19zdGFydF0u
dXBwZXIoKSkKLSAgICBvdXRwdXQuYXBwZW5kKHN0cmluZ1BzZXVkb1R5cGVbc3Vic3RyaW5nX3N0
YXJ0ICsgMTpdKQotICAgIHJldHVybiAnJy5qb2luKG91dHB1dCkKLQotCi1kZWYgZXhwYW5kX2lm
ZGVmX2NvbmRpdGlvbihjb25kaXRpb24pOgotICAgIHJldHVybiBjb25kaXRpb24ucmVwbGFjZSgn
KCcsICdfJykucmVwbGFjZSgnKScsICcnKQotCi1vdXRwdXRfZmlsZSA9IG9wZW4oJ1NlbGVjdG9y
UHNldWRvVHlwZU1hcC5ncGVyZicsICd3JykKLQotb3V0cHV0X2ZpbGUud3JpdGUoIiIiCi0lewot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxNCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
Ci0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCi0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLS8vIFRoaXMgZmlsZSBpcyBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBmcm9t
IFNlbGVjdG9yUHNldWRvVHlwZU1hcC5pbiBieSBtYWtlcHJvcCwgZG8gbm90IGVkaXQgYnkgaGFu
ZC4KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1ZGUgIlNlbGVjdG9yUHNldWRvVHlwZU1h
cC5oIgotCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRpYWdub3N0aWMg
cHVzaAotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XdW5rbm93bi1wcmFnbWFz
IgotI3ByYWdtYSBjbGFuZyBkaWFnbm9zdGljIGlnbm9yZWQgIi1XZGVwcmVjYXRlZC1yZWdpc3Rl
ciIKLSNwcmFnbWEgY2xhbmcgZGlhZ25vc3RpYyBpZ25vcmVkICItV2ltcGxpY2l0LWZhbGx0aHJv
dWdoIgotI2VuZGlmCi0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotc3RydWN0IFNlbGVjdG9yUHNl
dWRvVHlwZUVudHJ5IHsKLSAgICBjb25zdCBjaGFyKiBuYW1lOwotICAgIENTU1NlbGVjdG9yOjpQ
c2V1ZG9UeXBlIHR5cGU7Ci19OwotCi0lfQotJXN0cnVjdC10eXBlCi0lZGVmaW5lIGluaXRpYWxp
emVyLXN1ZmZpeCAsQ1NTU2VsZWN0b3I6OlBzZXVkb1Vua25vd24KLSVkZWZpbmUgY2xhc3MtbmFt
ZSBTZWxlY3RvclBzZXVkb1R5cGVNYXBIYXNoCi0lb21pdC1zdHJ1Y3QtdHlwZQotJWxhbmd1YWdl
PUMrKwotJXJlYWRvbmx5LXRhYmxlcwotJWdsb2JhbC10YWJsZQotJWlnbm9yZS1jYXNlCi0lY29t
cGFyZS1zdHJuY21wCi0lZW51bQotCi1zdHJ1Y3QgU2VsZWN0b3JQc2V1ZG9UeXBlRW50cnk7Ci0K
LSUlCi0iIiIpCi0KLXdlYmNvcmVfZGVmaW5lcyA9IFtpLnN0cmlwKCkgZm9yIGkgaW4gc3lzLmFy
Z3ZbLTFdLnNwbGl0KCcgJyldCi0KLWxvbmdlc3Rfa2V5d29yZCA9IDAKLQotaWdub3JlX3VudGls
X2VuZGlmID0gRmFsc2UKLWlucHV0X2ZpbGUgPSBvcGVuKHN5cy5hcmd2WzFdLCAncicpCi1mb3Ig
bGluZSBpbiBpbnB1dF9maWxlOgotICAgIGtleXdvcmQgPSBsaW5lLnN0cmlwKCkKLSAgICBpZiBu
b3Qga2V5d29yZDoKLSAgICAgICAgY29udGludWUKLQotICAgIGlmIGtleXdvcmQuc3RhcnRzd2l0
aCgnI2lmICcpOgotICAgICAgICBjb25kaXRpb24gPSBrZXl3b3JkWzQ6XS5zdHJpcCgpCi0gICAg
ICAgIGlmIGV4cGFuZF9pZmRlZl9jb25kaXRpb24oY29uZGl0aW9uKSBub3QgaW4gd2ViY29yZV9k
ZWZpbmVzOgotICAgICAgICAgICAgaWdub3JlX3VudGlsX2VuZGlmID0gVHJ1ZQotICAgICAgICBj
b250aW51ZQotCi0gICAgaWYga2V5d29yZC5zdGFydHN3aXRoKCcjZW5kaWYnKToKLSAgICAgICAg
aWdub3JlX3VudGlsX2VuZGlmID0gRmFsc2UKLSAgICAgICAgY29udGludWUKLQotICAgIGlmIGln
bm9yZV91bnRpbF9lbmRpZjoKLSAgICAgICAgY29udGludWUKLQotICAgIG91dHB1dF9maWxlLndy
aXRlKCciJXMiLCAlc1xuJyAlIChrZXl3b3JkLCBlbnVtZXJhYmxlUHNldWRvVHlwZShrZXl3b3Jk
KSkpCi0gICAgbG9uZ2VzdF9rZXl3b3JkID0gbWF4KGxvbmdlc3Rfa2V5d29yZCwgbGVuKGtleXdv
cmQpKQotCi1vdXRwdXRfZmlsZS53cml0ZSgiIiIlJQotCi1zdGF0aWMgaW5saW5lIENTU1NlbGVj
dG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlwZVN0cmluZyhjb25zdCBMQ2hhciogY2hhcmFj
dGVycywgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIGlmIChjb25zdCBTZWxlY3RvclBzZXVkb1R5
cGVFbnRyeSogZW50cnkgPSBTZWxlY3RvclBzZXVkb1R5cGVNYXBIYXNoOjppbl93b3JkX3NldChy
ZWludGVycHJldF9jYXN0PGNvbnN0IGNoYXIqPihjaGFyYWN0ZXJzKSwgbGVuZ3RoKSkKLSAgICAg
ICAgcmV0dXJuIGVudHJ5LT50eXBlOwotICAgIHJldHVybiBDU1NTZWxlY3Rvcjo6UHNldWRvVW5r
bm93bjsKLX0iIiIpCi0KLW91dHB1dF9maWxlLndyaXRlKCIiIgotCi1zdGF0aWMgaW5saW5lIENT
U1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlwZVN0cmluZyhjb25zdCBVQ2hhciog
Y2hhcmFjdGVycywgdW5zaWduZWQgbGVuZ3RoKQotewotICAgIGNvbnN0IHVuc2lnbmVkIG1heEtl
eXdvcmRMZW5ndGggPSAlczsKLSAgICBMQ2hhciBidWZmZXJbbWF4S2V5d29yZExlbmd0aF07Ci0g
ICAgaWYgKGxlbmd0aCA+IG1heEtleXdvcmRMZW5ndGgpCi0gICAgICAgIHJldHVybiBDU1NTZWxl
Y3Rvcjo6UHNldWRvVW5rbm93bjsKLQotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBsZW5n
dGg7ICsraSkgewotICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSBjaGFyYWN0ZXJzW2ldOwotICAg
ICAgICBpZiAoY2hhcmFjdGVyICYgfjB4ZmYpCi0gICAgICAgICAgICByZXR1cm4gQ1NTU2VsZWN0
b3I6OlBzZXVkb1Vua25vd247Ci0KLSAgICAgICAgYnVmZmVyW2ldID0gc3RhdGljX2Nhc3Q8TENo
YXI+KGNoYXJhY3Rlcik7Ci0gICAgfQotICAgIHJldHVybiBwYXJzZVBzZXVkb1R5cGVTdHJpbmco
YnVmZmVyLCBsZW5ndGgpOwotfQotIiIiICUgbG9uZ2VzdF9rZXl3b3JkKQotCi1vdXRwdXRfZmls
ZS53cml0ZSgiIiIKLUNTU1NlbGVjdG9yOjpQc2V1ZG9UeXBlIHBhcnNlUHNldWRvVHlwZVN0cmlu
Zyhjb25zdCBTdHJpbmdJbXBsJiBwc2V1ZG9UeXBlU3RyaW5nKQotewotICAgIGlmIChwc2V1ZG9U
eXBlU3RyaW5nLmlzOEJpdCgpKQotICAgICAgICByZXR1cm4gcGFyc2VQc2V1ZG9UeXBlU3RyaW5n
KHBzZXVkb1R5cGVTdHJpbmcuY2hhcmFjdGVyczgoKSwgcHNldWRvVHlwZVN0cmluZy5sZW5ndGgo
KSk7Ci0gICAgcmV0dXJuIHBhcnNlUHNldWRvVHlwZVN0cmluZyhwc2V1ZG9UeXBlU3RyaW5nLmNo
YXJhY3RlcnMxNigpLCBwc2V1ZG9UeXBlU3RyaW5nLmxlbmd0aCgpKTsKLX0KLQotfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQotCi0jaWYgZGVmaW5lZChfX2NsYW5nX18pCi0jcHJhZ21hIGNsYW5nIGRp
YWdub3N0aWMgcG9wCi0jZW5kaWYKLQotIiIiKQotb3V0cHV0X2ZpbGUuY2xvc2UoKQotCi1ncGVy
Zl9jb21tYW5kID0gJ2dwZXJmJwotaWYgJ0dQRVJGJyBpbiBvcy5lbnZpcm9uOgotICAgIGdwZXJm
X2NvbW1hbmQgPSBvcy5lbnZpcm9uWydHUEVSRiddCi0KLWdwZXJmX3JldHVybiA9IG9zLnN5c3Rl
bSgiJXMgLS1rZXktcG9zaXRpb25zPScqJyAtbSAxMCAtcyAyIFNlbGVjdG9yUHNldWRvVHlwZU1h
cC5ncGVyZiAtLW91dHB1dC1maWxlPVNlbGVjdG9yUHNldWRvVHlwZU1hcC5jcHAiICUgZ3BlcmZf
Y29tbWFuZCkKLWlmIGdwZXJmX3JldHVybiAhPSAwOgotICAgIHByaW50KCJFcnJvciB3aGVuIGdl
bmVyYXRpbmcgU2VsZWN0b3JQc2V1ZG9UeXBlTWFwLmNwcCBmcm9tIFNlbGVjdG9yUHNldWRvVHlw
ZU1hcC5ncGVyZiA6KCIpCi0gICAgc3lzLmV4aXQoZ3BlcmZfcmV0dXJuKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>