<?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>181291</bug_id>
          
          <creation_ts>2018-01-04 08:46:12 -0800</creation_ts>
          <short_desc>[MediaStream] Add Mock screen capture source</short_desc>
          <delta_ts>2018-01-05 09:13:31 -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>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1385821</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-01-04 08:46:12 -0800</bug_when>
    <thetext>Add Mock screen capture source</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385823</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-01-04 08:46:37 -0800</bug_when>
    <thetext>&lt;rdar://problem/36298164&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385849</commentid>
    <comment_count>2</comment_count>
      <attachid>330474</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-01-04 10:41:16 -0800</bug_when>
    <thetext>Created attachment 330474
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385866</commentid>
    <comment_count>3</comment_count>
      <attachid>330474</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2018-01-04 11:48:31 -0800</bug_when>
    <thetext>Comment on attachment 330474
Patch

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

&gt; Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.h:74
&gt; +    double m_startTime { NAN };
&gt; +    double m_elapsedTime { 0 };

Should you use Seconds here, rather than a double?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385878</commentid>
    <comment_count>4</comment_count>
      <attachid>330474</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-04 12:12:31 -0800</bug_when>
    <thetext>Comment on attachment 330474
Patch

Clearing flags on attachment: 330474

Committed r226412: &lt;https://trac.webkit.org/changeset/226412&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385879</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-01-04 12:12:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385935</commentid>
    <comment_count>6</comment_count>
      <attachid>330474</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-01-04 14:31:52 -0800</bug_when>
    <thetext>Comment on attachment 330474
Patch

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

&gt;&gt; Source/WebCore/platform/mediastream/mac/DisplayCaptureSourceCocoa.h:74
&gt;&gt; +    double m_elapsedTime { 0 };
&gt; 
&gt; Should you use Seconds here, rather than a double?

