<?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>227087</bug_id>
          
          <creation_ts>2021-06-16 12:24:49 -0700</creation_ts>
          <short_desc>Enable release logging in the network process for ephemeral sessions</short_desc>
          <delta_ts>2021-06-16 15:36:15 -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>WebKit2</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cgarcia</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ggaren</cc>
    
    <cc>kkinnunen</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1770332</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-16 12:24:49 -0700</bug_when>
    <thetext>Enable release logging in the network process for ephemeral sessions, to facilitate debugging. No domains or other sensitive is logged by WebKit.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770335</commentid>
    <comment_count>1</comment_count>
      <attachid>431586</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-06-16 12:36:11 -0700</bug_when>
    <thetext>Created attachment 431586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770350</commentid>
    <comment_count>2</comment_count>
      <attachid>431586</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2021-06-16 13:10:49 -0700</bug_when>
    <thetext>Comment on attachment 431586
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770366</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-16 13:44:10 -0700</bug_when>
    <thetext>Committed r278953 (238882@main): &lt;https://commits.webkit.org/238882@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431586.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1770368</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-06-16 13:45:29 -0700</bug_when>
    <thetext>&lt;rdar://problem/79414106&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431586</attachid>
            <date>2021-06-16 12:36:11 -0700</date>
            <delta_ts>2021-06-16 15:36:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227087-20210616123610.patch</filename>
            <type>text/plain</type>
            <size>116701</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4OTQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGY4YzM5Zjk2NjU0NzI2ZmYw
