<?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>192722</bug_id>
          
          <creation_ts>2018-12-14 16:14:58 -0800</creation_ts>
          <short_desc>[WebAuthN] Support Attestation Conveyance Preference</short_desc>
          <delta_ts>2019-05-22 12:28:18 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>181943</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Jiewen Tan">jiewen_tan</reporter>
          <assigned_to name="Jiewen Tan">jiewen_tan</assigned_to>
          <cc>alex.gaynor</cc>
    
    <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>g0r0kent0</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1488093</commentid>
    <comment_count>0</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2018-12-14 16:14:58 -0800</bug_when>
    <thetext>Support Attestation Conveyance Preference: https://www.w3.org/TR/webauthn/#attestation-convey.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1528552</commentid>
    <comment_count>1</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-04-18 13:33:00 -0700</bug_when>
    <thetext>*** Bug 196969 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538136</commentid>
    <comment_count>2</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-22 01:51:31 -0700</bug_when>
    <thetext>&lt;rdar://problem/49939647&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538142</commentid>
    <comment_count>3</comment_count>
      <attachid>370389</attachid>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-22 02:06:20 -0700</bug_when>
    <thetext>Created attachment 370389
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538143</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-05-22 02:08:25 -0700</bug_when>
    <thetext>Attachment 370389 did not pass style-queue:


ERROR: Source/WebCore/Modules/webauthn/fido/DeviceResponseConverter.h:52:  The parameter name &quot;attestation&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
ERROR: Source/WebCore/Modules/webauthn/fido/U2fResponseConverter.h:42:  The parameter name &quot;attestation&quot; adds no information, so it should be removed.  [readability/parameter_name] [5]
Total errors found: 2 in 32 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538188</commentid>
    <comment_count>5</comment_count>
      <attachid>370389</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2019-05-22 08:02:27 -0700</bug_when>
    <thetext>Comment on attachment 370389
Patch

R= me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538299</commentid>
    <comment_count>6</comment_count>
    <who name="Jiewen Tan">jiewen_tan</who>
    <bug_when>2019-05-22 11:56:32 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #5)
&gt; Comment on attachment 370389 [details]
&gt; Patch
&gt; 
&gt; R= me

Thanks Brent for r+ this patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538311</commentid>
    <comment_count>7</comment_count>
      <attachid>370389</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-22 12:27:55 -0700</bug_when>
    <thetext>Comment on attachment 370389
Patch

Clearing flags on attachment: 370389

Committed r245638: &lt;https://trac.webkit.org/changeset/245638&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538312</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-05-22 12:27:57 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1538314</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-05-22 12:28:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/51037431&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>370389</attachid>
            <date>2019-05-22 02:06:20 -0700</date>
            <delta_ts>2019-05-22 12:27:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-192722-20190522020619.patch</filename>
            <type>text/plain</type>
            <size>59936</size>
            <attacher name="Jiewen Tan">jiewen_tan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ1NTM5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EzMDJkMzMwYWJmZTcy
