<?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>221747</bug_id>
          
          <creation_ts>2021-02-11 03:08:06 -0800</creation_ts>
          <short_desc>Make RemoteRealtimeVideoSource a RealtimeVideoCaptureSource</short_desc>
          <delta_ts>2021-02-12 02:55:14 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>221201</blocked>
    
    <blocked>221331</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1728019</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-11 03:08:06 -0800</bug_when>
    <thetext>Make RemoteRealtimeVideoSource a RealtimeVideoCaptureSource</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728023</commentid>
    <comment_count>1</comment_count>
      <attachid>419969</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-11 03:11:49 -0800</bug_when>
    <thetext>Created attachment 419969
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728039</commentid>
    <comment_count>2</comment_count>
      <attachid>419976</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-11 05:02:57 -0800</bug_when>
    <thetext>Created attachment 419976
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728042</commentid>
    <comment_count>3</comment_count>
      <attachid>419978</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-11 05:18:27 -0800</bug_when>
    <thetext>Created attachment 419978
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728117</commentid>
    <comment_count>4</comment_count>
      <attachid>419978</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-02-11 09:04:42 -0800</bug_when>
    <thetext>Comment on attachment 419978
Patch

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

&gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:312
&gt; +void UserMediaCaptureManagerProxy::generatePresets(RealtimeMediaSourceIdentifier id, CompletionHandler&lt;void(Vector&lt;VideoPresetData&gt;&amp;&amp;, IntSize)&gt;&amp;&amp; completionHandler)

This name isn&apos;t entirely accurate because it generates presets and fetches the current size. I don&apos;t love either of these names, but they would be more correct: `getSizeAndGeneratePresets`, or `generatePresetsAndGetSize`?

&gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:83
&gt; +        connection()-&gt;sendWithAsyncReply(Messages::UserMediaCaptureManagerProxy::GeneratePresets(identifier()), [this, protectedThis = WTFMove(protectedThis)](auto&amp;&amp; presets, auto size) {

As we discussed, can this be moved into CreateMediaSourceForCaptureDeviceWithConstraints so we don&apos;t need to make two calls to the UI process to become ready?

&gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:248
&gt; +void RemoteRealtimeVideoSource::setFrameRateWithPreset(double, RefPtr&lt;VideoPreset&gt;)
&gt;  {
&gt; -    m_hasRequestedToEnd = true;
&gt; -    connection()-&gt;send(Messages::UserMediaCaptureManagerProxy::RequestToEnd { m_identifier }, 0);
&gt;  }

Can this be removed completely?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728129</commentid>
    <comment_count>5</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-11 09:17:25 -0800</bug_when>
    <thetext>(In reply to Eric Carlson from comment #4)
&gt; Comment on attachment 419978 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=419978&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:312
&gt; &gt; +void UserMediaCaptureManagerProxy::generatePresets(RealtimeMediaSourceIdentifier id, CompletionHandler&lt;void(Vector&lt;VideoPresetData&gt;&amp;&amp;, IntSize)&gt;&amp;&amp; completionHandler)
&gt; 
&gt; This name isn&apos;t entirely accurate because it generates presets and fetches
&gt; the current size. I don&apos;t love either of these names, but they would be more
&gt; correct: `getSizeAndGeneratePresets`, or `generatePresetsAndGetSize`?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:83
&gt; &gt; +        connection()-&gt;sendWithAsyncReply(Messages::UserMediaCaptureManagerProxy::GeneratePresets(identifier()), [this, protectedThis = WTFMove(protectedThis)](auto&amp;&amp; presets, auto size) {
&gt; 
&gt; As we discussed, can this be moved into
&gt; CreateMediaSourceForCaptureDeviceWithConstraints so we don&apos;t need to make
&gt; two calls to the UI process to become ready?

Right, let&apos;s add it to CreateMediaSourceForCaptureDeviceWithConstraints.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728487</commentid>
    <comment_count>6</comment_count>
      <attachid>420103</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-12 01:28:06 -0800</bug_when>
    <thetext>Created attachment 420103
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728488</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-12 01:29:42 -0800</bug_when>
    <thetext>&gt; &gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:248
&gt; &gt; +void RemoteRealtimeVideoSource::setFrameRateWithPreset(double, RefPtr&lt;VideoPreset&gt;)
&gt; &gt;  {
&gt; &gt; -    m_hasRequestedToEnd = true;
&gt; &gt; -    connection()-&gt;send(Messages::UserMediaCaptureManagerProxy::RequestToEnd { m_identifier }, 0);
&gt; &gt;  }
&gt; 
&gt; Can this be removed completely?

Actually, I need to implement it for clone-then-increase-resolution-or-frameRate cases.
I removed on the other hand the applyConstraintsFailed/Succeeded since they are no longer needed for video.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728499</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-12 02:06:48 -0800</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728501</commentid>
    <comment_count>9</comment_count>
      <attachid>420107</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-02-12 02:10:12 -0800</bug_when>
    <thetext>Created attachment 420107
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728510</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-02-12 02:54:38 -0800</bug_when>
    <thetext>Committed r272778: &lt;https://commits.webkit.org/r272778&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 420107.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728511</commentid>
    <comment_count>11</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-12 02:55:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74270196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419969</attachid>
            <date>2021-02-11 03:11:49 -0800</date>
            <delta_ts>2021-02-11 05:09:44 -0800</delta_ts>
            <desc>WIP</desc>
            <filename>bug-221747-20210211121147.patch</filename>
            <type>text/plain</type>
            <size>29149</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1NmQ4MGQyZTc5Nzk3
M2QxOWFhYTAwOWUwODQ2ZWQxMDZkYjU1Ni4uMmI4YmNjMmMyYzg5Njg4OWIxMDg3OTY4MjgwN2Q4
MjBlMTc5YzI3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgdmlkZW8tY2FwdHVyZS1zb3VyY2UK
KworICAgICAgICBObyBuZXcgdGVzdHMgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJvZHVjZURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXNldHNEYXRhKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJjZTo6d2hlblJlYWR5KToK
KyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNvdXJjZVNldHRpbmdzQ2hh
bmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oOgorCiAyMDIxLTAyLTExICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5j
b20+CiAKICAgICAgICAgUmVtb3ZlIGFub3RoZXIgdXNlIG9mIEZvbnRTZWxlY3RvciBmcm9tIHdp
dGhpbiBDU1NGb250RmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZWZmNzNiODhmYTdjNTVjMTRjMGJhY2IxY2Nh
NjcxOWQzZWY4NjdmLi5kZjA4ZDRlZGNjZDBmZjViM2E1ODM2ZjkyZDRmYzU5NGRiZWZhZmZiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIxLTAyLTExICBZb3Vlbm4gRmFibGV0ICA8eW91
ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Ug
YSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgdmlkZW8tY2FwdHVyZS1zb3VyY2UKKworICAgICAgICAqIFNj
cmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVzKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Z2VuZXJhdGVQcmVzZXRzKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJl
bW90ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAg
IChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZh
aWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0
RnJhbWVSYXRlV2l0aFByZXNldCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnByZWZlcnNQcmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9D
YXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZSk6CisKIDIwMjEtMDIt
MTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNwbGl0IFJl
bW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgaW4gdHdvIGF1ZGlvLXNwZWNpZmljIGFuZCB2aWRlby1z
cGVjaWZpYyBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggNGUyZDU3MmVhMjgzODVjMDcz
ZGE0NGQ4NjkyYmZhMGI0ZjUzOWI3MS4uOTE3ZmYxM2NkM2Q3MTQyNGE5YmE2NDhkMjU5OTY4MDU1
YzNmMGJmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTk1LDYgKzE5NSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
ICAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7
IH0KICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlwZSgpIGNv
bnN0IHsgcmV0dXJuIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd247IH0KKyAgICB2
aXJ0dWFsIGJvb2wgaXNWaWRlb1NvdXJjZSgpIGNvbnN0IHsgcmV0dXJuIGZhbHNlOyB9CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKSB7
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IGMwZDQ0ZWI2Njlm
MTM4N2E5NjMzYjg1NDgxNjllNzAwN2U4MDcxYzIuLmIyNjhiMmI1NTI3ZGZlMjUyZTYxZWY0ZTJl
OGYzMDZhOTczYjcxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKQEAg
LTU1LDkgKzU1LDYgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRv
UHJvZHVjZURhdGEoKQogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0dXJlRmFjdG9yeSgpLnNldEFjdGl2
ZVNvdXJjZSgqdGhpcyk7CiAjZW5kaWYKLQotICAgIGlmIChzaXplKCkuaXNFbXB0eSgpICYmICFt
X2RlZmF1bHRTaXplLmlzRW1wdHkoKSkKLSAgICAgICAgc2V0U2l6ZShtX2RlZmF1bHRTaXplKTsK
IH0KIAogY29uc3QgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+JiBSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZTo6cHJlc2V0cygpCkBAIC02OSw2ICs2NiwxMyBAQCBjb25zdCBWZWN0b3I8UmVmPFZp
ZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKICAgICBy
ZXR1cm4gbV9wcmVzZXRzOwogfQogCitWZWN0b3I8VmlkZW9QcmVzZXREYXRhPiBSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZTo6cHJlc2V0c0RhdGEoKQoreworICAgIHJldHVybiBXVEY6Om1hcChw
cmVzZXRzKCksIFtdKGF1dG8mIHByZXNldCkgLT4gVmlkZW9QcmVzZXREYXRhIHsKKyAgICAgICAg
cmV0dXJuIHsgcHJlc2V0LT5zaXplLCBwcmVzZXQtPmZyYW1lUmF0ZVJhbmdlcyB9OworICAgIH0p
OworfQorCiB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpzZXRTdXBwb3J0ZWRQcmVz
ZXRzKFZlY3RvcjxWaWRlb1ByZXNldERhdGE+JiYgcHJlc2V0RGF0YSkKIHsKICAgICBWZWN0b3I8
UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5o
CmluZGV4IDQ0NTIxYzViZjliZmQwYmEyMjBkNmZhNjc1YTdmMGQzZWU4MDdmMzAuLjI3NzIxOWUx
ZWEzNmYwNDExYTFhM2U2NjdhMDVjMjRjZTcwYjM4NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKLWNsYXNzIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgeworY2xhc3MgV0VCQ09SRV9FWFBPUlQg
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZSB7
CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoKTsKIApA
QCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbiBzYW1wbGVSb3RhdGlvbigpIGNvbnN0IHsgcmV0dXJuIE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpOb25lOyB9CiAKICAgICBkb3VibGUgb2JzZXJ2ZWRGcmFtZVJhdGUoKSBjb25z
dCB7IHJldHVybiBtX29ic2VydmVkRnJhbWVSYXRlOyB9CisgICAgVmVjdG9yPFZpZGVvUHJlc2V0
RGF0YT4gcHJlc2V0c0RhdGEoKTsKIAogcHJvdGVjdGVkOgogICAgIFJlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlkLCBTdHJpbmcmJiBoYXNoU2FsdCk7
CkBAIC02OSw4ICs3MCw2IEBAIHByb3RlY3RlZDoKIAogICAgIHZvaWQgdXBkYXRlQ2FwYWJpbGl0
aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKIAotICAgIHZvaWQgc2V0RGVm
YXVsdFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX2RlZmF1bHRTaXplID0gc2l6ZTsgfQot
CiAgICAgdm9pZCBkaXNwYXRjaE1lZGlhU2FtcGxlVG9PYnNlcnZlcnMoTWVkaWFTYW1wbGUmKTsK
ICAgICBjb25zdCBWZWN0b3I8SW50U2l6ZT4mIHN0YW5kYXJkVmlkZW9TaXplcygpOwogCkBAIC05
MSw3ICs5MCw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IG1fcHJl
c2V0czsKICAgICBEZXF1ZTxkb3VibGU+IG1fb2JzZXJ2ZWRGcmFtZVRpbWVTdGFtcHM7CiAgICAg
ZG91YmxlIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgeyAwIH07Ci0gICAgSW50U2l6ZSBtX2RlZmF1bHRT
aXplOwogfTsKIAogc3RydWN0IFNpemVBbmRGcmFtZVJhdGUgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNw
cAppbmRleCAxNWUyMmE1OGExYzI4MzVhZDA0MGU5OGFiOTk3MTdhZjc5OGU1ZTk2Li4zNDllMzMz
OTIyZDU3ZTBjYzJhN2NiNzM3Njg3NmU4NTEyZmI0MDE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNw
cApAQCAtNTAsNiArNTAsMTcgQEAgUmVhbHRpbWVWaWRlb1NvdXJjZTo6flJlYWx0aW1lVmlkZW9T
b3VyY2UoKQogICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZlcigqdGhpcyk7CiB9CiAKK3ZvaWQg
UmVhbHRpbWVWaWRlb1NvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3Ry
aW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3NvdXJjZS0+d2hlblJlYWR5KFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KGF1dG8gbWVzc2FnZSkgbXV0YWJsZSB7CisgICAgICAgIHNldE5hbWUoU3RyaW5nIHsgbV9zb3Vy
Y2UtPm5hbWUoKSB9KTsKKyAgICAgICAgbV9jdXJyZW50U2V0dGluZ3MgPSBtX3NvdXJjZS0+c2V0
dGluZ3MoKTsKKyAgICAgICAgc2V0U2l6ZShtX3NvdXJjZS0+c2l6ZSgpKTsKKyAgICAgICAgc2V0
RnJhbWVSYXRlKG1fc291cmNlLT5mcmFtZVJhdGUoKSk7CisgICAgICAgIGNhbGxiYWNrKFdURk1v
dmUobWVzc2FnZSkpOworICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0
YXJ0UHJvZHVjaW5nRGF0YSgpCiB7CiAgICAgbV9zb3VyY2UtPnN0YXJ0KCk7CkBAIC0xMDcsNiAr
MTE4LDcgQEAgdm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQo
KQogICAgIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8
fCByb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCiAgICAgICAg
IHNpemUgPSBzaXplLnRyYW5zcG9zZWRTaXplKCk7CiAKKyAgICBtX2N1cnJlbnRTZXR0aW5ncyA9
IG1fc291cmNlLT5zZXR0aW5ncygpOwogICAgIG1fY3VycmVudFNldHRpbmdzLnNldFdpZHRoKHNp
emUud2lkdGgoKSk7CiAgICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0
KCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMmIyM2ZlM2NiMThkMGNlM2MzMWE1Njk2NmI2
YjRlMmJkOThhMGI5Yi4uMDYyYWE4ZmI1ZDhlODgzY2UzM2FiNzVlMWQyYzIxMDdhNzY4YzZjNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDAsMTEgKzQwLDEzIEBAIGNsYXNzIFJlYWx0aW1lVmlk
ZW9Tb3VyY2UgZmluYWwKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lVmlkZW9Tb3Vy
Y2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7
IH0KIAorICAgIFZlY3RvcjxWaWRlb1ByZXNldERhdGE+IHByZXNldHNEYXRhKCkgeyByZXR1cm4g
bV9zb3VyY2UtPnByZXNldHNEYXRhKCk7IH0KKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBSZWFs
dGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2U+JiYpOwogICAgIH5SZWFsdGltZVZpZGVvU291cmNlKCk7CiAKLSAg
ICAvLyBSZWFsdGltZU1lZGlhU2lvdXJjZQorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAg
ICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1Y2lu
Z0RhdGEoKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShPcHRpb25h
bDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCwgT3B0aW9uYWw8ZG91YmxlPiBmcmFt
ZVJhdGUpIGZpbmFsOwpAQCAtNjAsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbW9uaXRv
ck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKSBmaW5hbCB7IG1fc291
cmNlLT5tb25pdG9yT3JpZW50YXRpb24obm90aWZpZXIpOyB9CiAgICAgYm9vbCBpbnRlcnJ1cHRl
ZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgpOyB9CiAgICAg
Ym9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRoaXMgPT0gJnNvdXJjZSB8fCBtX3NvdXJjZS5wdHIoKSA9PSAmc291cmNlOyB9Cisg
ICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBmaW5h
bDsKKyAgICBib29sIGlzVmlkZW9Tb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9
CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgogICAgIHZvaWQgc291cmNl
TXV0ZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NjcmlwdHMv
d2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdl
cy5weQppbmRleCBhMzYxNzdlZTBlMmJlYmFkZGIxOTJkM2IzN2I1NGMzYjE1M2IxYjlhLi40OWVm
NGRmZTQ5MDhkYTE1YWQwYjhjYmMxNjVkODRhNmVjYjU4ZTBkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQvU2Ny
aXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcyNyw2ICs3MjcsNyBAQCBkZWYgaGVhZGVyc19m
b3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRFbmFibGVkJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAg
ICAgJ1dlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlJzogWyc8V2ViQ29y
ZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlVzZWRMZWdh
Y3lUTFMnOiBbJzxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2VCYXNlLmg+J10sCisgICAgICAgICdX
ZWJDb3JlOjpWaWRlb1ByZXNldERhdGEnOiBbJzxXZWJDb3JlL1ZpZGVvUHJlc2V0Lmg+J10sCiAg
ICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdwb3J0
QXJndW1lbnRzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpXZWJHTExvYWRQb2xpY3knOiBbJzxX
ZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OldpbGxDb250
aW51ZUxvYWRpbmcnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMjFmNmNmN2Q4MmVhYzNiMTAxZjczMDk5NjNkZGVmZDc3
MGY4NTQ5Zi4uNzcyMjViZjg0MjVhNDAxZGYzNjk0ZTAxMjAwNTJmY2M3OThhZWRkZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29u
c3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaD4KICNpbmNsdWRlIDxX
ZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRpb0J1
ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC0zMDAsMTQgKzMwMSwy
NSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVuZChSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciBpZCkKICAgICBtX3Byb3hpZXMucmVtb3ZlKGlkKTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CisgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CiAgICAgaWYgKGF1
dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChpZCkpCiAgICAgICAgIGNhcGFiaWxpdGllcyA9IHBy
b3h5LT5zb3VyY2UoKS5jYXBhYmlsaXRpZXMoKTsKICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZN
b3ZlKGNhcGFiaWxpdGllcykpOwogfQogCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHk6OmdlbmVyYXRlUHJlc2V0cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8VmlkZW9QcmVzZXREYXRhPiYmLCBJbnRTaXplKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQo
aWQpOworICAgIGlmICghcHJveHkgfHwgIXByb3h5LT5zb3VyY2UoKS5pc1ZpZGVvU291cmNlKCkp
IHsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9LCB7IH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGF1dG8mIHZpZGVvU291cmNlID0gc3RhdGljX2Nhc3Q8UmVhbHRpbWVWaWRl
b1NvdXJjZSY+KHByb3h5LT5zb3VyY2UoKSk7CisgICAgY29tcGxldGlvbkhhbmRsZXIodmlkZW9T
b3VyY2UucHJlc2V0c0RhdGEoKSwgdmlkZW9Tb3VyY2Uuc2l6ZSgpKTsKK30KKwogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjphcHBseUNvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiBjb25z
dHJhaW50cykKIHsKICAgICBhdXRvKiBwcm94eSA9IG1fcHJveGllcy5nZXQoaWQpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5oCmluZGV4IGU5NjZkNWRiYjIzMjM1NWJiYjVjMGZiYWIwYTJjNWYzMGJl
NTcyNTcuLmQ0MjI5NDkxZjllYzNmODczZmQ3YjgyNDg0MjZkM2ZjZGY0YWIxYWIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworc3RydWN0IFZpZGVvUHJlc2V0
RGF0YTsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC03NSw2ICs3Niw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllcik7CiAgICAgdm9pZCBlbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYpOworICAgIHZvaWQgZ2VuZXJhdGVQcmVzZXRz
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFZlY3RvcjxXZWJDb3JlOjpWaWRlb1ByZXNldERhdGE+JiYsIFdlYkNvcmU6OkludFNp
emUpPiYmKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKICAg
ICB2b2lkIGNsb25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNsb25l
ZElELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKTsKICAg
ICB2b2lkIHJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyOGU5
Mjk5MTJkNzk4NDA4YzQ3ZWQ0OTBjZTgxMzU4MjE5MzlmMjIxLi42NDY1YmI5YzRkYmI0MWE5ZTRm
NTM4MzU1NTVlMGQxOWZjMDlmOTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
bWVzc2FnZXMuaW4KQEAgLTMyLDYgKzMyLDcgQEAgbWVzc2FnZXMgLT4gVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKICAgICBDbG9uZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZWRJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgY2xvbmVJRCkKICAgICBSZXF1ZXN0VG9FbmQoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgc291cmNlSUQpCiAgICAgU2V0U2hvdWxkQXBwbHlSb3Rh
dGlvbihXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCwgYm9v
bCBzaG91bGRBcHBseVJvdGF0aW9uKQorICAgIEdlbmVyYXRlUHJlc2V0cyhXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBzb3VyY2VJRCkgLT4gKFZlY3RvcjxXZWJDb3JlOjpW
aWRlb1ByZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSkgQXN5bmMKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggMTQyMDUxMTdkMDYwMmM2NTdl
NjM3OGM1YzYzMjZmNWNmYzQxYjE4YS4uMzc4MTA0NTIwYjI0N2QyMzZlOWNkZjk0ZWIxNDQyMjYx
NmJlNjM5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNzYsNyArNzYsNiBAQCB2b2lk
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKICAg
ICAgICAgICAgIGRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsKICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQotICAgICAgICBzZXROYW1lKFN0cmluZyB7IHNldHRpbmdzLmxhYmVs
KCkuc3RyaW5nKCkgfSk7CiAgICAgICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsK
ICAgICAgICAgc2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CiAgICAgICAg
IHNldEFzUmVhZHkoKTsKQEAgLTExMiw3ICsxMTEsMTAgQEAgdm9pZCBSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlOjpkaWRGYWlsKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKIAogdm9pZCBSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlOjpzZXRBc1JlYWR5KCkKIHsKKyAgICBBU1NFUlQoIW1faXNSZWFk
eSk7CiAgICAgbV9pc1JlYWR5ID0gdHJ1ZTsKKworICAgIHNldE5hbWUoU3RyaW5nIHsgbV9zZXR0
aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwogICAgIGlmIChtX2NhbGxiYWNrKQogICAgICAgICBt
X2NhbGxiYWNrKHsgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggYzRlODA1YzZl
ODY4Njg5NTE5Njg2MTc1M2M1MDkzNjIwYmMwZDFkNy4uNzYxYjY4YjY2NTA5MTZmYzA3MzM4YTBk
YjFiNGMxMGE1YmMwZGEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDYsNyArNDYs
NyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKIAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNo
U2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2VzcykKK1JlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYm
IGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKQogewogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpn
ZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhh
c2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwogICAgIG1hbmFn
ZXIuYWRkVmlkZW9Tb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CkBAIC01NSw3ICs1NSw3IEBAIFJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYKIH0KIAogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cykKLSAgICA6IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
VmlkZW8sIFdURk1vdmUobmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQo
KSksIFdURk1vdmUoaGFzaFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uo
V1RGTW92ZShuYW1lKSwgU3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RG
TW92ZShoYXNoU2FsdCkpCiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1f
bWFuYWdlcihtYW5hZ2VyKQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQpAQCAtNzEsMTcgKzcxLDIw
IEBAIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpD
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmll
cigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBl
cnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAg
IGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2Nv
bnN0cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBz
dWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNh
cGFiaWxpdGllcykgbXV0YWJsZSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAg
ICAgICBkaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47
CiAgICAgICAgIH0KLSAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0
cmluZygpIH0pOwogICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAg
ICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwotICAgICAgICBzZXRB
c1JlYWR5KCk7CiAgICAgICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAg
ICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlv
bigpLmFkZENsaWVudCgqdGhpcyk7CisgICAgICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpHZW5lcmF0ZVBy
ZXNldHMoaWRlbnRpZmllcigpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3Rl
Y3RlZFRoaXMpXShhdXRvJiYgcHJlc2V0cywgYXV0byBzaXplKSB7CisgICAgICAgICAgICBzZXRT
dXBwb3J0ZWRQcmVzZXRzKFdURk1vdmUocHJlc2V0cykpOworICAgICAgICAgICAgc2V0U2l6ZShz
aXplKTsKKyAgICAgICAgICAgIHNldEFzUmVhZHkoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9
CiAKQEAgLTExMywyMyArMTE2LDE1IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6c2V0QXNSZWFkeSgpCiB7CisgICAgQVNTRVJUKCFtX2lzUmVhZHkpOwogICAgIG1f
aXNSZWFkeSA9IHRydWU7CisKKyAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwo
KS5zdHJpbmcoKSB9KTsKKwogICAgIGlmIChtX2NhbGxiYWNrKQogICAgICAgICBtX2NhbGxiYWNr
KHsgfSk7CiB9CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpjbG9uZSgpCi17Ci0gICAgYXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCktPnNlbmQo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlm
aWVyLCBpZGVudGlmaWVyIH0sIDApKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAgICBhdXRv
IGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKGlk
ZW50aWZpZXIsIG1fZGV2aWNlLCAmbV9jb25zdHJhaW50cywgU3RyaW5nIHsgbV9zZXR0aW5ncy5s
YWJlbCgpLnN0cmluZygpIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBtX3Nob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKLSAgICBtX21hbmFnZXIu
YWRkVmlkZW9Tb3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKLSAgICByZXR1cm4gY2xvbmVT
b3VyY2U7Ci19Ci0KIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0
aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAg
ICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xNjIsNyArMTU3
LDcgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpyZW1vdGVWaWRlb1NhbXBsZUF2
YWlsYWJsZShSZW1vdGVWaWRlb1NhbXBsZSYmIHIKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAot
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYp
OworICAgIGRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycygqc2FtcGxlUmVmKTsKIH0KIAog
SVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjb25uZWN0aW9uKCkK
QEAgLTIzNSwyMiArMjMwLDIwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2Fw
dHVyZUZhaWxlZCgpCiAgICAgaGFzRW5kZWQoKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCit2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQoZG91YmxlLCBSZWZQdHI8VmlkZW9QcmVzZXQ+
KQogewotICAgIG1faGFzUmVxdWVzdGVkVG9FbmQgPSB0cnVlOwotICAgIGNvbm5lY3Rpb24oKS0+
c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRvRW5k
IHsgbV9pZGVudGlmaWVyIH0sIDApOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgb2JzZXJ2ZXIpCitib29sIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OnByZWZlcnNQcmVzZXQoVmlkZW9QcmVzZXQmKQogewotICAgIHN0b3BCZWlu
Z09ic2VydmVkKCk7CisgICAgcmV0dXJuIHRydWU7CiB9CiAKICNpZiBFTkFCTEUoR1BVX1BST0NF
U1MpCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9u
RGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQogewogICAgIEFTU0VSVChtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpOwotICAgIGlmIChpc0VuZGVkKCkgfHwgbV9oYXNSZXF1ZXN0ZWRU
b0VuZCkKKyAgICBpZiAoaXNFbmRlZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBjcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggNDA4NzJiOWJiOTM5
YzlmNGU3ZGZiNWIyNGQ5ZGI2ODkxODJkNDIxMS4uYTEwODM3YzllYzcwMDIzZDE1Zjg1MjcwMzI3
NTJlNzMxYmYyODJjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0yOSw3ICsyOSw3IEBACiAK
ICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Fw
dHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgor
I2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8d3Rm
L0RlcXVlLmg+CiAKQEAgLTQ4LDEzICs0OCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorY2xhc3MgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAsIHB1YmxpYyBHUFVQcm9jZXNz
Q29ubmVjdGlvbjo6Q2xpZW50CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUs
IFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxk
Q2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsg
cmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6CiBwcml2YXRl
OgogICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQs
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNz
KTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2
b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2Uo
KSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CkBAIC04MSwxNCArODEsMTcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICBib29sIHNl
dFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9uICovKSBmaW5h
bDsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQgcmVxdWVz
dFRvRW5kKE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9pZCBzdG9wQmVpbmdPYnNlcnZlZCgpIGZp
bmFsOwogICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKICAgICBjb25zdCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1cm4gbV9zZXR0
aW5nczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOwogICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CiAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9kZXZpY2Uu
dHlwZSgpOyB9Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkgZmluYWw7CisK
KyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgIHZvaWQgZ2Vu
ZXJhdGVQcmVzZXRzKCkgZmluYWwgeyB9CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24g
c2FtcGxlUm90YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NhbXBsZVJvdGF0aW9uOyB9
CisgICAgdm9pZCBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSwgUmVmUHRyPFZpZGVvUHJl
c2V0PikgZmluYWw7CisgICAgYm9vbCBwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikgZmluYWw7
CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246
OkNsaWVudApAQCAtMTEwLDEwICsxMTMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNz
aW9uOwogCisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiAgICAgRGVxdWU8QXBwbHlDb25z
dHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAg
Ym9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9p
c1JlYWR5IHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzUmVxdWVzdGVkVG9FbmQgeyBmYWxzZSB9
OwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KFN0cmluZyk+IG1fY2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMDMzY2Qw
ZDhkZmQ5MmQ4MTJkNjdjZjVmYjU3ZTVlZDM0YmU3OTE1Yi4uMzhlODdmNmY2ZmQ1OGU0ZTc2MmQ3
NzBkMGUzMzVhMTQyZmFkYWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9S
ZWFsdGltZVZpZGVvU291cmNlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFt
ZXNwYWNlIFdlYktpdCB7CkBAIC0xOTgsNyArMTk5LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJl
U28KICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUg
aW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAgcmV0
dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRz
LCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BV
UHJvY2Vzcyk7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBj
b25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENh
cHR1cmVJbkdQVVByb2Nlc3MpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAt
MjEwLDcgKzIxMSw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9y
eTo6c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmCiAKIENhcHR1cmVTb3VyY2VP
ckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlz
cGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFn
ZXIsIGZhbHNlKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSkpKTsKIH0KIAogfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDBkY2E0ZmIzODAzMTAxOThlNGRjZGM0ODViY2FlZjRlZjA4YmQ3ODcuLjVmNTM4ZTM4NjYw
NzdlZjllYzhlZTgxOGU3MGEwMjYxMzliMDhmNWQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAy
MS0wMi0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFr
ZSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGEgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc0Nwor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIHZpZGVvLWNh
cHR1cmUtc291cmNlCisKKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRE
aXNwbGF5TWVkaWEtdXRpbHMuanM6CisgICAgICAgIChhc3luYyB3YWl0Rm9ySGVpZ2h0KToKKyAg
ICAgICAgKGFzeW5jIHdhaXRGb3JXaWR0aCk6CisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9y
ZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qczoKKwogMjAyMS0wMi0xMSAgTXlsZXMgQy4g
TWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbW92ZSBhbm90aGVy
IHVzZSBvZiBGb250U2VsZWN0b3IgZnJvbSB3aXRoaW4gQ1NTRm9udEZhY2UKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldERpc3BsYXlNZWRpYS11
dGlscy5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldERpc3Bs
YXlNZWRpYS11dGlscy5qcwppbmRleCA4YjQ2YzM3ODgzZmJkNmE2YzZjYjQ2NGM5NmJlMzExNTNh
OGM5N2MwLi5kMzJhMjhlNjY0ZjQ3NDgxZjQ1ZTM5ZWNmM2E0NGYyZTkzOTZjZGMwIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXREaXNwbGF5TWVk
aWEtdXRpbHMuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMv
Z2V0RGlzcGxheU1lZGlhLXV0aWxzLmpzCkBAIC0yMSwxOSArMjEsMjMgQEAgYXN5bmMgZnVuY3Rp
b24gY2FsbEdldERpc3BsYXlNZWRpYShvcHRpb25zKQogfQogCiBhc3luYyBmdW5jdGlvbiB3YWl0
Rm9ySGVpZ2h0KHRyYWNrLCB2YWx1ZSkgewotICAgIHdoaWxlICh0cnVlKSB7CisgICAgbGV0IGNv
dW50ZXIgPSAxMDA7CisgICAgd2hpbGUgKC0tY291bnRlciA+IDApIHsKICAgICAgICAgY29uc3Qg
c2V0dGluZ3MgPSB0cmFjay5nZXRTZXR0aW5ncygpOwogICAgICAgICBpZiAoc2V0dGluZ3MuaGVp
Z2h0ID09PSB2YWx1ZSkKICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwgNTApKTsKICAgICB9CisgICAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbihjb3VudGVyLCAwLCAid2FpdEZvckhlaWdodCIpOwogfQogCiBhc3lu
YyBmdW5jdGlvbiB3YWl0Rm9yV2lkdGgodHJhY2ssIHZhbHVlKSB7Ci0gICAgd2hpbGUgKHRydWUp
IHsKKyAgICBsZXQgY291bnRlciA9IDEwMDsKKyAgICB3aGlsZSAoLS1jb3VudGVyID4gMCkgewog
ICAgICAgICBjb25zdCBzZXR0aW5ncyA9IHRyYWNrLmdldFNldHRpbmdzKCk7CiAgICAgICAgIGlm
IChzZXR0aW5ncy53aWR0aCA9PT0gdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAg
YXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CiAg
ICAgfQorICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY291bnRlciwgMCwgIndhaXRGb3JXaWR0aCIp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMv
Z2V0VXNlck1lZGlhLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVz
b3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMKaW5kZXggY2UyOGNiNmU1YWM1NWUzMGYxYzRi
MmNjODc0MGMzOGU2M2QwMjgwNi4uMTE4YzdhZWEyNjI3NWE2ODk2YzAzOTA0OThjYWM4ZWNkYjI4
OThkZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMv
Z2V0VXNlck1lZGlhLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCkBAIC0xLDEyICsxLDQgQEAKIGZ1bmN0
aW9uIGdldFVzZXJNZWRpYShwZXJtaXNzaW9uLCBjb25zdHJhaW50cywgc3VjY2Vzc0NhbGxiYWNr
LCBlcnJvckNhbGxiYWNrKSB7Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0
ZXN0UnVubmVyLnNldFVzZXJNZWRpYVBlcm1pc3Npb24ocGVybWlzc2lvbiA9PSAiYWxsb3ciKTsK
LSAgICBlbHNlIHsKLSAgICAgICAgZGVidWcoIlRoaXMgdGVzdCBjYW4gbm90IGJlIHJ1biB3aXRo
b3V0IHRoZSB0ZXN0UnVubmVyIik7Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotCiAgICAgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcwogICAgICAgICAgICAg
ICAgIC5nZXRVc2VyTWVkaWEoY29uc3RyYWludHMpCiAgICAgICAgICAgICAgICAgLnRoZW4oc3Vj
Y2Vzc0NhbGxiYWNrLCByZWplY3QpCg==
</data>
<flag name="commit-queue"
          id="438350"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419976</attachid>
            <date>2021-02-11 05:02:57 -0800</date>
            <delta_ts>2021-02-11 05:18:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221747-20210211140255.patch</filename>
            <type>text/plain</type>
            <size>31319</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1NmQ4MGQyZTc5Nzk3
M2QxOWFhYTAwOWUwODQ2ZWQxMDZkYjU1Ni4uNjQ4NGU0MWRkOTVjZGY2YzM1N2JiMjMzYjZiNjg2
MmE3OWZhNjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGlzVmlkZW9Tb3Vy
Y2UgdG8gYmUgYWJsZSB0byBnZXQgcHJlc2V0cyBkYXRhIGZyb20gUmVhbHRpbWVWaWRlb1NvdXJj
ZS4KKyAgICAgICAgRXhwb3NlIHByZXNldHMgaW4gUmVhbHRpbWVWaWRlb1NvdXJjZSBmb3IgR1BV
UHJvY2VzcyB0byBzZW5kIGl0IHRvIFdlYlByb2Nlc3MuCisgICAgICAgIFJlbW92ZSBubyBsb25n
ZXIgdXNlZCBtX2RlZmF1bHRTaXplIG1lbWJlci4KKyAgICAgICAgVXBkYXRlIFJlYWx0aW1lVmlk
ZW9Tb3VyY2UgdG8gc2V0IHNvbWUgb2YgaXRzIG1lbWJlcnMgd2hlbiBpdHMgY2FwdHVyZSBzb3Vy
Y2UgaXMgcmVhZHksCisgICAgICAgIGluY2x1ZGluZyBzZXR0aW5ncywgc2l6ZSwgZnJhbWUgcmF0
ZSBhbmQgbmFtZS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJv
ZHVjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OnByZXNldHNEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJj
ZTo6d2hlblJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNv
dXJjZVNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb1NvdXJjZS5oOgorCiAyMDIxLTAyLTExICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFub3RoZXIgdXNlIG9mIEZvbnRT
ZWxlY3RvciBmcm9tIHdpdGhpbiBDU1NGb250RmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZWZmNzNiODhmYTdj
NTVjMTRjMGJhY2IxY2NhNjcxOWQzZWY4NjdmLi4zZDhlYTg3ZTMyOGExYjM5NzM3MTdiYWRlOWRj
YTUxYzkwZmM1NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsIGNhcHR1cmUgdmlkZW8gc291
cmNlcyBhcmUgbm93IGRlcml2aW5nIGZyb20gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHRvIGV4cG9zZSBhIFJlYWx0aW1lVmlkZW9Tb3VyY2UgdGhhdCBj
YW4gaGFuZGxlIGNoYW5nZXMgb2YgcmVzb2x1dGlvbiBhbmQgZnJhbWUgcmF0ZSBpbiBzb2Z0d2Fy
ZSBhcyBuZWVkZWQuCisgICAgICAgIFRoaXMgYWxzbyBhbGxvd3MgdG8gYmV0dGVyIGFsaWduIGF1
ZGlvIGFuZCB2aWRlbyBzb3VyY2VzIG9uIGlPUzogdGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBydW5u
aW5nIHNvdXJjZSBhdCBhbnkgZ2l2ZW4gdGltZS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Z2VuZXJh
dGVQcmVzZXRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnByZWZlcnNQcmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlv
bkRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZp
ZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVNvdXJjZSk6CisKIDIwMjEtMDItMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFNwbGl0IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgaW4gdHdvIGF1
ZGlvLXNwZWNpZmljIGFuZCB2aWRlby1zcGVjaWZpYyBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgK
aW5kZXggNGUyZDU3MmVhMjgzODVjMDczZGE0NGQ4NjkyYmZhMGI0ZjUzOWI3MS4uYTY3NzQyMTc0
NDY2YjQ4MzE4MDJiNTQyMjUxYTZiOTAzODQwYzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAt
MTk1LDYgKzE5NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrU291cmNlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291cmNl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlVua25vd247IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWRlb1NvdXJjZSgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlm
aWVyJikgeyB9CiAKQEAgLTMyMiw2ICszMjMsMTEgQEAgaW5saW5lIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWwK
ICAgICBjYWxsYmFjayh7IH0pOwogfQogCitpbmxpbmUgYm9vbCBSZWFsdGltZU1lZGlhU291cmNl
Ojppc1ZpZGVvU291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5jcHAKaW5kZXggYzBkNDRlYjY2OWYxMzg3YTk2MzNiODU0ODE2OWU3MDA3ZTgw
NzFjMi4uYjI2OGIyYjU1MjdkZmUyNTJlNjFlZjRlMmU4ZjMwNmE5NzNiNzEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTUsOSArNTUsNiBAQCB2b2lkIFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICNlbmRpZgot
Ci0gICAgaWYgKHNpemUoKS5pc0VtcHR5KCkgJiYgIW1fZGVmYXVsdFNpemUuaXNFbXB0eSgpKQot
ICAgICAgICBzZXRTaXplKG1fZGVmYXVsdFNpemUpOwogfQogCiBjb25zdCBWZWN0b3I8UmVmPFZp
ZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKQEAgLTY5
LDYgKzY2LDEzIEBAIGNvbnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiYgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U6OnByZXNldHMoKQogICAgIHJldHVybiBtX3ByZXNldHM7CiB9CiAKK1Zl
Y3RvcjxWaWRlb1ByZXNldERhdGE+IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRz
RGF0YSgpCit7CisgICAgcmV0dXJuIFdURjo6bWFwKHByZXNldHMoKSwgW10oYXV0byYgcHJlc2V0
KSAtPiBWaWRlb1ByZXNldERhdGEgeworICAgICAgICByZXR1cm4geyBwcmVzZXQtPnNpemUsIHBy
ZXNldC0+ZnJhbWVSYXRlUmFuZ2VzIH07CisgICAgfSk7Cit9CisKIHZvaWQgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFN1cHBvcnRlZFByZXNldHMoVmVjdG9yPFZpZGVvUHJlc2V0RGF0
YT4mJiBwcmVzZXREYXRhKQogewogICAgIFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiBwcmVzZXRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggNDQ1MjFjNWJmOWJmZDBiYTIy
MGQ2ZmE2NzVhN2YwZDNlZTgwN2YzMC4uMjc3MjE5ZTFlYTM2ZjA0MTFhMWEzZTY2N2EwNWMyNGNl
NzBiMzg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0zOCw3ICszOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsK
IAotY2xhc3MgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5S
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHNhbXBsZVJvdGF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7IH0KIAogICAg
IGRvdWJsZSBvYnNlcnZlZEZyYW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFt
ZVJhdGU7IH0KKyAgICBWZWN0b3I8VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzRGF0YSgpOwogCiBw
cm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKQEAgLTY5LDggKzcwLDYgQEAgcHJvdGVj
dGVkOgogCiAgICAgdm9pZCB1cGRhdGVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYpOwogCi0gICAgdm9pZCBzZXREZWZhdWx0U2l6ZShjb25zdCBJbnRTaXplJiBz
aXplKSB7IG1fZGVmYXVsdFNpemUgPSBzaXplOyB9Ci0KICAgICB2b2lkIGRpc3BhdGNoTWVkaWFT
YW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYpOwogICAgIGNvbnN0IFZlY3RvcjxJbnRTaXpl
PiYgc3RhbmRhcmRWaWRlb1NpemVzKCk7CiAKQEAgLTkxLDcgKzkwLDYgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4g
bV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0
ZSB7IDAgfTsKLSAgICBJbnRTaXplIG1fZGVmYXVsdFNpemU7CiB9OwogCiBzdHJ1Y3QgU2l6ZUFu
ZEZyYW1lUmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDE1ZTIyYTU4YTFjMjgzNWFk
MDQwZTk4YWI5OTcxN2FmNzk4ZTVlOTYuLjM0OWUzMzM5MjJkNTdlMGNjMmE3Y2I3Mzc2ODc2ZTg1
MTJmYjQwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw2ICs1MCwxNyBAQCBSZWFs
dGltZVZpZGVvU291cmNlOjp+UmVhbHRpbWVWaWRlb1NvdXJjZSgpCiAgICAgbV9zb3VyY2UtPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAordm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjp3aGVu
UmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQoreworICAg
IG1fc291cmNlLT53aGVuUmVhZHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byBtZXNzYWdlKSBtdXRhYmxlIHsK
KyAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NvdXJjZS0+bmFtZSgpIH0pOworICAgICAgICBt
X2N1cnJlbnRTZXR0aW5ncyA9IG1fc291cmNlLT5zZXR0aW5ncygpOworICAgICAgICBzZXRTaXpl
KG1fc291cmNlLT5zaXplKCkpOworICAgICAgICBzZXRGcmFtZVJhdGUobV9zb3VyY2UtPmZyYW1l
UmF0ZSgpKTsKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShtZXNzYWdlKSk7CisgICAgfSk7Cit9
CisKIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICAg
ICBtX3NvdXJjZS0+c3RhcnQoKTsKQEAgLTEwNyw2ICsxMTgsNyBAQCB2b2lkIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpCiAgICAgaWYgKHJvdGF0aW9uID09IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0IHx8IHJvdGF0aW9uID09IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpSaWdodCkKICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3NlZFNp
emUoKTsKIAorICAgIG1fY3VycmVudFNldHRpbmdzID0gbV9zb3VyY2UtPnNldHRpbmdzKCk7CiAg
ICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKICAgICBtX2N1cnJl
bnRTZXR0aW5ncy5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApp
bmRleCAyYjIzZmUzY2IxOGQwY2UzYzMxYTU2OTY2YjZiNGUyYmQ5OGEwYjliLi4wNjJhYThmYjVk
OGU4ODNjZTMzYWI3NWUxZDJjMjEwN2E3NjhjNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00
MCwxMSArNDAsMTMgQEAgY2xhc3MgUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbAogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlKFJlZjxSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZT4mJiBzb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhbHRp
bWVWaWRlb1NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsgfQogCisgICAgVmVjdG9yPFZpZGVvUHJl
c2V0RGF0YT4gcHJlc2V0c0RhdGEoKSB7IHJldHVybiBtX3NvdXJjZS0+cHJlc2V0c0RhdGEoKTsg
fQorCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBS
ZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJik7CiAg
ICAgflJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTaW91cmNl
CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIGJvb2wg
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlvbmFsPGlu
dD4gaGVpZ2h0LCBPcHRpb25hbDxkb3VibGU+IGZyYW1lUmF0ZSkgZmluYWw7CkBAIC02MCw2ICs2
Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25O
b3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9zb3VyY2UtPm1vbml0b3JPcmllbnRhdGlvbihu
b3RpZmllcik7IH0KICAgICBib29sIGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zb3VyY2UtPmludGVycnVwdGVkKCk7IH0KICAgICBib29sIGlzU2FtZUFzKFJlYWx0aW1lTWVk
aWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgZmluYWwgeyByZXR1cm4gdGhpcyA9PSAmc291cmNlIHx8
IG1fc291cmNlLnB0cigpID09ICZzb3VyY2U7IH0KKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIGJvb2wgaXNWaWRlb1NvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGEzNjE3N2VlMGUyYmVi
YWRkYjE5MmQzYjM3YjU0YzNiMTUzYjFiOWEuLjQ5ZWY0ZGZlNDkwOGRhMTVhZDBiOGNiYzE2NWQ4
NGE2ZWNiNThlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtNzI3LDYgKzcyNyw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAn
V2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQnOiBbJzxXZWJDb3JlL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Rmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGUnOiBbJzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6VXNlZExlZ2FjeVRMUyc6IFsnPFdlYkNvcmUvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YSc6
IFsnPFdlYkNvcmUvVmlkZW9QcmVzZXQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OldlYkdMTG9hZFBvbGljeSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyc6IFsnPFdlYkNvcmUv
RnJhbWVMb2FkZXJUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAy
MWY2Y2Y3ZDgyZWFjM2IxMDFmNzMwOTk2M2RkZWZkNzcwZjg1NDlmLi43NzIyNWJmODQyNWE0MDFk
ZjM2OTRlMDEyMDA1MmZjYzc5OGFlZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VSb3RhdGlvblNlc3Npb25W
VC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVWaWRlb1NvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0
Zi9VbmlxdWVSZWYuaD4KQEAgLTMwMCwxNCArMzAxLDI1IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6ZW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAg
IG1fcHJveGllcy5yZW1vdmUoaWQpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllczsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0
KGlkKSkKICAgICAgICAgY2FwYWJpbGl0aWVzID0gcHJveHktPnNvdXJjZSgpLmNhcGFiaWxpdGll
cygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CiB9CiAK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Z2VuZXJhdGVQcmVzZXRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxWaWRlb1ByZXNldERhdGE+JiYsIEludFNpemUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChpZCk7CisgICAgaWYgKCFwcm94eSB8fCAh
cHJveHktPnNvdXJjZSgpLmlzVmlkZW9Tb3VyY2UoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0sIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXV0byYgdmlkZW9T
b3VyY2UgPSBzdGF0aWNfY2FzdDxSZWFsdGltZVZpZGVvU291cmNlJj4ocHJveHktPnNvdXJjZSgp
KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih2aWRlb1NvdXJjZS5wcmVzZXRzRGF0YSgpLCB2aWRl
b1NvdXJjZS5zaXplKCkpOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmFwcGx5Q29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewogICAgIGF1dG8qIHBy
b3h5ID0gbV9wcm94aWVzLmdldChpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZTk2
NmQ1ZGJiMjMyMzU1YmJiNWMwZmJhYjBhMmM1ZjMwYmU1NzI1Ny4uZDQyMjk0OTFmOWVjM2Y4NzNm
ZDdiODI0ODQyNmQzZmNkZjRhYjFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzgs
NiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI7CitzdHJ1Y3QgVmlkZW9QcmVzZXREYXRhOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTc1LDYgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGVu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYXBh
YmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYm
KT4mJik7CisgICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlZp
ZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSk+JiYpOwogICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY2xvbmUoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpOwogICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDI4ZTkyOTkxMmQ3OTg0MDhjNDdlZDQ5MGNlODEz
NTgyMTkzOWYyMjEuLjY0NjViYjljNGRiYjQxYTllNGY1MzgzNTU1NWUwZDE5ZmMwOWY5MjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIs
NyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIENsb25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNs
b25lZElELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKQog
ICAgIFJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBz
b3VyY2VJRCkKICAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCisg
ICAgR2VuZXJhdGVQcmVzZXRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IHNvdXJjZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywg
V2ViQ29yZTo6SW50U2l6ZSBzaXplKSBBc3luYwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmNwcAppbmRleCAxNDIwNTExN2QwNjAyYzY1N2U2Mzc4YzVjNjMyNmY1Y2ZjNDFiMThhLi41
NmJhNmMzODRhZWVmMWRkMDgzYjJkNjQwM2QwNjc2OTNhNjIyOWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCkBAIC03Niw3ICs3Niw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogICAgICAgICAgICAgZGlkRmFpbChXVEZNb3Zl
KGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IHNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKICAgICAgICAg
c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgICAgICBzZXRDYXBhYmlsaXRpZXMo
V1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKICAgICAgICAgc2V0QXNSZWFkeSgpOwpAQCAtMTEyLDcg
KzExMSwxMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmRpZEZhaWwoU3RyaW5n
JiYgZXJyb3JNZXNzYWdlKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldEFz
UmVhZHkoKQogeworICAgIEFTU0VSVCghbV9pc1JlYWR5KTsKICAgICBtX2lzUmVhZHkgPSB0cnVl
OworCisgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7
CiAgICAgaWYgKG1fY2FsbGJhY2spCiAgICAgICAgIG1fY2FsbGJhY2soeyB9KTsKIH0KQEAgLTIw
OCw2ICsyMTAsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3ND
b25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgICAgICByZXR1cm47CiAK
ICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3Vy
Y2VDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBtX2lzUmVhZHkgPSBmYWxzZTsKICAgICBjcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXBkYXRlIHRoZSB0
cmFjayBhY2NvcmRpbmcgY3VycmVudCBzZXR0aW5ncy4KICAgICBpZiAoaXNQcm9kdWNpbmdEYXRh
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggYzRlODA1YzZlODY4Njg5NTE5Njg2MTc1
M2M1MDkzNjIwYmMwZDFkNy4uM2E1MjJhZTk5MzExN2ZlZjhkZWQ1ZTEzNmVmNDg4OTY2NThiY2Ey
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykK
K1JlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKQogewogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZp
Y2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdl
ciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwogICAgIG1hbmFnZXIuYWRkVmlkZW9Tb3Vy
Y2Uoc291cmNlLmNvcHlSZWYoKSk7CkBAIC01NSw3ICs1NSw3IEBAIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURl
dmljZSYKIH0KIAogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUo
bmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUoaGFz
aFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
U3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkp
CiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWFuYWdlcihtYW5hZ2Vy
KQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQpAQCAtNzEsMTcgKzcxLDIwIEBAIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwg
ZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1
dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRp
ZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8m
JiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgbXV0
YWJsZSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBkaWRGYWlsKFdU
Rk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICAgICAgc2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwogICAg
ICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxp
dGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwotICAgICAgICBzZXRBc1JlYWR5KCk7CiAgICAg
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgq
dGhpcyk7CisgICAgICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpHZW5lcmF0ZVByZXNldHMoaWRlbnRpZmll
cigpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShhdXRv
JiYgcHJlc2V0cywgYXV0byBzaXplKSB7CisgICAgICAgICAgICBzZXRTdXBwb3J0ZWRQcmVzZXRz
KFdURk1vdmUocHJlc2V0cykpOworICAgICAgICAgICAgc2V0U2l6ZShzaXplKTsKKyAgICAgICAg
ICAgIHNldEFzUmVhZHkoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTExMywyMyAr
MTE2LDE1IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlkRmFpbChTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0QXNS
ZWFkeSgpCiB7CisgICAgQVNTRVJUKCFtX2lzUmVhZHkpOwogICAgIG1faXNSZWFkeSA9IHRydWU7
CisKKyAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsK
KwogICAgIGlmIChtX2NhbGxiYWNrKQogICAgICAgICBtX2NhbGxiYWNrKHsgfSk7CiB9CiAKLVJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjbG9uZSgp
Ci17Ci0gICAgYXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlmaWVyLCBpZGVudGlmaWVy
IH0sIDApKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAgICBhdXRvIGNsb25lU291cmNlID0g
YWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKGlkZW50aWZpZXIsIG1fZGV2
aWNlLCAmbV9jb25zdHJhaW50cywgU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygp
IH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKLSAgICBtX21hbmFnZXIuYWRkVmlkZW9Tb3VyY2Uo
Y2xvbmVTb3VyY2UuY29weVJlZigpKTsKLSAgICByZXR1cm4gY2xvbmVTb3VyY2U7Ci19Ci0KIHZv
aWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgbV9jYXBhYmlsaXRp
ZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xNjIsNyArMTU3LDIwIEBAIHZvaWQgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3Rl
VmlkZW9TYW1wbGUmJiByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKKyAgICBpZiAobV9z
YW1wbGVSb3RhdGlvbiAhPSBzYW1wbGVSZWYtPnZpZGVvUm90YXRpb24oKSkgeworICAgICAgICBt
X3NhbXBsZVJvdGF0aW9uID0gc2FtcGxlUmVmLT52aWRlb1JvdGF0aW9uKCk7CisKKyAgICAgICAg
YXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgICAgICBpZiAobV9zYW1wbGVSb3RhdGlvbiA9
PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCBtX3NhbXBsZVJvdGF0aW9uID09
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodCkgeworICAgICAgICAgICAgc2l6ZSA9
IHNpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgICAgIG1fc2V0dGluZ3Muc2V0V2lkdGgo
c2l6ZS53aWR0aCgpKTsKKyAgICAgICAgICAgIG1fc2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVp
Z2h0KCkpOworICAgICAgICB9CisgICAgICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7
CisgICAgICAgICAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyh7IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6V2lkdGgsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6RmxhZzo6SGVpZ2h0IH0pOworICAgICAgICB9KTsKKyAgICB9CisgICAgZGlzcGF0Y2hN
ZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKCpzYW1wbGVSZWYpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24q
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNvbm5lY3Rpb24oKQpAQCAtMjM1LDI0ICsyNDMs
MjMgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKICAg
ICBoYXNFbmRlZCgpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BC
ZWluZ09ic2VydmVkKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVS
YXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxWaWRlb1ByZXNldD4pCiB7Ci0gICAgbV9oYXNS
ZXF1ZXN0ZWRUb0VuZCA9IHRydWU7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBtX2lkZW50aWZpZXIg
fSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVxdWVzdFRvRW5k
KE9ic2VydmVyJiBvYnNlcnZlcikKK2Jvb2wgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cHJl
ZmVyc1ByZXNldChWaWRlb1ByZXNldCYpCiB7Ci0gICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYpCiB7CiAgICAgQVNTRVJUKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyk7Ci0gICAgaWYgKGlzRW5kZWQoKSB8fCBtX2hhc1JlcXVlc3RlZFRvRW5kKQorICAgIGlmIChp
c0VuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1faXNSZWFkeSA9IGZhbHNlOwogICAg
IGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1cGRh
dGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNldHRpbmdzLgogICAgIGlmIChpc1Byb2R1
Y2luZ0RhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDQwODcyYjliYjkzOWM5ZjRlN2Rm
YjViMjRkOWRiNjg5MTgyZDQyMTEuLjZjNmVjYTVlOTU4MzMxNzcwMDZkZDc1OWY4MDExMThlNzVi
NzE2OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVk
ZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZp
Y2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQ4LDEzICs0OCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorY2xh
c3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAsIHB1YmxpYyBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwog
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAvLyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5h
bDsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBpc0NhcHR1
cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CkBAIC04MSwxNCArODEsMTcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAg
ICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9u
ICovKSBmaW5hbDsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwotICAgIHZv
aWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9pZCBzdG9wQmVpbmdPYnNl
cnZlZCgpIGZpbmFsOwogICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKICAgICBjb25zdCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1
cm4gbV9zZXR0aW5nczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOwogICAgIHZvaWQgd2hlblJlYWR5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CiAgICAgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9kZXZpY2UudHlwZSgpOyB9Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkg
ZmluYWw7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAg
IHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgZmluYWwgeyB9CisgICAgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb24gc2FtcGxlUm90YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NhbXBsZVJv
dGF0aW9uOyB9CisgICAgdm9pZCBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSwgUmVmUHRy
PFZpZGVvUHJlc2V0PikgZmluYWw7CisgICAgYm9vbCBwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0
JikgZmluYWw7CiAKICNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nv
bm5lY3Rpb246OkNsaWVudApAQCAtMTEwLDEwICsxMTMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRyYW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJh
bnNmZXJTZXNzaW9uOwogCisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVS
b3RhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiAgICAgRGVxdWU8
QXBwbHlDb25zdHJhaW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFj
a3M7CiAgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc1JlYWR5IHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzUmVxdWVzdGVkVG9FbmQg
eyBmYWxzZSB9OwogICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFN0cmluZyk+IG1fY2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5k
ZXggMDMzY2QwZDhkZmQ5MmQ4MTJkNjdjZjVmYjU3ZTVlZDM0YmU3OTE1Yi4uMzhlODdmNmY2ZmQ1
OGU0ZTc2MmQ3NzBkMGUzMzVhMTQyZmFkYWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3Mu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZVZpZGVvU291cmNlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMu
aD4KIAogbmFtZXNwYWNlIFdlYktpdCB7CkBAIC0xOTgsNyArMTk5LDcgQEAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlk
ZW9DYXB0dXJlU28KICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVv
IGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgog
Ci0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNv
bnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
ZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFN
SUxZKQpAQCAtMjEwLDcgKzIxMSw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZp
ZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmCiAKIENhcHR1
cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6
Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1cm4gUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgeyB9
LCBtX21hbmFnZXIsIGZhbHNlKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSkpKTsKIH0K
IAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDBkY2E0ZmIzODAzMTAxOThlNGRjZGM0ODViY2FlZjRlZjA4YmQ3ODcuLmJi
NmJlMjAwYzY4ZjE0Njc1MDhjZTUwZDViYjM0YWZlMGEyNjc1ZTAgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
NyBAQAorMjAyMS0wMi0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgTWFrZSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGEgUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIyMTc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxzLmpzOgor
ICAgICAgICAoYXN5bmMgd2FpdEZvckhlaWdodCk6CisgICAgICAgIChhc3luYyB3YWl0Rm9yV2lk
dGgpOgorICAgICAgICBVcGRhdGVkIHRvIGZhaWwgaW5zdGVhZCBvZiB0aW1pbmcgb3V0LgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanM6
CisgICAgICAgIFJlbW92aW5nIG5vIGxvbmdlciBuZWVkZWQgY29kZSB0aGF0IG1hZGUgaXQgaW1w
b3NzaWJsZSB0byBydW4gdGhlIHRlc3RzIGluIGJyb3dzZXIuCisKIDIwMjEtMDItMTEgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYW5v
dGhlciB1c2Ugb2YgRm9udFNlbGVjdG9yIGZyb20gd2l0aGluIENTU0ZvbnRGYWNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXREaXNwbGF5TWVk
aWEtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRE
aXNwbGF5TWVkaWEtdXRpbHMuanMKaW5kZXggOGI0NmMzNzg4M2ZiZDZhNmM2Y2I0NjRjOTZiZTMx
MTUzYThjOTdjMC4uZDMyYTI4ZTY2NGY0NzQ4MWY0NWUzOWVjZjNhNDRmMmU5Mzk2Y2RjMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxh
eU1lZGlhLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldERpc3BsYXlNZWRpYS11dGlscy5qcwpAQCAtMjEsMTkgKzIxLDIzIEBAIGFzeW5jIGZ1
bmN0aW9uIGNhbGxHZXREaXNwbGF5TWVkaWEob3B0aW9ucykKIH0KIAogYXN5bmMgZnVuY3Rpb24g
d2FpdEZvckhlaWdodCh0cmFjaywgdmFsdWUpIHsKLSAgICB3aGlsZSAodHJ1ZSkgeworICAgIGxl
dCBjb3VudGVyID0gMTAwOworICAgIHdoaWxlICgtLWNvdW50ZXIgPiAwKSB7CiAgICAgICAgIGNv
bnN0IHNldHRpbmdzID0gdHJhY2suZ2V0U2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNldHRpbmdz
LmhlaWdodCA9PT0gdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CiAgICAgfQorICAg
IGFzc2VydF9ncmVhdGVyX3RoYW4oY291bnRlciwgMCwgIndhaXRGb3JIZWlnaHQiKTsKIH0KIAog
YXN5bmMgZnVuY3Rpb24gd2FpdEZvcldpZHRoKHRyYWNrLCB2YWx1ZSkgewotICAgIHdoaWxlICh0
cnVlKSB7CisgICAgbGV0IGNvdW50ZXIgPSAxMDA7CisgICAgd2hpbGUgKC0tY291bnRlciA+IDAp
IHsKICAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0cmFjay5nZXRTZXR0aW5ncygpOwogICAgICAg
ICBpZiAoc2V0dGluZ3Mud2lkdGggPT09IHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkp
OwogICAgIH0KKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGNvdW50ZXIsIDAsICJ3YWl0Rm9yV2lk
dGgiKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCmluZGV4IGNlMjhjYjZlNWFjNTVlMzBm
MWM0YjJjYzg3NDBjMzhlNjNkMDI4MDYuLjExOGM3YWVhMjYyNzVhNjg5NmMwMzkwNDk4Y2FjOGVj
ZGIyODk4ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwpAQCAtMSwxMiArMSw0IEBACiBm
dW5jdGlvbiBnZXRVc2VyTWVkaWEocGVybWlzc2lvbiwgY29uc3RyYWludHMsIHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaykgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHBlcm1pc3Npb24gPT0gImFsbG93
Iik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgdGVzdFJ1bm5lciIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMKICAgICAgICAg
ICAgICAgICAuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKQogICAgICAgICAgICAgICAgIC50aGVu
KHN1Y2Nlc3NDYWxsYmFjaywgcmVqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>419978</attachid>
            <date>2021-02-11 05:18:27 -0800</date>
            <delta_ts>2021-02-12 01:28:02 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221747-20210211141825.patch</filename>
            <type>text/plain</type>
            <size>31364</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1NmQ4MGQyZTc5Nzk3
M2QxOWFhYTAwOWUwODQ2ZWQxMDZkYjU1Ni4uNjQ4NGU0MWRkOTVjZGY2YzM1N2JiMjMzYjZiNjg2
MmE3OWZhNjIzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGlzVmlkZW9Tb3Vy
Y2UgdG8gYmUgYWJsZSB0byBnZXQgcHJlc2V0cyBkYXRhIGZyb20gUmVhbHRpbWVWaWRlb1NvdXJj
ZS4KKyAgICAgICAgRXhwb3NlIHByZXNldHMgaW4gUmVhbHRpbWVWaWRlb1NvdXJjZSBmb3IgR1BV
UHJvY2VzcyB0byBzZW5kIGl0IHRvIFdlYlByb2Nlc3MuCisgICAgICAgIFJlbW92ZSBubyBsb25n
ZXIgdXNlZCBtX2RlZmF1bHRTaXplIG1lbWJlci4KKyAgICAgICAgVXBkYXRlIFJlYWx0aW1lVmlk
ZW9Tb3VyY2UgdG8gc2V0IHNvbWUgb2YgaXRzIG1lbWJlcnMgd2hlbiBpdHMgY2FwdHVyZSBzb3Vy
Y2UgaXMgcmVhZHksCisgICAgICAgIGluY2x1ZGluZyBzZXR0aW5ncywgc2l6ZSwgZnJhbWUgcmF0
ZSBhbmQgbmFtZS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJv
ZHVjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OnByZXNldHNEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJj
ZTo6d2hlblJlYWR5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNv
dXJjZVNldHRpbmdzQ2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb1NvdXJjZS5oOgorCiAyMDIxLTAyLTExICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFub3RoZXIgdXNlIG9mIEZvbnRT
ZWxlY3RvciBmcm9tIHdpdGhpbiBDU1NGb250RmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZWZmNzNiODhmYTdj
NTVjMTRjMGJhY2IxY2NhNjcxOWQzZWY4NjdmLi4zZDhlYTg3ZTMyOGExYjM5NzM3MTdiYWRlOWRj
YTUxYzkwZmM1NjhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxsIGNhcHR1cmUgdmlkZW8gc291
cmNlcyBhcmUgbm93IGRlcml2aW5nIGZyb20gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuCisg
ICAgICAgIFRoaXMgYWxsb3dzIHRvIGV4cG9zZSBhIFJlYWx0aW1lVmlkZW9Tb3VyY2UgdGhhdCBj
YW4gaGFuZGxlIGNoYW5nZXMgb2YgcmVzb2x1dGlvbiBhbmQgZnJhbWUgcmF0ZSBpbiBzb2Z0d2Fy
ZSBhcyBuZWVkZWQuCisgICAgICAgIFRoaXMgYWxzbyBhbGxvd3MgdG8gYmV0dGVyIGFsaWduIGF1
ZGlvIGFuZCB2aWRlbyBzb3VyY2VzIG9uIGlPUzogdGhlcmUgd2lsbCBvbmx5IGJlIG9uZSBydW5u
aW5nIHNvdXJjZSBhdCBhbnkgZ2l2ZW4gdGltZS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIFNjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5OgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVz
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Z2VuZXJh
dGVQcmVzZXRzKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0QXNSZWFkeSk6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktp
dDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSk6
CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZVJlbW90
ZU1lZGlhU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6c2V0QXNSZWFkeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OnJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldCk6CisgICAgICAgIChX
ZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnByZWZlcnNQcmVzZXQpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlv
bkRpZENsb3NlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZp
ZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2Fw
dHVyZVNvdXJjZSk6CisKIDIwMjEtMDItMTEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFNwbGl0IFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UgaW4gdHdvIGF1
ZGlvLXNwZWNpZmljIGFuZCB2aWRlby1zcGVjaWZpYyBjbGFzc2VzCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgK
aW5kZXggNGUyZDU3MmVhMjgzODVjMDczZGE0NGQ4NjkyYmZhMGI0ZjUzOWI3MS4uYTY3NzQyMTc0
NDY2YjQ4MzE4MDJiNTQyMjUxYTZiOTAzODQwYzE5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAt
MTk1LDYgKzE5NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrU291cmNlKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291cmNl
KCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUgZGV2aWNlVHlwZSgpIGNvbnN0IHsgcmV0dXJuIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OlVua25vd247IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWaWRlb1NvdXJjZSgpIGNvbnN0
OwogCiAgICAgdmlydHVhbCB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlm
aWVyJikgeyB9CiAKQEAgLTMyMiw2ICszMjMsMTEgQEAgaW5saW5lIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWwK
ICAgICBjYWxsYmFjayh7IH0pOwogfQogCitpbmxpbmUgYm9vbCBSZWFsdGltZU1lZGlhU291cmNl
Ojppc1ZpZGVvU291cmNlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gZmFsc2U7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogbmFtZXNwYWNlIFdURiB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZS5jcHAKaW5kZXggYzBkNDRlYjY2OWYxMzg3YTk2MzNiODU0ODE2OWU3MDA3ZTgw
NzFjMi4uYjI2OGIyYjU1MjdkZmUyNTJlNjFlZjRlMmU4ZjMwNmE5NzNiNzEwMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1
cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAtNTUsOSArNTUsNiBAQCB2b2lkIFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVwYXJlVG9Qcm9kdWNlRGF0YSgpCiAjaWYgUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24o
KS52aWRlb0NhcHR1cmVGYWN0b3J5KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKICNlbmRpZgot
Ci0gICAgaWYgKHNpemUoKS5pc0VtcHR5KCkgJiYgIW1fZGVmYXVsdFNpemUuaXNFbXB0eSgpKQot
ICAgICAgICBzZXRTaXplKG1fZGVmYXVsdFNpemUpOwogfQogCiBjb25zdCBWZWN0b3I8UmVmPFZp
ZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKQEAgLTY5
LDYgKzY2LDEzIEBAIGNvbnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiYgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U6OnByZXNldHMoKQogICAgIHJldHVybiBtX3ByZXNldHM7CiB9CiAKK1Zl
Y3RvcjxWaWRlb1ByZXNldERhdGE+IFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpwcmVzZXRz
RGF0YSgpCit7CisgICAgcmV0dXJuIFdURjo6bWFwKHByZXNldHMoKSwgW10oYXV0byYgcHJlc2V0
KSAtPiBWaWRlb1ByZXNldERhdGEgeworICAgICAgICByZXR1cm4geyBwcmVzZXQtPnNpemUsIHBy
ZXNldC0+ZnJhbWVSYXRlUmFuZ2VzIH07CisgICAgfSk7Cit9CisKIHZvaWQgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U6OnNldFN1cHBvcnRlZFByZXNldHMoVmVjdG9yPFZpZGVvUHJlc2V0RGF0
YT4mJiBwcmVzZXREYXRhKQogewogICAgIFZlY3RvcjxSZWY8VmlkZW9QcmVzZXQ+PiBwcmVzZXRz
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKaW5kZXggNDQ1MjFjNWJmOWJmZDBiYTIy
MGQ2ZmE2NzVhN2YwZDNlZTgwN2YzMC4uMjc3MjE5ZTFlYTM2ZjA0MTFhMWEzZTY2N2EwNWMyNGNl
NzBiMzg3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0zOCw3ICszOCw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgSW1hZ2VUcmFuc2ZlclNlc3Npb25WVDsK
IAotY2xhc3MgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZSB7CitjbGFzcyBXRUJDT1JFX0VYUE9SVCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5S
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSgpOwogCkBAIC00OSw2ICs0OSw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIHNhbXBsZVJvdGF0aW9uKCkg
Y29uc3QgeyByZXR1cm4gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7IH0KIAogICAg
IGRvdWJsZSBvYnNlcnZlZEZyYW1lUmF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fb2JzZXJ2ZWRGcmFt
ZVJhdGU7IH0KKyAgICBWZWN0b3I8VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzRGF0YSgpOwogCiBw
cm90ZWN0ZWQ6CiAgICAgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaWQsIFN0cmluZyYmIGhhc2hTYWx0KTsKQEAgLTY5LDggKzcwLDYgQEAgcHJvdGVj
dGVkOgogCiAgICAgdm9pZCB1cGRhdGVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYpOwogCi0gICAgdm9pZCBzZXREZWZhdWx0U2l6ZShjb25zdCBJbnRTaXplJiBz
aXplKSB7IG1fZGVmYXVsdFNpemUgPSBzaXplOyB9Ci0KICAgICB2b2lkIGRpc3BhdGNoTWVkaWFT
YW1wbGVUb09ic2VydmVycyhNZWRpYVNhbXBsZSYpOwogICAgIGNvbnN0IFZlY3RvcjxJbnRTaXpl
PiYgc3RhbmRhcmRWaWRlb1NpemVzKCk7CiAKQEAgLTkxLDcgKzkwLDYgQEAgcHJpdmF0ZToKICAg
ICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gbV9wcmVzZXRzOwogICAgIERlcXVlPGRvdWJsZT4g
bV9vYnNlcnZlZEZyYW1lVGltZVN0YW1wczsKICAgICBkb3VibGUgbV9vYnNlcnZlZEZyYW1lUmF0
ZSB7IDAgfTsKLSAgICBJbnRTaXplIG1fZGVmYXVsdFNpemU7CiB9OwogCiBzdHJ1Y3QgU2l6ZUFu
ZEZyYW1lUmF0ZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDE1ZTIyYTU4YTFjMjgzNWFk
MDQwZTk4YWI5OTcxN2FmNzk4ZTVlOTYuLjM0OWUzMzM5MjJkNTdlMGNjMmE3Y2I3Mzc2ODc2ZTg1
MTJmYjQwMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC01MCw2ICs1MCwxNyBAQCBSZWFs
dGltZVZpZGVvU291cmNlOjp+UmVhbHRpbWVWaWRlb1NvdXJjZSgpCiAgICAgbV9zb3VyY2UtPnJl
bW92ZU9ic2VydmVyKCp0aGlzKTsKIH0KIAordm9pZCBSZWFsdGltZVZpZGVvU291cmNlOjp3aGVu
UmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbGxiYWNrKQoreworICAg
IG1fc291cmNlLT53aGVuUmVhZHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byBtZXNzYWdlKSBtdXRhYmxlIHsK
KyAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NvdXJjZS0+bmFtZSgpIH0pOworICAgICAgICBt
X2N1cnJlbnRTZXR0aW5ncyA9IG1fc291cmNlLT5zZXR0aW5ncygpOworICAgICAgICBzZXRTaXpl
KG1fc291cmNlLT5zaXplKCkpOworICAgICAgICBzZXRGcmFtZVJhdGUobV9zb3VyY2UtPmZyYW1l
UmF0ZSgpKTsKKyAgICAgICAgY2FsbGJhY2soV1RGTW92ZShtZXNzYWdlKSk7CisgICAgfSk7Cit9
CisKIHZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKIHsKICAg
ICBtX3NvdXJjZS0+c3RhcnQoKTsKQEAgLTEwNyw2ICsxMTgsNyBAQCB2b2lkIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZCgpCiAgICAgaWYgKHJvdGF0aW9uID09IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0IHx8IHJvdGF0aW9uID09IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpSaWdodCkKICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3NlZFNp
emUoKTsKIAorICAgIG1fY3VycmVudFNldHRpbmdzID0gbV9zb3VyY2UtPnNldHRpbmdzKCk7CiAg
ICAgbV9jdXJyZW50U2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKICAgICBtX2N1cnJl
bnRTZXR0aW5ncy5zZXRIZWlnaHQoc2l6ZS5oZWlnaHQoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApp
bmRleCAyYjIzZmUzY2IxOGQwY2UzYzMxYTU2OTY2YjZiNGUyYmQ5OGEwYjliLi4wNjJhYThmYjVk
OGU4ODNjZTMzYWI3NWUxZDJjMjEwN2E3NjhjNmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00
MCwxMSArNDAsMTMgQEAgY2xhc3MgUmVhbHRpbWVWaWRlb1NvdXJjZSBmaW5hbAogcHVibGljOgog
ICAgIHN0YXRpYyBSZWY8UmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlKFJlZjxSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZT4mJiBzb3VyY2UpIHsgcmV0dXJuIGFkb3B0UmVmKCpuZXcgUmVhbHRp
bWVWaWRlb1NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsgfQogCisgICAgVmVjdG9yPFZpZGVvUHJl
c2V0RGF0YT4gcHJlc2V0c0RhdGEoKSB7IHJldHVybiBtX3NvdXJjZS0+cHJlc2V0c0RhdGEoKTsg
fQorCiBwcml2YXRlOgotICAgIGV4cGxpY2l0IFJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBleHBsaWNpdCBS
ZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJik7CiAg
ICAgflJlYWx0aW1lVmlkZW9Tb3VyY2UoKTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTaW91cmNl
CisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRh
KCkgZmluYWw7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIGJvb2wg
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKE9wdGlvbmFsPGludD4gd2lkdGgsIE9wdGlvbmFsPGlu
dD4gaGVpZ2h0LCBPcHRpb25hbDxkb3VibGU+IGZyYW1lUmF0ZSkgZmluYWw7CkBAIC02MCw2ICs2
Miw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25O
b3RpZmllciYgbm90aWZpZXIpIGZpbmFsIHsgbV9zb3VyY2UtPm1vbml0b3JPcmllbnRhdGlvbihu
b3RpZmllcik7IH0KICAgICBib29sIGludGVycnVwdGVkKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9zb3VyY2UtPmludGVycnVwdGVkKCk7IH0KICAgICBib29sIGlzU2FtZUFzKFJlYWx0aW1lTWVk
aWFTb3VyY2UmIHNvdXJjZSkgY29uc3QgZmluYWwgeyByZXR1cm4gdGhpcyA9PSAmc291cmNlIHx8
IG1fc291cmNlLnB0cigpID09ICZzb3VyY2U7IH0KKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGZpbmFsOworICAgIGJvb2wgaXNWaWRlb1NvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KIAogICAgIC8vIFJlYWx0aW1lTWVkaWFT
b3VyY2U6Ok9ic2VydmVyCiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkgYi9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CmluZGV4IGEzNjE3N2VlMGUyYmVi
YWRkYjE5MmQzYjM3YjU0YzNiMTUzYjFiOWEuLjQ5ZWY0ZGZlNDkwOGRhMTVhZDBiOGNiYzE2NWQ4
NGE2ZWNiNThlMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQvbWVz
c2FnZXMucHkKKysrIGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQpA
QCAtNzI3LDYgKzcyNyw3IEBAIGRlZiBoZWFkZXJzX2Zvcl90eXBlKHR5cGUpOgogICAgICAgICAn
V2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQnOiBbJzxXZWJDb3JlL05l
dHdvcmtTdG9yYWdlU2Vzc2lvbi5oPiddLAogICAgICAgICAnV2ViQ29yZTo6Rmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGUnOiBbJzxXZWJDb3JlL05ldHdvcmtTdG9yYWdlU2Vzc2lvbi5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6VXNlZExlZ2FjeVRMUyc6IFsnPFdlYkNvcmUvUmVzb3Vy
Y2VSZXNwb25zZUJhc2UuaD4nXSwKKyAgICAgICAgJ1dlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YSc6
IFsnPFdlYkNvcmUvVmlkZW9QcmVzZXQuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlZpZXdwb3J0
QXR0cmlidXRlcyc6IFsnPFdlYkNvcmUvVmlld3BvcnRBcmd1bWVudHMuaD4nXSwKICAgICAgICAg
J1dlYkNvcmU6OldlYkdMTG9hZFBvbGljeSc6IFsnPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6V2lsbENvbnRpbnVlTG9hZGluZyc6IFsnPFdlYkNvcmUv
RnJhbWVMb2FkZXJUeXBlcy5oPiddLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCAy
MWY2Y2Y3ZDgyZWFjM2IxMDFmNzMwOTk2M2RkZWZkNzcwZjg1NDlmLi43NzIyNWJmODQyNWE0MDFk
ZjM2OTRlMDEyMDA1MmZjYzc5OGFlZGRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApA
QCAtNDAsNiArNDAsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvSW1hZ2VSb3RhdGlvblNlc3Npb25W
VC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFDb25zdHJhaW50cy5oPgogI2luY2x1ZGUgPFdl
YkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVh
bHRpbWVWaWRlb1NvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVtb3RlVmlkZW9TYW1wbGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1ZGlvQnVmZmVyTGlzdC5oPgogI2luY2x1ZGUgPHd0
Zi9VbmlxdWVSZWYuaD4KQEAgLTMwMCwxNCArMzAxLDI1IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6ZW5kKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAg
IG1fcHJveGllcy5yZW1vdmUoaWQpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OmNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllczsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0
KGlkKSkKICAgICAgICAgY2FwYWJpbGl0aWVzID0gcHJveHktPnNvdXJjZSgpLmNhcGFiaWxpdGll
cygpOwogICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CiB9CiAK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Z2VuZXJhdGVQcmVzZXRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxWaWRlb1ByZXNldERhdGE+JiYsIEludFNpemUpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorewor
ICAgIGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChpZCk7CisgICAgaWYgKCFwcm94eSB8fCAh
cHJveHktPnNvdXJjZSgpLmlzVmlkZW9Tb3VyY2UoKSkgeworICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcih7IH0sIHsgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgYXV0byYgdmlkZW9T
b3VyY2UgPSBzdGF0aWNfY2FzdDxSZWFsdGltZVZpZGVvU291cmNlJj4ocHJveHktPnNvdXJjZSgp
KTsKKyAgICBjb21wbGV0aW9uSGFuZGxlcih2aWRlb1NvdXJjZS5wcmVzZXRzRGF0YSgpLCB2aWRl
b1NvdXJjZS5zaXplKCkpOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmFwcGx5Q29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzKQogewogICAgIGF1dG8qIHBy
b3h5ID0gbV9wcm94aWVzLmdldChpZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggZTk2
NmQ1ZGJiMjMyMzU1YmJiNWMwZmJhYjBhMmM1ZjMwYmU1NzI1Ny4uZDQyMjk0OTFmOWVjM2Y4NzNm
ZDdiODI0ODQyNmQzZmNkZjRhYjFhYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtMzgs
NiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9ybU1lZGlhU2Vz
c2lvbk1hbmFnZXI7CitzdHJ1Y3QgVmlkZW9QcmVzZXREYXRhOwogfQogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKQEAgLTc1LDYgKzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIGVu
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBjYXBh
YmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYm
KT4mJik7CisgICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYkNvcmU6OlZp
ZGVvUHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSk+JiYpOwogICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYpOwogICAgIHZvaWQgY2xvbmUoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgY2xvbmVkSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGNsb25lSUQpOwogICAgIHZvaWQgcmVxdWVzdFRvRW5kKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDI4ZTkyOTkxMmQ3OTg0MDhjNDdlZDQ5MGNlODEz
NTgyMTkzOWYyMjEuLjY0NjViYjljNGRiYjQxYTllNGY1MzgzNTU1NWUwZDE5ZmMwOWY5MjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIs
NyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50
ZWQgewogICAgIENsb25lKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGNs
b25lZElELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBjbG9uZUlEKQog
ICAgIFJlcXVlc3RUb0VuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBz
b3VyY2VJRCkKICAgICBTZXRTaG91bGRBcHBseVJvdGF0aW9uKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIHNvdXJjZUlELCBib29sIHNob3VsZEFwcGx5Um90YXRpb24pCisg
ICAgR2VuZXJhdGVQcmVzZXRzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IHNvdXJjZUlEKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywg
V2ViQ29yZTo6SW50U2l6ZSBzaXplKSBBc3luYwogfQogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmNwcAppbmRleCAxNDIwNTExN2QwNjAyYzY1N2U2Mzc4YzVjNjMyNmY1Y2ZjNDFiMThhLi41
NmJhNmMzODRhZWVmMWRkMDgzYjJkNjQwM2QwNjc2OTNhNjIyOWYyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCkBAIC03Niw3ICs3Niw2IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogICAgICAgICAgICAgZGlkRmFpbChXVEZNb3Zl
KGVycm9yTWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAg
IHNldE5hbWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKICAgICAgICAg
c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgICAgICBzZXRDYXBhYmlsaXRpZXMo
V1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKICAgICAgICAgc2V0QXNSZWFkeSgpOwpAQCAtMTEyLDcg
KzExMSwxMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmRpZEZhaWwoU3RyaW5n
JiYgZXJyb3JNZXNzYWdlKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldEFz
UmVhZHkoKQogeworICAgIEFTU0VSVCghbV9pc1JlYWR5KTsKICAgICBtX2lzUmVhZHkgPSB0cnVl
OworCisgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7
CiAgICAgaWYgKG1fY2FsbGJhY2spCiAgICAgICAgIG1fY2FsbGJhY2soeyB9KTsKIH0KQEAgLTIw
OCw2ICsyMTAsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3ND
b25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgICAgICByZXR1cm47CiAK
ICAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3Vy
Y2VDb25uZWN0aW9uKCp0aGlzKTsKKyAgICBtX2lzUmVhZHkgPSBmYWxzZTsKICAgICBjcmVhdGVS
ZW1vdGVNZWRpYVNvdXJjZSgpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXBkYXRlIHRoZSB0
cmFjayBhY2NvcmRpbmcgY3VycmVudCBzZXR0aW5ncy4KICAgICBpZiAoaXNQcm9kdWNpbmdEYXRh
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggYzRlODA1YzZlODY4Njg5NTE5Njg2MTc1
M2M1MDkzNjIwYmMwZDFkNy4uM2E1MjJhZTk5MzExN2ZlZjhkZWQ1ZTEzNmVmNDg4OTY2NThiY2Ey
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2Ug
V2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsK
IAotUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykK
K1JlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9j
ZXNzKQogewogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZp
Y2UsIGNvbnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdl
ciwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwogICAgIG1hbmFnZXIuYWRkVmlkZW9Tb3Vy
Y2Uoc291cmNlLmNvcHlSZWYoKSk7CkBAIC01NSw3ICs1NSw3IEBAIFJlZjxSZWFsdGltZU1lZGlh
U291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURl
dmljZSYKIH0KIAogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBD
YXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUo
bmFtZSksIFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUoaGFz
aFNhbHQpKQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwg
U3RyaW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkp
CiAgICAgLCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWFuYWdlcihtYW5hZ2Vy
KQogICAgICwgbV9kZXZpY2UoZGV2aWNlKQpAQCAtNzEsMTcgKzcxLDIwIEBAIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVt
b3RlTWVkaWFTb3VyY2UoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwg
ZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1
dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgIGNvbm5lY3Rpb24oKS0+
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRp
ZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3Ro
aXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8m
JiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgbXV0
YWJsZSB7CiAgICAgICAgIGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBkaWRGYWlsKFdU
Rk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAg
ICAgICAgc2V0TmFtZShTdHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwogICAg
ICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxp
dGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwotICAgICAgICBzZXRBc1JlYWR5KCk7CiAgICAg
ICAgIGlmIChtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiAgICAgICAgICAgICBXZWJQcm9j
ZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgq
dGhpcyk7CisgICAgICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpHZW5lcmF0ZVByZXNldHMoaWRlbnRpZmll
cigpKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBXVEZNb3ZlKHByb3RlY3RlZFRoaXMpXShhdXRv
JiYgcHJlc2V0cywgYXV0byBzaXplKSB7CisgICAgICAgICAgICBzZXRTdXBwb3J0ZWRQcmVzZXRz
KFdURk1vdmUocHJlc2V0cykpOworICAgICAgICAgICAgc2V0U2l6ZShzaXplKTsKKyAgICAgICAg
ICAgIHNldEFzUmVhZHkoKTsKKyAgICAgICAgfSk7CiAgICAgfSk7CiB9CiAKQEAgLTExMywyMyAr
MTE2LDE1IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZGlkRmFpbChTdHJpbmcm
JiBlcnJvck1lc3NhZ2UpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0QXNS
ZWFkeSgpCiB7CisgICAgQVNTRVJUKCFtX2lzUmVhZHkpOwogICAgIG1faXNSZWFkeSA9IHRydWU7
CisKKyAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsK
KwogICAgIGlmIChtX2NhbGxiYWNrKQogICAgICAgICBtX2NhbGxiYWNrKHsgfSk7CiB9CiAKLVJl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjbG9uZSgp
Ci17Ci0gICAgYXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9pZGVudGlmaWVyLCBpZGVudGlmaWVy
IH0sIDApKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAgICBhdXRvIGNsb25lU291cmNlID0g
YWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKGlkZW50aWZpZXIsIG1fZGV2
aWNlLCAmbV9jb25zdHJhaW50cywgU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgpLnN0cmluZygp
IH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVBy
b2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKLSAgICBtX21hbmFnZXIuYWRkVmlkZW9Tb3VyY2Uo
Y2xvbmVTb3VyY2UuY29weVJlZigpKTsKLSAgICByZXR1cm4gY2xvbmVTb3VyY2U7Ci19Ci0KIHZv
aWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgbV9jYXBhYmlsaXRp
ZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xNjIsNyArMTU3LDIwIEBAIHZvaWQgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoUmVtb3Rl
VmlkZW9TYW1wbGUmJiByCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBSZWFsdGltZU1l
ZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKKyAgICBpZiAobV9z
YW1wbGVSb3RhdGlvbiAhPSBzYW1wbGVSZWYtPnZpZGVvUm90YXRpb24oKSkgeworICAgICAgICBt
X3NhbXBsZVJvdGF0aW9uID0gc2FtcGxlUmVmLT52aWRlb1JvdGF0aW9uKCk7CisKKyAgICAgICAg
YXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgICAgICBpZiAobV9zYW1wbGVSb3RhdGlvbiA9
PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8fCBtX3NhbXBsZVJvdGF0aW9uID09
IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodCkgeworICAgICAgICAgICAgc2l6ZSA9
IHNpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgICAgIG1fc2V0dGluZ3Muc2V0V2lkdGgo
c2l6ZS53aWR0aCgpKTsKKyAgICAgICAgICAgIG1fc2V0dGluZ3Muc2V0SGVpZ2h0KHNpemUuaGVp
Z2h0KCkpOworICAgICAgICB9CisgICAgICAgIHNjaGVkdWxlRGVmZXJyZWRUYXNrKFt0aGlzXSB7
CisgICAgICAgICAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyh7IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6V2lkdGgsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5nczo6RmxhZzo6SGVpZ2h0IH0pOworICAgICAgICB9KTsKKyAgICB9CisgICAgZGlzcGF0Y2hN
ZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKCpzYW1wbGVSZWYpOwogfQogCiBJUEM6OkNvbm5lY3Rpb24q
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNvbm5lY3Rpb24oKQpAQCAtMjM1LDI0ICsyNDMs
MjMgQEAgdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKICAg
ICBoYXNFbmRlZCgpOwogfQogCi12b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BC
ZWluZ09ic2VydmVkKCkKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVS
YXRlV2l0aFByZXNldChkb3VibGUsIFJlZlB0cjxWaWRlb1ByZXNldD4pCiB7Ci0gICAgbV9oYXNS
ZXF1ZXN0ZWRUb0VuZCA9IHRydWU7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpSZXF1ZXN0VG9FbmQgeyBtX2lkZW50aWZpZXIg
fSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVxdWVzdFRvRW5k
KE9ic2VydmVyJiBvYnNlcnZlcikKK2Jvb2wgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cHJl
ZmVyc1ByZXNldChWaWRlb1ByZXNldCYpCiB7Ci0gICAgc3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAg
ICByZXR1cm4gdHJ1ZTsKIH0KIAogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKIHZvaWQgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9j
ZXNzQ29ubmVjdGlvbiYpCiB7CiAgICAgQVNTRVJUKG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cyk7Ci0gICAgaWYgKGlzRW5kZWQoKSB8fCBtX2hhc1JlcXVlc3RlZFRvRW5kKQorICAgIGlmIChp
c0VuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAgIG1faXNSZWFkeSA9IGZhbHNlOwogICAg
IGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1cGRh
dGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNldHRpbmdzLgogICAgIGlmIChpc1Byb2R1
Y2luZ0RhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDQwODcyYjliYjkzOWM5ZjRlN2Rm
YjViMjRkOWRiNjg5MTgyZDQyMTEuLjcyOTM2YmFmYTgzYzRiYjVkZTVkYjQzNjc2ZGIwMGI5N2Fl
NmY2YTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtMjksOCArMjksOCBAQAogCiAjaW5jbHVk
ZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZp
Y2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5o
PgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQ4LDEzICs0OCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorY2xh
c3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZQogI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKICAgICAsIHB1YmxpYyBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAjZW5kaWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0
aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmlu
ZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKTsKICAgICB+UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSgpOwog
CiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpAQCAtNzMsNyArNzMsNyBAQCBwdWJsaWM6
CiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBj
b25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5H
UFVQcm9jZXNzKTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAvLyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5h
bDsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBpc0NhcHR1
cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CkBAIC04MSwxNCArODEsMTcg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAg
ICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91bGRBcHBseVJvdGF0aW9u
ICovKSBmaW5hbDsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYpIGZpbmFsOwotICAgIHZv
aWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9pZCBzdG9wQmVpbmdPYnNl
cnZlZCgpIGZpbmFsOwogICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKICAgICBjb25zdCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwgeyByZXR1
cm4gbV9zZXR0aW5nczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VD
YXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOwogICAgIHZvaWQgd2hlblJlYWR5KENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CiAgICAgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
bV9kZXZpY2UudHlwZSgpOyB9Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNsb25lKCkg
ZmluYWw7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAg
IHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgZmluYWwgeyB9CisgICAgV2ViQ29yZTo6TWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBjb25zdCBmaW5hbCB7IHJldHVybiBt
X3NhbXBsZVJvdGF0aW9uOyB9CisgICAgdm9pZCBzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KGRvdWJs
ZSwgUmVmUHRyPFdlYkNvcmU6OlZpZGVvUHJlc2V0PikgZmluYWw7CisgICAgYm9vbCBwcmVmZXJz
UHJlc2V0KFdlYkNvcmU6OlZpZGVvUHJlc2V0JikgZmluYWw7CiAKICNpZiBFTkFCTEUoR1BVX1BS
T0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudApAQCAtMTEwLDEwICsx
MTMsMTAgQEAgcHJpdmF0ZToKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpJbWFnZVRy
YW5zZmVyU2Vzc2lvblZUPiBtX2ltYWdlVHJhbnNmZXJTZXNzaW9uOwogCisgICAgV2ViQ29yZTo6
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7IFdlYkNvcmU6Ok1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiAgICAgRGVxdWU8QXBwbHlDb25zdHJh
aW50c0hhbmRsZXI+IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3M7CiAgICAgYm9v
bCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1Jl
YWR5IHsgZmFsc2UgfTsKLSAgICBib29sIG1faGFzUmVxdWVzdGVkVG9FbmQgeyBmYWxzZSB9Owog
ICAgIFN0cmluZyBtX2Vycm9yTWVzc2FnZTsKICAgICBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyk+IG1fY2FsbGJhY2s7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggMDMzY2QwZDhk
ZmQ5MmQ4MTJkNjdjZjVmYjU3ZTVlZDM0YmU3OTE1Yi4uMzhlODdmNmY2ZmQ1OGU0ZTc2MmQ3NzBk
MGUzMzVhMTQyZmFkYWIwZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zOCw2ICszOCw3IEBA
CiAjaW5jbHVkZSA8V2ViQ29yZS9EZXByZWNhdGVkR2xvYmFsU2V0dGluZ3MuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZVZpZGVvU291cmNlLmg+CiAjaW5jbHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIAogbmFtZXNw
YWNlIFdlYktpdCB7CkBAIC0xOTgsNyArMTk5LDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJlU28K
ICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsgIlZpZGVvIGNhcHR1cmUgaW4g
R1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNlbmRpZgogCi0gICAgcmV0dXJu
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7
IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2Vzcyk7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25z
dHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5hZ2VyLCBtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpKSk7CiB9CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjEw
LDcgKzIxMSw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6
c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmCiAKIENhcHR1cmVTb3VyY2VPckVy
cm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxh
eUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFnZXIs
IGZhbHNlKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNv
bnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSkpKTsKIH0KIAogfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IDBkY2E0ZmIzODAzMTAxOThlNGRjZGM0ODViY2FlZjRlZjA4YmQ3ODcuLmJiNmJlMjAwYzY4ZjE0
Njc1MDhjZTUwZDViYjM0YWZlMGEyNjc1ZTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0w
Mi0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGEgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMTc0NworCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogZmFzdC9tZWRp
YXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxzLmpzOgorICAgICAgICAoYXN5
bmMgd2FpdEZvckhlaWdodCk6CisgICAgICAgIChhc3luYyB3YWl0Rm9yV2lkdGgpOgorICAgICAg
ICBVcGRhdGVkIHRvIGZhaWwgaW5zdGVhZCBvZiB0aW1pbmcgb3V0LgorICAgICAgICAqIGZhc3Qv
bWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanM6CisgICAgICAgIFJl
bW92aW5nIG5vIGxvbmdlciBuZWVkZWQgY29kZSB0aGF0IG1hZGUgaXQgaW1wb3NzaWJsZSB0byBy
dW4gdGhlIHRlc3RzIGluIGJyb3dzZXIuCisKIDIwMjEtMDItMTEgIE15bGVzIEMuIE1heGZpZWxk
ICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYW5vdGhlciB1c2Ugb2Yg
Rm9udFNlbGVjdG9yIGZyb20gd2l0aGluIENTU0ZvbnRGYWNlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXREaXNwbGF5TWVkaWEtdXRpbHMuanMg
Yi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXREaXNwbGF5TWVkaWEt
dXRpbHMuanMKaW5kZXggOGI0NmMzNzg4M2ZiZDZhNmM2Y2I0NjRjOTZiZTMxMTUzYThjOTdjMC4u
ZDMyYTI4ZTY2NGY0NzQ4MWY0NWUzOWVjZjNhNDRmMmU5Mzk2Y2RjMCAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxz
LmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldERpc3Bs
YXlNZWRpYS11dGlscy5qcwpAQCAtMjEsMTkgKzIxLDIzIEBAIGFzeW5jIGZ1bmN0aW9uIGNhbGxH
ZXREaXNwbGF5TWVkaWEob3B0aW9ucykKIH0KIAogYXN5bmMgZnVuY3Rpb24gd2FpdEZvckhlaWdo
dCh0cmFjaywgdmFsdWUpIHsKLSAgICB3aGlsZSAodHJ1ZSkgeworICAgIGxldCBjb3VudGVyID0g
MTAwOworICAgIHdoaWxlICgtLWNvdW50ZXIgPiAwKSB7CiAgICAgICAgIGNvbnN0IHNldHRpbmdz
ID0gdHJhY2suZ2V0U2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNldHRpbmdzLmhlaWdodCA9PT0g
dmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CiAgICAgfQorICAgIGFzc2VydF9ncmVh
dGVyX3RoYW4oY291bnRlciwgMCwgIndhaXRGb3JIZWlnaHQiKTsKIH0KIAogYXN5bmMgZnVuY3Rp
b24gd2FpdEZvcldpZHRoKHRyYWNrLCB2YWx1ZSkgewotICAgIHdoaWxlICh0cnVlKSB7CisgICAg
bGV0IGNvdW50ZXIgPSAxMDA7CisgICAgd2hpbGUgKC0tY291bnRlciA+IDApIHsKICAgICAgICAg
Y29uc3Qgc2V0dGluZ3MgPSB0cmFjay5nZXRTZXR0aW5ncygpOwogICAgICAgICBpZiAoc2V0dGlu
Z3Mud2lkdGggPT09IHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgIGF3YWl0IG5l
dyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkpOwogICAgIH0KKyAg
ICBhc3NlcnRfZ3JlYXRlcl90aGFuKGNvdW50ZXIsIDAsICJ3YWl0Rm9yV2lkdGgiKTsKIH0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJN
ZWRpYS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9n
ZXRVc2VyTWVkaWEtaGVscGVyLmpzCmluZGV4IGNlMjhjYjZlNWFjNTVlMzBmMWM0YjJjYzg3NDBj
MzhlNjNkMDI4MDYuLjExOGM3YWVhMjYyNzVhNjg5NmMwMzkwNDk4Y2FjOGVjZGIyODk4ZGQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJN
ZWRpYS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJj
ZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwpAQCAtMSwxMiArMSw0IEBACiBmdW5jdGlvbiBnZXRV
c2VyTWVkaWEocGVybWlzc2lvbiwgY29uc3RyYWludHMsIHN1Y2Nlc3NDYWxsYmFjaywgZXJyb3JD
YWxsYmFjaykgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5l
ci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHBlcm1pc3Npb24gPT0gImFsbG93Iik7Ci0gICAgZWxz
ZSB7Ci0gICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4gd2l0aG91dCB0aGUg
dGVzdFJ1bm5lciIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLQogICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMKICAgICAgICAgICAgICAgICAuZ2V0
VXNlck1lZGlhKGNvbnN0cmFpbnRzKQogICAgICAgICAgICAgICAgIC50aGVuKHN1Y2Nlc3NDYWxs
YmFjaywgcmVqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420103</attachid>
            <date>2021-02-12 01:28:06 -0800</date>
            <delta_ts>2021-02-12 02:10:08 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-221747-20210212102804.patch</filename>
            <type>text/plain</type>
            <size>38165</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1NmQ4MGQyZTc5Nzk3
M2QxOWFhYTAwOWUwODQ2ZWQxMDZkYjU1Ni4uZjlmZjMxODZjNmY0MWY3OWYwNTZlMTY5NzdkNGI5
OTkxMzU5YTFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW50cm9kdWNlIGlzVmlkZW9Tb3Vy
Y2UgdG8gYmUgYWJsZSB0byBnZXQgcHJlc2V0cyBkYXRhIGZyb20gUmVhbHRpbWVWaWRlb1NvdXJj
ZS4KKyAgICAgICAgRXhwb3NlIHByZXNldHMgaW4gUmVhbHRpbWVWaWRlb1NvdXJjZSBmb3IgR1BV
UHJvY2VzcyB0byBzZW5kIGl0IHRvIFdlYlByb2Nlc3MuCisgICAgICAgIFJlbW92ZSBubyBsb25n
ZXIgdXNlZCBtX2RlZmF1bHRTaXplIG1lbWJlci4KKyAgICAgICAgVXBkYXRlIFJlYWx0aW1lVmlk
ZW9Tb3VyY2UgdG8gc2V0IHNvbWUgb2YgaXRzIG1lbWJlcnMgd2hlbiBpdHMgY2FwdHVyZSBzb3Vy
Y2UgaXMgcmVhZHksCisgICAgICAgIGluY2x1ZGluZyBzZXR0aW5ncywgc2l6ZSwgZnJhbWUgcmF0
ZSBhbmQgbmFtZS4KKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4KKworICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJv
ZHVjZURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6
OnByZXNldHNEYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb1NvdXJj
ZTo6d2hlblJlYWR5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvU291cmNlLmg6CisKIDIwMjEtMDItMTEgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYW5vdGhlciB1c2Ugb2YgRm9udFNlbGVjdG9y
IGZyb20gd2l0aGluIENTU0ZvbnRGYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDZlZmY3M2I4OGZhN2M1NWMxNGMw
YmFjYjFjY2E2NzE5ZDNlZjg2N2YuLjNkOGVhODdlMzI4YTFiMzk3MzcxN2JhZGU5ZGNhNTFjOTBm
YzU2OGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMjEtMDItMTEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZSBhIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjE3NDcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBbGwgY2FwdHVyZSB2aWRlbyBzb3VyY2VzIGFy
ZSBub3cgZGVyaXZpbmcgZnJvbSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS4KKyAgICAgICAg
VGhpcyBhbGxvd3MgdG8gZXhwb3NlIGEgUmVhbHRpbWVWaWRlb1NvdXJjZSB0aGF0IGNhbiBoYW5k
bGUgY2hhbmdlcyBvZiByZXNvbHV0aW9uIGFuZCBmcmFtZSByYXRlIGluIHNvZnR3YXJlIGFzIG5l
ZWRlZC4KKyAgICAgICAgVGhpcyBhbHNvIGFsbG93cyB0byBiZXR0ZXIgYWxpZ24gYXVkaW8gYW5k
IHZpZGVvIHNvdXJjZXMgb24gaU9TOiB0aGVyZSB3aWxsIG9ubHkgYmUgb25lIHJ1bm5pbmcgc291
cmNlIGF0IGFueSBnaXZlbiB0aW1lLgorICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5nIHRlc3Rz
LgorCisgICAgICAgICogU2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHk6CisgICAgICAgICogVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRpZXMpOgorICAg
ICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpnZW5lcmF0ZVByZXNl
dHMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlOjpzZXRBc1JlYWR5KToKKyAgICAgICAgKiBXZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKToKKyAgICAg
ICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFT
b3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRB
c1JlYWR5KToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVt
b3RlVmlkZW9TYW1wbGVBdmFpbGFibGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpzZXRGcmFtZVJhdGVXaXRoUHJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cHJlZmVyc1ByZXNldCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xv
c2UpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0
b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291
cmNlKToKKwogMjAyMS0wMi0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgU3BsaXQgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZSBpbiB0d28gYXVkaW8tc3Bl
Y2lmaWMgYW5kIHZpZGVvLXNwZWNpZmljIGNsYXNzZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA0
ZTJkNTcyZWEyODM4NWMwNzNkYTQ0ZDg2OTJiZmEwYjRmNTM5YjcxLi5hNjc3NDIxNzQ0NjZiNDgz
MTgwMmI1NDIyNTFhNmI5MDM4NDBjMTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0xOTUsNiAr
MTk1LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgYm9vbCBpc01vY2tTb3VyY2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25z
dCB7IHJldHVybiBmYWxzZTsgfQogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSBkZXZpY2VUeXBlKCkgY29uc3QgeyByZXR1cm4gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
VW5rbm93bjsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1ZpZGVvU291cmNlKCkgY29uc3Q7CiAKICAg
ICB2aXJ0dWFsIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKSB7
IH0KIApAQCAtMzIyLDYgKzMyMywxMSBAQCBpbmxpbmUgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Ojp3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNhbAogICAgIGNh
bGxiYWNrKHsgfSk7CiB9CiAKK2lubGluZSBib29sIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmlzVmlk
ZW9Tb3VyY2UoKSBjb25zdAoreworICAgIHJldHVybiBmYWxzZTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQogCiBuYW1lc3BhY2UgV1RGIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlLmNwcAppbmRleCBjMGQ0NGViNjY5ZjEzODdhOTYzM2I4NTQ4MTY5ZTcwMDdlODA3MWMyLi5i
MjY4YjJiNTUyN2RmZTI1MmU2MWVmNGUyZThmMzA2YTk3M2I3MTAzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJj
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVW
aWRlb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC01NSw5ICs1NSw2IEBAIHZvaWQgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1Y2VEYXRhKCkKICNpZiBQTEFURk9STShJT1Nf
RkFNSUxZKQogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVv
Q2FwdHVyZUZhY3RvcnkoKS5zZXRBY3RpdmVTb3VyY2UoKnRoaXMpOwogI2VuZGlmCi0KLSAgICBp
ZiAoc2l6ZSgpLmlzRW1wdHkoKSAmJiAhbV9kZWZhdWx0U2l6ZS5pc0VtcHR5KCkpCi0gICAgICAg
IHNldFNpemUobV9kZWZhdWx0U2l6ZSk7CiB9CiAKIGNvbnN0IFZlY3RvcjxSZWY8VmlkZW9QcmVz
ZXQ+PiYgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXNldHMoKQpAQCAtNjksNiArNjYs
MTMgQEAgY29uc3QgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+JiBSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZTo6cHJlc2V0cygpCiAgICAgcmV0dXJuIG1fcHJlc2V0czsKIH0KIAorVmVjdG9yPFZp
ZGVvUHJlc2V0RGF0YT4gUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXNldHNEYXRhKCkK
K3sKKyAgICByZXR1cm4gV1RGOjptYXAocHJlc2V0cygpLCBbXShhdXRvJiBwcmVzZXQpIC0+IFZp
ZGVvUHJlc2V0RGF0YSB7CisgICAgICAgIHJldHVybiB7IHByZXNldC0+c2l6ZSwgcHJlc2V0LT5m
cmFtZVJhdGVSYW5nZXMgfTsKKyAgICB9KTsKK30KKwogdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVy
ZVNvdXJjZTo6c2V0U3VwcG9ydGVkUHJlc2V0cyhWZWN0b3I8VmlkZW9QcmVzZXREYXRhPiYmIHBy
ZXNldERhdGEpCiB7CiAgICAgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+IHByZXNldHM7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCA0NDUyMWM1YmY5YmZkMGJhMjIwZDZmYTY3
NWE3ZjBkM2VlODA3ZjMwLi4yNzcyMTllMWVhMzZmMDQxMWExYTNlNjY3YTA1YzI0Y2U3MGIzODc1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmgKQEAgLTM4LDcgKzM4LDcgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBJbWFnZVRyYW5zZmVyU2Vzc2lvblZUOwogCi1jbGFz
cyBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
IHsKK2NsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIDogcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogICAgIHZpcnR1YWwgflJlYWx0aW1l
VmlkZW9DYXB0dXJlU291cmNlKCk7CiAKQEAgLTQ5LDYgKzQ5LDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBjb25zdCB7
IHJldHVybiBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZTsgfQogCiAgICAgZG91Ymxl
IG9ic2VydmVkRnJhbWVSYXRlKCkgY29uc3QgeyByZXR1cm4gbV9vYnNlcnZlZEZyYW1lUmF0ZTsg
fQorICAgIFZlY3RvcjxWaWRlb1ByZXNldERhdGE+IHByZXNldHNEYXRhKCk7CiAKIHByb3RlY3Rl
ZDoKICAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBpZCwgU3RyaW5nJiYgaGFzaFNhbHQpOwpAQCAtNjksOCArNzAsNiBAQCBwcm90ZWN0ZWQ6CiAK
ICAgICB2b2lkIHVwZGF0ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJik7CiAKLSAgICB2b2lkIHNldERlZmF1bHRTaXplKGNvbnN0IEludFNpemUmIHNpemUpIHsg
bV9kZWZhdWx0U2l6ZSA9IHNpemU7IH0KLQogICAgIHZvaWQgZGlzcGF0Y2hNZWRpYVNhbXBsZVRv
T2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJik7CiAgICAgY29uc3QgVmVjdG9yPEludFNpemU+JiBzdGFu
ZGFyZFZpZGVvU2l6ZXMoKTsKIApAQCAtOTEsNyArOTAsNiBAQCBwcml2YXRlOgogICAgIFZlY3Rv
cjxSZWY8VmlkZW9QcmVzZXQ+PiBtX3ByZXNldHM7CiAgICAgRGVxdWU8ZG91YmxlPiBtX29ic2Vy
dmVkRnJhbWVUaW1lU3RhbXBzOwogICAgIGRvdWJsZSBtX29ic2VydmVkRnJhbWVSYXRlIHsgMCB9
OwotICAgIEludFNpemUgbV9kZWZhdWx0U2l6ZTsKIH07CiAKIHN0cnVjdCBTaXplQW5kRnJhbWVS
YXRlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMTVlMjJhNThhMWMyODM1YWQwNDBlOThh
Yjk5NzE3YWY3OThlNWU5Ni4uZDE2NmM4YmY1ZmU5ODQwMjc2YTJhODg0N2I3NjdkNTQwY2ViNDdk
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTUwLDYgKzUwLDE3IEBAIFJlYWx0aW1lVmlk
ZW9Tb3VyY2U6On5SZWFsdGltZVZpZGVvU291cmNlKCkKICAgICBtX3NvdXJjZS0+cmVtb3ZlT2Jz
ZXJ2ZXIoKnRoaXMpOwogfQogCit2b2lkIFJlYWx0aW1lVmlkZW9Tb3VyY2U6OndoZW5SZWFkeShD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spCit7CisgICAgbV9zb3Vy
Y2UtPndoZW5SZWFkeShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBjYWxs
YmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvIG1lc3NhZ2UpIG11dGFibGUgeworICAgICAg
ICBzZXROYW1lKFN0cmluZyB7IG1fc291cmNlLT5uYW1lKCkgfSk7CisgICAgICAgIG1fY3VycmVu
dFNldHRpbmdzID0gbV9zb3VyY2UtPnNldHRpbmdzKCk7CisgICAgICAgIHNldFNpemUobV9zb3Vy
Y2UtPnNpemUoKSk7CisgICAgICAgIHNldEZyYW1lUmF0ZShtX3NvdXJjZS0+ZnJhbWVSYXRlKCkp
OworICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKG1lc3NhZ2UpKTsKKyAgICB9KTsKK30KKwogdm9p
ZCBSZWFsdGltZVZpZGVvU291cmNlOjpzdGFydFByb2R1Y2luZ0RhdGEoKQogewogICAgIG1fc291
cmNlLT5zdGFydCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IDJiMjNmZTNjYjE4ZDBjZTNjMzFh
NTY5NjZiNmI0ZTJiZDk4YTBiOWIuLjA2MmFhOGZiNWQ4ZTg4M2NlMzNhYjc1ZTFkMmMyMTA3YTc2
OGM2YzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTQwLDExICs0MCwxMyBAQCBjbGFzcyBSZWFs
dGltZVZpZGVvU291cmNlIGZpbmFsCiBwdWJsaWM6CiAgICAgc3RhdGljIFJlZjxSZWFsdGltZVZp
ZGVvU291cmNlPiBjcmVhdGUoUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmIHNvdXJj
ZSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBSZWFsdGltZVZpZGVvU291cmNlKFdURk1vdmUoc291
cmNlKSkpOyB9CiAKKyAgICBWZWN0b3I8VmlkZW9QcmVzZXREYXRhPiBwcmVzZXRzRGF0YSgpIHsg
cmV0dXJuIG1fc291cmNlLT5wcmVzZXRzRGF0YSgpOyB9CisKIHByaXZhdGU6Ci0gICAgZXhwbGlj
aXQgUmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIGV4cGxpY2l0IFJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVmPFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiYmKTsKICAgICB+UmVhbHRpbWVWaWRlb1NvdXJjZSgp
OwogCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNpb3VyY2UKKyAgICAvLyBSZWFsdGltZU1lZGlhU291
cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICB2b2lkIHN0b3BQ
cm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBzdXBwb3J0c1NpemVBbmRGcmFtZVJhdGUo
T3B0aW9uYWw8aW50PiB3aWR0aCwgT3B0aW9uYWw8aW50PiBoZWlnaHQsIE9wdGlvbmFsPGRvdWJs
ZT4gZnJhbWVSYXRlKSBmaW5hbDsKQEAgLTYwLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICB2b2lk
IG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJiBub3RpZmllcikgZmluYWwg
eyBtX3NvdXJjZS0+bW9uaXRvck9yaWVudGF0aW9uKG5vdGlmaWVyKTsgfQogICAgIGJvb2wgaW50
ZXJydXB0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3NvdXJjZS0+aW50ZXJydXB0ZWQoKTsg
fQogICAgIGJvb2wgaXNTYW1lQXMoUmVhbHRpbWVNZWRpYVNvdXJjZSYgc291cmNlKSBjb25zdCBm
aW5hbCB7IHJldHVybiB0aGlzID09ICZzb3VyY2UgfHwgbV9zb3VyY2UucHRyKCkgPT0gJnNvdXJj
ZTsgfQorICAgIHZvaWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4m
JikgZmluYWw7CisgICAgYm9vbCBpc1ZpZGVvU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQogCiAgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZTo6T2JzZXJ2ZXIKICAgICB2b2lk
IHNvdXJjZU11dGVkQ2hhbmdlZCgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9T
Y3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weSBiL1NvdXJjZS9XZWJLaXQvU2NyaXB0cy93ZWJraXQv
bWVzc2FnZXMucHkKaW5kZXggYTM2MTc3ZWUwZTJiZWJhZGRiMTkyZDNiMzdiNTRjM2IxNTNiMWI5
YS4uNDllZjRkZmU0OTA4ZGExNWFkMGI4Y2JjMTY1ZDg0YTZlY2I1OGUwZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CkBAIC03MjcsNiArNzI3LDcgQEAgZGVmIGhl
YWRlcnNfZm9yX3R5cGUodHlwZSk6CiAgICAgICAgICdXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZCc6IFsnPFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSc6IFsn
PFdlYkNvcmUvTmV0d29ya1N0b3JhZ2VTZXNzaW9uLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpV
c2VkTGVnYWN5VExTJzogWyc8V2ViQ29yZS9SZXNvdXJjZVJlc3BvbnNlQmFzZS5oPiddLAorICAg
ICAgICAnV2ViQ29yZTo6VmlkZW9QcmVzZXREYXRhJzogWyc8V2ViQ29yZS9WaWRlb1ByZXNldC5o
PiddLAogICAgICAgICAnV2ViQ29yZTo6Vmlld3BvcnRBdHRyaWJ1dGVzJzogWyc8V2ViQ29yZS9W
aWV3cG9ydEFyZ3VtZW50cy5oPiddLAogICAgICAgICAnV2ViQ29yZTo6V2ViR0xMb2FkUG9saWN5
JzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpX
aWxsQ29udGludWVMb2FkaW5nJzogWyc8V2ViQ29yZS9GcmFtZUxvYWRlclR5cGVzLmg+J10sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDIxZjZjZjdkODJlYWMzYjEwMWY3MzA5OTYz
ZGRlZmQ3NzBmODU0OWYuLmQ5NTYzNjdmNTFkMzM5NTcyYzhlZDVhYmYyMWVjMTBlNjQyZTlhNTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9JbWFnZVJvdGF0aW9uU2Vzc2lvblZULmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
ZWRpYUNvbnN0cmFpbnRzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvU291cmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9SZW1vdGVWaWRlb1NhbXBsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvV2Vi
QXVkaW9CdWZmZXJMaXN0Lmg+CiAjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgpAQCAtMjM4LDEw
ICsyMzksMTAgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fY29ubmVjdGlvblByb3h5LT5yZW1vdmVNZXNzYWdlUmVj
ZWl2ZXIoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNl
aXZlck5hbWUoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wgc3VjY2VlZGVkLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiwgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkLCBjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzJiBtZWRpYUNvbnN0cmFpbnRzLCBDcmVhdGVTb3VyY2VDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uUHJveHktPndp
bGxTdGFydENhcHR1cmUoZGV2aWNlLnR5cGUoKSkpCi0gICAgICAgIHJldHVybiBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSwgIlJlcXVlc3QgaXMgbm90IGFsbG93ZWQiX3MsIFJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyB7IH0sIHsgfSk7CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSwgIlJlcXVlc3QgaXMgbm90IGFsbG93ZWQiX3MsIFJlYWx0aW1lTWVkaWFTb3VyY2VT
ZXR0aW5ncyB7IH0sIHsgfSwgeyB9LCB7IH0sIDApOwogCiAgICAgYXV0byogY29uc3RyYWludHMg
PSBtZWRpYUNvbnN0cmFpbnRzLmlzVmFsaWQgPyAmbWVkaWFDb25zdHJhaW50cyA6IG51bGxwdHI7
CiAKQEAgLTI2Nyw4ICsyNjgsMTIgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKIAogICAgIGJv
b2wgc3VjY2VlZGVkID0gISFzb3VyY2VPckVycm9yOwogICAgIFN0cmluZyBpbnZhbGlkQ29uc3Ry
YWludHM7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdz
OwotICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0
aWVzOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5nczsKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllczsKKyAgICBWZWN0b3I8Vmlk
ZW9QcmVzZXREYXRhPiBwcmVzZXRzOworICAgIEludFNpemUgc2l6ZTsKKyAgICBkb3VibGUgZnJh
bWVSYXRlID0gMDsKKwogICAgIGlmIChzb3VyY2VPckVycm9yKSB7CiAgICAgICAgIGF1dG8gc291
cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKICNpZiAhUkVMRUFTRV9MT0dfRElTQUJMRUQK
QEAgLTI3NiwxMSArMjgxLDIwIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpCiAjZW5kaWYKICAg
ICAgICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNldHRpbmdzKCk7CiAgICAgICAgIGNhcGFiaWxpdGll
cyA9IHNvdXJjZS0+Y2FwYWJpbGl0aWVzKCk7CisgICAgICAgIGlmIChzb3VyY2UtPmlzVmlkZW9T
b3VyY2UoKSkgeworICAgICAgICAgICAgYXV0byYgdmlkZW9Tb3VyY2UgPSBzdGF0aWNfY2FzdDxS
ZWFsdGltZVZpZGVvU291cmNlJj4oc291cmNlLmdldCgpKTsKKyAgICAgICAgICAgIHByZXNldHMg
PSB2aWRlb1NvdXJjZS5wcmVzZXRzRGF0YSgpOworICAgICAgICAgICAgc2l6ZSA9IHZpZGVvU291
cmNlLnNpemUoKTsKKyAgICAgICAgICAgIGZyYW1lUmF0ZSA9IHZpZGVvU291cmNlLmZyYW1lUmF0
ZSgpOworICAgICAgICB9CisKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFpbnMoaWQp
KTsKICAgICAgICAgbV9wcm94aWVzLmFkZChpZCwgbWFrZVVuaXF1ZTxTb3VyY2VQcm94eT4oaWQs
IG1fY29ubmVjdGlvblByb3h5LT5jb25uZWN0aW9uKCksIFdURk1vdmUoc291cmNlKSkpOwogICAg
IH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJy
b3IuZXJyb3JNZXNzYWdlKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcihzdWNjZWVkZWQsIGludmFs
aWRDb25zdHJhaW50cywgV1RGTW92ZShzZXR0aW5ncyksIFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7
CisKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRz
LCBXVEZNb3ZlKHNldHRpbmdzKSwgV1RGTW92ZShjYXBhYmlsaXRpZXMpLCBXVEZNb3ZlKHByZXNl
dHMpLCBzaXplLCBmcmFtZVJhdGUpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHk6OnN0YXJ0UHJvZHVjaW5nRGF0YShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBp
ZCkKQEAgLTMwMCw5ICszMTQsOSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmVuZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBtX3Byb3hpZXMucmVt
b3ZlKGlkKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmls
aXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJp
bGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCiB7Ci0gICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBj
YXBhYmlsaXRpZXM7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmls
aXRpZXM7CiAgICAgaWYgKGF1dG8qIHByb3h5ID0gbV9wcm94aWVzLmdldChpZCkpCiAgICAgICAg
IGNhcGFiaWxpdGllcyA9IHByb3h5LT5zb3VyY2UoKS5jYXBhYmlsaXRpZXMoKTsKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKGNhcGFiaWxpdGllcykpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5oCmluZGV4IGU5NjZkNWRiYjIzMjM1NWJiYjVjMGZiYWIwYTJjNWYzMGJlNTcyNTcuLjgwN2Nl
OGY3MGU4NjA3NjNlNzhjNzYxMTUyZGMyNjg2YWIxMjM4MjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmgKQEAgLTM4LDYgKzM4LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgUGxh
dGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOworc3RydWN0IFZpZGVvUHJlc2V0RGF0YTsKIH0KIAog
bmFtZXNwYWNlIFdlYktpdCB7CkBAIC03MCw3ICs3MSw4IEBAIHByaXZhdGU6CiAgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBT
dHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmKTsKKyAgICB1c2luZyBDcmVhdGVTb3VyY2VDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlk
Q29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYsIFZlY3RvcjxXZWJDb3JlOjpW
aWRlb1ByZXNldERhdGE+JiYsIFdlYkNvcmU6OkludFNpemUsIGRvdWJsZSk+OworICAgIHZvaWQg
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlJiBkZXZpY2VJRCwgU3RyaW5nJiYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
LCBDcmVhdGVTb3VyY2VDYWxsYmFjayYmKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YShX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAgdm9pZCBzdG9wUHJv
ZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAgICAg
dm9pZCBlbmQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggMjhlOTI5OTEyZDc5ODQw
OGM0N2VkNDkwY2U4MTM1ODIxOTM5ZjIyMS4uNTkxMzk4Njc4YjExYTAzYTI3YmJmMWRkMjliMjRj
OWNkZmUwYjRiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmlu
CkBAIC0yNCw3ICsyNCw3IEBACiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAogbWVzc2FnZXMg
LT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBOb3RSZWZDb3VudGVkIHsKLSAgICBDcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UgZGV2
aWNlLCBTdHJpbmcgaGFzaFNhbHQsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzIGNv
bnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzLCBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3MsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKSBBc3luYworICAgIENy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBk
ZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMg
Y29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMs
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMsIFZlY3RvcjxXZWJD
b3JlOjpWaWRlb1ByZXNldERhdGE+IHByZXNldHMsIFdlYkNvcmU6OkludFNpemUgc2l6ZSwgZG91
YmxlIGZyYW1lUmF0ZSkgQXN5bmMKICAgICBTdGFydFByb2R1Y2luZ0RhdGEoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgU3RvcFByb2R1Y2luZ0RhdGEoV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCiAgICAgRW5kKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CmluZGV4IDE0MjA1MTE3ZDA2MDJjNjU3ZTYzNzhjNWM2MzI2ZjVjZmM0MWIxOGEuLjg2ZGY5NzYy
ZmY3MmIyOTE0MGVlMWRjMzUxZjZiMzgzYjE0MDY0OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5j
cHAKQEAgLTcxLDEyICs3MSwxMSBAQCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaQogCiB2b2lkIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKIHsKLSAg
ICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmljZUlESGFzaFNhbHQoKSwgbV9j
b25zdHJhaW50cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyldKGJvb2wg
c3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBj
YXBhYmlsaXRpZXMpIHsKKyAgICBjb25uZWN0aW9uKCktPnNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkZW50aWZpZXIoKSwgbV9kZXZpY2UsIGRldmlj
ZUlESGFzaFNhbHQoKSwgbV9jb25zdHJhaW50cyksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFr
ZVJlZigqdGhpcyldKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYg
c2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgewogICAg
ICAgICBpZiAoIXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgZGlkRmFpbChXVEZNb3ZlKGVycm9y
TWVzc2FnZSkpOwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHNldE5h
bWUoU3RyaW5nIHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKICAgICAgICAgc2V0U2V0
dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgICAgICBzZXRDYXBhYmlsaXRpZXMoV1RGTW92
ZShjYXBhYmlsaXRpZXMpKTsKICAgICAgICAgc2V0QXNSZWFkeSgpOwpAQCAtMTEyLDcgKzExMSwx
MCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJy
b3JNZXNzYWdlKQogCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OnNldEFzUmVhZHko
KQogeworICAgIEFTU0VSVCghbV9pc1JlYWR5KTsKICAgICBtX2lzUmVhZHkgPSB0cnVlOworCisg
ICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7CiAgICAg
aWYgKG1fY2FsbGJhY2spCiAgICAgICAgIG1fY2FsbGJhY2soeyB9KTsKIH0KQEAgLTIwOCw2ICsy
MTAsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0
aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3RpbwogICAgICAgICByZXR1cm47CiAKICAgICBt
X21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25u
ZWN0aW9uKCp0aGlzKTsKKyAgICBtX2lzUmVhZHkgPSBmYWxzZTsKICAgICBjcmVhdGVSZW1vdGVN
ZWRpYVNvdXJjZSgpOwogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgdXBkYXRlIHRoZSB0cmFjayBh
Y2NvcmRpbmcgY3VycmVudCBzZXR0aW5ncy4KICAgICBpZiAoaXNQcm9kdWNpbmdEYXRhKCkpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggYzRlODA1YzZlODY4Njg5NTE5Njg2MTc1M2M1MDkz
NjIwYmMwZDFkNy4uNjk4NzQxMzFjY2RmMjU0MDMyMDYwMTVjNDkxOGRkOTFiZTkyOWZhYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCBuYW1lc3BhY2UgV2ViS2l0
IHsKIHVzaW5nIG5hbWVzcGFjZSBQQUw7CiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotUmVm
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK1JlZjxS
ZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ewogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwogICAgIG1hbmFnZXIuYWRkVmlkZW9Tb3VyY2Uoc291
cmNlLmNvcHlSZWYoKSk7CkBAIC01NSw3ICs1NSw3IEBAIFJlZjxSZWFsdGltZU1lZGlhU291cmNl
PiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYK
IH0KIAogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBDYXB0dXJl
RGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJp
bmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1h
bmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKLSAgICA6IFJlYWx0aW1lTWVk
aWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdURk1vdmUobmFtZSks
IFN0cmluZzo6bnVtYmVyKGlkZW50aWZpZXIudG9VSW50NjQoKSksIFdURk1vdmUoaGFzaFNhbHQp
KQorICAgIDogUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UoV1RGTW92ZShuYW1lKSwgU3RyaW5n
OjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkpCiAgICAg
LCBtX2lkZW50aWZpZXIoaWRlbnRpZmllcikKICAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQogICAg
ICwgbV9kZXZpY2UoZGV2aWNlKQpAQCAtNzEsMTcgKzcxLDIzIEBAIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVk
aWFTb3VyY2UoKQogewotICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNl
SURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtl
UmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBz
ZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcykgeworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigp
LCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJv
ck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmIHBy
ZXNldHMsIGF1dG8gc2l6ZSwgYXV0byBmcmFtZVJhdGUpIG11dGFibGUgewogICAgICAgICBpZiAo
IXN1Y2NlZWRlZCkgewogICAgICAgICAgICAgZGlkRmFpbChXVEZNb3ZlKGVycm9yTWVzc2FnZSkp
OwogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9Ci0gICAgICAgIHNldE5hbWUoU3RyaW5n
IHsgc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKKworICAgICAgICBpZiAobV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKQorICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOworCisgICAgICAg
IHNldFNpemUoc2l6ZSk7CisgICAgICAgIHNldEZyYW1lUmF0ZShmcmFtZVJhdGUpOworCiAgICAg
ICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKICAgICAgICAgc2V0Q2FwYWJpbGl0
aWVzKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CisgICAgICAgIHNldFN1cHBvcnRlZFByZXNldHMo
V1RGTW92ZShwcmVzZXRzKSk7CisKICAgICAgICAgc2V0QXNSZWFkeSgpOwotICAgICAgICBpZiAo
bV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2lu
Z2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOwog
ICAgIH0pOwogfQogCkBAIC0xMTMsMjMgKzExOSwxNSBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmRpZEZhaWwoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogCiB2b2lkIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnNldEFzUmVhZHkoKQogeworICAgIEFTU0VSVCghbV9pc1JlYWR5
KTsKICAgICBtX2lzUmVhZHkgPSB0cnVlOworCisgICAgc2V0TmFtZShTdHJpbmcgeyBtX3NldHRp
bmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7CisKICAgICBpZiAobV9jYWxsYmFjaykKICAgICAgICAg
bV9jYWxsYmFjayh7IH0pOwogfQogCi1SZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y2xvbmUoKQotewotICAgIGF1dG8gaWRlbnRpZmllciA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpOwotICAgIGlmICghY29ubmVjdGlv
bigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDbG9uZSB7
IG1faWRlbnRpZmllciwgaWRlbnRpZmllciB9LCAwKSkKLSAgICAgICAgcmV0dXJuICp0aGlzOwot
Ci0gICAgYXV0byBjbG9uZVNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZShpZGVudGlmaWVyLCBtX2RldmljZSwgJm1fY29uc3RyYWludHMsIFN0cmluZyB7IG1f
c2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9LCBkZXZpY2VJREhhc2hTYWx0KCksIG1fbWFuYWdl
ciwgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgY2xvbmVTb3VyY2UtPnNldFNl
dHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyB7IG1fc2V0dGluZ3MgfSk7Ci0gICAg
bV9tYW5hZ2VyLmFkZFZpZGVvU291cmNlKGNsb25lU291cmNlLmNvcHlSZWYoKSk7Ci0gICAgcmV0
dXJuIGNsb25lU291cmNlOwotfQotCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNl
dENhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0
aWVzKQogewogICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOwpAQCAt
MTYyLDcgKzE2MCwyMCBAQCB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnJlbW90ZVZp
ZGVvU2FtcGxlQXZhaWxhYmxlKFJlbW90ZVZpZGVvU2FtcGxlJiYgcgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9TYW1wbGVBdmFpbGFibGUo
KnNhbXBsZVJlZik7CisgICAgaWYgKG1fc2FtcGxlUm90YXRpb24gIT0gc2FtcGxlUmVmLT52aWRl
b1JvdGF0aW9uKCkpIHsKKyAgICAgICAgbV9zYW1wbGVSb3RhdGlvbiA9IHNhbXBsZVJlZi0+dmlk
ZW9Sb3RhdGlvbigpOworCisgICAgICAgIGF1dG8gc2l6ZSA9IHRoaXMtPnNpemUoKTsKKyAgICAg
ICAgaWYgKG1fc2FtcGxlUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Okxl
ZnQgfHwgbV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Umln
aHQpIHsKKyAgICAgICAgICAgIHNpemUgPSBzaXplLnRyYW5zcG9zZWRTaXplKCk7CisgICAgICAg
ICAgICBtX3NldHRpbmdzLnNldFdpZHRoKHNpemUud2lkdGgoKSk7CisgICAgICAgICAgICBtX3Nl
dHRpbmdzLnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKKyAgICAgICAgfQorICAgICAgICBzY2hl
ZHVsZURlZmVycmVkVGFzayhbdGhpc10geworICAgICAgICAgICAgbm90aWZ5U2V0dGluZ3NEaWRD
aGFuZ2VPYnNlcnZlcnMoeyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc6OldpZHRo
LCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc6OkhlaWdodCB9KTsKKyAgICAgICAg
fSk7CisgICAgfQorICAgIGRpc3BhdGNoTWVkaWFTYW1wbGVUb09ic2VydmVycygqc2FtcGxlUmVm
KTsKIH0KIAogSVBDOjpDb25uZWN0aW9uKiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjb25u
ZWN0aW9uKCkKQEAgLTE5NiwyNyArMjA3LDYgQEAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKICAg
ICByZXR1cm4gbV9jYXBhYmlsaXRpZXM7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6YXBwbHlDb25zdHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50
cywgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBt
X3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLmFwcGVuZChXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Ci0gICAgLy8gRklYTUU6IFVzZSBzZW5kQXN5bmNXaXRoUmVwbHkuCi0gICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVudGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKLX0K
LQotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjphcHBseUNvbnN0cmFpbnRzU3VjY2Vl
ZGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQotewotICAgIHNldFNl
dHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKLQotICAgIGF1dG8gY2FsbGJhY2sgPSBtX3BlbmRp
bmdBcHBseUNvbnN0cmFpbnRzQ2FsbGJhY2tzLnRha2VGaXJzdCgpOwotICAgIGNhbGxiYWNrKHsg
fSk7Ci19Ci0KLXZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6YXBwbHlDb25zdHJhaW50
c0ZhaWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2Up
Ci17Ci0gICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFj
a3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soQXBwbHlDb25zdHJhaW50c0Vycm9yIHsgV1RG
TW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpIH0pOwotfQotCiB2
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKICAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZCB7
IG1faWRlbnRpZmllciB9LCAwKTsKQEAgLTIzNSwyNCArMjI1LDQ2IEBAIHZvaWQgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y2FwdHVyZUZhaWxlZCgpCiAgICAgaGFzRW5kZWQoKTsKIH0KIAot
dm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzdG9wQmVpbmdPYnNlcnZlZCgpCit2b2lk
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlUHJlc2V0cygpCit7CisgICAgQVNT
RVJUKG1faXNSZWFkeSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0
RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUgZnJhbWVSYXRlLCBSZWZQdHI8VmlkZW9QcmVzZXQ+
IHByZXNldCkKIHsKLSAgICBtX2hhc1JlcXVlc3RlZFRvRW5kID0gdHJ1ZTsKLSAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OlJlcXVl
c3RUb0VuZCB7IG1faWRlbnRpZmllciB9LCAwKTsKKyAgICBNZWRpYUNvbnN0cmFpbnRzIGNvbnN0
cmFpbnRzOworCisgICAgY29uc3RyYWludHMuaXNWYWxpZCA9IHRydWU7CisgICAgRG91YmxlQ29u
c3RyYWludCBmcmFtZVJhdGVDb25zdHJhaW50KCJmcmFtZVJhdGUiX3MsIE1lZGlhQ29uc3RyYWlu
dFR5cGU6OkZyYW1lUmF0ZSk7CisgICAgZnJhbWVSYXRlQ29uc3RyYWludC5zZXRJZGVhbChmcmFt
ZVJhdGUpOworICAgIGNvbnN0cmFpbnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNv
bnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUsIGZyYW1lUmF0ZUNvbnN0cmFpbnQpOworCisgICAgaWYg
KHByZXNldCkgeworICAgICAgICBJbnRDb25zdHJhaW50IHdpZHRoQ29uc3RyYWludCgid2lkdGgi
X3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoKTsKKyAgICAgICAgd2lkdGhDb25zdHJhaW50
LnNldElkZWFsKHByZXNldC0+c2l6ZS53aWR0aCgpKTsKKyAgICAgICAgY29uc3RyYWludHMubWFu
ZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OldpZHRoLCB3aWR0aENv
bnN0cmFpbnQpOworCisgICAgICAgIEludENvbnN0cmFpbnQgaGVpZ2h0Q29uc3RyYWludCgiaGVp
Z2h0Il9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQpOworICAgICAgICBoZWlnaHRDb25z
dHJhaW50LnNldElkZWFsKHByZXNldC0+c2l6ZS5oZWlnaHQoKSk7CisgICAgICAgIGNvbnN0cmFp
bnRzLm1hbmRhdG9yeUNvbnN0cmFpbnRzLnNldChNZWRpYUNvbnN0cmFpbnRUeXBlOjpIZWlnaHQs
IGhlaWdodENvbnN0cmFpbnQpOworICAgIH0KKworICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyB7IG1f
aWRlbnRpZmllciwgY29uc3RyYWludHMgfSwgMCk7CiB9CiAKLXZvaWQgUmVtb3RlUmVhbHRpbWVW
aWRlb1NvdXJjZTo6cmVxdWVzdFRvRW5kKE9ic2VydmVyJiBvYnNlcnZlcikKK2Jvb2wgUmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZTo6cHJlZmVyc1ByZXNldChWaWRlb1ByZXNldCYpCiB7Ci0gICAg
c3RvcEJlaW5nT2JzZXJ2ZWQoKTsKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogI2lmIEVOQUJMRShH
UFVfUFJPQ0VTUykKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nv
bm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvbiYpCiB7CiAgICAgQVNTRVJUKG1f
c2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7Ci0gICAgaWYgKGlzRW5kZWQoKSB8fCBtX2hhc1Jl
cXVlc3RlZFRvRW5kKQorICAgIGlmIChpc0VuZGVkKCkpCiAgICAgICAgIHJldHVybjsKIAorICAg
IG1faXNSZWFkeSA9IGZhbHNlOwogICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAg
Ly8gRklYTUU6IFdlIHNob3VsZCB1cGRhdGUgdGhlIHRyYWNrIGFjY29yZGluZyBjdXJyZW50IHNl
dHRpbmdzLgogICAgIGlmIChpc1Byb2R1Y2luZ0RhdGEoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmlu
ZGV4IDQwODcyYjliYjkzOWM5ZjRlN2RmYjViMjRkOWRiNjg5MTgyZDQyMTEuLjM5YzE3ZWVlODBj
MmIwMzkyMGQ1NDcyZTJmNWJjYWUyYjg0M2E3OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAt
MjksOCArMjksOCBAQAogCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNs
dWRlIDxXZWJDb3JlL0NhcHR1cmVEZXZpY2UuaD4KLSNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5o
PgogI2luY2x1ZGUgPHd0Zi9EZXF1ZS5oPgogCiBuYW1lc3BhY2UgSVBDIHsKQEAgLTQ4LDEzICs0
OCwxMyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI7CiAKLWNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZQorY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1
YmxpYyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQogI2lmIEVOQUJMRShHUFVf
UFJPQ0VTUykKICAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CiAjZW5k
aWYKIHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6
TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7Cisg
ICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4gY3JlYXRl
KGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKICAgICB+UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZSgpOwogCiAgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQpA
QCAtNjIsOSArNjIsNiBAQCBwdWJsaWM6CiAKICAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKIAotICAgIHZvaWQgYXBwbHlDb25zdHJh
aW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7Ci0g
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQs
IFN0cmluZyYmIGVycm9yTWVzc2FnZSk7Ci0KICAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7CiAg
ICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CiAKQEAgLTczLDIyICs3MCwyNCBAQCBwdWJs
aWM6CiBwcml2YXRlOgogICAgIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKTsKIAotICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICAvLyBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlCiAgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBm
aW5hbDsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWw7CiAgICAgYm9vbCBpc0Nh
cHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9CiAgICAgdm9pZCBiZWdp
bkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24o
KSBmaW5hbCB7IH0KICAgICBib29sIHNldFNob3VsZEFwcGx5Um90YXRpb24oYm9vbCAvKiBzaG91
bGRBcHBseVJvdGF0aW9uICovKSBmaW5hbDsKLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMoY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYp
IGZpbmFsOwotICAgIHZvaWQgcmVxdWVzdFRvRW5kKE9ic2VydmVyJikgZmluYWw7Ci0gICAgdm9p
ZCBzdG9wQmVpbmdPYnNlcnZlZCgpIGZpbmFsOwogICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsK
ICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdz
KCkgZmluYWwgeyByZXR1cm4gbV9zZXR0aW5nczsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsOwogICAgIHZv
aWQgd2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgZmluYWw7CiAg
ICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gbV9kZXZpY2UudHlwZSgpOyB9Ci0gICAgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNsb25lKCkgZmluYWw7CisKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZQorICAgIHZvaWQgZ2VuZXJhdGVQcmVzZXRzKCkgZmluYWw7CisgICAgV2ViQ29y
ZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gc2FtcGxlUm90YXRpb24oKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX3NhbXBsZVJvdGF0aW9uOyB9CisgICAgdm9pZCBzZXRGcmFtZVJhdGVXaXRo
UHJlc2V0KGRvdWJsZSwgUmVmUHRyPFdlYkNvcmU6OlZpZGVvUHJlc2V0PikgZmluYWw7CisgICAg
Ym9vbCBwcmVmZXJzUHJlc2V0KFdlYkNvcmU6OlZpZGVvUHJlc2V0JikgZmluYWw7CiAKICNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCiAgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudApA
QCAtMTEwLDEwICsxMDksOSBAQCBwcml2YXRlOgogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNv
cmU6OkltYWdlVHJhbnNmZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAKLSAg
ICBEZXF1ZTxBcHBseUNvbnN0cmFpbnRzSGFuZGxlcj4gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50
c0NhbGxiYWNrczsKKyAgICBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBtX3Nh
bXBsZVJvdGF0aW9uIHsgV2ViQ29yZTo6TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmUg
fTsKICAgICBib29sIG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzUmVhZHkgeyBmYWxzZSB9OwotICAgIGJvb2wgbV9oYXNSZXF1ZXN0ZWRUb0VuZCB7
IGZhbHNlIH07CiAgICAgU3RyaW5nIG1fZXJyb3JNZXNzYWdlOwogICAgIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoU3RyaW5nKT4gbV9jYWxsYmFjazsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRl
eCAwMzNjZDBkOGRmZDkyZDgxMmQ2N2NmNWZiNTdlNWVkMzRiZTc5MTViLi44ZTc1Mzg5MThmNWJh
MGZlZTg5YzU3YjJmZjk3ODZiNTA0NmFlMDdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTM4
LDYgKzM4LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL0RlcHJlY2F0ZWRHbG9iYWxTZXR0aW5ncy5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KICNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaD4KICNpbmNsdWRlIDx3dGYvQXNzZXJ0aW9ucy5o
PgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKQEAgLTE1OCwxNiArMTU5LDEyIEBAIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50CiB7CiAgICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0
KGlkKSkKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUo
c2V0dGluZ3MpKTsKLSAgICBlbHNlIGlmIChhdXRvIHNvdXJjZSA9IG1fdmlkZW9Tb3VyY2VzLmdl
dChpZCkpCi0gICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXVEZNb3Zl
KHNldHRpbmdzKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29u
c3RyYWludHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFN0cmluZyYm
IGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKGF1dG8gc291
cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkKSkKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCksIFdURk1vdmUobWVzc2FnZSkp
OwotICAgIGVsc2UgaWYgKGF1dG8gc291cmNlID0gbV92aWRlb1NvdXJjZXMuZ2V0KGlkKSkKLSAg
ICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3Ry
YWludCksIFdURk1vdmUobWVzc2FnZSkpOwogfQogCiBDYXB0dXJlU291cmNlT3JFcnJvciBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCkBAIC0xOTgsNyArMTk1LDcgQEAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3Jl
YXRlVmlkZW9DYXB0dXJlU28KICAgICAgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yIHsg
IlZpZGVvIGNhcHR1cmUgaW4gR1BVUHJvY2VzcyBpcyBub3QgaW1wbGVtZW50ZWQiX3MgfTsKICNl
bmRpZgogCi0gICAgcmV0dXJuIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZp
Y2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIsIG1fc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
KFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCBXVEZNb3ZlKGhhc2hTYWx0KSwgbV9tYW5h
Z2VyLCBtX3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKSk7CiB9CiAKICNpZiBQTEFURk9STShJ
T1NfRkFNSUxZKQpAQCAtMjEwLDcgKzIwNyw3IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OlZpZGVvRmFjdG9yeTo6c2V0QWN0aXZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2UmCiAK
IENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFj
dG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1cm4g
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsg
fSwgeyB9LCBtX21hbmFnZXIsIGZhbHNlKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJy
b3IoUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSkp
KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IDBkY2E0ZmIzODAzMTAxOThlNGRjZGM0ODViY2FlZjRlZjA4YmQ3
ODcuLmJiNmJlMjAwYzY4ZjE0Njc1MDhjZTUwZDViYjM0YWZlMGEyNjc1ZTAgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNyBAQAorMjAyMS0wMi0xMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgTWFrZSBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIGEgUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIyMTc0NworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxz
LmpzOgorICAgICAgICAoYXN5bmMgd2FpdEZvckhlaWdodCk6CisgICAgICAgIChhc3luYyB3YWl0
Rm9yV2lkdGgpOgorICAgICAgICBVcGRhdGVkIHRvIGZhaWwgaW5zdGVhZCBvZiB0aW1pbmcgb3V0
LgorICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxw
ZXIuanM6CisgICAgICAgIFJlbW92aW5nIG5vIGxvbmdlciBuZWVkZWQgY29kZSB0aGF0IG1hZGUg
aXQgaW1wb3NzaWJsZSB0byBydW4gdGhlIHRlc3RzIGluIGJyb3dzZXIuCisKIDIwMjEtMDItMTEg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1v
dmUgYW5vdGhlciB1c2Ugb2YgRm9udFNlbGVjdG9yIGZyb20gd2l0aGluIENTU0ZvbnRGYWNlCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXREaXNw
bGF5TWVkaWEtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNl
cy9nZXREaXNwbGF5TWVkaWEtdXRpbHMuanMKaW5kZXggOGI0NmMzNzg4M2ZiZDZhNmM2Y2I0NjRj
OTZiZTMxMTUzYThjOTdjMC4uZDMyYTI4ZTY2NGY0NzQ4MWY0NWUzOWVjZjNhNDRmMmU5Mzk2Y2Rj
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0
RGlzcGxheU1lZGlhLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
cmVzb3VyY2VzL2dldERpc3BsYXlNZWRpYS11dGlscy5qcwpAQCAtMjEsMTkgKzIxLDIzIEBAIGFz
eW5jIGZ1bmN0aW9uIGNhbGxHZXREaXNwbGF5TWVkaWEob3B0aW9ucykKIH0KIAogYXN5bmMgZnVu
Y3Rpb24gd2FpdEZvckhlaWdodCh0cmFjaywgdmFsdWUpIHsKLSAgICB3aGlsZSAodHJ1ZSkgewor
ICAgIGxldCBjb3VudGVyID0gMTAwOworICAgIHdoaWxlICgtLWNvdW50ZXIgPiAwKSB7CiAgICAg
ICAgIGNvbnN0IHNldHRpbmdzID0gdHJhY2suZ2V0U2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNl
dHRpbmdzLmhlaWdodCA9PT0gdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CiAgICAg
fQorICAgIGFzc2VydF9ncmVhdGVyX3RoYW4oY291bnRlciwgMCwgIndhaXRGb3JIZWlnaHQiKTsK
IH0KIAogYXN5bmMgZnVuY3Rpb24gd2FpdEZvcldpZHRoKHRyYWNrLCB2YWx1ZSkgewotICAgIHdo
aWxlICh0cnVlKSB7CisgICAgbGV0IGNvdW50ZXIgPSAxMDA7CisgICAgd2hpbGUgKC0tY291bnRl
ciA+IDApIHsKICAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0cmFjay5nZXRTZXR0aW5ncygpOwog
ICAgICAgICBpZiAoc2V0dGluZ3Mud2lkdGggPT09IHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7
CiAgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZl
LCA1MCkpOwogICAgIH0KKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGNvdW50ZXIsIDAsICJ3YWl0
Rm9yV2lkdGgiKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
cmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlh
c3RyZWFtL3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCmluZGV4IGNlMjhjYjZlNWFj
NTVlMzBmMWM0YjJjYzg3NDBjMzhlNjNkMDI4MDYuLjExOGM3YWVhMjYyNzVhNjg5NmMwMzkwNDk4
Y2FjOGVjZGIyODk4ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0v
cmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9t
ZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwpAQCAtMSwxMiArMSw0
IEBACiBmdW5jdGlvbiBnZXRVc2VyTWVkaWEocGVybWlzc2lvbiwgY29uc3RyYWludHMsIHN1Y2Nl
c3NDYWxsYmFjaywgZXJyb3JDYWxsYmFjaykgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikK
LSAgICAgICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHBlcm1pc3Npb24gPT0g
ImFsbG93Iik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBi
ZSBydW4gd2l0aG91dCB0aGUgdGVzdFJ1bm5lciIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLQogICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMKICAg
ICAgICAgICAgICAgICAuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKQogICAgICAgICAgICAgICAg
IC50aGVuKHN1Y2Nlc3NDYWxsYmFjaywgcmVqZWN0KQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>420107</attachid>
            <date>2021-02-12 02:10:12 -0800</date>
            <delta_ts>2021-02-12 02:54:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-221747-20210212111010.patch</filename>
            <type>text/plain</type>
            <size>38159</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcyNzE1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDM1NmQ4MGQyZTc5Nzk3
M2QxOWFhYTAwOWUwODQ2ZWQxMDZkYjU1Ni4uNzZlMjU1OWFlZjY3NGRhZTUyNDUwNTBmNDhmMDQ0
ZTI3YzBiMGMwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIxLTAyLTExICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIEludHJvZHVjZSBpc1ZpZGVvU291cmNl
IHRvIGJlIGFibGUgdG8gZ2V0IHByZXNldHMgZGF0YSBmcm9tIFJlYWx0aW1lVmlkZW9Tb3VyY2Uu
CisgICAgICAgIEV4cG9zZSBwcmVzZXRzIGluIFJlYWx0aW1lVmlkZW9Tb3VyY2UgZm9yIEdQVVBy
b2Nlc3MgdG8gc2VuZCBpdCB0byBXZWJQcm9jZXNzLgorICAgICAgICBSZW1vdmUgbm8gbG9uZ2Vy
IHVzZWQgbV9kZWZhdWx0U2l6ZSBtZW1iZXIuCisgICAgICAgIFVwZGF0ZSBSZWFsdGltZVZpZGVv
U291cmNlIHRvIHNldCBzb21lIG9mIGl0cyBtZW1iZXJzIHdoZW4gaXRzIGNhcHR1cmUgc291cmNl
IGlzIHJlYWR5LAorICAgICAgICBpbmNsdWRpbmcgc2V0dGluZ3MsIHNpemUsIGZyYW1lIHJhdGUg
YW5kIG5hbWUuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U6OnByZXBhcmVUb1Byb2R1
Y2VEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlOjpw
cmVzZXRzRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9Tb3VyY2U6
OndoZW5SZWFkeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRl
b1NvdXJjZS5oOgorCiAyMDIxLTAyLTExICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIGFub3RoZXIgdXNlIG9mIEZvbnRTZWxlY3RvciBm
cm9tIHdpdGhpbiBDU1NGb250RmFjZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2ZWZmNzNiODhmYTdjNTVjMTRjMGJh
Y2IxY2NhNjcxOWQzZWY4NjdmLi5iMTY1NWM4Mzk5ZTg0ZjZjMTFiMTRhZDk1NjdmNGY4NzJmMzIy
ZWI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDIxLTAyLTExICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIFJlbW90ZVJlYWx0aW1lVmlkZW9T
b3VyY2UgYSBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
RXJpYyBDYXJsc29uLgorCisgICAgICAgIEFsbCBjYXB0dXJlIHZpZGVvIHNvdXJjZXMgYXJlIG5v
dyBkZXJpdmluZyBmcm9tIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLgorICAgICAgICBUaGlz
IGFsbG93cyB0byBleHBvc2UgYSBSZWFsdGltZVZpZGVvU291cmNlIHRoYXQgY2FuIGhhbmRsZSBj
aGFuZ2VzIG9mIHJlc29sdXRpb24gYW5kIGZyYW1lIHJhdGUgaW4gc29mdHdhcmUgYXMgbmVlZGVk
LgorICAgICAgICBUaGlzIGFsc28gYWxsb3dzIHRvIGJldHRlciBhbGlnbiBhdWRpbyBhbmQgdmlk
ZW8gc291cmNlcyBvbiBpT1M6IHRoZXJlIHdpbGwgb25seSBiZSBvbmUgcnVubmluZyBzb3VyY2Ug
YXQgYW55IGdpdmVuIHRpbWUuCisgICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisK
KyAgICAgICAgKiBTY3JpcHRzL3dlYmtpdC9tZXNzYWdlcy5weToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGllcyk6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmdlbmVyYXRlUHJlc2V0cyk6
CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lQXVkaW9Tb3VyY2U6OnNldEFzUmVhZHkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90
ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNvdXJj
ZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnNldEFzUmVh
ZHkpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpyZW1vdGVW
aWRlb1NhbXBsZUF2YWlsYWJsZSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U6OnNldEZyYW1lUmF0ZVdpdGhQcmVzZXQpOgorICAgICAgICAoV2ViS2l0OjpSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpwcmVmZXJzUHJlc2V0KToKKyAgICAgICAgKFdlYktpdDo6
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmg6
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0ZhY3Rvcnk6
OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVTb3VyY2Up
OgorCiAyMDIxLTAyLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTcGxpdCBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlIGluIHR3byBhdWRpby1zcGVjaWZp
YyBhbmQgdmlkZW8tc3BlY2lmaWMgY2xhc3NlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDRlMmQ1
NzJlYTI4Mzg1YzA3M2RhNDRkODY5MmJmYTBiNGY1MzliNzEuLmE2Nzc0MjE3NDQ2NmI0ODMxODAy
YjU0MjI1MWE2YjkwMzg0MGMxOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTE5NSw2ICsxOTUs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCBib29sIGlzTW9ja1NvdXJjZSgpIGNvbnN0IHsgcmV0
dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IHsg
cmV0dXJuIGZhbHNlOyB9CiAgICAgdmlydHVhbCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRl
dmljZVR5cGUoKSBjb25zdCB7IHJldHVybiBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpVbmtu
b3duOyB9CisgICAgdmlydHVhbCBib29sIGlzVmlkZW9Tb3VyY2UoKSBjb25zdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIHsgfQog
CkBAIC0zMjIsNiArMzIzLDExIEBAIGlubGluZSB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6Ondo
ZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsCiAgICAgY2FsbGJh
Y2soeyB9KTsKIH0KIAoraW5saW5lIGJvb2wgUmVhbHRpbWVNZWRpYVNvdXJjZTo6aXNWaWRlb1Nv
dXJjZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGZhbHNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKIG5hbWVzcGFjZSBXVEYgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2Uu
Y3BwCmluZGV4IGMwZDQ0ZWI2NjlmMTM4N2E5NjMzYjg1NDgxNjllNzAwN2U4MDcxYzIuLmIyNjhi
MmI1NTI3ZGZlMjUyZTYxZWY0ZTJlOGYzMDZhOTczYjcxMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVv
Q2FwdHVyZVNvdXJjZS5jcHAKQEAgLTU1LDkgKzU1LDYgQEAgdm9pZCBSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZTo6cHJlcGFyZVRvUHJvZHVjZURhdGEoKQogI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpCiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9DYXB0
dXJlRmFjdG9yeSgpLnNldEFjdGl2ZVNvdXJjZSgqdGhpcyk7CiAjZW5kaWYKLQotICAgIGlmIChz
aXplKCkuaXNFbXB0eSgpICYmICFtX2RlZmF1bHRTaXplLmlzRW1wdHkoKSkKLSAgICAgICAgc2V0
U2l6ZShtX2RlZmF1bHRTaXplKTsKIH0KIAogY29uc3QgVmVjdG9yPFJlZjxWaWRlb1ByZXNldD4+
JiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlc2V0cygpCkBAIC02OSw2ICs2NiwxMyBA
QCBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlOjpwcmVzZXRzKCkKICAgICByZXR1cm4gbV9wcmVzZXRzOwogfQogCitWZWN0b3I8VmlkZW9Q
cmVzZXREYXRhPiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJlc2V0c0RhdGEoKQorewor
ICAgIHJldHVybiBXVEY6Om1hcChwcmVzZXRzKCksIFtdKGF1dG8mIHByZXNldCkgLT4gVmlkZW9Q
cmVzZXREYXRhIHsKKyAgICAgICAgcmV0dXJuIHsgcHJlc2V0LT5zaXplLCBwcmVzZXQtPmZyYW1l
UmF0ZVJhbmdlcyB9OworICAgIH0pOworfQorCiB2b2lkIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291
cmNlOjpzZXRTdXBwb3J0ZWRQcmVzZXRzKFZlY3RvcjxWaWRlb1ByZXNldERhdGE+JiYgcHJlc2V0
RGF0YSkKIHsKICAgICBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4gcHJlc2V0czsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0
dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IDQ0NTIxYzViZjliZmQwYmEyMjBkNmZhNjc1YTdm
MGQzZWU4MDdmMzAuLjI3NzIxOWUxZWEzNmYwNDExYTFhM2U2NjdhMDVjMjRjZTcwYjM4NzUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtMzgsNyArMzgsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIEltYWdlVHJhbnNmZXJTZXNzaW9uVlQ7CiAKLWNsYXNzIFJl
YWx0aW1lVmlkZW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2Ugewor
Y2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+UmVhbHRpbWVWaWRl
b0NhcHR1cmVTb3VyY2UoKTsKIApAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgdmlydHVh
bCBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVSb3RhdGlvbigpIGNvbnN0IHsgcmV0
dXJuIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOyB9CiAKICAgICBkb3VibGUgb2Jz
ZXJ2ZWRGcmFtZVJhdGUoKSBjb25zdCB7IHJldHVybiBtX29ic2VydmVkRnJhbWVSYXRlOyB9Cisg
ICAgVmVjdG9yPFZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0c0RhdGEoKTsKIAogcHJvdGVjdGVkOgog
ICAgIFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlKFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGlk
LCBTdHJpbmcmJiBoYXNoU2FsdCk7CkBAIC02OSw4ICs3MCw2IEBAIHByb3RlY3RlZDoKIAogICAg
IHZvaWQgdXBkYXRlQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
KTsKIAotICAgIHZvaWQgc2V0RGVmYXVsdFNpemUoY29uc3QgSW50U2l6ZSYgc2l6ZSkgeyBtX2Rl
ZmF1bHRTaXplID0gc2l6ZTsgfQotCiAgICAgdm9pZCBkaXNwYXRjaE1lZGlhU2FtcGxlVG9PYnNl
cnZlcnMoTWVkaWFTYW1wbGUmKTsKICAgICBjb25zdCBWZWN0b3I8SW50U2l6ZT4mIHN0YW5kYXJk
VmlkZW9TaXplcygpOwogCkBAIC05MSw3ICs5MCw2IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJl
ZjxWaWRlb1ByZXNldD4+IG1fcHJlc2V0czsKICAgICBEZXF1ZTxkb3VibGU+IG1fb2JzZXJ2ZWRG
cmFtZVRpbWVTdGFtcHM7CiAgICAgZG91YmxlIG1fb2JzZXJ2ZWRGcmFtZVJhdGUgeyAwIH07Ci0g
ICAgSW50U2l6ZSBtX2RlZmF1bHRTaXplOwogfTsKIAogc3RydWN0IFNpemVBbmRGcmFtZVJhdGUg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAxNWUyMmE1OGExYzI4MzVhZDA0MGU5OGFiOTk3
MTdhZjc5OGU1ZTk2Li5kMTY2YzhiZjVmZTk4NDAyNzZhMmE4ODQ3Yjc2N2Q1NDBjZWI0N2Q5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZp
ZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNTAsNiArNTAsMTcgQEAgUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6flJlYWx0aW1lVmlkZW9Tb3VyY2UoKQogICAgIG1fc291cmNlLT5yZW1vdmVPYnNlcnZl
cigqdGhpcyk7CiB9CiAKK3ZvaWQgUmVhbHRpbWVWaWRlb1NvdXJjZTo6d2hlblJlYWR5KENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykKK3sKKyAgICBtX3NvdXJjZS0+
d2hlblJlYWR5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8gbWVzc2FnZSkgbXV0YWJsZSB7CisgICAgICAgIHNl
dE5hbWUoU3RyaW5nIHsgbV9zb3VyY2UtPm5hbWUoKSB9KTsKKyAgICAgICAgbV9jdXJyZW50U2V0
dGluZ3MgPSBtX3NvdXJjZS0+c2V0dGluZ3MoKTsKKyAgICAgICAgc2V0U2l6ZShtX3NvdXJjZS0+
c2l6ZSgpKTsKKyAgICAgICAgc2V0RnJhbWVSYXRlKG1fc291cmNlLT5mcmFtZVJhdGUoKSk7Cisg
ICAgICAgIGNhbGxiYWNrKFdURk1vdmUobWVzc2FnZSkpOworICAgIH0pOworfQorCiB2b2lkIFJl
YWx0aW1lVmlkZW9Tb3VyY2U6OnN0YXJ0UHJvZHVjaW5nRGF0YSgpCiB7CiAgICAgbV9zb3VyY2Ut
PnN0YXJ0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggMmIyM2ZlM2NiMThkMGNlM2MzMWE1Njk2
NmI2YjRlMmJkOThhMGI5Yi4uMDYyYWE4ZmI1ZDhlODgzY2UzM2FiNzVlMWQyYzIxMDdhNzY4YzZj
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDAsMTEgKzQwLDEzIEBAIGNsYXNzIFJlYWx0aW1l
VmlkZW9Tb3VyY2UgZmluYWwKIHB1YmxpYzoKICAgICBzdGF0aWMgUmVmPFJlYWx0aW1lVmlkZW9T
b3VyY2U+IGNyZWF0ZShSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYgc291cmNlKSB7
IHJldHVybiBhZG9wdFJlZigqbmV3IFJlYWx0aW1lVmlkZW9Tb3VyY2UoV1RGTW92ZShzb3VyY2Up
KSk7IH0KIAorICAgIFZlY3RvcjxWaWRlb1ByZXNldERhdGE+IHByZXNldHNEYXRhKCkgeyByZXR1
cm4gbV9zb3VyY2UtPnByZXNldHNEYXRhKCk7IH0KKwogcHJpdmF0ZToKLSAgICBleHBsaWNpdCBS
ZWFsdGltZVZpZGVvU291cmNlKFJlZjxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZT4mJik7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgZXhwbGljaXQgUmVhbHRpbWVWaWRlb1NvdXJjZShSZWY8UmVhbHRp
bWVWaWRlb0NhcHR1cmVTb3VyY2U+JiYpOwogICAgIH5SZWFsdGltZVZpZGVvU291cmNlKCk7CiAK
LSAgICAvLyBSZWFsdGltZU1lZGlhU2lvdXJjZQorICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UK
ICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFsOwogICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoKSBmaW5hbDsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShPcHRp
b25hbDxpbnQ+IHdpZHRoLCBPcHRpb25hbDxpbnQ+IGhlaWdodCwgT3B0aW9uYWw8ZG91YmxlPiBm
cmFtZVJhdGUpIGZpbmFsOwpAQCAtNjAsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIHZvaWQgbW9u
aXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKSBmaW5hbCB7IG1f
c291cmNlLT5tb25pdG9yT3JpZW50YXRpb24obm90aWZpZXIpOyB9CiAgICAgYm9vbCBpbnRlcnJ1
cHRlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fc291cmNlLT5pbnRlcnJ1cHRlZCgpOyB9CiAg
ICAgYm9vbCBpc1NhbWVBcyhSZWFsdGltZU1lZGlhU291cmNlJiBzb3VyY2UpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIHRoaXMgPT0gJnNvdXJjZSB8fCBtX3NvdXJjZS5wdHIoKSA9PSAmc291cmNlOyB9
CisgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBm
aW5hbDsKKyAgICBib29sIGlzVmlkZW9Tb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAKICAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlOjpPYnNlcnZlcgogICAgIHZvaWQgc291
cmNlTXV0ZWRDaGFuZ2VkKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1Njcmlw
dHMvd2Via2l0L21lc3NhZ2VzLnB5IGIvU291cmNlL1dlYktpdC9TY3JpcHRzL3dlYmtpdC9tZXNz
YWdlcy5weQppbmRleCBhMzYxNzdlZTBlMmJlYmFkZGIxOTJkM2IzN2I1NGMzYjE1M2IxYjlhLi40
OWVmNGRmZTQ5MDhkYTE1YWQwYjhjYmMxNjVkODRhNmVjYjU4ZTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1NjcmlwdHMvd2Via2l0L21lc3NhZ2VzLnB5CisrKyBiL1NvdXJjZS9XZWJLaXQv
U2NyaXB0cy93ZWJraXQvbWVzc2FnZXMucHkKQEAgLTcyNyw2ICs3MjcsNyBAQCBkZWYgaGVhZGVy
c19mb3JfdHlwZSh0eXBlKToKICAgICAgICAgJ1dlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkJzogWyc8V2ViQ29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAg
ICAgICAgJ1dlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlJzogWyc8V2Vi
Q29yZS9OZXR3b3JrU3RvcmFnZVNlc3Npb24uaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OlVzZWRM
ZWdhY3lUTFMnOiBbJzxXZWJDb3JlL1Jlc291cmNlUmVzcG9uc2VCYXNlLmg+J10sCisgICAgICAg
ICdXZWJDb3JlOjpWaWRlb1ByZXNldERhdGEnOiBbJzxXZWJDb3JlL1ZpZGVvUHJlc2V0Lmg+J10s
CiAgICAgICAgICdXZWJDb3JlOjpWaWV3cG9ydEF0dHJpYnV0ZXMnOiBbJzxXZWJDb3JlL1ZpZXdw
b3J0QXJndW1lbnRzLmg+J10sCiAgICAgICAgICdXZWJDb3JlOjpXZWJHTExvYWRQb2xpY3knOiBb
JzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKICAgICAgICAgJ1dlYkNvcmU6OldpbGxD
b250aW51ZUxvYWRpbmcnOiBbJzxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4nXSwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMjFmNmNmN2Q4MmVhYzNiMTAxZjczMDk5NjNkZGVm
ZDc3MGY4NTQ5Zi4uZDk1NjM2N2Y1MWQzMzk1NzJjOGVkNWFiZjIxZWMxMGU2NDJlOWE1NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTQwLDYgKzQwLDcgQEAKICNpbmNsdWRlIDxX
ZWJDb3JlL0ltYWdlUm90YXRpb25TZXNzaW9uVlQuaD4KICNpbmNsdWRlIDxXZWJDb3JlL01lZGlh
Q29uc3RyYWludHMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9Tb3VyY2UuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1JlbW90ZVZpZGVvU2FtcGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdWRp
b0J1ZmZlckxpc3QuaD4KICNpbmNsdWRlIDx3dGYvVW5pcXVlUmVmLmg+CkBAIC0yMzgsMTAgKzIz
OSwxMCBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eSgpCiAgICAgbV9jb25uZWN0aW9uUHJveHktPnJlbW92ZU1lc3NhZ2VSZWNlaXZl
cihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVy
TmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYg
aGFzaFNhbHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCBzdWNjZWVkZWQsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWlu
dHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQs
IGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNhbHQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMmIG1lZGlhQ29uc3RyYWludHMsIENyZWF0ZVNvdXJjZUNhbGxiYWNrJiYg
Y29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb25Qcm94eS0+d2lsbFN0
YXJ0Q2FwdHVyZShkZXZpY2UudHlwZSgpKSkKLSAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKGZhbHNlLCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzIHsgfSwgeyB9KTsKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlLCAiUmVxdWVzdCBpcyBub3QgYWxsb3dlZCJfcywgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRp
bmdzIHsgfSwgeyB9LCB7IH0sIHsgfSwgMCk7CiAKICAgICBhdXRvKiBjb25zdHJhaW50cyA9IG1l
ZGlhQ29uc3RyYWludHMuaXNWYWxpZCA/ICZtZWRpYUNvbnN0cmFpbnRzIDogbnVsbHB0cjsKIApA
QCAtMjY3LDggKzI2OCwxMiBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaQogCiAgICAgYm9vbCBz
dWNjZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CiAgICAgU3RyaW5nIGludmFsaWRDb25zdHJhaW50
czsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3Mgc2V0dGluZ3M7Ci0g
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzOworICAgIFZlY3RvcjxWaWRlb1By
ZXNldERhdGE+IHByZXNldHM7CisgICAgSW50U2l6ZSBzaXplOworICAgIGRvdWJsZSBmcmFtZVJh
dGUgPSAwOworCiAgICAgaWYgKHNvdXJjZU9yRXJyb3IpIHsKICAgICAgICAgYXV0byBzb3VyY2Ug
PSBzb3VyY2VPckVycm9yLnNvdXJjZSgpOwogI2lmICFSRUxFQVNFX0xPR19ESVNBQkxFRApAQCAt
Mjc2LDExICsyODEsMjAgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWkKICNlbmRpZgogICAgICAg
ICBzZXR0aW5ncyA9IHNvdXJjZS0+c2V0dGluZ3MoKTsKICAgICAgICAgY2FwYWJpbGl0aWVzID0g
c291cmNlLT5jYXBhYmlsaXRpZXMoKTsKKyAgICAgICAgaWYgKHNvdXJjZS0+aXNWaWRlb1NvdXJj
ZSgpKSB7CisgICAgICAgICAgICBhdXRvJiB2aWRlb1NvdXJjZSA9IHN0YXRpY19jYXN0PFJlYWx0
aW1lVmlkZW9Tb3VyY2UmPihzb3VyY2UuZ2V0KCkpOworICAgICAgICAgICAgcHJlc2V0cyA9IHZp
ZGVvU291cmNlLnByZXNldHNEYXRhKCk7CisgICAgICAgICAgICBzaXplID0gdmlkZW9Tb3VyY2Uu
c2l6ZSgpOworICAgICAgICAgICAgZnJhbWVSYXRlID0gdmlkZW9Tb3VyY2UuZnJhbWVSYXRlKCk7
CisgICAgICAgIH0KKwogICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkpOwog
ICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBtYWtlVW5pcXVlPFNvdXJjZVByb3h5PihpZCwgbV9j
b25uZWN0aW9uUHJveHktPmNvbm5lY3Rpb24oKSwgV1RGTW92ZShzb3VyY2UpKSk7CiAgICAgfSBl
bHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JFcnJvci5l
cnJvck1lc3NhZ2UpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKHN1Y2NlZWRlZCwgaW52YWxpZENv
bnN0cmFpbnRzLCBXVEZNb3ZlKHNldHRpbmdzKSwgV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKKwor
CisgICAgY29tcGxldGlvbkhhbmRsZXIoc3VjY2VlZGVkLCBpbnZhbGlkQ29uc3RyYWludHMsIFdU
Rk1vdmUoc2V0dGluZ3MpLCBXVEZNb3ZlKGNhcGFiaWxpdGllcyksIFdURk1vdmUocHJlc2V0cyks
IHNpemUsIGZyYW1lUmF0ZSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6c3RhcnRQcm9kdWNpbmdEYXRhKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQpA
QCAtMzAwLDkgKzMxNCw5IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6ZW5k
KFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQogICAgIG1fcHJveGllcy5yZW1vdmUo
aWQpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNhcGFiaWxpdGll
cyhSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmlsaXRp
ZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKLSAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFi
aWxpdGllczsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGll
czsKICAgICBpZiAoYXV0byogcHJveHkgPSBtX3Byb3hpZXMuZ2V0KGlkKSkKICAgICAgICAgY2Fw
YWJpbGl0aWVzID0gcHJveHktPnNvdXJjZSgpLmNhcGFiaWxpdGllcygpOwogICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdURk1vdmUoY2FwYWJpbGl0aWVzKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgK
aW5kZXggZTk2NmQ1ZGJiMjMyMzU1YmJiNWMwZmJhYjBhMmM1ZjMwYmU1NzI1Ny4uODA3Y2U4Zjcw
ZTg2MDc2M2U3OGM3NjExNTJkYzI2ODZhYjEyMzgyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
aApAQCAtMzgsNiArMzgsNyBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiBjbGFzcyBQbGF0Zm9y
bU1lZGlhU2Vzc2lvbk1hbmFnZXI7CitzdHJ1Y3QgVmlkZW9QcmVzZXREYXRhOwogfQogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKQEAgLTcwLDcgKzcxLDggQEAgcHJpdmF0ZToKICAgICAvLyBJUEM6Ok1l
c3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9u
JiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9y
Q2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYgZGV2aWNlSUQsIFN0cmlu
ZyYmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmJik+JiYpOworICAgIHVzaW5nIENyZWF0ZVNvdXJjZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sIHN1Y2NlZWRlZCwgU3RyaW5nIGludmFsaWRDb25z
dHJhaW50cywgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiwgVmVjdG9yPFdlYkNvcmU6OlZpZGVv
UHJlc2V0RGF0YT4mJiwgV2ViQ29yZTo6SW50U2l6ZSwgZG91YmxlKT47CisgICAgdm9pZCBjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2Um
IGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIENy
ZWF0ZVNvdXJjZUNhbGxiYWNrJiYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lkIHN0b3BQcm9kdWNp
bmdEYXRhKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKICAgICB2b2lk
IGVuZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCAyOGU5Mjk5MTJkNzk4NDA4YzQ3
ZWQ0OTBjZTgxMzU4MjE5MzlmMjIxLi41OTEzOTg2NzhiMTFhMDNhMjdiYmYxZGQyOWIyNGM5Y2Rm
ZTBiNGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAg
LTI0LDcgKzI0LDcgQEAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiBtZXNzYWdlcyAtPiBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IE5vdFJlZkNvdW50ZWQgewotICAgIENyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2Us
IFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3Ry
YWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncywgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIEFzeW5jCisgICAgQ3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGRldmlj
ZSwgU3RyaW5nIGhhc2hTYWx0LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25z
dHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cywgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzLCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgVmVjdG9yPFdlYkNvcmU6
OlZpZGVvUHJlc2V0RGF0YT4gcHJlc2V0cywgV2ViQ29yZTo6SW50U2l6ZSBzaXplLCBkb3VibGUg
ZnJhbWVSYXRlKSBBc3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCkKICAgICBFbmQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5k
ZXggMTQyMDUxMTdkMDYwMmM2NTdlNjM3OGM1YzYzMjZmNWNmYzQxYjE4YS4uODZkZjk3NjJmZjcy
YjI5MTQwZWUxZGMzNTFmNmIzODNiMTQwNjQ5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApA
QCAtNzEsMTIgKzcxLDExIEBAIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6OlJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpCiAKIHZvaWQgUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQogewotICAgIGNv
bm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURIYXNoU2FsdCgpLCBtX2NvbnN0
cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKV0oYm9vbCBzdWNj
ZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYmIGNhcGFi
aWxpdGllcykgeworICAgIGNvbm5lY3Rpb24oKS0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWRlbnRpZmllcigpLCBtX2RldmljZSwgZGV2aWNlSURI
YXNoU2FsdCgpLCBtX2NvbnN0cmFpbnRzKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVm
KCp0aGlzKV0oYm9vbCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0
aW5ncywgYXV0byYmIGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CiAgICAgICAg
IGlmICghc3VjY2VlZGVkKSB7CiAgICAgICAgICAgICBkaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNz
YWdlKSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgc2V0TmFtZShT
dHJpbmcgeyBzZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOwogICAgICAgICBzZXRTZXR0aW5n
cyhXVEZNb3ZlKHNldHRpbmdzKSk7CiAgICAgICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNh
cGFiaWxpdGllcykpOwogICAgICAgICBzZXRBc1JlYWR5KCk7CkBAIC0xMTIsNyArMTExLDEwIEBA
IHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1l
c3NhZ2UpCiAKIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6c2V0QXNSZWFkeSgpCiB7
CisgICAgQVNTRVJUKCFtX2lzUmVhZHkpOwogICAgIG1faXNSZWFkeSA9IHRydWU7CisKKyAgICBz
ZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKICAgICBpZiAo
bV9jYWxsYmFjaykKICAgICAgICAgbV9jYWxsYmFjayh7IH0pOwogfQpAQCAtMjA4LDYgKzIxMCw3
IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25E
aWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlvCiAgICAgICAgIHJldHVybjsKIAogICAgIG1fbWFu
YWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rp
b24oKnRoaXMpOworICAgIG1faXNSZWFkeSA9IGZhbHNlOwogICAgIGNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKCk7CiAgICAgLy8gRklYTUU6IFdlIHNob3VsZCB1cGRhdGUgdGhlIHRyYWNrIGFjY29y
ZGluZyBjdXJyZW50IHNldHRpbmdzLgogICAgIGlmIChpc1Byb2R1Y2luZ0RhdGEoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlLmNwcAppbmRleCBjNGU4MDVjNmU4Njg2ODk1MTk2ODYxNzUzYzUwOTM2MjBi
YzBkMWQ3Li42OTg3NDEzMWNjZGYyNTQwMzIwNjAxNWM0OTE4ZGQ5MWJlOTI5ZmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00Niw3ICs0Niw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewog
dXNpbmcgbmFtZXNwYWNlIFBBTDsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCi1SZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0
IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQorUmVmPFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiB7CiAg
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3Ry
YWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKSk7CiAgICAgbWFuYWdlci5hZGRWaWRlb1NvdXJjZShzb3VyY2Uu
Y29weVJlZigpKTsKQEAgLTU1LDcgKzU1LDcgQEAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJgogfQog
CiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYm
IG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdl
ciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQotICAgIDogUmVhbHRpbWVNZWRpYVNv
dXJjZShSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgU3Ry
aW5nOjpudW1iZXIoaWRlbnRpZmllci50b1VJbnQ2NCgpKSwgV1RGTW92ZShoYXNoU2FsdCkpCisg
ICAgOiBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZShXVEZNb3ZlKG5hbWUpLCBTdHJpbmc6Om51
bWJlcihpZGVudGlmaWVyLnRvVUludDY0KCkpLCBXVEZNb3ZlKGhhc2hTYWx0KSkKICAgICAsIG1f
aWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9tYW5hZ2VyKG1hbmFnZXIpCiAgICAgLCBt
X2RldmljZShkZXZpY2UpCkBAIC03MSwxNyArNzEsMjMgQEAgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmkKIAogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZSgpCiB7Ci0gICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1fZGV2aWNlLCBkZXZpY2VJREhh
c2hTYWx0KCksIG1fY29uc3RyYWludHMpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYo
KnRoaXMpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0byYmIHNldHRp
bmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzKSB7CisgICAgY29ubmVjdGlvbigpLT5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZGVudGlmaWVyKCksIG1f
ZGV2aWNlLCBkZXZpY2VJREhhc2hTYWx0KCksIG1fY29uc3RyYWludHMpLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpXShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVz
c2FnZSwgYXV0byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYgcHJlc2V0
cywgYXV0byBzaXplLCBhdXRvIGZyYW1lUmF0ZSkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghc3Vj
Y2VlZGVkKSB7CiAgICAgICAgICAgICBkaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CiAg
ICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAgc2V0TmFtZShTdHJpbmcgeyBz
ZXR0aW5ncy5sYWJlbCgpLnN0cmluZygpIH0pOworCisgICAgICAgIGlmIChtX3Nob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCisgICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1
cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgqdGhpcyk7CisKKyAgICAgICAgc2V0
U2l6ZShzaXplKTsKKyAgICAgICAgc2V0RnJhbWVSYXRlKGZyYW1lUmF0ZSk7CisKICAgICAgICAg
c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwogICAgICAgICBzZXRDYXBhYmlsaXRpZXMo
V1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKKyAgICAgICAgc2V0U3VwcG9ydGVkUHJlc2V0cyhXVEZN
b3ZlKHByZXNldHMpKTsKKwogICAgICAgICBzZXRBc1JlYWR5KCk7Ci0gICAgICAgIGlmIChtX3No
b3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCi0gICAgICAgICAgICBXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVudCgqdGhpcyk7CiAgICAg
fSk7CiB9CiAKQEAgLTExMywyMyArMTE5LDE1IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6ZGlkRmFpbChTdHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAKIHZvaWQgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTo6c2V0QXNSZWFkeSgpCiB7CisgICAgQVNTRVJUKCFtX2lzUmVhZHkpOwog
ICAgIG1faXNSZWFkeSA9IHRydWU7CisKKyAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3Mu
bGFiZWwoKS5zdHJpbmcoKSB9KTsKKwogICAgIGlmIChtX2NhbGxiYWNrKQogICAgICAgICBtX2Nh
bGxiYWNrKHsgfSk7CiB9CiAKLVJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpjbG9uZSgpCi17Ci0gICAgYXV0byBpZGVudGlmaWVyID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCk7Ci0gICAgaWYgKCFjb25uZWN0aW9uKCkt
PnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNsb25lIHsgbV9p
ZGVudGlmaWVyLCBpZGVudGlmaWVyIH0sIDApKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0KLSAg
ICBhdXRvIGNsb25lU291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlKGlkZW50aWZpZXIsIG1fZGV2aWNlLCAmbV9jb25zdHJhaW50cywgU3RyaW5nIHsgbV9zZXR0
aW5ncy5sYWJlbCgpLnN0cmluZygpIH0sIGRldmljZUlESGFzaFNhbHQoKSwgbV9tYW5hZ2VyLCBt
X3Nob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsKLSAgICBjbG9uZVNvdXJjZS0+c2V0U2V0dGlu
Z3MoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHsgbV9zZXR0aW5ncyB9KTsKLSAgICBtX21h
bmFnZXIuYWRkVmlkZW9Tb3VyY2UoY2xvbmVTb3VyY2UuY29weVJlZigpKTsKLSAgICByZXR1cm4g
Y2xvbmVTb3VyY2U7Ci19Ci0KIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6c2V0Q2Fw
YWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMp
CiB7CiAgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7CkBAIC0xNjIs
NyArMTYwLDIwIEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6cmVtb3RlVmlkZW9T
YW1wbGVBdmFpbGFibGUoUmVtb3RlVmlkZW9TYW1wbGUmJiByCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2Ft
cGxlUmVmKTsKKyAgICBpZiAobV9zYW1wbGVSb3RhdGlvbiAhPSBzYW1wbGVSZWYtPnZpZGVvUm90
YXRpb24oKSkgeworICAgICAgICBtX3NhbXBsZVJvdGF0aW9uID0gc2FtcGxlUmVmLT52aWRlb1Jv
dGF0aW9uKCk7CisKKyAgICAgICAgYXV0byBzaXplID0gdGhpcy0+c2l6ZSgpOworICAgICAgICBp
ZiAobV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCB8
fCBtX3NhbXBsZVJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodCkg
eworICAgICAgICAgICAgc2l6ZSA9IHNpemUudHJhbnNwb3NlZFNpemUoKTsKKyAgICAgICAgICAg
IG1fc2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKKyAgICAgICAgICAgIG1fc2V0dGlu
Z3Muc2V0SGVpZ2h0KHNpemUuaGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIHNjaGVkdWxl
RGVmZXJyZWRUYXNrKFt0aGlzXSB7CisgICAgICAgICAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5n
ZU9ic2VydmVycyh7IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6V2lkdGgsIFJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6RmxhZzo6SGVpZ2h0IH0pOworICAgICAgICB9KTsK
KyAgICB9CisgICAgZGlzcGF0Y2hNZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKCpzYW1wbGVSZWYpOwog
fQogCiBJUEM6OkNvbm5lY3Rpb24qIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNvbm5lY3Rp
b24oKQpAQCAtMTk2LDI3ICsyMDcsNiBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQogICAgIHJl
dHVybiBtX2NhcGFiaWxpdGllczsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
OjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0cmFpbnRzLCBB
cHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIG1fcGVu
ZGluZ0FwcGx5Q29uc3RyYWludHNDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICAvLyBGSVhNRTogVXNlIHNlbmRBc3luY1dpdGhSZXBseS4KLSAgICBjb25u
ZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkFw
cGx5Q29uc3RyYWludHMgeyBtX2lkZW50aWZpZXIsIGNvbnN0cmFpbnRzIH0sIDApOwotfQotCi12
b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQo
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCi17Ci0gICAgc2V0U2V0dGlu
Z3MoV1RGTW92ZShzZXR0aW5ncykpOwotCi0gICAgYXV0byBjYWxsYmFjayA9IG1fcGVuZGluZ0Fw
cGx5Q29uc3RyYWludHNDYWxsYmFja3MudGFrZUZpcnN0KCk7Ci0gICAgY2FsbGJhY2soeyB9KTsK
LX0KLQotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjphcHBseUNvbnN0cmFpbnRzRmFp
bGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIGVycm9yTWVzc2FnZSkKLXsK
LSAgICBhdXRvIGNhbGxiYWNrID0gbV9wZW5kaW5nQXBwbHlDb25zdHJhaW50c0NhbGxiYWNrcy50
YWtlRmlyc3QoKTsKLSAgICBjYWxsYmFjayhBcHBseUNvbnN0cmFpbnRzRXJyb3IgeyBXVEZNb3Zl
KGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkgfSk7Ci19Ci0KIHZvaWQg
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6aGFzRW5kZWQoKQogewogICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6RW5kIHsgbV9p
ZGVudGlmaWVyIH0sIDApOwpAQCAtMjM1LDI0ICsyMjUsNDYgQEAgdm9pZCBSZW1vdGVSZWFsdGlt
ZVZpZGVvU291cmNlOjpjYXB0dXJlRmFpbGVkKCkKICAgICBoYXNFbmRlZCgpOwogfQogCi12b2lk
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OnN0b3BCZWluZ09ic2VydmVkKCkKK3ZvaWQgUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Z2VuZXJhdGVQcmVzZXRzKCkKK3sKKyAgICBBU1NFUlQo
bV9pc1JlYWR5KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpzZXRGcmFt
ZVJhdGVXaXRoUHJlc2V0KGRvdWJsZSBmcmFtZVJhdGUsIFJlZlB0cjxWaWRlb1ByZXNldD4gcHJl
c2V0KQogewotICAgIG1faGFzUmVxdWVzdGVkVG9FbmQgPSB0cnVlOwotICAgIGNvbm5lY3Rpb24o
KS0+c2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6UmVxdWVzdFRv
RW5kIHsgbV9pZGVudGlmaWVyIH0sIDApOworICAgIE1lZGlhQ29uc3RyYWludHMgY29uc3RyYWlu
dHM7CisKKyAgICBjb25zdHJhaW50cy5pc1ZhbGlkID0gdHJ1ZTsKKyAgICBEb3VibGVDb25zdHJh
aW50IGZyYW1lUmF0ZUNvbnN0cmFpbnQoImZyYW1lUmF0ZSJfcywgTWVkaWFDb25zdHJhaW50VHlw
ZTo6RnJhbWVSYXRlKTsKKyAgICBmcmFtZVJhdGVDb25zdHJhaW50LnNldElkZWFsKGZyYW1lUmF0
ZSk7CisgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3Ry
YWludFR5cGU6OkZyYW1lUmF0ZSwgZnJhbWVSYXRlQ29uc3RyYWludCk7CisKKyAgICBpZiAocHJl
c2V0KSB7CisgICAgICAgIEludENvbnN0cmFpbnQgd2lkdGhDb25zdHJhaW50KCJ3aWR0aCJfcywg
TWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgpOworICAgICAgICB3aWR0aENvbnN0cmFpbnQuc2V0
SWRlYWwocHJlc2V0LT5zaXplLndpZHRoKCkpOworICAgICAgICBjb25zdHJhaW50cy5tYW5kYXRv
cnlDb25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6V2lkdGgsIHdpZHRoQ29uc3Ry
YWludCk7CisKKyAgICAgICAgSW50Q29uc3RyYWludCBoZWlnaHRDb25zdHJhaW50KCJoZWlnaHQi
X3MsIE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCk7CisgICAgICAgIGhlaWdodENvbnN0cmFp
bnQuc2V0SWRlYWwocHJlc2V0LT5zaXplLmhlaWdodCgpKTsKKyAgICAgICAgY29uc3RyYWludHMu
bWFuZGF0b3J5Q29uc3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkhlaWdodCwgaGVp
Z2h0Q29uc3RyYWludCk7CisgICAgfQorCisgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpBcHBseUNvbnN0cmFpbnRzIHsgbV9pZGVu
dGlmaWVyLCBjb25zdHJhaW50cyB9LCAwKTsKIH0KIAotdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlOjpyZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImIG9ic2VydmVyKQorYm9vbCBSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlOjpwcmVmZXJzUHJlc2V0KFZpZGVvUHJlc2V0JikKIHsKLSAgICBzdG9w
QmVpbmdPYnNlcnZlZCgpOworICAgIHJldHVybiB0cnVlOwogfQogCiAjaWYgRU5BQkxFKEdQVV9Q
Uk9DRVNTKQogdm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpncHVQcm9jZXNzQ29ubmVj
dGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKIHsKICAgICBBU1NFUlQobV9zaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKLSAgICBpZiAoaXNFbmRlZCgpIHx8IG1faGFzUmVxdWVz
dGVkVG9FbmQpCisgICAgaWYgKGlzRW5kZWQoKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgbV9p
c1JlYWR5ID0gZmFsc2U7CiAgICAgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICAvLyBG
SVhNRTogV2Ugc2hvdWxkIHVwZGF0ZSB0aGUgdHJhY2sgYWNjb3JkaW5nIGN1cnJlbnQgc2V0dGlu
Z3MuCiAgICAgaWYgKGlzUHJvZHVjaW5nRGF0YSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXgg
NDA4NzJiOWJiOTM5YzlmNGU3ZGZiNWIyNGQ5ZGI2ODkxODJkNDIxMS4uMzljMTdlZWU4MGMyYjAz
OTIwZDU0NzJlMmY1YmNhZTJiODQzYTc4ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC0yOSw4
ICsyOSw4IEBACiAKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgotI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRp
YVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmg+CiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CiAKIG5hbWVzcGFjZSBJUEMgewpAQCAtNDgsMTMgKzQ4LDEz
IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjsK
IAotY2xhc3MgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlCitjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGlj
IFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlCiAjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQogICAgICwgcHVibGljIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKICNlbmRpZgog
ewogcHVibGljOgotICAgIHN0YXRpYyBSZWY8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICBz
dGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29u
c3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOwogICAgIH5SZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlKCk7CiAKICAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CkBAIC02
Miw5ICs2Miw2IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogCi0gICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
U3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKLSAgICB2
b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3Ry
aW5nJiYgZXJyb3JNZXNzYWdlKTsKLQogICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsKICAgICB2
b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKIApAQCAtNzMsMjIgKzcwLDI0IEBAIHB1YmxpYzoK
IHByaXZhdGU6CiAgICAgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNv
bnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBo
YXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MpOwogCi0gICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIC8vIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZpbmFs
OwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEoKSBmaW5hbDsKICAgICBib29sIGlzQ2FwdHVy
ZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGJlZ2luQ29u
ZmlndXJhdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZp
bmFsIHsgfQogICAgIGJvb2wgc2V0U2hvdWxkQXBwbHlSb3RhdGlvbihib29sIC8qIHNob3VsZEFw
cGx5Um90YXRpb24gKi8pIGZpbmFsOwotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmlu
YWw7Ci0gICAgdm9pZCByZXF1ZXN0VG9FbmQoT2JzZXJ2ZXImKSBmaW5hbDsKLSAgICB2b2lkIHN0
b3BCZWluZ09ic2VydmVkKCkgZmluYWw7CiAgICAgdm9pZCBoYXNFbmRlZCgpIGZpbmFsOwogICAg
IGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBm
aW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWw7CiAgICAgdm9pZCB3
aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKSBmaW5hbDsKICAgICBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5h
bCB7IHJldHVybiBtX2RldmljZS50eXBlKCk7IH0KLSAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY2xvbmUoKSBmaW5hbDsKKworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lVmlkZW9DYXB0dXJl
U291cmNlCisgICAgdm9pZCBnZW5lcmF0ZVByZXNldHMoKSBmaW5hbDsKKyAgICBXZWJDb3JlOjpN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbiBzYW1wbGVSb3RhdGlvbigpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIG1fc2FtcGxlUm90YXRpb247IH0KKyAgICB2b2lkIHNldEZyYW1lUmF0ZVdpdGhQcmVz
ZXQoZG91YmxlLCBSZWZQdHI8V2ViQ29yZTo6VmlkZW9QcmVzZXQ+KSBmaW5hbDsKKyAgICBib29s
IHByZWZlcnNQcmVzZXQoV2ViQ29yZTo6VmlkZW9QcmVzZXQmKSBmaW5hbDsKIAogI2lmIEVOQUJM
RShHUFVfUFJPQ0VTUykKICAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CkBAIC0x
MTAsMTAgKzEwOSw5IEBAIHByaXZhdGU6CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKIAotICAgIERl
cXVlPEFwcGx5Q29uc3RyYWludHNIYW5kbGVyPiBtX3BlbmRpbmdBcHBseUNvbnN0cmFpbnRzQ2Fs
bGJhY2tzOworICAgIFdlYkNvcmU6Ok1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fc2FtcGxl
Um90YXRpb24geyBXZWJDb3JlOjpNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9Owog
ICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzIHsgZmFsc2UgfTsKICAgICBib29s
IG1faXNSZWFkeSB7IGZhbHNlIH07Ci0gICAgYm9vbCBtX2hhc1JlcXVlc3RlZFRvRW5kIHsgZmFs
c2UgfTsKICAgICBTdHJpbmcgbV9lcnJvck1lc3NhZ2U7CiAgICAgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChTdHJpbmcpPiBtX2NhbGxiYWNrOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmluZGV4IDAz
M2NkMGQ4ZGZkOTJkODEyZDY3Y2Y1ZmI1N2U1ZWQzNGJlNzkxNWIuLjhlNzUzODkxOGY1YmEwZmVl
ODljNTdiMmZmOTc4NmI1MDQ2YWUwN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMzgsNiAr
MzgsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oPgorI2luY2x1ZGUgPFdlYkNv
cmUvUmVhbHRpbWVWaWRlb1NvdXJjZS5oPgogI2luY2x1ZGUgPHd0Zi9Bc3NlcnRpb25zLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewpAQCAtMTU4LDE2ICsxNTksMTIgQEAgdm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChSZWFsdGltZU1lZGlhU291
cmNlSWRlbnQKIHsKICAgICBpZiAoYXV0byBzb3VyY2UgPSBtX2F1ZGlvU291cmNlcy5nZXQoaWQp
KQogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV1RGTW92ZShzZXR0
aW5ncykpOwotICAgIGVsc2UgaWYgKGF1dG8gc291cmNlID0gbV92aWRlb1NvdXJjZXMuZ2V0KGlk
KSkKLSAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0
dGluZ3MpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJh
aW50c0ZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgU3RyaW5nJiYgZmFp
bGVkQ29uc3RyYWludCwgU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAoYXV0byBzb3VyY2Ug
PSBtX2F1ZGlvU291cmNlcy5nZXQoaWQpKQogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7Ci0g
ICAgZWxzZSBpZiAoYXV0byBzb3VyY2UgPSBtX3ZpZGVvU291cmNlcy5nZXQoaWQpKQotICAgICAg
ICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50
KSwgV1RGTW92ZShtZXNzYWdlKSk7CiB9CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKQEAgLTE5OCw3ICsxOTUsNyBAQCBDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVW
aWRlb0NhcHR1cmVTbwogICAgICAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeyAiVmlk
ZW8gY2FwdHVyZSBpbiBHUFVQcm9jZXNzIGlzIG5vdCBpbXBsZW1lbnRlZCJfcyB9OwogI2VuZGlm
CiAKLSAgICByZXR1cm4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwg
Y29uc3RyYWludHMsIHsgfSwgV1RGTW92ZShoYXNoU2FsdCksIG1fbWFuYWdlciwgbV9zaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShkZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIFdURk1vdmUoaGFzaFNhbHQpLCBtX21hbmFnZXIs
IG1fc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpKTsKIH0KIAogI2lmIFBMQVRGT1JNKElPU19G
QU1JTFkpCkBAIC0yMTAsNyArMjA3LDcgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
VmlkZW9GYWN0b3J5OjpzZXRBY3RpdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZSYKIAogQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3BsYXlGYWN0b3J5
OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2Us
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIHJldHVybiBSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCB7
IH0sIG1fbWFuYWdlciwgZmFsc2UpOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFnZXIsIGZhbHNlKSkpOwog
fQogCiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKaW5kZXggMGRjYTRmYjM4MDMxMDE5OGU0ZGNkYzQ4NWJjYWVmNGVmMDhiZDc4Ny4u
NjZiMTkyNzY2YjNmYWU1MDU2ZmNiMzk2MTg0MWNiOGU1MWNjZjMxOSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDE3IEBACisyMDIxLTAyLTExICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKwor
ICAgICAgICBNYWtlIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UgYSBSZWFsdGltZVZpZGVvQ2Fw
dHVyZVNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjIxNzQ3CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAg
ICogZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxzLmpzOgor
ICAgICAgICAoYXN5bmMgd2FpdEZvckhlaWdodCk6CisgICAgICAgIChhc3luYyB3YWl0Rm9yV2lk
dGgpOgorICAgICAgICBVcGRhdGVkIHRvIGZhaWwgaW5zdGVhZCBvZiB0aW1pbmcgb3V0LgorICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vcmVzb3VyY2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanM6
CisgICAgICAgIFJlbW92aW5nIG5vIGxvbmdlciBuZWVkZWQgY29kZSB0aGF0IG1hZGUgaXQgaW1w
b3NzaWJsZSB0byBydW4gdGhlIHRlc3RzIGluIGJyb3dzZXIuCisKIDIwMjEtMDItMTEgIE15bGVz
IEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBSZW1vdmUgYW5v
dGhlciB1c2Ugb2YgRm9udFNlbGVjdG9yIGZyb20gd2l0aGluIENTU0ZvbnRGYWNlCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXREaXNwbGF5TWVk
aWEtdXRpbHMuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL3Jlc291cmNlcy9nZXRE
aXNwbGF5TWVkaWEtdXRpbHMuanMKaW5kZXggOGI0NmMzNzg4M2ZiZDZhNmM2Y2I0NjRjOTZiZTMx
MTUzYThjOTdjMC4uZDMyYTI4ZTY2NGY0NzQ4MWY0NWUzOWVjZjNhNDRmMmU5Mzk2Y2RjMCAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9yZXNvdXJjZXMvZ2V0RGlzcGxh
eU1lZGlhLXV0aWxzLmpzCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldERpc3BsYXlNZWRpYS11dGlscy5qcwpAQCAtMjEsMTkgKzIxLDIzIEBAIGFzeW5jIGZ1
bmN0aW9uIGNhbGxHZXREaXNwbGF5TWVkaWEob3B0aW9ucykKIH0KIAogYXN5bmMgZnVuY3Rpb24g
d2FpdEZvckhlaWdodCh0cmFjaywgdmFsdWUpIHsKLSAgICB3aGlsZSAodHJ1ZSkgeworICAgIGxl
dCBjb3VudGVyID0gMTAwOworICAgIHdoaWxlICgtLWNvdW50ZXIgPiAwKSB7CiAgICAgICAgIGNv
bnN0IHNldHRpbmdzID0gdHJhY2suZ2V0U2V0dGluZ3MoKTsKICAgICAgICAgaWYgKHNldHRpbmdz
LmhlaWdodCA9PT0gdmFsdWUpCiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgYXdhaXQgbmV3
IFByb21pc2UocmVzb2x2ZSA9PiBzZXRUaW1lb3V0KHJlc29sdmUsIDUwKSk7CiAgICAgfQorICAg
IGFzc2VydF9ncmVhdGVyX3RoYW4oY291bnRlciwgMCwgIndhaXRGb3JIZWlnaHQiKTsKIH0KIAog
YXN5bmMgZnVuY3Rpb24gd2FpdEZvcldpZHRoKHRyYWNrLCB2YWx1ZSkgewotICAgIHdoaWxlICh0
cnVlKSB7CisgICAgbGV0IGNvdW50ZXIgPSAxMDA7CisgICAgd2hpbGUgKC0tY291bnRlciA+IDAp
IHsKICAgICAgICAgY29uc3Qgc2V0dGluZ3MgPSB0cmFjay5nZXRTZXR0aW5ncygpOwogICAgICAg
ICBpZiAoc2V0dGluZ3Mud2lkdGggPT09IHZhbHVlKQogICAgICAgICAgICAgYnJlYWs7CiAgICAg
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCA1MCkp
OwogICAgIH0KKyAgICBhc3NlcnRfZ3JlYXRlcl90aGFuKGNvdW50ZXIsIDAsICJ3YWl0Rm9yV2lk
dGgiKTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFt
L3Jlc291cmNlcy9nZXRVc2VyTWVkaWEtaGVscGVyLmpzCmluZGV4IGNlMjhjYjZlNWFjNTVlMzBm
MWM0YjJjYzg3NDBjMzhlNjNkMDI4MDYuLjExOGM3YWVhMjYyNzVhNjg5NmMwMzkwNDk4Y2FjOGVj
ZGIyODk4ZGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vcmVzb3Vy
Y2VzL2dldFVzZXJNZWRpYS1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9yZXNvdXJjZXMvZ2V0VXNlck1lZGlhLWhlbHBlci5qcwpAQCAtMSwxMiArMSw0IEBACiBm
dW5jdGlvbiBnZXRVc2VyTWVkaWEocGVybWlzc2lvbiwgY29uc3RyYWludHMsIHN1Y2Nlc3NDYWxs
YmFjaywgZXJyb3JDYWxsYmFjaykgewotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRVc2VyTWVkaWFQZXJtaXNzaW9uKHBlcm1pc3Npb24gPT0gImFsbG93
Iik7Ci0gICAgZWxzZSB7Ci0gICAgICAgIGRlYnVnKCJUaGlzIHRlc3QgY2FuIG5vdCBiZSBydW4g
d2l0aG91dCB0aGUgdGVzdFJ1bm5lciIpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAg
ICAgcmV0dXJuOwotICAgIH0KLQogICAgIG5hdmlnYXRvci5tZWRpYURldmljZXMKICAgICAgICAg
ICAgICAgICAuZ2V0VXNlck1lZGlhKGNvbnN0cmFpbnRzKQogICAgICAgICAgICAgICAgIC50aGVu
KHN1Y2Nlc3NDYWxsYmFjaywgcmVqZWN0KQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>