Oops, I missed this suggestion. I will do this in an upcoming patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386073</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Nardi">cnardi</who>
    <bug_when>2018-01-04 22:04:09 -0800</bug_when>
    <thetext>This patch seems to have caused a GTK compile issue (see for instance https://webkit-queues.webkit.org/results/5936753).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386144</commentid>
    <comment_count>8</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2018-01-05 09:13:31 -0800</bug_when>
    <thetext>(In reply to Chris Nardi from comment #7)
&gt; This patch seems to have caused a GTK compile issue (see for instance
&gt; https://webkit-queues.webkit.org/results/5936753).

Oops, sorry about that! Thanks to Zan for fixing this in r226438.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>330474</attachid>
            <date>2018-01-04 10:41:16 -0800</date>
            <delta_ts>2018-01-04 12:12:31 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-181291-20180104104116.patch</filename>
            <type>text/plain</type>
            <size>89917</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2NDA0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWVlOTY1MTNjODkxNThk
YmI5YzQzMzE3ZWVmZTVjNGRhODE4YjJhOS4uZWQxYjhhMjY1OTQ0ZWMxZDQ0ODMxODIxYjY1ZWEz
NjI4Zjc3ZTdjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDE4LTAxLTA0ICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtNZWRpYVN0cmVh
bV0gQWRkIE1vY2sgc2NyZWVuIGNhcHR1cmUgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODEyOTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzM2Mjk4MTY0PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFRlc3RzOiAgaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVk
aWEtcHJvbXB0Lmh0bWwKKyAgICAgICAgICAgICAgICBHZXREaXNwbGF5TWVkaWFUZXN0LkJhc2lj
UHJvbXB0CisgICAgICAgICAgICAgICAgR2V0RGlzcGxheU1lZGlhVGVzdC5Db25zdHJhaW50cwor
CisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFEZXZpY2VzOjpNZWRpYURldmljZXMpOiBBZGQgc3RhdGljX2Fzc2Vy
dCB0byBlbnN1cmUgTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlCisgICAg
ICAgIGFuZCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlwZSB2
YWx1ZXMgYXJlIGVxdWl2YWxlbnQuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYURldmljZXM6Omdl
dFN1cHBvcnRlZENvbnN0cmFpbnRzKTogUmVtb3ZlIGJvZ3VzIGNvZGUuCisgICAgICAgICogTW9k
dWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaDogQWRkIERpc3BsYXlDYXB0dXJlU3VyZmFj
ZVR5cGUuCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaWRsOiBE
aXR0by4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVRyYWNrOjpnZXRTZXR0aW5ncyBjb25z
dCk6IEFkZCBhIEZJWE1FLgorICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1UcmFjay5oOiBBZGQgZGlzcGxheVN1cmZhY2UgYW5kIGxvZ2ljYWxTdXJmYWNlLgorCisgICAg
ICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMu
aDogUmVtb3ZlIGRpc3BsYXlTdXJmYWNlIGFuZCBsb2dpY2FsU3VyZmFjZS4KKyAgICAgICAgKiBN
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5pZGw6CisK
KyAgICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OiBBZGQgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29j
b2EuY3BwIGFuZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmNwcC4KKworICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjplbmNvZGUgY29uc3QpOiBBZGQuCisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpkZWNvZGUpOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMpOiBJbmNsdWRlIGRpc3BsYXkgY2Fw
dHVyZSAiZGV2aWNlcyIuCisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6IERlYWwgd2l0aCBkaXNwbGF5IGNhcHR1
cmUgZGV2aWNlcy4KKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKTogRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oOgorCisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OmRpc3BsYXlTdXJmYWNl
IGNvbnN0KTogUmV0dXJuIGEgRGlzcGxheVN1cmZhY2VUeXBlLgorICAgICAgICAoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpzZXREaXNwbGF5U3VyZmFjZSk6IFRha2UgYSBE
aXNwbGF5U3VyZmFjZVR5cGUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNpbmdsZXRvbik6CisgICAgICAgIChXZWJDb3JlOjpEaXNw
bGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6fkRpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hKToKKyAg
ICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hOjpjYXB0dXJlRGV2aWNl
cyk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6c2NyZWVu
Q2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQpOgorICAgICAgICAoV2ViQ29yZTo6RGlzcGxh
eUNhcHR1cmVNYW5hZ2VyQ29jb2E6OmNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29j
b2EuaDoKKworICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKToKKyAgICAgICAgKFdlYkNv
cmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6On5EaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
KToKKyAgICAgICAgKFdlYkNvcmU6OkRpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNhcGFiaWxp
dGllcyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29h
OjpzZXR0aW5ncyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2FwdHVyZVNvdXJj
ZUNvY29hOjpzZXR0aW5nc0RpZENoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hOjpzdGFydFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAoV2ViQ29yZTo6
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6c3RvcFByb2R1Y2luZ0RhdGEpOgorICAgICAgICAo
V2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZWxhcHNlZFRpbWUpOgorICAgICAg
ICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6YXBwbHlGcmFtZVJhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6ZW1pdEZyYW1lKToK
KyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VD
b2NvYS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6ZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKTogTmV3LgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
Lmg6CisKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OmRldmljZU1hcCk6IEFkZCBzY3JlZW4gY2FwdHVyZSAiZGV2
aWNlcyIuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6ZGlzcGxh
eURldmljZXMpOiBOZXcuCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZS5oOgorCisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5jcHA6IENsZWFuIHVwIGluY2x1ZGVzLgorICAgICAgICAqIHBsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKworICAgICAgICAqIHBsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlKTogTW9jayB0d28g
c2NyZWVuIGRldmljZXMuCisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6dXBkYXRlU2V0dGluZ3MpOiBEZWFsIHdpdGggbW9jayBzY3JlZW5zLgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmluaXRpYWxpemVDYXBhYmlsaXRpZXMpOiBE
aXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbml0aWFs
aXplU3VwcG9ydGVkQ29uc3RyYWludHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpkcmF3VGV4dCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmdlbmVyYXRlRnJhbWUpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmg6CisgICAgICAgIChXZWJD
b3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6bW9ja0NhbWVyYSBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6bW9ja1NjcmVlbiBjb25zdCk6CisK
IDIwMTgtMDEtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgog
CiAgICAgICAgIFtHVEtdIElzc3VlcyB3aXRoIEFoZW0ncyBleCAvIHgtaGVpZ2h0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmlu
ZGV4IDk4MjliNzc2ZDQyZmZiODUxZDlhNjliY2U5NWMyMWNmOWFhYjg4OTUuLjAyNzdlMzQ3MGQx
ZjQ3NjAzMTI1YWM3NGY4NjlkNmEwYzJlNjgyNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzcgQEAK
KzIwMTgtMDEtMDQgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAg
ICAgICAgW01lZGlhU3RyZWFtXSBBZGQgTW9jayBzY3JlZW4gY2FwdHVyZSBzb3VyY2UKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTI5MQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMzYyOTgxNjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcDoK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzPjo6ZGVjb2RlKToK
KyAgICAgICAgKElQQzo6QXJndW1lbnRDb2RlcjxDYXB0dXJlRGV2aWNlPjo6ZW5jb2RlKTogRGVs
ZXRlZCwgbW92ZWQgdG8gQ2FwdHVyZURldmljZS5oCisgICAgICAgIChJUEM6OkFyZ3VtZW50Q29k
ZXI8Q2FwdHVyZURldmljZT46OmRlY29kZSk6IERpdHRvLgorICAgICAgICAqIFNoYXJlZC9XZWJD
b3JlQXJndW1lbnRDb2RlcnMuaDoKKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3UHJpdmF0ZS5oOiBBZGQgX1dLQ2FwdHVyZURldmljZURpc3BsYXkuCisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW06CisgICAgICAgIChXZWJLaXQ6OnJlcXVlc3RV
c2VyTWVkaWFBdXRob3JpemF0aW9uRm9yRGV2aWNlcyk6IERlYWwgd2l0aCBkaXNwbGF5IGNhcHR1
cmUuCisgICAgICAgIChXZWJLaXQ6OlVJRGVsZWdhdGU6OlVJQ2xpZW50OjpkZWNpZGVQb2xpY3lG
b3JVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdCk6IERpdHRvLgorCisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRp
YUFjY2Vzc1dhc0RlbmllZCk6IHJlcXVpcmVzQXVkaW8gLT4gcmVxdWlyZXNBdWRpb0NhcHR1cmUu
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5
OjpzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCBjb25zdCk6IE5ldmVyIHJldXNlCisgICAgICAgIGEg
cHJldmlvdXNseSBncmFudGVkIGRpc3BsYXkgY2FwdHVyZSByZXF1ZXN0LgorCisgICAgICAgICog
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyk6IFNlYXJjaCB0
aGUgZWxpZ2libGUgZGV2aWNlcyBpbnN0ZWFkIG9mIGFza2luZworICAgICAgICB0aGUgc291cmNl
IGNlbnRlciB0byBmaW5kIGRldmljZXMuCisgICAgICAgICogVUlQcm9jZXNzL1VzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6cmVxdWlyZXNBdWRpb0NhcHR1cmUgY29uc3QpOiBSZW5hbWVkLgor
ICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpyZXF1aXJl
c1ZpZGVvQ2FwdHVyZSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpyZXF1aXJlc0Rpc3BsYXlDYXB0dXJlIGNvbnN0KTogTmV3
LgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpyZXF1
aXJlc0F1ZGlvIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVy
bWlzc2lvblJlcXVlc3RQcm94eTo6cmVxdWlyZXNWaWRlbyBjb25zdCk6IERlbGV0ZWQuCisKIDIw
MTgtMDEtMDQgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCBDYWNoZSBBUEkgcGFydGl0aW9uaW5nIGJhc2VkIG9uIENsaWVudE9yaWdpbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuY3Bw
CmluZGV4IGQxOWJjNzdmNWIyZDk3ZjcwNDdlNTU3NDQ0ZDA3OTk5YTBmZGU4Y2EuLjBkODJmYzM1
NGU4YTExNWZhOGMyNzMzNTNlN2U3ZDQxYmM0ZDM2ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5jcHAKQEAgLTM5LDYgKzM5LDcg
QEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiTWVkaWFEZXZpY2VzUmVxdWVz
dC5oIgogI2luY2x1ZGUgIk1lZGlhVHJhY2tTdXBwb3J0ZWRDb25zdHJhaW50cy5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFSZXF1ZXN0LmgiCiAjaW5jbHVkZSA8
d3RmL1JhbmRvbU51bWJlci5oPgpAQCAtNTksNiArNjAsMTEgQEAgaW5saW5lIE1lZGlhRGV2aWNl
czo6TWVkaWFEZXZpY2VzKERvY3VtZW50JiBkb2N1bWVudCkKICAgICAgICAgaWYgKCFtX3NjaGVk
dWxlZEV2ZW50VGltZXIuaXNBY3RpdmUoKSkKICAgICAgICAgICAgIG1fc2NoZWR1bGVkRXZlbnRU
aW1lci5zdGFydE9uZVNob3QoU2Vjb25kcyhyYW5kb21OdW1iZXIoKSAvIDIpKTsKICAgICB9KTsK
KworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYURldmljZXM6OkRp
c3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6Ok1vbml0b3IpID09IHN0YXRpY19jYXN0PHNpemVfdD4o
UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6Ok1vbml0b3Ip
LCAiTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpNb25pdG9yIGlzIG5v
dCBlcXVhbCB0byBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlw
ZTo6TW9uaXRvciBhcyBleHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8
c2l6ZV90PihNZWRpYURldmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OldpbmRvdykg
PT0gc3RhdGljX2Nhc3Q8c2l6ZV90PihSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3Bs
YXlTdXJmYWNlVHlwZTo6V2luZG93KSwgIk1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJm
YWNlVHlwZTo6V2luZG93IGlzIG5vdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3Bs
YXlTdXJmYWNlVHlwZTo6V2luZG93IGFzIGV4cGVjdGVkIik7CisgICAgc3RhdGljX2Fzc2VydChz
dGF0aWNfY2FzdDxzaXplX3Q+KE1lZGlhRGV2aWNlczo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlw
ZTo6QXBwbGljYXRpb24pID09IHN0YXRpY19jYXN0PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6OkFwcGxpY2F0aW9uKSwgIk1lZGlhRGV2aWNl
czo6RGlzcGxheUNhcHR1cmVTdXJmYWNlVHlwZTo6QXBwbGljYXRpb24gaXMgbm90IFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RGlzcGxheVN1cmZhY2VUeXBlOjpBcHBsaWNhdGlvbiBhcyBl
eHBlY3RlZCIpOworICAgIHN0YXRpY19hc3NlcnQoc3RhdGljX2Nhc3Q8c2l6ZV90PihNZWRpYURl
dmljZXM6OkRpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGU6OkJyb3dzZXIpID09IHN0YXRpY19jYXN0
PHNpemVfdD4oUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpEaXNwbGF5U3VyZmFjZVR5cGU6
OkJyb3dzZXIpLCAiTWVkaWFEZXZpY2VzOjpEaXNwbGF5Q2FwdHVyZVN1cmZhY2VUeXBlOjpCcm93
c2VyIGlzIG5vdCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkRpc3BsYXlTdXJmYWNlVHlw
ZTo6QnJvd3NlciBhcyBleHBlY3RlZCIpOwogfQogCiBNZWRpYURldmljZXM6On5NZWRpYURldmlj
ZXMoKQpAQCAtMTQ1LDEwICsxNTEsNiBAQCBNZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMg
TWVkaWFEZXZpY2VzOjpnZXRTdXBwb3J0ZWRDb25zdHJhaW50cygpCiAgICAgcmVzdWx0LmVjaG9D
YW5jZWxsYXRpb24gPSBzdXBwb3J0ZWQuc3VwcG9ydHNFY2hvQ2FuY2VsbGF0aW9uKCk7CiAgICAg
cmVzdWx0LmRldmljZUlkID0gc3VwcG9ydGVkLnN1cHBvcnRzRGV2aWNlSWQoKTsKICAgICByZXN1
bHQuZ3JvdXBJZCA9IHN1cHBvcnRlZC5zdXBwb3J0c0dyb3VwSWQoKTsKLSAgICBpZiAoUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zY3JlZW5DYXB0dXJlRW5hYmxlZCgp
KSB7Ci0gICAgICAgIHJlc3VsdC5kZXZpY2VJZCA9IHN1cHBvcnRlZC5zdXBwb3J0c0RldmljZUlk
KCk7Ci0gICAgICAgIHJlc3VsdC5ncm91cElkID0gc3VwcG9ydGVkLnN1cHBvcnRzR3JvdXBJZCgp
OwotICAgIH0KIAogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhRGV2aWNlcy5oIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYURldmljZXMuaAppbmRleCAzZDEzOTY0MjJkNjY4ZTc1
ZWY2NDlmYjUwMTU4MDVlNmU5ZjBjNzA3Li4wNGNjNjA1OWJhMzZkNmZiYmRjYTFmZjdjODY3OTFi
MzE1NGJiYTMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L01lZGlhRGV2aWNlcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
TWVkaWFEZXZpY2VzLmgKQEAgLTYwLDYgKzYwLDEzIEBAIHB1YmxpYzoKICAgICB1c2luZyBQcm9t
aXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxNZWRpYVN0cmVhbT4+OwogICAg
IHVzaW5nIEVudW1lcmF0ZURldmljZXNQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETFNl
cXVlbmNlPElETEludGVyZmFjZTxNZWRpYURldmljZUluZm8+Pj47CiAKKyAgICBlbnVtIGNsYXNz
IERpc3BsYXlDYXB0dXJlU3VyZmFjZVR5cGUgeworICAgICAgICBNb25pdG9yLAorICAgICAgICBX
aW5kb3csCisgICAgICAgIEFwcGxpY2F0aW9uLAorICAgICAgICBCcm93c2VyLAorICAgIH07CisK
ICAgICBzdHJ1Y3QgU3RyZWFtQ29uc3RyYWludHMgewogICAgICAgICBWYXJpYW50PGJvb2wsIE1l
ZGlhVHJhY2tDb25zdHJhaW50cz4gdmlkZW87CiAgICAgICAgIFZhcmlhbnQ8Ym9vbCwgTWVkaWFU
cmFja0NvbnN0cmFpbnRzPiBhdWRpbzsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
bWVkaWFzdHJlYW0vTWVkaWFEZXZpY2VzLmlkbAppbmRleCA2ZTQ3NmJjOTBiOWQ3MWRiOGNiMTU4
OWIyYjg0YTBkOTIzOWY5NDdkLi4zMWEwNGRlMWQ0ODQ3ZTVlNzgyYzRjNDM5MzA3MWMxMzMwOWMy
Y2Q0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlh
RGV2aWNlcy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRp
YURldmljZXMuaWRsCkBAIC00NywzICs0NywxMyBAQAogICAgIChib29sZWFuIG9yIE1lZGlhVHJh
Y2tDb25zdHJhaW50cykgdmlkZW8gPSBmYWxzZTsKICAgICAoYm9vbGVhbiBvciBNZWRpYVRyYWNr
Q29uc3RyYWludHMpIGF1ZGlvID0gZmFsc2U7CiB9OworCitbCisgICAgQ29uZGl0aW9uYWw9TUVE
SUFfU1RSRUFNLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9U2NyZWVuQ2FwdHVyZQorXSBlbnVtIERp
c3BsYXlDYXB0dXJlU3VyZmFjZVR5cGUgeworICAgICJtb25pdG9yIiwKKyAgICAid2luZG93IiwK
KyAgICAiYXBwbGljYXRpb24iLAorICAgICJicm93c2VyIgorfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suY3BwCmluZGV4
IDAzMjE1ODU1ZWE5MTBmYWE5ZTI3OGIwN2Q4ZDI3ODE2YzI2ZmIzOGYuLjg2NzY5NDI1Zjc1ZWQ1
ZDUxYTZkZTcyMWFiNzVkMjhlZTU2MTg1MTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFjay5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmNwcApAQCAtMTcwLDYgKzE3
MCw5IEBAIE1lZGlhU3RyZWFtVHJhY2s6OlRyYWNrU2V0dGluZ3MgTWVkaWFTdHJlYW1UcmFjazo6
Z2V0U2V0dGluZ3MoRG9jdW1lbnQmIGRvY3VtZW50CiAgICAgICAgIHJlc3VsdC5kZXZpY2VJZCA9
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmhhc2hTdHJpbmdXaXRoU2Fs
dChzZXR0aW5ncy5kZXZpY2VJZCgpLCBkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0KCkpOwogICAg
IGlmIChzZXR0aW5ncy5zdXBwb3J0c0dyb3VwSWQoKSkKICAgICAgICAgcmVzdWx0Lmdyb3VwSWQg
PSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNh
bHQoc2V0dGluZ3MuZ3JvdXBJZCgpLCBkb2N1bWVudC5kZXZpY2VJREhhc2hTYWx0KCkpOworCisg
ICAgLy8gRklYTUU6IHNob3VsZG4ndCB0aGlzIGluY2x1ZGUgZGlzcGxheVN1cmZhY2UgYW5kIGxv
Z2ljYWxTdXJmYWNlPworCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAppbmRleCBl
ZTQ0MTYyYzA5MGJiNTlmYWFlYTcwZTAxMjI2NzBmNGY1ZDQyZDJjLi43M2VhNTdjNzllNDhmMDY3
MzU3ZjZhMTdhN2VhMWEwOTA5ZDUwZGJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2suaApAQCAtOTUsNiArOTUsOCBAQCBw
dWJsaWM6CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8aW50PiBzYW1wbGVSYXRlOwogICAgICAgICBz
dGQ6Om9wdGlvbmFsPGludD4gc2FtcGxlU2l6ZTsKICAgICAgICAgc3RkOjpvcHRpb25hbDxib29s
PiBlY2hvQ2FuY2VsbGF0aW9uOworICAgICAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGRpc3BsYXlT
dXJmYWNlOworICAgICAgICBTdHJpbmcgbG9naWNhbFN1cmZhY2U7CiAgICAgICAgIFN0cmluZyBk
ZXZpY2VJZDsKICAgICAgICAgU3RyaW5nIGdyb3VwSWQ7CiAgICAgfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0
cmFpbnRzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tT
dXBwb3J0ZWRDb25zdHJhaW50cy5oCmluZGV4IGRmYzA3NWYwNjMwMzVhZDIwZmJmMjY2MWZmOTA4
NTY0ZDdkNWY2NTQuLmY4NjI2Yjg5OTU2OGY4NzY0MmNiMDc5ZDc4ZDhlMTQ0MWNjODNmMjUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja1N1
cHBvcnRlZENvbnN0cmFpbnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaApAQCAtNDYsOCArNDYsNiBAQCBz
dHJ1Y3QgTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzIHsKICAgICBib29sIGVjaG9DYW5j
ZWxsYXRpb247CiAgICAgYm9vbCBkZXZpY2VJZDsKICAgICBib29sIGdyb3VwSWQ7Ci0gICAgYm9v
bCBkaXNwbGF5U3VyZmFjZTsKLSAgICBib29sIGxvZ2ljYWxTdXJmYWNlOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRp
YXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRsIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9NZWRpYVRyYWNrU3VwcG9ydGVkQ29uc3RyYWludHMuaWRs
CmluZGV4IGU5Y2IxYmUwNzE2NDk0ZGI4ZmNhZTRiZDIwOWRjYjEzOTMxZTc2YWYuLjU4NTM3Mjhi
NTQ3MDUyZGZjMDk1OWM2ZGU4YzM1M2U5OWJmNzI0MjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vTWVkaWFUcmFja1N1cHBvcnRlZENvbnN0cmFpbnRzLmlk
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL01lZGlhVHJhY2tTdXBw
b3J0ZWRDb25zdHJhaW50cy5pZGwKQEAgLTQ1LDYgKzQ1LDQgQEAKICAgICAvLyBGSVhNRSAxNjk4
NzE6IGFkZCBjaGFubmVsQ291bnQKICAgICBib29sZWFuIGRldmljZUlkID0gdHJ1ZTsKICAgICBi
b29sZWFuIGdyb3VwSWQgPSB0cnVlOwotICAgIGJvb2xlYW4gZGlzcGxheVN1cmZhY2UgPSB0cnVl
OwotICAgIGJvb2xlYW4gbG9naWNhbFN1cmZhY2UgPSB0cnVlOwogfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzQ29j
b2EudHh0CmluZGV4IGQyOGRlYmEwNmIyNDQxMWYxZDkyNDJhMTc1NDVlZmE0NjdhYzY2OTQuLmVj
MTE2OTI4NDc4ODlhYzRmYTE5ZWRmZmZhZDM5YzcxNWIyM2VhODIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1NvdXJjZXNDb2NvYS50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlc0Nv
Y29hLnR4dApAQCAtMzU0LDYgKzM1NCw4IEBAIHJlbmRlcmluZy9SZW5kZXJUaGVtZUNvY29hLm1t
CiByZW5kZXJpbmcvVGV4dEF1dG9TaXppbmcuY3BwCiAKIHBsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcAorcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rp
c3BsYXlDYXB0dXJlU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVJbmNvbWluZ0F1ZGlvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVJbmNvbWluZ1ZpZGVvU291cmNlQ29jb2EuY3BwCiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0MDk4NGFmNzI0
NmExY2M1MzlhYjJmYTA3Y2QyNzYyOTA3MmU0NDA4Li5kZTE5MGExMmYxZTAzMDllYzI1YmJhZWJh
MzU2MTIwYzlhM2Y3YjdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC01MjE3LDYgKzUyMTcsMTAgQEAKIAkJMDc5RjVFNEIwRjNC
RUJFQTAwNUUwNzgyIC8qIE1lZGlhUGxheWVyUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBNZWRpYVBsYXllclByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJMDdBNkQxRTkxNDkxMTM3NzAwMDUxRDBDIC8qIE1lZGlhRnJhZ21lbnRVUklQYXJz
ZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTWVkaWFGcmFnbWVu
dFVSSVBhcnNlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3QTZEMUVBMTQ5
MTEzNzcwMDA1MUQwQyAvKiBNZWRpYUZyYWdtZW50VVJJUGFyc2VyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IE1lZGlhRnJhZ21lbnRVUklQYXJzZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJMDdBNkQ4NDcxRkVCNzAwQjAwNjQ0MURFIC8qIERpc3BsYXlDYXB0
dXJlU291cmNlQ29jb2EuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTA3QTZEODQ4MUZFQjcwMEIwMDY0NDFERSAvKiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2Nv
YS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTA3QTZEODQ5
MUZFQjcwMEMwMDY0NDFERSAvKiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQkwN0E2RDg0QTFGRUI3MDBEMDA2NDQxREUgLyog
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTA3QUE2QjY5MTY2RDAxOTUwMEQ0NTY3MSAvKiBJbmJhbmRUZXh0VHJhY2tQcml2YXRl
QVZGT2JqQy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmJhbmRUZXh0VHJh
Y2tQcml2YXRlQVZGT2JqQy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0FBNkI2
QTE2NkQwMTk1MDBENDU2NzEgLyogSW5iYW5kVGV4dFRyYWNrUHJpdmF0ZUFWRk9iakMubW0gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBJbmJhbmRUZXh0VHJhY2tQcml2
YXRlQVZGT2JqQy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMDdBQjk5NjUxOERB
M0MwMTAwMTg3NzFFIC8qIFJUQ0NvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwpAQCAtMTQ4MjYsNiArMTQ4MzAsMTAgQEAKIAkJCQkzRjgwMjAzNDFFOUUzODFEMDBERUM2MUQg
LyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCAqLywKIAkJCQkzRjNCQjU4MjFFNzA5
RUU0MDBDNzAxRjIgLyogQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAgKi8sCiAJCQkJM0YzQkI1
ODMxRTcwOUVFNDAwQzcwMUYyIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaCAqLywKKwkJCQkw
N0E2RDg0ODFGRUI3MDBCMDA2NDQxREUgLyogRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EuY3Bw
ICovLAorCQkJCTA3QTZEODQ5MUZFQjcwMEMwMDY0NDFERSAvKiBEaXNwbGF5Q2FwdHVyZU1hbmFn
ZXJDb2NvYS5oICovLAorCQkJCTA3QTZEODQ3MUZFQjcwMEIwMDY0NDFERSAvKiBEaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmNwcCAqLywKKwkJCQkwN0E2RDg0QTFGRUI3MDBEMDA2NDQxREUgLyog
RGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oICovLAogCQkJCTA3NDRFQ0VCMUUwQzRBRTUwMDBE
MDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5oICovLAogCQkJCTA3NDRFQ0VDMUUw
QzRBRTUwMDBEMDk0NCAvKiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbSAqLywKIAkJCQkw
N0VFNzZFRDFCRUE2MTk4MDBGODkxMzMgLyogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaCAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1
cmVEZXZpY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL0NhcHR1cmVE
ZXZpY2UuaAppbmRleCBkY2M3Y2UwNWZhNDBlMzMxZWU1Nzk4ZjM4MjM3YWY0ZGUzYzIyNGI3Li4x
ZTVlYWVkOTNjZmI0NWNiNGUzZjc2YjM4ZWVlMDYzNTNmOThiZGU5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9DYXB0dXJlRGV2aWNlLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vQ2FwdHVyZURldmljZS5oCkBAIC0yNSw2
ICsyNSw3IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSA8d3RmL0VudW1UcmFpdHMuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpA
QCAtNTYsNiArNTcsNTEgQEAgcHVibGljOgogCiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZSAhPSBEZXZpY2VUeXBlOjpVbmtub3duOyB9CiAKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CisgICAgdm9p
ZCBlbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKKyAgICB7CisgICAgICAgIGVuY29kZXIg
PDwgbV9wZXJzaXN0ZW50SWQ7CisgICAgICAgIGVuY29kZXIgPDwgbV9sYWJlbDsKKyAgICAgICAg
ZW5jb2RlciA8PCBtX2dyb3VwSWQ7CisgICAgICAgIGVuY29kZXIgPDwgbV9lbmFibGVkOworICAg
ICAgICBlbmNvZGVyLmVuY29kZUVudW0obV90eXBlKTsKKyAgICB9CisKKyAgICB0ZW1wbGF0ZSA8
Y2xhc3MgRGVjb2Rlcj4KKyAgICBzdGF0aWMgc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKKyAgICB7CisgICAgICAgIHN0ZDo6b3B0aW9uYWw8U3Ry
aW5nPiBwZXJzaXN0ZW50SWQ7CisgICAgICAgIGRlY29kZXIgPj4gcGVyc2lzdGVudElkOworICAg
ICAgICBpZiAoIXBlcnNpc3RlbnRJZCkKKyAgICAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisKKyAgICAgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGxhYmVsOworICAgICAgICBkZWNvZGVy
ID4+IGxhYmVsOworICAgICAgICBpZiAoIWxhYmVsKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKworICAgICAgICBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gZ3JvdXBJZDsKKyAgICAg
ICAgZGVjb2RlciA+PiBncm91cElkOworICAgICAgICBpZiAoIWdyb3VwSWQpCisgICAgICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZDsKKyAgICAgICAgZGVjb2RlciA+PiBlbmFibGVkOworICAgICAgICBpZiAoIWVuYWJsZWQp
CisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgICAgIHN0ZDo6b3B0aW9u
YWw8Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZT4gdHlwZTsKKyAgICAgICAgZGVjb2RlciA+PiB0
eXBlOworICAgICAgICBpZiAoIXR5cGUpCisgICAgICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworCisgICAgICAgIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gZGV2aWNlID0ge3sgV1RG
TW92ZSgqcGVyc2lzdGVudElkKSwgV1RGTW92ZSgqdHlwZSksIFdURk1vdmUoKmxhYmVsKSwgV1RG
TW92ZSgqZ3JvdXBJZCkgfX07CisgICAgICAgIGRldmljZS0+c2V0RW5hYmxlZCgqZW5hYmxlZCk7
CisgICAgICAgIHJldHVybiBkZXZpY2U7CisgICAgfQorI2VuZGlmCisKIHByaXZhdGU6CiAgICAg
U3RyaW5nIG1fcGVyc2lzdGVudElkOwogICAgIERldmljZVR5cGUgbV90eXBlIHsgRGV2aWNlVHlw
ZTo6VW5rbm93biB9OwpAQCAtNjYsMyArMTEyLDIyIEBAIHByaXZhdGU6CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAorI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCituYW1lc3BhY2UgV1RGIHsK
KwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlPiB7CisgICAgdXNpbmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICAgICAgV2Vi
Q29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93biwKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6TWljcm9waG9uZSwKKyAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhLAorICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpTY3JlZW4sCisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OkFwcGxpY2F0aW9uLAorICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpXaW5kb3csCisgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGU6OkJyb3dzZXIKKyAgICA+OworfTsKKworfSAvLyBuYW1lc3BhY2UgV1RGCisjZW5kaWYK
KwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCA4NDQzNDQ1NzQ0NmZiOWMw
YWU2MTcxMGI3MmU0OTNlMTVkMjUzMTNiLi4yZWZiODJkMWU1OGM3MWQ5ZGE5OGViY2E0MDJkYjgx
ZDI1NGJlZjQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtMTQwLDYg
KzE0MCwxMCBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKICAgICAgICAgaWYgKGRldmljZS5lbmFibGVkKCkp
CiAgICAgICAgICAgICByZXN1bHQuYXBwZW5kKGRldmljZSk7CiAgICAgfQorICAgIGZvciAoYXV0
byYgZGV2aWNlIDogZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkuY2FwdHVyZURldmljZXMo
KSkgeworICAgICAgICBpZiAoZGV2aWNlLmVuYWJsZWQoKSkKKyAgICAgICAgICAgIHJlc3VsdC5h
cHBlbmQoZGV2aWNlKTsKKyAgICB9CiAKICAgICByZXR1cm4gcmVzdWx0OwogfQpAQCAtMjQ4LDEz
ICsyNTIsMTUgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVl
c3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwKICAgICAgICAgU3RyaW5nIGludmFs
aWRDb25zdHJhaW50OwogICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9y
OwogICAgICAgICBzd2l0Y2ggKGRldmljZS50eXBlKCkpIHsKLSAgICAgICAgY2FzZSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpDYW1lcmE6Ci0gICAgICAgICAgICBpZiAocmVxdWVzdC50eXBl
ID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6VXNlck1lZGlhICYmIHJlcXVlc3QudmlkZW9D
b25zdHJhaW50cy5pc1ZhbGlkKSB7Ci0gICAgICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9y
ID0gdmlkZW9GYWN0b3J5KCkuY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgeyB9KTsK
LSAgICAgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1
cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCBp
bnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgICAgIHZpZGVvRGV2aWNlSW5mby5h
cHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmlj
ZX0pOwotICAgICAgICAgICAgfQorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYTogeworICAgICAgICAgICAgaWYgKHJlcXVlc3QudHlwZSAhPSBNZWRpYVN0cmVh
bVJlcXVlc3Q6OlR5cGU6OlVzZXJNZWRpYSB8fCAhcmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsIHsgfSk7CisgICAgICAgICAgICBpZiAoc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9y
LmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMocmVxdWVzdC52aWRlb0NvbnN0cmFp
bnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZv
LmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2
aWNlfSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgfQogICAgICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgICAgICBpZiAocmVxdWVz
dC5hdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQpIHsKICAgICAgICAgICAgICAgICBhdXRvIHNvdXJj
ZU9yRXJyb3IgPSBhdWRpb0ZhY3RvcnkoKS5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNl
LCB7IH0pOwpAQCAtMjY1LDExICsyNzEsMTkgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGwKICAg
ICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW46CiAgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CiAgICAgICAgIGNhc2Ug
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6V2luZG93OgotICAgICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkJyb3dzZXI6Ci0gICAgICAgICAgICBBU1NFUlQocmVxdWVzdC50
eXBlID09IE1lZGlhU3RyZWFtUmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKTsKLSAgICAgICAg
ICAgIEFTU0VSVChyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMubWFuZGF0b3J5Q29uc3RyYWludHMu
aXNFbXB0eSgpKTsKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpCcm93
c2VyOiB7CisgICAgICAgICAgICBpZiAocmVxdWVzdC50eXBlICE9IE1lZGlhU3RyZWFtUmVxdWVz
dDo6VHlwZTo6RGlzcGxheU1lZGlhKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgQVNTRVJUKHJlcXVlc3QuYXVkaW9Db25zdHJhaW50cy5tYW5kYXRvcnlDb25zdHJhaW50
cy5pc0VtcHR5KCkpOwogICAgICAgICAgICAgQVNTRVJUKHJlcXVlc3QudmlkZW9Db25zdHJhaW50
cy5hZHZhbmNlZENvbnN0cmFpbnRzLmlzRW1wdHkoKSk7CisgICAgICAgICAgICBpZiAoIXJlcXVl
c3QudmlkZW9Db25zdHJhaW50cy5pc1ZhbGlkIHx8ICFyZXF1ZXN0LnZpZGVvQ29uc3RyYWludHMu
YWR2YW5jZWRDb25zdHJhaW50cy5pc0VtcHR5KCkgfHwgIXJlcXVlc3QudmlkZW9Db25zdHJhaW50
cy5tYW5kYXRvcnlDb25zdHJhaW50cy5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgY29udGlu
dWU7CisKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IHZpZGVvRmFjdG9yeSgpLmNy
ZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIHsgfSk7CisgICAgICAgICAgICBpZiAoc291
cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3Ry
YWludHMocmVxdWVzdC52aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAg
ICAgICAgICAgICAgdmlkZW9EZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJl
U291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlfSk7CiAgICAgICAgICAgICBicmVhazsKKyAg
ICAgICAgfQogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246
CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAgIGJyZWFrOwpA
QCAtMzIxLDYgKzMzNSw4IEBAIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURldmljZT4gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0CiAgICAgY2FzZSBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBcHBsaWNhdGlvbjoKICAgICBjYXNlIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OldpbmRvdzoKICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkJyb3dzZXI6CisgICAgICAgIHJldHVybiBkaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIo
KS5jYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRCh0eXBlLCBpZCk7CisgICAgICAgIGJyZWFr
OwogICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKICAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAgICAgIGJyZWFrOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlci5oCmluZGV4IDY2MmI5MDYyYTY2Nzc0YTNkYWE5OTNlZDhhY2Y0OWI0ZTllMGVjYTAu
LjBjNzI1Zjk4MDlkNmJlOTczOTNjY2IzM2RmZjdkODE5MTY1OThmOWQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKQEAgLTc5LDYgKzc5LDcgQEAgcHVibGljOgogCiAgICAgdmlydHVh
bCBDYXB0dXJlRGV2aWNlTWFuYWdlciYgYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpID0gMDsK
ICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiB2aWRlb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgPSAwOworICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXImIGRpc3BsYXlDYXB0
dXJlRGV2aWNlTWFuYWdlcigpID0gMDsKIAogICAgIFN0cmluZyBoYXNoU3RyaW5nV2l0aFNhbHQo
Y29uc3QgU3RyaW5nJiBpZCwgY29uc3QgU3RyaW5nJiBoYXNoU2FsdCk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgQ2FwdHVyZURldmljZSBjYXB0dXJlRGV2aWNlV2l0aFVuaXF1ZUlEKGNvbnN0IFN0cmlu
ZyYgaWQsIGNvbnN0IFN0cmluZyYgaGFzaFNhbHQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MuaAppbmRleCBkNjk4NjJkNGJkODY2ZDgwYjNjYjdjNmZjMDY3NWZlMDM0MDYyNTI5Li4w
MWMxNTIzYjgyMGViOTQ2MDg5MjEzMGQ5NmZkYmJjYWQ2NTNkYjMyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MuaApAQCAtODksOSArODksMTcgQEAgcHVibGljOgogICAgIGNvbnN0
IEF0b21pY1N0cmluZyYgZ3JvdXBJZCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3JvdXBJZDsgfQogICAg
IHZvaWQgc2V0R3JvdXBJZChjb25zdCBBdG9taWNTdHJpbmcmIGdyb3VwSWQpIHsgbV9ncm91cElk
ID0gZ3JvdXBJZDsgfQogCisgICAgZW51bSBjbGFzcyBEaXNwbGF5U3VyZmFjZVR5cGUgeworICAg
ICAgICBNb25pdG9yLAorICAgICAgICBXaW5kb3csCisgICAgICAgIEFwcGxpY2F0aW9uLAorICAg
ICAgICBCcm93c2VyLAorICAgICAgICBJbnZhbGlkLAorICAgIH07CisKICAgICBib29sIHN1cHBv
cnRzRGlzcGxheVN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRz
LnN1cHBvcnRzRGlzcGxheVN1cmZhY2UoKTsgfQotICAgIGNvbnN0IEF0b21pY1N0cmluZyYgZGlz
cGxheVN1cmZhY2UoKSBjb25zdCB7IHJldHVybiBtX2Rpc3BsYXlTdXJmYWNlOyB9Ci0gICAgdm9p
ZCBzZXREaXNwbGF5U3VyZmFjZShjb25zdCBBdG9taWNTdHJpbmcmIGRpc3BsYXlTdXJmYWNlKSB7
IG1fZGlzcGxheVN1cmZhY2UgPSBkaXNwbGF5U3VyZmFjZTsgfQorICAgIERpc3BsYXlTdXJmYWNl
VHlwZSBkaXNwbGF5U3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGlzcGxheVN1cmZhY2U7IH0K
KyAgICB2b2lkIHNldERpc3BsYXlTdXJmYWNlKERpc3BsYXlTdXJmYWNlVHlwZSBkaXNwbGF5U3Vy
ZmFjZSkgeyBtX2Rpc3BsYXlTdXJmYWNlID0gZGlzcGxheVN1cmZhY2U7IH0KIAogICAgIGJvb2wg
c3VwcG9ydHNMb2dpY2FsU3VyZmFjZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3Ry
YWludHMuc3VwcG9ydHNMb2dpY2FsU3VyZmFjZSgpOyB9CiAgICAgYm9vbCBsb2dpY2FsU3VyZmFj
ZSgpIGNvbnN0IHsgcmV0dXJuIG1fbG9naWNhbFN1cmZhY2U7IH0KQEAgLTEyMSw3ICsxMjksNyBA
QCBwcml2YXRlOgogICAgIEF0b21pY1N0cmluZyBtX2dyb3VwSWQ7CiAgICAgQXRvbWljU3RyaW5n
IG1fbGFiZWw7CiAKLSAgICBBdG9taWNTdHJpbmcgbV9kaXNwbGF5U3VyZmFjZTsKKyAgICBEaXNw
bGF5U3VyZmFjZVR5cGUgbV9kaXNwbGF5U3VyZmFjZSB7IERpc3BsYXlTdXJmYWNlVHlwZTo6SW52
YWxpZCB9OwogICAgIGJvb2wgbV9sb2dpY2FsU3VyZmFjZSB7IDAgfTsKIAogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3Bs
YXlDYXB0dXJlTWFuYWdlckNvY29hLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5jcHAKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzgy
MGQzMGI5YWZiMGNmYjkzZTZhZWM2Y2I5MGFlM2QyZmVkYmJlNQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2FwdHVyZU1h
bmFnZXJDb2NvYS5jcHAKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
NyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVNUExBUlks
IE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisg
KiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJEaXNw
bGF5Q2FwdHVyZU1hbmFnZXJDb2NvYS5oIgorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSYgRGlzcGxh
eUNhcHR1cmVNYW5hZ2VyQ29jb2E6OnNpbmdsZXRvbigpCit7CisgICAgc3RhdGljIE5ldmVyRGVz
dHJveWVkPERpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hPiBtYW5hZ2VyOworICAgIHJldHVybiBt
YW5hZ2VyLmdldCgpOworfQorCitEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6fkRpc3BsYXlD
YXB0dXJlTWFuYWdlckNvY29hKCkKK3sKK30KKworY29uc3QgVmVjdG9yPENhcHR1cmVEZXZpY2U+
JiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6Y2FwdHVyZURldmljZXMoKQoreworICAgIHJl
dHVybiBtX2Rpc3BsYXlzOworfQorCitzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IERpc3Bs
YXlDYXB0dXJlTWFuYWdlckNvY29hOjpzY3JlZW5DYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJ
RChjb25zdCBTdHJpbmcmIGRldmljZUlEKQoreworICAgIFVOVVNFRF9QQVJBTShkZXZpY2VJRCk7
CisgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKK30KKworc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2
aWNlPiBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYTo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0
ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGlkKQor
eworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6U2NyZWVuOgorICAgICAgICByZXR1cm4gc2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0
ZW50SUQoaWQpOworICAgICAgICBicmVhazsKKyAgICAgICAgICAgIAorICAgIGNhc2UgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6QXBwbGljYXRpb246CisgICAgY2FzZSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpXaW5kb3c6CisgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpCcm93c2VyOgorICAgICAgICBicmVhazsKKworICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZTo6Q2FtZXJhOgorICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZToKKyAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Cisg
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVNYW5h
Z2VyQ29jb2EuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NDk2MmY3Mjc0OGQ2YzdkNzEzNjk0YTQ5OGVhYTI1Yjdi
YmIwNDcwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgKQEAgLTAsMCArMSw1MSBAQAor
LyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsCisgKiBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAq
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkNhcHR1cmVEZXZpY2VN
YW5hZ2VyLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRGlzcGxheUNhcHR1cmVN
YW5hZ2VyQ29jb2EgZmluYWwgOiBwdWJsaWMgQ2FwdHVyZURldmljZU1hbmFnZXIgeworcHVibGlj
OgorICAgIHN0YXRpYyBEaXNwbGF5Q2FwdHVyZU1hbmFnZXJDb2NvYSYgc2luZ2xldG9uKCk7Cisg
ICAgRGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKSA9IGRlZmF1bHQ7CisKK3ByaXZhdGU6Cisg
ICAgdmlydHVhbCB+RGlzcGxheUNhcHR1cmVNYW5hZ2VyQ29jb2EoKTsKKworICAgIGNvbnN0IFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYgY2FwdHVyZURldmljZXMoKSBmaW5hbDsKKyAgICBzdGQ6Om9w
dGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VXaXRoUGVyc2lzdGVudElEKENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0cmluZyYpIGZpbmFsOworICAgIHN0ZDo6b3B0
aW9uYWw8Q2FwdHVyZURldmljZT4gc2NyZWVuQ2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQo
Y29uc3QgU3RyaW5nJik7CisKKyAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gbV9kaXNwbGF5czsK
K307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMjYxY2JhNzA0ZTExNmY0YzA3MzNlZjEzYjA2ZGM1NmM5ODg5ZjkzZAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9EaXNwbGF5Q2Fw
dHVyZVNvdXJjZUNvY29hLmNwcApAQCAtMCwwICsxLDE0OCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
CisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQorICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgorICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCisgKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKKyAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKKyAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCisgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRl
ICJEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hLmgiCisKKyNpZiBFTkFCTEUoTUVESUFfU1RSRUFN
KQorCisjaW5jbHVkZSAiTG9nZ2luZy5oIgorI2luY2x1ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2Uu
aCIKKyNpbmNsdWRlICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgiCisjaW5jbHVkZSAiUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzLmgiCisjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNsdWRl
IDxDb3JlTWVkaWEvQ01TeW5jLmg+CisjaW5jbHVkZSA8bWFjaC9tYWNoX3RpbWUuaD4KKyNpbmNs
dWRlIDxwYWwvYXZmb3VuZGF0aW9uL01lZGlhVGltZUFWRm91bmRhdGlvbi5oPgorI2luY2x1ZGUg
PHBhbC9jZi9Db3JlTWVkaWFTb2Z0TGluay5oPgorI2luY2x1ZGUgPHBhbC9zcGkvY2YvQ29yZUF1
ZGlvU1BJLmg+CisjaW5jbHVkZSA8c3lzL3RpbWUuaD4KKyNpbmNsdWRlIDx3dGYvTWFpblRocmVh
ZC5oPgorI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7Cit1c2luZyBuYW1lc3BhY2UgUEFMOworCitEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpE
aXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hKGNvbnN0IFN0cmluZyYgbmFtZSkKKyAgICA6IFJlYWx0
aW1lTWVkaWFTb3VyY2UoIiIsIFR5cGU6OlZpZGVvLCBuYW1lKQorICAgICwgbV90aW1lcihSdW5M
b29wOjpjdXJyZW50KCksIHRoaXMsICZEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjplbWl0RnJh
bWUpCit7Cit9CisKK0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6On5EaXNwbGF5Q2FwdHVyZVNv
dXJjZUNvY29hKCkKK3sKKyNpZiBQTEFURk9STShJT1MpCisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9GYWN0b3J5KCkudW5zZXRBY3RpdmVTb3VyY2UoKnRo
aXMpOworI2VuZGlmCit9CisKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
IERpc3BsYXlDYXB0dXJlU291cmNlQ29jb2E6OmNhcGFiaWxpdGllcygpIGNvbnN0Cit7CisgICAg
aWYgKCFtX2NhcGFiaWxpdGllcykgeworICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJp
bGl0aWVzIGNhcGFiaWxpdGllcyhzZXR0aW5ncygpLnN1cHBvcnRlZENvbnN0cmFpbnRzKCkpOwor
CisgICAgICAgIC8vIEZJWE1FOiB3aGF0IHNob3VsZCB0aGVzZSBiZT8KKyAgICAgICAgY2FwYWJp
bGl0aWVzLnNldFdpZHRoKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoNzIsIDI4ODApKTsKKyAgICAg
ICAgY2FwYWJpbGl0aWVzLnNldEhlaWdodChDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDQ1LCAxODAw
KSk7CisgICAgICAgIGNhcGFiaWxpdGllcy5zZXRGcmFtZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JS
YW5nZSguMDEsIDYwLjApKTsKKworICAgICAgICBtX2NhcGFiaWxpdGllcyA9IFdURk1vdmUoY2Fw
YWJpbGl0aWVzKTsKKyAgICB9CisgICAgcmV0dXJuIG1fY2FwYWJpbGl0aWVzLnZhbHVlKCk7Cit9
CisKK2NvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgRGlzcGxheUNhcHR1cmVTb3Vy
Y2VDb2NvYTo6c2V0dGluZ3MoKSBjb25zdAoreworICAgIGlmICghbV9jdXJyZW50U2V0dGluZ3Mp
IHsKKyAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIHNldHRpbmdzOworICAgICAg
ICBzZXR0aW5ncy5zZXRGcmFtZVJhdGUoZnJhbWVSYXRlKCkpOworICAgICAgICBhdXRvIHNpemUg
PSB0aGlzLT5zaXplKCk7CisgICAgICAgIGlmIChzaXplLndpZHRoKCkgJiYgc2l6ZS5oZWlnaHQo
KSkgeworICAgICAgICAgICAgc2V0dGluZ3Muc2V0V2lkdGgoc2l6ZS53aWR0aCgpKTsKKyAgICAg
ICAgICAgIHNldHRpbmdzLnNldEhlaWdodChzaXplLmhlaWdodCgpKTsKKyAgICAgICAgfQorCisg
ICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBzdXBwb3J0ZWRD
b25zdHJhaW50czsKKyAgICAgICAgc3VwcG9ydGVkQ29uc3RyYWludHMuc2V0U3VwcG9ydHNGcmFt
ZVJhdGUodHJ1ZSk7CisgICAgICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzV2lk
dGgodHJ1ZSk7CisgICAgICAgIHN1cHBvcnRlZENvbnN0cmFpbnRzLnNldFN1cHBvcnRzSGVpZ2h0
KHRydWUpOworICAgICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0FzcGVjdFJh
dGlvKHRydWUpOworICAgICAgICBzZXR0aW5ncy5zZXRTdXBwb3J0ZWRDb25zdHJhaW50cyhzdXBw
b3J0ZWRDb25zdHJhaW50cyk7CisKKyAgICAgICAgbV9jdXJyZW50U2V0dGluZ3MgPSBXVEZNb3Zl
KHNldHRpbmdzKTsKKyAgICB9CisgICAgcmV0dXJuIG1fY3VycmVudFNldHRpbmdzLnZhbHVlKCk7
Cit9CisKK3ZvaWQgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6c2V0dGluZ3NEaWRDaGFuZ2Uo
KQoreworICAgIG1fY3VycmVudFNldHRpbmdzID0gc3RkOjpudWxsb3B0OworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnNldHRpbmdzRGlkQ2hhbmdlKCk7Cit9CisKK3ZvaWQgRGlzcGxheUNhcHR1
cmVTb3VyY2VDb2NvYTo6c3RhcnRQcm9kdWNpbmdEYXRhKCkKK3sKKyNpZiBQTEFURk9STShJT1Mp
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkudmlkZW9GYWN0b3J5
KCkuc2V0QWN0aXZlU291cmNlKCp0aGlzKTsKKyNlbmRpZgorCisgICAgbV9zdGFydFRpbWUgPSBt
b25vdG9uaWNhbGx5SW5jcmVhc2luZ1RpbWUoKTsKKyAgICBtX3RpbWVyLnN0YXJ0UmVwZWF0aW5n
KDFfbXMgKiBscm91bmQoMTAwMCAvIGZyYW1lUmF0ZSgpKSk7Cit9CisKK3ZvaWQgRGlzcGxheUNh
cHR1cmVTb3VyY2VDb2NvYTo6c3RvcFByb2R1Y2luZ0RhdGEoKQoreworICAgIG1fdGltZXIuc3Rv
cCgpOworICAgIG1fZWxhcHNlZFRpbWUgKz0gbW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkg
LSBtX3N0YXJ0VGltZTsKKyAgICBtX3N0YXJ0VGltZSA9IE5BTjsKK30KKworZG91YmxlIERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2E6OmVsYXBzZWRUaW1lKCkKK3sKKyAgICBpZiAoc3RkOjppc25h
bihtX3N0YXJ0VGltZSkpCisgICAgICAgIHJldHVybiBtX2VsYXBzZWRUaW1lOworCisgICAgcmV0
dXJuIG1fZWxhcHNlZFRpbWUgKyAobW9ub3RvbmljYWxseUluY3JlYXNpbmdUaW1lKCkgLSBtX3N0
YXJ0VGltZSk7Cit9CisKK2Jvb2wgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYTo6YXBwbHlGcmFt
ZVJhdGUoZG91YmxlIHJhdGUpCit7CisgICAgaWYgKG1fdGltZXIuaXNBY3RpdmUoKSkKKyAgICAg
ICAgbV90aW1lci5zdGFydFJlcGVhdGluZygxX21zICogbHJvdW5kKDEwMDAgLyByYXRlKSk7CisK
KyAgICByZXR1cm4gdHJ1ZTsKK30KKwordm9pZCBEaXNwbGF5Q2FwdHVyZVNvdXJjZUNvY29hOjpl
bWl0RnJhbWUoKQoreworICAgIGlmIChtdXRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBn
ZW5lcmF0ZUZyYW1lKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYS5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2Eu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4yY2VjOWRjZTdjYjYzYzk4MDEwMWU1NjNmYjg1YzNkN2NmMmY5Y2YzCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0Rpc3BsYXlDYXB0dXJlU291cmNlQ29jb2EuaApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFCisgKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCisgKiBDT05UUklCVVRPUlMg
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwK
KyAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgorICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQorICogT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoTUVESUFfU1RSRUFNKQorCisjaW5jbHVkZSAiQ2FwdHVyZURldmljZS5oIgorI2luY2x1
ZGUgIlJlYWx0aW1lTWVkaWFTb3VyY2UuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZQdHIuaD4KKyNpbmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV1RGIHsKK2NsYXNzIE1lZGlh
VGltZTsKK30KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBDYXB0dXJlRGV2aWNlSW5m
bzsKKworY2xhc3MgRGlzcGxheUNhcHR1cmVTb3VyY2VDb2NvYSA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlIHsKK3B1YmxpYzoKKworcHJvdGVjdGVkOgorICAgIERpc3BsYXlDYXB0dXJlU291
cmNlQ29jb2EoY29uc3QgU3RyaW5nJiBuYW1lKTsKKyAgICB2aXJ0dWFsIH5EaXNwbGF5Q2FwdHVy
ZVNvdXJjZUNvY29hKCk7CisKKyAgICB2aXJ0dWFsIHZvaWQgZ2VuZXJhdGVGcmFtZSgpID0gMDsK
KyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIG92ZXJyaWRlOworICAgIHZvaWQgc3RvcFBy
b2R1Y2luZ0RhdGEoKSBvdmVycmlkZTsKKworICAgIGRvdWJsZSBlbGFwc2VkVGltZSgpOworICAg
IGJvb2wgYXBwbHlGcmFtZVJhdGUoZG91YmxlKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKworICAg
IGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCisg
ICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkg
Y29uc3QgZmluYWw7CisgICAgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgc2V0dGluZ3NEaWRDaGFuZ2UoKSBmaW5hbDsK
KworICAgIHZvaWQgZW1pdEZyYW1lKCk7CisKKyAgICBtdXRhYmxlIHN0ZDo6b3B0aW9uYWw8UmVh
bHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcz4gbV9jYXBhYmlsaXRpZXM7CisgICAgbXV0YWJs
ZSBzdGQ6Om9wdGlvbmFsPFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncz4gbV9jdXJyZW50U2V0
dGluZ3M7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3Vw
cG9ydGVkQ29uc3RyYWludHM7CisKKyAgICBkb3VibGUgbV9zdGFydFRpbWUgeyBOQU4gfTsKKyAg
ICBkb3VibGUgbV9lbGFwc2VkVGltZSB7IDAgfTsKKworICAgIFJ1bkxvb3A6OlRpbWVyPERpc3Bs
YXlDYXB0dXJlU291cmNlQ29jb2E+IG1fdGltZXI7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWMuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCmluZGV4IDVlYTdhOTMyYzljOTI5Mzk5ZDdhMGI4
NzdiNTZmMjVlZDEzNmJmYjIuLjczNWUyNjM5OTg0ZDFjZmNiZGM1NzE5MTUyNmE5OWNkNDNlYTJj
NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJBVlZpZGVvQ2FwdHVyZVNvdXJjZS5oIgogI2luY2x1
ZGUgIkNvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIkRpc3BsYXlDYXB0dXJlTWFuYWdlckNvY29hLmgi
CiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lZGlhU3RyZWFtUHJpdmF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+CkBAIC01MywxMyArNTQsMTIgQEAgcHVibGljOgog
ICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYToKICAgICAgICAg
ICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZS5wZXJzaXN0ZW50
SWQoKSwgY29uc3RyYWludHMpOwogICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIAotICAgICAg
ICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmU6CiAgICAgICAgIGNh
c2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuOgogICAgICAgICBjYXNlIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OkFwcGxpY2F0aW9uOgogICAgICAgICBjYXNlIENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OldpbmRvdzoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpCcm93c2VyOgotICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlVua25vd246ICAgICAgICAKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlOjpNaWNyb3Bob25lOgorICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlVua25vd246CiAgICAgICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgICAg
IGJyZWFrOwogICAgICAgICB9CkBAIC0xMzIsNiArMTMyLDExIEBAIENhcHR1cmVEZXZpY2VNYW5h
Z2VyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjp2aWRlb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkKICAgICByZXR1cm4gQVZDYXB0dXJlRGV2aWNlTWFuYWdlcjo6c2luZ2xldG9uKCk7CiB9
CiAKK0NhcHR1cmVEZXZpY2VNYW5hZ2VyJiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpk
aXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXIoKQoreworICAgIHJldHVybiBEaXNwbGF5Q2FwdHVy
ZU1hbmFnZXJDb2NvYTo6c2luZ2xldG9uKCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
IAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuaAppbmRleCBlNGMwMGZlYjkyN2FjYThjMTMxYmNmZTI3ZWU0ZGI2
ZWVlYTRhZmUxLi5jNzU0ZjRjOTM5YTBhMjcyNDQzNTExNTgxZDQ1MTZhZTBlZDRhNjBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKQEAgLTYwLDYgKzYwLDcg
QEAgcHJpdmF0ZToKIAogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBhdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkgZmluYWw7CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVy
ZURldmljZU1hbmFnZXIoKSBmaW5hbDsKKyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxh
eUNhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWw7CiAKICAgICBSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBtX2F1ZGlvRmFjdG9yeU92ZXJyaWRlIHsgbnVsbHB0ciB9
OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZS5jcHAKaW5kZXggMzQzNWJkODJlMWY4YmI2N2MzYWZlY2YzYmIzOGI2
NDVmMzY1OWRlMy4uYjcyYTFiNjFiNDhlMzY1ZDEyOTA3Y2Q0ZGRhOTQ0NmY2NTk1ZGQ4MiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZS5jcHAKQEAgLTYxLDYgKzYxLDkgQEAgc3RhdGljIGNvbnN0IEhhc2hNYXA8U3Ry
aW5nLCBNb2NrRGV2aWNlSW5mbz4mIGRldmljZU1hcCgpCiAKICAgICAgICAgICAgIHsgIjIzOWMy
NGIyLTJiMTUtMTFlMy04MjI0LTA4MDAyMDBjOWE2NiIsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYSwgIk1vY2sgdmlkZW8gZGV2aWNlIDEiLCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6TW9ja0RldmljZTo6Q2FtZXJhMSB9LAogICAgICAgICAgICAgeyAiMjM5YzI0YjMtMmIxNS0x
MWUzLTgyMjQtMDgwMDIwMGM5YTY2IiwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJh
LCAiTW9jayB2aWRlbyBkZXZpY2UgMiIsIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpNb2NrRGV2
aWNlOjpDYW1lcmEyIH0sCisKKyAgICAgICAgICAgIHsgIlNDUkVFTi0xIiwgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6U2NyZWVuLCAiTW9jayBzY3JlZW4gZGV2aWNlIDEiLCBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZTo6TW9ja0RldmljZTo6U2NyZWVuMSB9LAorICAgICAgICAgICAgeyAiU0NS
RUVOLTIiLCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4sICJNb2NrIHNjcmVlbiBk
ZXZpY2UgMiIsIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpNb2NrRGV2aWNlOjpTY3JlZW4yIH0s
CiAgICAgICAgIH07CiAKICAgICAgICAgSGFzaE1hcDxTdHJpbmcsIE1vY2tEZXZpY2VJbmZvPiBt
YXA7CkBAIC0xMjMsNiArMTI2LDI1IEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNlcygpCiAgICAgcmV0dXJuIGluZm87CiB9CiAKK1Zl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmRpc3BsYXlEZXZp
Y2VzKCkKK3sKKyAgICBzdGF0aWMgYXV0byBkZXZpY2VzID0gbWFrZU5ldmVyRGVzdHJveWVkKFtd
IHsKKyAgICAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IHZlY3RvcjsKKworICAgICAgICBhdXRv
IGNhcHR1cmVEZXZpY2UgPSBjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4sIEFTQ0lJTGl0ZXJhbCgiU0NSRUVOLTEiKSk7CisgICAg
ICAgIEFTU0VSVChjYXB0dXJlRGV2aWNlKTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZChXVEZNb3Zl
KGNhcHR1cmVEZXZpY2UudmFsdWUoKSkpOworCisgICAgICAgIGNhcHR1cmVEZXZpY2UgPSBjYXB0
dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3Jl
ZW4sIEFTQ0lJTGl0ZXJhbCgiU0NSRUVOLTIiKSk7CisgICAgICAgIEFTU0VSVChjYXB0dXJlRGV2
aWNlKTsKKyAgICAgICAgdmVjdG9yLmFwcGVuZChXVEZNb3ZlKGNhcHR1cmVEZXZpY2UudmFsdWUo
KSkpOworCisgICAgICAgIHJldHVybiB2ZWN0b3I7CisgICAgfSgpKTsKKworICAgIHJldHVybiBk
ZXZpY2VzOworfQorCiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6TW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2UoY29uc3QgU3RyaW5nJiBpZCwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBj
b25zdCBTdHJpbmcmIG5hbWUpCiAgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKGlkLCB0eXBlLCBu
YW1lKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDQ5ZGU4YjhlN2QyMmVhODAwMDhmOWU5ZDM1ZDc1YmE5
NjU2ZWE0M2EuLmExZDNlOWI2MWI2MTEzMzY1YTc4NDMwMDI4M2I5NGE1ZTExZmE3NWYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlLmgKQEAgLTQ0LDEwICs0NCwxMSBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgVmVjdG9y
PENhcHR1cmVEZXZpY2U+JiBhdWRpb0RldmljZXMoKTsKICAgICBzdGF0aWMgVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiB2aWRlb0RldmljZXMoKTsKKyAgICBzdGF0aWMgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+JiBkaXNwbGF5RGV2aWNlcygpOwogCiAgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8Q2FwdHVy
ZURldmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZSwgY29uc3QgU3RyaW5nJik7CiAKLSAgICBlbnVtIGNsYXNzIE1vY2tEZXZpY2UgeyBJ
bnZhbGlkLCBNaWNyb3Bob25lMSwgTWljcm9waG9uZTIsIENhbWVyYTEsIENhbWVyYTIgfTsKKyAg
ICBlbnVtIGNsYXNzIE1vY2tEZXZpY2UgeyBJbnZhbGlkLCBNaWNyb3Bob25lMSwgTWljcm9waG9u
ZTIsIENhbWVyYTEsIENhbWVyYTIsIFNjcmVlbjEsIFNjcmVlbjIgfTsKIAogcHJvdGVjdGVkOgog
ICAgIE1vY2tSZWFsdGltZU1lZGlhU291cmNlKGNvbnN0IFN0cmluZyYgaWQsIFR5cGUsIGNvbnN0
IFN0cmluZyYgbmFtZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDRlZmRmNzJj
ZmFjYWM4YWVlZjdmZWM1NWIxMjc5MDA4MGQ4MzA2ODcuLjc3YTBmOGVkZDNjYjdmNmFlMjMzYjc1
MDMwMTIxNTM2ODIwMDcwMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC0zMCwx
NiArMzAsOSBAQAogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIAotI2luY2x1ZGUgIkNhcHR1
cmVEZXZpY2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCi0jaW5jbHVkZSAiTWVkaWFTdHJlYW0u
aCIKLSNpbmNsdWRlICJNZWRpYVN0cmVhbVByaXZhdGUuaCIKLSNpbmNsdWRlICJNZWRpYVN0cmVh
bVRyYWNrLmgiCiAjaW5jbHVkZSAiTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKLSNpbmNsdWRl
ICJNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgogI2luY2x1ZGUgIk1vY2tSZWFsdGltZVZpZGVv
U291cmNlLmgiCi0jaW5jbHVkZSAiUmVhbHRpbWVNZWRpYVNvdXJjZS5oIgotI2luY2x1ZGUgIlJl
YWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMuaCIKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0
cm95ZWQuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmlu
ZGV4IDA0N2JhYWZjNGY4MDhmYTVmMWVkZmFmMWRkNGY0YjFmMGQ1NGZjZTAuLjBmOTJmOWQ0M2Y5
ODliYTZlOGMzYWE4ZjM1YzQwNGViOGI0MjlmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgK
QEAgLTUxLDYgKzUxLDcgQEAgcHJpdmF0ZToKIAogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyJiBh
dWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgZmluYWwgeyByZXR1cm4gbV9hdWRpb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyOyB9CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXImIHZpZGVvQ2FwdHVyZURl
dmljZU1hbmFnZXIoKSBmaW5hbCB7IHJldHVybiBtX3ZpZGVvQ2FwdHVyZURldmljZU1hbmFnZXI7
IH0KKyAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciYgZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2Vy
KCkgZmluYWwgeyByZXR1cm4gbV9kaXNwbGF5Q2FwdHVyZURldmljZU1hbmFnZXI7IH0KIAogICAg
IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPENhcHR1cmVEZXZpY2U+IGNhcHR1cmVEZXZpY2VXaXRoUGVy
c2lzdGVudElEKENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFN0cmluZyYpOwogCkBA
IC02NCw5ICs2NSwxNSBAQCBwcml2YXRlOgogICAgICAgICBjb25zdCBWZWN0b3I8Q2FwdHVyZURl
dmljZT4mIGNhcHR1cmVEZXZpY2VzKCkgZmluYWwgeyByZXR1cm4gTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2U6OnZpZGVvRGV2aWNlcygpOyB9CiAgICAgICAgIHN0ZDo6b3B0aW9uYWw8Q2FwdHVyZURl
dmljZT4gY2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQoQ2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZSB0eXBlLCBjb25zdCBTdHJpbmcmIGlkKSBmaW5hbCB7IHJldHVybiBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Y2FwdHVyZURldmljZVdpdGhQZXJzaXN0ZW50SUQodHlwZSwgaWQpOyB9CiAg
ICAgfTsKKyAgICBjbGFzcyBNb2NrRGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyIGZpbmFsIDog
cHVibGljIENhcHR1cmVEZXZpY2VNYW5hZ2VyIHsKKyAgICBwcml2YXRlOgorICAgICAgICBjb25z
dCBWZWN0b3I8Q2FwdHVyZURldmljZT4mIGNhcHR1cmVEZXZpY2VzKCkgZmluYWwgeyByZXR1cm4g
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmRpc3BsYXlEZXZpY2VzKCk7IH0KKyAgICAgICAgc3Rk
OjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IFN0cmluZyYgaWQpIGZpbmFsIHsg
cmV0dXJuIE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3Rl
bnRJRCh0eXBlLCBpZCk7IH0KKyAgICB9OwogCiAgICAgTW9ja0F1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIgbV9hdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOwogICAgIE1vY2tWaWRlb0NhcHR1cmVE
ZXZpY2VNYW5hZ2VyIG1fdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcjsKKyAgICBNb2NrRGlzcGxh
eUNhcHR1cmVEZXZpY2VNYW5hZ2VyIG1fZGlzcGxheUNhcHR1cmVEZXZpY2VNYW5hZ2VyOwogfTsK
IAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmNwcAppbmRleCBkYmE1YTEwODFkYTlkZWIyMTliMzA0ZDE1NTQ1ZDhi
YzQ1NzJhYWRmLi41ZmRjM2Y1MmRkODE5ZjQ5NDkwOGNhYmJjY2VlN2YxZDVjMDczZTk4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291
cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcApAQCAtNTgsMTAgKzU4LDkgQEAgcHVibGljOgogCiAgICAgICAgIHN3aXRj
aCAoZGV2aWNlLnR5cGUoKSkgewogICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkNhbWVyYToKKyAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3Jl
ZW46CiAgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShk
ZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CiAgICAg
ICAgICAgICBicmVhazsKLQotICAgICAgICBjYXNlIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlNjcmVlbjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBcHBsaWNh
dGlvbjoKICAgICAgICAgY2FzZSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3c6CiAg
ICAgICAgIGNhc2UgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QnJvd3NlcjoKQEAgLTExOSw2
ICsxMTgsMTIgQEAgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6Ok1vY2tSZWFsdGltZVZpZGVvU291
cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFMKICAgICAgICAgc2V0RnJhbWVSYXRl
KDE1KTsKICAgICAgICAgc2V0RmFjaW5nTW9kZShSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6
OkVudmlyb25tZW50KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2NrRGV2aWNlOjpTY3Jl
ZW4xOgorICAgICAgICBzZXRGcmFtZVJhdGUoMzApOworICAgICAgICBicmVhazsKKyAgICBjYXNl
IE1vY2tEZXZpY2U6OlNjcmVlbjI6CisgICAgICAgIHNldEZyYW1lUmF0ZSgxMCk7CisgICAgICAg
IGJyZWFrOwogICAgIGNhc2UgTW9ja0RldmljZTo6TWljcm9waG9uZTE6CiAgICAgY2FzZSBNb2Nr
RGV2aWNlOjpNaWNyb3Bob25lMjoKICAgICBjYXNlIE1vY2tEZXZpY2U6OkludmFsaWQ6CkBAIC0x
NzAsNyArMTc1LDEyIEBAIGRvdWJsZSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZWxhcHNlZFRp
bWUoKQogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjp1cGRhdGVTZXR0aW5ncyhSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewotICAgIHNldHRpbmdzLnNldEZh
Y2luZ01vZGUoZmFjaW5nTW9kZSgpKTsKKyAgICBpZiAobW9ja0NhbWVyYSgpKQorICAgICAgICBz
ZXR0aW5ncy5zZXRGYWNpbmdNb2RlKGZhY2luZ01vZGUoKSk7CisgICAgZWxzZSB7CisgICAgICAg
IHNldHRpbmdzLnNldERpc3BsYXlTdXJmYWNlKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6
RGlzcGxheVN1cmZhY2VUeXBlOjpNb25pdG9yKTsKKyAgICAgICAgc2V0dGluZ3Muc2V0TG9naWNh
bFN1cmZhY2UodHJ1ZSk7CisgICAgfQogICAgIHNldHRpbmdzLnNldEZyYW1lUmF0ZShmcmFtZVJh
dGUoKSk7CiAgICAgSW50U2l6ZSBzaXplID0gdGhpcy0+c2l6ZSgpOwogICAgIHNldHRpbmdzLnNl
dFdpZHRoKHNpemUud2lkdGgoKSk7CkBAIC0xODEsMTUgKzE5MSwyMSBAQCB2b2lkIE1vY2tSZWFs
dGltZVZpZGVvU291cmNlOjp1cGRhdGVTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmIHNldHRpbgogCiB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjppbml0aWFsaXplQ2Fw
YWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcykK
IHsKLSAgICBpZiAoZGV2aWNlKCkgPT0gTW9ja0RldmljZTo6Q2FtZXJhMSkKLSAgICAgICAgY2Fw
YWJpbGl0aWVzLmFkZEZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpVc2Vy
KTsKLSAgICBlbHNlCi0gICAgICAgIGNhcGFiaWxpdGllcy5hZGRGYWNpbmdNb2RlKFJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5nczo6RW52aXJvbm1lbnQpOwotCi0gICAgY2FwYWJpbGl0aWVzLnNl
dFdpZHRoKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMzIwLCAxOTIwKSk7Ci0gICAgY2FwYWJpbGl0
aWVzLnNldEhlaWdodChDYXBhYmlsaXR5VmFsdWVPclJhbmdlKDI0MCwgMTA4MCkpOwotICAgIGNh
cGFiaWxpdGllcy5zZXRGcmFtZVJhdGUoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSgxNS4wLCA2MC4w
KSk7Ci0gICAgY2FwYWJpbGl0aWVzLnNldEFzcGVjdFJhdGlvKENhcGFiaWxpdHlWYWx1ZU9yUmFu
Z2UoNCAvIDMuMCwgMTYgLyA5LjApKTsKKyAgICBpZiAobW9ja0NhbWVyYSgpKSB7CisgICAgICAg
IGlmIChkZXZpY2UoKSA9PSBNb2NrRGV2aWNlOjpDYW1lcmExKQorICAgICAgICAgICAgY2FwYWJp
bGl0aWVzLmFkZEZhY2luZ01vZGUoUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpVc2VyKTsK
KyAgICAgICAgZWxzZQorICAgICAgICAgICAgY2FwYWJpbGl0aWVzLmFkZEZhY2luZ01vZGUoUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpFbnZpcm9ubWVudCk7CisKKyAgICAgICAgY2FwYWJp
bGl0aWVzLnNldFdpZHRoKENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoMzIwLCAxOTIwKSk7CisgICAg
ICAgIGNhcGFiaWxpdGllcy5zZXRIZWlnaHQoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSgyNDAsIDEw
ODApKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldEZyYW1lUmF0ZShDYXBhYmlsaXR5VmFsdWVP
clJhbmdlKDE1LjAsIDYwLjApKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldEFzcGVjdFJhdGlv
KENhcGFiaWxpdHlWYWx1ZU9yUmFuZ2UoNCAvIDMuMCwgMTYgLyA5LjApKTsKKyAgICB9IGVsc2Ug
eworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0V2lkdGgoQ2FwYWJpbGl0eVZhbHVlT3JSYW5nZSg3
MiwgMjg4MCkpOworICAgICAgICBjYXBhYmlsaXRpZXMuc2V0SGVpZ2h0KENhcGFiaWxpdHlWYWx1
ZU9yUmFuZ2UoNDUsIDE4MDApKTsKKyAgICAgICAgY2FwYWJpbGl0aWVzLnNldEZyYW1lUmF0ZShD
YXBhYmlsaXR5VmFsdWVPclJhbmdlKC4wMSwgNjAuMCkpOworICAgIH0KIH0KIAogdm9pZCBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6aW5pdGlhbGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMp
CkBAIC0xOTgsNyArMjE0LDggQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6aW5pdGlh
bGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICBzdXBwb3J0
ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0hlaWdodCh0cnVlKTsKICAgICBzdXBwb3J0ZWRDb25z
dHJhaW50cy5zZXRTdXBwb3J0c0FzcGVjdFJhdGlvKHRydWUpOwogICAgIHN1cHBvcnRlZENvbnN0
cmFpbnRzLnNldFN1cHBvcnRzRnJhbWVSYXRlKHRydWUpOwotICAgIHN1cHBvcnRlZENvbnN0cmFp
bnRzLnNldFN1cHBvcnRzRmFjaW5nTW9kZSh0cnVlKTsKKyAgICBpZiAobW9ja0NhbWVyYSgpKQor
ICAgICAgICBzdXBwb3J0ZWRDb25zdHJhaW50cy5zZXRTdXBwb3J0c0ZhY2luZ01vZGUodHJ1ZSk7
CiB9CiAKIGJvb2wgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmFwcGx5RnJhbWVSYXRlKGRvdWJs
ZSByYXRlKQpAQCAtMzUyLDI3ICszNjksMzIgQEAgdm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZTo6ZHJhd1RleHQoR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0KQogICAgIHN0YXRzTG9jYXRpb24u
bW92ZSgwLCBtX3N0YXRzRm9udFNpemUpOwogICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNGb250
LCBUZXh0UnVuKChTdHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7CiAKLSAgICBj
b25zdCBjaGFyKiBjYW1lcmE7Ci0gICAgc3dpdGNoIChmYWNpbmdNb2RlKCkpIHsKLSAgICBjYXNl
IFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VXNlcjoKLSAgICAgICAgY2FtZXJhID0gIlVz
ZXIgZmFjaW5nIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3M6OkVudmlyb25tZW50OgotICAgICAgICBjYW1lcmEgPSAiRW52aXJvbm1lbnQgZmFj
aW5nIjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3M6OkxlZnQ6Ci0gICAgICAgIGNhbWVyYSA9ICJMZWZ0IGZhY2luZyI7Ci0gICAgICAgIGJyZWFr
OwotICAgIGNhc2UgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpSaWdodDoKLSAgICAgICAg
Y2FtZXJhID0gIlJpZ2h0IGZhY2luZyI7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzOjpVbmtub3duOgotICAgICAgICBjYW1lcmEgPSAiVW5rbm93
biI7Ci0gICAgICAgIGJyZWFrOworICAgIGlmIChtb2NrQ2FtZXJhKCkpIHsKKyAgICAgICAgY29u
c3QgY2hhciogY2FtZXJhOworICAgICAgICBzd2l0Y2ggKGZhY2luZ01vZGUoKSkgeworICAgICAg
ICBjYXNlIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5nczo6VXNlcjoKKyAgICAgICAgICAgIGNh
bWVyYSA9ICJVc2VyIGZhY2luZyI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBS
ZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkVudmlyb25tZW50OgorICAgICAgICAgICAgY2Ft
ZXJhID0gIkVudmlyb25tZW50IGZhY2luZyI7CisgICAgICAgICAgICBicmVhazsKKyAgICAgICAg
Y2FzZSBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkxlZnQ6CisgICAgICAgICAgICBjYW1l
cmEgPSAiTGVmdCBmYWNpbmciOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpSaWdodDoKKyAgICAgICAgICAgIGNhbWVyYSA9ICJS
aWdodCBmYWNpbmciOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOjpVbmtub3duOgorICAgICAgICAgICAgY2FtZXJhID0gIlVua25v
d24iOworICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgICAgc3RyaW5nID0gU3Ry
aW5nOjpmb3JtYXQoIkNhbWVyYTogJXMiLCBjYW1lcmEpOworICAgICAgICBzdGF0c0xvY2F0aW9u
Lm1vdmUoMCwgbV9zdGF0c0ZvbnRTaXplKTsKKyAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdGF0
c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1ZpZXcoc3RyaW5nKSkpLCBzdGF0c0xvY2F0aW9uKTsKKyAg
ICB9IGVsc2UgeworICAgICAgICBzdGF0c0xvY2F0aW9uLm1vdmUoMCwgbV9zdGF0c0ZvbnRTaXpl
KTsKKyAgICAgICAgY29udGV4dC5kcmF3VGV4dChzdGF0c0ZvbnQsIFRleHRSdW4oKFN0cmluZ1Zp
ZXcoZGV2aWNlKCkgPT0gTW9ja0RldmljZTo6U2NyZWVuMSA/ICJTY3JlZW4gMSIgOiAiU2NyZWVu
IDIiKSkpLCBzdGF0c0xvY2F0aW9uKTsKICAgICB9Ci0gICAgc3RyaW5nID0gU3RyaW5nOjpmb3Jt
YXQoIkNhbWVyYTogJXMiLCBjYW1lcmEpOwotICAgIHN0YXRzTG9jYXRpb24ubW92ZSgwLCBtX3N0
YXRzRm9udFNpemUpOwotICAgIGNvbnRleHQuZHJhd1RleHQoc3RhdHNGb250LCBUZXh0UnVuKChT
dHJpbmdWaWV3KHN0cmluZykpKSwgc3RhdHNMb2NhdGlvbik7CiAKICAgICBGbG9hdFBvaW50IGJp
cEJvcExvY2F0aW9uKHNpemUud2lkdGgoKSAqIC42LCBzaXplLmhlaWdodCgpICogLjYpOwogICAg
IHVuc2lnbmVkIGZyYW1lTW9kID0gbV9mcmFtZU51bWJlciAlIDYwOwpAQCAtNDE4LDYgKzQ0MCwx
MiBAQCB2b2lkIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpnZW5lcmF0ZUZyYW1lKCkKICAgICBj
YXNlIE1vY2tEZXZpY2U6OkNhbWVyYTI6CiAgICAgICAgIGZpbGxDb2xvciA9IENvbG9yOjpkYXJr
R3JheTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBNb2NrRGV2aWNlOjpTY3JlZW4xOgorICAg
ICAgICBmaWxsQ29sb3IgPSBDb2xvcjo6bGlnaHRHcmF5OworICAgICAgICBicmVhazsKKyAgICBj
YXNlIE1vY2tEZXZpY2U6OlNjcmVlbjI6CisgICAgICAgIGZpbGxDb2xvciA9IENvbG9yOjp5ZWxs
b3c7CisgICAgICAgIGJyZWFrOwogICAgIGNhc2UgTW9ja0RldmljZTo6TWljcm9waG9uZTE6CiAg
ICAgY2FzZSBNb2NrRGV2aWNlOjpNaWNyb3Bob25lMjoKICAgICBjYXNlIE1vY2tEZXZpY2U6Oklu
dmFsaWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmgKaW5kZXggYTBhNWU2ZjM4OTkzODc2OTlhNzQ3NWQ4NWQ0ZTBlMzJm
YjYwMDU1OS4uOTRjOGJlOWJhZjRjNWM2MGFkYzZhMjE4ODA2YWY2ZmRiMzBlZGNmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuaApAQCAtODMsNiArODMsOSBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBkZWxheVNhbXBs
ZXMoZmxvYXQpIG92ZXJyaWRlOwogCisgICAgYm9vbCBtb2NrQ2FtZXJhKCkgY29uc3QgeyByZXR1
cm4gZGV2aWNlKCkgPT0gTW9ja0RldmljZTo6Q2FtZXJhMSB8fCBkZXZpY2UoKSA9PSBNb2NrRGV2
aWNlOjpDYW1lcmEyOyB9CisgICAgYm9vbCBtb2NrU2NyZWVuKCkgY29uc3QgeyByZXR1cm4gZGV2
aWNlKCkgPT0gTW9ja0RldmljZTo6U2NyZWVuMSB8fCBkZXZpY2UoKSA9PSBNb2NrRGV2aWNlOjpT
Y3JlZW4yOyB9CisKICAgICBmbG9hdCBtX2Jhc2VGb250U2l6ZSB7IDAgfTsKICAgICBmbG9hdCBt
X2JpcEJvcEZvbnRTaXplIHsgMCB9OwogICAgIGZsb2F0IG1fc3RhdHNGb250U2l6ZSB7IDAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuY3BwCmluZGV4
IDQ5Y2U1NmFhNTVhMjEyZTlkNjNkZDk2NjkwMTQ2YzUyYTUxNGU4ZTkuLmI1NjVlY2JlZDdhYjVh
YmE5YmNjNzYyOTY4Yzg1MzNiNjdjYWZmZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViQ29yZUFyZ3VtZW50Q29kZXJzLmNwcApAQCAtMjU5OCw0NyArMjU5OCw2IEBAIGJvb2wgQXJn
dW1lbnRDb2RlcjxNZWRpYUNvbnN0cmFpbnRzPjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIsIFdl
YkNvcmU6Ok1lZGlhQ29uCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmRl
dmljZUlESGFzaFNhbHQpCiAgICAgICAgICYmIGRlY29kZXIuZGVjb2RlKGNvbnN0cmFpbnRzLmlz
VmFsaWQpOwogfQotCi12b2lkIEFyZ3VtZW50Q29kZXI8Q2FwdHVyZURldmljZT46OmVuY29kZShF
bmNvZGVyJiBlbmNvZGVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiBkZXZpY2UpCi17
Ci0gICAgZW5jb2RlciA8PCBkZXZpY2UucGVyc2lzdGVudElkKCk7Ci0gICAgZW5jb2RlciA8PCBk
ZXZpY2UubGFiZWwoKTsKLSAgICBlbmNvZGVyIDw8IGRldmljZS5ncm91cElkKCk7Ci0gICAgZW5j
b2RlciA8PCBkZXZpY2UuZW5hYmxlZCgpOwotICAgIGVuY29kZXIuZW5jb2RlRW51bShkZXZpY2Uu
dHlwZSgpKTsKLX0KLQotc3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBBcmd1bWVudENvZGVy
PENhcHR1cmVEZXZpY2U+OjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKLXsKLSAgICBzdGQ6Om9w
dGlvbmFsPFN0cmluZz4gcGVyc2lzdGVudElkOwotICAgIGRlY29kZXIgPj4gcGVyc2lzdGVudElk
OwotICAgIGlmICghcGVyc2lzdGVudElkKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owot
Ci0gICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGxhYmVsOwotICAgIGRlY29kZXIgPj4gbGFiZWw7
Ci0gICAgaWYgKCFsYWJlbCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0
ZDo6b3B0aW9uYWw8U3RyaW5nPiBncm91cElkOwotICAgIGRlY29kZXIgPj4gZ3JvdXBJZDsKLSAg
ICBpZiAoIWdyb3VwSWQpCi0gICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Ci0KLSAgICBzdGQ6
Om9wdGlvbmFsPGJvb2w+IGVuYWJsZWQ7Ci0gICAgZGVjb2RlciA+PiBlbmFibGVkOwotICAgIGlm
ICghZW5hYmxlZCkKLSAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKLQotICAgIHN0ZDo6b3B0
aW9uYWw8Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZT4gdHlwZTsKLSAgICBkZWNvZGVyID4+IHR5
cGU7Ci0gICAgaWYgKCF0eXBlKQotICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OwotCi0gICAg
c3RkOjpvcHRpb25hbDxDYXB0dXJlRGV2aWNlPiBkZXZpY2UgPSB7eyBXVEZNb3ZlKCpwZXJzaXN0
ZW50SWQpLCBXVEZNb3ZlKCp0eXBlKSwgV1RGTW92ZSgqbGFiZWwpLCBXVEZNb3ZlKCpncm91cElk
KSB9fTsKLSAgICBkZXZpY2UtPnNldEVuYWJsZWQoKmVuYWJsZWQpOwotICAgIHJldHVybiBkZXZp
Y2U7Ci19CiAjZW5kaWYKIAogI2lmIEVOQUJMRShJTkRFWEVEX0RBVEFCQVNFKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2Uv
V2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCBhMmNkMDliYjFjZDUz
MDU2NzVmOGY4YTIyOWM2ZDRjOWE3MDYzZGVkLi44YzY5ZDFmZWMzY2ZjNWQ2YjBmZDRkMWVjOTI2
MDUxNTA2MjA4M2I4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJDb3JlQXJndW1lbnRD
b2RlcnMuaApAQCAtMjgsNyArMjgsNiBAQAogI2luY2x1ZGUgIkFyZ3VtZW50Q29kZXJzLmgiCiAj
aW5jbHVkZSA8V2ViQ29yZS9BdXRvcGxheUV2ZW50Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9DYWNo
ZVN0b3JhZ2VDb25uZWN0aW9uLmg+Ci0jaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9Db2xvclNwYWNlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EaWFn
bm9zdGljTG9nZ2luZ0NsaWVudC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBl
cy5oPgpAQCAtMTUyLDcgKzE1MSw2IEBAIGNsYXNzIE1lZGlhU2Vzc2lvbk1ldGFkYXRhOwogI2Vu
ZGlmCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotY2xhc3MgQ2FwdHVyZURldmljZTsKIHN0
cnVjdCBNZWRpYUNvbnN0cmFpbnRzOwogI2VuZGlmCiAKQEAgLTY0OCwxMSArNjQ2LDYgQEAgdGVt
cGxhdGU8PiBzdHJ1Y3QgQXJndW1lbnRDb2RlcjxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzPiB7
CiAgICAgc3RhdGljIHZvaWQgZW5jb2RlKEVuY29kZXImLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNv
bnN0cmFpbnRzJik7CiAgICAgc3RhdGljIGJvb2wgZGVjb2RlKERlY29kZXImLCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzJik7CiB9OwotCi10ZW1wbGF0ZTw+IHN0cnVjdCBBcmd1bWVudENvZGVy
PFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IHsKLSAgICBzdGF0aWMgdm9pZCBlbmNvZGUoRW5jb2Rl
ciYsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmKTsKLSAgICBzdGF0aWMgc3RkOjpvcHRp
b25hbDxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiBkZWNvZGUoRGVjb2RlciYpOwotfTsKICNlbmRp
ZgogCiAjaWYgRU5BQkxFKElOREVYRURfREFUQUJBU0UpCkBAIC03NzAsMTQgKzc2Myw2IEBAIHRl
bXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6SW5kZXhlZERCOjpHZXRBbGxUeXBl
PiB7CiAjZW5kaWYKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi10ZW1wbGF0ZTw+IHN0cnVj
dCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU+IHsKLSAgICB1
c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlLAotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpVbmtub3duLAotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpN
aWNyb3Bob25lLAotICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpD
YW1lcmEKLSAgICA+OwotfTsKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZT4gewogICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1
ZXM8CiAgICAgICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGUuaApp
bmRleCBjMGI0MGIwNDJmOTQyYjgyNmIzOWQ4ZGM5M2E0OTFkOWRjNTg5MTRiLi5hNWE3MDg3OGI4
MzkxYzY3MzMyYzNlZGQ5MTEwZTM3MjVmNzBjNGI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlLmgKQEAgLTU5LDYgKzU5LDcg
QEAgdHlwZWRlZiBOU19PUFRJT05TKE5TSW50ZWdlciwgX1dLTWVkaWFNdXRlZFN0YXRlKSB7CiB0
eXBlZGVmIE5TX09QVElPTlMoTlNVSW50ZWdlciwgX1dLQ2FwdHVyZURldmljZXMpIHsKICAgICBf
V0tDYXB0dXJlRGV2aWNlTWljcm9waG9uZSA9IDEgPDwgMCwKICAgICBfV0tDYXB0dXJlRGV2aWNl
Q2FtZXJhID0gMSA8PCAxLAorICAgIF9XS0NhcHR1cmVEZXZpY2VEaXNwbGF5ID0gMSA8PCAyLAog
fSBXS19BUElfQVZBSUxBQkxFKG1hY29zeCgxMC4xMyksIGlvcygxMS4wKSk7CiAKICNpZiBUQVJH
RVRfT1NfSVBIT05FCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
SURlbGVnYXRlLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVUlEZWxlZ2F0ZS5t
bQppbmRleCBhMjg1MTkwYzUyZGY0YjcwMjJjMDc2MmM1ODM3MzU1NDZkMzk3NWZjLi43ZTlmYTBj
YmFiNDY2YTg0ZWNiY2VkMjE3N2ExMGM3YWViOWI0NmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9VSURlbGVnYXRlLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1VJRGVsZWdhdGUubW0KQEAgLTc5Myw4ICs3OTMsOCBAQCBzdGF0aWMgdm9p
ZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2ViRnJhbWVQ
cm94eSYgZnJhbWUsCiAgICAgICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5kZW55KFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVy
bWlzc2lvbkRlbmllZCk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KLSAgICAgICAg
Y29uc3QgU3RyaW5nJiB2aWRlb0RldmljZVVJRCA9IHByb3RlY3RlZFJlcXVlc3QtPnJlcXVpcmVz
VmlkZW8oKSA/IHByb3RlY3RlZFJlcXVlc3QtPnZpZGVvRGV2aWNlVUlEcygpLmZpcnN0KCkgOiBT
dHJpbmcoKTsKLSAgICAgICAgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCA9IHByb3RlY3Rl
ZFJlcXVlc3QtPnJlcXVpcmVzQXVkaW8oKSA/IHByb3RlY3RlZFJlcXVlc3QtPmF1ZGlvRGV2aWNl
VUlEcygpLmZpcnN0KCkgOiBTdHJpbmcoKTsKKyAgICAgICAgY29uc3QgU3RyaW5nJiB2aWRlb0Rl
dmljZVVJRCA9IChwcm90ZWN0ZWRSZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpIHx8IHBy
b3RlY3RlZFJlcXVlc3QtPnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKSkgPyBwcm90ZWN0ZWRSZXF1
ZXN0LT52aWRlb0RldmljZVVJRHMoKS5maXJzdCgpIDogU3RyaW5nKCk7CisgICAgICAgIGNvbnN0
IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQgPSBwcm90ZWN0ZWRSZXF1ZXN0LT5yZXF1aXJlc0F1ZGlv
Q2FwdHVyZSgpID8gcHJvdGVjdGVkUmVxdWVzdC0+YXVkaW9EZXZpY2VVSURzKCkuZmlyc3QoKSA6
IFN0cmluZygpOwogICAgICAgICBwcm90ZWN0ZWRSZXF1ZXN0LT5hbGxvdyhhdWRpb0RldmljZVVJ
RCwgdmlkZW9EZXZpY2VVSUQpOwogICAgIH0pOwogCkBAIC04MDMsMTAgKzgwMywxNCBAQCBzdGF0
aWMgdm9pZCByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoY29uc3QgV2Vi
RnJhbWVQcm94eSYgZnJhbWUsCiAgICAgV2ViQ29yZTo6VVJMIG1haW5GcmFtZVVSTChXZWJDb3Jl
OjpVUkwoKSwgbWFpbkZyYW1lLT51cmwoKSk7CiAKICAgICBfV0tDYXB0dXJlRGV2aWNlcyBkZXZp
Y2VzID0gMDsKLSAgICBpZiAocmVxdWVzdC5yZXF1aXJlc0F1ZGlvKCkpCisgICAgaWYgKHJlcXVl
c3QucmVxdWlyZXNBdWRpb0NhcHR1cmUoKSkKICAgICAgICAgZGV2aWNlcyB8PSBfV0tDYXB0dXJl
RGV2aWNlTWljcm9waG9uZTsKLSAgICBpZiAocmVxdWVzdC5yZXF1aXJlc1ZpZGVvKCkpCisgICAg
aWYgKHJlcXVlc3QucmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkKICAgICAgICAgZGV2aWNlcyB8PSBf
V0tDYXB0dXJlRGV2aWNlQ2FtZXJhOworICAgIGlmIChyZXF1ZXN0LnJlcXVpcmVzRGlzcGxheUNh
cHR1cmUoKSkgeworICAgICAgICBkZXZpY2VzIHw9IF9XS0NhcHR1cmVEZXZpY2VEaXNwbGF5Owor
ICAgICAgICBBU1NFUlQoIShkZXZpY2VzICYgX1dLQ2FwdHVyZURldmljZUNhbWVyYSkpOworICAg
IH0KIAogICAgIGF1dG8gcHJvdGVjdGVkV2ViVmlldyA9IFJldGFpblB0cjxXS1dlYlZpZXc+KCZ3
ZWJWaWV3KTsKICAgICBbZGVsZWdhdGUgX3dlYlZpZXc6cHJvdGVjdGVkV2ViVmlldy5nZXQoKSBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXM6ZGV2aWNlcyB1cmw6cmVxdWVz
dEZyYW1lVVJMIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkwgZGVjaXNpb25IYW5kbGVyOmRlY2lz
aW9uSGFuZGxlci5nZXQoKV07CkBAIC04MjAsOSArODI0LDEwIEBAIGJvb2wgVUlEZWxlZ2F0ZTo6
VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBh
Z2VQcm94CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGJvb2wgcmVxdWlyZXNB
dWRpbyA9IHJlcXVlc3QucmVxdWlyZXNBdWRpbygpOwotICAgIGJvb2wgcmVxdWlyZXNWaWRlbyA9
IHJlcXVlc3QucmVxdWlyZXNWaWRlbygpOwotICAgIGlmICghcmVxdWlyZXNBdWRpbyAmJiAhcmVx
dWlyZXNWaWRlbykgeworICAgIGJvb2wgcmVxdWlyZXNBdWRpb0NhcHR1cmUgPSByZXF1ZXN0LnJl
cXVpcmVzQXVkaW9DYXB0dXJlKCk7CisgICAgYm9vbCByZXF1aXJlc1ZpZGVvQ2FwdHVyZSA9IHJl
cXVlc3QucmVxdWlyZXNWaWRlb0NhcHR1cmUoKTsKKyAgICBib29sIHJlcXVpcmVzRGlzcGxheUNh
cHR1cmUgPSByZXF1ZXN0LnJlcXVpcmVzRGlzcGxheUNhcHR1cmUoKTsKKyAgICBpZiAoIXJlcXVp
cmVzQXVkaW9DYXB0dXJlICYmICFyZXF1aXJlc1ZpZGVvQ2FwdHVyZSAmJiAhcmVxdWlyZXNEaXNw
bGF5Q2FwdHVyZSkgewogICAgICAgICByZXF1ZXN0LmRlbnkoVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQpAQCAtODMwLDcgKzgzNSw3IEBAIGJvb2wgVUlE
ZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0KFdlYlBhZ2VQcm94CiAjaWYgUExBVEZPUk0oSU9TKQogICAgIGF1dG8gcmVxdWVzdENhbWVy
YUF1dGhvcml6YXRpb24gPSBCbG9ja1B0cjx2b2lkKCk+Ojpmcm9tQ2FsbGFibGUoW3RoaXMsICZm
cmFtZSwgcHJvdGVjdGVkUmVxdWVzdCA9IG1ha2VSZWYocmVxdWVzdCksIHdlYlZpZXcgPSBSZXRh
aW5QdHI8V0tXZWJWaWV3PihtX3VpRGVsZWdhdGUubV93ZWJWaWV3KV0oKSB7CiAKLSAgICAgICAg
aWYgKCFwcm90ZWN0ZWRSZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvKCkpIHsKKyAgICAgICAgaWYgKCFw
cm90ZWN0ZWRSZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpKSB7CiAgICAgICAgICAgICBy
ZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRldmljZXMoZnJhbWUsIHByb3RlY3RlZFJl
cXVlc3QsIChpZCA8V0tVSURlbGVnYXRlUHJpdmF0ZT4pbV91aURlbGVnYXRlLm1fZGVsZWdhdGUu
Z2V0KCksICp3ZWJWaWV3LmdldCgpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQpA
QCAtODU3LDcgKzg2Miw3IEBAIGJvb2wgVUlEZWxlZ2F0ZTo6VUlDbGllbnQ6OmRlY2lkZVBvbGlj
eUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFdlYlBhZ2VQcm94CiAgICAgICAgIH0KICAg
ICB9KTsKIAotICAgIGlmIChyZXF1aXJlc0F1ZGlvKSB7CisgICAgaWYgKHJlcXVpcmVzQXVkaW9D
YXB0dXJlKSB7CiAgICAgICAgIEFWQXV0aG9yaXphdGlvblN0YXR1cyBtaWNyb3Bob25lQXV0aG9y
aXphdGlvblN0YXR1cyA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGF1dGhvcml6YXRpb25T
dGF0dXNGb3JNZWRpYVR5cGU6Z2V0QVZNZWRpYVR5cGVBdWRpbygpXTsKICAgICAgICAgc3dpdGNo
IChtaWNyb3Bob25lQXV0aG9yaXphdGlvblN0YXR1cykgewogICAgICAgICBjYXNlIEFWQXV0aG9y
aXphdGlvblN0YXR1c0F1dGhvcml6ZWQ6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5j
cHAKaW5kZXggMzc1MWQ1OWZiMDIyNWY2YzBjNWE3M2NiODQyY2E0YmRkMDJlZGVmYi4uMDQxZDdi
ODFhMWJmYWJjYTU0ZjAwNTFjNjc1NzI3MzM0ODY4ZTVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcApAQCAtMTIyLDcgKzEyMiw3IEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFjY2Vzc1dhc0RlbmllZCh1aW50NjRf
dCB1CiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChyZWFzb24gPT0gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpQZXJtaXNzaW9u
RGVuaWVkKQotICAgICAgICBtX2RlbmllZFJlcXVlc3RzLmFwcGVuZChEZW5pZWRSZXF1ZXN0IHsg
cmVxdWVzdC0+bWFpbkZyYW1lSUQoKSwgcmVxdWVzdC0+dXNlck1lZGlhRG9jdW1lbnRTZWN1cml0
eU9yaWdpbigpLCByZXF1ZXN0LT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVx
dWVzdC0+cmVxdWlyZXNBdWRpbygpLCByZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvKCkgfSk7CisgICAg
ICAgIG1fZGVuaWVkUmVxdWVzdHMuYXBwZW5kKERlbmllZFJlcXVlc3QgeyByZXF1ZXN0LT5tYWlu
RnJhbWVJRCgpLCByZXF1ZXN0LT51c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCksIHJl
cXVlc3QtPnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCByZXF1ZXN0LT5yZXF1aXJl
c0F1ZGlvQ2FwdHVyZSgpLCByZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvQ2FwdHVyZSgpIH0pOwogCiAg
ICAgZGVueVJlcXVlc3QodXNlck1lZGlhSUQsIHJlYXNvbiwgZW1wdHlTdHJpbmcoKSk7CiB9CkBA
IC0xNzgsNiArMTc4LDggQEAgY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSog
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnMKICAgICBib29sIGNoZWNr
Rm9yQXVkaW8gPSBuZWVkc0F1ZGlvOwogICAgIGJvb2wgY2hlY2tGb3JWaWRlbyA9IG5lZWRzVmlk
ZW87CiAgICAgZm9yIChjb25zdCBhdXRvJiBncmFudGVkUmVxdWVzdCA6IG1fZ3JhbnRlZFJlcXVl
c3RzKSB7CisgICAgICAgIGlmIChncmFudGVkUmVxdWVzdC0+cmVxdWlyZXNEaXNwbGF5Q2FwdHVy
ZSgpKQorICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGlmICghZ3JhbnRlZFJlcXVlc3Qt
PnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4oKS5pc1NhbWVTY2hlbWVIb3N0UG9ydCh1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbikpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAg
aWYgKCFncmFudGVkUmVxdWVzdC0+dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkuaXNT
YW1lU2NoZW1lSG9zdFBvcnQodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikpCkBAIC0xODUsMTAgKzE4
NywxMCBAQCBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KiBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cwogICAgICAgICBpZiAoZ3JhbnRlZFJlcXVl
c3QtPmZyYW1lSUQoKSAhPSBmcmFtZUlEKQogICAgICAgICAgICAgY29udGludWU7CiAKLSAgICAg
ICAgaWYgKGdyYW50ZWRSZXF1ZXN0LT5yZXF1aXJlc1ZpZGVvKCkpCisgICAgICAgIGlmIChncmFu
dGVkUmVxdWVzdC0+cmVxdWlyZXNWaWRlb0NhcHR1cmUoKSkKICAgICAgICAgICAgIGNoZWNrRm9y
VmlkZW8gPSBmYWxzZTsKIAotICAgICAgICBpZiAoZ3JhbnRlZFJlcXVlc3QtPnJlcXVpcmVzQXVk
aW8oKSkKKyAgICAgICAgaWYgKGdyYW50ZWRSZXF1ZXN0LT5yZXF1aXJlc0F1ZGlvQ2FwdHVyZSgp
KQogICAgICAgICAgICAgY2hlY2tGb3JBdWRpbyA9IGZhbHNlOwogCiAgICAgICAgIGlmIChjaGVj
a0ZvclZpZGVvIHx8IGNoZWNrRm9yQXVkaW8pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCmluZGV4IDNl
NWE5NTcyYWMzMTA0OWQ4MTBmMjRiYmY4NDc1ZGZhM2JjMTAyM2MuLjY3NDA0NGFlM2I3ODkxNDBi
ZTgwMjM2ZDZmYjY5NmI1ZTAyMzQ3NTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuY3BwCkBAIC01Miwy
MyArNTIsMzAgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjphbGxvdyhj
b25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdAogICAgICAgICByZXR1cm47CiAKICNp
ZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0gICAgYXV0byYgc291cmNlQ2VudGVyID0gUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCk7CiAgICAgQ2FwdHVyZURldmljZSBhdWRp
b0RldmljZTsKICAgICBpZiAoIWF1ZGlvRGV2aWNlVUlELmlzRW1wdHkoKSkgewotICAgICAgICBh
dXRvIGRldmljZSA9IHNvdXJjZUNlbnRlci5jYXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lLCBhdWRpb0Rldmlj
ZVVJRCk7Ci0gICAgICAgIEFTU0VSVChkZXZpY2UgJiYgZGV2aWNlLnZhbHVlKCkuZW5hYmxlZCgp
KTsKLSAgICAgICAgaWYgKGRldmljZSkKLSAgICAgICAgICAgIGF1ZGlvRGV2aWNlID0gZGV2aWNl
LnZhbHVlKCk7CisgICAgICAgIHNpemVfdCBpbmRleCA9IG1fZWxpZ2libGVBdWRpb0RldmljZXMu
ZmluZE1hdGNoaW5nKFsmXShjb25zdCBhdXRvJiBkZXZpY2UpIHsKKyAgICAgICAgICAgIHJldHVy
biBkZXZpY2UucGVyc2lzdGVudElkKCkgPT0gYXVkaW9EZXZpY2VVSUQ7CisgICAgICAgIH0pOwor
ICAgICAgICBBU1NFUlQoaW5kZXggIT0gbm90Rm91bmQpOworCisgICAgICAgIGlmIChpbmRleCAh
PSBub3RGb3VuZCkKKyAgICAgICAgICAgIGF1ZGlvRGV2aWNlID0gbV9lbGlnaWJsZUF1ZGlvRGV2
aWNlc1tpbmRleF07CisKKyAgICAgICAgQVNTRVJUKGF1ZGlvRGV2aWNlLmVuYWJsZWQoKSk7CiAg
ICAgfQogCiAgICAgQ2FwdHVyZURldmljZSB2aWRlb0RldmljZTsKICAgICBpZiAoIXZpZGVvRGV2
aWNlVUlELmlzRW1wdHkoKSkgewotICAgICAgICBhdXRvIGRldmljZSA9IHNvdXJjZUNlbnRlci5j
YXB0dXJlRGV2aWNlV2l0aFBlcnNpc3RlbnRJRChXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpDYW1lcmEsIHZpZGVvRGV2aWNlVUlEKTsKKyAgICAgICAgc2l6ZV90IGluZGV4ID0g
bV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5maW5kTWF0Y2hpbmcoWyZdKGNvbnN0IGF1dG8mIGRldmlj
ZSkgeworICAgICAgICAgICAgcmV0dXJuIGRldmljZS5wZXJzaXN0ZW50SWQoKSA9PSB2aWRlb0Rl
dmljZVVJRDsKKyAgICAgICAgfSk7CisgICAgICAgIEFTU0VSVChpbmRleCAhPSBub3RGb3VuZCk7
CisKKyAgICAgICAgaWYgKGluZGV4ICE9IG5vdEZvdW5kKQorICAgICAgICAgICAgdmlkZW9EZXZp
Y2UgPSBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzW2luZGV4XTsKIAotICAgICAgICBBU1NFUlQoZGV2
aWNlICYmIGRldmljZS52YWx1ZSgpLmVuYWJsZWQoKSk7Ci0gICAgICAgIGlmIChkZXZpY2UpCi0g
ICAgICAgICAgICB2aWRlb0RldmljZSA9IGRldmljZS52YWx1ZSgpOworICAgICAgICBBU1NFUlQo
dmlkZW9EZXZpY2UuZW5hYmxlZCgpKTsKICAgICB9CiAKICAgICBtX21hbmFnZXItPnVzZXJNZWRp
YUFjY2Vzc1dhc0dyYW50ZWQobV91c2VyTWVkaWFJRCwgV1RGTW92ZShhdWRpb0RldmljZSksIFdU
Rk1vdmUodmlkZW9EZXZpY2UpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaAppbmRleCA5ODdkMjZhNTVjNWE2
YmI0ZmYwMzUwMDU3Mzc4YWE2ZDQzZDE0OWNmLi4wYTFmMThmYzlmZTA0MzZjZDhiYzkyZDBlMjg4
NmU5NzFlMWRlYjVjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCkBAIC00OSw4ICs0OSw5IEBAIHB1Ymxp
YzoKIAogICAgIHZvaWQgaW52YWxpZGF0ZSgpOwogCi0gICAgYm9vbCByZXF1aXJlc0F1ZGlvKCkg
Y29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZUF1ZGlvRGV2aWNlcy5zaXplKCk7IH0KLSAgICBib29s
IHJlcXVpcmVzVmlkZW8oKSBjb25zdCB7IHJldHVybiBtX2VsaWdpYmxlVmlkZW9EZXZpY2VzLnNp
emUoKTsgfQorICAgIGJvb2wgcmVxdWlyZXNBdWRpb0NhcHR1cmUoKSBjb25zdCB7IHJldHVybiBt
X2VsaWdpYmxlQXVkaW9EZXZpY2VzLnNpemUoKTsgfQorICAgIGJvb2wgcmVxdWlyZXNWaWRlb0Nh
cHR1cmUoKSBjb25zdCB7IHJldHVybiAhcmVxdWlyZXNEaXNwbGF5Q2FwdHVyZSgpICYmIG1fZWxp
Z2libGVWaWRlb0RldmljZXMuc2l6ZSgpOyB9CisgICAgYm9vbCByZXF1aXJlc0Rpc3BsYXlDYXB0
dXJlKCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0LnR5cGUgPT0gV2ViQ29yZTo6TWVkaWFTdHJl
YW1SZXF1ZXN0OjpUeXBlOjpEaXNwbGF5TWVkaWEgJiYgbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5z
aXplKCk7IH0KIAogICAgIFZlY3RvcjxTdHJpbmc+IHZpZGVvRGV2aWNlVUlEcygpIGNvbnN0Owog
ICAgIFZlY3RvcjxTdHJpbmc+IGF1ZGlvRGV2aWNlVUlEcygpIGNvbnN0OwpkaWZmIC0tZ2l0IGEv
VG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDZkNGFkMjE1YWJkNTVmNGMz
ODQ4NjllYTQ3OWYwODNhZjNiMTA4MjQuLjA2N2JmNTJmMTdjYjk0M2E5Mjc2ZGUwNzUzNjZhYjU5
MTY1MTUwOGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNSBAQAorMjAxOC0wMS0wNCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJs
c29uQGFwcGxlLmNvbT4KKworICAgICAgICBbTWVkaWFTdHJlYW1dIEFkZCBNb2NrIHNjcmVlbiBj
YXB0dXJlIHNvdXJjZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTgxMjkxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjI5ODE2ND4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkv
VGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgbmV3IHRlc3QuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEu
bW06CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQvZ2V0RGlzcGxheU1lZGlh
Lmh0bWw6CisKIDIwMTgtMDEtMDMgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gQ3JlYXRlIGF0dGFjaG1lbnQgZWxl
bWVudHMgd2hlbiBkcm9wcGluZyBmaWxlcyBvbiBpT1MKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdFdlYktpdEFQSS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggNzI0Nzg5MDM0NDgxNTA2ZTUxNzI2ODE5YWM1MWNjMjdjNGM3NDM4YS4uMDg4NTI1YzkwMDE2
MzBhZTVlMGI3M2NlNmQzZjJkZDMwYzc3NmZmYyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0V2ViS2l0QVBJLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAg
LTMwLDYgKzMwLDggQEAKIAkJMDc5OUMzNEIxRUJBMzMwMTAwM0I3NTMyIC8qIGRpc2FibGVHZXRV
c2VyTWVkaWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAwNzk5QzM0QTFFQkEzMkY0MDAzQjc1MzIgLyogZGlzYWJsZUdldFVzZXJNZWRp
YS5odG1sICovOyB9OwogCQkwN0MwNDZDQTFFNDI2MkE4MDA3MjAxRTcgLyogQ0FSaW5nQnVmZmVy
LmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3QzA0
NkM5MUU0MjU3M0UwMDcyMDFFNyAvKiBDQVJpbmdCdWZmZXIuY3BwICovOyB9OwogCQkwN0NFMUNG
MzFGMDZBN0UwMDBCRjg5RjUgLyogR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbSBpbiBTb3VyY2Vz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDA3Q0UxQ0YyMUYwNkE3RTAwMEJG
ODlGNSAvKiBHZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tICovOyB9OworCQkwN0UxRjZBMjFGRkM0
NEZBMDA5NkM3RUMgLyogZ2V0RGlzcGxheU1lZGlhLmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMDdFMUY2QTExRkZDNDRGOTAwOTZDN0VD
IC8qIGdldERpc3BsYXlNZWRpYS5odG1sICovOyB9OworCQkwN0UxRjZBMzFGRkM0Qjc2MDA5NkM3
RUMgLyogR2V0RGlzcGxheU1lZGlhLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gMDdFMUY2QTAxRkZDM0EwODAwOTZDN0VDIC8qIEdldERpc3BsYXlNZWRp
YS5tbSAqLzsgfTsKIAkJMDdFNDk5OTExRjlFNTZERjAwMkYxRUYzIC8qIEdldFVzZXJNZWRpYVJl
cHJvbXB0Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
MDdFNDk5OTAxRjlFNTZBMTAwMkYxRUYzIC8qIEdldFVzZXJNZWRpYVJlcHJvbXB0Lm1tICovOyB9
OwogCQkwRjEzOUU3NzFBNDIzQTVCMDBGNTkwRjUgLyogV2Vha09iakNQdHIubW0gaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAwRjEzOUU3NTFBNDIzQTUzMDBG
NTkwRjUgLyogV2Vha09iakNQdHIubW0gKi87IH07CiAJCTBGMTM5RTc4MUE0MjNBNkIwMEY1OTBG
NSAvKiBQbGF0Zm9ybVV0aWxpdGllc0NvY29hLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gMEYxMzlFNzIxQTQyM0EyQjAwRjU5MEY1IC8qIFBsYXRmb3Jt
VXRpbGl0aWVzQ29jb2EubW0gKi87IH07CkBAIC05MjQsNiArOTI2LDcgQEAKIAkJCQkyNkY1MkVB
RjE4Mjg4QzIzMDAyM0Q0MTIgLyogZ2VvbG9jYXRpb25HZXRDdXJyZW50UG9zaXRpb25XaXRoSGln
aEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJMjZGNTJFQjIxODI4OEYy
NDAwMjNENDEyIC8qIGdlb2xvY2F0aW9uV2F0Y2hQb3NpdGlvbi5odG1sIGluIENvcHkgUmVzb3Vy
Y2VzICovLAogCQkJCTI2RjUyRUIzMTgyODhGMjQwMDIzRDQxMiAvKiBnZW9sb2NhdGlvbldhdGNo
UG9zaXRpb25XaXRoSGlnaEFjY3VyYWN5Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCisJCQkJ
MDdFMUY2QTIxRkZDNDRGQTAwOTZDN0VDIC8qIGdldERpc3BsYXlNZWRpYS5odG1sIGluIENvcHkg
UmVzb3VyY2VzICovLAogCQkJCTA3NDk5NDQyMUVBNTAzNEIwMDBEQTQ0RSAvKiBnZXRVc2VyTWVk
aWEuaHRtbCBpbiBDb3B5IFJlc291cmNlcyAqLywKIAkJCQlGNDZBMDk1QjFFRDhBNkU2MDBENEFB
NTUgLyogZ2lmLWFuZC1maWxlLWlucHV0Lmh0bWwgaW4gQ29weSBSZXNvdXJjZXMgKi8sCiAJCQkJ
OUI0RjhGQTcxNTlENTJERDAwMkQ5Rjk0IC8qIEhUTUxDb2xsZWN0aW9uTmFtZWRJdGVtLmh0bWwg
aW4gQ29weSBSZXNvdXJjZXMgKi8sCkBAIC0xMDgzLDYgKzEwODYsOCBAQAogCQkwNzk5QzM0QTFF
QkEzMkY0MDAzQjc1MzIgLyogZGlzYWJsZUdldFVzZXJNZWRpYS5odG1sICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC5odG1sOyBwYXRoID0gZGlzYWJsZUdldFVzZXJNZWRpYS5odG1sOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQkwN0MwNDZDOTFFNDI1NzNFMDA3MjAxRTcgLyogQ0FSaW5nQnVmZmVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENBUmluZ0J1ZmZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTA3Q0UxQ0YyMUYwNkE3RTAwMEJGODlGNSAv
KiBHZXRVc2VyTWVkaWFOYXZpZ2F0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2Jq
Y3BwOyBwYXRoID0gR2V0VXNlck1lZGlhTmF2aWdhdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJMDdFMUY2QTAxRkZDM0EwODAwOTZDN0VDIC8qIEdldERpc3BsYXlNZWRpYS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldERpc3BsYXlNZWRp
YS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMDdFMUY2QTExRkZDNDRGOTAwOTZD
N0VDIC8qIGdldERpc3BsYXlNZWRpYS5odG1sICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC5odG1sOyBuYW1lID0gZ2V0RGlzcGxheU1lZGlhLmh0
bWw7IHBhdGggPSAuLi9XZWJLaXQvZ2V0RGlzcGxheU1lZGlhLmh0bWw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTA3RTQ5OTkwMUY5RTU2QTEwMDJGMUVGMyAvKiBHZXRVc2VyTWVkaWFS
ZXByb21wdC5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IEdldFVz
ZXJNZWRpYVJlcHJvbXB0Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkwN0VERUZB
QzFFQjk0MDBDMDBENDMyOTIgLyogVXNlck1lZGlhRGlzYWJsZWQubW0gKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBVc2VyTWVkaWFEaXNhYmxlZC5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMEJDRDgzMzQxNDg1N0NFNDAwRUEyMDAzIC8qIEhhc2hNYXAu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSGFzaE1hcC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMDY4LDYgKzIwNzMsNyBAQAogCQkJCTNGMUI1
MjY4MUQzRDcxMjkwMDhENjBDNCAvKiBGdWxsc2NyZWVuTGF5b3V0Q29uc3RyYWludHMubW0gKi8s
CiAJCQkJQ0RFMTk1QjMxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5z
ZXQubW0gKi8sCiAJCQkJNjMxRUZGRjUxRTdCNUU4RDAwRDJFQkI4IC8qIEdlb2xvY2F0aW9uLm1t
ICovLAorCQkJCTA3RTFGNkEwMUZGQzNBMDgwMDk2QzdFQyAvKiBHZXREaXNwbGF5TWVkaWEubW0g
Ki8sCiAJCQkJNTFBRjIzREUxRUYxQTM3MjAwNzJGMjgxIC8qIEljb25Mb2FkaW5nRGVsZWdhdGUu
bW0gKi8sCiAJCQkJNTEwNDc3NzUxRDI5OEUwMzAwOTc0N0VCIC8qIElEQkRlbGV0ZVJlY292ZXJ5
Lm1tICovLAogCQkJCTUxMTBGQ0VGMUUwMUNCQUEwMDZGOEQwQiAvKiBJREJJbmRleFVwZ3JhZGVU
b1YyLm1tICovLApAQCAtMjM0OCw2ICsyMzU0LDcgQEAKIAkJCQkzRkJEMUI0OTFEMzlEMURCMDBF
NkQ2RkEgLyogRnVsbHNjcmVlbkxheW91dENvbnN0cmFpbnRzLmh0bWwgKi8sCiAJCQkJQ0RFMTk1
QjIxQ0ZFMEFERTAwNTNEMjU2IC8qIEZ1bGxzY3JlZW5Ub3BDb250ZW50SW5zZXQuaHRtbCAqLywK
IAkJCQk2MzYzNTNBNjFFOTg2MTk0MDAwOUY4QUYgLyogR2VvbG9jYXRpb25HZXRDdXJyZW50UG9z
aXRpb25SZXN1bHQuaHRtbCAqLywKKwkJCQkwN0UxRjZBMTFGRkM0NEY5MDA5NkM3RUMgLyogZ2V0
RGlzcGxheU1lZGlhLmh0bWwgKi8sCiAJCQkJRjQ3RDMwRUQxRUQyOEE2QzAwMDQ4MkUxIC8qIGdp
Zi1hbmQtZmlsZS1pbnB1dC5odG1sICovLAogCQkJCTUxMDQ3Nzc2MUQyOThFNTcwMDk3NDdFQiAv
KiBJREJEZWxldGVSZWNvdmVyeS5odG1sICovLAogCQkJCTUxMDQ3NzZGMUQyOThEODUwMDk3NDdF
QiAvKiBJREJEZWxldGVSZWNvdmVyeS5zcWxpdGUzICovLApAQCAtMzQxMiw2ICszNDE5LDcgQEAK
IAkJCQk3Q0NFN0VGODFBNDExQUU2MDA0NDdDNEMgLyogR2VvbG9jYXRpb24uY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJNjMxRUZGRjYxRTdCNUU4RDAwRDJFQkI4IC8qIEdlb2xvY2F0aW9uLm1tIGlu
IFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTExQTQxMUE5QTAwNDQ3QzRDIC8qIEdldEJhY2tpbmdT
Y2FsZUZhY3Rvci5tbSBpbiBTb3VyY2VzICovLAorCQkJCTA3RTFGNkEzMUZGQzRCNzYwMDk2QzdF
QyAvKiBHZXREaXNwbGF5TWVkaWEubW0gaW4gU291cmNlcyAqLywKIAkJCQk3Q0NFN0VGOTFBNDEx
QUU2MDA0NDdDNEMgLyogR2V0SW5qZWN0ZWRCdW5kbGVJbml0aWFsaXphdGlvblVzZXJEYXRhQ2Fs
bGJhY2suY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJN0NDRTdFRTIxQTQxMUE5QTAwNDQ3QzRDIC8q
IEdldFBJREFmdGVyQWJvcnRlZFByb2Nlc3NMYXVuY2guY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJ
MDdDRTFDRjMxRjA2QTdFMDAwQkY4OUY1IC8qIEdldFVzZXJNZWRpYU5hdmlnYXRpb24ubW0gaW4g
U291cmNlcyAqLywKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
L2dldERpc3BsYXlNZWRpYS5odG1sIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQv
Z2V0RGlzcGxheU1lZGlhLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjExYmEzMTJkOWJjNWM0ZmZiOTRlYTM1
YjI1MzQxYTcwMzc3MmY2NAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0L2dldERpc3BsYXlNZWRpYS5odG1sCkBAIC0wLDAgKzEsNTUgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDxzY3JpcHQ+CisKKyAgICAg
ICAgICAgIGxldCBzdHJlYW0gPSBudWxsOworCisgICAgICAgICAgICBmdW5jdGlvbiBwcm9tcHRG
b3JDYXB0dXJlKGNvbnN0cmFpbnRzKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAgIG5h
dmlnYXRvci5tZWRpYURldmljZXMuZ2V0RGlzcGxheU1lZGlhKGNvbnN0cmFpbnRzKQorICAgICAg
ICAgICAgICAgIC50aGVuKChzKSA9PiB7CisgICAgICAgICAgICAgICAgICAgIHN0cmVhbSA9IHM7
CisgICAgICAgICAgICAgICAgICAgIHZpZGVvLnNyY09iamVjdCA9IHN0cmVhbTsKKyAgICAgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy53ZWJraXQpCisgICAgICAgICAgICAgICAgICAgICAgd2lu
ZG93LndlYmtpdC5tZXNzYWdlSGFuZGxlcnMudGVzdEhhbmRsZXIucG9zdE1lc3NhZ2UoJ2FsbG93
ZWQnKTsKKyAgICAgICAgICAgICAgICB9KQorICAgICAgICAgICAgICAgIC5jYXRjaCgoZXJyb3Ip
ID0+IHsKKyAgICAgICAgICAgICAgICAgICAgaWYgKHdpbmRvdy53ZWJraXQpCisgICAgICAgICAg
ICAgICAgICAgICAgIHdpbmRvdy53ZWJraXQubWVzc2FnZUhhbmRsZXJzLnRlc3RIYW5kbGVyLnBv
c3RNZXNzYWdlKCdkZW5pZWQnKTsKKyAgICAgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIH0K
KworICAgICAgICAgICAgZnVuY3Rpb24gc3RvcChraW5kKQorICAgICAgICAgICAgeworICAgICAg
ICAgICAgICAgIGlmICghc3RyZWFtKQorICAgICAgICAgICAgICAgICAgICByZXR1cm47CisKKyAg
ICAgICAgICAgICAgICBsZXQgYWN0aXZlVHJhY2tzID0gW107CisgICAgICAgICAgICAgICAgc3Ry
ZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4geworICAgICAgICAgICAgICAgICAgICBp
ZiAoIWtpbmQgfHwgdHJhY2sua2luZCA9PSBraW5kKQorICAgICAgICAgICAgICAgICAgICAgICAg
dHJhY2suc3RvcCgpOworICAgICAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAg
ICAgICAgICBhY3RpdmVUcmFja3MucHVzaCh0cmFjayk7CisgICAgICAgICAgICAgICAgfSk7CisK
KyAgICAgICAgICAgICAgICBpZiAoIWFjdGl2ZVRyYWNrcy5sZW5ndGgpIHsKKyAgICAgICAgICAg
ICAgICAgICAgc3RyZWFtID0gbnVsbDsKKyAgICAgICAgICAgICAgICAgICAgdmlkZW8uc3JjT2Jq
ZWN0ID0gbnVsbDsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGZ1bmN0aW9uIGhhdmVTdHJlYW0oKQorICAgICAgICAgICAgeworICAgICAgICAgICAgICAg
IHJldHVybiBzdHJlYW0gIT09IG51bGw7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDxoZWFkPgorCisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8iIGNv
bnRyb2xzPjwvdmlkZW8+CisgICAgICAgIDxwPgorICAgICAgICA8YnV0dG9uIG9uY2xpY2s9InN0
b3AoKSI+U3RvcDwvYnV0dG9uPgorICAgICAgICA8L3A+CisgICAgPC9ib2R5PgorPC9odG1sPgpk
aWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZXREaXNw
bGF5TWVkaWEubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL0dldERp
c3BsYXlNZWRpYS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yY2VhMjc5YTEwNDA2ZjExYjY2MDliODE5MWI3NmEz
MjM3YWVkNmUzCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9X
ZWJLaXRDb2NvYS9HZXREaXNwbGF5TWVkaWEubW0KQEAgLTAsMCArMSwxNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKworI2lmIFdLX0FQSV9FTkFCTEVECisKKyNpZiBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjaW1wb3J0ICJQbGF0Zm9ybVV0aWxpdGllcy5oIgorI2ltcG9y
dCAiVGVzdC5oIgorI2ltcG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCA8V2ViS2l0L1dL
UHJlZmVyZW5jZXNQcml2YXRlLmg+CisjaW1wb3J0IDxXZWJLaXQvV0tVSURlbGVnYXRlUHJpdmF0
ZS5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlldy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLV2Vi
Vmlld0NvbmZpZ3VyYXRpb24uaD4KKworc3RhdGljIGJvb2wgd2FzUHJvbXB0ZWQgPSBmYWxzZTsK
K3N0YXRpYyBfV0tDYXB0dXJlRGV2aWNlcyByZXF1ZXN0ZWREZXZpY2VzID0gMDsKK3N0YXRpYyBi
b29sIHJlY2VpdmVkU2NyaXB0TWVzc2FnZSA9IGZhbHNlOworc3RhdGljIFJldGFpblB0cjxXS1Nj
cmlwdE1lc3NhZ2U+IGxhc3RTY3JpcHRNZXNzYWdlOworCitAaW50ZXJmYWNlIEdldERpc3BsYXlN
ZWRpYU1lc3NhZ2VIYW5kbGVyIDogTlNPYmplY3QgPFdLU2NyaXB0TWVzc2FnZUhhbmRsZXI+CitA
ZW5kCisKK0BpbXBsZW1lbnRhdGlvbiBHZXREaXNwbGF5TWVkaWFNZXNzYWdlSGFuZGxlcgorCist
ICh2b2lkKXVzZXJDb250ZW50Q29udHJvbGxlcjooV0tVc2VyQ29udGVudENvbnRyb2xsZXIgKil1
c2VyQ29udGVudENvbnRyb2xsZXIgZGlkUmVjZWl2ZVNjcmlwdE1lc3NhZ2U6KFdLU2NyaXB0TWVz
c2FnZSAqKW1lc3NhZ2UKK3sKKyAgICBsYXN0U2NyaXB0TWVzc2FnZSA9IG1lc3NhZ2U7CisgICAg
cmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gdHJ1ZTsKK30KK0BlbmQKKworQGludGVyZmFjZSBHZXRE
aXNwbGF5TWVkaWFVSURlbGVnYXRlIDogTlNPYmplY3Q8V0tVSURlbGVnYXRlPgorLSAodm9pZClf
d2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlv
bkZvckRldmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBt
YWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAo
XikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXI7CistICh2b2lkKV93ZWJWaWV3OihX
S1dlYlZpZXcgKil3ZWJWaWV3IGNoZWNrVXNlck1lZGlhUGVybWlzc2lvbkZvclVSTDooTlNVUkwg
Kil1cmwgbWFpbkZyYW1lVVJMOihOU1VSTCAqKW1haW5GcmFtZVVSTCBmcmFtZUlkZW50aWZpZXI6
KE5TVUludGVnZXIpZnJhbWVJZGVudGlmaWVyIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoTlNT
dHJpbmcgKnNhbHQsIEJPT0wgYXV0aG9yaXplZCkpZGVjaXNpb25IYW5kbGVyOworQGVuZAorCitA
aW1wbGVtZW50YXRpb24gR2V0RGlzcGxheU1lZGlhVUlEZWxlZ2F0ZQorLSAodm9pZClfd2ViVmll
dzooV0tXZWJWaWV3ICopd2ViVmlldyByZXF1ZXN0VXNlck1lZGlhQXV0aG9yaXphdGlvbkZvckRl
dmljZXM6KF9XS0NhcHR1cmVEZXZpY2VzKWRldmljZXMgdXJsOihOU1VSTCAqKXVybCBtYWluRnJh
bWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9P
TCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sKKyAgICB3YXNQcm9tcHRlZCA9IHRydWU7
CisKKyAgICByZXF1ZXN0ZWREZXZpY2VzID0gZGV2aWNlczsKKyAgICBCT09MIG5lZWRzTWljcm9w
aG9uZUF1dGhvcml6YXRpb24gPSAhIShyZXF1ZXN0ZWREZXZpY2VzICYgX1dLQ2FwdHVyZURldmlj
ZU1pY3JvcGhvbmUpOworICAgIEJPT0wgbmVlZHNDYW1lcmFBdXRob3JpemF0aW9uID0gISEocmVx
dWVzdGVkRGV2aWNlcyAmIF9XS0NhcHR1cmVEZXZpY2VDYW1lcmEpOworICAgIEJPT0wgbmVlZHNE
aXNwbGF5Q2FwdHVyZUF1dGhvcml6YXRpb24gPSAhIShyZXF1ZXN0ZWREZXZpY2VzICYgX1dLQ2Fw
dHVyZURldmljZURpc3BsYXkpOworICAgIGlmICghbmVlZHNNaWNyb3Bob25lQXV0aG9yaXphdGlv
biAmJiAhbmVlZHNDYW1lcmFBdXRob3JpemF0aW9uICYmICFuZWVkc0Rpc3BsYXlDYXB0dXJlQXV0
aG9yaXphdGlvbikgeworICAgICAgICBkZWNpc2lvbkhhbmRsZXIoTk8pOworICAgICAgICByZXR1
cm47CisgICAgfQorCisgICAgZGVjaXNpb25IYW5kbGVyKFlFUyk7Cit9CisKKy0gKHZvaWQpX3dl
YlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yVVJM
OihOU1VSTCAqKXVybCBtYWluRnJhbWVVUkw6KE5TVVJMICopbWFpbkZyYW1lVVJMIGZyYW1lSWRl
bnRpZmllcjooTlNVSW50ZWdlcilmcmFtZUlkZW50aWZpZXIgZGVjaXNpb25IYW5kbGVyOih2b2lk
ICheKShOU1N0cmluZyAqc2FsdCwgQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIKK3sK
KyAgICBkZWNpc2lvbkhhbmRsZXIoQCIweDk4NzY1NDMyMSIsIFlFUyk7Cit9CitAZW5kCisKK25h
bWVzcGFjZSBUZXN0V2ViS2l0QVBJIHsKKworY2xhc3MgR2V0RGlzcGxheU1lZGlhVGVzdCA6IHB1
YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIHZvaWQgU2V0VXAoKQor
ICAgIHsKKyAgICAgICAgbV9jb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKworICAgICAgICBhdXRvIGhhbmRsZXIgPSBhZG9wdE5T
KFtbR2V0RGlzcGxheU1lZGlhTWVzc2FnZUhhbmRsZXIgYWxsb2NdIGluaXRdKTsKKyAgICAgICAg
W1ttX2NvbmZpZ3VyYXRpb24gdXNlckNvbnRlbnRDb250cm9sbGVyXSBhZGRTY3JpcHRNZXNzYWdl
SGFuZGxlcjpoYW5kbGVyLmdldCgpIG5hbWU6QCJ0ZXN0SGFuZGxlciJdOworCisgICAgICAgIGF1
dG8gcHJlZmVyZW5jZXMgPSBbbV9jb25maWd1cmF0aW9uIHByZWZlcmVuY2VzXTsKKyAgICAgICAg
cHJlZmVyZW5jZXMuX21lZGlhQ2FwdHVyZVJlcXVpcmVzU2VjdXJlQ29ubmVjdGlvbiA9IE5POwor
ICAgICAgICBwcmVmZXJlbmNlcy5fbWVkaWFEZXZpY2VzRW5hYmxlZCA9IFlFUzsKKyAgICAgICAg
cHJlZmVyZW5jZXMuX21vY2tDYXB0dXJlRGV2aWNlc0VuYWJsZWQgPSBZRVM7CisgICAgICAgIHBy
ZWZlcmVuY2VzLl9zY3JlZW5DYXB0dXJlRW5hYmxlZCA9IFlFUzsKKworICAgICAgICBtX3dlYlZp
ZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOm1fY29uZmlndXJhdGlvbi5nZXQoKV0p
OworCisgICAgICAgIG1fdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tHZXREaXNwbGF5TWVkaWFVSURl
bGVnYXRlIGFsbG9jXSBpbml0XSk7CisgICAgICAgIG1fd2ViVmlldy5nZXQoKS5VSURlbGVnYXRl
ID0gbV91aURlbGVnYXRlLmdldCgpOworCisgICAgICAgIFttX3dlYlZpZXcgc3luY2hyb25vdXNs
eUxvYWRUZXN0UGFnZU5hbWVkOkAiZ2V0RGlzcGxheU1lZGlhIl07CisgICAgfQorCisgICAgYm9v
bCBoYXZlU3RyZWFtKGJvb2wgZXhwZWN0ZWQpCisgICAgeworICAgICAgICBpbnQgcmV0cnlDb3Vu
dCA9IDEwOworICAgICAgICB3aGlsZSAocmV0cnlDb3VudC0tKSB7CisgICAgICAgICAgICBhdXRv
IHJlc3VsdCA9IFttX3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAImhhdmVT
dHJlYW0oKSJdOworICAgICAgICAgICAgaWYgKHJlc3VsdC5ib29sVmFsdWUgPT0gZXhwZWN0ZWQp
CisgICAgICAgICAgICAgICAgcmV0dXJuIFlFUzsKKworICAgICAgICAgICAgVGVzdFdlYktpdEFQ
STo6VXRpbDo6c3BpblJ1bkxvb3AoMTApOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIE5P
OworICAgIH0KKworICAgIHZvaWQgcHJvbXB0Rm9yQ2FwdHVyZShOU1N0cmluZyogY29uc3RyYWlu
dHMsIGJvb2wgc2hvdWxkU3VjY2VlZCkKKyAgICB7CisgICAgICAgIFttX3dlYlZpZXcgc3RyaW5n
QnlFdmFsdWF0aW5nSmF2YVNjcmlwdDpAInN0b3AoKSJdOworICAgICAgICBFWFBFQ1RfVFJVRSho
YXZlU3RyZWFtKGZhbHNlKSk7CisKKyAgICAgICAgd2FzUHJvbXB0ZWQgPSBmYWxzZTsKKyAgICAg
ICAgcmVjZWl2ZWRTY3JpcHRNZXNzYWdlID0gZmFsc2U7CisKKyAgICAgICAgTlNTdHJpbmcgKnNj
cmlwdCA9IFtOU1N0cmluZyBzdHJpbmdXaXRoRm9ybWF0OkAicHJvbXB0Rm9yQ2FwdHVyZSglQCki
LCBjb25zdHJhaW50c107CisgICAgICAgIFttX3dlYlZpZXcgc3RyaW5nQnlFdmFsdWF0aW5nSmF2
YVNjcmlwdDpzY3JpcHRdOworCisgICAgICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmcmVj
ZWl2ZWRTY3JpcHRNZXNzYWdlKTsKKyAgICAgICAgaWYgKHNob3VsZFN1Y2NlZWQpIHsKKyAgICAg
ICAgICAgIEVYUEVDVF9TVFJFUShbKE5TU3RyaW5nICopW2xhc3RTY3JpcHRNZXNzYWdlIGJvZHld
IFVURjhTdHJpbmddLCAiYWxsb3dlZCIpOworICAgICAgICAgICAgRVhQRUNUX1RSVUUoaGF2ZVN0
cmVhbSh0cnVlKSk7CisgICAgICAgICAgICBFWFBFQ1RfVFJVRSh3YXNQcm9tcHRlZCk7CisgICAg
ICAgIH0gZWxzZSB7CisgICAgICAgICAgICBFWFBFQ1RfU1RSRVEoWyhOU1N0cmluZyAqKVtsYXN0
U2NyaXB0TWVzc2FnZSBib2R5XSBVVEY4U3RyaW5nXSwgImRlbmllZCIpOworICAgICAgICAgICAg
RVhQRUNUX1RSVUUoaGF2ZVN0cmVhbShmYWxzZSkpOworICAgICAgICAgICAgRVhQRUNUX0ZBTFNF
KHdhc1Byb21wdGVkKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIFJldGFpblB0cjxXS1dlYlZp
ZXdDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb247CisgICAgUmV0YWluUHRyPEdldERpc3Bs
YXlNZWRpYVVJRGVsZWdhdGU+IG1fdWlEZWxlZ2F0ZTsKKyAgICBSZXRhaW5QdHI8VGVzdFdLV2Vi
Vmlldz4gbV93ZWJWaWV3OworfTsKKworVEVTVF9GKEdldERpc3BsYXlNZWRpYVRlc3QsIEJhc2lj
UHJvbXB0KQoreworICAgIHByb21wdEZvckNhcHR1cmUoQCJ7IGF1ZGlvOiB0cnVlLCB2aWRlbzog
dHJ1ZSB9IiwgdHJ1ZSk7CisgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgYXVkaW86IHRydWUsIHZp
ZGVvOiBmYWxzZSB9IiwgdHJ1ZSk7CisgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgYXVkaW86IGZh
bHNlLCB2aWRlbzogdHJ1ZSB9IiwgdHJ1ZSk7CisgICAgcHJvbXB0Rm9yQ2FwdHVyZShAInsgYXVk
aW86IGZhbHNlLCB2aWRlbzogZmFsc2UgfSIsIGZhbHNlKTsKK30KKworVEVTVF9GKEdldERpc3Bs
YXlNZWRpYVRlc3QsIENvbnN0cmFpbnRzKQoreworICAgIHByb21wdEZvckNhcHR1cmUoQCJ7IHZp
ZGVvOiB7d2lkdGg6IDY0MH0gfSIsIGZhbHNlKTsKKyAgICBwcm9tcHRGb3JDYXB0dXJlKEAieyB2
aWRlbzogdHJ1ZSwgYXVkaW86IHsgdm9sdW1lOiAwLjUgfSB9IiwgZmFsc2UpOworICAgIHByb21w
dEZvckNhcHR1cmUoQCJ7IHZpZGVvOiB7aGVpZ2h0OiA0ODB9LCBhdWRpbzogdHJ1ZSB9IiwgZmFs
c2UpOworfQorCit9IC8vIG5hbWVzcGFjZSBUZXN0V2ViS2l0QVBJCisKKyNlbmRpZiAvLyBFTkFC
TEUoTUVESUFfU1RSRUFNKQorCisjZW5kaWYgLy8gV0tfQVBJX0VOQUJMRUQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA1ZmJi
OTgxMDk0ZDgyMDIxOGYyNjc3YWE5NDRmZWU4N2RmZTllYjRlLi43ZWJmNTAzOTZkYzMxMWU5N2Qw
ODE1NjJiZmRiMTMxMjgwM2U0NmY0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTgtMDEtMDQg
IEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5jb20+CisKKyAgICAgICAgW01lZGlh
U3RyZWFtXSBBZGQgTW9jayBzY3JlZW4gY2FwdHVyZSBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MTI5MQorICAgICAgICA8cmRhcjovL3By
b2JsZW0vMzYyOTgxNjQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRp
YS1wcm9tcHQtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL21lZGlh
L21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1tZWRpYS1wcm9tcHQuaHRtbDogQWRkZWQuCisKIDIw
MTgtMDEtMDQgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEtdIElzc3VlcyB3aXRoIEFoZW0ncyBleCAvIHgtaGVpZ2h0CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxheS1t
ZWRpYS1wcm9tcHQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9t
ZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0LWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi44NzhhNGZjNjI5NWE5MjliMDRhZGI0Y2YyOTRkNjZjNDBmMWU5NDdkCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRp
c3BsYXktbWVkaWEtcHJvbXB0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMyIEBACitUZXN0IGJh
c2ljIGdldERpc3BsYXlNZWRpYSBwcm9tcHRpbmcgYmVoYXZpb3IKKworT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgorCisKK1BBU1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0Jl
ZW5DYWxsZWQoKSBpcyAwCisKKyoqIFJlcXVlc3QgYW4gYXVkaW8tb25seSBzdHJlYW0sIHRoZSB1
c2VyIHNob3VsZCBiZSBwcm9tcHRlZCAqKgorUEFTUyBudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlh
UHJvbXB0SGFzQmVlbkNhbGxlZCgpIGlzIDEKK1BBU1Mgc3RyZWFtLmdldEF1ZGlvVHJhY2tzKCku
bGVuZ3RoIGlzIDEKK1BBU1Mgc3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIGlzIDAKKwor
KiogUmVxdWVzdCBhbiB2aWRlby1vbmx5IHN0cmVhbSwgdGhlIHVzZXIgc2hvdWxkIGJlIHByb21w
dGVkICoqCitQQVNTIG51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVk
KCkgaXMgMgorUEFTUyBzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGggaXMgMAorUEFTUyBz
dHJlYW0uZ2V0VmlkZW9UcmFja3MoKS5sZW5ndGggaXMgMQorCisqKiBSZXF1ZXN0IGEgc3RyZWFt
IHdpdGggYXVkaW8gYW5kIHZpZGVvLCB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgKioKK1BB
U1MgbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSBpcyAzCitQ
QVNTIHN0cmVhbS5nZXRBdWRpb1RyYWNrcygpLmxlbmd0aCBpcyAxCitQQVNTIHN0cmVhbS5nZXRW
aWRlb1RyYWNrcygpLmxlbmd0aCBpcyAxCisKKyoqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCBpbnZh
bGlkIGNvbnN0cmFpbnRzLCB0aGUgdXNlciBzaG91bGQgbm90IGJlIHByb21wdGVkICoqCitQQVNT
IG51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkgaXMgMworUEFT
UyBzdHJlYW0gaXMgbnVsbAorUEFTUyBlcnIgaW5zdGFuY2VvZiBFcnJvciAgaXMgdHJ1ZQorUEFT
UyBlcnIubmFtZSBpcyAiSW52YWxpZEFjY2Vzc0Vycm9yIgorCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0Lmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL21lZGlhL21lZGlhLXN0cmVhbS9nZXQtZGlzcGxh
eS1tZWRpYS1wcm9tcHQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDQ1ODIxNDI1MDBmNjFiYjY4MjU1MTcw
NDc5Y2UwOTIwYjhkOWM2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9tZWRpYS9tZWRpYS1zdHJlYW0vZ2V0LWRpc3BsYXktbWVkaWEtcHJvbXB0Lmh0bWwKQEAgLTAs
MCArMSw4MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHRpdGxlPmdldERpc3BsYXlNZWRpYSBwcm9tcHQ8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNy
Yz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKyAgICA8
L2hlYWQ+CisgICAgPGJvZHk+CisgICAgPHAgaWQ9ImRlc2NyaXB0aW9uIj48L3A+CisgICAgPGRp
diBpZD0iY29uc29sZSI+PC9kaXY+CisKKzxzY3JpcHQ+CisKKyAgICBsZXQgc3RyZWFtOworICAg
IGxldCBlcnI7CisgICAgCisgICAgZnVuY3Rpb24gbnVtYmVyT2ZUaW1lc0dldFVzZXJNZWRpYVBy
b21wdEhhc0JlZW5DYWxsZWQoKSB7CisgICAgICAgIHJldHVybiB0ZXN0UnVubmVyLnVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0Q291bnRGb3JPcmlnaW4oZG9jdW1lbnQubG9jYXRpb24uaHJlZiwg
ZG9jdW1lbnQubG9jYXRpb24uaHJlZik7CisgICAgfQorICAgIAorICAgIGFzeW5jIGZ1bmN0aW9u
IHByb21wdEZvckF1ZGlvT25seSgpIHsKKyAgICAgICAgZGVidWcoIjxicj4qKiBSZXF1ZXN0IGFu
IGF1ZGlvLW9ubHkgc3RyZWFtLCB0aGUgdXNlciBzaG91bGQgYmUgcHJvbXB0ZWQgKioiKTsKKyAg
ICAgICAgc3RyZWFtID0gYXdhaXQgbmF2aWdhdG9yLm1lZGlhRGV2aWNlcy5nZXREaXNwbGF5TWVk
aWEoeyBhdWRpbzogdHJ1ZSB9KTsKKyAgICAgICAgc2hvdWxkQmUoIm51bWJlck9mVGltZXNHZXRV
c2VyTWVkaWFQcm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMSIpOworICAgICAgICBzaG91bGRCZSgi
c3RyZWFtLmdldEF1ZGlvVHJhY2tzKCkubGVuZ3RoIiwgIjEiKTsKKyAgICAgICAgc2hvdWxkQmUo
InN0cmVhbS5nZXRWaWRlb1RyYWNrcygpLmxlbmd0aCIsICIwIik7CisgICAgfQorCisgICAgYXN5
bmMgZnVuY3Rpb24gcHJvbXB0Rm9yVmlkZW9Pbmx5KCkgeworICAgICAgICBkZWJ1ZygiPGJyPioq
IFJlcXVlc3QgYW4gdmlkZW8tb25seSBzdHJlYW0sIHRoZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRl
ZCAqKiIpOworICAgICAgICBzdHJlYW0gPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdl
dERpc3BsYXlNZWRpYSh7IHZpZGVvOiB0cnVlIH0pOworICAgICAgICBzaG91bGRCZSgibnVtYmVy
T2ZUaW1lc0dldFVzZXJNZWRpYVByb21wdEhhc0JlZW5DYWxsZWQoKSIsICIyIik7CisgICAgICAg
IHNob3VsZEJlKCJzdHJlYW0uZ2V0QXVkaW9UcmFja3MoKS5sZW5ndGgiLCAiMCIpOworICAgICAg
ICBzaG91bGRCZSgic3RyZWFtLmdldFZpZGVvVHJhY2tzKCkubGVuZ3RoIiwgIjEiKTsKKyAgICB9
CisKKyAgICBhc3luYyBmdW5jdGlvbiBwcm9tcHRGb3JBdWRpb0FuZFZpZGVvKCkgeworICAgICAg
ICBkZWJ1ZygiPGJyPioqIFJlcXVlc3QgYSBzdHJlYW0gd2l0aCBhdWRpbyBhbmQgdmlkZW8sIHRo
ZSB1c2VyIHNob3VsZCBiZSBwcm9tcHRlZCAqKiIpOworICAgICAgICBzdHJlYW0gPSBhd2FpdCBu
YXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRpYSh7IHZpZGVvOiB0cnVlLCBhdWRp
bzogdHJ1ZSB9KTsKKyAgICAgICAgc2hvdWxkQmUoIm51bWJlck9mVGltZXNHZXRVc2VyTWVkaWFQ
cm9tcHRIYXNCZWVuQ2FsbGVkKCkiLCAiMyIpOworICAgICAgICBzaG91bGRCZSgic3RyZWFtLmdl
dEF1ZGlvVHJhY2tzKCkubGVuZ3RoIiwgIjEiKTsKKyAgICAgICAgc2hvdWxkQmUoInN0cmVhbS5n
ZXRWaWRlb1RyYWNrcygpLmxlbmd0aCIsICIxIik7CisgICAgfQorICAgIAorICAgIGFzeW5jIGZ1
bmN0aW9uIHByb21wdFdpdGhNZWRpYVRyYWNrQ29uc3RyYWludHMoKSB7CisgICAgICAgIGRlYnVn
KCI8YnI+KiogUmVxdWVzdCBhIHN0cmVhbSB3aXRoIGludmFsaWQgY29uc3RyYWludHMsIHRoZSB1
c2VyIHNob3VsZCBub3QgYmUgcHJvbXB0ZWQgKioiKTsKKyAgICAgICAgc3RyZWFtID0gbnVsbDsK
KyAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgIHN0cmVhbSA9IGF3YWl0IG5hdmlnYXRvci5tZWRp
YURldmljZXMuZ2V0RGlzcGxheU1lZGlhKHsgdmlkZW86IHt3aWR0aDoge2V4YWN0OiA2NDB9LCBo
ZWlnaHQ6IHtleGFjdDogNDgwfX0gfSk7CisgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAg
ICAgIGVyciA9IGU7CisgICAgICAgIH0KKyAgICAgICAgCisgICAgICAgIHNob3VsZEJlKCJudW1i
ZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0SGFzQmVlbkNhbGxlZCgpIiwgIjMiKTsKKyAgICAg
ICAgc2hvdWxkQmVOdWxsKCJzdHJlYW0iKTsKKyAgICAgICAgc2hvdWxkQmVUcnVlKCJlcnIgaW5z
dGFuY2VvZiBFcnJvciAiKTsgCisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZXJyLm5h
bWUiLCAiSW52YWxpZEFjY2Vzc0Vycm9yIik7CisgICAgfQorCisgICAgKGFzeW5jIGZ1bmN0aW9u
KCkgeworICAgICAgICBkZXNjcmlwdGlvbignVGVzdCBiYXNpYyBnZXREaXNwbGF5TWVkaWEgcHJv
bXB0aW5nIGJlaGF2aW9yJyk7CisgICAgICAgIGpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAg
ICAgIHRlc3RSdW5uZXIucmVzZXRVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdENvdW50Rm9yT3Jp
Z2luKGRvY3VtZW50LmxvY2F0aW9uLmhyZWYsIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpOworICAg
ICAgICB3aW5kb3cuaW50ZXJuYWxzLnNldHRpbmdzLnNldFNjcmVlbkNhcHR1cmVFbmFibGVkKHRy
dWUpOworCisgICAgICAgIHNob3VsZEJlKCJudW1iZXJPZlRpbWVzR2V0VXNlck1lZGlhUHJvbXB0
SGFzQmVlbkNhbGxlZCgpIiwgIjAiKTsKKworICAgICAgICBhd2FpdCBwcm9tcHRGb3JBdWRpb09u
bHkoKTsKKyAgICAgICAgYXdhaXQgcHJvbXB0Rm9yVmlkZW9Pbmx5KCk7CisgICAgICAgIGF3YWl0
IHByb21wdEZvckF1ZGlvQW5kVmlkZW8oKTsKKyAgICAgICAgYXdhaXQgcHJvbXB0V2l0aE1lZGlh
VHJhY2tDb25zdHJhaW50cygpOworCisgICAgICAgIGRlYnVnKCIiKTsKKyAgICAgICAgZmluaXNo
SlNUZXN0KCk7CisgICAgfSkoKQorCis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi8u
Li9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>