OWJhNzI5NmU1ZmRmNDVhZjYxOWI0NjUuLjMyYzZjN2NhYjc1ZDlhMjk2N2E1NmU1YjQxNDk3NWUx
YzYwOGJjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI5IEBACisyMDIxLTA2LTE2ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CisKKyAgICAgICAgRW5hYmxlIHJlbGVhc2UgbG9nZ2lu
ZyBpbiB0aGUgbmV0d29yayBwcm9jZXNzIGZvciBlcGhlbWVyYWwgc2Vzc2lvbnMKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzA4NworCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEVuYWJsZSByZWxlYXNlIGxv
Z2dpbmcgaW4gdGhlIG5ldHdvcmsgcHJvY2VzcyBmb3IgZXBoZW1lcmFsIHNlc3Npb25zLCB0byBm
YWNpbGl0YXRlIGRlYnVnZ2luZy4gTm8gZG9tYWlucworICAgICAgICBvciBvdGhlciBzZW5zaXRp
dmUgaW5mb3JtYXRpb24gaXMgbG9nZ2VkIGJ5IFdlYktpdC4KKworICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2Fk
OjpjYW5jZWwpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEpOgor
ICAgICAgICAoV2ViS2l0OjpEb3dubG9hZDo6ZGlkRmluaXNoKToKKyAgICAgICAgKFdlYktpdDo6
RG93bmxvYWQ6OmRpZEZhaWwpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9E
b3dubG9hZC5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1v
bml0b3IuY3BwOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9hZE1vbml0b3I6OmFwcGxpY2F0aW9u
V2lsbEVudGVyRm9yZWdyb3VuZCk6CisgICAgICAgIChXZWJLaXQ6OkRvd25sb2FkTW9uaXRvcjo6
YXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQpOgorICAgICAgICAoV2ViS2l0OjpEb3dubG9h
ZE1vbml0b3I6OnRpbWVyRmlyZWQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtD
T1JTUHJlZmxpZ2h0Q2hlY2tlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDT1JTUHJl
ZmxpZ2h0Q2hlY2tlcjo6c3RhcnRQcmVmbGlnaHQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
Q09SU1ByZWZsaWdodENoZWNrZXI6OndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRSZWNlaXZlQ2hhbGxl
bmdlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRS
ZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ09SU1ByZWZsaWdodENo
ZWNrZXI6OmRpZFJlY2VpdmVEYXRhKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyOjpkaWRDb21wbGV0ZVdpdGhFcnJvcik6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6d2FzQmxvY2tlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6Y2Fubm90U2hvd1VSTCk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rp
b25zKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNz
OjpoYXNVcGxvYWRTdGF0ZUNoYW5nZWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzczo6cmVzb2x2ZUJsb2JSZWZlcmVuY2VzKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNjaGVkdWxlUmVzb3VyY2VMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnBlcmZv
cm1TeW5jaHJvbm91c0xvYWQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6bG9hZFBpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6cmVtb3ZlTG9hZElkZW50aWZpZXIpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cHJlY29ubmVjdFRvKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNlcnZlclRvQ29udGV4dENvbm5l
Y3Rpb25Ob0xvbmdlck5lZWRlZCk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya0xv
YWRDaGVja2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0xvYWRDaGVja2VyOjpjb250
aW51ZUNoZWNraW5nUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtMb2FkQ2hlY2tl
cjo6Y2hlY2tDT1JTUmVxdWVzdFdpdGhQcmVmbGlnaHQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6c3RhcnQpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VM
b2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXApOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnZlcnRUb0Rvd25sb2FkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9ydCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlQnVmZmVyKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hMb2FkaW5nKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGYWlsTG9hZGluZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6d2lsbFNlbmRS
ZWRpcmVjdGVkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6Y29udGludWVXaWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRGaW5pc2hXaXRoUmVkaXJlY3RSZXNwb25zZSk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzdGFydE5ldHdvcmtMb2Fk
KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxT
ZW5kUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2UpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2FjaGVFbnRyeSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZFJlc3VsdEZvckNh
Y2hlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnZhbGlk
YXRlQ2FjaGVFbnRyeSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6
ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dTbG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydFdpdGhTZXJ2aWNlV29y
a2VyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Jlc291cmNlTG9hZGVyOjpzZXJ2aWNlV29y
a2VyRGlkTm90SGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3Vy
Y2VMb2FkZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9QaW5nTG9hZC5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OlBpbmdMb2FkOjpsb2FkUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlBp
bmdMb2FkOjpkaWRSZWNlaXZlQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6
OmRpZFJlY2VpdmVSZXNwb25zZSk6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjpkaWRSZWNl
aXZlRGF0YSk6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjpkaWRDb21wbGV0ZVdpdGhFcnJv
cik6CisgICAgICAgIChXZWJLaXQ6OlBpbmdMb2FkOjp3YXNCbG9ja2VkKToKKyAgICAgICAgKFdl
YktpdDo6UGluZ0xvYWQ6OmNhbm5vdFNob3dVUkwpOgorICAgICAgICAoV2ViS2l0OjpQaW5nTG9h
ZDo6d2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zKToKKyAgICAgICAgKFdlYktpdDo6UGluZ0xvYWQ6
OnRpbWVvdXRUaW1lckZpcmVkKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKToKKyAgICAgICAgKFdlYktp
dDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6flNlcnZpY2VXb3JrZXJGZXRjaFRhc2spOgorICAg
ICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzdGFydCk6CisgICAgICAgIChX
ZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNvbnRleHRDbG9zZWQpOgorICAgICAgICAo
V2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzdGFydEZldGNoKToKKyAgICAgICAgKFdl
YktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlZGlyZWN0UmVzcG9uc2Up
OgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlUmVz
cG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGaW5p
c2gpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkTm90SGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6Y2Fubm90SGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6U2VydmljZVdvcmtlckZldGNoVGFzazo6Y2FuY2VsRnJvbUNsaWVu
dCk6CisgICAgICAgIChXZWJLaXQ6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNvbnRpbnVlRGlk
UmVjZWl2ZUZldGNoUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpjb250aW51ZUZldGNoVGFza1dpdGgpOgorICAgICAgICAoV2ViS2l0OjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrOjp0aW1lb3V0VGltZXJGaXJlZCk6CisgICAgICAgIChXZWJLaXQ6OlNl
cnZpY2VXb3JrZXJGZXRjaFRhc2s6OnNvZnRVcGRhdGVJZk5lZWRlZCk6CisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNyZWF0ZUZldGNoVGFzayk6Cisg
ICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVKb2JJblNlcnZlcik6
CisgICAgICAgIChXZWJLaXQ6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2NoZWR1bGVVbnJlZ2lz
dGVySm9iSW5TZXJ2ZXIpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NhY2hlL0NhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uOjpvcGVuKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbjo6cmVtb3ZlKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbjo6Y2FjaGVzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5n
aW5lQ29ubmVjdGlvbjo6cmV0cmlldmVSZWNvcmRzKToKKyAgICAgICAgKFdlYktpdDo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6ZGVsZXRlTWF0Y2hpbmdSZWNvcmRzKToKKyAgICAgICAg
KFdlYktpdDo6Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cHV0UmVjb3Jkcyk6CisgICAg
ICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OnJlZmVyZW5jZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkNhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OmRlcmVmZXJlbmNl
KToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya01ETlNSZWdpc3Rlci5j
cHA6CisgICAgICAgIChXZWJLaXQ6OnJlZ2lzdGVyTUROU05hbWVDYWxsYmFjayk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRvci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtSVENNb25pdG9yOjpzdGFydFVwZGF0aW5nSWZOZWVkZWQpOgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUlRDTW9uaXRvcjo6c3RvcFVwZGF0aW5nKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ01vbml0b3I6Om9uTmV0d29ya3NDaGFuZ2VkKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1JUQ1Byb3ZpZGVyOjpOZXR3b3JrUlRDUHJvdmlkZXIpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1JUQ1Byb3ZpZGVyOjpjcmVhdGVTb2NrZXQpOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaDoKKwogMjAyMS0wNi0xNiAgQWxleCBDaHJp
c3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIENsZWFuIHVwIFdl
YkNvb2tpZU1hbmFnZXJQcm94eQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Eb3dubG9hZHMvRG93bmxvYWQuY3BwCmluZGV4IDEyMGRkOGVhZjg2MmVmMjE0MDNlM2M0NDlh
ZjM3MWEzZDA2YWM5MWIuLjY0MmJmMWI1YWRmY2I3NjFjN2RlNjFjZThmN2ViZDFlNWMxOGM3NTQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25s
b2FkLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3du
bG9hZC5jcHAKQEAgLTQ0LDcgKzQ0LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrRGF0YVRhc2tDb2Nv
YS5oIgogI2VuZGlmCiAKLSNkZWZpbmUgRE9XTkxPQURfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChm
bXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIE5ldHdv
cmssICIlcCAtIERvd25sb2FkOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUg
RE9XTkxPQURfUkVMRUFTRV9MT0coZm10LCAuLi4pIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAt
IERvd25sb2FkOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBEb3du
bG9hZDo6Y2FuY2VsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgSVBDOjpEYXRhUmVmZXJl
bmNlJik+JiYgY29tcGwKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdW1lRGF0YSk7CiAg
ICAgICAgIGlmICghd2Vha1RoaXMgfHwgbV9pZ25vcmVEaWRGYWlsQ2FsbGJhY2sgPT0gSWdub3Jl
RGlkRmFpbENhbGxiYWNrOjpObykKICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgRE9XTkxP
QURfUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkQ2FuY2VsOiAoaWQgPSAlIiBQUkl1NjQgIiki
LCBkb3dubG9hZElEKCkudG9VSW50NjQoKSk7CisgICAgICAgIERPV05MT0FEX1JFTEVBU0VfTE9H
KCJkaWRDYW5jZWw6IChpZCA9ICUiIFBSSXU2NCAiKSIsIGRvd25sb2FkSUQoKS50b1VJbnQ2NCgp
KTsKICAgICAgICAgaWYgKGF1dG8gZXh0ZW5zaW9uID0gc3RkOjpleGNoYW5nZShtX3NhbmRib3hF
eHRlbnNpb24sIG51bGxwdHIpKQogICAgICAgICAgICAgZXh0ZW5zaW9uLT5yZXZva2UoKTsKICAg
ICAgICAgbV9kb3dubG9hZE1hbmFnZXIuZG93bmxvYWRGaW5pc2hlZCgqdGhpcyk7CkBAIC0xMzAs
NyArMTMwLDcgQEAgdm9pZCBEb3dubG9hZDo6ZGlkQ3JlYXRlRGVzdGluYXRpb24oY29uc3QgU3Ry
aW5nJiBwYXRoKQogdm9pZCBEb3dubG9hZDo6ZGlkUmVjZWl2ZURhdGEodWludDY0X3QgYnl0ZXNX
cml0dGVuLCB1aW50NjRfdCB0b3RhbEJ5dGVzV3JpdHRlbiwgdWludDY0X3QgdG90YWxCeXRlc0V4
cGVjdGVkVG9Xcml0ZSkKIHsKICAgICBpZiAoIW1faGFzUmVjZWl2ZWREYXRhKSB7Ci0gICAgICAg
IERPV05MT0FEX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVEYXRhOiBTdGFydGVk
IHJlY2VpdmluZyBkYXRhIChpZCA9ICUiIFBSSXU2NCAiKSIsIGRvd25sb2FkSUQoKS50b1VJbnQ2
NCgpKTsKKyAgICAgICAgRE9XTkxPQURfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVEYXRhOiBTdGFy
dGVkIHJlY2VpdmluZyBkYXRhIChpZCA9ICUiIFBSSXU2NCAiKSIsIGRvd25sb2FkSUQoKS50b1VJ
bnQ2NCgpKTsKICAgICAgICAgbV9oYXNSZWNlaXZlZERhdGEgPSB0cnVlOwogICAgIH0KICAgICAK
QEAgLTE0MSw3ICsxNDEsNyBAQCB2b2lkIERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSh1aW50NjRf
dCBieXRlc1dyaXR0ZW4sIHVpbnQ2NF90IHRvdGFsQnl0ZXNXcml0dGVuLAogCiB2b2lkIERvd25s
b2FkOjpkaWRGaW5pc2goKQogewotICAgIERPV05MT0FEX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImRpZEZpbmlzaDogKGlkID0gJSIgUFJJdTY0ICIpIiwgZG93bmxvYWRJRCgpLnRvVUludDY0KCkp
OworICAgIERPV05MT0FEX1JFTEVBU0VfTE9HKCJkaWRGaW5pc2g6IChpZCA9ICUiIFBSSXU2NCAi
KSIsIGRvd25sb2FkSUQoKS50b1VJbnQ2NCgpKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OkRvd25s
b2FkUHJveHk6OkRpZEZpbmlzaCgpKTsKIApAQCAtMTU4LDcgKzE1OCw3IEBAIHZvaWQgRG93bmxv
YWQ6OmRpZEZhaWwoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IElQQzo6RGF0YVJl
ZmVyZW5jZSYgcmVzCiAgICAgaWYgKG1faWdub3JlRGlkRmFpbENhbGxiYWNrID09IElnbm9yZURp
ZEZhaWxDYWxsYmFjazo6WWVzKQogICAgICAgICByZXR1cm47CiAKLSAgICBET1dOTE9BRF9SRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJkaWRGYWlsOiAoaWQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0
ID0gJWQsIGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVyckNvZGUgPSAlZCkiLAorICAgIERPV05MT0FE
X1JFTEVBU0VfTE9HKCJkaWRGYWlsOiAoaWQgPSAlIiBQUkl1NjQgIiwgaXNUaW1lb3V0ID0gJWQs
IGlzQ2FuY2VsbGF0aW9uID0gJWQsIGVyckNvZGUgPSAlZCkiLAogICAgICAgICBkb3dubG9hZElE
KCkudG9VSW50NjQoKSwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCks
IGVycm9yLmVycm9yQ29kZSgpKTsKIAogICAgIHNlbmQoTWVzc2FnZXM6OkRvd25sb2FkUHJveHk6
OkRpZEZhaWwoZXJyb3IsIHJlc3VtZURhdGEpKTsKQEAgLTE4MCwxNSArMTgwLDYgQEAgdWludDY0
X3QgRG93bmxvYWQ6Om1lc3NhZ2VTZW5kZXJEZXN0aW5hdGlvbklEKCkgY29uc3QKICAgICByZXR1
cm4gbV9kb3dubG9hZElELnRvVUludDY0KCk7CiB9CiAKLWJvb2wgRG93bmxvYWQ6OmlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0Ci17Ci0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgcmV0
dXJuIG1fc2Vzc2lvbklELmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwotI2Vsc2UKLSAgICBy
ZXR1cm4gZmFsc2U7Ci0jZW5kaWYKLX0KLQogI2lmICFQTEFURk9STShDT0NPQSkKIHZvaWQgRG93
bmxvYWQ6OnBsYXRmb3JtQ2FuY2VsTmV0d29ya0xvYWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChj
b25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKQEAgLTIw
Miw0ICsxOTMsNCBAQCB2b2lkIERvd25sb2FkOjpwbGF0Zm9ybURlc3Ryb3lEb3dubG9hZCgpCiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jdW5kZWYgRE9XTkxPQURfUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRAorI3VuZGVmIERPV05MT0FEX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZC5oIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxvYWQuaAppbmRleCA5M2YwM2E4MjU1ZjFh
ZTcxNzM4M2MwMDI5MGEyNGY5MWNhN2M2NTgxLi40NzNkY2JjMWI5ZDlkNDRmYzViMzNjMTA4NWE4
NzI1OGM5MjA1MTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rv
d25sb2Fkcy9Eb3dubG9hZC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93
bmxvYWRzL0Rvd25sb2FkLmgKQEAgLTkwLDggKzkwLDYgQEAgcHVibGljOgogICAgIHZvaWQgZGlk
RmluaXNoKCk7CiAgICAgdm9pZCBkaWRGYWlsKGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
LCBjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIHJlc3VtZURhdGEpOwogCi0gICAgYm9vbCBpc0Fs
d2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdDsKLQogICAgIHZvaWQgYXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmQoKSB7IG1fbW9uaXRvci5hcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZCgpOyB9CiAgICAgdm9pZCBhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKSB7IG1fbW9u
aXRvci5hcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKTsgfQogICAgIERvd25sb2FkTWFu
YWdlciYgbWFuYWdlcigpIGNvbnN0IHsgcmV0dXJuIG1fZG93bmxvYWRNYW5hZ2VyOyB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1v
bml0b3IuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Eb3dubG9hZHMvRG93bmxv
YWRNb25pdG9yLmNwcAppbmRleCA5MDhmZDU4MGUyZjZjMzRlZDJhOWQxZTU3YWY5YzMyOGU0MThm
ZmM2Li5mYTdlYzI3N2QxMmQ0MDdjZjhkNDdhYWMyZmYzYzMyMjBiMmFlY2NkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0Rvd25sb2Fkcy9Eb3dubG9hZE1vbml0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvRG93bmxvYWRzL0Rvd25sb2Fk
TW9uaXRvci5jcHAKQEAgLTI5LDggKzI5LDcgQEAKICNpbmNsdWRlICJEb3dubG9hZC5oIgogI2lu
Y2x1ZGUgIkxvZ2dpbmcuaCIKIAotI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKLSNkZWZp
bmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9kb3du
bG9hZC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywgIiVwIC0gRG93bmxvYWRN
b25pdG9yOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgRE9XTkxPQURfTU9O
SVRPUl9SRUxFQVNFX0xPRyhmbXQsIC4uLikgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gRG93
bmxvYWRNb25pdG9yOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdl
YktpdCB7CiAKQEAgLTkzLDE0ICs5MiwxNCBAQCB2b2lkIERvd25sb2FkTW9uaXRvcjo6ZG93bmxv
YWRSZWNlaXZlZEJ5dGVzKHVpbnQ2NF90IGJ5dGVzUmVjZWl2ZWQpCiAKIHZvaWQgRG93bmxvYWRN
b25pdG9yOjphcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQoKQogewotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImFwcGxpY2F0aW9uV2lsbEVudGVyRm9yZWdyb3VuZCAoaWQgPSAlIiBQ
Ukl1NjQgIikiLCBtX2Rvd25sb2FkLmRvd25sb2FkSUQoKS50b1VJbnQ2NCgpKTsKKyAgICBET1dO
TE9BRF9NT05JVE9SX1JFTEVBU0VfTE9HKCJhcHBsaWNhdGlvbldpbGxFbnRlckZvcmVncm91bmQg
KGlkID0gJSIgUFJJdTY0ICIpIiwgbV9kb3dubG9hZC5kb3dubG9hZElEKCkudG9VSW50NjQoKSk7
CiAgICAgbV90aW1lci5zdG9wKCk7CiAgICAgbV9pbnRlcnZhbCA9IDA7CiB9CiAKIHZvaWQgRG93
bmxvYWRNb25pdG9yOjphcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZCgpCiB7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQgKGlkID0g
JSIgUFJJdTY0ICIpIiwgbV9kb3dubG9hZC5kb3dubG9hZElEKCkudG9VSW50NjQoKSk7CisgICAg
RE9XTkxPQURfTU9OSVRPUl9SRUxFQVNFX0xPRygiYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91
bmQgKGlkID0gJSIgUFJJdTY0ICIpIiwgbV9kb3dubG9hZC5kb3dubG9hZElEKCkudG9VSW50NjQo
KSk7CiAgICAgQVNTRVJUKCFtX3RpbWVyLmlzQWN0aXZlKCkpOwogICAgIEFTU0VSVCghbV9pbnRl
cnZhbCk7CiAgICAgbV90aW1lci5zdGFydE9uZVNob3QodGhyb3VnaHB1dEludGVydmFsc1swXS50
aW1lIC8gdGVzdFNwZWVkTXVsdGlwbGllcigpKTsKQEAgLTExNywxMyArMTE2LDEzIEBAIHZvaWQg
RG93bmxvYWRNb25pdG9yOjp0aW1lckZpcmVkKCkKIAogICAgIFJFTEVBU0VfQVNTRVJUKG1faW50
ZXJ2YWwgPCBXVEZfQVJSQVlfTEVOR1RIKHRocm91Z2hwdXRJbnRlcnZhbHMpKTsKICAgICBpZiAo
bWVhc3VyZWRUaHJvdWdocHV0UmF0ZSgpIDwgdGhyb3VnaHB1dEludGVydmFsc1ttX2ludGVydmFs
XS5ieXRlc1BlclNlY29uZCkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ0aW1l
ckZpcmVkOiBjYW5jZWxsaW5nIGRvd25sb2FkIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1fZG93bmxv
YWQuZG93bmxvYWRJRCgpLnRvVUludDY0KCkpOworICAgICAgICBET1dOTE9BRF9NT05JVE9SX1JF
TEVBU0VfTE9HKCJ0aW1lckZpcmVkOiBjYW5jZWxsaW5nIGRvd25sb2FkIChpZCA9ICUiIFBSSXU2
NCAiKSIsIG1fZG93bmxvYWQuZG93bmxvYWRJRCgpLnRvVUludDY0KCkpOwogICAgICAgICBtX2Rv
d25sb2FkLmNhbmNlbChbXShhdXRvJikgeyB9LCBEb3dubG9hZDo6SWdub3JlRGlkRmFpbENhbGxi
YWNrOjpObyk7CiAgICAgfSBlbHNlIGlmIChtX2ludGVydmFsICsgMSA8IFdURl9BUlJBWV9MRU5H
VEgodGhyb3VnaHB1dEludGVydmFscykpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgidGltZXJGaXJlZDogc3VmZmljaWVudCB0aHJvdWdocHV0IHJhdGUgKGlkID0gJSIgUFJJdTY0
ICIpIiwgbV9kb3dubG9hZC5kb3dubG9hZElEKCkudG9VSW50NjQoKSk7CisgICAgICAgIERPV05M
T0FEX01PTklUT1JfUkVMRUFTRV9MT0coInRpbWVyRmlyZWQ6IHN1ZmZpY2llbnQgdGhyb3VnaHB1
dCByYXRlIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1fZG93bmxvYWQuZG93bmxvYWRJRCgpLnRvVUlu
dDY0KCkpOwogICAgICAgICBtX3RpbWVyLnN0YXJ0T25lU2hvdCh0aW1lVW50aWxOZXh0SW50ZXJ2
YWwobV9pbnRlcnZhbCsrKSAvIHRlc3RTcGVlZE11bHRpcGxpZXIoKSk7CiAgICAgfSBlbHNlCi0g
ICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInRpbWVyRmlyZWQ6IERvd25sb2FkIHJlYWNo
ZWQgdGhyZXNob2xkIHRvIG5vdCBiZSB0ZXJtaW5hdGVkIChpZCA9ICUiIFBSSXU2NCAiKSIsIG1f
ZG93bmxvYWQuZG93bmxvYWRJRCgpLnRvVUludDY0KCkpOworICAgICAgICBET1dOTE9BRF9NT05J
VE9SX1JFTEVBU0VfTE9HKCJ0aW1lckZpcmVkOiBEb3dubG9hZCByZWFjaGVkIHRocmVzaG9sZCB0
byBub3QgYmUgdGVybWluYXRlZCAoaWQgPSAlIiBQUkl1NjQgIikiLCBtX2Rvd25sb2FkLmRvd25s
b2FkSUQoKS50b1VJbnQ2NCgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hl
Y2tlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtDT1JTUHJlZmxp
Z2h0Q2hlY2tlci5jcHAKaW5kZXggYWU1ZjQwZmEwNTg1OWNmMjJiMmViZDU2YjRhYTNmZjA1NTNh
MDQ4MS4uZGE5MTQ5Y2VkNzhiZWY0YTVjNzM1ODk4ZjFiYTcyMWQxY2Y1MDRmZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ09SU1ByZWZsaWdodENoZWNr
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0NPUlNQcmVm
bGlnaHRDaGVja2VyLmNwcApAQCAtMzUsNyArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvQ3Jv
c3NPcmlnaW5BY2Nlc3NDb250cm9sLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdp
bi5oPgogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0Vf
TE9HX0lGKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCks
IE5ldHdvcmssICIlcCAtIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6IiBmbXQsIHRoaXMs
ICMjX19WQV9BUkdTX18pCisjZGVmaW5lIENPUlNfQ0hFQ0tFUl9SRUxFQVNFX0xPRyhmbXQsIC4u
LikgUkVMRUFTRV9MT0coTmV0d29yaywgIiVwIC0gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
OjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKQEAg
LTYzLDcgKzYzLDcgQEAgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp+TmV0d29ya0NPUlNQ
cmVmbGlnaHRDaGVja2VyKCkKIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OnN0
YXJ0UHJlZmxpZ2h0KCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydFByZWZs
aWdodCIpOworICAgIENPUlNfQ0hFQ0tFUl9SRUxFQVNFX0xPRygic3RhcnRQcmVmbGlnaHQiKTsK
IAogICAgIE5ldHdvcmtMb2FkUGFyYW1ldGVycyBsb2FkUGFyYW1ldGVyczsKICAgICBsb2FkUGFy
YW1ldGVycy5yZXF1ZXN0ID0gY3JlYXRlQWNjZXNzQ29udHJvbFByZWZsaWdodFJlcXVlc3QobV9w
YXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVzdCwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiwgbV9w
YXJhbWV0ZXJzLnJlZmVycmVyKTsKQEAgLTg1LDE0ICs4NSwxNCBAQCB2b2lkIE5ldHdvcmtDT1JT
UHJlZmxpZ2h0Q2hlY2tlcjo6d2lsbFBlcmZvcm1IVFRQUmVkaXJlY3Rpb24oV2ViQ29yZTo6UmVz
b3VyY2VSZQogICAgIGlmIChtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcykK
ICAgICAgICAgbV9sb2FkSW5mb3JtYXRpb24ucmVzcG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsK
IAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9u
Iik7CisgICAgQ09SU19DSEVDS0VSX1JFTEVBU0VfTE9HKCJ3aWxsUGVyZm9ybUhUVFBSZWRpcmVj
dGlvbiIpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAgICAgbV9jb21wbGV0aW9uQ2Fs
bGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIG1fcGFy
YW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksICJQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90
IHN1Y2Nlc3NmdWwiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CiB9
CiAKIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRSZWNlaXZlQ2hhbGxlbmdl
KFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBOZWdvdGlhdGVk
TGVnYWN5VExTIG5lZ290aWF0ZWRMZWdhY3lUTFMsIENoYWxsZW5nZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZUNoYWxsZW5nZSwgYXV0aGVudGljYXRpb24gc2NoZW1lOiAldSIsIGNoYWxsZW5nZS5w
cm90ZWN0aW9uU3BhY2UoKS5hdXRoZW50aWNhdGlvblNjaGVtZSgpKTsKKyAgICBDT1JTX0NIRUNL
RVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVDaGFsbGVuZ2UsIGF1dGhlbnRpY2F0aW9uIHNjaGVt
ZTogJXUiLCBjaGFsbGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUo
KSk7CiAKICAgICBhdXRvIHNjaGVtZSA9IGNoYWxsZW5nZS5wcm90ZWN0aW9uU3BhY2UoKS5hdXRo
ZW50aWNhdGlvblNjaGVtZSgpOwogICAgIGJvb2wgaXNUTFNIYW5kc2hha2UgPSBzY2hlbWUgPT0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25S
ZXF1ZXN0ZWQKQEAgLTEwOCw3ICsxMDgsNyBAQCB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hl
Y2tlcjo6ZGlkUmVjZWl2ZUNoYWxsZW5nZShXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYQogCiB2
b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFdlYkNv
cmU6OlJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSwgTmVnb3RpYXRlZExlZ2FjeVRMUywgUmVz
cG9uc2VDb21wbGV0aW9uSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZXNwb25zZSIpOworICAgIENPUlNfQ0hFQ0tF
Ul9SRUxFQVNFX0xPRygiZGlkUmVjZWl2ZVJlc3BvbnNlIik7CiAKICAgICBpZiAobV9zaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpCiAgICAgICAgIG1fbG9hZEluZm9ybWF0aW9u
LnJlc3BvbnNlID0gcmVzcG9uc2U7CkBAIC0xMTksNyArMTE5LDcgQEAgdm9pZCBOZXR3b3JrQ09S
U1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVSZXNwb25zZShXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYKIAogdm9pZCBOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI6OmRpZFJlY2VpdmVE
YXRhKFJlZjxXZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgiZGlkUmVjZWl2ZURhdGEiKTsKKyAgICBDT1JTX0NIRUNLRVJfUkVMRUFTRV9MT0co
ImRpZFJlY2VpdmVEYXRhIik7CiB9CiAKIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2Vy
OjpkaWRDb21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBwcmVm
bGlnaHRFcnJvciwgY29uc3QgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNzJiBtZXRyaWNzKQpA
QCAtMTI4LDcgKzEyOCw3IEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRD
b21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVyCiAgICAgICAgIG1fbG9h
ZEluZm9ybWF0aW9uLm1ldHJpY3MgPSBtZXRyaWNzOwogCiAgICAgaWYgKCFwcmVmbGlnaHRFcnJv
ci5pc051bGwoKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRDb21wbGV0
ZVdpdGhFcnJvciIpOworICAgICAgICBDT1JTX0NIRUNLRVJfUkVMRUFTRV9MT0coImRpZENvbXBs
ZXRlV2l0aEVycm9yIik7CiAgICAgICAgIGF1dG8gZXJyb3IgPSBwcmVmbGlnaHRFcnJvcjsKICAg
ICAgICAgaWYgKGVycm9yLmlzTnVsbCgpIHx8IGVycm9yLmlzR2VuZXJhbCgpKQogICAgICAgICAg
ICAgZXJyb3Iuc2V0VHlwZShSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sKTsKQEAg
LTEzNywxMSArMTM3LDExIEBAIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjpkaWRD
b21wbGV0ZVdpdGhFcnJvcihjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVyCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRDb21wbGV0ZSBodHRw
X3N0YXR1c19jb2RlPSVkIiwgbV9yZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpKTsKKyAgICBDT1JT
X0NIRUNLRVJfUkVMRUFTRV9MT0coImRpZENvbXBsZXRlIGh0dHBfc3RhdHVzX2NvZGU9JWQiLCBt
X3Jlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogCiAgICAgYXV0byByZXN1bHQgPSB2YWxpZGF0
ZVByZWZsaWdodFJlc3BvbnNlKG1fcGFyYW1ldGVycy5zZXNzaW9uSUQsIG1fcGFyYW1ldGVycy5v
cmlnaW5hbFJlcXVlc3QsIG1fcmVzcG9uc2UsIG1fcGFyYW1ldGVycy5zdG9yZWRDcmVkZW50aWFs
c1BvbGljeSwgbV9wYXJhbWV0ZXJzLnNvdXJjZU9yaWdpbiwgbV9uZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuZ2V0KCkpOwogICAgIGlmICghcmVzdWx0KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoImRpZENvbXBsZXRlLCBBY2Nlc3NDb250cm9sIGVycm9yOiAlcyIsIHJlc3VsdC5lcnJv
cigpLnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBDT1JTX0NIRUNLRVJfUkVMRUFTRV9MT0coImRp
ZENvbXBsZXRlLCBBY2Nlc3NDb250cm9sIGVycm9yOiAlcyIsIHJlc3VsdC5lcnJvcigpLnV0Zjgo
KS5kYXRhKCkpOwogICAgICAgICBtX2NvbXBsZXRpb25DYWxsYmFjayhSZXNvdXJjZUVycm9yIHsg
ZXJyb3JEb21haW5XZWJLaXRJbnRlcm5hbCwgMCwgbV9wYXJhbWV0ZXJzLm9yaWdpbmFsUmVxdWVz
dC51cmwoKSwgcmVzdWx0LmVycm9yKCksIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRy
b2wgfSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xNTQsMTkgKzE1NCwxOSBAQCB2b2lk
IE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6ZGlkU2VuZERhdGEodWludDY0X3QgdG90YWxC
eXRlc1NlbnQsIHVpbnQ2NF90CiAKIHZvaWQgTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp3
YXNCbG9ja2VkKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3YXNCbG9ja2VkIik7
CisgICAgQ09SU19DSEVDS0VSX1JFTEVBU0VfTE9HKCJ3YXNCbG9ja2VkIik7CiAgICAgbV9jb21w
bGV0aW9uQ2FsbGJhY2soUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWws
IDAsIG1fcGFyYW1ldGVycy5vcmlnaW5hbFJlcXVlc3QudXJsKCksICJDT1JTLXByZWZsaWdodCBy
ZXF1ZXN0IHdhcyBibG9ja2VkIl9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9s
IH0pOwogfQogCiB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6Y2Fubm90U2hvd1VS
TCgpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY2Fubm90U2hvd1VSTCIpOworICAg
IENPUlNfQ0hFQ0tFUl9SRUxFQVNFX0xPRygiY2Fubm90U2hvd1VSTCIpOwogICAgIG1fY29tcGxl
dGlvbkNhbGxiYWNrKFJlc291cmNlRXJyb3IgeyBlcnJvckRvbWFpbldlYktpdEludGVybmFsLCAw
LCBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0LnVybCgpLCAiUHJlZmxpZ2h0IHJlc3BvbnNl
IHdhcyBibG9ja2VkIl9zLCBSZXNvdXJjZUVycm9yOjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwog
fQogCiB2b2lkIE5ldHdvcmtDT1JTUHJlZmxpZ2h0Q2hlY2tlcjo6d2FzQmxvY2tlZEJ5UmVzdHJp
Y3Rpb25zKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3YXNCbG9ja2VkQnlSZXN0
cmljdGlvbnMiKTsKKyAgICBDT1JTX0NIRUNLRVJfUkVMRUFTRV9MT0coIndhc0Jsb2NrZWRCeVJl
c3RyaWN0aW9ucyIpOwogICAgIG1fY29tcGxldGlvbkNhbGxiYWNrKFJlc291cmNlRXJyb3IgeyBl
cnJvckRvbWFpbldlYktpdEludGVybmFsLCAwLCBtX3BhcmFtZXRlcnMub3JpZ2luYWxSZXF1ZXN0
LnVybCgpLCAiUHJlZmxpZ2h0IHJlc3BvbnNlIHdhcyBibG9ja2VkIl9zLCBSZXNvdXJjZUVycm9y
OjpUeXBlOjpBY2Nlc3NDb250cm9sIH0pOwogfQogCkBAIC0xNzgsNCArMTc4LDQgQEAgTmV0d29y
a1RyYW5zYWN0aW9uSW5mb3JtYXRpb24gTmV0d29ya0NPUlNQcmVmbGlnaHRDaGVja2VyOjp0YWtl
SW5mb3JtYXRpb24oKQogCiB9IC8vIE5hbWVzcGFjZSBXZWJLaXQKIAotI3VuZGVmIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQKKyN1bmRlZiBDT1JTX0NIRUNLRVJfUkVMRUFTRV9MT0cKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggMmQxOTE5MGEzNDcwZGZiNTIzNTg1ZjIyZjdmNDY1MDUw
ZGYzMzkyOS4uYTgyMTZiNmNhMjUwZmVhNmUxNGNmMDJjZTJlNjc0ODQ3MDYzZDVlZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTgyLDggKzgyLDcgQEAKICNpbmNsdWRlICJMZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIKICNlbmRpZgogCi0jdW5kZWYgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGNoYW5uZWwsIGZtdCwg
Li4uKSBSRUxFQVNFX0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQo
KSwgY2hhbm5lbCwgIiVwIC0gW3dlYlByb2Nlc3NJZGVudGlmaWVyPSUiIFBSSXU2NCAiXSBOZXR3
b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6IiBmbXQsIHRoaXMsIHdlYlByb2Nlc3NJZGVudGlm
aWVyKCkudG9VSW50NjQoKSwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgQ09OTkVDVElPTl9SRUxF
QVNFX0xPRyhjaGFubmVsLCBmbXQsIC4uLikgUkVMRUFTRV9MT0coY2hhbm5lbCwgIiVwIC0gW3dl
YlByb2Nlc3NJZGVudGlmaWVyPSUiIFBSSXU2NCAiXSBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJv
Y2Vzczo6IiBmbXQsIHRoaXMsIHdlYlByb2Nlc3NJZGVudGlmaWVyKCkudG9VSW50NjQoKSwgIyNf
X1ZBX0FSR1NfXykKIAogI2RlZmluZSBORVRXT1JLX1BST0NFU1NfTUVTU0FHRV9DSEVDSyhhc3Nl
cnRpb24pIE5FVFdPUktfUFJPQ0VTU19NRVNTQUdFX0NIRUNLX0NPTVBMRVRJT04oYXNzZXJ0aW9u
LCAodm9pZCkwKQogI2RlZmluZSBORVRXT1JLX1BST0NFU1NfTUVTU0FHRV9DSEVDS19DT01QTEVU
SU9OKGFzc2VydGlvbiwgY29tcGxldGlvbikgZG8geyBcCkBAIC0xNTksNyArMTU4LDcgQEAgTmV0
d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6On5OZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vz
cygpCiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Omhhc1VwbG9hZFN0YXRl
Q2hhbmdlZChib29sIGhhc1VwbG9hZCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKExv
YWRpbmcsICJoYXNVcGxvYWRTdGF0ZUNoYW5nZWQ6IChoYXNVcGxvYWQ9JWQpIiwgaGFzVXBsb2Fk
KTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9HKExvYWRpbmcsICJoYXNVcGxvYWRTdGF0ZUNo
YW5nZWQ6IChoYXNVcGxvYWQ9JWQpIiwgaGFzVXBsb2FkKTsKICAgICBtX25ldHdvcmtQcm9jZXNz
LT5wYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpTZXRXZWJQcm9jZXNzSGFzVXBsb2FkcyhtX3dlYlByb2Nlc3NJZGVudGlmaWVyLCBo
YXNVcGxvYWQpLCAwKTsKIH0KIApAQCAtMzYxLDkgKzM2MCw5IEBAIHZvaWQgTmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmRpZENsb3NlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjdGlvbikK
ICAgICBSZWY8TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M+IHByb3RlY3RvcigqdGhpcyk7
CiAKICNpZiBPUyhEQVJXSU4pCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAi
ZGlkQ2xvc2U6IFdlYlByb2Nlc3MgKCVkKSBjbG9zZWQgaXRzIGNvbm5lY3Rpb24uIEFib3J0aW5n
IHJlbGF0ZWQgbG9hZGVycy4iLCBjb25uZWN0aW9uLnJlbW90ZVByb2Nlc3NJRCgpKTsKKyAgICBD
T05ORUNUSU9OX1JFTEVBU0VfTE9HKExvYWRpbmcsICJkaWRDbG9zZTogV2ViUHJvY2VzcyAoJWQp
IGNsb3NlZCBpdHMgY29ubmVjdGlvbi4gQWJvcnRpbmcgcmVsYXRlZCBsb2FkZXJzLiIsIGNvbm5l
Y3Rpb24ucmVtb3RlUHJvY2Vzc0lEKCkpOwogI2Vsc2UKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKExvYWRpbmcsICJkaWRDbG9zZTogV2ViUHJvY2VzcyBjbG9zZWQgaXRzIGNvbm5lY3Rpb24u
IEFib3J0aW5nIHJlbGF0ZWQgbG9hZGVycy4iKTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9H
KExvYWRpbmcsICJkaWRDbG9zZTogV2ViUHJvY2VzcyBjbG9zZWQgaXRzIGNvbm5lY3Rpb24uIEFi
b3J0aW5nIHJlbGF0ZWQgbG9hZGVycy4iKTsKICNlbmRpZgogCiAgICAgd2hpbGUgKCFtX25ldHdv
cmtSZXNvdXJjZUxvYWRlcnMuaXNFbXB0eSgpKQpAQCAtNDQ5LDcgKzQ0OCw3IEBAIE5ldHdvcmtT
ZXNzaW9uKiBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bmV0d29ya1Nlc3Npb24oKQog
CiBWZWN0b3I8UmVmUHRyPFdlYkNvcmU6OkJsb2JEYXRhRmlsZVJlZmVyZW5jZT4+IE5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpyZXNvbHZlQmxvYlJlZmVyZW5jZXMoY29uc3QgTmV0d29y
a1Jlc291cmNlTG9hZFBhcmFtZXRlcnMmIGxvYWRQYXJhbWV0ZXJzKQogewotICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoTG9hZGluZywgInJlc29sdmVCbG9iUmVmZXJlbmNlczogKHBhcmVudFBJ
RD0lZCwgcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgZnJh
bWVJRD0lIiBQUkl1NjQgIiwgcmVzb3VyY2VJRD0lIiBQUkl1NjQgIikiLCBsb2FkUGFyYW1ldGVy
cy5wYXJlbnRQSUQsIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELnRvVUludDY0KCksIGxv
YWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFt
ZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOworICAgIENPTk5FQ1RJ
T05fUkVMRUFTRV9MT0coTG9hZGluZywgInJlc29sdmVCbG9iUmVmZXJlbmNlczogKHBhcmVudFBJ
RD0lZCwgcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgZnJh
bWVJRD0lIiBQUkl1NjQgIiwgcmVzb3VyY2VJRD0lIiBQUkl1NjQgIikiLCBsb2FkUGFyYW1ldGVy
cy5wYXJlbnRQSUQsIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELnRvVUludDY0KCksIGxv
YWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFt
ZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAgICAgYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKCk7CiAgICAgaWYgKCFzZXNzaW9uKQpAQCAtNDc4LDcg
KzQ3Nyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPiBOZXR3b3Jr
Q29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Y3JlYXRlRmV0CiAKIHZvaWQgTmV0d29ya0Nvbm5lY3Rp
b25Ub1dlYlByb2Nlc3M6OnNjaGVkdWxlUmVzb3VyY2VMb2FkKE5ldHdvcmtSZXNvdXJjZUxvYWRQ
YXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RChMb2FkaW5nLCAic2NoZWR1bGVSZXNvdXJjZUxvYWQ6IChwYXJlbnRQSUQ9JWQsIHBhZ2VQcm94
eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0
ICIsIHJlc291cmNlSUQ9JSIgUFJJdTY0ICIpIiwgbG9hZFBhcmFtZXRlcnMucGFyZW50UElELCBs
b2FkUGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53
ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9H
KExvYWRpbmcsICJzY2hlZHVsZVJlc291cmNlTG9hZDogKHBhcmVudFBJRD0lZCwgcGFnZVByb3h5
SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1NjQg
IiwgcmVzb3VyY2VJRD0lIiBQUkl1NjQgIikiLCBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQsIGxv
YWRQYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndl
YlBhZ2VJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCks
IGxvYWRQYXJhbWV0ZXJzLmlkZW50aWZpZXIpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQogICAgIGF1dG8mIHNlcnZlciA9IG1fbmV0d29ya1Byb2Nlc3MtPnN3U2VydmVyRm9yU2Vzc2lv
bihtX3Nlc3Npb25JRCk7CkBAIC01MDgsNyArNTA3LDcgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6c2NoZWR1bGVSZXNvdXJjZUxvYWQoTmV0d29ya1Jlc291cmNlTG9hZFBh
cmEKIAogdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6cGVyZm9ybVN5bmNocm9u
b3VzTG9hZChOZXR3b3JrUmVzb3VyY2VMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzLCBN
ZXNzYWdlczo6TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OlBlcmZvcm1TeW5jaHJvbm91
c0xvYWQ6OkRlbGF5ZWRSZXBseSYmIHJlcGx5KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoTG9hZGluZywgInBlcmZvcm1TeW5jaHJvbm91c0xvYWQ6IChwYXJlbnRQSUQ9JWQsIHBhZ2VQ
cm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJ
dTY0ICIsIHJlc291cmNlSUQ9JSIgUFJJdTY0ICIpIiwgbG9hZFBhcmFtZXRlcnMucGFyZW50UElE
LCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVy
cy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2
NCgpLCBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0Vf
TE9HKExvYWRpbmcsICJwZXJmb3JtU3luY2hyb25vdXNMb2FkOiAocGFyZW50UElEPSVkLCBwYWdl
UHJveHlJRD0lIiBQUkl1NjQgIiwgd2ViUGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEPSUiIFBSSXU2NCAiKSIsIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJ
RCwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBhdXRvIGlkZW50aWZpZXIg
PSBsb2FkUGFyYW1ldGVycy5pZGVudGlmaWVyOwogICAgIFJFTEVBU0VfQVNTRVJUKGlkZW50aWZp
ZXIpOwpAQCAtNTMwLDcgKzUyOSw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nl
c3M6OnRlc3RQcm9jZXNzSW5jb21pbmdTeW5jTWVzc2FnZXNXaGVuV2FpdGluZ0ZvCiAKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmxvYWRQaW5nKE5ldHdvcmtSZXNvdXJjZUxv
YWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRChMb2FkaW5nLCAibG9hZFBpbmc6IChwYXJlbnRQSUQ9JWQsIHBhZ2VQcm94eUlEPSUiIFBS
SXU2NCAiLCB3ZWJQYWdlSUQ9JSIgUFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICIsIHJlc291
cmNlSUQ9JSIgUFJJdTY0ICIpIiwgbG9hZFBhcmFtZXRlcnMucGFyZW50UElELCBsb2FkUGFyYW1l
dGVycy53ZWJQYWdlUHJveHlJRC50b1VJbnQ2NCgpLCBsb2FkUGFyYW1ldGVycy53ZWJQYWdlSUQu
dG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgpLCBsb2FkUGFy
YW1ldGVycy5pZGVudGlmaWVyKTsKKyAgICBDT05ORUNUSU9OX1JFTEVBU0VfTE9HKExvYWRpbmcs
ICJsb2FkUGluZzogKHBhcmVudFBJRD0lZCwgcGFnZVByb3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBh
Z2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1NjQgIiwgcmVzb3VyY2VJRD0lIiBQUkl1
NjQgIikiLCBsb2FkUGFyYW1ldGVycy5wYXJlbnRQSUQsIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VQ
cm94eUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBs
b2FkUGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLmlkZW50
aWZpZXIpOwogCiAgICAgYXV0byBjb21wbGV0aW9uSGFuZGxlciA9IFtjb25uZWN0aW9uID0gbV9j
b25uZWN0aW9uLCBpZGVudGlmaWVyID0gbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcl0gKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkg
ewogICAgICAgICBjb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzc0Nvbm5l
Y3Rpb246OkRpZEZpbmlzaFBpbmdMb2FkKGlkZW50aWZpZXIsIGVycm9yLCByZXNwb25zZSksIDAp
OwpAQCAtNTYzLDcgKzU2Miw3IEBAIHZvaWQgTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6
OnJlbW92ZUxvYWRJZGVudGlmaWVyKFJlc291cmNlTG9hZElkZW50aWZpZXIKIAogICAgIC8vIEFi
b3J0IHRoZSBsb2FkIG5vdywgYXMgdGhlIFdlYlByb2Nlc3Mgd29uJ3QgYmUgYWJsZSB0byByZXNw
b25kIHRvIG1lc3NhZ2VzIGFueSBtb3JlIHdoaWNoIG1pZ2h0IGxlYWQKICAgICAvLyB0byBsZWFr
ZWQgbG9hZGVyIHJlc291cmNlcyAoY29ubmVjdGlvbnMsIHRocmVhZHMsIGV0YykuCi0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRChMb2FkaW5nLCAicmVtb3ZlTG9hZElkZW50aWZpZXI6IFJlbW92
aW5nIGlkZW50aWZpZXIgJSIgUFJJdTY0ICIgYW5kIGFib3J0aW5nIGNvcnJlc3BvbmRpbmcgbG9h
ZGVyIiwgaWRlbnRpZmllcik7CisgICAgQ09OTkVDVElPTl9SRUxFQVNFX0xPRyhMb2FkaW5nLCAi
cmVtb3ZlTG9hZElkZW50aWZpZXI6IFJlbW92aW5nIGlkZW50aWZpZXIgJSIgUFJJdTY0ICIgYW5k
IGFib3J0aW5nIGNvcnJlc3BvbmRpbmcgbG9hZGVyIiwgaWRlbnRpZmllcik7CiAgICAgbG9hZGVy
LT5hYm9ydCgpOwogICAgIEFTU0VSVCghbV9uZXR3b3JrUmVzb3VyY2VMb2FkZXJzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKIH0KQEAgLTYwNSw3ICs2MDQsNyBAQCB2b2lkIE5ldHdvcmtDb25uZWN0
aW9uVG9XZWJQcm9jZXNzOjpzZW5kSDJQaW5nKE5ldHdvcmtSZXNvdXJjZUxvYWRQYXJhbWV0ZXJz
JiYgcAogCiB2b2lkIE5ldHdvcmtDb25uZWN0aW9uVG9XZWJQcm9jZXNzOjpwcmVjb25uZWN0VG8o
c3RkOjpvcHRpb25hbDx1aW50NjRfdD4gcHJlY29ubmVjdGlvbklkZW50aWZpZXIsIE5ldHdvcmtS
ZXNvdXJjZUxvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChMb2FkaW5nLCAicHJlY29ubmVjdFRvOiAocGFyZW50UElEPSVkLCBwYWdl
UHJveHlJRD0lIiBQUkl1NjQgIiwgd2ViUGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBS
SXU2NCAiLCByZXNvdXJjZUlEPSUiIFBSSXU2NCAiKSIsIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJ
RCwgbG9hZFBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRl
cnMud2ViUGFnZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50
NjQoKSwgbG9hZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CisgICAgQ09OTkVDVElPTl9SRUxFQVNF
X0xPRyhMb2FkaW5nLCAicHJlY29ubmVjdFRvOiAocGFyZW50UElEPSVkLCBwYWdlUHJveHlJRD0l
IiBQUkl1NjQgIiwgd2ViUGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiLCBy
ZXNvdXJjZUlEPSUiIFBSSXU2NCAiKSIsIGxvYWRQYXJhbWV0ZXJzLnBhcmVudFBJRCwgbG9hZFBh
cmFtZXRlcnMud2ViUGFnZVByb3h5SUQudG9VSW50NjQoKSwgbG9hZFBhcmFtZXRlcnMud2ViUGFn
ZUlELnRvVUludDY0KCksIGxvYWRQYXJhbWV0ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbG9h
ZFBhcmFtZXRlcnMuaWRlbnRpZmllcik7CiAKICAgICBBU1NFUlQoIWxvYWRQYXJhbWV0ZXJzLnJl
cXVlc3QuaHR0cEJvZHkoKSk7CiAKQEAgLTExMTMsNyArMTExMiw3IEBAIHZvaWQgTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmNsb3NlU1dDb250ZXh0Q29ubmVjdGlvbigpCiAKIHZvaWQg
TmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OnNlcnZlclRvQ29udGV4dENvbm5lY3Rpb25O
b0xvbmdlck5lZWRlZCgpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChTZXJ2aWNlV29y
a2VyLCAic2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbk5vTG9uZ2VyTmVlZGVkOiBXZWJQcm9jZXNz
IG5vIGxvbmdlciB1c2VmdWwgZm9yIHJ1bm5pbmcgc2VydmljZSB3b3JrZXJzIik7CisgICAgQ09O
TkVDVElPTl9SRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAic2VydmVyVG9Db250ZXh0Q29ubmVj
dGlvbk5vTG9uZ2VyTmVlZGVkOiBXZWJQcm9jZXNzIG5vIGxvbmdlciB1c2VmdWwgZm9yIHJ1bm5p
bmcgc2VydmljZSB3b3JrZXJzIik7CiAgICAgbV9uZXR3b3JrUHJvY2Vzcy0+cGFyZW50UHJvY2Vz
c0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQcm94eTo6V29ya2Vy
Q29udGV4dENvbm5lY3Rpb25Ob0xvbmdlck5lZWRlZCB7IHdlYlByb2Nlc3NJZGVudGlmaWVyKCkg
fSwgMCk7CiAKICAgICBtX3N3Q29udGV4dENvbm5lY3Rpb24gPSBudWxscHRyOwpAQCAtMTI0OCw2
ICsxMjQ3LDYgQEAgdm9pZCBOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6YWRkSURCQ29u
bmVjdGlvbigpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jdW5kZWYgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRAorI3VuZGVmIENPTk5FQ1RJT05fUkVMRUFTRV9MT0cKICN1bmRlZiBORVRXT1JL
X1BST0NFU1NfTUVTU0FHRV9DSEVDS19DT01QTEVUSU9OCiAjdW5kZWYgTkVUV09SS19QUk9DRVNT
X01FU1NBR0VfQ0hFQ0sKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya0xvYWRDaGVja2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0
d29ya0xvYWRDaGVja2VyLmNwcAppbmRleCBkN2ZhZDk3OGMzMTJhYWZhMTFkMWE4ZjA5ZGU1NDkx
ZjZjZjUxMjJjLi5kMGMzM2Y4M2Q2MjM1OTRjYWIyYmIxMzc1NjM2MWNhNDBiOTNhNWM0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtMb2FkQ2hlY2tlci5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrTG9hZENoZWNrZXIu
Y3BwCkBAIC0zOSw4ICszOSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9MZWdhY3lTY2hlbWVSZWdp
c3RyeS5oPgogI2luY2x1ZGUgPHd0Zi9TY29wZS5oPgogCi0jdW5kZWYgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4uKSBSRUxFQVNF
X0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwgTmV0d29yaywg
IiVwIC0gTmV0d29ya0xvYWRDaGVja2VyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKKyNk
ZWZpbmUgTE9BRF9DSEVDS0VSX1JFTEVBU0VfTE9HKGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhOZXR3
b3JrLCAiJXAgLSBOZXR3b3JrTG9hZENoZWNrZXI6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19f
KQogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIApAQCAtMzEwLDcgKzMwOSw3IEBAIHZvaWQgTmV0d29y
a0xvYWRDaGVja2VyOjpjb250aW51ZUNoZWNraW5nUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBy
ZXF1ZXN0LCBWYWxpCiAgICAgfQogCiAgICAgaWYgKGlzUmVkaXJlY3RlZCgpKSB7Ci0gICAgICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNoZWNrUmVxdWVzdCAtIFJlZGlyZWN0IHJlcXVpcmVz
IENPUlMgY2hlY2tzIik7CisgICAgICAgIExPQURfQ0hFQ0tFUl9SRUxFQVNFX0xPRygiY2hlY2tS
ZXF1ZXN0IC0gUmVkaXJlY3QgcmVxdWlyZXMgQ09SUyBjaGVja3MiKTsKICAgICAgICAgY2hlY2tD
T1JTUmVkaXJlY3RlZFJlcXVlc3QoV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShoYW5kbGVyKSk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNzEsNyArMzcwLDcgQEAgdm9pZCBOZXR3b3Jr
TG9hZENoZWNrZXI6OmNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0KFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QKIAogICAgIG1faXNTaW1wbGVSZXF1ZXN0ID0gZmFsc2U7CiAgICAgaWYgKENy
b3NzT3JpZ2luUHJlZmxpZ2h0UmVzdWx0Q2FjaGU6OnNpbmdsZXRvbigpLmNhblNraXBQcmVmbGln
aHQobV9zZXNzaW9uSUQsIG1fb3JpZ2luLT50b1N0cmluZygpLCByZXF1ZXN0LnVybCgpLCBtX3N0
b3JlZENyZWRlbnRpYWxzUG9saWN5LCByZXF1ZXN0Lmh0dHBNZXRob2QoKSwgbV9vcmlnaW5hbFJl
cXVlc3RIZWFkZXJzKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjaGVja0NP
UlNSZXF1ZXN0V2l0aFByZWZsaWdodCAtIHByZWZsaWdodCBjYW4gYmUgc2tpcHBlZCB0aGFua3Mg
dG8gY2FjaGVkIHJlc3VsdCIpOworICAgICAgICBMT0FEX0NIRUNLRVJfUkVMRUFTRV9MT0coImNo
ZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0IC0gcHJlZmxpZ2h0IGNhbiBiZSBza2lwcGVkIHRo
YW5rcyB0byBjYWNoZWQgcmVzdWx0Iik7CiAgICAgICAgIHVwZGF0ZVJlcXVlc3RGb3JBY2Nlc3ND
b250cm9sKHJlcXVlc3QsICptX29yaWdpbiwgbV9zdG9yZWRDcmVkZW50aWFsc1BvbGljeSk7CiAg
ICAgICAgIGhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiAgICAgICAgIHJldHVybjsKQEAgLTM5
MSw3ICszOTAsNyBAQCB2b2lkIE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2tDT1JTUmVxdWVzdFdp
dGhQcmVmbGlnaHQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdAogICAgICAgICBtX3N0b3JlZENy
ZWRlbnRpYWxzUG9saWN5CiAgICAgfTsKICAgICBtX2NvcnNQcmVmbGlnaHRDaGVja2VyID0gbWFr
ZVVuaXF1ZTxOZXR3b3JrQ09SU1ByZWZsaWdodENoZWNrZXI+KG1fbmV0d29ya1Byb2Nlc3MuZ2V0
KCksIG1fbmV0d29ya1Jlc291cmNlTG9hZGVyLmdldCgpLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBt
X3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcywgW3RoaXMsIHJlcXVlc3QgPSBX
VEZNb3ZlKHJlcXVlc3QpLCBoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKSwgaXNSZWRpcmVjdGVk
ID0gaXNSZWRpcmVjdGVkKCldKGF1dG8mJiBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoImNoZWNrQ09SU1JlcXVlc3RXaXRoUHJlZmxpZ2h0IC0gbWFrZUNy
b3NzT3JpZ2luQWNjZXNzUmVxdWVzdFdpdGhQcmVmbGlnaHQgcHJlZmxpZ2h0IGNvbXBsZXRlLCBz
dWNjZXNzPSVkIGZvclJlZGlyZWN0PSVkIiwgZXJyb3IuaXNOdWxsKCksIGlzUmVkaXJlY3RlZCk7
CisgICAgICAgIExPQURfQ0hFQ0tFUl9SRUxFQVNFX0xPRygiY2hlY2tDT1JTUmVxdWVzdFdpdGhQ
cmVmbGlnaHQgLSBtYWtlQ3Jvc3NPcmlnaW5BY2Nlc3NSZXF1ZXN0V2l0aFByZWZsaWdodCBwcmVm
bGlnaHQgY29tcGxldGUsIHN1Y2Nlc3M9JWQgZm9yUmVkaXJlY3Q9JWQiLCBlcnJvci5pc051bGwo
KSwgaXNSZWRpcmVjdGVkKTsKIAogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgpKSB7CiAgICAg
ICAgICAgICBoYW5kbGVyKFdURk1vdmUoZXJyb3IpKTsKQEAgLTQ2Myw0ICs0NjIsNCBAQCB2b2lk
IE5ldHdvcmtMb2FkQ2hlY2tlcjo6c3RvcmVSZWRpcmVjdGlvbklmTmVlZGVkKGNvbnN0IFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI3VuZGVmIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQKKyN1bmRlZiBMT0FEX0NIRUNLRVJfUkVMRUFTRV9MT0cKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9h
ZGVyLmNwcAppbmRleCAwODIzZjllMzViYWU5Y2U2ZDg1NTUyZGVhMTkxNmZkNDhhYzM1MjVlLi4w
MWFhMWI4MzU3M2E0Y2RlNWY2ZWFjYjBjYjNjMmQzYmVkN2MxNjEzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNvdXJjZUxvYWRlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuY3BwCkBA
IC02NSw5ICs2NSw4IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9QcmV2aWV3Q29udmVydGVyLmg+CiAj
ZW5kaWYKIAotI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKLSNkZWZpbmUgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoaXNBbHdheXNPbkxvZ2dpbmdB
bGxvd2VkKCksIE5ldHdvcmssICIlcCAtIFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2ViUGFn
ZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiLCByZXNvdXJjZUlEPSUiIFBSSXU2
NCAiLCBpc01haW5SZXNvdXJjZT0lZCwgZGVzdGluYXRpb249JXUsIGlzU3luY2hyb25vdXM9JWRd
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6IiBmbXQsIHRoaXMsIG1fcGFyYW1ldGVycy53ZWJQYWdl
UHJveHlJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCksIG1f
cGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlmaWVy
LCBpc01haW5SZXNvdXJjZSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9wYXJhbWV0ZXJzLm9w
dGlvbnMuZGVzdGluYXRpb24pLCBpc1N5bmNocm9ub3VzKCksICMjX19WQV9BUkdTX18pCi0jZGVm
aW5lIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VS
Uk9SX0lGKGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBOZXR3b3JrLCAiJXAgLSBbcGFnZVBy
b3h5SUQ9JSIgUFJJdTY0ICIsIHdlYlBhZ2VJRD0lIiBQUkl1NjQgIiwgZnJhbWVJRD0lIiBQUkl1
NjQgIiwgcmVzb3VyY2VJRD0lIiBQUkl1NjQgIiwgaXNNYWluUmVzb3VyY2U9JWQsIGRlc3RpbmF0
aW9uPSV1LCBpc1N5bmNocm9ub3VzPSVkXSBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OiIgZm10LCB0
aGlzLCBtX3BhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJz
LndlYlBhZ2VJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViRnJhbWVJRC50b1VJbnQ2NCgp
LCBtX3BhcmFtZXRlcnMuaWRlbnRpZmllciwgaXNNYWluUmVzb3VyY2UoKSwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KG1fcGFyYW1ldGVycy5vcHRpb25zLmRlc3RpbmF0aW9uKSwgaXNTeW5jaHJvbm91
cygpLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBMT0FERVJfUkVMRUFTRV9MT0coZm10LCAuLi4p
IFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIFtwYWdlUHJveHlJRD0lIiBQUkl1NjQgIiwgd2Vi
UGFnZUlEPSUiIFBSSXU2NCAiLCBmcmFtZUlEPSUiIFBSSXU2NCAiLCByZXNvdXJjZUlEPSUiIFBS
SXU2NCAiLCBpc01haW5SZXNvdXJjZT0lZCwgZGVzdGluYXRpb249JXUsIGlzU3luY2hyb25vdXM9
JWRdIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6IiBmbXQsIHRoaXMsIG1fcGFyYW1ldGVycy53ZWJQ
YWdlUHJveHlJRC50b1VJbnQ2NCgpLCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELnRvVUludDY0KCks
IG1fcGFyYW1ldGVycy53ZWJGcmFtZUlELnRvVUludDY0KCksIG1fcGFyYW1ldGVycy5pZGVudGlm
aWVyLCBpc01haW5SZXNvdXJjZSgpLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4obV9wYXJhbWV0ZXJz
Lm9wdGlvbnMuZGVzdGluYXRpb24pLCBpc1N5bmNocm9ub3VzKCksICMjX19WQV9BUkdTX18pCisj
ZGVmaW5lIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUihmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJS
T1IoTmV0d29yaywgIiVwIC0gW3BhZ2VQcm94eUlEPSUiIFBSSXU2NCAiLCB3ZWJQYWdlSUQ9JSIg
UFJJdTY0ICIsIGZyYW1lSUQ9JSIgUFJJdTY0ICIsIHJlc291cmNlSUQ9JSIgUFJJdTY0ICIsIGlz
TWFpblJlc291cmNlPSVkLCBkZXN0aW5hdGlvbj0ldSwgaXNTeW5jaHJvbm91cz0lZF0gTmV0d29y
a1Jlc291cmNlTG9hZGVyOjoiIGZtdCwgdGhpcywgbV9wYXJhbWV0ZXJzLndlYlBhZ2VQcm94eUlE
LnRvVUludDY0KCksIG1fcGFyYW1ldGVycy53ZWJQYWdlSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0
ZXJzLndlYkZyYW1lSUQudG9VSW50NjQoKSwgbV9wYXJhbWV0ZXJzLmlkZW50aWZpZXIsIGlzTWFp
blJlc291cmNlKCksIHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX3BhcmFtZXRlcnMub3B0aW9ucy5k
ZXN0aW5hdGlvbiksIGlzU3luY2hyb25vdXMoKSwgIyNfX1ZBX0FSR1NfXykKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKQEAgLTE3Nyw3ICsxNzYsNyBAQCBi
b29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6aXNTeW5jaHJvbm91cygpIGNvbnN0CiB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6c3RhcnQoKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3RhcnQ6IGhhc05ldHdvcmtMb2Fk
Q2hlY2tlcj0lZCIsICEhbV9uZXR3b3JrTG9hZENoZWNrZXIpOworICAgIExPQURFUl9SRUxFQVNF
X0xPRygic3RhcnQ6IGhhc05ldHdvcmtMb2FkQ2hlY2tlcj0lZCIsICEhbV9uZXR3b3JrTG9hZENo
ZWNrZXIpOwogCiAgICAgbV9uZXR3b3JrQWN0aXZpdHlUcmFja2VyID0gbV9jb25uZWN0aW9uLT5z
dGFydFRyYWNraW5nUmVzb3VyY2VMb2FkKG1fcGFyYW1ldGVycy53ZWJQYWdlSUQsIG1fcGFyYW1l
dGVycy5pZGVudGlmaWVyLCBpc01haW5GcmFtZUxvYWQoKSk7CiAKQEAgLTE5MSwxNyArMTkwLDE3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydCgpCiAKICAgICAgICAgICAgIFdU
Rjo6c3dpdGNoT24ocmVzdWx0LAogICAgICAgICAgICAgICAgIFt0aGlzXSAoUmVzb3VyY2VFcnJv
ciYgZXJyb3IpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
c3RhcnQ6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2sgcmV0dXJuZWQgYW4gZXJyb3IgKGVycm9y
LmRvbWFpbj0lIiBQVUJMSUNfTE9HX1NUUklORyAiLCBlcnJvci5jb2RlPSVkLCBpc0NhbmNlbGxh
dGlvbj0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUo
KSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSk7CisgICAgICAgICAgICAgICAgICAgIExPQURFUl9S
RUxFQVNFX0xPRygic3RhcnQ6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2sgcmV0dXJuZWQgYW4g
ZXJyb3IgKGVycm9yLmRvbWFpbj0lIiBQVUJMSUNfTE9HX1NUUklORyAiLCBlcnJvci5jb2RlPSVk
LCBpc0NhbmNlbGxhdGlvbj0lZCkiLCBlcnJvci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJv
ci5lcnJvckNvZGUoKSwgZXJyb3IuaXNDYW5jZWxsYXRpb24oKSk7CiAgICAgICAgICAgICAgICAg
ICAgIGlmICghZXJyb3IuaXNDYW5jZWxsYXRpb24oKSkKICAgICAgICAgICAgICAgICAgICAgICAg
IHRoaXMtPmRpZEZhaWxMb2FkaW5nKGVycm9yKTsKICAgICAgICAgICAgICAgICB9LAogICAgICAg
ICAgICAgICAgIFt0aGlzXSAoTmV0d29ya0xvYWRDaGVja2VyOjpSZWRpcmVjdGlvblRyaXBsZXQm
IHRyaXBsZXQpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
c3RhcnQ6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6Y2hlY2sgcmV0dXJuZWQgYSBzeW50aGV0aWMgcmVk
aXJlY3QiKTsKKyAgICAgICAgICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJzdGFydDog
TmV0d29ya0xvYWRDaGVja2VyOjpjaGVjayByZXR1cm5lZCBhIHN5bnRoZXRpYyByZWRpcmVjdCIp
OwogICAgICAgICAgICAgICAgICAgICB0aGlzLT5tX2lzV2FpdGluZ0NvbnRpbnVlV2lsbFNlbmRS
ZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3QgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgICB0aGlz
LT53aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0KFdURk1vdmUodHJpcGxldC5yZXF1ZXN0KSwgV1RG
TW92ZSh0cmlwbGV0LnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUodHJpcGxldC5yZWRpcmVjdFJl
c3BvbnNlKSk7CiAgICAgICAgICAgICAgICAgfSwKICAgICAgICAgICAgICAgICBbdGhpc10gKFJl
c291cmNlUmVxdWVzdCYgcmVxdWVzdCkgewotICAgICAgICAgICAgICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJzdGFydDogTmV0d29ya0xvYWRDaGVja2VyOjpjaGVjayBpcyBkb25lIik7
CisgICAgICAgICAgICAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygic3RhcnQ6IE5ldHdvcmtM
b2FkQ2hlY2tlcjo6Y2hlY2sgaXMgZG9uZSIpOwogICAgICAgICAgICAgICAgICAgICBpZiAodGhp
cy0+Y2FuVXNlQ2FjaGUocmVxdWVzdCkpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMt
PnJldHJpZXZlQ2FjaGVFbnRyeShyZXF1ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJl
dHVybjsKQEAgLTIyNCw3ICsyMjMsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnQoKQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmlldmVDYWNoZUVudHJ5KGNv
bnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExP
V0VEKCJyZXRyaWV2ZUNhY2hlRW50cnk6IGlzTWFpbkZyYW1lTG9hZD0lZCIsIGlzTWFpbkZyYW1l
TG9hZCgpKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coInJldHJpZXZlQ2FjaGVFbnRyeTogaXNN
YWluRnJhbWVMb2FkPSVkIiwgaXNNYWluRnJhbWVMb2FkKCkpOwogICAgIEFTU0VSVChjYW5Vc2VD
YWNoZShyZXF1ZXN0KSk7CiAKICAgICBhdXRvIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KTsKQEAgLTIzMiw3ICsyMzEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmV0cmll
dmVDYWNoZUVudHJ5KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkKICAgICAgICAgQVNT
RVJUKG1fcGFyYW1ldGVycy5vcHRpb25zLm1vZGUgPT0gRmV0Y2hPcHRpb25zOjpNb2RlOjpOYXZp
Z2F0ZSk7CiAgICAgICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbV9jb25uZWN0aW9uLT5uZXR3b3Jr
UHJvY2VzcygpLm5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCgpKSkgewogICAgICAgICAgICAgaWYg
KGF1dG8gZW50cnkgPSBzZXNzaW9uLT5wcmVmZXRjaENhY2hlKCkudGFrZShyZXF1ZXN0LnVybCgp
KSkgewotICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeTogcmV0cmlldmVkIGFuIGVudHJ5IGZyb20gdGhlIHByZWZldGNoIGNhY2hlIChpc1Jl
ZGlyZWN0PSVkKSIsICFlbnRyeS0+cmVkaXJlY3RSZXF1ZXN0LmlzTnVsbCgpKTsKKyAgICAgICAg
ICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coInJldHJpZXZlQ2FjaGVFbnRyeTogcmV0cmlldmVk
IGFuIGVudHJ5IGZyb20gdGhlIHByZWZldGNoIGNhY2hlIChpc1JlZGlyZWN0PSVkKSIsICFlbnRy
eS0+cmVkaXJlY3RSZXF1ZXN0LmlzTnVsbCgpKTsKICAgICAgICAgICAgICAgICBpZiAoIWVudHJ5
LT5yZWRpcmVjdFJlcXVlc3QuaXNOdWxsKCkpIHsKICAgICAgICAgICAgICAgICAgICAgYXV0byBj
YWNoZUVudHJ5ID0gbV9jYWNoZS0+bWFrZVJlZGlyZWN0RW50cnkocmVxdWVzdCwgZW50cnktPnJl
c3BvbnNlLCBlbnRyeS0+cmVkaXJlY3RSZXF1ZXN0KTsKICAgICAgICAgICAgICAgICAgICAgcmV0
cmlldmVDYWNoZUVudHJ5SW50ZXJuYWwoV1RGTW92ZShjYWNoZUVudHJ5KSwgUmVzb3VyY2VSZXF1
ZXN0IHsgcmVxdWVzdCB9KTsKQEAgLTI0OSwxMiArMjQ4LDEyIEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnkoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQogICAgICAgICB9CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0
cmlldmVDYWNoZUVudHJ5OiBDaGVja2luZyB0aGUgSFRUUCBkaXNrIGNhY2hlIik7CisgICAgTE9B
REVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50cnk6IENoZWNraW5nIHRoZSBIVFRQIGRp
c2sgY2FjaGUiKTsKICAgICBtX2NhY2hlLT5yZXRyaWV2ZShyZXF1ZXN0LCBnbG9iYWxGcmFtZUlE
KCksIG1fcGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBbdGhpcywgd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHJlcXVlc3QgPSBSZXNvdXJjZVJlcXVlc3QgeyBy
ZXF1ZXN0IH1dKGF1dG8gZW50cnksIGF1dG8gaW5mbykgbXV0YWJsZSB7CiAgICAgICAgIGlmICgh
d2Vha1RoaXMpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5OiBEb25lIGNoZWNraW5nIHRoZSBIVFRQIGRpc2sg
Y2FjaGUgKGZvdW5kQ2FjaGVkRW50cnk9JWQpIiwgISFlbnRyeSk7CisgICAgICAgIExPQURFUl9S
RUxFQVNFX0xPRygicmV0cmlldmVDYWNoZUVudHJ5OiBEb25lIGNoZWNraW5nIHRoZSBIVFRQIGRp
c2sgY2FjaGUgKGZvdW5kQ2FjaGVkRW50cnk9JWQpIiwgISFlbnRyeSk7CiAgICAgICAgIGxvZ1Ns
b3dDYWNoZVJldHJpZXZlSWZOZWVkZWQoaW5mbyk7CiAKICAgICAgICAgaWYgKCFlbnRyeSkgewpA
QCAtMjY3LDEwICsyNjYsMTAgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnJldHJpZXZl
Q2FjaGVFbnRyeShjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiAKIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbChzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0NhY2hlOjpFbnRyeT4mJiBlbnRyeSwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hl
RW50cnlJbnRlcm5hbDoiKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coInJldHJpZXZlQ2FjaGVF
bnRyeUludGVybmFsOiIpOwogI2lmIEVOQUJMRShSRVNPVVJDRV9MT0FEX1NUQVRJU1RJQ1MpCiAg
ICAgaWYgKGVudHJ5LT5oYXNSZWFjaGVkUHJldmFsZW50UmVzb3VyY2VBZ2VDYXAoKSkgewotICAg
ICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbDog
UmV2YWxpZGF0aW5nIGNhY2hlZCBlbnRyeSBiZWNhdXNlIGl0IHJlYWNoZWQgdGhlIHByZXZhbGVu
dCByZXNvdXJjZSBhZ2UgY2FwIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygicmV0cmll
dmVDYWNoZUVudHJ5SW50ZXJuYWw6IFJldmFsaWRhdGluZyBjYWNoZWQgZW50cnkgYmVjYXVzZSBp
dCByZWFjaGVkIHRoZSBwcmV2YWxlbnQgcmVzb3VyY2UgYWdlIGNhcCIpOwogICAgICAgICBtX2Nh
Y2hlRW50cnlGb3JNYXhBZ2VDYXBWYWxpZGF0aW9uID0gV1RGTW92ZShlbnRyeSk7CiAgICAgICAg
IFJlc291cmNlUmVxdWVzdCByZXZhbGlkYXRpb25SZXF1ZXN0ID0gb3JpZ2luYWxSZXF1ZXN0KCk7
CiAgICAgICAgIHN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShyZXZhbGlkYXRpb25SZXF1ZXN0KSwg
Rmlyc3RMb2FkOjpZZXMpOwpAQCAtMjc4LDI3ICsyNzcsMjcgQEAgdm9pZCBOZXR3b3JrUmVzb3Vy
Y2VMb2FkZXI6OnJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsKHN0ZDo6dW5pcXVlX3B0cjxOZXR3
b3JrQ2EKICAgICB9CiAjZW5kaWYKICAgICBpZiAoZW50cnktPnJlZGlyZWN0UmVxdWVzdCgpKSB7
Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2FjaGVFbnRyeUludGVy
bmFsOiBDYWNoZWQgZW50cnkgaXMgYSByZWRpcmVjdCIpOworICAgICAgICBMT0FERVJfUkVMRUFT
RV9MT0coInJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsOiBDYWNoZWQgZW50cnkgaXMgYSByZWRp
cmVjdCIpOwogICAgICAgICBkaXNwYXRjaFdpbGxTZW5kUmVxdWVzdEZvckNhY2hlRW50cnkoV1RG
TW92ZShyZXF1ZXN0KSwgV1RGTW92ZShlbnRyeSkpOwogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIGlmIChtX3BhcmFtZXRlcnMubmVlZHNDZXJ0aWZpY2F0ZUluZm8gJiYgIWVudHJ5LT5yZXNw
b25zZSgpLmNlcnRpZmljYXRlSW5mbygpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInJldHJpZXZlQ2FjaGVFbnRyeUludGVybmFsOiBDYWNoZWQgZW50cnkgaXMgbWlzc2luZyBj
ZXJ0aWZpY2F0ZSBpbmZvcm1hdGlvbiBzbyB3ZSBhcmUgbm90IHVzaW5nIGl0Iik7CisgICAgICAg
IExPQURFUl9SRUxFQVNFX0xPRygicmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWw6IENhY2hlZCBl
bnRyeSBpcyBtaXNzaW5nIGNlcnRpZmljYXRlIGluZm9ybWF0aW9uIHNvIHdlIGFyZSBub3QgdXNp
bmcgaXQiKTsKICAgICAgICAgc3RhcnROZXR3b3JrTG9hZChXVEZNb3ZlKHJlcXVlc3QpLCBGaXJz
dExvYWQ6Olllcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgaWYgKGVudHJ5LT5uZWVk
c1ZhbGlkYXRpb24oKSB8fCByZXF1ZXN0LmNhY2hlUG9saWN5KCkgPT0gV2ViQ29yZTo6UmVzb3Vy
Y2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hBbnlDYWNoZURhdGEpIHsKLSAgICAgICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgicmV0cmlldmVDYWNoZUVudHJ5SW50ZXJuYWw6IENhY2hlZCBl
bnRyeSBuZWVkcyByZXZhbGlkYXRpb24iKTsKKyAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJy
ZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbDogQ2FjaGVkIGVudHJ5IG5lZWRzIHJldmFsaWRhdGlv
biIpOwogICAgICAgICB2YWxpZGF0ZUNhY2hlRW50cnkoV1RGTW92ZShlbnRyeSkpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlQ2Fj
aGVFbnRyeUludGVybmFsOiBDYWNoZWQgZW50cnkgaXMgZGlyZWN0bHkgdXNhYmxlIik7CisgICAg
TE9BREVSX1JFTEVBU0VfTE9HKCJyZXRyaWV2ZUNhY2hlRW50cnlJbnRlcm5hbDogQ2FjaGVkIGVu
dHJ5IGlzIGRpcmVjdGx5IHVzYWJsZSIpOwogICAgIGRpZFJldHJpZXZlQ2FjaGVFbnRyeShXVEZN
b3ZlKGVudHJ5KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdv
cmtMb2FkKFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hZCBsb2FkKQogewotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IChpc0ZpcnN0TG9hZD0l
ZCwgdGltZW91dD0lZikiLCBsb2FkID09IEZpcnN0TG9hZDo6WWVzLCByZXF1ZXN0LnRpbWVvdXRJ
bnRlcnZhbCgpKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coInN0YXJ0TmV0d29ya0xvYWQ6IChp
c0ZpcnN0TG9hZD0lZCwgdGltZW91dD0lZikiLCBsb2FkID09IEZpcnN0TG9hZDo6WWVzLCByZXF1
ZXN0LnRpbWVvdXRJbnRlcnZhbCgpKTsKICAgICBpZiAobG9hZCA9PSBGaXJzdExvYWQ6Olllcykg
ewogICAgICAgICBjb25zdW1lU2FuZGJveEV4dGVuc2lvbnMoKTsKIApAQCAtMzE3LDcgKzMxNiw3
IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydE5ldHdvcmtMb2FkKFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIEZpcnN0TG9hCiAgICAgYXV0byogbmV0d29ya1Nlc3Npb24gPSBt
X2Nvbm5lY3Rpb24tPm5ldHdvcmtTZXNzaW9uKCk7CiAgICAgaWYgKCFuZXR3b3JrU2Vzc2lvbikg
ewogICAgICAgICBXVEZMb2dBbHdheXMoIkF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9h
ZCB3aXRoIGEgc2Vzc2lvbiAoaWQ9JSIgUFJJdTY0ICIpIHRoYXQgZG9lcyBub3QgZXhpc3QuIiwg
c2Vzc2lvbklEKCkudG9VSW50NjQoKSk7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoInN0YXJ0TmV0d29ya0xvYWQ6IEF0dGVtcHRlZCB0byBjcmVhdGUgYSBOZXR3b3JrTG9h
ZCBmb3IgYSBzZXNzaW9uIHRoYXQgZG9lcyBub3QgZXhpc3QgKHNlc3Npb25JRD0lIiBQUkl1NjQg
IikiLCBzZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9H
X0VSUk9SKCJzdGFydE5ldHdvcmtMb2FkOiBBdHRlbXB0ZWQgdG8gY3JlYXRlIGEgTmV0d29ya0xv
YWQgZm9yIGEgc2Vzc2lvbiB0aGF0IGRvZXMgbm90IGV4aXN0IChzZXNzaW9uSUQ9JSIgUFJJdTY0
ICIpIiwgc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7CiAgICAgICAgIG1fY29ubmVjdGlvbi0+bmV0
d29ya1Byb2Nlc3MoKS5sb2dEaWFnbm9zdGljTWVzc2FnZShtX3BhcmFtZXRlcnMud2ViUGFnZVBy
b3h5SUQsIFdlYkNvcmU6OkRpYWdub3N0aWNMb2dnaW5nS2V5czo6aW50ZXJuYWxFcnJvcktleSgp
LCBXZWJDb3JlOjpEaWFnbm9zdGljTG9nZ2luZ0tleXM6OmludmFsaWRTZXNzaW9uSURLZXkoKSwg
V2ViQ29yZTo6U2hvdWxkU2FtcGxlOjpObyk7CiAgICAgICAgIGRpZEZhaWxMb2FkaW5nKGludGVy
bmFsRXJyb3IocmVxdWVzdC51cmwoKSkpOwogICAgICAgICByZXR1cm47CkBAIC0zNDUsNyArMzQ0
LDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnN0YXJ0TmV0d29ya0xvYWQoUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmlyc3RMb2EKICAgICBlbHNlCiAgICAgICAgIG1fbmV0d29y
a0xvYWQtPnN0YXJ0V2l0aFNjaGVkdWxpbmcoKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoInN0YXJ0TmV0d29ya0xvYWQ6IEdvaW5nIHRvIHRoZSBuZXR3b3JrIChkZXNjcmlwdGlvbj0l
IiBQVUJMSUNfTE9HX1NUUklORyAiKSIsIG1fbmV0d29ya0xvYWQtPmRlc2NyaXB0aW9uKCkudXRm
OCgpLmRhdGEoKSk7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJzdGFydE5ldHdvcmtMb2FkOiBH
b2luZyB0byB0aGUgbmV0d29yayAoZGVzY3JpcHRpb249JSIgUFVCTElDX0xPR19TVFJJTkcgIiki
LCBtX25ldHdvcmtMb2FkLT5kZXNjcmlwdGlvbigpLnV0ZjgoKS5kYXRhKCkpOwogfQogCiBSZXNv
dXJjZUxvYWRJbmZvIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzb3VyY2VMb2FkSW5mbygpCkBA
IC00NDQsNyArNDQzLDcgQEAgUmVzb3VyY2VMb2FkSW5mbyBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OnJlc291cmNlTG9hZEluZm8oKQogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNsZWFudXAo
TG9hZFJlc3VsdCByZXN1bHQpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjbGVhbnVwOiAocmVzdWx0PSV1KSIsIHN0YXRpY19j
YXN0PHVuc2lnbmVkPihyZXN1bHQpKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImNsZWFudXA6
IChyZXN1bHQ9JXUpIiwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHJlc3VsdCkpOwogCiAgICAgTmV0
d29ya0FjdGl2aXR5VHJhY2tlcjo6Q29tcGxldGlvbkNvZGUgY29kZSB7IH07CiAgICAgc3dpdGNo
IChyZXN1bHQpIHsKQEAgLTQ3Niw3ICs0NzUsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6Y2xlYW51cChMb2FkUmVzdWx0IHJlc3VsdCkKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmNvbnZlcnRUb0Rvd25sb2FkKERvd25sb2FkSUQgZG93bmxvYWRJRCwgY29uc3QgUmVzb3Vy
Y2VSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsK
LSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb252ZXJ0VG9Eb3dubG9hZDogKGRvd25sb2Fk
SUQ9JSIgUFJJdTY0ICIsIGhhc05ldHdvcmtMb2FkPSVkLCBoYXNSZXNwb25zZUNvbXBsZXRpb25I
YW5kbGVyPSVkKSIsIGRvd25sb2FkSUQudG9VSW50NjQoKSwgISFtX25ldHdvcmtMb2FkLCAhIW1f
cmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcik7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJjb252
ZXJ0VG9Eb3dubG9hZDogKGRvd25sb2FkSUQ9JSIgUFJJdTY0ICIsIGhhc05ldHdvcmtMb2FkPSVk
LCBoYXNSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyPSVkKSIsIGRvd25sb2FkSUQudG9VSW50NjQo
KSwgISFtX25ldHdvcmtMb2FkLCAhIW1fcmVzcG9uc2VDb21wbGV0aW9uSGFuZGxlcik7CiAKICAg
ICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgdGhlIHJlc291cmNlIGNhbWUgZnJvbSB0aGUgZGlzayBj
YWNoZS4KICAgICBpZiAoIW1fbmV0d29ya0xvYWQpIHsKQEAgLTQ5MSwxOSArNDkwLDE5IEBAIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb252ZXJ0VG9Eb3dubG9hZChEb3dubG9hZElEIGRv
d25sb2FkSUQsIGNvbnN0IFJlc291CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9y
dCgpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiYWJvcnQ6IChoYXNOZXR3b3JrTG9h
ZD0lZCkiLCAhIW1fbmV0d29ya0xvYWQpOworICAgIExPQURFUl9SRUxFQVNFX0xPRygiYWJvcnQ6
IChoYXNOZXR3b3JrTG9hZD0lZCkiLCAhIW1fbmV0d29ya0xvYWQpOwogICAgIEFTU0VSVChSdW5M
b29wOjppc01haW4oKSk7CiAKICAgICBpZiAobV9wYXJhbWV0ZXJzLm9wdGlvbnMua2VlcEFsaXZl
ICYmIG1fcmVzcG9uc2UuaXNOdWxsKCkgJiYgIW1faXNLZXB0QWxpdmUpIHsKICAgICAgICAgbV9p
c0tlcHRBbGl2ZSA9IHRydWU7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImFib3J0
OiBLZWVwaW5nIG5ldHdvcmsgbG9hZCBhbGl2ZSBkdWUgdG8ga2VlcGFsaXZlIG9wdGlvbiIpOwor
ICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImFib3J0OiBLZWVwaW5nIG5ldHdvcmsgbG9hZCBh
bGl2ZSBkdWUgdG8ga2VlcGFsaXZlIG9wdGlvbiIpOwogICAgICAgICBtX2Nvbm5lY3Rpb24tPnRy
YW5zZmVyS2VwdEFsaXZlTG9hZCgqdGhpcyk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKGF1dG8gdGFzayA9IFdURk1vdmUobV9z
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJhYm9ydDogQ2FuY2VsbGluZyBwZW5kaW5nIHNlcnZpY2Ugd29ya2VyIGZldGNoIHRhc2sgKGZl
dGNoSWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCB0YXNrLT5mZXRjaElkZW50aWZpZXIoKS50b1VJ
bnQ2NCgpKTsKKyAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJhYm9ydDogQ2FuY2VsbGluZyBw
ZW5kaW5nIHNlcnZpY2Ugd29ya2VyIGZldGNoIHRhc2sgKGZldGNoSWRlbnRpZmllcj0lIiBQUkl1
NjQgIikiLCB0YXNrLT5mZXRjaElkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKICAgICAgICAgdGFz
ay0+Y2FuY2VsRnJvbUNsaWVudCgpOwogICAgIH0KICNlbmRpZgpAQCAtNTE0LDcgKzUxMyw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjphYm9ydCgpCiAgICAgICAgICAgICBpZiAoIW1f
cmVzcG9uc2UuaXNOdWxsKCkpCiAgICAgICAgICAgICAgICAgbV9jYWNoZS0+cmVtb3ZlKG1fbmV0
d29ya0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkpOwogICAgICAgICB9Ci0gICAgICAgIFJFTEVBU0Vf
TE9HX0lGX0FMTE9XRUQoImFib3J0OiBDYW5jZWxsaW5nIG5ldHdvcmsgbG9hZCIpOworICAgICAg
ICBMT0FERVJfUkVMRUFTRV9MT0coImFib3J0OiBDYW5jZWxsaW5nIG5ldHdvcmsgbG9hZCIpOwog
ICAgICAgICBtX25ldHdvcmtMb2FkLT5jYW5jZWwoKTsKICAgICB9CiAKQEAgLTU4Niw3ICs1ODUs
NyBAQCBib29sIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2hvdWxkSW50ZXJydXB0TG9hZEZvckNT
UEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpbwogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJlc3BvbnNl
LCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3BvbnNlOiAoaHR0cFN0YXR1c0Nv
ZGU9JWQsIE1JTUVUeXBlPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGV4cGVjdGVkQ29udGVudExl
bmd0aD0lIiBQUklkNjQgIiwgaGFzQ2FjaGVkRW50cnlGb3JWYWxpZGF0aW9uPSVkLCBoYXNOZXR3
b3JrTG9hZENoZWNrZXI9JWQpIiwgcmVjZWl2ZWRSZXNwb25zZS5odHRwU3RhdHVzQ29kZSgpLCBy
ZWNlaXZlZFJlc3BvbnNlLm1pbWVUeXBlKCkudXRmOCgpLmRhdGEoKSwgcmVjZWl2ZWRSZXNwb25z
ZS5leHBlY3RlZENvbnRlbnRMZW5ndGgoKSwgISFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uLCAh
IW1fbmV0d29ya0xvYWRDaGVja2VyKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZFJlY2Vp
dmVSZXNwb25zZTogKGh0dHBTdGF0dXNDb2RlPSVkLCBNSU1FVHlwZT0lIiBQVUJMSUNfTE9HX1NU
UklORyAiLCBleHBlY3RlZENvbnRlbnRMZW5ndGg9JSIgUFJJZDY0ICIsIGhhc0NhY2hlZEVudHJ5
Rm9yVmFsaWRhdGlvbj0lZCwgaGFzTmV0d29ya0xvYWRDaGVja2VyPSVkKSIsIHJlY2VpdmVkUmVz
cG9uc2UuaHR0cFN0YXR1c0NvZGUoKSwgcmVjZWl2ZWRSZXNwb25zZS5taW1lVHlwZSgpLnV0Zjgo
KS5kYXRhKCksIHJlY2VpdmVkUmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCksICEhbV9j
YWNoZUVudHJ5Rm9yVmFsaWRhdGlvbiwgISFtX25ldHdvcmtMb2FkQ2hlY2tlcik7CiAKICAgICBp
ZiAoaXNNYWluUmVzb3VyY2UoKSkKICAgICAgICAgZGlkUmVjZWl2ZU1haW5SZXNvdXJjZVJlc3Bv
bnNlKHJlY2VpdmVkUmVzcG9uc2UpOwpAQCAtNjA4LDcgKzYwNyw3IEBAIHZvaWQgTmV0d29ya1Jl
c291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJlY2Vp
dmVkUmVzcG9uCiAKICAgICBpZiAobV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbikgewogICAgICAg
ICBib29sIHZhbGlkYXRpb25TdWNjZWVkZWQgPSBtX3Jlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkg
PT0gMzA0OyAvLyAzMDQgTm90IE1vZGlmaWVkCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImRpZFJlY2VpdmVSZXNwb25zZTogUmVjZWl2ZWQgcmV2YWxpZGF0aW9uIHJlc3BvbnNlICh2
YWxpZGF0aW9uU3VjY2VlZGVkPSVkLCB3YXNPcmlnaW5hbFJlcXVlc3RDb25kaXRpb25hbD0lZCki
LCB2YWxpZGF0aW9uU3VjY2VlZGVkLCBvcmlnaW5hbFJlcXVlc3QoKS5pc0NvbmRpdGlvbmFsKCkp
OworICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVSZXNwb25zZTogUmVjZWl2
ZWQgcmV2YWxpZGF0aW9uIHJlc3BvbnNlICh2YWxpZGF0aW9uU3VjY2VlZGVkPSVkLCB3YXNPcmln
aW5hbFJlcXVlc3RDb25kaXRpb25hbD0lZCkiLCB2YWxpZGF0aW9uU3VjY2VlZGVkLCBvcmlnaW5h
bFJlcXVlc3QoKS5pc0NvbmRpdGlvbmFsKCkpOwogICAgICAgICBpZiAodmFsaWRhdGlvblN1Y2Nl
ZWRlZCkgewogICAgICAgICAgICAgbV9jYWNoZUVudHJ5Rm9yVmFsaWRhdGlvbiA9IG1fY2FjaGUt
PnVwZGF0ZShvcmlnaW5hbFJlcXVlc3QoKSwgKm1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24sIG1f
cmVzcG9uc2UpOwogICAgICAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3Qgd2FzIGNvbmRpdGlvbmFs
IHRoZW4gdGhpcyByZXZhbGlkYXRpb24gd2FzIG5vdCB0cmlnZ2VyZWQgYnkgdGhlIG5ldHdvcmsg
Y2FjaGUgYW5kIHdlIHBhc3MgdGhlIDMwNCByZXNwb25zZSB0byBXZWJDb3JlLgpAQCAtNjIxLDcg
KzYyMCw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZWNlaXZlUmVzcG9uc2Uo
UmVzb3VyY2VSZXNwb25zZSYmIHJlY2VpdmVkUmVzcG9uCiAgICAgICAgIHJldHVybiBjb21wbGV0
aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246OlVzZSk7CiAKICAgICBpZiAoaXNNYWluUmVzb3VyY2Uo
KSAmJiBzaG91bGRJbnRlcnJ1cHRMb2FkRm9yQ1NQRnJhbWVBbmNlc3RvcnNPclhGcmFtZU9wdGlv
bnMobV9yZXNwb25zZSkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgi
ZGlkUmVjZWl2ZVJlc3BvbnNlOiBJbnRlcnJ1cHRpbmcgbWFpbiByZXNvdXJjZSBsb2FkIGR1ZSB0
byBDU1AgZnJhbWUtYW5jZXN0b3JzIG9yIFgtRnJhbWUtT3B0aW9ucyIpOworICAgICAgICBMT0FE
RVJfUkVMRUFTRV9MT0dfRVJST1IoImRpZFJlY2VpdmVSZXNwb25zZTogSW50ZXJydXB0aW5nIG1h
aW4gcmVzb3VyY2UgbG9hZCBkdWUgdG8gQ1NQIGZyYW1lLWFuY2VzdG9ycyBvciBYLUZyYW1lLU9w
dGlvbnMiKTsKICAgICAgICAgYXV0byByZXNwb25zZSA9IHNhbml0aXplUmVzcG9uc2VJZlBvc3Np
YmxlKFJlc291cmNlUmVzcG9uc2UgeyBtX3Jlc3BvbnNlIH0sIFJlc291cmNlUmVzcG9uc2U6OlNh
bml0aXphdGlvblR5cGU6OkNyb3NzT3JpZ2luU2FmZSk7CiAgICAgICAgIHNlbmQoTWVzc2FnZXM6
OldlYlJlc291cmNlTG9hZGVyOjpTdG9wTG9hZGluZ0FmdGVyWEZyYW1lT3B0aW9uc09yQ29udGVu
dFNlY3VyaXR5UG9saWN5RGVuaWVkIHsgcmVzcG9uc2UgfSk7CiAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9yZSk7CkBAIC02MzAsNyArNjI5LDcgQEAg
dm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJl
c3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsK
ICAgICAgICAgYXV0byBlcnJvciA9IG1fbmV0d29ya0xvYWRDaGVja2VyLT52YWxpZGF0ZVJlc3Bv
bnNlKG1fbmV0d29ya0xvYWQgPyBtX25ldHdvcmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpIDogb3Jp
Z2luYWxSZXF1ZXN0KCksIG1fcmVzcG9uc2UpOwogICAgICAgICBpZiAoIWVycm9yLmlzTnVsbCgp
KSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRSZWNlaXZl
UmVzcG9uc2U6IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSByZXR1cm5lZCBh
biBlcnJvciAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGVycm9yLmNvZGU9
JWQpIiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwor
ICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SKCJkaWRSZWNlaXZlUmVzcG9uc2U6
IE5ldHdvcmtMb2FkQ2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSByZXR1cm5lZCBhbiBlcnJvciAo
ZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5HICIsIGVycm9yLmNvZGU9JWQpIiwgZXJy
b3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3IuZXJyb3JDb2RlKCkpOwogICAgICAgICAg
ICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhp
cyksIGVycm9yID0gV1RGTW92ZShlcnJvcildIHsKICAgICAgICAgICAgICAgICBpZiAocHJvdGVj
dGVkVGhpcy0+bV9uZXR3b3JrTG9hZCkKICAgICAgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+ZGlkRmFpbExvYWRpbmcoZXJyb3IpOwpAQCAtNjQxLDE1ICs2NDAsMTUgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYg
cmVjZWl2ZWRSZXNwb24KIAogICAgIGF1dG8gcmVzcG9uc2UgPSBzYW5pdGl6ZVJlc3BvbnNlSWZQ
b3NzaWJsZShSZXNvdXJjZVJlc3BvbnNlIHsgbV9yZXNwb25zZSB9LCBSZXNvdXJjZVJlc3BvbnNl
OjpTYW5pdGl6YXRpb25UeXBlOjpDcm9zc09yaWdpblNhZmUpOwogICAgIGlmIChpc1N5bmNocm9u
b3VzKCkpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3Bv
bnNlOiBVc2luZyByZXNwb25zZSBmb3Igc3luY2hyb25vdXMgbG9hZCIpOworICAgICAgICBMT0FE
RVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVSZXNwb25zZTogVXNpbmcgcmVzcG9uc2UgZm9yIHN5
bmNocm9ub3VzIGxvYWQiKTsKICAgICAgICAgbV9zeW5jaHJvbm91c0xvYWREYXRhLT5yZXNwb25z
ZSA9IFdURk1vdmUocmVzcG9uc2UpOwogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIo
UG9saWN5QWN0aW9uOjpVc2UpOwogICAgIH0KIAogICAgIGlmIChpc0Nyb3NzT3JpZ2luUHJlZmV0
Y2goKSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9u
c2U6IFVzaW5nIHJlc3BvbnNlIGZvciBjcm9zcy1vcmlnaW4gcHJlZmV0Y2giKTsKKyAgICAgICAg
TE9BREVSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlUmVzcG9uc2U6IFVzaW5nIHJlc3BvbnNlIGZv
ciBjcm9zcy1vcmlnaW4gcHJlZmV0Y2giKTsKICAgICAgICAgaWYgKHJlc3BvbnNlLmh0dHBIZWFk
ZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6VmFyeSkuY29udGFpbnMoIkNvb2tpZSIpKSB7Ci0gICAg
ICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IENhbmNl
bGluZyBjcm9zcy1vcmlnaW4gcHJlZmV0Y2ggZm9yIFZhcnk6IENvb2tpZSIpOworICAgICAgICAg
ICAgTE9BREVSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlUmVzcG9uc2U6IENhbmNlbGluZyBjcm9z
cy1vcmlnaW4gcHJlZmV0Y2ggZm9yIFZhcnk6IENvb2tpZSIpOwogICAgICAgICAgICAgYWJvcnQo
KTsKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Okln
bm9yZSk7CiAgICAgICAgIH0KQEAgLTY1OSw3ICs2NTgsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZWNlaXZlZFJl
c3BvbgogICAgIC8vIFdlIHdhaXQgdG8gcmVjZWl2ZSBtZXNzYWdlIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UgYmVmb3JlIGNvbnRpbnVpbmcgYSBsb2Fk
IGZvcgogICAgIC8vIGEgbWFpbiByZXNvdXJjZSBiZWNhdXNlIHRoZSBlbWJlZGRpbmcgY2xpZW50
IG11c3QgZGVjaWRlIHdoZXRoZXIgdG8gYWxsb3cgdGhlIGxvYWQuCiAgICAgYm9vbCB3aWxsV2Fp
dEZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlID0gaXNNYWluUmVzb3VyY2UoKTsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IFNlbmRpbmcgV2ViUmVz
b3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVSZXNwb25zZSBJUEMgKHdpbGxXYWl0Rm9yQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2U9JWQpIiwgd2lsbFdhaXRGb3JDb250aW51ZURpZFJlY2VpdmVSZXNw
b25zZSk7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlUmVzcG9uc2U6IFNlbmRp
bmcgV2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVSZXNwb25zZSBJUEMgKHdpbGxXYWl0Rm9y
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2U9JWQpIiwgd2lsbFdhaXRGb3JDb250aW51ZURpZFJl
Y2VpdmVSZXNwb25zZSk7CiAgICAgc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OkRp
ZFJlY2VpdmVSZXNwb25zZSB7IHJlc3BvbnNlLCB3aWxsV2FpdEZvckNvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlIH0pOwogCiAgICAgaWYgKG1fcGFyYW1ldGVycy5wYWdlSGFzUmVzb3VyY2VMb2Fk
Q2xpZW50KQpAQCAtNjcxLDE4ICs2NzAsMTggQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6
OmRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVjZWl2ZWRSZXNwb24KICAg
ICB9CiAKICAgICBpZiAobV9pc0tlcHRBbGl2ZSkgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IElnbm9yaW5nIHJlc3BvbnNlIGJlY2F1c2Ugb2Yg
a2VlcGFsaXZlIG9wdGlvbiIpOworICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZFJlY2Vp
dmVSZXNwb25zZTogSWdub3JpbmcgcmVzcG9uc2UgYmVjYXVzZSBvZiBrZWVwYWxpdmUgb3B0aW9u
Iik7CiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihQb2xpY3lBY3Rpb246Oklnbm9y
ZSk7CiAgICAgfQogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmVjZWl2ZVJlc3Bv
bnNlOiBVc2luZyByZXNwb25zZSIpOworICAgIExPQURFUl9SRUxFQVNFX0xPRygiZGlkUmVjZWl2
ZVJlc3BvbnNlOiBVc2luZyByZXNwb25zZSIpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFBvbGlj
eUFjdGlvbjo6VXNlKTsKIH0KIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2Vp
dmVCdWZmZXIoUmVmPFNoYXJlZEJ1ZmZlcj4mJiBidWZmZXIsIGludCByZXBvcnRlZEVuY29kZWRE
YXRhTGVuZ3RoKQogewogICAgIGlmICghbV9udW1CeXRlc1JlY2VpdmVkKQotICAgICAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQnVmZmVyOiBTdGFydGVkIHJlY2VpdmluZyBk
YXRhIChyZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoPSVkKSIsIHJlcG9ydGVkRW5jb2RlZERhdGFM
ZW5ndGgpOworICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVCdWZmZXI6IFN0
YXJ0ZWQgcmVjZWl2aW5nIGRhdGEgKHJlcG9ydGVkRW5jb2RlZERhdGFMZW5ndGg9JWQpIiwgcmVw
b3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCk7CiAgICAgbV9udW1CeXRlc1JlY2VpdmVkICs9IGJ1ZmZl
ci0+c2l6ZSgpOwogCiAgICAgQVNTRVJUKCFtX2NhY2hlRW50cnlGb3JWYWxpZGF0aW9uKTsKQEAg
LTcxMSw3ICs3MTAsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmVjZWl2ZUJ1
ZmZlcihSZWY8U2hhcmVkQnVmZmVyPiYmIGJ1ZmZlciwgaW50IHJlcAogCiB2b2lkIE5ldHdvcmtS
ZXNvdXJjZUxvYWRlcjo6ZGlkRmluaXNoTG9hZGluZyhjb25zdCBOZXR3b3JrTG9hZE1ldHJpY3Mm
IG5ldHdvcmtMb2FkTWV0cmljcykKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRG
aW5pc2hMb2FkaW5nOiAobnVtQnl0ZXNSZWNlaXZlZD0lemQsIGhhc0NhY2hlRW50cnlGb3JWYWxp
ZGF0aW9uPSVkKSIsIG1fbnVtQnl0ZXNSZWNlaXZlZCwgISFtX2NhY2hlRW50cnlGb3JWYWxpZGF0
aW9uKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpZEZpbmlzaExvYWRpbmc6IChudW1CeXRl
c1JlY2VpdmVkPSV6ZCwgaGFzQ2FjaGVFbnRyeUZvclZhbGlkYXRpb249JWQpIiwgbV9udW1CeXRl
c1JlY2VpdmVkLCAhIW1fY2FjaGVFbnRyeUZvclZhbGlkYXRpb24pOwogCiAgICAgaWYgKHNob3Vs
ZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpKQogICAgICAgICBtX2Nvbm5lY3Rpb24t
PmFkZE5ldHdvcmtMb2FkSW5mb3JtYXRpb25NZXRyaWNzKGlkZW50aWZpZXIoKSwgbmV0d29ya0xv
YWRNZXRyaWNzKTsKQEAgLTc1Myw3ICs3NTIsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRl
cjo6ZGlkRmFpbExvYWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAjaWYgRU5BQkxF
KFNFUlZJQ0VfV09SS0VSKQogICAgIHdhc1NlcnZpY2VXb3JrZXJMb2FkID0gISFtX3NlcnZpY2VX
b3JrZXJGZXRjaFRhc2s7CiAjZW5kaWYKLSAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VE
KCJkaWRGYWlsTG9hZGluZzogKHdhc1NlcnZpY2VXb3JrZXJMb2FkPSVkLCBpc1RpbWVvdXQ9JWQs
IGlzQ2FuY2VsbGF0aW9uPSVkLCBpc0FjY2Vzc0NvbnRyb2w9JWQsIGVycm9yQ29kZT0lZCkiLCB3
YXNTZXJ2aWNlV29ya2VyTG9hZCwgZXJyb3IuaXNUaW1lb3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0
aW9uKCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAg
TE9BREVSX1JFTEVBU0VfTE9HX0VSUk9SKCJkaWRGYWlsTG9hZGluZzogKHdhc1NlcnZpY2VXb3Jr
ZXJMb2FkPSVkLCBpc1RpbWVvdXQ9JWQsIGlzQ2FuY2VsbGF0aW9uPSVkLCBpc0FjY2Vzc0NvbnRy
b2w9JWQsIGVycm9yQ29kZT0lZCkiLCB3YXNTZXJ2aWNlV29ya2VyTG9hZCwgZXJyb3IuaXNUaW1l
b3V0KCksIGVycm9yLmlzQ2FuY2VsbGF0aW9uKCksIGVycm9yLmlzQWNjZXNzQ29udHJvbCgpLCBl
cnJvci5lcnJvckNvZGUoKSk7CiAgICAgVU5VU0VEX1ZBUklBQkxFKHdhc1NlcnZpY2VXb3JrZXJM
b2FkKTsKIAogICAgIGlmIChzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkK
QEAgLTc4NSw3ICs3ODQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkRmFpbExv
YWRpbmcoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IpCiAKIHZvaWQgTmV0d29ya1Jlc291cmNl
TG9hZGVyOjpkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKCkKIHsKLSAgICBSRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJkaWRCbG9ja0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOiIpOworICAg
IExPQURFUl9SRUxFQVNFX0xPRygiZGlkQmxvY2tBdXRoZW50aWNhdGlvbkNoYWxsZW5nZToiKTsK
ICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRlcjo6RGlkQmxvY2tBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSgpKTsKIH0KIApAQCAtODE5LDcgKzgxOCw3IEBAIHN0ZDo6b3B0aW9uYWw8
U2Vjb25kcz4gTmV0d29ya1Jlc291cmNlTG9hZGVyOjp2YWxpZGF0ZUNhY2hlRW50cnlGb3JNYXhB
Z2VDYXBWYWxpCiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0
ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFJlc291cmNlUmVxdWVzdCYmIHJl
ZGlyZWN0UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UpCiB7Ci0g
ICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDoiKTsK
KyAgICBMT0FERVJfUkVMRUFTRV9MT0coIndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3Q6Iik7CiAg
ICAgKyttX3JlZGlyZWN0Q291bnQ7CiAgICAgbV9yZWRpcmVjdFJlc3BvbnNlID0gcmVkaXJlY3RS
ZXNwb25zZTsKIApAQCAtODQwLDIwICs4MzksMjAgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OndpbGxTZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwK
ICAgICAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5lbmFibGVDb250ZW50RXh0ZW5zaW9u
c0NoZWNrKCk7CiAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZVJlZGlyZWN0aW9u
SWZOZWVkZWQocmVxdWVzdCwgcmVkaXJlY3RSZXNwb25zZSk7CiAKLSAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogQ2hlY2tpbmcgcmVkaXJl
Y3QgdXNpbmcgTmV0d29ya0xvYWRDaGVja2VyIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xP
Rygid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogQ2hlY2tpbmcgcmVkaXJlY3QgdXNpbmcgTmV0
d29ya0xvYWRDaGVja2VyIik7CiAgICAgICAgIG1fbmV0d29ya0xvYWRDaGVja2VyLT5jaGVja1Jl
ZGlyZWN0aW9uKFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVkaXJlY3RSZXF1ZXN0KSwgV1RG
TW92ZShyZWRpcmVjdFJlc3BvbnNlKSwgdGhpcywgW3Byb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0
aGlzKSwgdGhpcywgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgPSBtX25ldHdvcmtMb2FkQ2hlY2tl
ci0+c3RvcmVkQ3JlZGVudGlhbHNQb2xpY3koKSwgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAg
IGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHJlc3VsdC5l
cnJvcigpLmlzQ2FuY2VsbGF0aW9uKCkpIHsKLSAgICAgICAgICAgICAgICAgICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogTmV0d29ya0xvYWRDaGVj
a2VyOjpjaGVja1JlZGlyZWN0aW9uIHJldHVybmVkIHdpdGggYSBjYW5jZWxsYXRpb24iKTsKKyAg
ICAgICAgICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJ3aWxsU2VuZFJlZGlyZWN0ZWRS
ZXF1ZXN0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24gcmV0dXJuZWQgd2l0
aCBhIGNhbmNlbGxhdGlvbiIpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAg
ICAgICAgICAgfQogCi0gICAgICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RCgid2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogTmV0d29ya0xvYWRDaGVja2VyOjpjaGVja1Jl
ZGlyZWN0aW9uIHJldHVybmVkIGFuIGVycm9yIik7CisgICAgICAgICAgICAgICAgTE9BREVSX1JF
TEVBU0VfTE9HX0VSUk9SKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9hZENo
ZWNrZXI6OmNoZWNrUmVkaXJlY3Rpb24gcmV0dXJuZWQgYW4gZXJyb3IiKTsKICAgICAgICAgICAg
ICAgICB0aGlzLT5kaWRGYWlsTG9hZGluZyhyZXN1bHQuZXJyb3IoKSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNo
ZWNrUmVkaXJlY3Rpb24gaXMgZG9uZSIpOworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9H
KCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBOZXR3b3JrTG9hZENoZWNrZXI6OmNoZWNrUmVk
aXJlY3Rpb24gaXMgZG9uZSIpOwogICAgICAgICAgICAgaWYgKG1fcGFyYW1ldGVycy5vcHRpb25z
LnJlZGlyZWN0ID09IEZldGNoT3B0aW9uczo6UmVkaXJlY3Q6Ok1hbnVhbCkgewogICAgICAgICAg
ICAgICAgIHRoaXMtPmRpZEZpbmlzaFdpdGhSZWRpcmVjdFJlc3BvbnNlKFdURk1vdmUocmVzdWx0
LT5yZXF1ZXN0KSwgV1RGTW92ZShyZXN1bHQtPnJlZGlyZWN0UmVxdWVzdCksIFdURk1vdmUocmVz
dWx0LT5yZWRpcmVjdFJlc3BvbnNlKSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwpAQCAtODYy
LDcgKzg2MSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjp3aWxsU2VuZFJlZGlyZWN0
ZWRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsCiAgICAgICAgICAgICBpZiAodGhp
cy0+aXNTeW5jaHJvbm91cygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKHN0b3JlZENyZWRlbnRp
YWxzUG9saWN5ICE9IG1fbmV0d29ya0xvYWRDaGVja2VyLT5zdG9yZWRDcmVkZW50aWFsc1BvbGlj
eSgpKSB7CiAgICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcmVzdGFydCB0aGUgbG9h
ZCB0byB1cGRhdGUgdGhlIHNlc3Npb24gYWNjb3JkaW5nIHRoZSBuZXcgY3JlZGVudGlhbCBwb2xp
Y3kuCi0gICAgICAgICAgICAgICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndpbGxTZW5k
UmVkaXJlY3RlZFJlcXVlc3Q6IFJlc3RhcnRpbmcgbmV0d29yayBsb2FkIGR1ZSB0byBjcmVkZW50
aWFsIHBvbGljeSBjaGFuZ2UgZm9yIHN5bmNocm9ub3VzIGxvYWQiKTsKKyAgICAgICAgICAgICAg
ICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJ3aWxsU2VuZFJlZGlyZWN0ZWRSZXF1ZXN0OiBSZXN0
YXJ0aW5nIG5ldHdvcmsgbG9hZCBkdWUgdG8gY3JlZGVudGlhbCBwb2xpY3kgY2hhbmdlIGZvciBz
eW5jaHJvbm91cyBsb2FkIik7CiAgICAgICAgICAgICAgICAgICAgIHRoaXMtPnJlc3RhcnROZXR3
b3JrTG9hZChXVEZNb3ZlKHJlc3VsdC0+cmVkaXJlY3RSZXF1ZXN0KSk7CiAgICAgICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgICB9CkBAIC04ODUsNyArODg0LDcgQEAgdm9p
ZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVz
dChSZXNvdXJjZVJlcXVlc3QmJgogewogICAgIHJlZGlyZWN0UmVxdWVzdC5zZXRJc0FwcEJvdW5k
KHJlcXVlc3QuaXNBcHBCb3VuZCgpKTsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNv
bnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogKG1faXNLZXB0QWxpdmU9JWQsIGhhc0Fk
Q2xpY2tDb252ZXJzaW9uPSVkKSIsIG1faXNLZXB0QWxpdmUsICEhcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImNv
bnRpbnVlV2lsbFNlbmRSZWRpcmVjdGVkUmVxdWVzdDogKG1faXNLZXB0QWxpdmU9JWQsIGhhc0Fk
Q2xpY2tDb252ZXJzaW9uPSVkKSIsIG1faXNLZXB0QWxpdmUsICEhcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKICAgICBBU1NFUlQoIWlzU3luY2hyb25vdXMo
KSk7CiAKICAgICBOZXR3b3JrU2Vzc2lvbiogbmV0d29ya1Nlc3Npb24gPSBudWxscHRyOwpAQCAt
OTA0LDcgKzkwMyw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxT
ZW5kUmVkaXJlY3RlZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYKIAogdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmRpZEZpbmlzaFdpdGhSZWRpcmVjdFJlc3BvbnNlKFdlYkNvcmU6OlJlc291
cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIHJlZGlyZWN0
UmVxdWVzdCwgUmVzb3VyY2VSZXNwb25zZSYmIHJlZGlyZWN0UmVzcG9uc2UpCiB7Ci0gICAgUkVM
RUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkRmluaXNoV2l0aFJlZGlyZWN0UmVzcG9uc2U6Iik7Cisg
ICAgTE9BREVSX1JFTEVBU0VfTE9HKCJkaWRGaW5pc2hXaXRoUmVkaXJlY3RSZXNwb25zZToiKTsK
ICAgICByZWRpcmVjdFJlc3BvbnNlLnNldFR5cGUoUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6T3Bh
cXVlcmVkaXJlY3QpOwogICAgIGlmICghaXNDcm9zc09yaWdpblByZWZldGNoKCkpCiAgICAgICAg
IGRpZFJlY2VpdmVSZXNwb25zZShXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCBbXSAoYXV0bykg
eyB9KTsKQEAgLTk0MCwxMCArOTM5LDEwIEBAIFJlc291cmNlUmVzcG9uc2UgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpzYW5pdGl6ZVJlc3BvbnNlSWZQb3NzaWJsZShSZXNvdXJjZVJlc3BvCiAKIHZv
aWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpyZXN0YXJ0TmV0d29ya0xvYWQoV2ViQ29yZTo6UmVz
b3VyY2VSZXF1ZXN0JiYgbmV3UmVxdWVzdCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KCJyZXN0YXJ0TmV0d29ya0xvYWQ6IChoYXNOZXR3b3JrTG9hZD0lZCkiLCAhIW1fbmV0d29ya0xv
YWQpOworICAgIExPQURFUl9SRUxFQVNFX0xPRygicmVzdGFydE5ldHdvcmtMb2FkOiAoaGFzTmV0
d29ya0xvYWQ9JWQpIiwgISFtX25ldHdvcmtMb2FkKTsKIAogICAgIGlmIChtX25ldHdvcmtMb2Fk
KSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJlc3RhcnROZXR3b3JrTG9hZDog
Q2FuY2VsbGluZyBleGlzdGluZyBuZXR3b3JrIGxvYWQgc28gd2UgY2FuIHJlc3RhcnQgdGhlIGxv
YWQuIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygicmVzdGFydE5ldHdvcmtMb2FkOiBD
YW5jZWxsaW5nIGV4aXN0aW5nIG5ldHdvcmsgbG9hZCBzbyB3ZSBjYW4gcmVzdGFydCB0aGUgbG9h
ZC4iKTsKICAgICAgICAgbV9uZXR3b3JrTG9hZC0+Y2FuY2VsKCk7CiAgICAgfQogCkBAIC05NTIs
MjIgKzk1MSwyMiBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6cmVzdGFydE5ldHdvcmtM
b2FkKFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYmIG5ld1JlcQogCiB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgbmV3
UmVxdWVzdCwgYm9vbCBpc0FsbG93ZWRUb0Fza1VzZXJGb3JDcmVkZW50aWFscykKIHsKLSAgICBS
RUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogKGlzQWxsb3dl
ZFRvQXNrVXNlckZvckNyZWRlbnRpYWxzPSVkKSIsIGlzQWxsb3dlZFRvQXNrVXNlckZvckNyZWRl
bnRpYWxzKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0
OiAoaXNBbGxvd2VkVG9Bc2tVc2VyRm9yQ3JlZGVudGlhbHM9JWQpIiwgaXNBbGxvd2VkVG9Bc2tV
c2VyRm9yQ3JlZGVudGlhbHMpOwogCiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogICAgIGlm
IChwYXJhbWV0ZXJzKCkub3B0aW9ucy5tb2RlID09IEZldGNoT3B0aW9uczo6TW9kZTo6TmF2aWdh
dGUpIHsKICAgICAgICAgaWYgKGF1dG8gc2VydmljZVdvcmtlckZldGNoVGFzayA9IG1fY29ubmVj
dGlvbi0+Y3JlYXRlRmV0Y2hUYXNrKCp0aGlzLCBuZXdSZXF1ZXN0KSkgewotICAgICAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IENyZWF0ZWQg
YSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHRvIGhhbmRsZSB0aGUgcmVkaXJlY3QgKGZldGNoSWRl
bnRpZmllcj0lIiBQUkl1NjQgIikiLCBzZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLT5mZXRjaElkZW50
aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygiY29u
dGludWVXaWxsU2VuZFJlcXVlc3Q6IENyZWF0ZWQgYSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrIHRv
IGhhbmRsZSB0aGUgcmVkaXJlY3QgKGZldGNoSWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCBzZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrLT5mZXRjaElkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKICAgICAg
ICAgICAgIG1fbmV0d29ya0xvYWQgPSBudWxscHRyOwogICAgICAgICAgICAgbV9zZXJ2aWNlV29y
a2VyRmV0Y2hUYXNrID0gV1RGTW92ZShzZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJj
b250aW51ZVdpbGxTZW5kUmVxdWVzdDogTmF2aWdhdGlvbiBpcyBub3QgdXNpbmcgc2VydmljZSB3
b3JrZXJzIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygiY29udGludWVXaWxsU2VuZFJl
cXVlc3Q6IE5hdmlnYXRpb24gaXMgbm90IHVzaW5nIHNlcnZpY2Ugd29ya2VycyIpOwogICAgICAg
ICBtX3Nob3VsZFJlc3RhcnRMb2FkID0gISFtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2s7CiAgICAg
ICAgIG1fc2VydmljZVdvcmtlckZldGNoVGFzayA9IG51bGxwdHI7CiAgICAgfQogICAgIGlmICht
X3NlcnZpY2VXb3JrZXJGZXRjaFRhc2spIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiY29udGludWVXaWxsU2VuZFJlcXVlc3Q6IENvbnRpbnVpbmcgZmV0Y2ggdGFzayB3aXRoIHJl
ZGlyZWN0IChmZXRjaElkZW50aWZpZXI9JSIgUFJJdTY0ICIpIiwgbV9zZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLT5mZXRjaElkZW50aWZpZXIoKS50b1VJbnQ2NCgpKTsKKyAgICAgICAgTE9BREVSX1JF
TEVBU0VfTE9HKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogQ29udGludWluZyBmZXRjaCB0YXNr
IHdpdGggcmVkaXJlY3QgKGZldGNoSWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCBtX3NlcnZpY2VX
b3JrZXJGZXRjaFRhc2stPmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogICAgICAgICBt
X3NlcnZpY2VXb3JrZXJGZXRjaFRhc2stPmNvbnRpbnVlRmV0Y2hUYXNrV2l0aChXVEZNb3ZlKG5l
d1JlcXVlc3QpKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTk3OSw3ICs5NzgsNyBAQCB2
b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6Y29udGludWVXaWxsU2VuZFJlcXVlc3QoUmVzb3Vy
Y2VSZXF1ZXN0JiYgbmV3UmVxdWVzdAogICAgICAgICBpZiAobV9uZXR3b3JrTG9hZCkKICAgICAg
ICAgICAgIG1fbmV0d29ya0xvYWQtPnVwZGF0ZVJlcXVlc3RBZnRlclJlZGlyZWN0aW9uKG5ld1Jl
cXVlc3QpOwogCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNl
bmRSZXF1ZXN0OiBSZXN0YXJ0aW5nIG5ldHdvcmsgbG9hZCIpOworICAgICAgICBMT0FERVJfUkVM
RUFTRV9MT0coImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiBSZXN0YXJ0aW5nIG5ldHdvcmsgbG9h
ZCIpOwogICAgICAgICByZXN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShuZXdSZXF1ZXN0KSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CkBAIC05ODcsNyArOTg2LDcgQEAgdm9pZCBOZXR3b3JrUmVz
b3VyY2VMb2FkZXI6OmNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIG5l
d1JlcXVlc3QKICAgICBpZiAobV9uZXR3b3JrTG9hZENoZWNrZXIpIHsKICAgICAgICAgLy8gRklY
TUU6IFdlIHNob3VsZCBiZSBkb2luZyB0aGlzIGNoZWNrIHdoZW4gcmVjZWl2aW5nIHRoZSByZWRp
cmVjdGlvbiBhbmQgbm90IGFsbG93IGFib3V0IHByb3RvY29sIGFzIHBlciBmZXRjaCBzcGVjLgog
ICAgICAgICBpZiAoIW5ld1JlcXVlc3QudXJsKCkucHJvdG9jb2xJc0luSFRUUEZhbWlseSgpICYm
ICFuZXdSZXF1ZXN0LnVybCgpLnByb3RvY29sSXNBYm91dCgpICYmIG1fcmVkaXJlY3RDb3VudCkg
ewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgiY29udGludWVXaWxs
U2VuZFJlcXVlc3Q6IEZhaWxpbmcgbG9hZCBiZWNhdXNlIGl0IHJlZGlyZWN0ZWQgdG8gYSBzY2hl
bWUgdGhhdCBpcyBub3QgSFRUUChTKSIpOworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9H
X0VSUk9SKCJjb250aW51ZVdpbGxTZW5kUmVxdWVzdDogRmFpbGluZyBsb2FkIGJlY2F1c2UgaXQg
cmVkaXJlY3RlZCB0byBhIHNjaGVtZSB0aGF0IGlzIG5vdCBIVFRQKFMpIik7CiAgICAgICAgICAg
ICBkaWRGYWlsTG9hZGluZyhSZXNvdXJjZUVycm9yIHsgU3RyaW5nIHsgfSwgMCwgbmV3UmVxdWVz
dC51cmwoKSwgIlJlZGlyZWN0aW9uIHRvIFVSTCB3aXRoIGEgc2NoZW1lIHRoYXQgaXMgbm90IEhU
VFAoUykiX3MsIFJlc291cmNlRXJyb3I6OlR5cGU6OkFjY2Vzc0NvbnRyb2wgfSk7CiAgICAgICAg
ICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEwMDMsNyArMTAwMiw3IEBAIHZvaWQgTmV0d29y
a1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3Qm
JiBuZXdSZXF1ZXN0CiAgICAgICAgIG1faXNXYWl0aW5nQ29udGludWVXaWxsU2VuZFJlcXVlc3RG
b3JDYWNoZWRSZWRpcmVjdCA9IGZhbHNlOwogCiAgICAgICAgIExPRyhOZXR3b3JrQ2FjaGUsICIo
TmV0d29ya1Byb2Nlc3MpIFJldHJpZXZpbmcgY2FjaGVkIHJlZGlyZWN0Iik7Ci0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiBtX2lzV2FpdGlu
Z0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3Qgd2FzIHNldCIpOworICAg
ICAgICBMT0FERVJfUkVMRUFTRV9MT0coImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiBtX2lzV2Fp
dGluZ0NvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVkUmVkaXJlY3Qgd2FzIHNldCIpOwog
CiAgICAgICAgIGlmIChjYW5Vc2VDYWNoZWRSZWRpcmVjdChuZXdSZXF1ZXN0KSkKICAgICAgICAg
ICAgIHJldHJpZXZlQ2FjaGVFbnRyeShuZXdSZXF1ZXN0KTsKQEAgLTEwMTQsNyArMTAxMyw3IEBA
IHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNv
dXJjZVJlcXVlc3QmJiBuZXdSZXF1ZXN0CiAgICAgfQogCiAgICAgaWYgKG1fbmV0d29ya0xvYWQp
IHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVXaWxsU2VuZFJlcXVl
c3Q6IFRlbGxpbmcgTmV0d29ya0xvYWQgdG8gcHJvY2VlZCB3aXRoIHRoZSByZWRpcmVjdCIpOwor
ICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImNvbnRpbnVlV2lsbFNlbmRSZXF1ZXN0OiBUZWxs
aW5nIE5ldHdvcmtMb2FkIHRvIHByb2NlZWQgd2l0aCB0aGUgcmVkaXJlY3QiKTsKIAogICAgICAg
ICBpZiAobV9wYXJhbWV0ZXJzLnBhZ2VIYXNSZXNvdXJjZUxvYWRDbGllbnQgJiYgIW5ld1JlcXVl
c3QuaXNOdWxsKCkpCiAgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCku
cGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6UmVzb3VyY2VMb2FkRGlkUGVyZm9ybUhUVFBSZWRpcmVjdGlvbihtX3BhcmFtZXRlcnMu
d2ViUGFnZVByb3h5SUQsIHJlc291cmNlTG9hZEluZm8oKSwgbV9yZWRpcmVjdFJlc3BvbnNlLCBu
ZXdSZXF1ZXN0KSwgMCk7CkBAIC0xMDI1LDEwICsxMDI0LDEwIEBAIHZvaWQgTmV0d29ya1Jlc291
cmNlTG9hZGVyOjpjb250aW51ZVdpbGxTZW5kUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiBuZXdS
ZXF1ZXN0CiAKIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiY29udGludWVEaWRSZWNl
aXZlUmVzcG9uc2U6IChoYXNDYWNoZUVudHJ5V2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJl
c3BvbnNlPSVkLCBoYXNSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVyPSVkKSIsICEhbV9jYWNoZUVu
dHJ5V2FpdGluZ0ZvckNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlLCAhIW1fcmVzcG9uc2VDb21w
bGV0aW9uSGFuZGxlcik7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJjb250aW51ZURpZFJlY2Vp
dmVSZXNwb25zZTogKGhhc0NhY2hlRW50cnlXYWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVz
cG9uc2U9JWQsIGhhc1Jlc3BvbnNlQ29tcGxldGlvbkhhbmRsZXI9JWQpIiwgISFtX2NhY2hlRW50
cnlXYWl0aW5nRm9yQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UsICEhbV9yZXNwb25zZUNvbXBs
ZXRpb25IYW5kbGVyKTsKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAgICAgaWYgKG1fc2Vy
dmljZVdvcmtlckZldGNoVGFzaykgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJj
b250aW51ZURpZFJlY2VpdmVSZXNwb25zZTogY29udGludWluZyB3aXRoIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2sgKGZldGNoSWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCBtX3NlcnZpY2VXb3JrZXJG
ZXRjaFRhc2stPmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgICAgICBMT0FERVJf
UkVMRUFTRV9MT0coImNvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlOiBjb250aW51aW5nIHdpdGgg
U2VydmljZVdvcmtlckZldGNoVGFzayAoZmV0Y2hJZGVudGlmaWVyPSUiIFBSSXU2NCAiKSIsIG1f
c2VydmljZVdvcmtlckZldGNoVGFzay0+ZmV0Y2hJZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAg
ICAgICAgIG1fc2VydmljZVdvcmtlckZldGNoVGFzay0+Y29udGludWVEaWRSZWNlaXZlRmV0Y2hS
ZXNwb25zZSgpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMTA4MywyMiArMTA4MiwyMiBA
QCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VuZEJ1ZmZlcihTaGFyZWRCdWZmZXImIGJ1
ZmZlciwgc2l6ZV90IGVuY29kZWREYXRhTAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRy
eVN0b3JlQXNDYWNoZUVudHJ5KCkKIHsKICAgICBpZiAoIWNhblVzZUNhY2hlKG1fbmV0d29ya0xv
YWQtPmN1cnJlbnRSZXF1ZXN0KCkpKSB7Ci0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
InRyeVN0b3JlQXNDYWNoZUVudHJ5OiBOb3Qgc3RvcmluZyBjYWNoZSBlbnRyeSBiZWNhdXNlIHJl
cXVlc3QgaXMgbm90IGVsaWdpYmxlIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygidHJ5
U3RvcmVBc0NhY2hlRW50cnk6IE5vdCBzdG9yaW5nIGNhY2hlIGVudHJ5IGJlY2F1c2UgcmVxdWVz
dCBpcyBub3QgZWxpZ2libGUiKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICBpZiAoIW1f
YnVmZmVyZWREYXRhRm9yQ2FjaGUpIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
dHJ5U3RvcmVBc0NhY2hlRW50cnk6IE5vdCBzdG9yaW5nIGNhY2hlIGVudHJ5IGJlY2F1c2UgbV9i
dWZmZXJlZERhdGFGb3JDYWNoZSBpcyBudWxsIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xP
RygidHJ5U3RvcmVBc0NhY2hlRW50cnk6IE5vdCBzdG9yaW5nIGNhY2hlIGVudHJ5IGJlY2F1c2Ug
bV9idWZmZXJlZERhdGFGb3JDYWNoZSBpcyBudWxsIik7CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKICAgICBpZiAoaXNDcm9zc09yaWdpblByZWZldGNoKCkpIHsKICAgICAgICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBtX2Nvbm5lY3Rpb24tPm5ldHdvcmtQcm9jZXNzKCkubmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKCkpKSB7Ci0gICAgICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ0cnlT
dG9yZUFzQ2FjaGVFbnRyeTogU3RvcmluZyBlbnRyeSBpbiBwcmVmZXRjaCBjYWNoZSIpOworICAg
ICAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJ0cnlTdG9yZUFzQ2FjaGVFbnRyeTogU3Rvcmlu
ZyBlbnRyeSBpbiBwcmVmZXRjaCBjYWNoZSIpOwogICAgICAgICAgICAgc2Vzc2lvbi0+cHJlZmV0
Y2hDYWNoZSgpLnN0b3JlKG1fbmV0d29ya0xvYWQtPmN1cnJlbnRSZXF1ZXN0KCkudXJsKCksIFdU
Rk1vdmUobV9yZXNwb25zZSksIFdURk1vdmUobV9idWZmZXJlZERhdGFGb3JDYWNoZSkpOwogICAg
ICAgICB9CiAgICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgidHJ5U3RvcmVBc0NhY2hlRW50cnk6IFN0b3JpbmcgZW50cnkgaW4gSFRUUCBkaXNrIGNhY2hl
Iik7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJ0cnlTdG9yZUFzQ2FjaGVFbnRyeTogU3Rvcmlu
ZyBlbnRyeSBpbiBIVFRQIGRpc2sgY2FjaGUiKTsKICAgICBtX2NhY2hlLT5zdG9yZShtX25ldHdv
cmtMb2FkLT5jdXJyZW50UmVxdWVzdCgpLCBtX3Jlc3BvbnNlLCBXVEZNb3ZlKG1fYnVmZmVyZWRE
YXRhRm9yQ2FjaGUpLCBbbG9hZGVyID0gbWFrZVJlZigqdGhpcyldKGF1dG8mIG1hcHBlZEJvZHkp
IG11dGFibGUgewogI2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgICAgIGlmICht
YXBwZWRCb2R5LnNoYXJlYWJsZVJlc291cmNlSGFuZGxlLmlzTnVsbCgpKQpAQCAtMTExMSw3ICsx
MTEwLDcgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnRyeVN0b3JlQXNDYWNoZUVudHJ5
KCkKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVNYWluUmVzb3VyY2VS
ZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkKIHsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9uc2U6
Iik7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9u
c2U6Iik7CiAjaWYgRU5BQkxFKE5FVFdPUktfQ0FDSEVfU1BFQ1VMQVRJVkVfUkVWQUxJREFUSU9O
KQogICAgIGlmIChhdXRvKiBzcGVjdWxhdGl2ZUxvYWRNYW5hZ2VyID0gbV9jYWNoZSA/IG1fY2Fj
aGUtPnNwZWN1bGF0aXZlTG9hZE1hbmFnZXIoKSA6IG51bGxwdHIpCiAgICAgICAgIHNwZWN1bGF0
aXZlTG9hZE1hbmFnZXItPnJlZ2lzdGVyTWFpblJlc291cmNlTG9hZFJlc3BvbnNlKGdsb2JhbEZy
YW1lSUQoKSwgb3JpZ2luYWxSZXF1ZXN0KCksIHJlc3BvbnNlKTsKQEAgLTExMjAsMTQgKzExMTks
MTQgQEAgdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJlY2VpdmVNYWluUmVzb3VyY2VS
ZXNwb25zZShjb25zdCBXZWJDb3JlOjpSZXNvdXIKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXI6OmRpZFJldHJpZXZlQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0NhY2hlOjpF
bnRyeT4gZW50cnkpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmV0cmlldmVD
YWNoZUVudHJ5OiIpOworICAgIExPQURFUl9SRUxFQVNFX0xPRygiZGlkUmV0cmlldmVDYWNoZUVu
dHJ5OiIpOwogICAgIGF1dG8gcmVzcG9uc2UgPSBlbnRyeS0+cmVzcG9uc2UoKTsKIAogICAgIGlm
IChpc01haW5SZXNvdXJjZSgpKQogICAgICAgICBkaWRSZWNlaXZlTWFpblJlc291cmNlUmVzcG9u
c2UocmVzcG9uc2UpOwogCiAgICAgaWYgKGlzTWFpblJlc291cmNlKCkgJiYgc2hvdWxkSW50ZXJy
dXB0TG9hZEZvckNTUEZyYW1lQW5jZXN0b3JzT3JYRnJhbWVPcHRpb25zKHJlc3BvbnNlKSkgewot
ICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExPV0VEKCJkaWRSZXRyaWV2ZUNhY2hlRW50
cnk6IFN0b3BwaW5nIGxvYWQgZHVlIHRvIENTUCBGcmFtZS1BbmNlc3RvcnMgb3IgWC1GcmFtZS1P
cHRpb25zIik7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xPR19FUlJPUigiZGlkUmV0cmlldmVD
YWNoZUVudHJ5OiBTdG9wcGluZyBsb2FkIGR1ZSB0byBDU1AgRnJhbWUtQW5jZXN0b3JzIG9yIFgt
RnJhbWUtT3B0aW9ucyIpOwogICAgICAgICByZXNwb25zZSA9IHNhbml0aXplUmVzcG9uc2VJZlBv
c3NpYmxlKFdURk1vdmUocmVzcG9uc2UpLCBSZXNvdXJjZVJlc3BvbnNlOjpTYW5pdGl6YXRpb25U
eXBlOjpDcm9zc09yaWdpblNhZmUpOwogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRlcjo6U3RvcExvYWRpbmdBZnRlclhGcmFtZU9wdGlvbnNPckNvbnRlbnRTZWN1cml0eVBv
bGljeURlbmllZCB7IHJlc3BvbnNlIH0pOwogICAgICAgICByZXR1cm47CkBAIC0xMTM1LDcgKzEx
MzQsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6ZGlkUmV0cmlldmVDYWNoZUVudHJ5
KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OgogICAgIGlmIChtX25ldHdvcmtMb2FkQ2hl
Y2tlcikgewogICAgICAgICBhdXRvIGVycm9yID0gbV9uZXR3b3JrTG9hZENoZWNrZXItPnZhbGlk
YXRlUmVzcG9uc2Uob3JpZ2luYWxSZXF1ZXN0KCksIHJlc3BvbnNlKTsKICAgICAgICAgaWYgKCFl
cnJvci5pc051bGwoKSkgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dF
RCgiZGlkUmV0cmlldmVDYWNoZUVudHJ5OiBGYWlsaW5nIGxvYWQgZHVlIHRvIE5ldHdvcmtMb2Fk
Q2hlY2tlcjo6dmFsaWRhdGVSZXNwb25zZSIpOworICAgICAgICAgICAgTE9BREVSX1JFTEVBU0Vf
TE9HX0VSUk9SKCJkaWRSZXRyaWV2ZUNhY2hlRW50cnk6IEZhaWxpbmcgbG9hZCBkdWUgdG8gTmV0
d29ya0xvYWRDaGVja2VyOjp2YWxpZGF0ZVJlc3BvbnNlIik7CiAgICAgICAgICAgICBkaWRGYWls
TG9hZGluZyhlcnJvcik7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTExNTAs
NyArMTE0OSw3IEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpkaWRSZXRyaWV2ZUNhY2hl
RW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6CiAgICAgfQogCiAgICAgYm9vbCBu
ZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZSA9IGlzTWFpblJlc291cmNlKCk7
Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkUmV0cmlldmVDYWNoZUVudHJ5OiBTZW5k
aW5nIFdlYlJlc291cmNlTG9hZGVyOjpEaWRSZWNlaXZlUmVzcG9uc2UgSVBDIChuZWVkc0NvbnRp
bnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZT0lZCkiLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2
ZVJlc3BvbnNlTWVzc2FnZSk7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJkaWRSZXRyaWV2ZUNh
Y2hlRW50cnk6IFNlbmRpbmcgV2ViUmVzb3VyY2VMb2FkZXI6OkRpZFJlY2VpdmVSZXNwb25zZSBJ
UEMgKG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlPSVkKSIsIG5lZWRzQ29u
dGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKTsKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZVJlc3BvbnNlIHsgcmVzcG9uc2UsIG5lZWRzQ29udGlu
dWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlIH0pOwogCiAgICAgaWYgKG5lZWRzQ29udGludWVE
aWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlKQpAQCAtMTE2Myw3ICsxMTYyLDcgQEAgdm9pZCBOZXR3
b3JrUmVzb3VyY2VMb2FkZXI6OmRpZFJldHJpZXZlQ2FjaGVFbnRyeShzdGQ6OnVuaXF1ZV9wdHI8
TmV0d29ya0NhY2hlOjoKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlbmRSZXN1bHRG
b3JDYWNoZUVudHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBlbnRyeSkK
IHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzZW5kUmVzdWx0Rm9yQ2FjaGVFbnRyeToi
KTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coInNlbmRSZXN1bHRGb3JDYWNoZUVudHJ5OiIpOwog
I2lmIEVOQUJMRShTSEFSRUFCTEVfUkVTT1VSQ0UpCiAgICAgaWYgKCFlbnRyeS0+c2hhcmVhYmxl
UmVzb3VyY2VIYW5kbGUoKS5pc051bGwoKSkgewogICAgICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRlcjo6RGlkUmVjZWl2ZVJlc291cmNlKGVudHJ5LT5zaGFyZWFibGVSZXNvdXJj
ZUhhbmRsZSgpKSk7CkBAIC0xMTkwLDcgKzExODksNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c2VuZFJlc3VsdEZvckNhY2hlRW50cnkoc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNo
ZQogCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dmFsaWRhdGVDYWNoZUVudHJ5KHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBlbnRyeSkKIHsKLSAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJ2YWxpZGF0ZUNhY2hlRW50cnk6Iik7CisgICAgTE9BREVSX1JFTEVBU0Vf
TE9HKCJ2YWxpZGF0ZUNhY2hlRW50cnk6Iik7CiAgICAgQVNTRVJUKCFtX25ldHdvcmtMb2FkKTsK
IAogICAgIC8vIElmIHRoZSByZXF1ZXN0IGlzIGFscmVhZHkgY29uZGl0aW9uYWwgdGhlbiB0aGUg
cmV2YWxpZGF0aW9uIHdhcyBub3QgdHJpZ2dlcmVkIGJ5IHRoZSBkaXNrIGNhY2hlCkBAIC0xMjEy
LDcgKzEyMTEsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6dmFsaWRhdGVDYWNoZUVu
dHJ5KHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudAogCiB2b2lkIE5ldHdvcmtSZXNv
dXJjZUxvYWRlcjo6ZGlzcGF0Y2hXaWxsU2VuZFJlcXVlc3RGb3JDYWNoZUVudHJ5KFJlc291cmNl
UmVxdWVzdCYmIHJlcXVlc3QsIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiYm
IGVudHJ5KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpc3BhdGNoV2lsbFNlbmRS
ZXF1ZXN0Rm9yQ2FjaGVFbnRyeToiKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImRpc3BhdGNo
V2lsbFNlbmRSZXF1ZXN0Rm9yQ2FjaGVFbnRyeToiKTsKICAgICBBU1NFUlQoZW50cnktPnJlZGly
ZWN0UmVxdWVzdCgpKTsKICAgICBBU1NFUlQoIW1faXNXYWl0aW5nQ29udGludWVXaWxsU2VuZFJl
cXVlc3RGb3JDYWNoZWRSZWRpcmVjdCk7CiAKQEAgLTEyNjUsMTQgKzEyNjQsNiBAQCB2b2lkIE5l
dHdvcmtSZXNvdXJjZUxvYWRlcjo6aW52YWxpZGF0ZVNhbmRib3hFeHRlbnNpb25zKCkKICAgICBt
X2ZpbGVSZWZlcmVuY2VzLmNsZWFyKCk7CiB9CiAKLWJvb2wgTmV0d29ya1Jlc291cmNlTG9hZGVy
Ojppc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSBjb25zdAotewotICAgIGlmIChtX2Nvbm5lY3Rp
b24tPm5ldHdvcmtQcm9jZXNzKCkuc2Vzc2lvbklzQ29udHJvbGxlZEJ5QXV0b21hdGlvbihzZXNz
aW9uSUQoKSkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgcmV0dXJuIHNlc3Npb25JRCgp
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpOwotfQotCiBib29sIE5ldHdvcmtSZXNvdXJjZUxv
YWRlcjo6c2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgY29uc3QKIHsKICAg
ICByZXR1cm4gbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3M7CkBAIC0xNDQw
LDMyICsxNDMxLDMwIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpsb2dTbG93Q2FjaGVS
ZXRyaWV2ZUlmTmVlZGVkKGNvbnN0IE5ldHdvcmtDYWNoZTo6Q2FjCiAjaWYgUkVMRUFTRV9MT0df
RElTQUJMRUQKICAgICBVTlVTRURfUEFSQU0oaW5mbyk7CiAjZWxzZQotICAgIGlmICghaXNBbHdh
eXNPbkxvZ2dpbmdBbGxvd2VkKCkpCi0gICAgICAgIHJldHVybjsKICAgICBhdXRvIGR1cmF0aW9u
ID0gaW5mby5jb21wbGV0aW9uVGltZSAtIGluZm8uc3RhcnRUaW1lOwogICAgIGlmIChkdXJhdGlv
biA8IDFfcykKICAgICAgICAgcmV0dXJuOwotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImxv
Z1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IFRvb2sgJS4wZm1zLCBwcmlvcml0eSAlZCIsIGR1
cmF0aW9uLm1pbGxpc2Vjb25kcygpLCBpbmZvLnByaW9yaXR5KTsKKyAgICBMT0FERVJfUkVMRUFT
RV9MT0coImxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IFRvb2sgJS4wZm1zLCBwcmlvcml0
eSAlZCIsIGR1cmF0aW9uLm1pbGxpc2Vjb25kcygpLCBpbmZvLnByaW9yaXR5KTsKICAgICBpZiAo
aW5mby53YXNTcGVjdWxhdGl2ZUxvYWQpCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
ImxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IFdhcyBzcGVjdWxhdGl2ZSBsb2FkIik7Cisg
ICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygibG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZDog
V2FzIHNwZWN1bGF0aXZlIGxvYWQiKTsKICAgICBpZiAoIWluZm8uc3RvcmFnZVRpbWluZ3Muc3Rh
cnRUaW1lKQogICAgICAgICByZXR1cm47Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9n
U2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZDogU3RvcmFnZSByZXRyaWV2ZSB0aW1lICUuMGZtcyIs
IChpbmZvLnN0b3JhZ2VUaW1pbmdzLmNvbXBsZXRpb25UaW1lIC0gaW5mby5zdG9yYWdlVGltaW5n
cy5zdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coImxv
Z1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IFN0b3JhZ2UgcmV0cmlldmUgdGltZSAlLjBmbXMi
LCAoaW5mby5zdG9yYWdlVGltaW5ncy5jb21wbGV0aW9uVGltZSAtIGluZm8uc3RvcmFnZVRpbWlu
Z3Muc3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSk7CiAgICAgaWYgKGluZm8uc3RvcmFnZVRpbWlu
Z3MuZGlzcGF0Y2hUaW1lKSB7CiAgICAgICAgIGF1dG8gdGltZSA9IChpbmZvLnN0b3JhZ2VUaW1p
bmdzLmRpc3BhdGNoVGltZSAtIGluZm8uc3RvcmFnZVRpbWluZ3Muc3RhcnRUaW1lKS5taWxsaXNl
Y29uZHMoKTsKICAgICAgICAgYXV0byBjb3VudCA9IGluZm8uc3RvcmFnZVRpbWluZ3MuZGlzcGF0
Y2hDb3VudEF0RGlzcGF0Y2ggLSBpbmZvLnN0b3JhZ2VUaW1pbmdzLmRpc3BhdGNoQ291bnRBdFN0
YXJ0OwotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJsb2dTbG93Q2FjaGVSZXRyaWV2
ZUlmTmVlZGVkOiBEaXNwYXRjaCBkZWxheSAlLjBmbXMsIGRpc3BhdGNoZWQgJWx1IHJlc291cmNl
cyBmaXJzdCIsIHRpbWUsIGNvdW50KTsKKyAgICAgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJsb2dT
bG93Q2FjaGVSZXRyaWV2ZUlmTmVlZGVkOiBEaXNwYXRjaCBkZWxheSAlLjBmbXMsIGRpc3BhdGNo
ZWQgJWx1IHJlc291cmNlcyBmaXJzdCIsIHRpbWUsIGNvdW50KTsKICAgICB9CiAgICAgaWYgKGlu
Zm8uc3RvcmFnZVRpbWluZ3MucmVjb3JkSU9TdGFydFRpbWUpCi0gICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoImxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IFJlY29yZCBJL08gdGlt
ZSAlLjBmbXMiLCAoaW5mby5zdG9yYWdlVGltaW5ncy5yZWNvcmRJT0VuZFRpbWUgLSBpbmZvLnN0
b3JhZ2VUaW1pbmdzLnJlY29yZElPU3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSk7CisgICAgICAg
IExPQURFUl9SRUxFQVNFX0xPRygibG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZDogUmVjb3Jk
IEkvTyB0aW1lICUuMGZtcyIsIChpbmZvLnN0b3JhZ2VUaW1pbmdzLnJlY29yZElPRW5kVGltZSAt
IGluZm8uc3RvcmFnZVRpbWluZ3MucmVjb3JkSU9TdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpKTsK
ICAgICBpZiAoaW5mby5zdG9yYWdlVGltaW5ncy5ibG9iSU9TdGFydFRpbWUpCi0gICAgICAgIFJF
TEVBU0VfTE9HX0lGX0FMTE9XRUQoImxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IEJsb2Ig
SS9PIHRpbWUgJS4wZm1zIiwgKGluZm8uc3RvcmFnZVRpbWluZ3MuYmxvYklPRW5kVGltZSAtIGlu
Zm8uc3RvcmFnZVRpbWluZ3MuYmxvYklPU3RhcnRUaW1lKS5taWxsaXNlY29uZHMoKSk7CisgICAg
ICAgIExPQURFUl9SRUxFQVNFX0xPRygibG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZDogQmxv
YiBJL08gdGltZSAlLjBmbXMiLCAoaW5mby5zdG9yYWdlVGltaW5ncy5ibG9iSU9FbmRUaW1lIC0g
aW5mby5zdG9yYWdlVGltaW5ncy5ibG9iSU9TdGFydFRpbWUpLm1pbGxpc2Vjb25kcygpKTsKICAg
ICBpZiAoaW5mby5zdG9yYWdlVGltaW5ncy5zeW5jaHJvbml6YXRpb25JblByb2dyZXNzQXREaXNw
YXRjaCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9nU2xvd0NhY2hlUmV0cmll
dmVJZk5lZWRlZDogU3luY2hyb25pemF0aW9uIHdhcyBpbiBwcm9ncmVzcyIpOworICAgICAgICBM
T0FERVJfUkVMRUFTRV9MT0coImxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVkZWQ6IFN5bmNocm9u
aXphdGlvbiB3YXMgaW4gcHJvZ3Jlc3MiKTsKICAgICBpZiAoaW5mby5zdG9yYWdlVGltaW5ncy5z
aHJpbmtJblByb2dyZXNzQXREaXNwYXRjaCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgibG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZDogU2hyaW5rIHdhcyBpbiBwcm9ncmVzcyIp
OworICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coImxvZ1Nsb3dDYWNoZVJldHJpZXZlSWZOZWVk
ZWQ6IFNocmluayB3YXMgaW4gcHJvZ3Jlc3MiKTsKICAgICBpZiAoaW5mby5zdG9yYWdlVGltaW5n
cy53YXNDYW5jZWxlZCkKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgibG9nU2xvd0Nh
Y2hlUmV0cmlldmVJZk5lZWRlZDogUmV0cmlldmUgd2FzIGNhbmNlbGVkIik7CisgICAgICAgIExP
QURFUl9SRUxFQVNFX0xPRygibG9nU2xvd0NhY2hlUmV0cmlldmVJZk5lZWRlZDogUmV0cmlldmUg
d2FzIGNhbmNlbGVkIik7CiAjZW5kaWYKIH0KIApAQCAtMTQ3OCwxMSArMTQ2NywxMSBAQCBib29s
IE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6aXNDcm9zc09yaWdpblByZWZldGNoKCkgY29uc3QKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c3Rh
cnRXaXRoU2VydmljZVdvcmtlcigpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgic3Rh
cnRXaXRoU2VydmljZVdvcmtlcjoiKTsKKyAgICBMT0FERVJfUkVMRUFTRV9MT0coInN0YXJ0V2l0
aFNlcnZpY2VXb3JrZXI6Iik7CiAgICAgQVNTRVJUKCFtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2sp
OwogICAgIG1fc2VydmljZVdvcmtlckZldGNoVGFzayA9IG1fY29ubmVjdGlvbi0+Y3JlYXRlRmV0
Y2hUYXNrKCp0aGlzLCBvcmlnaW5hbFJlcXVlc3QoKSk7CiAgICAgaWYgKG1fc2VydmljZVdvcmtl
ckZldGNoVGFzaykgewotICAgICAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJzdGFydFdpdGhT
ZXJ2aWNlV29ya2VyOiBDcmVhdGVkIGEgU2VydmljZVdvcmtlckZldGNoVGFzayAoZmV0Y2hJZGVu
dGlmaWVyPSUiIFBSSXU2NCAiKSIsIG1fc2VydmljZVdvcmtlckZldGNoVGFzay0+ZmV0Y2hJZGVu
dGlmaWVyKCkudG9VSW50NjQoKSk7CisgICAgICAgIExPQURFUl9SRUxFQVNFX0xPRygic3RhcnRX
aXRoU2VydmljZVdvcmtlcjogQ3JlYXRlZCBhIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2sgKGZldGNo
SWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCBtX3NlcnZpY2VXb3JrZXJGZXRjaFRhc2stPmZldGNo
SWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCkBAIC0x
NDkxLDEwICsxNDgwLDEwIEBAIHZvaWQgTmV0d29ya1Jlc291cmNlTG9hZGVyOjpzdGFydFdpdGhT
ZXJ2aWNlV29ya2VyKCkKIAogdm9pZCBOZXR3b3JrUmVzb3VyY2VMb2FkZXI6OnNlcnZpY2VXb3Jr
ZXJEaWROb3RIYW5kbGUoU2VydmljZVdvcmtlckZldGNoVGFzayogZmV0Y2hUYXNrKQogewotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNlcnZpY2VXb3JrZXJEaWROb3RIYW5kbGU6IChmZXRj
aElkZW50aWZpZXI9JSIgUFJJdTY0ICIpIiwgZmV0Y2hUYXNrID8gZmV0Y2hUYXNrLT5mZXRjaElk
ZW50aWZpZXIoKS50b1VJbnQ2NCgpIDogMCk7CisgICAgTE9BREVSX1JFTEVBU0VfTE9HKCJzZXJ2
aWNlV29ya2VyRGlkTm90SGFuZGxlOiAoZmV0Y2hJZGVudGlmaWVyPSUiIFBSSXU2NCAiKSIsIGZl
dGNoVGFzayA/IGZldGNoVGFzay0+ZmV0Y2hJZGVudGlmaWVyKCkudG9VSW50NjQoKSA6IDApOwog
ICAgIFJFTEVBU0VfQVNTRVJUKG1fc2VydmljZVdvcmtlckZldGNoVGFzay5nZXQoKSA9PSBmZXRj
aFRhc2spOwogICAgIGlmIChtX3BhcmFtZXRlcnMuc2VydmljZVdvcmtlcnNNb2RlID09IFNlcnZp
Y2VXb3JrZXJzTW9kZTo6T25seSkgewotICAgICAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9BTExP
V0VEKCJzZXJ2aWNlV29ya2VyRGlkTm90SGFuZGxlOiBBYm9ydGluZyBsb2FkIGJlY2F1c2UgdGhl
IHNlcnZpY2Ugd29ya2VyIGRpZCBub3QgaGFuZGxlIHRoZSBsb2FkIGFuZCBzZXJ2aWNlV29ya2Vy
TW9kZSBvbmx5IGFsbG93cyBzZXJ2aWNlIHdvcmtlcnMiKTsKKyAgICAgICAgTE9BREVSX1JFTEVB
U0VfTE9HX0VSUk9SKCJzZXJ2aWNlV29ya2VyRGlkTm90SGFuZGxlOiBBYm9ydGluZyBsb2FkIGJl
Y2F1c2UgdGhlIHNlcnZpY2Ugd29ya2VyIGRpZCBub3QgaGFuZGxlIHRoZSBsb2FkIGFuZCBzZXJ2
aWNlV29ya2VyTW9kZSBvbmx5IGFsbG93cyBzZXJ2aWNlIHdvcmtlcnMiKTsKICAgICAgICAgc2Vu
ZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkZXI6OlNlcnZpY2VXb3JrZXJEaWROb3RIYW5kbGUg
eyB9LCBpZGVudGlmaWVyKCkpOwogICAgICAgICBhYm9ydCgpOwogICAgICAgICByZXR1cm47CkBA
IC0xNTA3LDcgKzE0OTYsNyBAQCB2b2lkIE5ldHdvcmtSZXNvdXJjZUxvYWRlcjo6c2VydmljZVdv
cmtlckRpZE5vdEhhbmRsZShTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrKiBmZQogICAgICAgICBpZiAo
bV9uZXR3b3JrTG9hZCkKICAgICAgICAgICAgIG1fbmV0d29ya0xvYWQtPnVwZGF0ZVJlcXVlc3RB
ZnRlclJlZGlyZWN0aW9uKG5ld1JlcXVlc3QpOwogCi0gICAgICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInNlcnZpY2VXb3JrZXJEaWROb3RIYW5kbGU6IFJlc3RhcnRpbmcgbmV0d29yayBsb2Fk
IGZvciByZWRpcmVjdCIpOworICAgICAgICBMT0FERVJfUkVMRUFTRV9MT0coInNlcnZpY2VXb3Jr
ZXJEaWROb3RIYW5kbGU6IFJlc3RhcnRpbmcgbmV0d29yayBsb2FkIGZvciByZWRpcmVjdCIpOwog
ICAgICAgICByZXN0YXJ0TmV0d29ya0xvYWQoV1RGTW92ZShuZXdSZXF1ZXN0KSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xNTIyLDUgKzE1MTEsNSBAQCBib29sIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlcjo6aXNBcHBCb3VuZCgpCiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAogCi0jdW5kZWYg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRAotI3VuZGVmIFJFTEVBU0VfTE9HX0VSUk9SX0lGX0FMTE9X
RUQKKyN1bmRlZiBMT0FERVJfUkVMRUFTRV9MT0cKKyN1bmRlZiBMT0FERVJfUkVMRUFTRV9MT0df
RVJST1IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jl
c291cmNlTG9hZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtSZXNv
dXJjZUxvYWRlci5oCmluZGV4IDRjNzVmZmViMTZkY2Q5MTU1MTAyOTVhZDkwZWFiZjcyZWU5NzZm
NDUuLjQ4ZjBlNWJhNzdjZGE0YjkzMmQxOWI5YzZmM2NlMzZkN2UxMjIyYmIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Jlc291cmNlTG9hZGVyLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUmVzb3VyY2VMb2FkZXIuaApA
QCAtMTI1LDggKzEyNSw2IEBAIHB1YmxpYzoKICAgICBib29sIGlzTWFpbkZyYW1lTG9hZCgpIGNv
bnN0IHsgcmV0dXJuIGlzTWFpblJlc291cmNlKCkgJiYgbV9wYXJhbWV0ZXJzLmZyYW1lQW5jZXN0
b3JPcmlnaW5zLmlzRW1wdHkoKTsgfQogICAgIGJvb2wgaXNDcm9zc09yaWdpblByZWZldGNoKCkg
Y29uc3Q7CiAKLSAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIGNvbnN0OwotCiAj
aWYgRU5BQkxFKFJFU09VUkNFX0xPQURfU1RBVElTVElDUykgJiYgIVJFTEVBU0VfTE9HX0RJU0FC
TEVECiAgICAgc3RhdGljIGJvb2wgc2hvdWxkTG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nv
bm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBQQUw6OlNlc3Npb25JRCk7CiAgICAgc3RhdGljIHZvaWQg
bG9nQ29va2llSW5mb3JtYXRpb24oTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3MmLCBjb25z
dCBTdHJpbmcmIGxhYmVsLCBjb25zdCB2b2lkKiBsb2dnZWRPYmplY3QsIGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtTdG9yYWdlU2Vzc2lvbiYsIGNvbnN0IFVSTCYgZmlyc3RQYXJ0eSwgY29uc3QgV2Vi
Q29yZTo6U2FtZVNpdGVJbmZvJiwgY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiByZWZlcnJlciwg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlBhZ2VJZGVudGlmaWVyPiwgc3RkOjpvcHRpb25hbDx1aW50NjRfdD4gaWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1BpbmdMb2FkLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGluZ0xvYWQuY3BwCmluZGV4IDAzZGJi
NTMwMzYyOWIwMWNlMTk2NWYxNTc3ZWJlMWIwYWZmZGQ2YTcuLjQ0NDMxMmVhNDVmNGFjYmUwZDAy
NTU0Yzk1ZjZhOTgxNGQxZGNiMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUGluZ0xvYWQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUGlu
Z0xvYWQuY3BwCkBAIC0zNCw3ICszNCw3IEBACiAjaW5jbHVkZSAiTmV0d29ya1Byb2Nlc3MuaCIK
ICNpbmNsdWRlICJXZWJFcnJvcnMuaCIKIAotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihtX3Nlc3Npb25JRC5pc0Fsd2F5c09uTG9nZ2luZ0Fs
bG93ZWQoKSwgTmV0d29yaywgIiVwIC0gUGluZ0xvYWQ6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJH
U19fKQorI2RlZmluZSBQSU5HX1JFTEVBU0VfTE9HKGZtdCwgLi4uKSBSRUxFQVNFX0xPRyhOZXR3
b3JrLCAiJXAgLSBQaW5nTG9hZDo6IiBmbXQsIHRoaXMsICMjX19WQV9BUkdTX18pCiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCkBAIC0xMTgsNyArMTE4LDcgQEAgdm9pZCBQaW5nTG9hZDo6ZGlkRmlu
aXNoKGNvbnN0IFJlc291cmNlRXJyb3ImIGVycm9yLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiBy
ZXMKIAogdm9pZCBQaW5nTG9hZDo6bG9hZFJlcXVlc3QoTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQ
cm9jZXNzLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoInN0YXJ0TmV0d29ya0xvYWQiKTsKKyAgICBQSU5HX1JFTEVBU0VfTE9HKCJzdGFy
dE5ldHdvcmtMb2FkIik7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTZXNzaW9uID0gbmV0d29ya1By
b2Nlc3MubmV0d29ya1Nlc3Npb24obV9zZXNzaW9uSUQpKSB7CiAgICAgICAgIGF1dG8gbG9hZFBh
cmFtZXRlcnMgPSBtX3BhcmFtZXRlcnM7CiAgICAgICAgIGxvYWRQYXJhbWV0ZXJzLnJlcXVlc3Qg
PSBXVEZNb3ZlKHJlcXVlc3QpOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIHZvaWQgUGluZ0xvYWQ6Ondp
bGxQZXJmb3JtSFRUUFJlZGlyZWN0aW9uKFJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBSCiAKIHZvaWQgUGluZ0xvYWQ6OmRpZFJlY2VpdmVDaGFsbGVuZ2UoQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UsIE5lZ290aWF0ZWRMZWdhY3lUTFMgbmVnb3RpYXRlZExl
Z2FjeVRMUywgQ2hhbGxlbmdlQ29tcGxldGlvbkhhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikK
IHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlQ2hhbGxlbmdlIik7Cisg
ICAgUElOR19SRUxFQVNFX0xPRygiZGlkUmVjZWl2ZUNoYWxsZW5nZSIpOwogICAgIGlmIChjaGFs
bGVuZ2UucHJvdGVjdGlvblNwYWNlKCkuYXV0aGVudGljYXRpb25TY2hlbWUoKSA9PSBQcm90ZWN0
aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZVNlcnZlclRydXN0RXZhbHVhdGlvblJlcXVlc3Rl
ZCkgewogICAgICAgICBtX25ldHdvcmtMb2FkQ2hlY2tlci0+bmV0d29ya1Byb2Nlc3MoKS5hdXRo
ZW50aWNhdGlvbk1hbmFnZXIoKS5kaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UobV9z
ZXNzaW9uSUQsIG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgIG1fcGFyYW1ldGVycy50b3BP
cmlnaW4gPyAmbV9wYXJhbWV0ZXJzLnRvcE9yaWdpbi0+ZGF0YSgpIDogbnVsbHB0ciwgY2hhbGxl
bmdlLCBuZWdvdGlhdGVkTGVnYWN5VExTLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAg
ICAgICAgIHJldHVybjsKQEAgLTE2Miw3ICsxNjIsNyBAQCB2b2lkIFBpbmdMb2FkOjpkaWRSZWNl
aXZlQ2hhbGxlbmdlKEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiYgY2hhbGxlbmdlLCBOZWdvdGlh
dAogCiB2b2lkIFBpbmdMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYm
IHJlc3BvbnNlLCBOZWdvdGlhdGVkTGVnYWN5VExTLCBSZXNwb25zZUNvbXBsZXRpb25IYW5kbGVy
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlk
UmVjZWl2ZVJlc3BvbnNlIC0gaHR0cFN0YXR1c0NvZGU9JWQiLCByZXNwb25zZS5odHRwU3RhdHVz
Q29kZSgpKTsKKyAgICBQSU5HX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZlUmVzcG9uc2UgLSBodHRw
U3RhdHVzQ29kZT0lZCIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCkpOwogICAgIGF1dG8gd2Vh
a1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyk7CiAgICAgY29tcGxldGlvbkhhbmRsZXIoUG9saWN5
QWN0aW9uOjpJZ25vcmUpOwogICAgIGlmICghd2Vha1RoaXMpCkBAIC0xNzIsMTYgKzE3MiwxNiBA
QCB2b2lkIFBpbmdMb2FkOjpkaWRSZWNlaXZlUmVzcG9uc2UoUmVzb3VyY2VSZXNwb25zZSYmIHJl
c3BvbnNlLCBOZWdvdGlhdGVkTGVnYWN5VAogCiB2b2lkIFBpbmdMb2FkOjpkaWRSZWNlaXZlRGF0
YShSZWY8U2hhcmVkQnVmZmVyPiYmKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRp
ZFJlY2VpdmVEYXRhIik7CisgICAgUElOR19SRUxFQVNFX0xPRygiZGlkUmVjZWl2ZURhdGEiKTsK
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAogdm9pZCBQaW5nTG9hZDo6ZGlkQ29tcGxl
dGVXaXRoRXJyb3IoY29uc3QgUmVzb3VyY2VFcnJvciYgZXJyb3IsIGNvbnN0IE5ldHdvcmtMb2Fk
TWV0cmljcyYpCiB7CiAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQotICAgICAgICBSRUxFQVNFX0xP
R19JRl9BTExPV0VEKCJkaWRDb21wbGV0ZSIpOworICAgICAgICBQSU5HX1JFTEVBU0VfTE9HKCJk
aWRDb21wbGV0ZSIpOwogICAgIGVsc2UKLSAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
ZGlkQ29tcGxldGVXaXRoRXJyb3IsIGVycm9yX2NvZGU9JWQiLCBlcnJvci5lcnJvckNvZGUoKSk7
CisgICAgICAgIFBJTkdfUkVMRUFTRV9MT0coImRpZENvbXBsZXRlV2l0aEVycm9yLCBlcnJvcl9j
b2RlPSVkIiwgZXJyb3IuZXJyb3JDb2RlKCkpOwogCiAgICAgZGlkRmluaXNoKGVycm9yKTsKIH0K
QEAgLTE5MiwyNSArMTkyLDI1IEBAIHZvaWQgUGluZ0xvYWQ6OmRpZFNlbmREYXRhKHVpbnQ2NF90
IHRvdGFsQnl0ZXNTZW50LCB1aW50NjRfdCB0b3RhbEJ5dGVzRXhwZWN0ZWRUCiAKIHZvaWQgUGlu
Z0xvYWQ6Ondhc0Jsb2NrZWQoKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoIndhc0Js
b2NrZWQiKTsKKyAgICBQSU5HX1JFTEVBU0VfTE9HKCJ3YXNCbG9ja2VkIik7CiAgICAgZGlkRmlu
aXNoKGJsb2NrZWRFcnJvcihSZXNvdXJjZVJlcXVlc3QgeyBjdXJyZW50VVJMKCkgfSkpOwogfQog
CiB2b2lkIFBpbmdMb2FkOjpjYW5ub3RTaG93VVJMKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9B
TExPV0VEKCJjYW5ub3RTaG93VVJMIik7CisgICAgUElOR19SRUxFQVNFX0xPRygiY2Fubm90U2hv
d1VSTCIpOwogICAgIGRpZEZpbmlzaChjYW5ub3RTaG93VVJMRXJyb3IoUmVzb3VyY2VSZXF1ZXN0
IHsgY3VycmVudFVSTCgpIH0pKTsKIH0KIAogdm9pZCBQaW5nTG9hZDo6d2FzQmxvY2tlZEJ5UmVz
dHJpY3Rpb25zKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ3YXNCbG9ja2VkQnlS
ZXN0cmljdGlvbnMiKTsKKyAgICBQSU5HX1JFTEVBU0VfTE9HKCJ3YXNCbG9ja2VkQnlSZXN0cmlj
dGlvbnMiKTsKICAgICBkaWRGaW5pc2god2FzQmxvY2tlZEJ5UmVzdHJpY3Rpb25zRXJyb3IoUmVz
b3VyY2VSZXF1ZXN0IHsgY3VycmVudFVSTCgpIH0pKTsKIH0KIAogdm9pZCBQaW5nTG9hZDo6dGlt
ZW91dFRpbWVyRmlyZWQoKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInRpbWVvdXRU
aW1lckZpcmVkIik7CisgICAgUElOR19SRUxFQVNFX0xPRygidGltZW91dFRpbWVyRmlyZWQiKTsK
ICAgICBkaWRGaW5pc2goUmVzb3VyY2VFcnJvciB7IFN0cmluZygpLCAwLCBjdXJyZW50VVJMKCks
ICJMb2FkIHRpbWVkIG91dCJfcywgUmVzb3VyY2VFcnJvcjo6VHlwZTo6VGltZW91dCB9KTsKIH0K
IApAQCAtMjIxLDQgKzIyMSw0IEBAIGNvbnN0IFVSTCYgUGluZ0xvYWQ6OmN1cnJlbnRVUkwoKSBj
b25zdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAotI3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQKKyN1bmRlZiBQSU5HX1JFTEVBU0VfTE9HCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ckZldGNoVGFzay5jcHAKaW5kZXggODk1Y2RjNzEwNmM2Y2YyOWE5NjUyZTMxMDMxZjJlMWEzNDVl
YTk0ZC4uN2ZkZDk1NGFlNGM5MWUxN2M1MjZjYTBlNjg3NmIzNGRiNmQyZGJiMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtNDIsOCArNDIsOCBAQAogI2lu
Y2x1ZGUgPFdlYkNvcmUvQ3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oPgogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0lGKG1fbG9hZGVyLnNlc3Npb25JRCgpLmlzQWx3
YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBbZmV0Y2hJZGVudGlm
aWVyPSUiIFBSSXU2NCAiXSBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjoiIGZtdCwgdGhpcywgbV9m
ZXRjaElkZW50aWZpZXIudG9VSW50NjQoKSwgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYobV9s
b2FkZXIuc2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIFNlcnZpY2VXb3Jr
ZXIsICIlcCAtIFtmZXRjaElkZW50aWZpZXI9JSIgUFJJdTY0ICJdIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OiIgZm10LCB0aGlzLCBtX2ZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpLCAjI19fVkFf
QVJHU19fKQorI2RlZmluZSBTV0ZFVENIX1JFTEVBU0VfTE9HKGZtdCwgLi4uKSBSRUxFQVNFX0xP
RyhTZXJ2aWNlV29ya2VyLCAiJXAgLSBbZmV0Y2hJZGVudGlmaWVyPSUiIFBSSXU2NCAiXSBTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjoiIGZtdCwgdGhpcywgbV9mZXRjaElkZW50aWZpZXIudG9VSW50
NjQoKSwgIyNfX1ZBX0FSR1NfXykKKyNkZWZpbmUgU1dGRVRDSF9SRUxFQVNFX0xPR19FUlJPUihm
bXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIiVwIC0gW2ZldGNoSWRl
bnRpZmllcj0lIiBQUkl1NjQgIl0gU2VydmljZVdvcmtlckZldGNoVGFzazo6IiBmbXQsIHRoaXMs
IG1fZmV0Y2hJZGVudGlmaWVyLnRvVUludDY0KCksICMjX19WQV9BUkdTX18pCiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCkBAIC02MCwxMyArNjAsMTMgQEAgU2VydmljZVdvcmtlckZldGNoVGFzazo6
U2VydmljZVdvcmtlckZldGNoVGFzayhXZWJTV1NlcnZlckNvbm5lY3Rpb24mIHN3U2VydmVyQ28K
ICAgICAsIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIoc2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIpCiAgICAgLCBtX3Nob3VsZFNvZnRVcGRhdGUoc2hvdWxk
U29mdFVwZGF0ZSkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJTZXJ2aWNlV29ya2Vy
RmV0Y2hUYXNrOiAoc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXI9JSIgUFJJdTY0ICIsIHNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPSUiIFBSSXU2NCAiLCBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLnRv
VUludDY0KCksIG1fc2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIudG9VSW50NjQo
KSwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllci50b1VJbnQ2NCgpKTsKKyAgICBTV0ZFVENIX1JF
TEVBU0VfTE9HKCJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOiAoc2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXI9JSIgUFJJdTY0ICIsIHNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyPSUi
IFBSSXU2NCAiLCBzZXJ2aWNlV29ya2VySWRlbnRpZmllcj0lIiBQUkl1NjQgIikiLCBtX3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLnRvVUludDY0KCksIG1fc2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIudG9VSW50NjQoKSwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllci50b1VJ
bnQ2NCgpKTsKICAgICBtX3RpbWVvdXRUaW1lci5zdGFydE9uZVNob3QobG9hZGVyLmNvbm5lY3Rp
b25Ub1dlYlByb2Nlc3MoKS5uZXR3b3JrUHJvY2VzcygpLnNlcnZpY2VXb3JrZXJGZXRjaFRpbWVv
dXQoKSk7CiB9CiAKIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6On5TZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJ+U2VydmljZVdvcmtlckZldGNo
VGFzazoiKTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJ+U2VydmljZVdvcmtlckZldGNoVGFz
azoiKTsKICAgICBpZiAobV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbikKICAgICAgICAgbV9zZXJ2
aWNlV29ya2VyQ29ubmVjdGlvbi0+dW5yZWdpc3RlckZldGNoKCp0aGlzKTsKIH0KQEAgLTgzLDcg
KzgzLDcgQEAgdGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4gYm9vbCBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpzZW5kVG9DbGllbnQoTWVzc2FnZSYmIG0KIAogdm9pZCBTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrOjpzdGFydChXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3Jr
ZXJDb25uZWN0aW9uKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0OiIpOwor
ICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coInN0YXJ0OiIpOwogICAgIG1fc2VydmljZVdvcmtlckNv
bm5lY3Rpb24gPSBtYWtlV2Vha1B0cihzZXJ2aWNlV29ya2VyQ29ubmVjdGlvbik7CiAgICAgc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24ucmVnaXN0ZXJGZXRjaCgqdGhpcyk7CiAKQEAgLTkyLDcgKzky
LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzdGFydChXZWJTV1NlcnZlclRvQ29u
dGV4dENvbm5lY3Rpb24mIHNlcnZpY2VXb3JrZXIKIAogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hU
YXNrOjpjb250ZXh0Q2xvc2VkKCkKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjb250
ZXh0Q2xvc2VkOiAobV9pc0RvbmU9JWQsIG1fd2FzSGFuZGxlZD0lZCkiLCBtX2lzRG9uZSwgbV93
YXNIYW5kbGVkKTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJjb250ZXh0Q2xvc2VkOiAobV9p
c0RvbmU9JWQsIG1fd2FzSGFuZGxlZD0lZCkiLCBtX2lzRG9uZSwgbV93YXNIYW5kbGVkKTsKICAg
ICBtX3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uID0gbnVsbHB0cjsKICAgICBpZiAobV9pc0RvbmUp
CiAgICAgICAgIHJldHVybjsKQEAgLTEwNiw3ICsxMDYsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJG
ZXRjaFRhc2s6OmNvbnRleHRDbG9zZWQoKQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OnN0YXJ0RmV0Y2goKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2gi
KTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJzdGFydEZldGNoIik7CiAgICAgbV9sb2FkZXIu
Y29uc3VtZVNhbmRib3hFeHRlbnNpb25zSWZOZWVkZWQoKTsKICAgICBhdXRvJiBvcHRpb25zID0g
bV9sb2FkZXIucGFyYW1ldGVycygpLm9wdGlvbnM7CiAgICAgYXV0byByZWZlcnJlciA9IG1fY3Vy
cmVudFJlcXVlc3QuaHR0cFJlZmVycmVyKCk7CkBAIC0xMjQsNyArMTI0LDcgQEAgdm9pZCBTZXJ2
aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRSZWNlaXZlUmVkaXJlY3RSZXNwb25zZShSZXNvdXJjZVJl
c3BvbnNlJiYgcmVzcG8KICAgICBpZiAobV9pc0RvbmUpCiAgICAgICAgIHJldHVybjsKIAotICAg
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlOiIpOwor
ICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImRpZFJlY2VpdmVSZWRpcmVjdFJlc3BvbnNlOiIpOwog
ICAgIG1fd2FzSGFuZGxlZCA9IHRydWU7CiAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgpOwogICAg
IHNvZnRVcGRhdGVJZk5lZWRlZCgpOwpAQCAtMTQwLDcgKzE0MCw3IEBAIHZvaWQgU2VydmljZVdv
cmtlckZldGNoVGFzazo6ZGlkUmVjZWl2ZVJlc3BvbnNlKFJlc291cmNlUmVzcG9uc2UmJiByZXNw
b25zZSwgYm9vCiAgICAgaWYgKG1faXNEb25lKQogICAgICAgICByZXR1cm47CiAKLSAgICBSRUxF
QVNFX0xPR19JRl9BTExPV0VEKCJkaWRSZWNlaXZlUmVzcG9uc2U6IChodHRwU3RhdHVzQ29kZT0l
ZCwgTUlNRVR5cGU9JSIgUFVCTElDX0xPR19TVFJJTkcgIiwgZXhwZWN0ZWRDb250ZW50TGVuZ3Ro
PSUiIFBSSWQ2NCAiLCBuZWVkc0NvbnRpbnVlRGlkUmVjZWl2ZVJlc3BvbnNlTWVzc2FnZT0lZCwg
c291cmNlPSV1KSIsIHJlc3BvbnNlLmh0dHBTdGF0dXNDb2RlKCksIHJlc3BvbnNlLm1pbWVUeXBl
KCkudXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuZXhwZWN0ZWRDb250ZW50TGVuZ3RoKCksIG5lZWRz
Q29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNzYWdlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
cmVzcG9uc2Uuc291cmNlKCkpKTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJkaWRSZWNlaXZl
UmVzcG9uc2U6IChodHRwU3RhdHVzQ29kZT0lZCwgTUlNRVR5cGU9JSIgUFVCTElDX0xPR19TVFJJ
TkcgIiwgZXhwZWN0ZWRDb250ZW50TGVuZ3RoPSUiIFBSSWQ2NCAiLCBuZWVkc0NvbnRpbnVlRGlk
UmVjZWl2ZVJlc3BvbnNlTWVzc2FnZT0lZCwgc291cmNlPSV1KSIsIHJlc3BvbnNlLmh0dHBTdGF0
dXNDb2RlKCksIHJlc3BvbnNlLm1pbWVUeXBlKCkudXRmOCgpLmRhdGEoKSwgcmVzcG9uc2UuZXhw
ZWN0ZWRDb250ZW50TGVuZ3RoKCksIG5lZWRzQ29udGludWVEaWRSZWNlaXZlUmVzcG9uc2VNZXNz
YWdlLCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4ocmVzcG9uc2Uuc291cmNlKCkpKTsKICAgICBtX3dh
c0hhbmRsZWQgPSB0cnVlOwogICAgIG1fdGltZW91dFRpbWVyLnN0b3AoKTsKICAgICBzb2Z0VXBk
YXRlSWZOZWVkZWQoKTsKQEAgLTE3MCw3ICsxNzAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJGZXRj
aFRhc2s6OmRpZFJlY2VpdmVGb3JtRGF0YShjb25zdCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiBm
bwogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGaW5pc2goKQogewogICAgIEFTU0VS
VCghbV90aW1lb3V0VGltZXIuaXNBY3RpdmUoKSk7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dF
RCgiZGlkRmluaXNoOiIpOworICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImRpZEZpbmlzaDoiKTsK
IAogICAgIG1faXNEb25lID0gdHJ1ZTsKICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7CkBAIC0x
ODQsNyArMTg0LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWRGYWlsKGNvbnN0
IFJlc291cmNlRXJyb3ImIGVycm9yKQogICAgICAgICBtX3RpbWVvdXRUaW1lci5zdG9wKCk7CiAg
ICAgICAgIHNvZnRVcGRhdGVJZk5lZWRlZCgpOwogICAgIH0KLSAgICBSRUxFQVNFX0xPR19FUlJP
Ul9JRl9BTExPV0VEKCJkaWRGYWlsOiAoZXJyb3IuZG9tYWluPSUiIFBVQkxJQ19MT0dfU1RSSU5H
ICIsIGVycm9yLmNvZGU9JWQpIiwgZXJyb3IuZG9tYWluKCkudXRmOCgpLmRhdGEoKSwgZXJyb3Iu
ZXJyb3JDb2RlKCkpOworICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0dfRVJST1IoImRpZEZhaWw6IChl
cnJvci5kb21haW49JSIgUFVCTElDX0xPR19TVFJJTkcgIiwgZXJyb3IuY29kZT0lZCkiLCBlcnJv
ci5kb21haW4oKS51dGY4KCkuZGF0YSgpLCBlcnJvci5lcnJvckNvZGUoKSk7CiAgICAgbV9sb2Fk
ZXIuZGlkRmFpbExvYWRpbmcoZXJyb3IpOwogfQogCkBAIC0xOTMsNyArMTkzLDcgQEAgdm9pZCBT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpkaWROb3RIYW5kbGUoKQogICAgIGlmIChtX2lzRG9uZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgiZGlkTm90SGFu
ZGxlOiIpOworICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coImRpZE5vdEhhbmRsZToiKTsKICAgICBt
X2lzRG9uZSA9IHRydWU7CiAgICAgbV90aW1lb3V0VGltZXIuc3RvcCgpOwogICAgIHNvZnRVcGRh
dGVJZk5lZWRlZCgpOwpAQCAtMjAzLDcgKzIwMyw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNo
VGFzazo6ZGlkTm90SGFuZGxlKCkKIAogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpjYW5u
b3RIYW5kbGUoKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNhbm5vdEhhbmRsZToi
KTsKKyAgICBTV0ZFVENIX1JFTEVBU0VfTE9HKCJjYW5ub3RIYW5kbGU6Iik7CiAgICAgLy8gTWFr
ZSBzdXJlIHdlIGNhbGwgZGlkTm90SGFuZGxlIGFzeW5jaHJvbm91c2x5IGJlY2F1c2UgZmFpbGlu
ZyBzeW5jaHJvbm91c2x5IHdvdWxkIGdldCB0aGUgTmV0d29ya1Jlc291cmNlTG9hZGVyIGluIGEg
YmFkIHN0YXRlLgogICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbd2Vha1RoaXMgPSBtYWtl
V2Vha1B0cih0aGlzKV0gewogICAgICAgICBpZiAod2Vha1RoaXMpCkBAIC0yMTMsMTkgKzIxMywx
OSBAQCB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNhbm5vdEhhbmRsZSgpCiAKIHZvaWQg
U2VydmljZVdvcmtlckZldGNoVGFzazo6Y2FuY2VsRnJvbUNsaWVudCgpCiB7Ci0gICAgUkVMRUFT
RV9MT0dfSUZfQUxMT1dFRCgiY2FuY2VsRnJvbUNsaWVudDoiKTsKKyAgICBTV0ZFVENIX1JFTEVB
U0VfTE9HKCJjYW5jZWxGcm9tQ2xpZW50OiIpOwogICAgIHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVz
c2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpDYW5jZWxGZXRjaCB7IG1fc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0
Y2hJZGVudGlmaWVyIH0pOwogfQogCiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNvbnRp
bnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9X
RUQoImNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2U6Iik7CisgICAgU1dGRVRDSF9SRUxF
QVNFX0xPRygiY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZToiKTsKICAgICBzZW5kVG9T
ZXJ2aWNlV29ya2VyKE1lc3NhZ2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Q29u
dGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZSB7IG1fc2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJZGVudGlmaWVyIH0pOwogfQog
CiB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OmNvbnRpbnVlRmV0Y2hUYXNrV2l0aChSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoImNv
bnRpbnVlRmV0Y2hUYXNrV2l0aDogKGhhc1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uPSVkKSIsICEh
bV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbik7CisgICAgU1dGRVRDSF9SRUxFQVNFX0xPRygiY29u
dGludWVGZXRjaFRhc2tXaXRoOiAoaGFzU2VydmljZVdvcmtlckNvbm5lY3Rpb249JWQpIiwgISFt
X3NlcnZpY2VXb3JrZXJDb25uZWN0aW9uKTsKICAgICBpZiAoIW1fc2VydmljZVdvcmtlckNvbm5l
Y3Rpb24pIHsKICAgICAgICAgbV9sb2FkZXIuc2VydmljZVdvcmtlckRpZE5vdEhhbmRsZSh0aGlz
KTsKICAgICAgICAgcmV0dXJuOwpAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQgU2VydmljZVdvcmtl
ckZldGNoVGFzazo6dGltZW91dFRpbWVyRmlyZWQoKQogewogICAgIEFTU0VSVCghbV9pc0RvbmUp
OwogICAgIEFTU0VSVCghbV93YXNIYW5kbGVkKTsKLSAgICBSRUxFQVNFX0xPR19FUlJPUl9JRl9B
TExPV0VEKCJ0aW1lb3V0VGltZXJGaXJlZDogKGhhc1NlcnZpY2VXb3JrZXJDb25uZWN0aW9uPSVk
KSIsICEhbV9zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbik7CisgICAgU1dGRVRDSF9SRUxFQVNFX0xP
R19FUlJPUigidGltZW91dFRpbWVyRmlyZWQ6IChoYXNTZXJ2aWNlV29ya2VyQ29ubmVjdGlvbj0l
ZCkiLCAhIW1fc2VydmljZVdvcmtlckNvbm5lY3Rpb24pOwogCiAgICAgc29mdFVwZGF0ZUlmTmVl
ZGVkKCk7CiAKQEAgLTI1MSw3ICsyNTEsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6
OnRpbWVvdXRUaW1lckZpcmVkKCkKIAogdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzb2Z0
VXBkYXRlSWZOZWVkZWQoKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInNvZnRVcGRh
dGVJZk5lZWRlZDogKG1fc2hvdWxkU29mdFVwZGF0ZT0lZCkiLCBtX3Nob3VsZFNvZnRVcGRhdGUp
OworICAgIFNXRkVUQ0hfUkVMRUFTRV9MT0coInNvZnRVcGRhdGVJZk5lZWRlZDogKG1fc2hvdWxk
U29mdFVwZGF0ZT0lZCkiLCBtX3Nob3VsZFNvZnRVcGRhdGUpOwogICAgIGlmICghbV9zaG91bGRT
b2Z0VXBkYXRlKQogICAgICAgICByZXR1cm47CiAgICAgaWYgKGF1dG8qIHJlZ2lzdHJhdGlvbiA9
IG1fbG9hZGVyLmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS5zd0Nvbm5lY3Rpb24oKS5zZXJ2ZXIo
KS5nZXRSZWdpc3RyYXRpb24obV9zZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllcikp
CkBAIC0yNjAsNCArMjYwLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzb2Z0VXBk
YXRlSWZOZWVkZWQoKQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAorI3VuZGVmIFNXRkVUQ0hf
UkVMRUFTRV9MT0cKKyN1bmRlZiBTV0ZFVENIX1JFTEVBU0VfTE9HX0VSUk9SCisKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uY3BwCmluZGV4IDJjZGE5OTVkZWNmZmZmMmZjMTZlN2I3M2VmYzk4NzIzOGYwNTkwMjAuLmMz
YTdiM2RmNzBjMzdlM2RiZTRmYTMxZWY2NjBiNjA3MDhmMzcyZTMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9X
ZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwCkBAIC02Miw4ICs2Miw4IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogdXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi0j
ZGVmaW5lIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKGZtdCwgLi4u
KSBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQoKS5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSwg
U2VydmljZVdvcmtlciwgIiVwIC0gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjoiIGZtdCwgdGhpcywg
IyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VS
Uk9SX0lGX0FMTE9XRUQoZm10LCAuLi4pIFJFTEVBU0VfTE9HX0VSUk9SX0lGKHNlc3Npb25JRCgp
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBTZXJ2aWNlV29ya2VyLCAiJXAgLSBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBTV1NF
UlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0coZm10LCAuLi4pIFJFTEVBU0VfTE9HKFNlcnZpY2VX
b3JrZXIsICIlcCAtIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6IiBmbXQsIHRoaXMsICMjX19WQV9B
UkdTX18pCisjZGVmaW5lIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUihmbXQs
IC4uLikgUkVMRUFTRV9MT0dfRVJST1IoU2VydmljZVdvcmtlciwgIiVwIC0gV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogV2ViU1dTZXJ2ZXJDb25u
ZWN0aW9uOjpXZWJTV1NlcnZlckNvbm5lY3Rpb24oTmV0d29ya1Byb2Nlc3MmIG5ldHdvcmtQcm9j
ZXNzLCBTV1NlcnZlciYgc2VydmVyLCBJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFByb2Nl
c3NJZGVudGlmaWVyIHByb2Nlc3NJZGVudGlmaWVyKQogICAgIDogU1dTZXJ2ZXI6OkNvbm5lY3Rp
b24oc2VydmVyLCBwcm9jZXNzSWRlbnRpZmllcikKQEAgLTE4MCw3ICsxODAsNyBAQCBzdGQ6OnVu
aXF1ZV9wdHI8U2VydmljZVdvcmtlckZldGNoVGFzaz4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpj
cmVhdGVGZXRjaFRhc2soTgogCiAgICAgYXV0byogd29ya2VyID0gc2VydmVyKCkuYWN0aXZlV29y
a2VyRnJvbVJlZ2lzdHJhdGlvbklEKCpzZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
cik7CiAgICAgaWYgKCF3b3JrZXIpIHsKLSAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IERpZE5vdEhhbmRsZSBiZWNhdXNl
IG5vIGFjdGl2ZSB3b3JrZXIgZm9yIHJlZ2lzdHJhdGlvbiAlIiBQUkl1NjQsIHNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLT50b1VJbnQ2NCgpKTsKKyAgICAgICAgU1dTRVJWRVJD
T05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SKCJzdGFydEZldGNoOiBEaWROb3RIYW5kbGUgYmVj
YXVzZSBubyBhY3RpdmUgd29ya2VyIGZvciByZWdpc3RyYXRpb24gJSIgUFJJdTY0LCBzZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllci0+dG9VSW50NjQoKSk7CiAgICAgICAgIHJldHVy
biBudWxscHRyOwogICAgIH0KIApAQCAtMTk0LDcgKzE5NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxT
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrPiBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNyZWF0ZUZldGNo
VGFzayhOCiAgICAgfQogCiAgICAgaWYgKHdvcmtlci0+aGFzVGltZWRPdXRBbnlGZXRjaFRhc2tz
KCkpIHsKLSAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0VSUk9SX0lGX0FM
TE9XRUQoInN0YXJ0RmV0Y2g6IERpZE5vdEhhbmRsZSBiZWNhdXNlIHdvcmtlciAlIiBQUkl1NjQg
IiBoYXMgc29tZSB0aW1lb3V0cyIsIHdvcmtlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwor
ICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1IoInN0YXJ0RmV0Y2g6
IERpZE5vdEhhbmRsZSBiZWNhdXNlIHdvcmtlciAlIiBQUkl1NjQgIiBoYXMgc29tZSB0aW1lb3V0
cyIsIHdvcmtlci0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOwogICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CiAKQEAgLTIxNSw3ICsyMTUsNyBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVj
dGlvbjo6c3RhcnRGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0YXNrLCBTV1NlcnZlcldv
cgogICAgICAgICB9CiAKICAgICAgICAgaWYgKCFzdWNjZXNzKSB7Ci0gICAgICAgICAgICBTV1NF
UlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0dfRVJST1JfSUZfQUxMT1dFRCgic3RhcnRGZXRjaDog
ZmV0Y2hJZGVudGlmaWVyPSUiIFBSSXU2NCAiIERpZE5vdEhhbmRsZSBiZWNhdXNlIHdvcmtlciBk
aWQgbm90IGJlY29tZSBhY3RpdmF0ZWQiLCB0YXNrLT5mZXRjaElkZW50aWZpZXIoKS50b1VJbnQ2
NCgpKTsKKyAgICAgICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUigi
c3RhcnRGZXRjaDogZmV0Y2hJZGVudGlmaWVyPSUiIFBSSXU2NCAiIERpZE5vdEhhbmRsZSBiZWNh
dXNlIHdvcmtlciBkaWQgbm90IGJlY29tZSBhY3RpdmF0ZWQiLCB0YXNrLT5mZXRjaElkZW50aWZp
ZXIoKS50b1VJbnQ2NCgpKTsKICAgICAgICAgICAgIHRhc2stPmNhbm5vdEhhbmRsZSgpOwogICAg
ICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CkBAIC0yNDAsMTEgKzI0MCwxMSBAQCB2b2lkIFdl
YlNXU2VydmVyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrJiB0
YXNrLCBTV1NlcnZlcldvcgogICAgICAgICAgICAgfQogCiAgICAgICAgICAgICBpZiAoIWNvbnRl
eHRDb25uZWN0aW9uKSB7Ci0gICAgICAgICAgICAgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IGZldGNoSWRlbnRpZmllcj0lcyBE
aWROb3RIYW5kbGUgYmVjYXVzZSBmYWlsZWQgdG8gcnVuIHNlcnZpY2Ugd29ya2VyIiwgdGFzay0+
ZmV0Y2hJZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICAgICAgICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19FUlJPUigic3RhcnRGZXRj
aDogZmV0Y2hJZGVudGlmaWVyPSVzIERpZE5vdEhhbmRsZSBiZWNhdXNlIGZhaWxlZCB0byBydW4g
c2VydmljZSB3b3JrZXIiLCB0YXNrLT5mZXRjaElkZW50aWZpZXIoKS5sb2dnaW5nU3RyaW5nKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgICAgICAgICAgICAgdGFzay0+Y2Fubm90SGFuZGxlKCk7CiAg
ICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAgICAgICAgU1dTRVJW
RVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0RmV0Y2g6IFN0YXJ0aW5n
IGZldGNoICUiIFBSSXU2NCAiIHZpYSBzZXJ2aWNlIHdvcmtlciAlIiBQUkl1NjQsIHRhc2stPmZl
dGNoSWRlbnRpZmllcigpLnRvVUludDY0KCksIHRhc2stPnNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
KCkudG9VSW50NjQoKSk7CisgICAgICAgICAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9M
T0coInN0YXJ0RmV0Y2g6IFN0YXJ0aW5nIGZldGNoICUiIFBSSXU2NCAiIHZpYSBzZXJ2aWNlIHdv
cmtlciAlIiBQUkl1NjQsIHRhc2stPmZldGNoSWRlbnRpZmllcigpLnRvVUludDY0KCksIHRhc2st
PnNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiAgICAgICAgICAgICBzdGF0
aWNfY2FzdDxXZWJTV1NlcnZlclRvQ29udGV4dENvbm5lY3Rpb24mPigqY29udGV4dENvbm5lY3Rp
b24pLnN0YXJ0RmV0Y2goKnRhc2spOwogICAgICAgICB9KTsKICAgICB9OwpAQCAtMjg1LDcgKzI4
NSw3IEBAIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpzY2hlZHVsZUpvYkluU2VydmVyKFNl
cnZpY2VXb3JrZXJKb2JEYXRhJiYgam9iRGF0YSkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPR19JRl9BTExPV0VEKCJTY2hlZHVsaW5n
IFNlcnZpY2VXb3JrZXIgam9iICVzIGluIHNlcnZlciIsIGpvYkRhdGEuaWRlbnRpZmllcigpLmxv
Z2dpbmdTdHJpbmcoKS51dGY4KCkuZGF0YSgpKTsKKyAgICBTV1NFUlZFUkNPTk5FQ1RJT05fUkVM
RUFTRV9MT0coIlNjaGVkdWxpbmcgU2VydmljZVdvcmtlciBqb2IgJXMgaW4gc2VydmVyIiwgam9i
RGF0YS5pZGVudGlmaWVyKCkubG9nZ2luZ1N0cmluZygpLnV0ZjgoKS5kYXRhKCkpOwogICAgIEFT
U0VSVChpZGVudGlmaWVyKCkgPT0gam9iRGF0YS5jb25uZWN0aW9uSWRlbnRpZmllcigpKTsKIAog
ICAgIHNlcnZlcigpLnNjaGVkdWxlSm9iKFdURk1vdmUoam9iRGF0YSkpOwpAQCAtMzE1LDcgKzMx
NSw3IEBAIFVSTCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmNsaWVudFVSTEZyb21JZGVudGlmaWVy
KERvY3VtZW50T3JXb3JrZXJJZGVudGlmaWVyIGNvCiAKIHZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uOjpzY2hlZHVsZVVucmVnaXN0ZXJKb2JJblNlcnZlcihTZXJ2aWNlV29ya2VySm9iSWRlbnRp
ZmllciBqb2JJZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBy
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBEb2N1bWVudE9yV29ya2VySWRlbnRpZmllciBjb250ZXh0
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVbnJlZ2lzdGVySm9iUmVzdWx0JiYp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNF
X0xPR19JRl9BTExPV0VEKCJTY2hlZHVsaW5nIHVucmVnaXN0ZXIgU2VydmljZVdvcmtlciBqb2Ig
aW4gc2VydmVyIik7CisgICAgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HKCJTY2hlZHVs
aW5nIHVucmVnaXN0ZXIgU2VydmljZVdvcmtlciBqb2IgaW4gc2VydmVyIik7CiAKICAgICBhdXRv
KiByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CiAgICAgaWYgKCFyZWdpc3RyYXRpb24pCkBAIC00OTUsNCArNDk1LDcgQEAgdm9p
ZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZldGNoVGFza1RpbWVkT3V0KFNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3IKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyN1bmRlZiBT
V1NFUlZFUkNPTk5FQ1RJT05fUkVMRUFTRV9MT0cKKyN1bmRlZiBTV1NFUlZFUkNPTk5FQ1RJT05f
UkVMRUFTRV9MT0dfRVJST1IKKwogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUvQ2FjaGVTdG9yYWdl
RW5naW5lQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NhY2hl
L0NhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uY3BwCmluZGV4IDc5NjhiNmMzNTk0Y2Y5MjE0
OTNkNDNhNjhmMDA1NTRhZmIxNGYyY2UuLmY5MzRkNmQ0NmVkY2QyMDViZmVmNGQ2OGE4MDQ5YWQ0
YTRkZWE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvY2FjaGUv
Q2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9jYWNoZS9DYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmNwcApAQCAtMzYs
MTUgKzM2LDE0IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU6
OkRPTUNhY2hlRW5naW5lOwogdXNpbmcgbmFtZXNwYWNlIENhY2hlU3RvcmFnZTsKIAotI3VuZGVm
IFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChm
bXQsIC4uLikgUkVMRUFTRV9MT0dfSUYoc2Vzc2lvbklEKCkuaXNBbHdheXNPbkxvZ2dpbmdBbGxv
d2VkKCksIENhY2hlU3RvcmFnZSwgIiVwIC0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6
IiBmbXQsICZtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLCAjI19fVkFfQVJHU19fKQotI2RlZmlu
ZSBSRUxFQVNFX0xPR19GVU5DVElPTl9JRl9BTExPV0VEX0lOX0NBTExCQUNLKGZ1bmN0aW9uTmFt
ZSwgZm10LCByZXN1bHRHZXR0ZXIpIFwKKyNkZWZpbmUgQ0FDSEVfU1RPUkFHRV9SRUxFQVNFX0xP
RyhmbXQsIC4uLikgUkVMRUFTRV9MT0coQ2FjaGVTdG9yYWdlLCAiJXAgLSBDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uOjoiIGZtdCwgJm1fY29ubmVjdGlvbi5jb25uZWN0aW9uKCksICMjX19W
QV9BUkdTX18pCisjZGVmaW5lIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9MT0dfRlVOQ1RJT05fSU5f
Q0FMTEJBQ0soZnVuY3Rpb25OYW1lLCBmbXQsIHJlc3VsdEdldHRlcikgXAogICAgIGlmICghcmVz
dWx0Lmhhc192YWx1ZSgpKVwKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1JfSUYoc2Vzc2lvbklE
LmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpLCBDYWNoZVN0b3JhZ2UsICJDYWNoZVN0b3JhZ2VF
bmdpbmVDb25uZWN0aW9uOjolcyAtIGZhaWxlZCAtIGVycm9yICVkIiwgZnVuY3Rpb25OYW1lLCAo
aW50KXJlc3VsdC5lcnJvcigpKTsgXAorICAgICAgICBSRUxFQVNFX0xPR19FUlJPUihDYWNoZVN0
b3JhZ2UsICJDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjolcyAtIGZhaWxlZCAtIGVycm9y
ICVkIiwgZnVuY3Rpb25OYW1lLCAoaW50KXJlc3VsdC5lcnJvcigpKTsgXAogICAgIGVsc2Uge1wK
ICAgICAgICAgYXV0byB2YWx1ZSA9IHJlc3VsdEdldHRlcihyZXN1bHQudmFsdWUoKSk7IFwKICAg
ICAgICAgVU5VU0VEX1BBUkFNKHZhbHVlKTsgXAotICAgICAgICBSRUxFQVNFX0xPR19JRihzZXNz
aW9uSUQuaXNBbHdheXNPbkxvZ2dpbmdBbGxvd2VkKCksIENhY2hlU3RvcmFnZSwgIkNhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb246OiVzIC0gc3VjY2VlZGVkIC0gIiBmbXQsIGZ1bmN0aW9uTmFt
ZSwgdmFsdWUpOyBcCisgICAgICAgIFJFTEVBU0VfTE9HKENhY2hlU3RvcmFnZSwgIkNhY2hlU3Rv
cmFnZUVuZ2luZUNvbm5lY3Rpb246OiVzIC0gc3VjY2VlZGVkIC0gIiBmbXQsIGZ1bmN0aW9uTmFt
ZSwgdmFsdWUpOyBcCiAgICAgfQogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6Q2FjaGVT
dG9yYWdlRW5naW5lQ29ubmVjdGlvbihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29u
bmVjdGlvbikKICAgICA6IG1fY29ubmVjdGlvbihjb25uZWN0aW9uKQpAQCAtNjEsNjEgKzYwLDYx
IEBAIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246On5DYWNoZVN0b3JhZ2VFbmdpbmVDb25u
ZWN0aW9uKCkKIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpvcGVuKFdlYkNv
cmU6OkNsaWVudE9yaWdpbiYmIG9yaWdpbiwgU3RyaW5nJiYgY2FjaGVOYW1lLCBDYWNoZUlkZW50
aWZpZXJDYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQo
Im9wZW4gY2FjaGUiKTsKKyAgICBDQUNIRV9TVE9SQUdFX1JFTEVBU0VfTE9HKCJvcGVuIGNhY2hl
Iik7CiAgICAgRW5naW5lOjpvcGVuKG1fY29ubmVjdGlvbi5uZXR3b3JrUHJvY2VzcygpLCBzZXNz
aW9uSUQoKSwgV1RGTW92ZShvcmlnaW4pLCBXVEZNb3ZlKGNhY2hlTmFtZSksIFtjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spLCBzZXNzaW9uSUQgPSB0aGlzLT5zZXNzaW9uSUQoKV0oYXV0byYg
cmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRlVOQ1RJT05fSUZfQUxMT1dF
RF9JTl9DQUxMQkFDSygib3BlbiIsICJjYWNoZSBpZGVudGlmaWVyIGlzICUiIFBSSXU2NCwgW10o
Y29uc3QgYXV0byYgdmFsdWUpIHsgcmV0dXJuIHZhbHVlLmlkZW50aWZpZXI7IH0pOworICAgICAg
ICBDQUNIRV9TVE9SQUdFX1JFTEVBU0VfTE9HX0ZVTkNUSU9OX0lOX0NBTExCQUNLKCJvcGVuIiwg
ImNhY2hlIGlkZW50aWZpZXIgaXMgJSIgUFJJdTY0LCBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyBy
ZXR1cm4gdmFsdWUuaWRlbnRpZmllcjsgfSk7CiAgICAgICAgIGNhbGxiYWNrKHJlc3VsdCk7CiAg
ICAgfSk7CiB9CiAKIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVtb3ZlKHVp
bnQ2NF90IGNhY2hlSWRlbnRpZmllciwgQ2FjaGVJZGVudGlmaWVyQ2FsbGJhY2smJiBjYWxsYmFj
aykKIHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJyZW1vdmUgY2FjaGUgJSIgUFJJdTY0
LCBjYWNoZUlkZW50aWZpZXIpOworICAgIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9MT0coInJlbW92
ZSBjYWNoZSAlIiBQUkl1NjQsIGNhY2hlSWRlbnRpZmllcik7CiAgICAgRW5naW5lOjpyZW1vdmUo
bV9jb25uZWN0aW9uLm5ldHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCgpLCBjYWNoZUlkZW50aWZp
ZXIsIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBzZXNzaW9uSUQgPSB0aGlzLT5zZXNz
aW9uSUQoKV0oYXV0byYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRlVO
Q1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSygicmVtb3ZlIiwgInJlbW92ZWQgY2FjaGUgJSIg
UFJJdTY0LCBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuaWRlbnRpZmllcjsg
fSk7CisgICAgICAgIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9MT0dfRlVOQ1RJT05fSU5fQ0FMTEJB
Q0soInJlbW92ZSIsICJyZW1vdmVkIGNhY2hlICUiIFBSSXU2NCwgW10oY29uc3QgYXV0byYgdmFs
dWUpIHsgcmV0dXJuIHZhbHVlLmlkZW50aWZpZXI7IH0pOwogICAgICAgICBjYWxsYmFjayhyZXN1
bHQpOwogICAgIH0pOwogfQogCiB2b2lkIENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb246OmNh
Y2hlcyhXZWJDb3JlOjpDbGllbnRPcmlnaW4mJiBvcmlnaW4sIHVpbnQ2NF90IHVwZGF0ZUNvdW50
ZXIsIENhY2hlSW5mb3NDYWxsYmFjayYmIGNhbGxiYWNrKQogewotICAgIFJFTEVBU0VfTE9HX0lG
X0FMTE9XRUQoImNhY2hlcyIpOworICAgIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9MT0coImNhY2hl
cyIpOwogICAgIEVuZ2luZTo6cmV0cmlldmVDYWNoZXMobV9jb25uZWN0aW9uLm5ldHdvcmtQcm9j
ZXNzKCksIHNlc3Npb25JRCgpLCBXVEZNb3ZlKG9yaWdpbiksIHVwZGF0ZUNvdW50ZXIsIFtjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBvcmlnaW4sIHNlc3Npb25JRCA9IHRoaXMtPnNlc3Np
b25JRCgpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRlVO
Q1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSygiY2FjaGVzIiwgImNhY2hlcyBzaXplIGlzICVs
dSIsIFtdKGNvbnN0IGF1dG8mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5pbmZvcy5zaXplKCk7IH0p
OworICAgICAgICBDQUNIRV9TVE9SQUdFX1JFTEVBU0VfTE9HX0ZVTkNUSU9OX0lOX0NBTExCQUNL
KCJjYWNoZXMiLCAiY2FjaGVzIHNpemUgaXMgJWx1IiwgW10oY29uc3QgYXV0byYgdmFsdWUpIHsg
cmV0dXJuIHZhbHVlLmluZm9zLnNpemUoKTsgfSk7CiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7CiAgICAgfSk7CiB9CiAKIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bjo6cmV0cmlldmVSZWNvcmRzKHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgV2ViQ29yZTo6UmV0
cmlldmVSZWNvcmRzT3B0aW9ucyYmIG9wdGlvbnMsIFJlY29yZHNDYWxsYmFjayYmIGNhbGxiYWNr
KQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInJldHJpZXZlUmVjb3JkcyBpbiBjYWNo
ZSAlIiBQUkl1NjQsIGNhY2hlSWRlbnRpZmllcik7CisgICAgQ0FDSEVfU1RPUkFHRV9SRUxFQVNF
X0xPRygicmV0cmlldmVSZWNvcmRzIGluIGNhY2hlICUiIFBSSXU2NCwgY2FjaGVJZGVudGlmaWVy
KTsKICAgICBFbmdpbmU6OnJldHJpZXZlUmVjb3JkcyhtX2Nvbm5lY3Rpb24ubmV0d29ya1Byb2Nl
c3MoKSwgc2Vzc2lvbklEKCksIGNhY2hlSWRlbnRpZmllciwgV1RGTW92ZShvcHRpb25zKSwgW2Nh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Npb25JRCA9IHRoaXMtPnNlc3Npb25JRCgp
XShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgUkVMRUFTRV9MT0dfRlVOQ1RJT05f
SUZfQUxMT1dFRF9JTl9DQUxMQkFDSygicmV0cmlldmVSZWNvcmRzIiwgInJlY29yZHMgc2l6ZSBp
cyAlbHUiLCBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyByZXR1cm4gdmFsdWUuc2l6ZSgpOyB9KTsK
KyAgICAgICAgQ0FDSEVfU1RPUkFHRV9SRUxFQVNFX0xPR19GVU5DVElPTl9JTl9DQUxMQkFDSygi
cmV0cmlldmVSZWNvcmRzIiwgInJlY29yZHMgc2l6ZSBpcyAlbHUiLCBbXShjb25zdCBhdXRvJiB2
YWx1ZSkgeyByZXR1cm4gdmFsdWUuc2l6ZSgpOyB9KTsKICAgICAgICAgY2FsbGJhY2soV1RGTW92
ZShyZXN1bHQpKTsKICAgICB9KTsKIH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0
aW9uOjpkZWxldGVNYXRjaGluZ1JlY29yZHModWludDY0X3QgY2FjaGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBXZWJDb3JlOjpDYWNoZVF1ZXJ5T3B0aW9u
cyYmIG9wdGlvbnMsIFJlY29yZElkZW50aWZpZXJzQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKLSAg
ICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJkZWxldGVNYXRjaGluZ1JlY29yZHMgaW4gY2FjaGUg
JSIgUFJJdTY0LCBjYWNoZUlkZW50aWZpZXIpOworICAgIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9M
T0coImRlbGV0ZU1hdGNoaW5nUmVjb3JkcyBpbiBjYWNoZSAlIiBQUkl1NjQsIGNhY2hlSWRlbnRp
Zmllcik7CiAgICAgRW5naW5lOjpkZWxldGVNYXRjaGluZ1JlY29yZHMobV9jb25uZWN0aW9uLm5l
dHdvcmtQcm9jZXNzKCksIHNlc3Npb25JRCgpLCBjYWNoZUlkZW50aWZpZXIsIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucyksIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spLCBz
ZXNzaW9uSUQgPSB0aGlzLT5zZXNzaW9uSUQoKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgIFJFTEVBU0VfTE9HX0ZVTkNUSU9OX0lGX0FMTE9XRURfSU5fQ0FMTEJBQ0soImRlbGV0
ZU1hdGNoaW5nUmVjb3JkcyIsICJkZWxldGVkICVsdSByZWNvcmRzIiwgIFtdKGNvbnN0IGF1dG8m
IHZhbHVlKSB7IHJldHVybiB2YWx1ZS5zaXplKCk7IH0pOworICAgICAgICBDQUNIRV9TVE9SQUdF
X1JFTEVBU0VfTE9HX0ZVTkNUSU9OX0lOX0NBTExCQUNLKCJkZWxldGVNYXRjaGluZ1JlY29yZHMi
LCAiZGVsZXRlZCAlbHUgcmVjb3JkcyIsICBbXShjb25zdCBhdXRvJiB2YWx1ZSkgeyByZXR1cm4g
dmFsdWUuc2l6ZSgpOyB9KTsKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKICAg
ICB9KTsKIH0KIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpwdXRSZWNvcmRz
KHVpbnQ2NF90IGNhY2hlSWRlbnRpZmllciwgVmVjdG9yPFJlY29yZD4mJiByZWNvcmRzLCBSZWNv
cmRJZGVudGlmaWVyc0NhbGxiYWNrJiYgY2FsbGJhY2spCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZf
QUxMT1dFRCgicHV0UmVjb3JkcyBpbiBjYWNoZSAlIiBQUkl1NjQgIiwgJWx1IHJlY29yZHMiLCBj
YWNoZUlkZW50aWZpZXIsIHJlY29yZHMuc2l6ZSgpKTsKKyAgICBDQUNIRV9TVE9SQUdFX1JFTEVB
U0VfTE9HKCJwdXRSZWNvcmRzIGluIGNhY2hlICUiIFBSSXU2NCAiLCAlbHUgcmVjb3JkcyIsIGNh
Y2hlSWRlbnRpZmllciwgcmVjb3Jkcy5zaXplKCkpOwogICAgIEVuZ2luZTo6cHV0UmVjb3Jkcyht
X2Nvbm5lY3Rpb24ubmV0d29ya1Byb2Nlc3MoKSwgc2Vzc2lvbklEKCksIGNhY2hlSWRlbnRpZmll
ciwgV1RGTW92ZShyZWNvcmRzKSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayksIHNlc3Np
b25JRCA9IHRoaXMtPnNlc3Npb25JRCgpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAg
ICAgUkVMRUFTRV9MT0dfRlVOQ1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSygicHV0UmVjb3Jk
cyIsICJwdXQgJWx1IHJlY29yZHMiLCAgW10oY29uc3QgYXV0byYgdmFsdWUpIHsgcmV0dXJuIHZh
bHVlLnNpemUoKTsgfSk7CisgICAgICAgIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9MT0dfRlVOQ1RJ
T05fSU5fQ0FMTEJBQ0soInB1dFJlY29yZHMiLCAicHV0ICVsdSByZWNvcmRzIiwgIFtdKGNvbnN0
IGF1dG8mIHZhbHVlKSB7IHJldHVybiB2YWx1ZS5zaXplKCk7IH0pOwogICAgICAgICBjYWxsYmFj
ayhXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCiB2b2lkIENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb246OnJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVmZXJlbmNlIGNhY2hlICUiIFBSSXU2NCwgY2FjaGVJ
ZGVudGlmaWVyKTsKKyAgICBDQUNIRV9TVE9SQUdFX1JFTEVBU0VfTE9HKCJyZWZlcmVuY2UgY2Fj
aGUgJSIgUFJJdTY0LCBjYWNoZUlkZW50aWZpZXIpOwogICAgIEFTU0VSVChtX2NhY2hlc0xvY2tz
LmlzVmFsaWRLZXkoY2FjaGVJZGVudGlmaWVyKSk7CiAgICAgaWYgKCFtX2NhY2hlc0xvY2tzLmlz
VmFsaWRLZXkoY2FjaGVJZGVudGlmaWVyKSkKICAgICAgICAgcmV0dXJuOwpAQCAtMTI5LDcgKzEy
OCw3IEBAIHZvaWQgQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbjo6cmVmZXJlbmNlKHVpbnQ2
NF90IGNhY2hlSWRlbnRpZmllcikKIAogdm9pZCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9u
OjpkZXJlZmVyZW5jZSh1aW50NjRfdCBjYWNoZUlkZW50aWZpZXIpCiB7Ci0gICAgUkVMRUFTRV9M
T0dfSUZfQUxMT1dFRCgiZGVyZWZlcmVuY2UgY2FjaGUgJSIgUFJJdTY0LCBjYWNoZUlkZW50aWZp
ZXIpOworICAgIENBQ0hFX1NUT1JBR0VfUkVMRUFTRV9MT0coImRlcmVmZXJlbmNlIGNhY2hlICUi
IFBSSXU2NCwgY2FjaGVJZGVudGlmaWVyKTsKICAgICBBU1NFUlQobV9jYWNoZXNMb2Nrcy5pc1Zh
bGlkS2V5KGNhY2hlSWRlbnRpZmllcikpOwogICAgIGlmICghbV9jYWNoZXNMb2Nrcy5pc1ZhbGlk
S2V5KGNhY2hlSWRlbnRpZmllcikpCiAgICAgICAgIHJldHVybjsKQEAgLTE2Myw1ICsxNjIsNSBA
QCBQQUw6OlNlc3Npb25JRCBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uOjpzZXNzaW9uSUQo
KSBjb25zdAogCiB9CiAKLSN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExPV0VECi0jdW5kZWYgUkVM
RUFTRV9MT0dfRlVOQ1RJT05fSUZfQUxMT1dFRF9JTl9DQUxMQkFDSworI3VuZGVmIENBQ0hFX1NU
T1JBR0VfUkVMRUFTRV9MT0cKKyN1bmRlZiBDQUNIRV9TVE9SQUdFX1JFTEVBU0VfTE9HX0ZVTkNU
SU9OX0lOX0NBTExCQUNLCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrTUROU1JlZ2lzdGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCmluZGV4IDA4MjU4ODM3YWVkOGE2
ZWZjN2MwYTAzNmMwODA4NmViOWUxMDVkNWIuLmZjNDM1MTEyZjViY2UwYWEzMTIyMGU0MTJmY2U0
YzU5ODNmMjhiMDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2Vi
cnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvd2VicnRjL05ldHdvcmtNRE5TUmVnaXN0ZXIuY3BwCkBAIC0zNyw4ICszNyw4IEBACiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogCi0jZGVmaW5lIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoZm10
LCAuLi4pIFJFTEVBU0VfTE9HX0lGKHNlc3Npb25JRCgpLmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dl
ZCgpLCBOZXR3b3JrLCAiJXAgLSBOZXR3b3JrTUROU1JlZ2lzdGVyOjoiIGZtdCwgdGhpcywgIyNf
X1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRF9JTl9DQUxMQkFDSyhz
ZXNzaW9uSUQsIGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihzZXNzaW9uSUQuaXNBbHdheXNPbkxv
Z2dpbmdBbGxvd2VkKCksIE5ldHdvcmssICJOZXR3b3JrTUROU1JlZ2lzdGVyIGNhbGxiYWNrIC0g
IiBmbXQsICMjX19WQV9BUkdTX18pCisjZGVmaW5lIE1ETlNfUkVMRUFTRV9MT0coZm10LCAuLi4p
IFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAtIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OiIgZm10LCB0
aGlzLCAjI19fVkFfQVJHU19fKQorI2RlZmluZSBNRE5TX1JFTEVBU0VfTE9HX0lOX0NBTExCQUNL
KHNlc3Npb25JRCwgZm10LCAuLi4pIFJFTEVBU0VfTE9HKE5ldHdvcmssICJOZXR3b3JrTUROU1Jl
Z2lzdGVyIGNhbGxiYWNrIC0gIiBmbXQsICMjX19WQV9BUkdTX18pCiAKIE5ldHdvcmtNRE5TUmVn
aXN0ZXI6Ok5ldHdvcmtNRE5TUmVnaXN0ZXIoTmV0d29ya0Nvbm5lY3Rpb25Ub1dlYlByb2Nlc3Mm
IGNvbm5lY3Rpb24pCiAgICAgOiBtX2Nvbm5lY3Rpb24oY29ubmVjdGlvbikKQEAgLTk1LDcgKzk1
LDcgQEAgc3RhdGljIHZvaWQgcmVnaXN0ZXJNRE5TTmFtZUNhbGxiYWNrKEROU1NlcnZpY2VSZWYs
IEROU1JlY29yZFJlZiByZWNvcmQsIEROU1NlcnYKICAgICBpZiAoIXJlcXVlc3QpCiAgICAgICAg
IHJldHVybjsKIAotICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRURfSU5fQ0FMTEJBQ0socmVxdWVz
dC0+c2Vzc2lvbklELCAicmVnaXN0ZXJNRE5TTmFtZUNhbGxiYWNrIHdpdGggZXJyb3IgJWQiLCBl
cnJvckNvZGUpOworICAgIE1ETlNfUkVMRUFTRV9MT0dfSU5fQ0FMTEJBQ0socmVxdWVzdC0+c2Vz
c2lvbklELCAicmVnaXN0ZXJNRE5TTmFtZUNhbGxiYWNrIHdpdGggZXJyb3IgJWQiLCBlcnJvckNv
ZGUpOwogCiAgICAgaWYgKGVycm9yQ29kZSkgewogICAgICAgICByZXF1ZXN0LT5jb25uZWN0aW9u
LT5zZW5kKE1lc3NhZ2VzOjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5T
TmFtZSB7IHJlcXVlc3QtPnJlcXVlc3RJZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChXZWJDb3Jl
OjpNRE5TUmVnaXN0ZXJFcnJvcjo6RE5TU0QpIH0sIDApOwpAQCAtMTExLDEzICsxMTEsMTMgQEAg
dm9pZCBOZXR3b3JrTUROU1JlZ2lzdGVyOjpyZWdpc3Rlck1ETlNOYW1lKE1ETlNSZWdpc3Rlcklk
ZW50aWZpZXIgcmVxdWVzdElkZW50aWYKICAgICBpZiAoaXRlcmF0b3IgPT0gbV9zZXJ2aWNlcy5l
bmQoKSkgewogICAgICAgICBhdXRvIGVycm9yID0gRE5TU2VydmljZUNyZWF0ZUNvbm5lY3Rpb24o
JnNlcnZpY2UpOwogICAgICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgICAgIFJFTEVBU0VfTE9H
X0lGX0FMTE9XRUQoInJlZ2lzdGVyTUROU05hbWUgRE5TU2VydmljZUNyZWF0ZUNvbm5lY3Rpb24g
ZXJyb3IgJWQiLCBlcnJvcik7CisgICAgICAgICAgICBNRE5TX1JFTEVBU0VfTE9HKCJyZWdpc3Rl
ck1ETlNOYW1lIEROU1NlcnZpY2VDcmVhdGVDb25uZWN0aW9uIGVycm9yICVkIiwgZXJyb3IpOwog
ICAgICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2VzOjpXZWJN
RE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5TTmFtZSB7IHJlcXVlc3RJZGVudGlm
aWVyLCBtYWtlVW5leHBlY3RlZChXZWJDb3JlOjpNRE5TUmVnaXN0ZXJFcnJvcjo6RE5TU0QpIH0s
IDApOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAgICAgICAgIGVycm9yID0gRE5T
U2VydmljZVNldERpc3BhdGNoUXVldWUoc2VydmljZSwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUo
KSk7CiAgICAgICAgIGlmIChlcnJvcikgewotICAgICAgICAgICAgUkVMRUFTRV9MT0dfSUZfQUxM
T1dFRCgicmVnaXN0ZXJNRE5TTmFtZSBETlNTZXJ2aWNlQ3JlYXRlQ29ubmVjdGlvbiBlcnJvciAl
ZCIsIGVycm9yKTsKKyAgICAgICAgICAgIE1ETlNfUkVMRUFTRV9MT0coInJlZ2lzdGVyTUROU05h
bWUgRE5TU2VydmljZUNyZWF0ZUNvbm5lY3Rpb24gZXJyb3IgJWQiLCBlcnJvcik7CiAgICAgICAg
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdp
c3Rlcjo6RmluaXNoZWRSZWdpc3RlcmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1h
a2VVbmV4cGVjdGVkKFdlYkNvcmU6Ok1ETlNSZWdpc3RlckVycm9yOjpETlNTRCkgfSwgMCk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KQEAgLTEzMSw3ICsxMzEsNyBAQCB2b2lkIE5l
dHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lzdGVySWRlbnRpZmll
ciByZXF1ZXN0SWRlbnRpZgogICAgIGF1dG8gaXAgPSBpbmV0X2FkZHIoaXBBZGRyZXNzLnV0Zjgo
KS5kYXRhKCkpOwogCiAgICAgaWYgKGlwID09ICggaW5fYWRkcl90KSgtMSkpIHsKLSAgICAgICAg
UkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgicmVnaXN0ZXJNRE5TTmFtZSBpbmV0X2FkZHIgZXJyb3Ii
KTsKKyAgICAgICAgTUROU19SRUxFQVNFX0xPRygicmVnaXN0ZXJNRE5TTmFtZSBpbmV0X2FkZHIg
ZXJyb3IiKTsKICAgICAgICAgbV9jb25uZWN0aW9uLmNvbm5lY3Rpb24oKS5zZW5kKE1lc3NhZ2Vz
OjpXZWJNRE5TUmVnaXN0ZXI6OkZpbmlzaGVkUmVnaXN0ZXJpbmdNRE5TTmFtZSB7IHJlcXVlc3RJ
ZGVudGlmaWVyLCBtYWtlVW5leHBlY3RlZChXZWJDb3JlOjpNRE5TUmVnaXN0ZXJFcnJvcjo6QmFk
UGFyYW1ldGVyKSB9LCAwKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTE1NSw3ICsxNTUs
NyBAQCB2b2lkIE5ldHdvcmtNRE5TUmVnaXN0ZXI6OnJlZ2lzdGVyTUROU05hbWUoTUROU1JlZ2lz
dGVySWRlbnRpZmllciByZXF1ZXN0SWRlbnRpZgogICAgICAgICByZWdpc3Rlck1ETlNOYW1lQ2Fs
bGJhY2ssCiAgICAgICAgIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCo+KHBlbmRpbmdSZWdpc3RyYXRp
b25SZXF1ZXN0Q291bnQpKTsKICAgICBpZiAoZXJyb3IpIHsKLSAgICAgICAgUkVMRUFTRV9MT0df
SUZfQUxMT1dFRCgicmVnaXN0ZXJNRE5TTmFtZSBETlNTZXJ2aWNlUmVnaXN0ZXJSZWNvcmQgZXJy
b3IgJWQiLCBlcnJvcik7CisgICAgICAgIE1ETlNfUkVMRUFTRV9MT0coInJlZ2lzdGVyTUROU05h
bWUgRE5TU2VydmljZVJlZ2lzdGVyUmVjb3JkIGVycm9yICVkIiwgZXJyb3IpOwogICAgICAgICBt
X2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdpc3Rlcjo6
RmluaXNoZWRSZWdpc3RlcmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1ha2VVbmV4
cGVjdGVkKFdlYkNvcmU6Ok1ETlNSZWdpc3RlckVycm9yOjpETlNTRCkgfSwgMCk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0xNzAsNyArMTcwLDcgQEAgdm9pZCBOZXR3b3JrTUROU1JlZ2lz
dGVyOjp1bnJlZ2lzdGVyTUROU05hbWVzKFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllcikKIAog
dm9pZCBOZXR3b3JrTUROU1JlZ2lzdGVyOjpyZWdpc3Rlck1ETlNOYW1lKE1ETlNSZWdpc3Rlcklk
ZW50aWZpZXIgcmVxdWVzdElkZW50aWZpZXIsIFdlYkNvcmU6OkRvY3VtZW50SWRlbnRpZmllciBk
b2N1bWVudElkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgaXBBZGRyZXNzKQogewotICAgIFJFTEVB
U0VfTE9HX0lGX0FMTE9XRUQoInJlZ2lzdGVyTUROU05hbWUgbm90IGltcGxlbWVudGVkIik7Cisg
ICAgTUROU19SRUxFQVNFX0xPRygicmVnaXN0ZXJNRE5TTmFtZSBub3QgaW1wbGVtZW50ZWQiKTsK
ICAgICBtX2Nvbm5lY3Rpb24uY29ubmVjdGlvbigpLnNlbmQoTWVzc2FnZXM6OldlYk1ETlNSZWdp
c3Rlcjo6RmluaXNoZWRSZWdpc3RlcmluZ01ETlNOYW1lIHsgcmVxdWVzdElkZW50aWZpZXIsIG1h
a2VVbmV4cGVjdGVkKFdlYkNvcmU6Ok1ETlNSZWdpc3RlckVycm9yOjpOb3RJbXBsZW1lbnRlZCkg
fSwgMCk7CiB9CiAKQEAgLTE4Myw3ICsxODMsNyBAQCBQQUw6OlNlc3Npb25JRCBOZXR3b3JrTURO
U1JlZ2lzdGVyOjpzZXNzaW9uSUQoKSBjb25zdAogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAot
I3VuZGVmIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQKLSN1bmRlZiBSRUxFQVNFX0xPR19JRl9BTExP
V0VEX0lOX0NBTExCQUNLCisjdW5kZWYgTUROU19SRUxFQVNFX0xPRworI3VuZGVmIE1ETlNfUkVM
RUFTRV9MT0dfSU5fQ0FMTEJBQ0sKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJfUlRDKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0
b3IuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01v
bml0b3IuY3BwCmluZGV4IDk3Y2M4MmU5MTJiYjg1YTY5YTljZTNkZGQ1NzQxNWUxN2M3Yzc3ZDcu
LmZjOWI4ODhiYTdkNjkzN2UzYmMxNzc1NTMzMGE3NTBiMTdiODQwMzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENNb25pdG9yLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDTW9uaXRv
ci5jcHAKQEAgLTM4LDkgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLSN1bmRlZiBS
RUxFQVNFX0xPR19JRl9BTExPV0VECi0KLSNkZWZpbmUgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRChm
bXQsIC4uLikgUkVMRUFTRV9MT0dfSUYobV9ydGNQcm92aWRlci5jYW5Mb2coKSwgTmV0d29yaywg
IiVwIC0gTmV0d29ya1JUQ01vbml0b3I6OiIgZm10LCB0aGlzLCAjI19fVkFfQVJHU19fKQorI2Rl
ZmluZSBSVENfUkVMRUFTRV9MT0coZm10LCAuLi4pIFJFTEVBU0VfTE9HKE5ldHdvcmssICIlcCAt
IE5ldHdvcmtSVENNb25pdG9yOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKIAogY2xhc3Mg
TmV0d29ya01hbmFnZXJXcmFwcGVyIGZpbmFsIDogcHVibGljIHNpZ3Nsb3Q6Omhhc19zbG90czw+
IHsKIHB1YmxpYzoKQEAgLTE0NSwyMyArMTQzLDI1IEBAIE5ldHdvcmtSVENNb25pdG9yOjp+TmV0
d29ya1JUQ01vbml0b3IoKQogCiB2b2lkIE5ldHdvcmtSVENNb25pdG9yOjpzdGFydFVwZGF0aW5n
SWZOZWVkZWQoYm9vbCBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2VzKQogewot
ICAgIFJFTEVBU0VfTE9HX0lGX0FMTE9XRUQoInN0YXJ0VXBkYXRpbmdJZk5lZWRlZCAlZCIsIG1f
aXNTdGFydGVkKTsKKyAgICBSVENfUkVMRUFTRV9MT0coInN0YXJ0VXBkYXRpbmdJZk5lZWRlZCBt
X2lzU3RhcnRlZD0lZCIsIG1faXNTdGFydGVkKTsKICAgICBtX2VuYWJsZUVudW1lcmF0aW5nQWxs
TmV0d29ya0ludGVyZmFjZXMgPSBlbmFibGVFbnVtZXJhdGluZ0FsbE5ldHdvcmtJbnRlcmZhY2Vz
OwogICAgIG5ldHdvcmtNYW5hZ2VyKCkuYWRkTGlzdGVuZXIoKnRoaXMpOwogfQogCiB2b2lkIE5l
dHdvcmtSVENNb25pdG9yOjpzdG9wVXBkYXRpbmcoKQogewotICAgIFJFTEVBU0VfTE9HX0lGX0FM
TE9XRUQoInN0b3BVcGRhdGluZyIpOworICAgIFJUQ19SRUxFQVNFX0xPRygic3RvcFVwZGF0aW5n
Iik7CiAgICAgbmV0d29ya01hbmFnZXIoKS5yZW1vdmVMaXN0ZW5lcigqdGhpcyk7CiB9CiAKIHZv
aWQgTmV0d29ya1JUQ01vbml0b3I6Om9uTmV0d29ya3NDaGFuZ2VkKGNvbnN0IFZlY3RvcjxSVENO
ZXR3b3JrPiYgbmV0d29ya0xpc3QsIGNvbnN0IFZlY3RvcjxSVENOZXR3b3JrPiYgZmlsdGVyZWRO
ZXR3b3JrTGlzdCwgY29uc3QgUlRDTmV0d29yazo6SVBBZGRyZXNzJiBpcHY0LCBjb25zdCBSVENO
ZXR3b3JrOjpJUEFkZHJlc3MmIGlwdjYpCiB7Ci0gICAgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRCgi
b25OZXR3b3Jrc0NoYW5nZWQgc2VudCIpOworICAgIFJUQ19SRUxFQVNFX0xPRygib25OZXR3b3Jr
c0NoYW5nZWQgc2VudCIpOwogICAgIG1fcnRjUHJvdmlkZXIuY29ubmVjdGlvbigpLnNlbmQoTWVz
c2FnZXM6OldlYlJUQ01vbml0b3I6Ok5ldHdvcmtzQ2hhbmdlZChtX2VuYWJsZUVudW1lcmF0aW5n
QWxsTmV0d29ya0ludGVyZmFjZXMgPyBuZXR3b3JrTGlzdCA6IGZpbHRlcmVkTmV0d29ya0xpc3Qs
IGlwdjQsIGlwdjYpLCAwKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKKyN1bmRlZiBS
VENfUkVMRUFTRV9MT0cKKwogI2VuZGlmIC8vIFVTRShMSUJXRUJSVEMpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3Bw
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVy
LmNwcAppbmRleCA0MDc3NTEzNjQzNDcyNWM0MzNlYmFjZmZlNGJjZDhlNDVlZWI4OTc3Li5mOTM1
YTFjYmU0YTllOGE3M2VhZWM2YmVmMjQxYTUwNDA2NWU2YWM2IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlci5j
cHAKQEAgLTUyLDExICs1Miw4IEBACiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOwogCi0jdW5kZWYgUkVMRUFTRV9MT0dfSUZfQUxMT1dFRAotI3VuZGVmIFJFTEVB
U0VfTE9HX0VSUk9SX0lGX0FMTE9XRUQKLQotI2RlZmluZSBSRUxFQVNFX0xPR19JRl9BTExPV0VE
KGZtdCwgLi4uKSBSRUxFQVNFX0xPR19JRihjYW5Mb2coKSwgTmV0d29yaywgIiVwIC0gTmV0d29y
a1JUQ1Byb3ZpZGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZBX0FSR1NfXykKLSNkZWZpbmUgUkVMRUFT
RV9MT0dfRVJST1JfSUZfQUxMT1dFRChmbXQsIC4uLikgUkVMRUFTRV9MT0dfRVJST1JfSUYoY2Fu
TG9nKCksIE5ldHdvcmssICIlcCAtIE5ldHdvcmtSVENQcm92aWRlcjo6IiBmbXQsIHRoaXMsICMj
X19WQV9BUkdTX18pCisjZGVmaW5lIFJUQ19SRUxFQVNFX0xPRyhmbXQsIC4uLikgUkVMRUFTRV9M
T0coTmV0d29yaywgIiVwIC0gTmV0d29ya1JUQ1Byb3ZpZGVyOjoiIGZtdCwgdGhpcywgIyNfX1ZB
X0FSR1NfXykKKyNkZWZpbmUgUlRDX1JFTEVBU0VfTE9HX0VSUk9SKGZtdCwgLi4uKSBSRUxFQVNF
X0xPR19FUlJPUihOZXR3b3JrLCAiJXAgLSBOZXR3b3JrUlRDUHJvdmlkZXI6OiIgZm10LCB0aGlz
LCAjI19fVkFfQVJHU19fKQogCiBzdGF0aWMgcnRjOjpUaHJlYWQmIHJ0Y05ldHdvcmtUaHJlYWQo
KQogewpAQCAtODgsNyArODUsNiBAQCBOZXR3b3JrUlRDUHJvdmlkZXI6Ok5ldHdvcmtSVENQcm92
aWRlcihOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2VzcyYgY29ubmVjdGlvbgogICAgICwgbV9y
dGNNb25pdG9yKCp0aGlzKQogICAgICwgbV9ydGNOZXR3b3JrVGhyZWFkKHJ0Y05ldHdvcmtUaHJl
YWQoKSkKICAgICAsIG1fcGFja2V0U29ja2V0RmFjdG9yeShtYWtlVW5pcXVlUmVmV2l0aG91dEZh
c3RNYWxsb2NDaGVjazxydGM6OkJhc2ljUGFja2V0U29ja2V0RmFjdG9yeT4oJm1fcnRjTmV0d29y
a1RocmVhZCkpCi0gICAgLCBtX2NhbkxvZyhjb25uZWN0aW9uLnNlc3Npb25JRCgpLmlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpKQogewogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRAogICAgIHJ0
Yzo6TG9nTWVzc2FnZTo6U2V0TG9nT3V0cHV0KFdlYktpdDJMb2dXZWJSVEMuc3RhdGUgPT0gV1RG
TG9nQ2hhbm5lbFN0YXRlOjpPbiA/IHJ0Yzo6TFNfSU5GTyA6IHJ0Yzo6TFNfV0FSTklORywgZG9S
ZWxlYXNlTG9nZ2luZyk7CkBAIC0xMDksNyArMTA1LDcgQEAgTmV0d29ya1JUQ1Byb3ZpZGVyOjp+
TmV0d29ya1JUQ1Byb3ZpZGVyKCkKIAogdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNsb3NlKCkK
IHsKLSAgICBSRUxFQVNFX0xPR19JRl9BTExPV0VEKCJjbG9zZSIpOworICAgIFJUQ19SRUxFQVNF
X0xPRygiY2xvc2UiKTsKIAogICAgIC8vIENhbmNlbCBhbGwgcGVuZGluZyBETlMgcmVzb2x1dGlv
bnMuCiAgICAgd2hpbGUgKCFtX3Jlc29sdmVycy5pc0VtcHR5KCkpCkBAIC0xMjgsNyArMTI0LDcg
QEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNyZWF0ZVNvY2tldChMaWJXZWJSVENTb2NrZXRJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIHN0ZDoKIHsKICAgICBBU1NFUlQobV9ydGNOZXR3b3JrVGhy
ZWFkLklzQ3VycmVudCgpKTsKICAgICBpZiAoIXNvY2tldCkgewotICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUl9JRl9BTExPV0VEKCJjcmVhdGVTb2NrZXQgd2l0aCAldSBzb2NrZXRzIGlzIHVuYWJs
ZSB0byBjcmVhdGUgYSBuZXcgc29ja2V0IiwgbV9zb2NrZXRzLnNpemUoKSk7CisgICAgICAgIFJU
Q19SRUxFQVNFX0xPR19FUlJPUigiY3JlYXRlU29ja2V0IHdpdGggJXUgc29ja2V0cyBpcyB1bmFi
bGUgdG8gY3JlYXRlIGEgbmV3IHNvY2tldCIsIG1fc29ja2V0cy5zaXplKCkpOwogICAgICAgICBj
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpMaWJXZWJSVENOZXR3b3JrOjpTaWduYWxDbG9zZShp
ZGVudGlmaWVyLCAxKSwgMCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0zNjQsNiArMzYw
LDkgQEAgdm9pZCBOZXR3b3JrUlRDUHJvdmlkZXI6OmNhbGxPblJUQ05ldHdvcmtUaHJlYWQoRnVu
Y3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgIG1fcnRjTmV0d29ya1RocmVhZC5Qb3N0KFJU
Q19GUk9NX0hFUkUsIHRoaXMsIDEsIG5ldyBOZXR3b3JrTWVzc2FnZURhdGEoKnRoaXMsIFdURk1v
dmUoY2FsbGJhY2spKSk7CiB9CiAKKyN1bmRlZiBSVENfUkVMRUFTRV9MT0cKKyN1bmRlZiBSVENf
UkVMRUFTRV9MT0dfRVJST1IKKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBV
U0UoTElCV0VCUlRDKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy93
ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3dlYnJ0Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaAppbmRleCBiMGNmNzBmMDZlMTE4ZTAyMWQ4NjRk
ZWI5OGQ0MTRlZmJhOWU3YzQyLi45NWIyOTE3NjQ2MzQ4NmQwNDUxMzEyZWM0ODEyNTlkNzI3ZTNh
YzVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9OZXR3
b3JrUlRDUHJvdmlkZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3dlYnJ0
Yy9OZXR3b3JrUlRDUHJvdmlkZXIuaApAQCAtOTksOCArOTksNiBAQCBwdWJsaWM6CiAgICAgdm9p
ZCBjbG9zZUxpc3RlbmluZ1NvY2tldHMoRnVuY3Rpb248dm9pZCgpPiYmKTsKICAgICB2b2lkIGF1
dGhvcml6ZUxpc3RlbmluZ1NvY2tldHMoKSB7IG1faXNMaXN0ZW5pbmdTb2NrZXRBdXRob3JpemVk
ID0gdHJ1ZTsgfQogCi0gICAgYm9vbCBjYW5Mb2coKSBjb25zdCB7IHJldHVybiBtX2NhbkxvZzsg
fQotCiAgICAgSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9pcGNDb25u
ZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CkBAIC0xNDMsNyArMTQxLDYgQEAgcHJpdmF0ZToK
IAogICAgIEhhc2hNYXA8V2ViQ29yZTo6TGliV2ViUlRDU29ja2V0SWRlbnRpZmllciwgc3RkOjp1
bmlxdWVfcHRyPHJ0Yzo6QXN5bmNQYWNrZXRTb2NrZXQ+PiBtX3BlbmRpbmdJbmNvbWluZ1NvY2tl
dHM7CiAgICAgYm9vbCBtX2lzTGlzdGVuaW5nU29ja2V0QXV0aG9yaXplZCB7IHRydWUgfTsKLSAg
ICBib29sIG1fY2FuTG9nIHsgZmFsc2UgfTsKICAgICBib29sIG1fcGxhdGZvcm1Tb2NrZXRzRW5h
YmxlZCB7IGZhbHNlIH07CiB9OwogCg==
</data>
<flag name="commit-queue"
          id="453422"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>