YWIyMTc1YTUyNDY1N2QwNjRjMWRkY2YwNC4uNjlmYTdlYWI1YTg5OTQwNzcwMjM5ZTU1ZDdiOWVl
OWJjOWE5NDM0MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE5LTA1LTIyICBKaWV3
ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhOXSBTdXBw
b3J0IEF0dGVzdGF0aW9uIENvbnZleWFuY2UgUHJlZmVyZW5jZQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzIyCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS80OTkzOTY0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1
dGhuLyNlbnVtZGVmLWF0dGVzdGF0aW9uY29udmV5YW5jZXByZWZlcmVuY2UsIHRvZ2V0aGVyIHdp
dGgKKyAgICAgICAgU3RlcCAyMCB3aXRoIHJlZ2FyZCB0byBBdHRlc3RhdGlvbkNvbnZleWFuY2VQ
cmVmZXJlbmNlIG9mIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jY3JlYXRlQ3JlZGVu
dGlhbC4KKyAgICAgICAgRmV3IG5vdGVzIHdpdGggcmVnYXJkIHRvIFN0ZXAgMjA6IDEpIFdlIHRy
ZWF0IGluZGlyZWN0IGF0dGVzdGF0aW9uIGFzIGRpcmVjdCBhdHRlc3RhdGlvbiBhcyB3ZSBkb24n
dCBNSVRNCisgICAgICAgIHRoZSBhdHRlc3RhdGlvbiBwcm9jZXNzOyAyKSBXZSB3b24ndCBkaXN0
aW5ndWlzaCBzZWxmIGF0dGVzdGF0aW9uIGFuZCByZXR1cm4gaXQgdG8ga2VlcCBjb25zaXN0ZW5j
eSBiZXR3ZWVuCisgICAgICAgIHRoZSByZXNwb25zZSBhbmQgdGhlIHJlcXVlc3QuIElmIGNhbGxl
cnMgd2FudCBub25lIGF0dGVzdGF0aW9uLCB0aGV5IHdpbGwgdmVyeSBsaWtlbHkgaWdub3JlIGZt
dCBhbmQgYXR0U3RtdAorICAgICAgICBvZiB0aGUgYXR0ZXN0YXRpb24gb2JqZWN0LCBhbmQgdGhl
cmVmb3JlIGl0IGlzIG1lYW5pbmdsZXNzIHRvIHJldHVybiBzZWxmIGF0dGVzdGF0aW9uLgorCisg
ICAgICAgIENvdmVyZWQgYnkgbmV3IHRlc3RzIHdpdGhpbiBleGlzdGluZyBmaWxlcy4KKworICAg
ICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLWlucHV0Lnhj
ZmlsZWxpc3Q6CisgICAgICAgICogRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3Q6Cisg
ICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5j
ZS5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhl
bnRpY2F0aW9uVXRpbHMuaC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9u
Q29udmV5YW5jZVByZWZlcmVuY2UuaWRsOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuaC4KKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM6OmVuY29kZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
OjpkZWNvZGUpOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlh
bENyZWF0aW9uT3B0aW9ucy5pZGw6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRo
ZW50aWNhdGlvbkNvbnN0YW50cy5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vV2ViQXV0
aGVudGljYXRpb25VdGlscy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpidWlsZEF0dGVzdGF0aW9u
T2JqZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRp
bHMuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252
ZXJ0ZXIuY3BwOgorICAgICAgICAoZmlkbzo6cmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNl
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oOgor
ICAgICAgICBub25lQXR0ZXN0YXRpb25WYWx1ZSBpcyBtb3ZlZCB0byBXZWJBdXRoZW50aWNhdGlv
bkNvbnN0YW50cy5oLgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25z
ZUNvbnZlcnRlci5jcHA6CisgICAgICAgIChmaWRvOjpyZWFkVTJmUmVnaXN0ZXJSZXNwb25zZSk6
CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmg6
CisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorCiAyMDE5LTA1LTIwICBKZXIgTm9ibGUgIDxqZXIubm9ibGVAYXBwbGUu
Y29tPgogCiAgICAgICAgIFByb3ZpZGUgYW4gZXhwbGljaXQgVUlNb2RhbFByZXNlbnRhdGlvbiBz
dHlsZSB3aGVuIGNyZWF0aW5nIGFuIEFWUGxheWVyVmlld0NvbnRyb2xsZXIgZm9yIGZ1bGxzY3Jl
ZW4uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGVmZWI1NWNiOWRmZGI5Mjg1ZjQ5ODAzMjE5ZjI1ZTMxOWZmZDllNmYu
Ljk1ZThkM2Q3Mjc0OTc5Y2VhYjUxMjUzZjc0ZDg3NTUyNTYwMGM5ZWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTggQEAKKzIwMTktMDUtMjIgIEppZXdlbiBUYW4gIDxqaWV3ZW5fdGFuQGFwcGxlLmNv
bT4KKworICAgICAgICBbV2ViQXV0aE5dIFN1cHBvcnQgQXR0ZXN0YXRpb24gQ29udmV5YW5jZSBQ
cmVmZXJlbmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xOTI3MjIKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzQ5OTM5NjQ3PgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbToKKyAgICAgICAgKFdlYktpdDo6
TG9jYWxBdXRoZW50aWNhdG9yOjpjb250aW51ZU1ha2VDcmVkZW50aWFsQWZ0ZXJBdHRlc3RlZCk6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vQ3RhcEhpZEF1dGhl
bnRpY2F0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpDdGFwSGlkQXV0aGVudGljYXRvcjo6Y29u
dGludWVNYWtlQ3JlZGVudGlhbEFmdGVyUmVzcG9uc2VSZWNlaXZlZCBjb25zdCk6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlUyZkhpZEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlUmVnaXN0
ZXJDb21tYW5kQWZ0ZXJSZXNwb25zZVJlY2VpdmVkKToKKwogMjAxOS0wNS0yMCAgUm9zcyBLaXJz
bGluZyAgPHJvc3Mua2lyc2xpbmdAc29ueS5jb20+CiAKICAgICAgICAgW1dpbkNhaXJvXSBJbXBs
ZW1lbnQgUmVtb3RlIFdlYiBJbnNwZWN0b3IgQ2xpZW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRl
eCA0NDE2ZjI1ZWQyNzc2YzE3ZjNlNjJmOWZkOWY1OGM4MTkzYTkzMDhlLi44NDBkMGY1OTg0Yzlm
ODI3YWZiMmQ0ZDkzMzQzOTZhZjcyMzFlOTE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtNDQx
LDYgKzQ0MSw3IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgTW9kdWxlcy93
ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbAogICAgIE1vZHVsZXMvd2ViYXVkaW8vV2F2
ZVNoYXBlck5vZGUuaWRsCiAKKyAgICBNb2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29udmV5
YW5jZVByZWZlcmVuY2UuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4
dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsCiAgICAgTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNh
dG9yQXR0ZXN0YXRpb25SZXNwb25zZS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CmluZGV4IDZjMDM0Y2U3Y2JjN2UwZTdlMDY1OWI3YWViZjll
Yzc1MmNmOWVhZjkuLmFjNTZjN2FiZTdiZjQzODZlNGM0NjJlZjJhZDZlMzM1ODQ5MmJhOTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdApAQCAt
Mjk0LDYgKzI5NCw3IEBAICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9k
ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9TY3JpcHRQcm9jZXNzb3JOb2RlLmlkbAog
JChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdWRpby9XYXZlU2hhcGVyTm9kZS5pZGwKKyQoUFJP
SkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5j
ZS5pZGwKICQoUFJPSkVDVF9ESVIpL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRpb25FeHRl
bnNpb25zQ2xpZW50SW5wdXRzLmlkbAogJChQUk9KRUNUX0RJUikvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaWRsCiAkKFBST0pFQ1RfRElSKS9Nb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlLmlkbApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QgYi9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAppbmRleCA1MDc0MTU4
YzU0NjNhYWYwMmFkN2JlYWJkMWI2MGY4ODhlNWVmOTRlLi4zZGQ5MDhlZTE4NWNkY2ZkZWIxYTg2
ZDkxNTU0MDUwNjQ4MjgzMDBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTI0LDYgKzEyNCw4IEBAICQoQlVJTFRfUFJPRFVDVFNf
RElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXBwbGVQYXlWYWxpZGF0ZU1lcmNoYW50RXZl
bnQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Fw
cGxlUGF5VmFsaWRhdGVNZXJjaGFudEV2ZW50LmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJp
dmVkU291cmNlcy9XZWJDb3JlL0pTQXJpYUF0dHJpYnV0ZXMuY3BwCiAkKEJVSUxUX1BST0RVQ1RT
X0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0FyaWFBdHRyaWJ1dGVzLmgKKyQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZS5jcHAKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F0dHIuY3BwCiAkKEJVSUxUX1BST0RV
Q1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0F0dHIuaAogJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNBdWRpb0J1ZmZlci5jcHAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9E
ZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGRhZmU1MjIwN2U4ZWM1ODcyZDljNTExMmRhZDhiZGM5
NDEwZWUxMzguLmI5ODhkYTIzZGMzYjQ2MmZlMTNiYWM5N2EzZTBiNWMzZDU0ZWIyMzQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMzUxLDYgKzM1MSw3IEBAIEpTX0JJTkRJTkdf
SURMUyA9IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vUGVyaW9kaWNXYXZlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmF1ZGlvL1NjcmlwdFByb2Nlc3Nvck5vZGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXVkaW8vV2F2ZVNoYXBlck5vZGUuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZS5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVs
ZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmlkbCBcCiAgICAgJChX
ZWJDb3JlKS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNl
LmlkbCBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRleCA4MzQyN2YwMzc1ZGUxZTZkOGU3YmZkZTFkZGU4
OGE3ZTAwYTYzN2Y3Li4xOTgwZjBkNzNkYmVmZGM4MDMwYjBhNTM1MDdhYjdhNDViNjc1MzVhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UKQEAgLTExMiw2ICsxMTIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRF
X0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU2lu
ay5oCiAgICAgTW9kdWxlcy9zdHJlYW1zL1JlYWRhYmxlU3RyZWFtU291cmNlLmgKIAorICAgIE1v
ZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oCiAgICAgTW9k
dWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaAogICAg
IE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKICAgICBNb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZl
cmVuY2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXR0ZXN0YXRpb25Db252
ZXlhbmNlUHJlZmVyZW5jZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAxOWU4NTM1ZmU0ODU1MzE3ZDY0YjNhYWEy
MWU4NjBhZjhmMmM3ZDcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaApAQCAtMCwwICsxLDU1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQor
CisjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitlbnVt
IGNsYXNzIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgeworICAgIE5vbmUsCisgICAg
SW5kaXJlY3QsCisgICAgRGlyZWN0Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKK25h
bWVzcGFjZSBXVEYgeworCit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkF0
dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAorICAgICAgICBXZWJDb3JlOjpBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNl
LAorICAgICAgICBXZWJDb3JlOjpBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpOb25l
LAorICAgICAgICBXZWJDb3JlOjpBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpJbmRp
cmVjdCwKKyAgICAgICAgV2ViQ29yZTo6QXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6
RGlyZWN0CisgICAgPjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdURgorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjIwYzM1MmY1ZjhlNWVhNTBkYWI5NmU4YWJkMDE2MjUxOWQ4YzZkMDkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F0dGVzdGF0aW9uQ29u
dmV5YW5jZVByZWZlcmVuY2UuaWRsCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMTkgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgQ29uZGl0aW9uYWw9V0VCX0FVVEhOLAorXSBlbnVtIEF0dGVzdGF0aW9uQ29udmV5YW5jZVBy
ZWZlcmVuY2UgeworICAgICJub25lIiwKKyAgICAiaW5kaXJlY3QiLAorICAgICJkaXJlY3QiCit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAppbmRleCA0OTE2NDU4OTE5
MjMwMDVmMmUwYjZmYTNmYmNiZTk5Mzk1ZjM3OTY0Li5kNTQ4YWFkNWIwNzg2ZDMzOTdhYTI2YzU1
MDM2NjBiZTEzMGQwYWViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMu
aApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUg
IkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaCIKICNpbmNsdWRlICJBdXRoZW50aWNh
dGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCIKICNpbmNsdWRlICJCdWZmZXJTb3VyY2UuaCIK
ICNpbmNsdWRlICJQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvci5oIgpAQCAtODQsNiArODUs
NyBAQCBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyB7CiAgICAgT3B0
aW9uYWw8dW5zaWduZWQ+IHRpbWVvdXQ7CiAgICAgVmVjdG9yPFB1YmxpY0tleUNyZWRlbnRpYWxE
ZXNjcmlwdG9yPiBleGNsdWRlQ3JlZGVudGlhbHM7CiAgICAgT3B0aW9uYWw8QXV0aGVudGljYXRv
clNlbGVjdGlvbkNyaXRlcmlhPiBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOworICAgIEF0dGVzdGF0
aW9uQ29udmV5YW5jZVByZWZlcmVuY2UgYXR0ZXN0YXRpb247CiAgICAgT3B0aW9uYWw8QXV0aGVu
dGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiBleHRlbnNpb25zOyAvLyBBIHBsYWNlIGhv
bGRlciwgYnV0IG5ldmVyIHVzZWQuCiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lk
IGVuY29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC0xNDIsNyArMTQ0LDcgQEAgdm9pZCBQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29u
c3QKICAgICBlbmNvZGVyIDw8IHJwLmlkIDw8IHJwLm5hbWUgPDwgcnAuaWNvbjsKICAgICBlbmNv
ZGVyIDw8IHN0YXRpY19jYXN0PHVpbnQ2NF90Pih1c2VyLmlkLmxlbmd0aCgpKTsKICAgICBlbmNv
ZGVyLmVuY29kZUZpeGVkTGVuZ3RoRGF0YSh1c2VyLmlkLmRhdGEoKSwgdXNlci5pZC5sZW5ndGgo
KSwgMSk7Ci0gICAgZW5jb2RlciA8PCB1c2VyLmRpc3BsYXlOYW1lIDw8IHVzZXIubmFtZSA8PCB1
c2VyLmljb24gPDwgcHViS2V5Q3JlZFBhcmFtcyA8PCB0aW1lb3V0IDw8IGV4Y2x1ZGVDcmVkZW50
aWFscyA8PCBhdXRoZW50aWNhdG9yU2VsZWN0aW9uOworICAgIGVuY29kZXIgPDwgdXNlci5kaXNw
bGF5TmFtZSA8PCB1c2VyLm5hbWUgPDwgdXNlci5pY29uIDw8IHB1YktleUNyZWRQYXJhbXMgPDwg
dGltZW91dCA8PCBleGNsdWRlQ3JlZGVudGlhbHMgPDwgYXV0aGVudGljYXRvclNlbGVjdGlvbiA8
PCBhdHRlc3RhdGlvbjsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KQEAgLTE4MSw2ICsx
ODMsMTIgQEAgT3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucz4gUHVi
bGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczoKICAgICAgICAgcmV0dXJuIFdURjo6bnVs
bG9wdDsKICAgICByZXN1bHQuYXV0aGVudGljYXRvclNlbGVjdGlvbiA9IFdURk1vdmUoKmF1dGhl
bnRpY2F0b3JTZWxlY3Rpb24pOwogCisgICAgT3B0aW9uYWw8QXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZT4gYXR0ZXN0YXRpb247CisgICAgZGVjb2RlciA+PiBhdHRlc3RhdGlvbjsKKyAg
ICBpZiAoIWF0dGVzdGF0aW9uKQorICAgICAgICByZXR1cm4gV1RGOjpudWxsb3B0OworICAgIHJl
c3VsdC5hdHRlc3RhdGlvbiA9IFdURk1vdmUoKmF0dGVzdGF0aW9uKTsKKwogICAgIHJldHVybiBy
ZXN1bHQ7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL1B1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMuaWRsCmlu
ZGV4IDAzM2UwZGM4Nzk1OWI3M2YxYjVmZDliYTZiY2M4MGJkMWVlZWFkYjguLmVjYjY3MDFjNmRj
MjIzM2RiMTlmMDBjODg2ODEwOTgyMDAxNWJhNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXV0aG4vUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucy5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9QdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zLmlkbApAQCAtMzcsOCArMzcsNyBAQCB0eXBlZGVmIGxvbmcgQ09TRUFs
Z29yaXRobUlkZW50aWZpZXI7CiAgICAgdW5zaWduZWQgbG9uZyB0aW1lb3V0OwogICAgIHNlcXVl
bmNlPFB1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yPiBleGNsdWRlQ3JlZGVudGlhbHMgPSBb
XTsKICAgICBBdXRoZW50aWNhdG9yU2VsZWN0aW9uQ3JpdGVyaWEgYXV0aGVudGljYXRvclNlbGVj
dGlvbjsKLSAgICAvLyBBbHdheXMgImRpcmVjdCIgZm9yIHVzLgotICAgIC8vIEF0dGVzdGF0aW9u
Q29udmV5YW5jZVByZWZlcmVuY2UgYXR0ZXN0YXRpb24gPSAibm9uZSI7CisgICAgQXR0ZXN0YXRp
b25Db252ZXlhbmNlUHJlZmVyZW5jZSBhdHRlc3RhdGlvbiA9ICJub25lIjsKICAgICBBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMgZXh0ZW5zaW9uczsKIH07CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25Db25z
dGFudHMuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRp
b25Db25zdGFudHMuaAppbmRleCA2MTQ1MjYxYWMwMjgxYWEzZTBlY2NhNzgzMzYzMmExNjVmNzI1
NTA5Li5lNGZkMTJiYzY0NzdjMjk0ZWFlOTY1ZjRmZTViOGJmYmNkY2FmMzFmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uQ29uc3Rh
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNh
dGlvbkNvbnN0YW50cy5oCkBAIC02Nyw0ICs2Nyw3IEBAIGNvbnN0IHNpemVfdCBjcmVkZW50aWFs
SWRMZW5ndGhMZW5ndGggPSAyOwogLy8gUGVyIFNlY3Rpb24gMi4zLjUgb2YgaHR0cDovL3d3dy5z
ZWNnLm9yZy9zZWMxLXYyLnBkZgogY29uc3Qgc2l6ZV90IEVTMjU2RmllbGRFbGVtZW50TGVuZ3Ro
ID0gMzI7CiAKKy8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jbm9uZS1hdHRlc3Rh
dGlvbgorY29uc3QgY2hhciBub25lQXR0ZXN0YXRpb25WYWx1ZVtdID0gIm5vbmUiOworCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmNwcAppbmRleCAxMzMyNjE5MWFjMmZl
NjEwYjAwZDA0NDZiYjdhMGRmZmMzOGQ2MzliLi5iZTkyNjEyZDgxZDMxNzkwOTdjYmFiYjY1Y2Ey
MjBiMjkwYTAxNWRjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L1dlYkF1dGhlbnRpY2F0aW9uVXRpbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vV2ViQXV0aGVudGljYXRpb25VdGlscy5jcHAKQEAgLTExMCw5ICsxMTAsMjAgQEAg
VmVjdG9yPHVpbnQ4X3Q+IGJ1aWxkQXV0aERhdGEoY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCB1
aW50OF90IGZsYWdzLCBjb25zdCB1aW4KICAgICByZXR1cm4gYXV0aERhdGE7CiB9CiAKLVZlY3Rv
cjx1aW50OF90PiBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFZlY3Rvcjx1aW50OF90PiYmIGF1dGhE
YXRhLCBTdHJpbmcmJiBmb3JtYXQsIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUmJiBzdGF0ZW1l
bnRNYXApCitWZWN0b3I8dWludDhfdD4gYnVpbGRBdHRlc3RhdGlvbk9iamVjdChWZWN0b3I8dWlu
dDhfdD4mJiBhdXRoRGF0YSwgU3RyaW5nJiYgZm9ybWF0LCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZh
bHVlJiYgc3RhdGVtZW50TWFwLCBjb25zdCBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNl
JiBhdHRlc3RhdGlvbikKIHsKICAgICBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlIGF0dGVzdGF0
aW9uT2JqZWN0TWFwOworICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBTdGVwIDIwIHdp
dGggcmVnYXJkIHRvIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UKKyAgICAvLyBvZiBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwgYXMgb2YgNCBN
YXJjaCAyMDE5LgorICAgIC8vIE5vbmUgYXR0ZXN0YXRpb24gaXMgYWx3YXlzIHJldHVybmVkIGlm
IGl0IGlzIHJlcXVlc3RlZCB0byBrZWVwIGNvbnNpc3RlbmN5LCBhbmQgdGhlcmVmb3JlIHNraXAg
dGhlCisgICAgLy8gc3RlcCB0byByZXR1cm4gc2VsZiBhdHRlc3RhdGlvbi4KKyAgICBpZiAoYXR0
ZXN0YXRpb24gPT0gQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSkgeworICAg
ICAgICBjb25zdCBzaXplX3QgYWFndWlkT2Zmc2V0ID0gcnBJZEhhc2hMZW5ndGggKyBmbGFnc0xl
bmd0aCArIHNpZ25Db3VudGVyTGVuZ3RoOworICAgICAgICBpZiAoYXV0aERhdGEuc2l6ZSgpID49
IGFhZ3VpZE9mZnNldCArIGFhZ3VpZExlbmd0aCkKKyAgICAgICAgICAgIG1lbXNldChhdXRoRGF0
YS5kYXRhKCkgKyBhYWd1aWRPZmZzZXQsIDAsIGFhZ3VpZExlbmd0aCk7CisgICAgICAgIGZvcm1h
dCA9IG5vbmVBdHRlc3RhdGlvblZhbHVlOworICAgICAgICBzdGF0ZW1lbnRNYXAuY2xlYXIoKTsK
KyAgICB9CiAgICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbY2Jvcjo6Q0JPUlZhbHVlKCJhdXRoRGF0
YSIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGF1dGhEYXRhKSk7CiAgICAgYXR0ZXN0YXRp
b25PYmplY3RNYXBbY2Jvcjo6Q0JPUlZhbHVlKCJmbXQiKV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RG
TW92ZShmb3JtYXQpKTsKICAgICBhdHRlc3RhdGlvbk9iamVjdE1hcFtjYm9yOjpDQk9SVmFsdWUo
ImF0dFN0bXQiKV0gPSBjYm9yOjpDQk9SVmFsdWUoV1RGTW92ZShzdGF0ZW1lbnRNYXApKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vV2ViQXV0aGVudGljYXRp
b25VdGlscy5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNh
dGlvblV0aWxzLmgKaW5kZXggMTdmMDIyZTE2MDc4MjE3YjE5MTgwMDE4MDdkMzFiY2Y3MDhhMjE3
MC4uNTFmMDU2ZTZkMzNmYTg4Yjc1Nzc0MmY0OWY5MDQzMzVkNjMzZDkyOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0aWxzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9XZWJBdXRoZW50aWNhdGlvblV0
aWxzLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNs
dWRlICJBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiQ0JPUlZh
bHVlLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KIApAQCAtNDYsNyArNDcsNyBAQCBXRUJD
T1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gYnVpbGRBdHRlc3RlZENyZWRlbnRpYWxEYXRhKGNv
bnN0IFZlY3Rvcjx1aW50OF90PgogV0VCQ09SRV9FWFBPUlQgVmVjdG9yPHVpbnQ4X3Q+IGJ1aWxk
QXV0aERhdGEoY29uc3QgU3RyaW5nJiBycElkLCBjb25zdCB1aW50OF90IGZsYWdzLCBjb25zdCB1
aW50MzJfdCBjb3VudGVyLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIG9wdGlvbmFsQXR0ZXN0ZWRD
cmVkZW50aWFsRGF0YSk7CiAKIC8vIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jYXR0
ZXN0YXRpb24tb2JqZWN0Ci1XRUJDT1JFX0VYUE9SVCBWZWN0b3I8dWludDhfdD4gYnVpbGRBdHRl
c3RhdGlvbk9iamVjdChWZWN0b3I8dWludDhfdD4mJiBhdXRoRGF0YSwgU3RyaW5nJiYgZm9ybWF0
LCBjYm9yOjpDQk9SVmFsdWU6Ok1hcFZhbHVlJiYgc3RhdGVtZW50TWFwKTsKK1dFQkNPUkVfRVhQ
T1JUIFZlY3Rvcjx1aW50OF90PiBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFZlY3Rvcjx1aW50OF90
PiYmIGF1dGhEYXRhLCBTdHJpbmcmJiBmb3JtYXQsIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUm
JiBzdGF0ZW1lbnRNYXAsIGNvbnN0IEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UmKTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRvL0RldmljZVJlc3BvbnNlQ29udmVydGVyLmNw
cAppbmRleCAxMjQ0MmIxMjVjNzkwMjlkOGNmNGE1YWM0MTZkYjExNGZiMjU2NjI1Li5kYWZiZWZk
OWM3ZGI2ODNiMTQ5NTA1MmViYzJkMTliYjgyNDBlODRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2aWNlUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNv
bnZlcnRlci5jcHAKQEAgLTM2LDYgKzM2LDcgQEAKICNpbmNsdWRlICJDQk9SUmVhZGVyLmgiCiAj
aW5jbHVkZSAiQ0JPUldyaXRlci5oIgogI2luY2x1ZGUgIldlYkF1dGhlbnRpY2F0aW9uQ29uc3Rh
bnRzLmgiCisjaW5jbHVkZSAiV2ViQXV0aGVudGljYXRpb25VdGlscy5oIgogI2luY2x1ZGUgPHd0
Zi9TdGRTZXQuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAKQEAgLTg0LDcgKzg1LDcgQEAg
c3RhdGljIFZlY3Rvcjx1aW50OF90PiBnZXRDcmVkZW50aWFsSWQoY29uc3QgVmVjdG9yPHVpbnQ4
X3Q+JiBhdXRoZW50aWNhdG9yRGF0YSkKIAogLy8gRGVjb2RlcyBieXRlIGFycmF5IHJlc3BvbnNl
IGZyb20gYXV0aGVudGljYXRvciB0byBDQk9SIHZhbHVlIG9iamVjdCBhbmQKIC8vIGNoZWNrcyBm
b3IgY29ycmVjdCBlbmNvZGluZyBmb3JtYXQuCi1PcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFs
RGF0YT4gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90
PiYgaW5CdWZmZXIpCitPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBN
YWtlQ3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaW5CdWZmZXIsIGNv
bnN0IFdlYkNvcmU6OkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UmIGF0dGVzdGF0aW9u
KQogewogICAgIGlmIChpbkJ1ZmZlci5zaXplKCkgPD0ga1Jlc3BvbnNlQ29kZUxlbmd0aCkKICAg
ICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKQEAgLTExNSwxMSArMTE2LDE5IEBAIE9wdGlvbmFs
PFB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2Uo
Y29uc3QgVmVjdG9yPHVpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7CiAgICAgYXV0byBh
dHRTdG10ID0gaXQtPnNlY29uZC5jbG9uZSgpOwogCi0gICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0
YXRpb25PYmplY3RNYXA7Ci0gICAgYXR0ZXN0YXRpb25PYmplY3RNYXBbQ0JPUigiYXV0aERhdGEi
KV0gPSBXVEZNb3ZlKGF1dGhlbnRpY2F0b3JEYXRhKTsKLSAgICBhdHRlc3RhdGlvbk9iamVjdE1h
cFtDQk9SKCJmbXQiKV0gPSBXVEZNb3ZlKGZvcm1hdCk7Ci0gICAgYXR0ZXN0YXRpb25PYmplY3RN
YXBbQ0JPUigiYXR0U3RtdCIpXSA9IFdURk1vdmUoYXR0U3RtdCk7Ci0gICAgYXV0byBhdHRlc3Rh
dGlvbk9iamVjdCA9IGNib3I6OkNCT1JXcml0ZXI6OndyaXRlKENCT1IoV1RGTW92ZShhdHRlc3Rh
dGlvbk9iamVjdE1hcCkpKTsKKyAgICBPcHRpb25hbDxWZWN0b3I8dWludDhfdD4+IGF0dGVzdGF0
aW9uT2JqZWN0OworICAgIGlmIChhdHRlc3RhdGlvbiA9PSBBdHRlc3RhdGlvbkNvbnZleWFuY2VQ
cmVmZXJlbmNlOjpOb25lKSB7CisgICAgICAgIC8vIFRoZSByZWFzb24gd2h5IHdlIGNhbid0IGRp
cmVjdGx5IHBhc3MgYXV0aGVudGljYXRvckRhdGEvZm9ybWF0L2F0dFN0bXQgdG8gYnVpbGRBdHRl
c3RhdGlvbk9iamVjdAorICAgICAgICAvLyBpcyB0aGF0IHRoZXkgYXJlIENCT1JWYWx1ZSBpbnN0
ZWFkIG9mIHRoZSByYXcgdHlwZS4KKyAgICAgICAgLy8gQWxzbywgZm9ybWF0IGFuZCBhdHRTdG10
IGFyZSBvbWl0dGVkIGFzIHRoZXkgYXJlIG5vdCB1c2VmdWwgaW4gbm9uZSBhdHRlc3RhdGlvbi4K
KyAgICAgICAgYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFZlY3Rv
cjx1aW50OF90PihhdXRoZW50aWNhdG9yRGF0YS5nZXRCeXRlU3RyaW5nKCkpLCAiIiwgeyB9LCBh
dHRlc3RhdGlvbik7CisgICAgfSBlbHNlIHsKKyAgICAgICAgQ0JPUjo6TWFwVmFsdWUgYXR0ZXN0
YXRpb25PYmplY3RNYXA7CisgICAgICAgIGF0dGVzdGF0aW9uT2JqZWN0TWFwW0NCT1IoImF1dGhE
YXRhIildID0gV1RGTW92ZShhdXRoZW50aWNhdG9yRGF0YSk7CisgICAgICAgIGF0dGVzdGF0aW9u
T2JqZWN0TWFwW0NCT1IoImZtdCIpXSA9IFdURk1vdmUoZm9ybWF0KTsKKyAgICAgICAgYXR0ZXN0
YXRpb25PYmplY3RNYXBbQ0JPUigiYXR0U3RtdCIpXSA9IFdURk1vdmUoYXR0U3RtdCk7CisgICAg
ICAgIGF0dGVzdGF0aW9uT2JqZWN0ID0gY2Jvcjo6Q0JPUldyaXRlcjo6d3JpdGUoQ0JPUihXVEZN
b3ZlKGF0dGVzdGF0aW9uT2JqZWN0TWFwKSkpOworICAgIH0KIAogICAgIHJldHVybiBQdWJsaWNL
ZXlDcmVkZW50aWFsRGF0YSB7IEFycmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEo
KSwgY3JlZGVudGlhbElkLnNpemUoKSksIHRydWUsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVh
dGUoYXR0ZXN0YXRpb25PYmplY3QudmFsdWUoKS5kYXRhKCksIGF0dGVzdGF0aW9uT2JqZWN0LnZh
bHVlKCkuc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgV1RGOjpudWxsb3B0IH07
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vRGV2
aWNlUmVzcG9uc2VDb252ZXJ0ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
Zmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCmluZGV4IGFmZmI1NGM3OWU0NTNkZjE4Y2Q3
ZGVjNzdlYTcwYzk2YmYzZjJkMWMuLjA0YmU4Yjk5YTQyZDkxYjQwM2MwNTJiNjc3ZWU2MGJjMjU1
NzU5MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9E
ZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vZmlkby9EZXZpY2VSZXNwb25zZUNvbnZlcnRlci5oCkBAIC0zMSw2ICszMSw3IEBACiAK
ICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiQXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JHZXRJbmZvUmVzcG9uc2UuaCIK
ICNpbmNsdWRlICJGaWRvQ29uc3RhbnRzLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlh
bERhdGEuaCIKQEAgLTQ4LDcgKzQ5LDcgQEAgV0VCQ09SRV9FWFBPUlQgQ3RhcERldmljZVJlc3Bv
bnNlQ29kZSBnZXRSZXNwb25zZUNvZGUoY29uc3QgVmVjdG9yPHVpbnQ4X3Q+Jik7CiAvLyBhbmQg
Y29udmVydHMgcmVzcG9uc2UgdG8gQXV0aGVudGljYXRvck1ha2VDcmVkZW50aWFsUmVzcG9uc2Ug
b2JqZWN0IHdpdGgKIC8vIENCT1IgbWFwIGtleXMgdGhhdCBjb25mb3JtIHRvIGZvcm1hdCBvZiBh
dHRlc3RhdGlvbiBvYmplY3QgZGVmaW5lZCBieSB0aGUKIC8vIFdlYkF1dGhOIHNwZWMgOiBodHRw
czovL3czYy5naXRodWIuaW8vd2ViYXV0aG4vI2ZpZy1hdHRTdHJ1Y3RzCi1XRUJDT1JFX0VYUE9S
VCBPcHRpb25hbDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZENUQVBNYWtl
Q3JlZGVudGlhbFJlc3BvbnNlKGNvbnN0IFZlY3Rvcjx1aW50OF90PiYpOworV0VCQ09SRV9FWFBP
UlQgT3B0aW9uYWw8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRDVEFQTWFr
ZUNyZWRlbnRpYWxSZXNwb25zZShjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBXZWJDb3Jl
OjpBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlJiBhdHRlc3RhdGlvbiA9IFdlYkNvcmU6
OkF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2U6OkRpcmVjdCk7CiAKIC8vIERlLXNlcmlh
bGl6ZXMgQ0JPUiBlbmNvZGVkIHJlc3BvbnNlIHRvIEF1dGhlbnRpY2F0b3JHZXRBc3NlcnRpb24g
LwogLy8gQXV0aGVudGljYXRvckdldE5leHRBc3NlcnRpb24gcmVxdWVzdCB0byBBdXRoZW50aWNh
dG9yR2V0QXNzZXJ0aW9uUmVzcG9uc2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9GaWRvQ29uc3RhbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL2ZpZG8vRmlkb0NvbnN0YW50cy5oCmluZGV4IDUzMGExNzQ4NjdlYTUzZGI3YzAw
MGU1MzE0NGIyOWNmZjRiNjFjMWYuLjIxMWUzYzgxZjNmMGRlMmZlNWJjYmZjZTYzZTNlNGZjODE1
MDJhMjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vZmlkby9G
aWRvQ29uc3RhbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9maWRv
L0ZpZG9Db25zdGFudHMuaApAQCAtMjA3LDcgKzIwNyw2IEBAIGVudW0gY2xhc3MgVTJmQXBkdUlu
c3RydWN0aW9uIDogdWludDhfdCB7CiBjb25zdCBjaGFyIGtGb3JtYXRLZXlbXSA9ICJmbXQiOwog
Y29uc3QgY2hhciBrQXR0ZXN0YXRpb25TdGF0ZW1lbnRLZXlbXSA9ICJhdHRTdG10IjsKIGNvbnN0
IGNoYXIga0F1dGhEYXRhS2V5W10gPSAiYXV0aERhdGEiOwotY29uc3QgY2hhciBrTm9uZUF0dGVz
dGF0aW9uVmFsdWVbXSA9ICJub25lIjsKIAogLy8gU3RyaW5nIHJlcHJlc2VudGF0aW9uIG9mIHB1
YmxpYyBrZXkgY3JlZGVudGlhbCBlbnVtLgogLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL3dlYmF1
dGhuLyNjcmVkZW50aWFsVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5jcHAKaW5kZXggMzJhMTg1
M2JhYzQ3MDYwNTk0NTA0YjY2YTk3OThhZDM5NTYzZTY0YS4uOTMyNGYxOGY5MWFkZjE4MGIwN2M4
M2ZjZTQyNjcwNjAwODNiNmJmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1dGhuL2ZpZG8vVTJmUmVzcG9uc2VDb252ZXJ0ZXIuY3BwCkBAIC0xNDcs
NyArMTQ3LDcgQEAgc3RhdGljIGNib3I6OkNCT1JWYWx1ZTo6TWFwVmFsdWUgY3JlYXRlRmlkb0F0
dGVzdGF0aW9uU3RhdGVtZW50RnJvbVUyZlJlZ2lzdGVyUmUKIAogfSAvLyBuYW1lc3BhY2UKIAot
T3B0aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRVMmZSZWdpc3RlclJlc3BvbnNl
KGNvbnN0IFN0cmluZyYgcnBJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1MmZEYXRhKQorT3B0
aW9uYWw8UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKGNv
bnN0IFN0cmluZyYgcnBJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1MmZEYXRhLCBjb25zdCBB
dHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlJiBhdHRlc3RhdGlvbikKIHsKICAgICBhdXRv
IHB1YmxpY0tleSA9IGV4dHJhY3RFQ1B1YmxpY0tleUZyb21VMmZSZWdpc3RyYXRpb25SZXNwb25z
ZSh1MmZEYXRhKTsKICAgICBpZiAocHVibGljS2V5LmlzRW1wdHkoKSkKQEAgLTE2OCw3ICsxNjgs
NyBAQCBPcHRpb25hbDxQdWJsaWNLZXlDcmVkZW50aWFsRGF0YT4gcmVhZFUyZlJlZ2lzdGVyUmVz
cG9uc2UoY29uc3QgU3RyaW5nJiBycElkLCBjbwogICAgIGlmIChmaWRvQXR0ZXN0YXRpb25TdGF0
ZW1lbnQuZW1wdHkoKSkKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotICAgIGF1dG8g
YXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUoYXV0aERh
dGEpLCAiZmlkby11MmYiLCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCkpOworICAg
IGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2JqZWN0KFdURk1vdmUo
YXV0aERhdGEpLCAiZmlkby11MmYiLCBXVEZNb3ZlKGZpZG9BdHRlc3RhdGlvblN0YXRlbWVudCks
IGF0dGVzdGF0aW9uKTsKIAogICAgIHJldHVybiBQdWJsaWNLZXlDcmVkZW50aWFsRGF0YSB7IEFy
cmF5QnVmZmVyOjpjcmVhdGUoY3JlZGVudGlhbElkLmRhdGEoKSwgY3JlZGVudGlhbElkLnNpemUo
KSksIHRydWUsIG51bGxwdHIsIEFycmF5QnVmZmVyOjpjcmVhdGUoYXR0ZXN0YXRpb25PYmplY3Qu
ZGF0YSgpLCBhdHRlc3RhdGlvbk9iamVjdC5zaXplKCkpLCBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyLCBXVEY6Om51bGxvcHQgfTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2ViYXV0aG4vZmlkby9VMmZSZXNwb25zZUNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmgKaW5kZXggNGM2ZDI0
ZTViNGY3ZTIyYTY2YjMzNGY1Zjg3MzRmOWU0ZjE0OGM0Mi4uOWFmMjgyZDM0ZThlN2Q5MzQxNDJi
ZDU0MTY0MzJhZDg3MDM3MDZhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJhdXRobi9maWRvL1UyZlJlc3BvbnNlQ29udmVydGVyLmgKQEAgLTMxLDYgKzMx
LDcgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRlICJBdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiUHVibGljS2V5Q3JlZGVudGlhbERhdGEu
aCIKICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogCkBAIC0zOCw3ICszOSw3IEBAIG5hbWVzcGFj
ZSBmaWRvIHsKIAogLy8gQ29udmVydHMgYSBVMkYgcmVnaXN0ZXIgcmVzcG9uc2UgdG8gV2ViQXV0
aE4gbWFrZUNyZWRlbnRpYWwgcmVzcG9uc2UuCiAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5vcmcv
c3BlY3MvZmlkby12Mi4wLWlkLTIwMTgwMjI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0b3It
cHJvdG9jb2wtdjIuMC1pZC0yMDE4MDIyNy5odG1sI3UyZi1hdXRoZW50aWNhdG9yTWFrZUNyZWRl
bnRpYWwtaW50ZXJvcGVyYWJpbGl0eQotV0VCQ09SRV9FWFBPUlQgT3B0aW9uYWw8V2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbERhdGE+IHJlYWRVMmZSZWdpc3RlclJlc3BvbnNlKGNvbnN0IFN0
cmluZyYgcnBJZCwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiB1MmZEYXRhKTsKK1dFQkNPUkVfRVhQ
T1JUIE9wdGlvbmFsPFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxEYXRhPiByZWFkVTJmUmVn
aXN0ZXJSZXNwb25zZShjb25zdCBTdHJpbmcmIHJwSWQsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
dTJmRGF0YSwgY29uc3QgV2ViQ29yZTo6QXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZSYg
YXR0ZXN0YXRpb24gPSBXZWJDb3JlOjpBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlOjpE
aXJlY3QpOwogCiAvLyBDb252ZXJ0cyBhIFUyRiBhdXRoZW50aWNhdGlvbiByZXNwb25zZSB0byBX
ZWJBdXRoTiBnZXRBc3NlcnRpb24gcmVzcG9uc2UuCiAvLyBodHRwczovL2ZpZG9hbGxpYW5jZS5v
cmcvc3BlY3MvZmlkby12Mi4wLWlkLTIwMTgwMjI3L2ZpZG8tY2xpZW50LXRvLWF1dGhlbnRpY2F0
b3ItcHJvdG9jb2wtdjIuMC1pZC0yMDE4MDIyNy5odG1sI3UyZi1hdXRoZW50aWNhdG9yR2V0QXNz
ZXJ0aW9uLWludGVyb3BlcmFiaWxpdHkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJj
ZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggMzY3NWUwMDRiODY3M2U5
ZDY4YjFjNmJkOGQ0NjhhMGQ0ZDQxMjU3ZS4uODk3ZTcxMjc3MjM4OGY3MTMzNzViMDE3ODkyZjJi
MTk4ZmE5ZGE2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI1MTYsNiArMjUxNiw3IEBAIEpTQXVkaW9M
aXN0ZW5lci5jcHAKIEpTQXVkaW9Ob2RlLmNwcAogSlNBdWRpb1BhcmFtLmNwcAogSlNBdWRpb1By
b2Nlc3NpbmdFdmVudC5jcHAKK0pTQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5jcHAK
IEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcAogSlNBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwCiBKU0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3Bv
bnNlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IGY2OWNmZjIzMjEyOGNiYmU4ZWE1Y2MxZGVlODQwNzBjYjZmODcwMWUuLmU4
ZmY0NDhjMmNlZjU5MWRhMTg0NDMxOTA4YjE1OTcxYTAyODVhNjIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE4MDksNiArMTgw
OSw5IEBACiAJCTU3QzdBNjhDMUU1Njk2NzUwMEM2N0Q3MSAvKiBCYXNpY0NyZWRlbnRpYWwuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3QzdBNjhCMUU1
Njk2NzUwMEM2N0Q3MSAvKiBCYXNpY0NyZWRlbnRpYWwuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1N0M3QTY5RjFFNTc5MTc4MDBDNjdENzEgLyog
SlNCYXNpY0NyZWRlbnRpYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDU3QzdBNjlEMUU1NzkxMEQwMEM2N0Q3MSAvKiBKU0Jhc2ljQ3JlZGVudGlhbC5o
ICovOyB9OwogCQk1N0QwMDE4RDFERDU0MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlVc2FnZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTdEMDAxOEMx
REQ1NDEzMjAwRUQxOUQ5IC8qIEpTQ3J5cHRvS2V5VXNhZ2UuaCAqLzsgfTsKKwkJNTdEMTM1MjUy
Mjk0QTMzQzAwODI3NDAxIC8qIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3RDEzNTIxMjI5NDk3
MzQwMDgyNzQwMSAvKiBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNTdEMTM1MkEyMjk0QUEz
OTAwODI3NDAxIC8qIEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0RBNDdBRDIyNDAz
MkREMDAyQTQ2MTIgLyogSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAq
LzsgfTsKKwkJNTdEMTM1MkMyMjk0QUEzRDAwODI3NDAxIC8qIEpTQXR0ZXN0YXRpb25Db252ZXlh
bmNlUHJlZmVyZW5jZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdEMTM1MjYyMjk0QTdBNzAwODI3NDAxIC8qIEpTQXR0ZXN0YXRpb25Db252ZXlhbmNl
UHJlZmVyZW5jZS5oICovOyB9OwogCQk1N0Q4NDYyRTFGRUFGNjk5MDBDQTM2ODIgLyogUHVibGlj
S2V5Q3JlZGVudGlhbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTdEODQ2MkIxRkVBRjY4RjAwQ0EzNjgyIC8qIFB1YmxpY0tleUNyZWRlbnRpYWwuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1N0Q4NDYz
NTFGRUFGQ0QzMDBDQTM2ODIgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1N0Q4NDYzMDFGRUFGQzJGMDBDQTM2
ODIgLyogSlNQdWJsaWNLZXlDcmVkZW50aWFsLmggKi87IH07CiAJCTU3REE0N0IwMjI0MDM0RTQw
MDJBNDYxMiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDU3REE0N0E1MjI0MDFFMEYw
MDJBNDYxMiAvKiBBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODY4Nyw2ICs4Njkw
LDEwIEBACiAJCTU3RDAwMThCMUREM0RCQTQwMEVEMTlEOSAvKiBDcnlwdG9LZXlVc2FnZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gQ3J5cHRvS2V5VXNhZ2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
N0QwMDE4QzFERDU0MTMyMDBFRDE5RDkgLyogSlNDcnlwdG9LZXlVc2FnZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBKU0NyeXB0b0tleVVzYWdlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTU3RDAwMThFMURENTQxNTMwMEVEMTlEOSAvKiBKU0NyeXB0b0tleVVz
YWdlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTQ3J5cHRvS2V5
VXNhZ2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1N0QxMzUyMTIyOTQ5NzM0
MDA4Mjc0MDEgLyogQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCTU3RDEzNTIzMjI5NDk3MzQwMDgyNzQwMSAvKiBBdHRlc3RhdGlvbkNvbnZl
eWFuY2VQcmVmZXJlbmNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdEMTM1MjYyMjk0QTdBNzAwODI3
NDAxIC8qIEpTQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBKU0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTdEMTM1MjcyMjk0QTdBODAwODI3NDAxIC8q
IEpTQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBKU0F0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1N0Q4NDYyNDFGRTg5NUY1MDBDQTM2ODIg
LyogTmF2aWdhdG9yQ3JlZGVudGlhbHMuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTmF2aWdhdG9yQ3JlZGVudGlhbHMuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1N0Q4NDYyNTFGRTg5NUY2MDBDQTM2ODIgLyogTmF2aWdhdG9yQ3JlZGVudGlhbHMu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRvckNyZWRlbnRpYWxzLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTdEODQ2MjYxRkU4OTVGODAwQ0EzNjgyIC8qIE5h
dmlnYXRvckNyZWRlbnRpYWxzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5h
dmlnYXRvckNyZWRlbnRpYWxzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xOTUy
Niw2ICsxOTUzMyw4IEBACiAJCQkJNTcxNTJCNTMyMUNCMkNFMzAwMEMzN0NBIC8qIGFwZHUgKi8s
CiAJCQkJNTczMDNCQjMyMDA2QzZFRDAwMzU1OTY1IC8qIGNib3IgKi8sCiAJCQkJNTc4QTRCRkEy
MTY2QUUwMDAwRDA4RjM0IC8qIGZpZG8gKi8sCisJCQkJNTdEMTM1MjEyMjk0OTczNDAwODI3NDAx
IC8qIEF0dGVzdGF0aW9uQ29udmV5YW5jZVByZWZlcmVuY2UuaCAqLywKKwkJCQk1N0QxMzUyMzIy
OTQ5NzM0MDA4Mjc0MDEgLyogQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS5pZGwgKi8s
CiAJCQkJNTdEQTQ3QTUyMjQwMUUwRjAwMkE0NjEyIC8qIEF1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
c0NsaWVudElucHV0cy5oICovLAogCQkJCTU3REE0N0E3MjI0MDFFMEYwMDJBNDYxMiAvKiBBdXRo
ZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHMuaWRsICovLAogCQkJCTU3MzAzQzI3MjAw
OUIyRkMwMDM1NTk2NSAvKiBBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2UuaCAqLywKQEAg
LTE5NTY0LDYgKzE5NTczLDggQEAKIAkJNTdEODQ2MkYxRkVBRkIwNTAwQ0EzNjgyIC8qIFdlYkF1
dGhOICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKKwkJCQk1N0Qx
MzUyNzIyOTRBN0E4MDA4Mjc0MDEgLyogSlNBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNl
LmNwcCAqLywKKwkJCQk1N0QxMzUyNjIyOTRBN0E3MDA4Mjc0MDEgLyogSlNBdHRlc3RhdGlvbkNv
bnZleWFuY2VQcmVmZXJlbmNlLmggKi8sCiAJCQkJNTdEQTQ3QUMyMjQwMzJEQzAwMkE0NjEyIC8q
IEpTQXV0aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzLmNwcCAqLywKIAkJCQk1N0RB
NDdBRDIyNDAzMkREMDAyQTQ2MTIgLyogSlNBdXRoZW50aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJ
bnB1dHMuaCAqLywKIAkJCQk1NzMwM0MyRTIwMDlCN0RBMDAzNTU5NjUgLyogSlNBdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuY3BwICovLApAQCAtMjgxNzgsNiArMjgxODksNyBAQAogCQkJ
CUZENTY4NkNBMTNBQzE4MDIwMEI2OUM2OCAvKiBBc3luY0F1ZGlvRGVjb2Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJRTFDREU5MjIxNTAxOTE2OTAwODYyQ0M1IC8qIEFzeW5jRmlsZVN0cmVhbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMEZGRDRENjExODY1MUZBMzAwNTEyRjZFIC8qIEFzeW5jU2Ny
b2xsaW5nQ29vcmRpbmF0b3IuaCBpbiBIZWFkZXJzICovLAorCQkJCTU3RDEzNTI1MjI5NEEzM0Mw
MDgyNzQwMSAvKiBBdHRlc3RhdGlvbkNvbnZleWFuY2VQcmVmZXJlbmNlLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOEM0QTgwRDA5RDU2MzI3MDAwM0FDOEQgLyogQXR0ci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJQThDNEE4MEIwOUQ1NjMyNzAwMDNBQzhEIC8qIEF0dHJpYnV0ZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJRTRBODE0REExQzcwRTEwRDAwQkY4NUFDIC8qIEF0dHJpYnV0ZUNoYW5nZUludmFs
aWRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTU0MSw2ICsyOTU1Myw3IEBACiAJCQkJN0M2
NTc5RjQxRTAwODU2NjAwRTNBMjdBIC8qIEpTQXBwbGVQYXlTaGlwcGluZ01ldGhvZC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMUFFOTZBOTMxRDFBMERERDAwQjg2NzY4IC8qIEpTQXBwbGVQYXlTaGlw
cGluZ01ldGhvZFNlbGVjdGVkRXZlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUExMkM1OUZFMjAz
NjBCNEEwMDEyMjM2QiAvKiBKU0FwcGxlUGF5U2hpcHBpbmdNZXRob2RVcGRhdGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTU3RDEzNTJDMjI5NEFBM0QwMDgyNzQwMSAvKiBKU0F0dGVzdGF0aW9uQ29u
dmV5YW5jZVByZWZlcmVuY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1REYzMURCMDlEMUMxMjMw
MDBCRTMyNSAvKiBKU0F0dHIuaCBpbiBIZWFkZXJzICovLAogCQkJCUZEQTE1RTlFMTJCMDNFRTEw
MDNBNTgzQSAvKiBKU0F1ZGlvQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlGREY3RTlDNDEz
QUMyMURCMDBBNTFFQUMgLyogSlNBdWRpb0J1ZmZlckNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywK
QEAgLTI5NTUzLDYgKzI5NTY2LDcgQEAKIAkJCQlGREExNUVCNjEyQjAzRUUxMDAzQTU4M0EgLyog
SlNBdWRpb1Byb2Nlc3NpbmdFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYwNDMxNzFD
OEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkU4RUYw
NDUxNzFDOEZGOTAwOUI0OEMzIC8qIEpTQXVkaW9UcmFja0xpc3QuaCBpbiBIZWFkZXJzICovLAor
CQkJCTU3RDEzNTJBMjI5NEFBMzkwMDgyNzQwMSAvKiBKU0F1dGhlbnRpY2F0aW9uRXh0ZW5zaW9u
c0NsaWVudElucHV0cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNDMkYyMDA5QjdFMTAwMzU1
OTY1IC8qIEpTQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywK
IAkJCQk1NzMwM0MyMjIwMDlBRjAzMDAzNTU5NjUgLyogSlNBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b25SZXNwb25zZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTczMDNCRTEyMDA5NUQ2MTAwMzU1OTY1
IC8qIEpTQXV0aGVudGljYXRvclJlc3BvbnNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL0xvY2FsQXV0
aGVudGljYXRvci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L0NvY29hL0xvY2FsQXV0aGVudGljYXRvci5tbQppbmRleCA2OWZmZWRiYWNjNzk0ZTkyNjhjYTg2
MzU3YzliMjg0N2FkYjdlMmE2Li45YzAzMTRmOWIzZjY4OWNhMjE0OGEzNjkzNzM3MTdmZWM5M2Uy
MGFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9Db2NvYS9Mb2NhbEF1dGhlbnRpY2F0b3IubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvTG9jYWxBdXRoZW50aWNhdG9yLm1tCkBAIC0zMjQs
NyArMzI0LDcgQEAgdm9pZCBMb2NhbEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRp
YWxBZnRlckF0dGVzdGVkKFNlY0tleVJlZiBwcml2YXRlS2UKICAgICAgICAgICAgIGNib3JBcnJh
eS5hcHBlbmQoY2Jvcjo6Q0JPUlZhbHVlKHRvVmVjdG9yKChOU0RhdGEgKilhZG9wdENGKFNlY0Nl
cnRpZmljYXRlQ29weURhdGEoKF9fYnJpZGdlIFNlY0NlcnRpZmljYXRlUmVmKWNlcnRpZmljYXRl
c1tpXSkpLmdldCgpKSkpOwogICAgICAgICBhdHRlc3RhdGlvblN0YXRlbWVudE1hcFtjYm9yOjpD
Qk9SVmFsdWUoIng1YyIpXSA9IGNib3I6OkNCT1JWYWx1ZShXVEZNb3ZlKGNib3JBcnJheSkpOwog
ICAgIH0KLSAgICBhdXRvIGF0dGVzdGF0aW9uT2JqZWN0ID0gYnVpbGRBdHRlc3RhdGlvbk9iamVj
dChXVEZNb3ZlKGF1dGhEYXRhKSwgIkFwcGxlIiwgV1RGTW92ZShhdHRlc3RhdGlvblN0YXRlbWVu
dE1hcCkpOworICAgIGF1dG8gYXR0ZXN0YXRpb25PYmplY3QgPSBidWlsZEF0dGVzdGF0aW9uT2Jq
ZWN0KFdURk1vdmUoYXV0aERhdGEpLCAiQXBwbGUiLCBXVEZNb3ZlKGF0dGVzdGF0aW9uU3RhdGVt
ZW50TWFwKSwgcmVxdWVzdERhdGEoKS5jcmVhdGlvbk9wdGlvbnMuYXR0ZXN0YXRpb24pOwogCiAg
ICAgcmVjZWl2ZVJlc3BvbmQoUHVibGljS2V5Q3JlZGVudGlhbERhdGEgeyBBcnJheUJ1ZmZlcjo6
Y3JlYXRlKGNyZWRlbnRpYWxJZC5kYXRhKCksIGNyZWRlbnRpYWxJZC5zaXplKCkpLCB0cnVlLCBu
dWxscHRyLCBBcnJheUJ1ZmZlcjo6Y3JlYXRlKGF0dGVzdGF0aW9uT2JqZWN0LmRhdGEoKSwgYXR0
ZXN0YXRpb25PYmplY3Quc2l6ZSgpKSwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciwgV1RGOjpu
dWxsb3B0IH0pOwogI2VuZGlmIC8vICFQTEFURk9STShJT1NfRkFNSUxZKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9DdGFwSGlkQXV0
aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9maWRvL0N0YXBIaWRBdXRoZW50aWNhdG9yLmNwcAppbmRleCAzNTQxYThjYTRlNjY2ZjFiM2U5
YjNhYjJmNzA3NTA1OTJhOTY1MjFlLi5kYWM4MDU0MzYzMzJhNTU5NWJhOGExOWVlMDE2NDlkNGFj
ZDQxNjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9maWRvL0N0YXBIaWRBdXRoZW50aWNhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL0N0YXBIaWRBdXRoZW50aWNhdG9yLmNwcApA
QCAtNjIsNyArNjIsNyBAQCB2b2lkIEN0YXBIaWRBdXRoZW50aWNhdG9yOjptYWtlQ3JlZGVudGlh
bCgpCiAKIHZvaWQgQ3RhcEhpZEF1dGhlbnRpY2F0b3I6OmNvbnRpbnVlTWFrZUNyZWRlbnRpYWxB
ZnRlclJlc3BvbnNlUmVjZWl2ZWQoVmVjdG9yPHVpbnQ4X3Q+JiYgZGF0YSkgY29uc3QKIHsKLSAg
ICBhdXRvIHJlc3BvbnNlID0gcmVhZENUQVBNYWtlQ3JlZGVudGlhbFJlc3BvbnNlKGRhdGEpOwor
ICAgIGF1dG8gcmVzcG9uc2UgPSByZWFkQ1RBUE1ha2VDcmVkZW50aWFsUmVzcG9uc2UoZGF0YSwg
cmVxdWVzdERhdGEoKS5jcmVhdGlvbk9wdGlvbnMuYXR0ZXN0YXRpb24pOwogICAgIGlmICghcmVz
cG9uc2UpIHsKICAgICAgICAgYXV0byBlcnJvciA9IGdldFJlc3BvbnNlQ29kZShkYXRhKTsKICAg
ICAgICAgaWYgKGVycm9yID09IEN0YXBEZXZpY2VSZXNwb25zZUNvZGU6OmtDdGFwMkVyckNyZWRl
bnRpYWxFeGNsdWRlZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9maWRvL1UyZkhpZEF1dGhlbnRpY2F0b3IuY3Bw
CmluZGV4IDFjZGU4MjkxZWMzNDlhYTA2NWRhMjI0Yzk5MTU0Y2MzMTZjYzMxYjQuLmVjZWVjMGY3
ZTg3ZjcyMmRjMGZjOGQ4NGVhYWM3YTNiZjliNGU1MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL2ZpZG8vVTJmSGlkQXV0aGVudGljYXRvci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vZmlkby9V
MmZIaWRBdXRoZW50aWNhdG9yLmNwcApAQCAtMTUyLDcgKzE1Miw3IEBAIHZvaWQgVTJmSGlkQXV0
aGVudGljYXRvcjo6Y29udGludWVSZWdpc3RlckNvbW1hbmRBZnRlclJlc3BvbnNlUmVjZWl2ZWQo
QXBkdVJlc3BvCiB7CiAgICAgc3dpdGNoIChhcGR1UmVzcG9uc2Uuc3RhdHVzKCkpIHsKICAgICBj
YXNlIEFwZHVSZXNwb25zZTo6U3RhdHVzOjpTV19OT19FUlJPUjogewotICAgICAgICBhdXRvIHJl
c3BvbnNlID0gcmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UocmVxdWVzdERhdGEoKS5jcmVhdGlvbk9w
dGlvbnMucnAuaWQsIGFwZHVSZXNwb25zZS5kYXRhKCkpOworICAgICAgICBhdXRvIHJlc3BvbnNl
ID0gcmVhZFUyZlJlZ2lzdGVyUmVzcG9uc2UocmVxdWVzdERhdGEoKS5jcmVhdGlvbk9wdGlvbnMu
cnAuaWQsIGFwZHVSZXNwb25zZS5kYXRhKCksIHJlcXVlc3REYXRhKCkuY3JlYXRpb25PcHRpb25z
LmF0dGVzdGF0aW9uKTsKICAgICAgICAgaWYgKCFyZXNwb25zZSkgewogICAgICAgICAgICAgcmVj
ZWl2ZVJlc3BvbmQoRXhjZXB0aW9uRGF0YSB7IFVua25vd25FcnJvciwgIkNvdWxkbid0IHBhcnNl
IHRoZSBVMkYgcmVnaXN0ZXIgcmVzcG9uc2UuIl9zIH0pOwogICAgICAgICAgICAgcmV0dXJuOwpk
aWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGRiZWYx
Y2MzNmMxZGIwMWU3YTM1MTk2YmJiYmUxNjIwN2UxYWYyNGEuLmNmNWY2M2IyMmJlNmNlODE0MDc5
MmY3NDZkMTVlZjI3NTM3ZmJmYjkgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9U
b29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOS0wNS0yMiAgSmlld2VuIFRhbiAg
PGppZXdlbl90YW5AYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRoTl0gU3VwcG9ydCBBdHRl
c3RhdGlvbiBDb252ZXlhbmNlIFByZWZlcmVuY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE5MjcyMgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDk5
Mzk2NDc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcDoKKyAgICAg
ICAgKFRlc3RXZWJLaXRBUEk6OlRFU1QpOgorICAgICAgICBVcGRhdGVzIHRoZSB0ZXN0IHdpdGgg
QXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZS4KKwogMjAxOS0wNS0yMCAgS2VpdGggUm9s
bGluICA8a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgZ2VuZXJhdGUteGNmaWxlbGlzdHMg
aXMgc3RyYW5kaW5nIHRlbXBvcmFyeSBmaWxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL0N0YXBSZXF1ZXN0VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcAppbmRleCBmNWU0ZjE0M2M2OWVh
ODUyOWI1OGY3MDk4ZmVmZWFiN2FiMjYzYjg0Li5kM2YwMmY2ZTkwZTExNTc5ZWM3NmY3ZDg1MWY4
MDc2MDM5ZmRjYjNjIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvQ3RhcFJlcXVlc3RUZXN0LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvQ3RhcFJlcXVlc3RUZXN0LmNwcApAQCAtNTksNyArNTksNyBAQCBURVNUKENUQVBSZXF1
ZXN0VGVzdCwgVGVzdENvbnN0cnVjdE1ha2VDcmVkZW50aWFsUmVxdWVzdFBhcmFtKQogICAgIFZl
Y3RvcjxQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpQYXJhbWV0ZXJzPiBwYXJh
bXMgeyB7IFB1YmxpY0tleUNyZWRlbnRpYWxUeXBlOjpQdWJsaWNLZXksIDcgfSwgeyBQdWJsaWNL
ZXlDcmVkZW50aWFsVHlwZTo6UHVibGljS2V5LCAyNTcgfSB9OwogICAgIFB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnM6OkF1dGhlbnRpY2F0b3JTZWxlY3Rpb25Dcml0ZXJpYSBzZWxl
Y3Rpb24geyBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zOjpBdXRoZW50aWNhdG9y
QXR0YWNobWVudDo6UGxhdGZvcm0sIHRydWUsIFVzZXJWZXJpZmljYXRpb25SZXF1aXJlbWVudDo6
UHJlZmVycmVkIH07CiAKLSAgICBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zIG9w
dGlvbnMgeyBycCwgdXNlciwgeyB9LCBwYXJhbXMsIFdURjo6bnVsbG9wdCwgeyB9LCBzZWxlY3Rp
b24sIFdURjo6bnVsbG9wdCB9OworICAgIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMgb3B0aW9ucyB7IHJwLCB1c2VyLCB7IH0sIHBhcmFtcywgV1RGOjpudWxsb3B0LCB7IH0sIHNl
bGVjdGlvbiwgQXR0ZXN0YXRpb25Db252ZXlhbmNlUHJlZmVyZW5jZTo6Tm9uZSwgV1RGOjpudWxs
b3B0IH07CiAgICAgVmVjdG9yPHVpbnQ4X3Q+IGhhc2g7CiAgICAgaGFzaC5hcHBlbmQoVGVzdERh
dGE6OmtDbGllbnREYXRhSGFzaCwgc2l6ZW9mKFRlc3REYXRhOjprQ2xpZW50RGF0YUhhc2gpKTsK
ICAgICBhdXRvIHNlcmlhbGl6ZWREYXRhID0gZW5jb2RlTWFrZUNyZWRlbml0YWxSZXF1ZXN0QXND
Qk9SKGhhc2gsIG9wdGlvbnMsIEF1dGhlbnRpY2F0b3JTdXBwb3J0ZWRPcHRpb25zOjpVc2VyVmVy
aWZpY2F0aW9uQXZhaWxhYmlsaXR5OjprU3VwcG9ydGVkQnV0Tm90Q29uZmlndXJlZCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggZDcyNWQxMDRjNTViYjgzZmU5OWEyNWIwNTUxNzRiZDdhNzA0ZjgzMy4uZjQxYjFlMWViODcz
MmZjZWI4OTNiZjhiMjEzM2YxNTM1NTZmYTcyNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDE5
LTA1LTIyICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW1dl
YkF1dGhOXSBTdXBwb3J0IEF0dGVzdGF0aW9uIENvbnZleWFuY2UgUHJlZmVyZW5jZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTkyNzIyCisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS80OTkzOTY0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3JlYXRlLXN1Y2Nlc3MtbG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAq
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1s
b2NhbC5odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy11MmYuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vz
cy11MmYuaHR0cHMuaHRtbDoKKwogMjAxOS0wNS0yMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCBzZWN1cml0eSBjaGVjayBpbiBTY3JpcHRDb250cm9sbGVy
OjpjYW5BY2Nlc3NGcm9tQ3VycmVudE9yaWdpbigpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlk
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDU5YjJkZjc0N2M3Yjk5Y2E0MGQ3YzdmZjAzNDBiM2JmMTg5OTExZGQuLjMxMmRlOTMwZTRk
YjY2MDEyNzM3N2Y5NjhjZWFjZjgwZTUxYWRmYTYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQu
aHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC02LDQgKzYsNyBAQCBQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGggdXNlclZlcmlmaWNhdGlvbiB7ICdwcmVmZXJyZWQnIH0gaW4gYQogUEFTUyBQdWJsaWNLZXlD
cmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHVzZXJWZXJpZmljYXRpb24geyAnZGlzY291cmFn
ZWQnIH0gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG1peGVkIG9wdGlvbnMgaW4gYSBtb2NrIGxvY2FsIGF1
dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IHR3byBjb25zZWN1dGl2ZSByZXF1ZXN0cy4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBb
W2NyZWF0ZV1dIHdpdGggbm9uZSBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwgYXV0aGVudGlj
YXRvci4gCitQQVNTIFB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggZGlyZWN0
IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBpbmRpcmVjdCBhdHRlc3RhdGlvbiBpbiBh
IG1vY2sgbG9jYWwgYXV0aGVudGljYXRvci4gCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1oaWQuaHR0cHMuaHRtbAppbmRleCA4NDM3ZTllNzZmMmQx
MjVjNTFmMjE3YzFiNmViNDA1MDEzZTdjZThiLi5hMTQ3ZWYzN2Q1MzkzZGViOTY5ODY1ZjQwYjFl
ZWM3NWU5NWM3YTViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtaGlkLmh0dHBzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0
ZS1zdWNjZXNzLWhpZC5odHRwcy5odG1sCkBAIC05LDcgKzksNyBAQAogICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikKICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tD
b25maWd1cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwg
ZXJyb3I6ICJzdWNjZXNzIiwgcGF5bG9hZEJhc2U2NDogW3Rlc3RDcmVhdGlvbk1lc3NhZ2VCYXNl
NjRdIH0gfSk7CiAKLSAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChjcmVkZW50aWFsKQorICAgIGZ1
bmN0aW9uIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGlzTm9uZUF0dGVzdGF0aW9uID0gdHJ1ZSkK
ICAgICB7CiAgICAgICAgIC8vIENoZWNrIHJlc3BvbnNlCiAgICAgICAgIGFzc2VydF9hcnJheV9l
cXVhbHMoQmFzZTY0VVJMLnBhcnNlKGNyZWRlbnRpYWwuaWQpLCBCYXNlNjRVUkwucGFyc2UodGVz
dEhpZENyZWRlbnRpYWxJZEJhc2U2NCkpOwpAQCAtMjAsMTggKzIwLDI4IEBACiAKICAgICAgICAg
Ly8gQ2hlY2sgYXR0ZXN0YXRpb24KICAgICAgICAgY29uc3QgYXR0ZXN0YXRpb25PYmplY3QgPSBD
Qk9SLmRlY29kZShjcmVkZW50aWFsLnJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0KTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQsICJwYWNrZWQiKTsKKyAgICAg
ICAgaWYgKGlzTm9uZUF0dGVzdGF0aW9uKQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRl
c3RhdGlvbk9iamVjdC5mbXQsICJub25lIik7CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGFz
c2VydF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuZm10LCAicGFja2VkIik7CiAgICAgICAgIC8v
IENoZWNrIGF1dGhEYXRhCiAgICAgICAgIGNvbnN0IGF1dGhEYXRhID0gZGVjb2RlQXV0aERhdGEo
YXR0ZXN0YXRpb25PYmplY3QuYXV0aERhdGEpOwogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVz
VG9IZXhTdHJpbmcoYXV0aERhdGEucnBJZEhhc2gpLCAiNDZjYzdmYjk2NzlkNTViMmRiOTA5MmUx
YzhkOWU1ZTFkMDJiNzU4MGYwYjQ4MTJjNzcwOTYyZTFlNDhmNWFkOCIpOwogICAgICAgICBhc3Nl
cnRfZXF1YWxzKGF1dGhEYXRhLmZsYWdzLCA2NSk7CiAgICAgICAgIGFzc2VydF9lcXVhbHMoYXV0
aERhdGEuY291bnRlciwgNzgpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJp
bmcoYXV0aERhdGEuYWFndWlkKSwgImY4YTAxMWYzOGMwYTRkMTU4MDA2MTcxMTFmOWVkYzdkIik7
CisgICAgICAgIGlmIChpc05vbmVBdHRlc3RhdGlvbikKKyAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMoYnl0ZXNUb0hleFN0cmluZyhhdXRoRGF0YS5hYWd1aWQpLCAiMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhieXRlc1RvSGV4U3RyaW5nKGF1dGhEYXRhLmFhZ3VpZCksICJmOGEwMTFmMzhjMGE0ZDE1ODAw
NjE3MTExZjllZGM3ZCIpOwogICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGF1dGhEYXRhLmNy
ZWRlbnRpYWxJRCwgQmFzZTY0VVJMLnBhcnNlKHRlc3RIaWRDcmVkZW50aWFsSWRCYXNlNjQpKTsK
ICAgICAgICAgLy8gQ2hlY2sgcGFja2VkIGF0dGVzdGF0aW9uCi0gICAgICAgIGFzc2VydF9lcXVh
bHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC5hbGcsIC03KTsKICAgICAgICAgYXNzZXJ0X3Ry
dWUoY2hlY2tQdWJsaWNLZXkoYXV0aERhdGEucHVibGljS2V5KSk7Ci0gICAgICAgIGFzc2VydF9l
cXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC54NWMubGVuZ3RoLCAxKTsKKyAgICAgICAg
aWYgKGlzTm9uZUF0dGVzdGF0aW9uKQorICAgICAgICAgICAgYXNzZXJ0X29iamVjdF9lcXVhbHMo
YXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdCwgeyB9KTsKKyAgICAgICAgZWxzZSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQuYWxnLCAtNyk7Cisg
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQueDVjLmxl
bmd0aCwgMSk7CisgICAgICAgIH0KICAgICB9CiAKICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CkBA
IC0xOTMsNCArMjAzLDczIEBACiAgICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsK
ICAgICAgICAgfSk7CiAgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdp
dGggdHdvIGNvbnNlY3V0aXZlIHJlcXVlc3RzLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4g
eworICAgICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7Cisg
ICAgICAgICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9z
dCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAg
ICAgICAgICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAg
IGlkOiBCYXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAg
ICAgICAgICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgfSwKKyAg
ICAgICAgICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAg
ICAgICAgICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFs
ZzogLTcgfV0sCisgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246ICJub25lIiwKKyAgICAgICAg
ICAgICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgICAgIH0KKyAgICAgICAgfTsKKworICAgICAg
ICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50aGVuKGNyZWRl
bnRpYWwgPT4geworICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CisgICAgICAg
IH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG5vbmUg
YXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9t
aXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBw
dWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBu
YW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVz
ZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCks
CisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJN
VEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJw
dWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjogImRp
cmVjdCIsCisgICAgICAgICAgICAgICAgdGltZW91dDogMTAwCisgICAgICAgICAgICB9CisgICAg
ICAgIH07CisKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0
aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRl
bnRpYWwsIGZhbHNlKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwn
cyBbW2NyZWF0ZV1dIHdpdGggZGlyZWN0IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRo
ZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAgICAgICBjb25zdCBv
cHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAgICAgICAgICAgcnA6
IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisgICAgICAgICAgICAg
ICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6
ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBCYXNlNjRVUkwucGFy
c2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAgICBkaXNwbGF5TmFt
ZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICBjaGFs
bGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAgICAgICAgICBwdWJL
ZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcgfV0sCisgICAgICAg
ICAgICAgICAgYXR0ZXN0YXRpb246ICJpbmRpcmVjdCIsCisgICAgICAgICAgICAgICAgdGltZW91
dDogMTAwCisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIG5hdmln
YXRvci5jcmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAg
ICAgICAgICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwsIGZhbHNlKTsKKyAgICAgICAgfSk7Cisg
ICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggaW5kaXJlY3QgYXR0
ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CiA8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3Mt
bG9jYWwuaHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IGY2NmMyNjc2ZDk3OWY2Y2IzOGZlOTkwMWQz
NjRkMDQzMWE5Zjk0MDQuLmZhZGFjMjExYTdjZTA3ZjI1YTVkMjBhYzllZWIyMjkwNmM3MGZlZjcg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1z
dWNjZXNzLWxvY2FsLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMiw0ICsyLDcgQEAKIFBBU1MgUHVi
bGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBtaW5pbXVtIG9wdGlvbnMgaW4gYSBt
b2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSB3aXRoIGF1dGhlbnRpY2F0b3JTZWxlY3Rpb24geyAncGxhdGZvcm0nIH0gaW4gYSBt
b2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAogUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tj
cmVhdGVdXSB3aXRoIG1hdGNoZWQgZXhjbHVkZSBjcmVkZW50aWFsIGlkcyBidXQgbm90IHRyYW5z
cG9ydHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG5vbmUgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIGxvY2Fs
IGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3
aXRoIGluZGlyZWN0IGF0dGVzdGF0aW9uIGluIGEgbW9jayBsb2NhbCBhdXRoZW50aWNhdG9yLiAK
K1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBkaXJlY3QgYXR0ZXN0
YXRpb24gaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1
Y2Nlc3MtbG9jYWwuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCmluZGV4
IDY5NDY1YjUzMzQ5YTk1MWVmY2RmMGU4MzQ4MWVmYzZhOTlhNTUzYTMuLmYxNTUwMDhjMjg0YmFk
OWZjYjRlYzRmNGY3OTNlZTJkMmZjYzc1OTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcmVhdGUtc3VjY2Vzcy1sb2NhbC5odHRwcy5odG1sCkBAIC0xNyw3ICsxNyw3
IEBACiAgICAgICAgICAgICB9CiAgICAgICAgIH0pOwogCi0gICAgZnVuY3Rpb24gY2hlY2tSZXN1
bHQoY3JlZGVudGlhbCkKKyAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChjcmVkZW50aWFsLCBpc05v
bmVBdHRlc3RhdGlvbiA9IHRydWUpCiAgICAgewogICAgICAgICAvLyBDaGVjayBrZXljaGFpbgog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKQEAgLTM0LDcgKzM0LDEwIEBACiAKICAg
ICAgICAgLy8gQ2hlY2sgYXR0ZXN0YXRpb24KICAgICAgICAgY29uc3QgYXR0ZXN0YXRpb25PYmpl
Y3QgPSBDQk9SLmRlY29kZShjcmVkZW50aWFsLnJlc3BvbnNlLmF0dGVzdGF0aW9uT2JqZWN0KTsK
LSAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQsICJBcHBsZSIpOwor
ICAgICAgICBpZiAoaXNOb25lQXR0ZXN0YXRpb24pCisgICAgICAgICAgICBhc3NlcnRfZXF1YWxz
KGF0dGVzdGF0aW9uT2JqZWN0LmZtdCwgIm5vbmUiKTsKKyAgICAgICAgZWxzZQorICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQsICJBcHBsZSIpOwogICAgICAg
ICAvLyBDaGVjayBhdXRoRGF0YQogICAgICAgICBjb25zdCBhdXRoRGF0YSA9IGRlY29kZUF1dGhE
YXRhKGF0dGVzdGF0aW9uT2JqZWN0LmF1dGhEYXRhKTsKICAgICAgICAgYXNzZXJ0X2VxdWFscyhi
eXRlc1RvSGV4U3RyaW5nKGF1dGhEYXRhLnJwSWRIYXNoKSwgIjQ5OTYwZGU1ODgwZThjNjg3NDM0
MTcwZjY0NzY2MDViOGZlNGFlYjlhMjg2MzJjNzk5NWNmM2JhODMxZDk3NjMiKTsKQEAgLTQzLDIy
ICs0NiwzMiBAQAogICAgICAgICBhc3NlcnRfZXF1YWxzKGJ5dGVzVG9IZXhTdHJpbmcoYXV0aERh
dGEuYWFndWlkKSwgIjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIik7CiAgICAgICAg
IGFzc2VydF9hcnJheV9lcXVhbHMoYXV0aERhdGEuY3JlZGVudGlhbElELCBCYXNlNjRVUkwucGFy
c2UodGVzdENyZWRlbnRpYWxJZEJhc2U2NCkpOwogICAgICAgICAvLyBDaGVjayBzZWxmIGF0dGVz
dGF0aW9uCi0gICAgICAgIGFzc2VydF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3RtdC5h
bGcsIC03KTsKICAgICAgICAgYXNzZXJ0X3RydWUoY2hlY2tQdWJsaWNLZXkoYXV0aERhdGEucHVi
bGljS2V5KSk7Ci0gICAgICAgIGFzc2VydF9lcXVhbHMoYXR0ZXN0YXRpb25PYmplY3QuYXR0U3Rt
dC54NWMubGVuZ3RoLCAyKTsKLSAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhdHRlc3RhdGlv
bk9iamVjdC5hdHRTdG10Lng1Y1swXSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RBdHRlc3RhdGlvbkNl
cnRpZmljYXRlQmFzZTY0KSk7Ci0gICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMoYXR0ZXN0YXRp
b25PYmplY3QuYXR0U3RtdC54NWNbMV0sIEJhc2U2NFVSTC5wYXJzZSh0ZXN0QXR0ZXN0YXRpb25J
c3N1aW5nQ0FDZXJ0aWZpY2F0ZUJhc2U2NCkpOwotCi0gICAgICAgIC8vIENoZWNrIHNpZ25hdHVy
ZQotICAgICAgICBsZXQgcHVibGljS2V5RGF0YSA9IG5ldyBVaW50OEFycmF5KDY1KTsKLSAgICAg
ICAgcHVibGljS2V5RGF0YVswXSA9IDB4MDQ7Ci0gICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1
dGhEYXRhLnB1YmxpY0tleVsnLTInXSwgMSk7Ci0gICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1
dGhEYXRhLnB1YmxpY0tleVsnLTMnXSwgMzMpOwotICAgICAgICByZXR1cm4gY3J5cHRvLnN1YnRs
ZS5pbXBvcnRLZXkoInJhdyIsIHB1YmxpY0tleURhdGEsIHsgbmFtZTogIkVDRFNBIiwgbmFtZWRD
dXJ2ZTogIlAtMjU2IiB9LCBmYWxzZSwgWyd2ZXJpZnknXSkudGhlbiggcHVibGljS2V5ID0+IHsK
LSAgICAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxlLnZlcmlmeSh7bmFtZTogIkVDRFNBIiwg
aGFzaDogIlNIQS0yNTYifSwgcHVibGljS2V5LCBleHRyYWN0UmF3U2lnbmF0dXJlKGF0dGVzdGF0
aW9uT2JqZWN0LmF0dFN0bXQuc2lnKSwgYXR0ZXN0YXRpb25PYmplY3QuYXV0aERhdGEpLnRoZW4o
IHZlcmlmaWVkID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfdHJ1ZSh2ZXJpZmllZCk7Cisg
ICAgICAgIGlmIChpc05vbmVBdHRlc3RhdGlvbikKKyAgICAgICAgICAgIGFzc2VydF9vYmplY3Rf
ZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQsIHsgfSk7CisgICAgICAgIGVsc2Ugewor
ICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10LmFsZywg
LTcpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10
Lng1Yy5sZW5ndGgsIDIpOworICAgICAgICAgICAgYXNzZXJ0X2FycmF5X2VxdWFscyhhdHRlc3Rh
dGlvbk9iamVjdC5hdHRTdG10Lng1Y1swXSwgQmFzZTY0VVJMLnBhcnNlKHRlc3RBdHRlc3RhdGlv
bkNlcnRpZmljYXRlQmFzZTY0KSk7CisgICAgICAgICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKGF0
dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQueDVjWzFdLCBCYXNlNjRVUkwucGFyc2UodGVzdEF0dGVz
dGF0aW9uSXNzdWluZ0NBQ2VydGlmaWNhdGVCYXNlNjQpKTsKKworICAgICAgICAgICAgLy8gQ2hl
Y2sgc2lnbmF0dXJlCisgICAgICAgICAgICBsZXQgcHVibGljS2V5RGF0YSA9IG5ldyBVaW50OEFy
cmF5KDY1KTsKKyAgICAgICAgICAgIHB1YmxpY0tleURhdGFbMF0gPSAweDA0OworICAgICAgICAg
ICAgcHVibGljS2V5RGF0YS5zZXQoYXV0aERhdGEucHVibGljS2V5WyctMiddLCAxKTsKKyAgICAg
ICAgICAgIHB1YmxpY0tleURhdGEuc2V0KGF1dGhEYXRhLnB1YmxpY0tleVsnLTMnXSwgMzMpOwor
ICAgICAgICAgICAgcmV0dXJuIGNyeXB0by5zdWJ0bGUuaW1wb3J0S2V5KCJyYXciLCBwdWJsaWNL
ZXlEYXRhLCB7CisgICAgICAgICAgICAgICAgbmFtZTogIkVDRFNBIiwKKyAgICAgICAgICAgICAg
ICBuYW1lZEN1cnZlOiAiUC0yNTYiCisgICAgICAgICAgICB9LCBmYWxzZSwgWyd2ZXJpZnknXSku
dGhlbihwdWJsaWNLZXkgPT4geworICAgICAgICAgICAgICAgIHJldHVybiBjcnlwdG8uc3VidGxl
LnZlcmlmeSh7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJFQ0RTQSIsCisgICAgICAgICAg
ICAgICAgICAgIGhhc2g6ICJTSEEtMjU2IgorICAgICAgICAgICAgICAgIH0sIHB1YmxpY0tleSwg
ZXh0cmFjdFJhd1NpZ25hdHVyZShhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10LnNpZyksIGF0dGVz
dGF0aW9uT2JqZWN0LmF1dGhEYXRhKS50aGVuKHZlcmlmaWVkID0+IHsKKyAgICAgICAgICAgICAg
ICAgICAgYXNzZXJ0X3RydWUodmVyaWZpZWQpOworICAgICAgICAgICAgICAgIH0pOwogICAgICAg
ICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9CiAgICAgfQogCiAgICAgcHJvbWlzZV90
ZXN0KHQgPT4gewpAQCAtMTMxLDQgKzE0NCw3MCBAQAogICAgICAgICAgICAgY2hlY2tSZXN1bHQo
Y3JlZGVudGlhbCk7CiAgICAgICAgIH0pOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3Mg
W1tjcmVhdGVdXSB3aXRoIG1hdGNoZWQgZXhjbHVkZSBjcmVkZW50aWFsIGlkcyBidXQgbm90IHRy
YW5zcG9ydHMgaW4gYSBtb2NrIGxvY2FsIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBwcm9taXNl
X3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAgICBwdWJs
aWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAgICBuYW1l
OiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIHVzZXI6
IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAgICAgICAg
ICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2NCksCisg
ICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAgICAgICAg
ICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNlKCJNVEl6
TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6ICJwdWJs
aWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjogIm5vbmUi
CisgICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5j
cmVkZW50aWFscy5jcmVhdGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAg
ICAgIGNoZWNrUmVzdWx0KGNyZWRlbnRpYWwpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGlj
S2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBub25lIGF0dGVzdGF0aW9uIGluIGEgbW9j
ayBsb2NhbCBhdXRoZW50aWNhdG9yLiIpOworCisgICAgcHJvbWlzZV90ZXN0KHQgPT4geworICAg
ICAgICBjb25zdCBvcHRpb25zID0geworICAgICAgICAgICAgcHVibGljS2V5OiB7CisgICAgICAg
ICAgICAgICAgcnA6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogImxvY2FsaG9zdCIsCisg
ICAgICAgICAgICAgICAgfSwKKyAgICAgICAgICAgICAgICB1c2VyOiB7CisgICAgICAgICAgICAg
ICAgICAgIG5hbWU6ICJKb2huIEFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgICAgIGlkOiBC
YXNlNjRVUkwucGFyc2UodGVzdFVzZXJoYW5kbGVCYXNlNjQpLAorICAgICAgICAgICAgICAgICAg
ICBkaXNwbGF5TmFtZTogIkFwcGxlc2VlZCIsCisgICAgICAgICAgICAgICAgfSwKKyAgICAgICAg
ICAgICAgICBjaGFsbGVuZ2U6IEJhc2U2NFVSTC5wYXJzZSgiTVRJek5EVTIiKSwKKyAgICAgICAg
ICAgICAgICBwdWJLZXlDcmVkUGFyYW1zOiBbeyB0eXBlOiAicHVibGljLWtleSIsIGFsZzogLTcg
fV0sCisgICAgICAgICAgICAgICAgYXR0ZXN0YXRpb246ICJpbmRpcmVjdCIKKyAgICAgICAgICAg
IH0KKyAgICAgICAgfTsKKworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNy
ZWF0ZShvcHRpb25zKS50aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgY2hlY2tSZXN1
bHQoY3JlZGVudGlhbCwgZmFsc2UpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBpbmRpcmVjdCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sg
bG9jYWwgYXV0aGVudGljYXRvci4iKTsKKworICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAg
ICAgY29uc3Qgb3B0aW9ucyA9IHsKKyAgICAgICAgICAgIHB1YmxpY0tleTogeworICAgICAgICAg
ICAgICAgIHJwOiB7CisgICAgICAgICAgICAgICAgICAgIG5hbWU6ICJsb2NhbGhvc3QiLAorICAg
ICAgICAgICAgICAgIH0sCisgICAgICAgICAgICAgICAgdXNlcjogeworICAgICAgICAgICAgICAg
ICAgICBuYW1lOiAiSm9obiBBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgICAgICBpZDogQmFz
ZTY0VVJMLnBhcnNlKHRlc3RVc2VyaGFuZGxlQmFzZTY0KSwKKyAgICAgICAgICAgICAgICAgICAg
ZGlzcGxheU5hbWU6ICJBcHBsZXNlZWQiLAorICAgICAgICAgICAgICAgIH0sCisgICAgICAgICAg
ICAgICAgY2hhbGxlbmdlOiBCYXNlNjRVUkwucGFyc2UoIk1USXpORFUyIiksCisgICAgICAgICAg
ICAgICAgcHViS2V5Q3JlZFBhcmFtczogW3sgdHlwZTogInB1YmxpYy1rZXkiLCBhbGc6IC03IH1d
LAorICAgICAgICAgICAgICAgIGF0dGVzdGF0aW9uOiAiZGlyZWN0IgorICAgICAgICAgICAgfQor
ICAgICAgICB9OworCisgICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRl
KG9wdGlvbnMpLnRoZW4oY3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICBjaGVja1Jlc3VsdChj
cmVkZW50aWFsLCBmYWxzZSk7CisgICAgICAgIH0pOworICAgIH0sICJQdWJsaWNLZXlDcmVkZW50
aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGRpcmVjdCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgbG9jYWwg
YXV0aGVudGljYXRvci4iKTsKIDwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLXUyZi5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRl
eCA1N2IyNjE3ZmE4ODdmNzEzMWMyYzBkOGQyMzlhODk3OWJiM2M0ZTVmLi5jODU4MzRkMGQ4MjI1
NDVmNTVjZTdiMjIyNGYzYmIxOGE0OTI5N2VhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRw
L3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0
dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLWV4cGVjdGVkLnR4dApA
QCAtMyw0ICszLDcgQEAgUEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRo
IG1pbmltdW0gb3B0aW9ucyBpbiBhIG1vY2sgdTJmIGF1dGhlbnQKIFBBU1MgUHVibGljS2V5Q3Jl
ZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0aCBleGNsdWRlQ3JlZGVudGlhbHMgaW4gYSBtb2NrIHUy
ZiBhdXRoZW50aWNhdG9yLiAKIFBBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0g
d2l0aCBleGNsdWRlQ3JlZGVudGlhbHMgaW4gYSBtb2NrIHUyZiBhdXRoZW50aWNhdG9yLiAyIAog
UEFTUyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHRlc3Qgb2YgdXNlciBw
cmVzZW5jZSBpbiBhIG1vY2sgdTJmIGF1dGhlbnRpY2F0b3IuIAorUEFTUyBQdWJsaWNLZXlDcmVk
ZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIG5vbmUgYXR0ZXN0YXRpb24gaW4gYSBtb2NrIHUyZiBh
dXRoZW50aWNhdG9yLiAKK1BBU1MgUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3JlYXRlXV0gd2l0
aCBpbmRpcmVjdCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgdTJmIGF1dGhlbnRpY2F0b3IuIAorUEFT
UyBQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIGRpcmVjdCBhdHRlc3RhdGlv
biBpbiBhIG1vY2sgdTJmIGF1dGhlbnRpY2F0b3IuIAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3Mt
dTJmLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3JlYXRlLXN1Y2Nlc3MtdTJmLmh0dHBzLmh0bWwKaW5kZXggZjUwZTVjYmJi
MzIwZTMxOWIwOTc1YWJiYTZiZGE4MmUwZDY1MjA2NS4uOGZhMWMzYzQ4ZmE5NWM5YzNiMmIwODg4
NjFjYjg4OWUwZmMxY2M2OSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1zdWNjZXNzLXUyZi5odHRwcy5odG1sCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cmVhdGUtc3VjY2Vzcy11MmYuaHR0cHMuaHRtbApAQCAtNSw3ICs1LDcgQEAKIDxzY3JpcHQgc3Jj
PSIuL3Jlc291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQgc3JjPSIuL3Jlc291cmNl
cy9jYm9yLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+Ci0gICAgZnVuY3Rpb24gY2hlY2tSZXN1bHQo
Y3JlZGVudGlhbCkKKyAgICBmdW5jdGlvbiBjaGVja1Jlc3VsdChjcmVkZW50aWFsLCBpc05vbmVB
dHRlc3RhdGlvbiA9IHRydWUpCiAgICAgewogICAgICAgICAvLyBDaGVjayByZXNwb25zZQogICAg
ICAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKEJhc2U2NFVSTC5wYXJzZShjcmVkZW50aWFsLmlkKSwg
QmFzZTY0VVJMLnBhcnNlKHRlc3RVMmZDcmVkZW50aWFsSWRCYXNlNjQpKTsKQEAgLTE2LDcgKzE2
LDEwIEBACiAKICAgICAgICAgLy8gQ2hlY2sgYXR0ZXN0YXRpb24KICAgICAgICAgY29uc3QgYXR0
ZXN0YXRpb25PYmplY3QgPSBDQk9SLmRlY29kZShjcmVkZW50aWFsLnJlc3BvbnNlLmF0dGVzdGF0
aW9uT2JqZWN0KTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQs
ICJmaWRvLXUyZiIpOworICAgICAgICBpZiAoaXNOb25lQXR0ZXN0YXRpb24pCisgICAgICAgICAg
ICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmZtdCwgIm5vbmUiKTsKKyAgICAgICAg
ZWxzZQorICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5mbXQsICJm
aWRvLXUyZiIpOwogICAgICAgICAvLyBDaGVjayBhdXRoRGF0YQogICAgICAgICBjb25zdCBhdXRo
RGF0YSA9IGRlY29kZUF1dGhEYXRhKGF0dGVzdGF0aW9uT2JqZWN0LmF1dGhEYXRhKTsKICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhieXRlc1RvSGV4U3RyaW5nKGF1dGhEYXRhLnJwSWRIYXNoKSwgIjQ5
OTYwZGU1ODgwZThjNjg3NDM0MTcwZjY0NzY2MDViOGZlNGFlYjlhMjg2MzJjNzk5NWNmM2JhODMx
ZDk3NjMiKTsKQEAgLTI2LDcgKzI5LDEwIEBACiAgICAgICAgIGFzc2VydF9hcnJheV9lcXVhbHMo
YXV0aERhdGEuY3JlZGVudGlhbElELCBCYXNlNjRVUkwucGFyc2UodGVzdFUyZkNyZWRlbnRpYWxJ
ZEJhc2U2NCkpOwogICAgICAgICAvLyBDaGVjayBmaWRvLXUyZiBhdHRlc3RhdGlvbgogICAgICAg
ICBhc3NlcnRfdHJ1ZShjaGVja1B1YmxpY0tleShhdXRoRGF0YS5wdWJsaWNLZXkpKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10Lng1Yy5sZW5ndGgsIDEp
OworICAgICAgICBpZiAoaXNOb25lQXR0ZXN0YXRpb24pCisgICAgICAgICAgICBhc3NlcnRfb2Jq
ZWN0X2VxdWFscyhhdHRlc3RhdGlvbk9iamVjdC5hdHRTdG10LCB7IH0pOworICAgICAgICBlbHNl
CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGF0dGVzdGF0aW9uT2JqZWN0LmF0dFN0bXQueDVj
Lmxlbmd0aCwgMSk7CiAgICAgfQogCiAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewpAQCAtMTI2LDQg
KzEzMiw3OSBAQAogICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCk7CiAgICAgICAg
IH0pOwogICAgIH0sICJQdWJsaWNLZXlDcmVkZW50aWFsJ3MgW1tjcmVhdGVdXSB3aXRoIHRlc3Qg
b2YgdXNlciBwcmVzZW5jZSBpbiBhIG1vY2sgdTJmIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBw
cm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
IHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAg
ICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2
NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6
ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjog
Im5vbmUiLAorICAgICAgICAgICAgICAgIHRpbWVvdXQ6IDEwMAorICAgICAgICAgICAgfQorICAg
ICAgICB9OworCisgICAgICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIuc2V0V2ViQXV0aGVudGljYXRpb25Nb2NrQ29uZmlndXJhdGlvbih7IGhpZDogeyBz
dGFnZTogInJlcXVlc3QiLCBzdWJTdGFnZTogIm1zZyIsIGVycm9yOiAic3VjY2VzcyIsIGlzVTJm
OiB0cnVlLCBwYXlsb2FkQmFzZTY0OiBbdGVzdFUyZlJlZ2lzdGVyUmVzcG9uc2VdIH0gfSk7Cisg
ICAgICAgIHJldHVybiBuYXZpZ2F0b3IuY3JlZGVudGlhbHMuY3JlYXRlKG9wdGlvbnMpLnRoZW4o
Y3JlZGVudGlhbCA9PiB7CisgICAgICAgICAgICBjaGVja1Jlc3VsdChjcmVkZW50aWFsKTsKKyAg
ICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRlbnRpYWwncyBbW2NyZWF0ZV1dIHdpdGgg
bm9uZSBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgdTJmIGF1dGhlbnRpY2F0b3IuIik7CisKKyAgICBw
cm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMgPSB7CisgICAgICAgICAg
ICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAgICAgICAgICAgICAgICAg
ICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAg
IHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4gQXBwbGVzZWVkIiwKKyAg
ICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0VXNlcmhhbmRsZUJhc2U2
NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBwbGVzZWVkIiwKKyAgICAg
ICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTogQmFzZTY0VVJMLnBhcnNl
KCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQYXJhbXM6IFt7IHR5cGU6
ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAgICBhdHRlc3RhdGlvbjog
ImluZGlyZWN0IiwKKyAgICAgICAgICAgICAgICB0aW1lb3V0OiAxMDAKKyAgICAgICAgICAgIH0K
KyAgICAgICAgfTsKKworICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgICAg
ICB0ZXN0UnVubmVyLnNldFdlYkF1dGhlbnRpY2F0aW9uTW9ja0NvbmZpZ3VyYXRpb24oeyBoaWQ6
IHsgc3RhZ2U6ICJyZXF1ZXN0Iiwgc3ViU3RhZ2U6ICJtc2ciLCBlcnJvcjogInN1Y2Nlc3MiLCBp
c1UyZjogdHJ1ZSwgcGF5bG9hZEJhc2U2NDogW3Rlc3RVMmZSZWdpc3RlclJlc3BvbnNlXSB9IH0p
OworICAgICAgICByZXR1cm4gbmF2aWdhdG9yLmNyZWRlbnRpYWxzLmNyZWF0ZShvcHRpb25zKS50
aGVuKGNyZWRlbnRpYWwgPT4geworICAgICAgICAgICAgY2hlY2tSZXN1bHQoY3JlZGVudGlhbCwg
ZmFsc2UpOworICAgICAgICB9KTsKKyAgICB9LCAiUHVibGljS2V5Q3JlZGVudGlhbCdzIFtbY3Jl
YXRlXV0gd2l0aCBpbmRpcmVjdCBhdHRlc3RhdGlvbiBpbiBhIG1vY2sgdTJmIGF1dGhlbnRpY2F0
b3IuIik7CisKKyAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgIGNvbnN0IG9wdGlvbnMg
PSB7CisgICAgICAgICAgICBwdWJsaWNLZXk6IHsKKyAgICAgICAgICAgICAgICBycDogeworICAg
ICAgICAgICAgICAgICAgICBuYW1lOiAibG9jYWxob3N0IiwKKyAgICAgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgICAgIHVzZXI6IHsKKyAgICAgICAgICAgICAgICAgICAgbmFtZTogIkpvaG4g
QXBwbGVzZWVkIiwKKyAgICAgICAgICAgICAgICAgICAgaWQ6IEJhc2U2NFVSTC5wYXJzZSh0ZXN0
VXNlcmhhbmRsZUJhc2U2NCksCisgICAgICAgICAgICAgICAgICAgIGRpc3BsYXlOYW1lOiAiQXBw
bGVzZWVkIiwKKyAgICAgICAgICAgICAgICB9LAorICAgICAgICAgICAgICAgIGNoYWxsZW5nZTog
QmFzZTY0VVJMLnBhcnNlKCJNVEl6TkRVMiIpLAorICAgICAgICAgICAgICAgIHB1YktleUNyZWRQ
YXJhbXM6IFt7IHR5cGU6ICJwdWJsaWMta2V5IiwgYWxnOiAtNyB9XSwKKyAgICAgICAgICAgICAg
ICBhdHRlc3RhdGlvbjogImRpcmVjdCIsCisgICAgICAgICAgICAgICAgdGltZW91dDogMTAwCisg
ICAgICAgICAgICB9CisgICAgICAgIH07CisKKyAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KQorICAgICAgICAgICAgdGVzdFJ1bm5lci5zZXRXZWJBdXRoZW50aWNhdGlvbk1vY2tDb25maWd1
cmF0aW9uKHsgaGlkOiB7IHN0YWdlOiAicmVxdWVzdCIsIHN1YlN0YWdlOiAibXNnIiwgZXJyb3I6
ICJzdWNjZXNzIiwgaXNVMmY6IHRydWUsIHBheWxvYWRCYXNlNjQ6IFt0ZXN0VTJmUmVnaXN0ZXJS
ZXNwb25zZV0gfSB9KTsKKyAgICAgICAgcmV0dXJuIG5hdmlnYXRvci5jcmVkZW50aWFscy5jcmVh
dGUob3B0aW9ucykudGhlbihjcmVkZW50aWFsID0+IHsKKyAgICAgICAgICAgIGNoZWNrUmVzdWx0
KGNyZWRlbnRpYWwsIGZhbHNlKTsKKyAgICAgICAgfSk7CisgICAgfSwgIlB1YmxpY0tleUNyZWRl
bnRpYWwncyBbW2NyZWF0ZV1dIHdpdGggZGlyZWN0IGF0dGVzdGF0aW9uIGluIGEgbW9jayB1MmYg
YXV0aGVudGljYXRvci4iKTsKIDwvc2NyaXB0Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>