<?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>194312</bug_id>
          
          <creation_ts>2019-02-05 15:34:25 -0800</creation_ts>
          <short_desc>Make sure to clear sources from UserMediaCaptureManagerProxy and UserMediaCaptureManager when no longer needed</short_desc>
          <delta_ts>2019-02-07 11:20:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1502552</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-05 15:34:25 -0800</bug_when>
    <thetext>Make to clear sources from UserMediaCaptureManagerProxy and UserMediaCaptureManager when no longer needed</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502558</commentid>
    <comment_count>1</comment_count>
      <attachid>361232</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-05 15:42:54 -0800</bug_when>
    <thetext>Created attachment 361232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502565</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-05 15:46:47 -0800</bug_when>
    <thetext>Attachment 361232 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:214:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1502583</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-05 16:20:39 -0800</bug_when>
    <thetext>&lt;rdar://problem/47836112&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503536</commentid>
    <comment_count>4</comment_count>
      <attachid>361347</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-06 16:57:15 -0800</bug_when>
    <thetext>Created attachment 361347
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503537</commentid>
    <comment_count>5</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-06 17:00:05 -0800</bug_when>
    <thetext>Attachment 361347 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:214:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 21 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503792</commentid>
    <comment_count>6</comment_count>
      <attachid>361412</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-02-07 10:37:44 -0800</bug_when>
    <thetext>Created attachment 361412
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503799</commentid>
    <comment_count>7</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2019-02-07 10:40:18 -0800</bug_when>
    <thetext>Attachment 361412 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:214:  Inline functions should not be in classes annotated with WEBCORE_EXPORT. Remove the macro from the class and apply it to each appropriate method, or move the inline function definition out-of-line.  [build/webcore_export] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503835</commentid>
    <comment_count>8</comment_count>
      <attachid>361412</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-07 11:20:21 -0800</bug_when>
    <thetext>Comment on attachment 361412
Patch for landing

Clearing flags on attachment: 361412

Committed r241132: &lt;https://trac.webkit.org/changeset/241132&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1503836</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-07 11:20:22 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361232</attachid>
            <date>2019-02-05 15:42:54 -0800</date>
            <delta_ts>2019-02-06 16:57:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194312-20190205154249.patch</filename>
            <type>text/plain</type>
            <size>12387</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQwOTU5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWI1MzBiMTk2MTJmODk4
MTQxNmQ4MWZhMjczZjE4OTcxMzczN2FlMy4uMmNmNWJhODdhYWI0YjAwYzUzMWQ1NjI2MzAzODZj
NDUxYzViNmM3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRvIGNsZWFyIHNv
dXJjZXMgZnJvbSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IGFuZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHdheSBmb3Igc291cmNlcyB0byBrbm93IHdo
ZW4gdGhleSBhcmUgZW5kZWQsIGkuZS4gdGhhdCB0aGV5IHdpbGwgbmV2ZXIgYmUgc3RhcnRlZCBh
Z2Fpbi4KKyAgICAgICAgTm8gb2JzZXJ2YWJsZSBjaGFuZ2Ugb2YgYmVoYXZpb3IuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RTdG9wKToKKyAgICAgICAg
KiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6CisKIDIwMTktMDIt
MDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2Ugc2hvdWxkIG5vdCBjb25maWd1cmUgaXRzIGF1ZGlvIHVuaXQgdW50aWwg
aXQgc3RhcnRzIHByb2R1Y2luZyBkYXRhCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU1OWY3OTE3Nzk2NWM1NDY5M2Y3
ZTBkYjhhMGE3MGQ2NWY5YTViY2EuLmQ1OGI0NjhhZThmYWMzMWYxOWU1ZjM2MzI0YzZkZWM3MmQy
NDQ0YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjcgQEAKKzIwMTktMDItMDUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1ha2UgdG8gY2xlYXIgc291cmNlcyBm
cm9tIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkgYW5kIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyIHdoZW4gbm8gbG9uZ2VyIG5lZWRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTk0MzEyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgU291cmNlcyBpbiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBhbmQg
UHJveHkgYXJlIG5ldmVyIHJlbW92ZWQgb25jZSBhZGRlZCB0byB0aGVpciBIYXNoTWFwLgorICAg
ICAgICBVc2UgdGhlICdlbmRlZCcgbWVjaGFuaXNtIHRvIGRvIHRoZSBjbGVhbi11cCBvbiBXZWJQ
cm9jZXNzIHNpZGUuCisgICAgICAgIEFzIHBhcnQgb2YgdGhpcyBjbGVhbi11cCwgc2VuZCBJUEMg
dG8gVUlQcm9jZXNzIHRvIGRvIGNsZWFuLXVwIG9uIHByb3h5IHNpZGUuCisgICAgICAgIE9uIFdl
YlByb2Nlc3MgY3Jhc2ggY2FzZSwgY2xlYW4tdXAgdGhlIHByb3h5IGFzIHdlbGwuCisKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVuZCk6CisgICAgICAgIChXZWJLaXQ6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsZWFyKToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuZGVkKToKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTkt
MDItMDUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNpbXBs
aWZ5IGFwcGx5Q29uc3RyYWludHMgY2FsbGJhY2tzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5j
cHAKaW5kZXggY2M1NDM2NGNlN2RiNDJmMWZhODc4ODY0YjUwM2FlZjVmYzRiMTRlNi4uNDkzOGZm
OTY0NzJmNjc3YjhlZjIxZWRjZjExOTIwN2RmZGM4ZGU1NCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQ
cml2YXRlLmNwcApAQCAtMTM3LDcgKzEzNyw3IEBAIHZvaWQgTWVkaWFTdHJlYW1UcmFja1ByaXZh
dGU6OmVuZFRyYWNrKCkKICAgICBtX2lzRW5kZWQgPSB0cnVlOwogICAgIHVwZGF0ZVJlYWR5U3Rh
dGUoKTsKIAotICAgIG1fc291cmNlLT5yZXF1ZXN0U3RvcCh0aGlzKTsKKyAgICBtX3NvdXJjZS0+
cmVxdWVzdFRvRW5kKCp0aGlzKTsKIAogICAgIGZvckVhY2hPYnNlcnZlcihbdGhpc10oYXV0byYg
b2JzZXJ2ZXIpIHsKICAgICAgICAgb2JzZXJ2ZXIudHJhY2tFbmRlZCgqdGhpcyk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCmluZGV4IDI5NjFiNjUzMTJlODFkMmMwZDE4ZTZmZDU5ZjRhNDQyYzFlMDEx
MmIuLmNlMGY5YWFhNzkyMmUwMjRiNWJlNzE2ZTU0YTc2MmFjMmI2MjIxYzAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
OjphdWRpb1NhbXBsZXNBdmFpbGFibGUoY29uc3QgTWVkaWFUaW1lJiB0aW1lLCBjb25zdCBQbGEK
IAogdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdGFydCgpCiB7Ci0gICAgaWYgKG1faXNQcm9k
dWNpbmdEYXRhKQorICAgIGlmIChtX2lzUHJvZHVjaW5nRGF0YSB8fCBtX2lzRW5kZWQpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIG1faXNQcm9kdWNpbmdEYXRhID0gdHJ1ZTsKQEAgLTE5Niw3ICsx
OTYsNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnN0b3AoKQogICAgIHN0b3BQcm9kdWNp
bmdEYXRhKCk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFN0b3AoT2Jz
ZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVz
dFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIpCiB7CiAgICAgaWYgKCFtX2lzUHJvZHVj
aW5nRGF0YSkKICAgICAgICAgcmV0dXJuOwpAQCAtMjA5LDEwICsyMDksMTQgQEAgdm9pZCBSZWFs
dGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcChPYnNlcnZlciogY2FsbGluZ09ic2VydmVyKQog
ICAgIGlmIChoYXNPYnNlcnZlclByZXZlbnRpbmdTdG9wcGluZykKICAgICAgICAgcmV0dXJuOwog
CisgICAgYXV0byBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyk7CisKICAgICBzdG9wKCk7
CisgICAgbV9pc0VuZGVkID0gdHJ1ZTsKKyAgICBoYXNFbmRlZCgpOwogCiAgICAgZm9yRWFjaE9i
c2VydmVyKFtjYWxsaW5nT2JzZXJ2ZXJdKGF1dG8mIG9ic2VydmVyKSB7Ci0gICAgICAgIGlmICgm
b2JzZXJ2ZXIgIT0gY2FsbGluZ09ic2VydmVyKQorICAgICAgICBpZiAoJm9ic2VydmVyICE9ICZj
YWxsaW5nT2JzZXJ2ZXIpCiAgICAgICAgICAgICBvYnNlcnZlci5zb3VyY2VTdG9wcGVkKCk7CiAg
ICAgfSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKaW5kZXggYjRkYzU0N2ZmNzJiZTQ3NjZiZjYwMGU5
NjYxMDMxYmFiYzMwM2I5NS4uYWI5ZWQ4N2Q0NGJkNWNkNWMzYmQ3MDdhZTdjODA5NDBhOTA3Y2Iy
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2UuaApAQCAtMTAwLDcgKzEwMCw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzUHJvZHVjaW5nRGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1faXNQcm9kdWNpbmdEYXRhOyB9
CiAgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgc3RvcCgpOwotICAgIHZvaWQgcmVxdWVzdFN0
b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlciA9IG51bGxwdHIpOworICAgIHZvaWQgcmVxdWVz
dFRvRW5kKE9ic2VydmVyJiBjYWxsaW5nT2JzZXJ2ZXIpOwogCiAgICAgYm9vbCBtdXRlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbXV0ZWQ7IH0KICAgICB2b2lkIHNldE11dGVkKGJvb2wpOwpAQCAtMjE0
LDYgKzIxNCw4IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCB2b2lkIHN0b3BQcm9kdWNpbmdEYXRh
KCkgeyB9CiAgICAgdmlydHVhbCB2b2lkIHNldHRpbmdzRGlkQ2hhbmdlKE9wdGlvblNldDxSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3M6OkZsYWc+KSB7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBo
YXNFbmRlZCgpIHsgfQorCiAgICAgdm9pZCBmb3JFYWNoT2JzZXJ2ZXIoY29uc3QgV1RGOjpGdW5j
dGlvbjx2b2lkKE9ic2VydmVyJik+JikgY29uc3Q7CiAKICAgICBib29sIG1fbXV0ZWQgeyBmYWxz
ZSB9OwpAQCAtMjQxLDYgKzI0Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2ludGVycnVwdGVk
IHsgZmFsc2UgfTsKICAgICBib29sIG1fY2FwdHVyZURpZEZhaWxlZCB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX2lzUmVtb3RlIHsgZmFsc2UgfTsKKyAgICBib29sIG1faXNFbmRlZCB7IGZhbHNlIH07
CiB9OwogCiBzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAppbmRleCBjNTFjZmVhNWRjYzgyYTM1NmM0ZTBhOWJiMGMwY2FjZjFkYmE2Y2U2Li4x
NTRiOTk3MDFkNWJhZmJkODM0MDlhNWFmNjRkZmYzNmE4MDU1MzBjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5LmNwcApAQCAtMTYxLDcgKzE2MSw4IEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
CiAgICAgICAgIGF1dG8gc291cmNlID0gc291cmNlT3JFcnJvci5zb3VyY2UoKTsKICAgICAgICAg
c291cmNlLT5zZXRJc1JlbW90ZSh0cnVlKTsKICAgICAgICAgc2V0dGluZ3MgPSBzb3VyY2UtPnNl
dHRpbmdzKCk7Ci0gICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291
cmNlUHJveHk+KGlkLCAqdGhpcywgV1RGTW92ZShzb3VyY2UpKSk7CisgICAgICAgIEFTU0VSVCgh
bV9wcm94aWVzLmNvbnRhaW5zKGlkKSk7CisgICAgICAgIG1fcHJveGllcy5hZGQoaWQsIHN0ZDo6
bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywgV1RGTW92ZShzb3VyY2UpKSk7CiAg
ICAgfSBlbHNlCiAgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291cmNlT3JF
cnJvci5lcnJvck1lc3NhZ2UpOwogfQpAQCAtMTgwLDYgKzE4MSwxMSBAQCB2b2lkIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OnN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAg
ICAgICBpdGVyLT52YWx1ZS0+c291cmNlKCkuc3RvcCgpOwogfQogCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmVuZCh1aW50NjRfdCBpZCkKK3sKKyAgICBtX3Byb3hpZXMucmVt
b3ZlKGlkKTsKK30KKwogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjYXBhYmls
aXRpZXModWludDY0X3QgaWQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRp
ZXMmIGNhcGFiaWxpdGllcykKIHsKICAgICBhdXRvIGl0ZXIgPSBtX3Byb3hpZXMuZmluZChpZCk7
CkBAIC0yMDgsNiArMjE0LDExIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
YXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6CiAgICAgICAgIG1f
cHJvY2Vzcy5zZW5kKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6QXBwbHlDb25z
dHJhaW50c0ZhaWxlZChpZCwgcmVzdWx0LT5iYWRDb25zdHJhaW50LCByZXN1bHQtPm1lc3NhZ2Up
LCAwKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbGVhcigpCit7
CisgICAgbV9wcm94aWVzLmNsZWFyKCk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmgKaW5kZXggM2JmOTIxZmU2ODA2NDJmY2M3NmUxZmJkYWJmMzExZWE0ZWRhNzNmZC4u
YTUyZmVhMjVmNGQ1YzMzNDE3OTIxNGU0MjEzNzA1YjQ5MWZmZmY1NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuaApAQCAtNDAsMTAgKzQwLDExIEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKIAog
Y2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdl
UmVjZWl2ZXIgewogcHVibGljOgotICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkoV2Vi
UHJvY2Vzc1Byb3h5Jik7CisgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eShXZWJQcm9jZXNzUHJveHkmKTsKICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgp
OwogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgY29uc3QgeyByZXR1cm4gbV9wcm9j
ZXNzOyB9CisgICAgdm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgogICAgIC8vIElQQzo6TWVzc2Fn
ZVJlY2VpdmVyCkBAIC01Myw2ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29u
c3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwogICAgIHZv
aWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdE
YXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIGVuZCh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmls
aXRpZXModWludDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMm
KTsKICAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDIwZGIxNzYyZmIx
NjgyYTkyNDQ3ZTQ3ODg1MjY1NDVmODk3ZjlhYjYuLjJhMjZkZTdkNzE4ZTE1MTBlMDFlYThmNGE1
ZThmN2UwYzAwZjBiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbgpAQCAtMjcsNiArMjcsNyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5IHsKIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmluZyBoYXNo
U2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMpIC0+IChi
b29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgTGVnYWN5U3luYwogICAgIFN0YXJ0UHJvZHVj
aW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkK
KyAgICBFbmQodWludDY0X3QgaWQpCiAgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIExl
Z2FjeVN5bmMKICAgICBTZXRNdXRlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKICAgICBBcHBs
eUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
cyBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHku
Y3BwCmluZGV4IGIyZGEzYmI4NzY1ZTE2NmY5NzJlNTk2ZGUxZTM3ZWY2YmVkMzlmNzIuLjAyMmZh
NzJiNDYwMDA0MDU4NDZhMWIxZTQyZTFiYTg5Yjc3ZDUzYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTcxLDYgKzU3MSwxMCBAQCB2b2lkIFdl
YlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2goKQogICAg
IC8vIHRvIGJlIGRlbGV0ZWQgYmVmb3JlIHdlIGNhbiBmaW5pc2ggb3VyIHdvcmsuCiAgICAgUmVm
PFdlYlByb2Nlc3NQcm94eT4gcHJvdGVjdCgqdGhpcyk7CiAKKyNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHktPmNsZWFyKCk7CisjZW5kaWYKKwogICAgIGlmIChhdXRvKiB3ZWJDb25uZWN0aW9uID0gdGhp
cy0+d2ViQ29ubmVjdGlvbigpKQogICAgICAgICB3ZWJDb25uZWN0aW9uLT5kaWRDbG9zZSgpOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA2NjUyNTNjNzliZDBlZjZjNDY0MGNhYzA2ZjhkODI5
YzZlOGY4NGJjLi5iNDY1YWQyNTIzOWU2YjI3OGQzZmI0MDc3NDdkODliODcyOTk4NzUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4Niw2ICsxODYsNyBAQCBwcml2YXRlOgogICAgIC8vIFJl
YWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsg
fQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZvaWQgaGFz
RW5kZWQoKSBmaW5hbCB7IG1fbWFuYWdlci5zb3VyY2VFbmRlZChtX2lkKTsgfQogCiAgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5h
bAogICAgIHsKQEAgLTM0Myw2ICszNDQsMTEgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6YXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgV2ViQ29yZTo6TWVkaWEKICAg
ICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
QXBwbHlDb25zdHJhaW50cyhpZCwgY29uc3RyYWludHMpLCAwKTsKIH0KIAordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5kZWQodWludDY0X3QgaWQpCit7CisgICAgbV9wcm9j
ZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkVuZChpZCks
IDApOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRz
U3VjY2VlZGVkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
U2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWQp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggZmNmY2E5YWY2MmRiZGM3M2M0NzdjNzE5NjlmYTIxN2Uw
NDVkYTE2ZC4uYjExYWU3NDRjM2RlMWIwYmVkMjcxMmU2NDhhNjY5ZTFmMjMwNWQ5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHJpdmF0ZToKICAgICAvLyBNZXNzYWdlczo6
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKICAgICB2b2lkIGNhcHR1cmVGYWlsZWQodWludDY0X3Qg
aWQpOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCk7CisgICAgdm9pZCBzb3Vy
Y2VFbmRlZCh1aW50NjRfdCBpZCk7CiAgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQodWludDY0
X3QgaWQsIGJvb2wgbXV0ZWQpOwogICAgIHZvaWQgc291cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2
NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmKTsKICAg
ICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBTaGFyZWRNZW1vcnk6Okhh
bmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90
IG51bWJlck9mRnJhbWVzKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361347</attachid>
            <date>2019-02-06 16:57:15 -0800</date>
            <delta_ts>2019-02-06 17:09:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194312-20190206165714.patch</filename>
            <type>text/plain</type>
            <size>61908</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzNkNjU4NGJmZGU3MTAz
ZTk3NmY1OGIxZmMwMjIzN2IzNWU1M2FhMC4uYzUzODhhZTAwNWNhZTgzMThkODg1ZTZlOWEwNTM2
Mzg5ZTJlNjk2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRvIGNsZWFyIHNv
dXJjZXMgZnJvbSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IGFuZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgYSB3YXkgZm9yIHNvdXJjZXMgdG8ga25vdyB3aGVu
IHRoZXkgYXJlIGVuZGVkLCBpLmUuIHRoYXQgdGhleSB3aWxsIG5ldmVyIGJlIHN0YXJ0ZWQgYWdh
aW4uCisgICAgICAgIE5vIG9ic2VydmFibGUgY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcCk6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorCiAyMDE5LTAyLTA2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBN
b3ZlIGxpbmUgbGF5b3V0IGNvZGUgdG8gYSBkZWRpY2F0ZWQgZmlsZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlNmJh
YjY4YWZkNTY5NTY2YjQ1NjI0MDUwN2JmZDk2ZDZlNmUzOTdkLi5lZTY0YzBlOTU3NzY2YWYyOTVl
YzQwYWM0MGRjYmJkY2ExZmVmMjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxv
ZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDc5IEBACisyMDE5LTAy
LTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRv
IGNsZWFyIHNvdXJjZXMgZnJvbSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IGFuZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDMxMgorCisgICAgICAgIFJldmll
d2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAgICAgICBTb3VyY2VzIGluIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyIGFuZCBQcm94eSBhcmUgbmV2ZXIgcmVtb3ZlZCBvbmNlIGFkZGVkIHRvIHRoZWly
IEhhc2hNYXAuCisgICAgICAgIFVzZSB0aGUgJ2VuZGVkJyBtZWNoYW5pc20gdG8gZG8gdGhlIGNs
ZWFuLXVwIG9uIFdlYlByb2Nlc3Mgc2lkZS4KKyAgICAgICAgQXMgcGFydCBvZiB0aGlzIGNsZWFu
LXVwLCBzZW5kIElQQyB0byBVSVByb2Nlc3MgdG8gZG8gY2xlYW4tdXAgb24gcHJveHkgc2lkZS4K
KyAgICAgICAgT24gV2ViUHJvY2VzcyBjcmFzaCBjYXNlLCBjbGVhbi11cCB0aGUgcHJveHkgYXMg
d2VsbC4KKworICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6ZW5kKToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2xlYXIpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9M
YXVuY2gpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNl
RW5kZWQpOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaDoKKworMjAxOS0wMi0wNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgRmlsdGVyIG91dCBPdmVyY29uc3RyYWluZWRlcnJvci5jb25zdHJhaW50IHdoZW4g
Z2V0VXNlck1lZGlhIGlzIG5vdCBncmFudGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQyNDAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBNYWtlIHN1cmUgaW4gVUlQcm9jZXNzIHRvIGZpbHRlciBvdXQg
Y29uc3RyYWludCBpZiBlaXRoZXIgdGhlIHBhZ2UgaGFkIG5vdCBndW0gZ3JhbnRlZAorICAgICAg
ICBvciBpdCBoYXMgbm90IHBlcnNpc3RlbnQgYWNjZXNzLgorCisgICAgICAgIFJlZmFjdG9yIFVz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5IHRvIG1ha2UgdGhlIGltcGxlbWVu
dGF0aW9uIGVhc2llciB0byB1bmRlcnN0YW5kLgorICAgICAgICBTb21lIGZ1cnRoZXIgcmVmYWN0
b3JpbmcgbWlnaHQgZm9sbG93LgorCisgICAgICAgIENvdmVyZWQgYnkgYWRkZWQgdGVzdC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjpzZXRVc2VyTWVk
aWFBY2Nlc3NJbmZvKToKKyAgICAgICAgKiBVSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y2FwdHVyZURldmljZXNDaGFuZ2VkKToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRp
YUFjY2Vzc1dhc0dyYW50ZWQpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6Z3JhbnRBY2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpVc2Vy
TWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0UmVxdWVzdEFjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpy
ZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6VXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0TWFuYWdlclByb3h5Ojpwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvbkludmFsaWRSZXF1ZXN0
KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHk6OnByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1ZXN0KToKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFVzZXJNZWRp
YVBlcm1pc3Npb25JbmZvKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJl
cXVlc3RNYW5hZ2VyUHJveHk6Ondhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3MpOgorICAgICAg
ICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0
ZUZpbHRlcmVkRGV2aWNlTGlzdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JGcmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Ojpj
cmVhdGVQZXJtaXNzaW9uUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgICogVUlQcm9jZXNzL1Vz
ZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5Lmg6CisgICAgICAgICogVUlQcm9j
ZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aXNQZW5kaW5nIGNvbnN0KToKKyAgICAg
ICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6c2V0RWxpZ2libGVW
aWRlb0RldmljZVVJRHMpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpzZXRFbGlnaWJsZUF1ZGlvRGV2aWNlVUlEcyk6CisgICAgICAgIChXZWJLaXQ6
OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6Omhhc0F1ZGlvRGV2aWNlIGNvbnN0KToK
KyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6aGFzVmlk
ZW9EZXZpY2UgY29uc3QpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdFByb3h5OjpoYXNQZXJzaXN0ZW50QWNjZXNzIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6c2V0SGFzUGVyc2lzdGVudEFjY2Vzcyk6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OnVzZXJN
ZWRpYUlEIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RQcm94eTo6dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luIGNvbnN0KToKKyAgICAgICAg
KFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6dXNlck1lZGlhRG9jdW1l
bnRTZWN1cml0eU9yaWdpbiBjb25zdCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OnVzZXJSZXF1ZXN0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6
VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6c2V0RGV2aWNlSWRlbnRpZmllckhhc2hT
YWx0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6
ZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0IGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6YXVkaW9EZXZpY2UgY29uc3QpOgorICAgICAgICAo
V2ViS2l0OjpVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5Ojp2aWRlb0RldmljZSBjb25z
dCk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oOgorCiAyMDE5LTAyLTA2ICBNaWNoYWVs
IENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNDA3ODUpOiBbU09VUF0gQnJva2UgY29va2llIHBlcnNpc3RlbnQgc3RvcmFnZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFj
a1ByaXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFT
dHJlYW1UcmFja1ByaXZhdGUuY3BwCmluZGV4IDk1ZmE5NWVkNGY5NGI4NGNkMDlkNmYxOGJiZmRm
NjFkNTNmNTg4ZjkuLjA5ZDBkYjliNGMxMTljMTRmY2EzNGQzZmEzYWE1MmNjMTQ3NGQ0N2IgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
VHJhY2tQcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9NZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZS5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIE1l
ZGlhU3RyZWFtVHJhY2tQcml2YXRlOjplbmRUcmFjaygpCiAgICAgbV9pc0VuZGVkID0gdHJ1ZTsK
ICAgICB1cGRhdGVSZWFkeVN0YXRlKCk7CiAKLSAgICBtX3NvdXJjZS0+cmVxdWVzdFN0b3AodGhp
cyk7CisgICAgbV9zb3VyY2UtPnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAKICAgICBmb3JFYWNoT2Jz
ZXJ2ZXIoW3RoaXNdKGF1dG8mIG9ic2VydmVyKSB7CiAgICAgICAgIG9ic2VydmVyLnRyYWNrRW5k
ZWQoKnRoaXMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcAppbmRleCA5NmNmNWQ5OWMzYmIyNWUyOWMy
ZjZiYjM5NmM4YjViODAyNjc5MTk2Li43ZjM5ZGIyMTZkYThhYmVlYzc2MzQ0Mzc5ZTUxYjFhN2U5
NDE4NTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9S
ZWFsdGltZU1lZGlhU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltZSwgY29uc3QgUGxhCiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQoKQog
ewotICAgIGlmIChtX2lzUHJvZHVjaW5nRGF0YSkKKyAgICBpZiAobV9pc1Byb2R1Y2luZ0RhdGEg
fHwgbV9pc0VuZGVkKQogICAgICAgICByZXR1cm47CiAKICAgICBtX2lzUHJvZHVjaW5nRGF0YSA9
IHRydWU7CkBAIC0xOTUsNyArMTk1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdG9w
KCkKICAgICBzdG9wUHJvZHVjaW5nRGF0YSgpOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OnJlcXVlc3RTdG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIpCit2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OnJlcXVlc3RUb0VuZChPYnNlcnZlciYgY2FsbGluZ09ic2VydmVyKQogewog
ICAgIGlmICghbV9pc1Byb2R1Y2luZ0RhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTIwOCwxMCAr
MjA4LDE0IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFN0b3AoT2JzZXJ2ZXIq
IGNhbGxpbmdPYnNlcnZlcikKICAgICBpZiAoaGFzT2JzZXJ2ZXJQcmV2ZW50aW5nU3RvcHBpbmcp
CiAgICAgICAgIHJldHVybjsKIAorICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRo
aXMpOworCiAgICAgc3RvcCgpOworICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgaGFzRW5kZWQo
KTsKIAogICAgIGZvckVhY2hPYnNlcnZlcihbY2FsbGluZ09ic2VydmVyXShhdXRvJiBvYnNlcnZl
cikgewotICAgICAgICBpZiAoJm9ic2VydmVyICE9IGNhbGxpbmdPYnNlcnZlcikKKyAgICAgICAg
aWYgKCZvYnNlcnZlciAhPSAmY2FsbGluZ09ic2VydmVyKQogICAgICAgICAgICAgb2JzZXJ2ZXIu
c291cmNlU3RvcHBlZCgpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDhlNDYy
YzdlODg2OWVkMjY4YTkwNDk2ZWI3ZjViZGUwNzhlOWI1ZjQuLjc5YTc5ZTEwNTg4NmRmNWM5OTA4
OTQxMDVmMmUxMDg4N2NlYjJkMDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTEwMCw3ICsxMDAs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBt
X2lzUHJvZHVjaW5nRGF0YTsgfQogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsK
LSAgICB2b2lkIHJlcXVlc3RTdG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIgPSBudWxscHRy
KTsKKyAgICB2b2lkIHJlcXVlc3RUb0VuZChPYnNlcnZlciYgY2FsbGluZ09ic2VydmVyKTsKIAog
ICAgIGJvb2wgbXV0ZWQoKSBjb25zdCB7IHJldHVybiBtX211dGVkOyB9CiAgICAgdm9pZCBzZXRN
dXRlZChib29sKTsKQEAgLTIxMSw2ICsyMTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXR0aW5nc0RpZENo
YW5nZShPcHRpb25TZXQ8UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgeyB9CiAK
KyAgICB2aXJ0dWFsIHZvaWQgaGFzRW5kZWQoKSB7IH0KKwogICAgIHZvaWQgZm9yRWFjaE9ic2Vy
dmVyKGNvbnN0IFdURjo6RnVuY3Rpb248dm9pZChPYnNlcnZlciYpPiYpIGNvbnN0OwogCiAgICAg
Ym9vbCBtX211dGVkIHsgZmFsc2UgfTsKQEAgLTIzOCw2ICsyNDAsNyBAQCBwcml2YXRlOgogICAg
IGJvb2wgbV9pbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWls
ZWQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9pc1JlbW90ZSB7IGZhbHNlIH07CisgICAgYm9vbCBt
X2lzRW5kZWQgeyBmYWxzZSB9OwogfTsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yIHsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggMDU2ZDVjMzQyZGQwNWI1MjljNmYyNmEx
MjliNzIwN2ZlNDEzNDNmNy4uYzQ1NDBlNzBiMTM3NzBiYmQ3YTM1MzNlMGU2NDRmMmZmNzQ0OWI1
NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTE2MSw3ICsxNjEsOCBAQCB2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaQogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iu
c291cmNlKCk7CiAgICAgICAgIHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7CiAgICAgICAgIHNl
dHRpbmdzID0gc291cmNlLT5zZXR0aW5ncygpOwotICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBz
dGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1vdmUoc291cmNlKSkp
OworICAgICAgICBBU1NFUlQoIW1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgICAgICBtX3By
b3hpZXMuYWRkKGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdU
Rk1vdmUoc291cmNlKSkpOwogICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMg
PSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKIH0KQEAgLTE4MCw2ICsxODEs
MTEgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0
YSh1aW50NjRfdCBpZCkKICAgICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0b3AoKTsKIH0K
IAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjplbmQodWludDY0X3QgaWQpCit7
CisgICAgbV9wcm94aWVzLnJlbW92ZShpZCk7Cit9CisKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eTo6Y2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgYXV0byBpdGVyID0g
bV9wcm94aWVzLmZpbmQoaWQpOwpAQCAtMjA4LDYgKzIxNCwxMSBAQCB2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdl
YkNvcmU6OgogICAgICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OkFwcGx5Q29uc3RyYWludHNGYWlsZWQoaWQsIHJlc3VsdC52YWx1ZSgpLmZpcnN0
LCByZXN1bHQudmFsdWUoKS5zZWNvbmQpLCAwKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpjbGVhcigpCit7CisgICAgbV9wcm94aWVzLmNsZWFyKCk7Cit9CisKIH0K
IAogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggM2JmOTIxZmU2ODA2NDJmY2M3
NmUxZmJkYWJmMzExZWE0ZWRhNzNmZC4uYTUyZmVhMjVmNGQ1YzMzNDE3OTIxNGU0MjEzNzA1YjQ5
MWZmZmY1NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApAQCAtNDAsMTAgKzQwLDExIEBAIGNs
YXNzIFdlYlByb2Nlc3NQcm94eTsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSA6IHByaXZhdGUgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgZXhwbGljaXQgVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKICAgICB+VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpOwogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNz
KCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzOyB9CisgICAgdm9pZCBjbGVhcigpOwogCiBwcml2
YXRlOgogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCkBAIC01Myw2ICs1NCw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlE
LCBTdHJpbmcmJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2Nl
ZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VTZXR0aW5ncyYpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsK
ICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIGVuZCh1aW50
NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKICAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90LCBi
b29sKTsKICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6
Ok1lZGlhQ29uc3RyYWludHMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDIwZGIxNzYyZmIxNjgyYTkyNDQ3ZTQ3ODg1MjY1NDVmODk3ZjlhYjYuLjJh
MjZkZTdkNzE4ZTE1MTBlMDFlYThmNGE1ZThmN2UwYzAwZjBiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsNiArMjcsNyBAQCBtZXNzYWdlcyAt
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKIENyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZSBkZXZpY2UsIFN0cmluZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3Ry
YWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgTGVn
YWN5U3luYwogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKKyAgICBFbmQodWludDY0X3QgaWQpCiAgICAgQ2FwYWJp
bGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFi
aWxpdGllcyBjYXBhYmlsaXRpZXMpIExlZ2FjeVN5bmMKICAgICBTZXRNdXRlZCh1aW50NjRfdCBp
ZCwgYm9vbCBtdXRlZCkKICAgICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmNwcApp
bmRleCA5NjUxM2ViMDExYjAwMGRlMDM3MWJmN2QyMjI1MDgyMTRmMmRhN2RmLi45MGQxOGUzODIz
ZGQ0YWY1MzQ2OGNkYjJjNzE1ZTYwYzljZWVhOTE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuY3BwCkBAIC00
MSwyMCArNDEsMjggQEAgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk6OlVzZXJNZWRpYVBl
cm1pc3Npb25DaGVja1Byb3h5KHVpbnQ2NF90IGZyYW1lSUQsIEMKIHsKIH0KIAorVXNlck1lZGlh
UGVybWlzc2lvbkNoZWNrUHJveHk6On5Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eSgpCit7
CisgICAgaW52YWxpZGF0ZSgpOworfQorCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1By
b3h5OjpzZXRVc2VyTWVkaWFBY2Nlc3NJbmZvKGJvb2wgYWxsb3dlZCkKIHsKICAgICBBU1NFUlQo
bV9jb21wbGV0aW9uSGFuZGxlcik7CiAgICAgaWYgKCFtX2NvbXBsZXRpb25IYW5kbGVyKQogICAg
ICAgICByZXR1cm47CiAKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyKGFsbG93ZWQpOwotICAgIG1f
Y29tcGxldGlvbkhhbmRsZXIgPSBudWxscHRyOworICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKG1fY29tcGxldGlvbkhhbmRsZXIpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGFs
bG93ZWQpOwogfQogCiB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5OjppbnZhbGlk
YXRlKCkKIHsKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gbnVsbHB0cjsKKyAgICBpZiAoIW1f
Y29tcGxldGlvbkhhbmRsZXIpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKG1fY29tcGxldGlvbkhhbmRsZXIpOworICAgIGNvbXBsZXRpb25I
YW5kbGVyKHsgfSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAotCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkuaApp
bmRleCA2YTA4OTUwNmNlYTM4OGQxZDRjM2Q2ZGVmZGE1ZmUwZTBhZWU1N2M0Li5kZDAyMDViY2M0
YzU3ZWE5YmI3ZWFiYzY3OWRiNWYzNWI5NzIyZmVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5LmgKQEAgLTI3LDcg
KzI3LDcgQEAKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTWVk
aWFDb25zdHJhaW50cy5oPgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgorI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgog
CiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC0zOSw3ICszOSw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHkgOiBwdWJsaWMgQVBJOjpPYmpl
Y3RJbXBsPEFQSTo6T2JqZWN0OjpUeXBlOjpVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2s+IHsKIHB1
YmxpYzoKIAotICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpGdW5jdGlvbjx2b2lk
KGJvb2wgYWxsb3dlZCk+OworICAgIHVzaW5nIENvbXBsZXRpb25IYW5kbGVyID0gV1RGOjpDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKE9wdGlvbmFsPGJvb2w+IGFsbG93ZWQpPjsKIAogICAgIHN0YXRp
YyBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+IGNyZWF0ZSh1aW50NjRfdCBmcmFt
ZUlELCBDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIsIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCiAgICAgewpAQCAtNTYsNiArNTYsNyBAQCBw
dWJsaWM6CiAgICAgCiBwcml2YXRlOgogICAgIFVzZXJNZWRpYVBlcm1pc3Npb25DaGVja1Byb3h5
KHVpbnQ2NF90IGZyYW1lSUQsIENvbXBsZXRpb25IYW5kbGVyJiYsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4pOworICAgIH5Vc2VyTWVkaWFQZXJt
aXNzaW9uQ2hlY2tQcm94eSgpOwogCiAgICAgdWludDY0X3QgbV9mcmFtZUlEOwogICAgIENvbXBs
ZXRpb25IYW5kbGVyIG1fY29tcGxldGlvbkhhbmRsZXI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAKaW5kZXggOWZhM2E1MGQ5NjBhNDI1MDBhZTRlYzViZjQ3ZjVhYzk5MDQ3Y2U4
NC4uNTYwMDg0MzZkMTg4NzlmODJhMjc3NmY5MDEzOTUxNTY4MjY4ZmY4YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcApAQCAtNzUsOCArNzUsNiBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjppbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3Rz
KCkKICAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOwogICAgIG1fcGVuZGluZ1VzZXJNZWRp
YVJlcXVlc3RzLmNsZWFyKCk7CiAKLSAgICBmb3IgKGF1dG8mIHJlcXVlc3QgOiBtX3BlbmRpbmdE
ZXZpY2VSZXF1ZXN0cy52YWx1ZXMoKSkKLSAgICAgICAgcmVxdWVzdC0+aW52YWxpZGF0ZSgpOwog
ICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLmNsZWFyKCk7CiB9CiAKQEAgLTkyLDIzICs5MCwx
OCBAQCB2b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjYXB0dXJl
RGV2aWNlc0NoYW5nZWQoKQogICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSB8fCAhbV9wYWdlLm1h
aW5GcmFtZSgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHJlcXVlc3RJRCA9IGdlbmVy
YXRlUmVxdWVzdElEKCk7Ci0gICAgYXV0byBoYW5kbGVyID0gW3RoaXMsIHdlYWtUaGlzID0gbWFr
ZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0SURdKGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vz
cykgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgYXV0byBoYW5kbGVyID0g
W3RoaXNdKE9wdGlvbmFsPGJvb2w+IG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpIG11dGFibGUg
eworICAgICAgICBpZiAoIW9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MgfHwgIW1fcGFnZS5pc1Zh
bGlkKCkpCiAgICAgICAgICAgICByZXR1cm47CiAKLSAgICAgICAgYXV0byBwZW5kaW5nUmVxdWVz
dCA9IG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnRha2UocmVxdWVzdElEKTsKLSAgICAgICAgaWYg
KCFwZW5kaW5nUmVxdWVzdCB8fCAhbV9wYWdlLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIHJldHVy
bjsKLQotICAgICAgICBpZiAobV9ncmFudGVkUmVxdWVzdHMuaXNFbXB0eSgpICYmICFvcmlnaW5I
YXNQZXJzaXN0ZW50QWNjZXNzKQorICAgICAgICBpZiAobV9ncmFudGVkUmVxdWVzdHMuaXNFbXB0
eSgpICYmICEqb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcykKICAgICAgICAgICAgIHJldHVybjsK
IAogICAgICAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNhcHR1
cmVEZXZpY2VzQ2hhbmdlZCgpLCBtX3BhZ2UucGFnZUlEKCkpOwogICAgIH07CiAKICAgICBhdXRv
IG9yaWdpbiA9IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV9wYWdlLm1haW5GcmFt
ZSgpLT51cmwoKSk7Ci0gICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8ocmVxdWVzdElELCBt
X3BhZ2UubWFpbkZyYW1lKCktPmZyYW1lSUQoKSwgV1RGTW92ZShoYW5kbGVyKSwgb3JpZ2luLmdl
dCgpLCBXVEZNb3ZlKG9yaWdpbikpOworICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKG1f
cGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBvcmlnaW4uZ2V0KCksIFdURk1vdmUob3JpZ2lu
KSwgV1RGTW92ZShoYW5kbGVyKSk7CiAjZW5kaWYKIH0KIApAQCAtMTE3LDEzICsxMTAsNiBAQCB2
b2lkIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpjbGVhckNhY2hlZFN0
YXRlKCkKICAgICBpbnZhbGlkYXRlUGVuZGluZ1JlcXVlc3RzKCk7CiB9CiAKLVJlZjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eTo6Y3JlYXRlUGVybWlzc2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZl
bERvY3VtZW50T3JpZ2luLCBWZWN0b3I8Q2FwdHVyZURldmljZT4mJiBhdWRpb0RldmljZXMsIFZl
Y3RvcjxDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgTWVkaWFTdHJlYW1SZXF1ZXN0JiYg
cmVxdWVzdCkKLXsKLSAgICBhdXRvIHBlcm1pc3Npb25SZXF1ZXN0ID0gVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RQcm94eTo6Y3JlYXRlKCp0aGlzLCB1c2VyTWVkaWFJRCwgbWFpbkZyYW1lSUQs
IGZyYW1lSUQsIFdURk1vdmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExl
dmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9E
ZXZpY2VzKSwgV1RGTW92ZShyZXF1ZXN0KSk7Ci0gICAgbV9wZW5kaW5nVXNlck1lZGlhUmVxdWVz
dHMuYWRkKHVzZXJNZWRpYUlELCBwZXJtaXNzaW9uUmVxdWVzdC5wdHIoKSk7Ci0gICAgcmV0dXJu
IHBlcm1pc3Npb25SZXF1ZXN0OwotfQotCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKIHN0YXRp
YyB1aW50NjRfdCB0b1dlYkNvcmUoVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNl
ck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uIHJlYXNvbikKIHsKQEAgLTE4OCwxNSArMTc0LDE4IEBA
IHZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnVzZXJNZWRpYUFj
Y2Vzc1dhc0dyYW50ZWQodWludDY0X3QKICAgICBpZiAoIXJlcXVlc3QpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIG1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNoU2FsdFN0b3Jh
Z2UoKS5kZXZpY2VJZEhhc2hTYWx0Rm9yT3JpZ2luKHJlcXVlc3QtPnVzZXJNZWRpYURvY3VtZW50
U2VjdXJpdHlPcmlnaW4oKSwgcmVxdWVzdC0+dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2lu
KCksIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgdXNlck1lZGlhSUQsIGF1
ZGlvRGV2aWNlID0gV1RGTW92ZShhdWRpb0RldmljZSksIHZpZGVvRGV2aWNlID0gV1RGTW92ZSh2
aWRlb0RldmljZSksIGxvY2FsUmVxdWVzdCA9IHJlcXVlc3QuY29weVJlZigpXSAoU3RyaW5nJiYg
ZGV2aWNlSURIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAgYXV0byYgdXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbiA9IHJlcXVlc3QtPnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4o
KTsKKyAgICBhdXRvJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSByZXF1ZXN0LT50
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2Uud2Vic2l0ZURhdGFT
dG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNlSWRIYXNoU2FsdEZvck9yaWdp
bih1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4sIFt0aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdCA9
IHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKV0gKFN0cmluZyYmIGRldmljZUlESGFzaFNhbHQpIG11
dGFibGUgewogICAgICAgICBpZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwotICAg
ICAgICBpZiAoZ3JhbnRBY2Nlc3ModXNlck1lZGlhSUQsIFdURk1vdmUoYXVkaW9EZXZpY2UpLCBX
VEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShkZXZpY2VJREhhc2hTYWx0KSkpIHsKLSAgICAg
ICAgICAgIG1fZ3JhbnRlZFJlcXVlc3RzLmFwcGVuZChsb2NhbFJlcXVlc3QucmVsZWFzZU5vbk51
bGwoKSk7Ci0gICAgICAgICAgICBpZiAobV9oYXNGaWx0ZXJlZERldmljZUxpc3QpCi0gICAgICAg
ICAgICAgICAgY2FwdHVyZURldmljZXNDaGFuZ2VkKCk7Ci0gICAgICAgICAgICBtX2hhc0ZpbHRl
cmVkRGV2aWNlTGlzdCA9IGZhbHNlOwotICAgICAgICB9CisgICAgICAgIGlmICghZ3JhbnRBY2Nl
c3MocmVxdWVzdCkpCisgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgbV9ncmFudGVkUmVx
dWVzdHMuYXBwZW5kKFdURk1vdmUocmVxdWVzdCkpOworICAgICAgICBpZiAobV9oYXNGaWx0ZXJl
ZERldmljZUxpc3QpCisgICAgICAgICAgICBjYXB0dXJlRGV2aWNlc0NoYW5nZWQoKTsKKyAgICAg
ICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSBmYWxzZTsKICAgICB9KTsKICNlbHNlCiAgICAg
VU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKQEAgLTI2NiwxNCArMjU1LDE0IEBAIGJvb2wgVXNl
ck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6Ondhc1JlcXVlc3REZW5pZWQodWlu
dDY0X3QgbWFpbkZyYW1lCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi1ib29sIFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudEFjY2Vzcyh1aW50NjRfdCB1c2VyTWVk
aWFJRCwgY29uc3QgQ2FwdHVyZURldmljZSBhdWRpb0RldmljZSwgY29uc3QgQ2FwdHVyZURldmlj
ZSB2aWRlb0RldmljZSwgY29uc3QgU3RyaW5nJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpCiti
b29sIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjpncmFudEFjY2Vzcyhj
b25zdCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0KQogewotICAgIGlm
ICghVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRvbigpLndpbGxDcmVhdGVNZWRpYVN0
cmVhbSgqdGhpcywgISFhdWRpb0RldmljZSwgISF2aWRlb0RldmljZSkpIHsKLSAgICAgICAgZGVu
eVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6T3RoZXJGYWlsdXJlLCAiVW5hYmxlIHRvIGV4dGVu
ZCBzYW5kYm94LiIpOworICAgIGlmICghVXNlck1lZGlhUHJvY2Vzc01hbmFnZXI6OnNpbmdsZXRv
bigpLndpbGxDcmVhdGVNZWRpYVN0cmVhbSgqdGhpcywgcmVxdWVzdC5oYXNBdWRpb0RldmljZSgp
LCByZXF1ZXN0Lmhhc1ZpZGVvRGV2aWNlKCkpKSB7CisgICAgICAgIGRlbnlSZXF1ZXN0KHJlcXVl
c3QudXNlck1lZGlhSUQoKSwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1l
ZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpPdGhlckZhaWx1cmUsICJVbmFibGUgdG8gZXh0ZW5kIHNh
bmRib3guIik7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAKLSAgICBtX3BhZ2UucHJv
Y2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQo
dXNlck1lZGlhSUQsIGF1ZGlvRGV2aWNlLCB2aWRlb0RldmljZSwgZGV2aWNlSWRlbnRpZmllckhh
c2hTYWx0KSwgbV9wYWdlLnBhZ2VJRCgpKTsKKyAgICBtX3BhZ2UucHJvY2VzcygpLnNlbmQoTWVz
c2FnZXM6OldlYlBhZ2U6OlVzZXJNZWRpYUFjY2Vzc1dhc0dyYW50ZWQocmVxdWVzdC51c2VyTWVk
aWFJRCgpLCByZXF1ZXN0LmF1ZGlvRGV2aWNlKCksIHJlcXVlc3QudmlkZW9EZXZpY2UoKSwgcmVx
dWVzdC5kZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoKSksIG1fcGFnZS5wYWdlSUQoKSk7CiAgICAg
cmV0dXJuIHRydWU7CiB9CiAjZW5kaWYKQEAgLTI5NiwyNSArMjg1LDI2IEBAIHZvaWQgVXNlck1l
ZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnNjaGVkdWxlTmV4dFJlamVjdGlvbigp
CiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHk6OlJlcXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyUHJveHk6OmdldFJlcXVlc3RBY3Rpb24odWludDY0X3QgZnJhbWVJRCwgU2VjdXJpdHlP
cmlnaW4mIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBTZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxE
b2N1bWVudE9yaWdpbiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiB1c2VyUmVxdWVzdCwgVmVj
dG9yPENhcHR1cmVEZXZpY2U+JiBhdWRpb0RldmljZXMsIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiYg
dmlkZW9EZXZpY2VzKQorVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OlJl
cXVlc3RBY3Rpb24gVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OmdldFJl
cXVlc3RBY3Rpb24oY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYgcmVxdWVz
dCkKIHsKLSAgICBib29sIHJlcXVlc3RpbmdTY3JlZW5DYXB0dXJlID0gdXNlclJlcXVlc3QudHlw
ZSA9PSBNZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYTsKLSAgICBBU1NFUlQo
IShyZXF1ZXN0aW5nU2NyZWVuQ2FwdHVyZSAmJiB2aWRlb0RldmljZXMuaXNFbXB0eSgpKSk7Ci0g
ICAgQVNTRVJUKCEocmVxdWVzdGluZ1NjcmVlbkNhcHR1cmUgJiYgIWF1ZGlvRGV2aWNlcy5pc0Vt
cHR5KCkpKTsKLSAgICBib29sIHJlcXVlc3RpbmdDYW1lcmEgPSAhcmVxdWVzdGluZ1NjcmVlbkNh
cHR1cmUgJiYgIXZpZGVvRGV2aWNlcy5pc0VtcHR5KCk7Ci0gICAgYm9vbCByZXF1ZXN0aW5nTWlj
cm9waG9uZSA9ICFhdWRpb0RldmljZXMuaXNFbXB0eSgpOworICAgIGJvb2wgcmVxdWVzdGluZ1Nj
cmVlbkNhcHR1cmUgPSByZXF1ZXN0LnJlcXVlc3RUeXBlKCkgPT0gTWVkaWFTdHJlYW1SZXF1ZXN0
OjpUeXBlOjpEaXNwbGF5TWVkaWE7CisgICAgYm9vbCByZXF1ZXN0aW5nQ2FtZXJhID0gIXJlcXVl
c3RpbmdTY3JlZW5DYXB0dXJlICYmIHJlcXVlc3QuaGFzVmlkZW9EZXZpY2UoKTsKKyAgICBib29s
IHJlcXVlc3RpbmdNaWNyb3Bob25lID0gcmVxdWVzdC5oYXNBdWRpb0RldmljZSgpOwogCi0gICAg
aWYgKHdhc1JlcXVlc3REZW5pZWQoZnJhbWVJRCwgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIHRv
cExldmVsRG9jdW1lbnRPcmlnaW4sIHJlcXVlc3RpbmdNaWNyb3Bob25lLCByZXF1ZXN0aW5nQ2Ft
ZXJhLCByZXF1ZXN0aW5nU2NyZWVuQ2FwdHVyZSkpCisgICAgQVNTRVJUKCEocmVxdWVzdGluZ1Nj
cmVlbkNhcHR1cmUgJiYgIXJlcXVlc3QuaGFzVmlkZW9EZXZpY2UoKSkpOworICAgIEFTU0VSVCgh
KHJlcXVlc3RpbmdTY3JlZW5DYXB0dXJlICYmIHJlcXVlc3RpbmdNaWNyb3Bob25lKSk7CisKKyAg
ICBpZiAod2FzUmVxdWVzdERlbmllZChyZXF1ZXN0LmZyYW1lSUQoKSwgcmVxdWVzdC51c2VyTWVk
aWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QudG9wTGV2ZWxEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKCksIHJlcXVlc3RpbmdNaWNyb3Bob25lLCByZXF1ZXN0aW5nQ2FtZXJhLCByZXF1
ZXN0aW5nU2NyZWVuQ2FwdHVyZSkpCiAgICAgICAgIHJldHVybiBSZXF1ZXN0QWN0aW9uOjpEZW55
OwogCi0gICAgaWYgKHVzZXJSZXF1ZXN0LnR5cGUgPT0gTWVkaWFTdHJlYW1SZXF1ZXN0OjpUeXBl
OjpEaXNwbGF5TWVkaWEpCisgICAgaWYgKHJlcXVlc3QucmVxdWVzdFR5cGUoKSA9PSBNZWRpYVN0
cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSkKICAgICAgICAgcmV0dXJuIFJlcXVlc3RB
Y3Rpb246OlByb21wdDsKIAotICAgIHJldHVybiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdChmcmFt
ZUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgcmVx
dWVzdGluZ01pY3JvcGhvbmUsIHJlcXVlc3RpbmdDYW1lcmEpID8gUmVxdWVzdEFjdGlvbjo6R3Jh
bnQgOiBSZXF1ZXN0QWN0aW9uOjpQcm9tcHQ7CisgICAgcmV0dXJuIHNlYXJjaEZvckdyYW50ZWRS
ZXF1ZXN0KHJlcXVlc3QuZnJhbWVJRCgpLCByZXF1ZXN0LnVzZXJNZWRpYURvY3VtZW50U2VjdXJp
dHlPcmlnaW4oKSwgcmVxdWVzdC50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgcmVx
dWVzdGluZ01pY3JvcGhvbmUsIHJlcXVlc3RpbmdDYW1lcmEpID8gUmVxdWVzdEFjdGlvbjo6R3Jh
bnQgOiBSZXF1ZXN0QWN0aW9uOjpQcm9tcHQ7CiB9CiAjZW5kaWYKIAotdm9pZCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25G
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgY29uc3QgTWVkaWFTdHJlYW1SZXF1ZXN0JiB1c2Vy
UmVxdWVzdCkKK3ZvaWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJl
cXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVp
bnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9y
aWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIE1lZGlh
U3RyZWFtUmVxdWVzdCYmIHVzZXJSZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgaWYgKCFVc2VyTWVkaWFQcm9jZXNzTWFuYWdlcjo6c2luZ2xldG9uKCkuY2FwdHVyZUVu
YWJsZWQoKSkgewpAQCAtMzIzLDk1ICszMTMsNjIgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdE1hbmFnZXJQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSgK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OkludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgaW52YWxpZEhhbmRsZXIgPSBbdGhpcywgdXNlck1l
ZGlhSURdKGNvbnN0IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIHsKLSAgICAgICAgaWYgKCFt
X3BhZ2UuaXNWYWxpZCgpKQotICAgICAgICAgICAgcmV0dXJuOworICAgIGlmICghbV9wYWdlLmlz
VmFsaWQoKSkKKyAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRp
YUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5p
YWxSZWFzb246OkludmFsaWRDb25zdHJhaW50LCBpbnZhbGlkQ29uc3RyYWludCk7Ci0gICAgfTsK
KyAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CisgICAgYXV0byB0b3BMZXZlbE9yaWdpbiA9
IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdldCgp
KTsKIAotICAgIGF1dG8gdmFsaWRIYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCBmcmFtZUlE
LCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmNvcHlS
ZWYoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uY29w
eVJlZigpLCBsb2NhbFVzZXJSZXF1ZXN0ID0gdXNlclJlcXVlc3RdKFZlY3RvcjxDYXB0dXJlRGV2
aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2Vz
LCBTdHJpbmcmJiBkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpIG11dGFibGUgewotICAgICAgICBp
ZiAoIW1fcGFnZS5pc1ZhbGlkKCkgfHwgIW1fcGFnZS5tYWluRnJhbWUoKSkKLSAgICAgICAgICAg
IHJldHVybjsKKyAgICBhdXRvIHJlcXVlc3QgPSBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0cy5h
ZGQodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OmNyZWF0ZSgq
dGhpcywgdXNlck1lZGlhSUQsIG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBmcmFtZUlE
LCBXVEZNb3ZlKHVzZXJNZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3Vt
ZW50T3JpZ2luKSwgeyB9LCB7IH0sIFdURk1vdmUodXNlclJlcXVlc3QpKSkuaXRlcmF0b3ItPnZh
bHVlLmNvcHlSZWYoKTsKIAotICAgICAgICBpZiAodmlkZW9EZXZpY2VzLmlzRW1wdHkoKSAmJiBh
dWRpb0RldmljZXMuaXNFbXB0eSgpKSB7Ci0gICAgICAgICAgICBkZW55UmVxdWVzdCh1c2VyTWVk
aWFJRCwgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTo6VXNlck1lZGlhQWNjZXNzRGVu
aWFsUmVhc29uOjpOb0NvbnN0cmFpbnRzLCBlbXB0eVN0cmluZygpKTsKKyAgICBnZXRVc2VyTWVk
aWFQZXJtaXNzaW9uSW5mbyhmcmFtZUlELCByZXF1ZXN0LT51c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKCksIHJlcXVlc3QtPnRvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCBb
dGhpcywgcmVxdWVzdCA9IHJlcXVlc3QucmVsZWFzZU5vbk51bGwoKV0oT3B0aW9uYWw8Ym9vbD4g
aGFzUGVyc2lzdGVudEFjY2VzcykgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVxdWVzdC0+aXNQ
ZW5kaW5nKCkpCiAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KIAotICAgICAgICBhdXRv
IGFjdGlvbiA9IGdldFJlcXVlc3RBY3Rpb24obV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCks
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmdldCgpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luLmdl
dCgpLCBsb2NhbFVzZXJSZXF1ZXN0LCBhdWRpb0RldmljZXMsIHZpZGVvRGV2aWNlcyk7Ci0gICAg
ICAgIGlmIChhY3Rpb24gPT0gUmVxdWVzdEFjdGlvbjo6RGVueSkgewotICAgICAgICAgICAgZGVu
eVJlcXVlc3QodXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVz
ZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCwgZW1wdHlTdHJpbmco
KSk7CisgICAgICAgIGlmICghaGFzUGVyc2lzdGVudEFjY2VzcykgeworICAgICAgICAgICAgcmVx
dWVzdC0+ZGVueShVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nl
c3NEZW5pYWxSZWFzb246Ok90aGVyRmFpbHVyZSk7CiAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgIH0KIAotICAgICAgICBpZiAoYWN0aW9uID09IFJlcXVlc3RBY3Rpb246OkdyYW50KSB7Ci0g
ICAgICAgICAgICBBU1NFUlQobG9jYWxVc2VyUmVxdWVzdC50eXBlICE9IE1lZGlhU3RyZWFtUmVx
dWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKTsKKyAgICAgICAgcHJvY2Vzc1VzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksICpoYXNQZXJzaXN0ZW50QWNjZXNzKTsKKyAg
ICB9KTsKK30KIAotICAgICAgICAgICAgaWYgKG1fcGFnZS5pc1ZpZXdWaXNpYmxlKCkpIHsKLSAg
ICAgICAgICAgICAgICAvLyBXZSBzZWxlY3QgdGhlIGZpcnN0IGF2YWlsYWJsZSBkZXZpY2VzLCBi
dXQgdGhlIGN1cnJlbnQgY2xpZW50IEFQSSBhbGxvd3MgY2xpZW50IHRvIHNlbGVjdCB3aGljaCBk
ZXZpY2UgdG8gcGljay4KLSAgICAgICAgICAgICAgICAvLyBGSVhNRTogUmVtb3ZlIHRoZSBwb3Nz
aWJsaXR5IGZvciB0aGUgY2xpZW50IHRvIGRvIHRoZSBkZXZpY2Ugc2VsZWN0aW9uLgotICAgICAg
ICAgICAgICAgIGF1dG8gYXVkaW9EZXZpY2UgPSAhYXVkaW9EZXZpY2VzLmlzRW1wdHkoKSA/IGF1
ZGlvRGV2aWNlc1swXSA6IENhcHR1cmVEZXZpY2UoKTsKLSAgICAgICAgICAgICAgICBhdXRvIHZp
ZGVvRGV2aWNlID0gIXZpZGVvRGV2aWNlcy5pc0VtcHR5KCkgPyB2aWRlb0RldmljZXNbMF0gOiBD
YXB0dXJlRGV2aWNlKCk7Ci0gICAgICAgICAgICAgICAgZ3JhbnRBY2Nlc3ModXNlck1lZGlhSUQs
IFdURk1vdmUoYXVkaW9EZXZpY2UpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlKSwgV1RGTW92ZShkZXZp
Y2VJZGVudGlmaWVySGFzaFNhbHQpKTsKLSAgICAgICAgICAgIH0gZWxzZQotICAgICAgICAgICAg
ICAgIG1fcHJlZ3JhbnRlZFJlcXVlc3RzLmFwcGVuZChjcmVhdGVQZXJtaXNzaW9uUmVxdWVzdCh1
c2VyTWVkaWFJRCwgbV9wYWdlLm1haW5GcmFtZSgpLT5mcmFtZUlEKCksIGZyYW1lSUQsIFdURk1v
dmUodXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmln
aW4pLCBXVEZNb3ZlKGF1ZGlvRGV2aWNlcyksIFdURk1vdmUodmlkZW9EZXZpY2VzKSwgV1RGTW92
ZShsb2NhbFVzZXJSZXF1ZXN0KSkpOwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KFJlZjxVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5PiYmIHJlcXVlc3QsIGJvb2wgaGFzUGVyc2lzdGVudEFj
Y2VzcykKK3sKKyAgICBpZiAoaGFzUGVyc2lzdGVudEFjY2VzcykKKyAgICAgICAgcmVxdWVzdC0+
c2V0SGFzUGVyc2lzdGVudEFjY2VzcygpOwogCisgICAgYXV0byYgdXNlck1lZGlhRG9jdW1lbnRT
ZWN1cml0eU9yaWdpbiA9IHJlcXVlc3QtPnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlPcmlnaW4o
KTsKKyAgICBhdXRvJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4gPSByZXF1ZXN0LT50
b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKTsKKyAgICBtX3BhZ2Uud2Vic2l0ZURhdGFT
dG9yZSgpLmRldmljZUlkSGFzaFNhbHRTdG9yYWdlKCkuZGV2aWNlSWRIYXNoU2FsdEZvck9yaWdp
bih1c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luLCB0b3BMZXZlbERvY3VtZW50U2VjdXJp
dHlPcmlnaW4sIFt0aGlzLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KV0gKFN0cmluZyYmIGRl
dmljZUlESGFzaFNhbHQpIG11dGFibGUgeworICAgICAgICBpZiAoIXJlcXVlc3QtPmlzUGVuZGlu
ZygpKQogICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgYXV0byB1c2Vy
TWVkaWFPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUodXNlck1lZGlhRG9jdW1l
bnRPcmlnaW4uZ2V0KCkpOwotICAgICAgICBhdXRvIHRvcExldmVsT3JpZ2luID0gQVBJOjpTZWN1
cml0eU9yaWdpbjo6Y3JlYXRlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpOwotICAgICAg
ICBhdXRvIHBlbmRpbmdSZXF1ZXN0ID0gY3JlYXRlUGVybWlzc2lvblJlcXVlc3QodXNlck1lZGlh
SUQsIG1fcGFnZS5tYWluRnJhbWUoKS0+ZnJhbWVJRCgpLCBmcmFtZUlELCBXVEZNb3ZlKHVzZXJN
ZWRpYURvY3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgV1RG
TW92ZShhdWRpb0RldmljZXMpLCBXVEZNb3ZlKHZpZGVvRGV2aWNlcyksIFdURk1vdmUobG9jYWxV
c2VyUmVxdWVzdCkpOwotCi0gICAgICAgIGlmIChtX3BhZ2UuaXNDb250cm9sbGVkQnlBdXRvbWF0
aW9uKCkpIHsKLSAgICAgICAgICAgIGlmIChXZWJBdXRvbWF0aW9uU2Vzc2lvbiogYXV0b21hdGlv
blNlc3Npb24gPSBtX3BhZ2UucHJvY2VzcygpLnByb2Nlc3NQb29sKCkuYXV0b21hdGlvblNlc3Np
b24oKSkgewotICAgICAgICAgICAgICAgIGlmIChhdXRvbWF0aW9uU2Vzc2lvbi0+c2hvdWxkQWxs
b3dHZXRVc2VyTWVkaWFGb3JQYWdlKG1fcGFnZSkpCi0gICAgICAgICAgICAgICAgICAgIHBlbmRp
bmdSZXF1ZXN0LT5hbGxvdygpOwotICAgICAgICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgICAg
ICAgICAgdXNlck1lZGlhQWNjZXNzV2FzRGVuaWVkKHVzZXJNZWRpYUlELCBVc2VyTWVkaWFQZXJt
aXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OlBlcm1pc3Np
b25EZW5pZWQpOwogCisgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OkludmFsaWRD
b25zdHJhaW50c0hhbmRsZXIgaW52YWxpZEhhbmRsZXIgPSBbdGhpcywgcmVxdWVzdCA9IHJlcXVl
c3QuY29weVJlZigpXShjb25zdCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSB7CisgICAgICAg
ICAgICBpZiAoIXJlcXVlc3QtPmlzUGVuZGluZygpKQogICAgICAgICAgICAgICAgIHJldHVybjsK
LSAgICAgICAgICAgIH0KLSAgICAgICAgfQogCi0gICAgICAgIGlmIChtX3BhZ2UucHJlZmVyZW5j
ZXMoKS5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCkgJiYgIW1fcGFnZS5wcmVmZXJlbmNlcygp
Lm1vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQoKSkgewotICAgICAgICAgICAgcGVuZGlu
Z1JlcXVlc3QtPmFsbG93KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAg
ICAgICAvLyBJZiBwYWdlIG5hdmlnYXRlZCwgdGhlcmUgaXMgbm8gbmVlZCB0byBjYWxsIHRoZSBw
YWdlIGNsaWVudCBmb3IgYXV0aG9yaXphdGlvbi4KLSAgICAgICAgYXV0byogd2ViRnJhbWUgPSBt
X3BhZ2UucHJvY2VzcygpLndlYkZyYW1lKGZyYW1lSUQpOwotCi0gICAgICAgIGlmICghd2ViRnJh
bWUgfHwgIVNlY3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKG1fcGFnZS5wYWdlTG9hZFN0
YXRlKCkuYWN0aXZlVVJMKCkpLT5pc1NhbWVTY2hlbWVIb3N0UG9ydCh0b3BMZXZlbE9yaWdpbi0+
c2VjdXJpdHlPcmlnaW4oKSkpIHsKLSAgICAgICAgICAgIGRlbnlSZXF1ZXN0KHVzZXJNZWRpYUlE
LCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxS
ZWFzb246Ok5vQ29uc3RyYWludHMsIGVtcHR5U3RyaW5nKCkpOwotICAgICAgICAgICAgcmV0dXJu
OwotICAgICAgICB9CisgICAgICAgICAgICBpZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCisgICAgICAg
ICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIC8vIEZJWE1FOiBSZW1vdmUgd2ViRnJhbWUsIHVz
ZXJNZWRpYU9yaWdpbiBhbmQgdG9wTGV2ZWxPcmlnaW4gZnJvbSB0aGlzIHVpQ2xpZW50IEFQSSBj
YWxsLgotICAgICAgICBtX3BhZ2UudWlDbGllbnQoKS5kZWNpZGVQb2xpY3lGb3JVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdChtX3BhZ2UsICp3ZWJGcmFtZSwgV1RGTW92ZSh1c2VyTWVkaWFPcmln
aW4pLCBXVEZNb3ZlKHRvcExldmVsT3JpZ2luKSwgcGVuZGluZ1JlcXVlc3QuZ2V0KCkpOwotICAg
IH07CisgICAgICAgICAgICBwcm9jZXNzVXNlck1lZGlhUGVybWlzc2lvbkludmFsaWRSZXF1ZXN0
KHJlcXVlc3QuZ2V0KCksIGludmFsaWRDb25zdHJhaW50KTsKKyAgICAgICAgfTsKIAotICAgIGF1
dG8gcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQoKTsKLSAgICBhdXRvIGhhdmVQZXJtaXNz
aW9uSW5mb0hhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyksIHJl
cXVlc3RJRCwgdmFsaWRIYW5kbGVyID0gV1RGTW92ZSh2YWxpZEhhbmRsZXIpLCBpbnZhbGlkSGFu
ZGxlciA9IFdURk1vdmUoaW52YWxpZEhhbmRsZXIpLCBsb2NhbFVzZXJSZXF1ZXN0ID0gdXNlclJl
cXVlc3RdKGJvb2wgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcykgbXV0YWJsZSB7Ci0gICAgICAg
IGlmICghd2Vha1RoaXMpCi0gICAgICAgICAgICByZXR1cm47CisgICAgICAgIGF1dG8gdmFsaWRI
YW5kbGVyID0gW3RoaXMsIHJlcXVlc3QgPSByZXF1ZXN0LmNvcHlSZWYoKV0oVmVjdG9yPENhcHR1
cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8Q2FwdHVyZURldmljZT4mJiB2aWRlb0Rl
dmljZXMsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCkgbXV0YWJsZSB7CisgICAg
ICAgICAgICBpZiAoIXJlcXVlc3QtPmlzUGVuZGluZygpKQorICAgICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBhdXRvIHBlbmRpbmdSZXF1ZXN0ID0gbV9wZW5kaW5nRGV2aWNlUmVxdWVz
dHMudGFrZShyZXF1ZXN0SUQpOwotICAgICAgICBpZiAoIXBlbmRpbmdSZXF1ZXN0KQotICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgaWYgKCFtX3BhZ2UuaXNWYWxpZCgpIHx8ICFtX3Bh
Z2UubWFpbkZyYW1lKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogCi0gICAgICAgIGlmICgh
bV9wYWdlLmlzVmFsaWQoKSkKLSAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIHByb2Nl
c3NVc2VyTWVkaWFQZXJtaXNzaW9uVmFsaWRSZXF1ZXN0KFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUoYXVkaW9EZXZpY2VzKSwgV1RGTW92ZSh2aWRlb0RldmljZXMpLCBXVEZNb3ZlKGRldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCkpOworICAgICAgICB9OwogCiAgICAgICAgIHN5bmNXaXRoV2ViQ29y
ZVByZWZzKCk7CiAKLSAgICAgICAgbV9wYWdlLndlYnNpdGVEYXRhU3RvcmUoKS5kZXZpY2VJZEhh
c2hTYWx0U3RvcmFnZSgpLmRldmljZUlkSGFzaFNhbHRGb3JPcmlnaW4ocGVuZGluZ1JlcXVlc3Qu
dmFsdWUoKS0+dXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpLCBwZW5kaW5nUmVxdWVz
dC52YWx1ZSgpLT50b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSwgW3ZhbGlkSGFuZGxl
ciA9IFdURk1vdmUodmFsaWRIYW5kbGVyKSwgaW52YWxpZEhhbmRsZXIgPSBXVEZNb3ZlKGludmFs
aWRIYW5kbGVyKSwgbG9jYWxVc2VyUmVxdWVzdCA9IGxvY2FsVXNlclJlcXVlc3RdIChTdHJpbmcm
JiBkZXZpY2VJREhhc2hTYWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFdURk1v
dmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShpbnZhbGlkSGFuZGxlciksIFdURk1vdmUobG9jYWxV
c2VyUmVxdWVzdCksIFdURk1vdmUoZGV2aWNlSURIYXNoU2FsdCkpOwotICAgICAgICB9KTsKLSAg
ICB9OwotCi0gICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8ocmVxdWVzdElELCBmcmFtZUlE
LCBXVEZNb3ZlKGhhdmVQZXJtaXNzaW9uSW5mb0hhbmRsZXIpLCBXVEZNb3ZlKHVzZXJNZWRpYURv
Y3VtZW50T3JpZ2luKSwgV1RGTW92ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSk7CisgICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZhbGlkYXRlUmVxdWVzdENv
bnN0cmFpbnRzKFdURk1vdmUodmFsaWRIYW5kbGVyKSwgV1RGTW92ZShpbnZhbGlkSGFuZGxlciks
IHJlcXVlc3QtPnVzZXJSZXF1ZXN0KCksIFdURk1vdmUoZGV2aWNlSURIYXNoU2FsdCkpOworICAg
IH0pOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0odXNlck1lZGlhSUQpOwogICAgIFVOVVNFRF9Q
QVJBTShmcmFtZUlEKTsKQEAgLTQyMiwxOSArMzc5LDkzIEBAIHZvaWQgVXNlck1lZGlhUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJh
bWUoCiB9CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQotdm9pZCBVc2VyTWVkaWFQZXJtaXNz
aW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0
X3QgcmVxdWVzdElELCB1aW50NjRfdCBmcmFtZUlELCBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQ
cm94eTo6Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyLCBSZWY8U2VjdXJpdHlPcmlnaW4+JiYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luKQordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6cHJvY2Vzc1VzZXJNZWRpYVBlcm1pc3Npb25JbnZhbGlkUmVxdWVzdChjb25zdCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGludmFsaWRD
b25zdHJhaW50KQoreworICAgIGJvb2wgZmlsdGVyQ29uc3RyYWludCA9ICFyZXF1ZXN0Lmhhc1Bl
cnNpc3RlbnRBY2Nlc3MoKSAmJiAhd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhyZXF1ZXN0
LmZyYW1lSUQoKSwgcmVxdWVzdC51c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCksIHJl
cXVlc3QudG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkpOworCisgICAgZGVueVJlcXVl
c3QocmVxdWVzdC51c2VyTWVkaWFJRCgpLCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5
OjpVc2VyTWVkaWFBY2Nlc3NEZW5pYWxSZWFzb246OkludmFsaWRDb25zdHJhaW50LCBmaWx0ZXJD
b25zdHJhaW50ID8gU3RyaW5nIHsgfSA6IGludmFsaWRDb25zdHJhaW50KTsKK30KKwordm9pZCBV
c2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6cHJvY2Vzc1VzZXJNZWRpYVBl
cm1pc3Npb25WYWxpZFJlcXVlc3QoUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+
JiYgcmVxdWVzdCwgVmVjdG9yPENhcHR1cmVEZXZpY2U+JiYgYXVkaW9EZXZpY2VzLCBWZWN0b3I8
Q2FwdHVyZURldmljZT4mJiB2aWRlb0RldmljZXMsIFN0cmluZyYmIGRldmljZUlkZW50aWZpZXJI
YXNoU2FsdCkKK3sKKyAgICBpZiAodmlkZW9EZXZpY2VzLmlzRW1wdHkoKSAmJiBhdWRpb0Rldmlj
ZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGRlbnlSZXF1ZXN0KHJlcXVlc3QtPnVzZXJNZWRpYUlE
KCksIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0Rlbmlh
bFJlYXNvbjo6Tm9Db25zdHJhaW50cywgZW1wdHlTdHJpbmcoKSk7CisgICAgICAgIHJldHVybjsK
KyAgICB9CisKKyAgICByZXF1ZXN0LT5zZXREZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoV1RGTW92
ZShkZXZpY2VJZGVudGlmaWVySGFzaFNhbHQpKTsKKyAgICByZXF1ZXN0LT5zZXRFbGlnaWJsZVZp
ZGVvRGV2aWNlVUlEcyhXVEZNb3ZlKHZpZGVvRGV2aWNlcykpOworICAgIHJlcXVlc3QtPnNldEVs
aWdpYmxlQXVkaW9EZXZpY2VVSURzKFdURk1vdmUoYXVkaW9EZXZpY2VzKSk7CisKKyAgICBhdXRv
IGFjdGlvbiA9IGdldFJlcXVlc3RBY3Rpb24ocmVxdWVzdCk7CisgICAgaWYgKGFjdGlvbiA9PSBS
ZXF1ZXN0QWN0aW9uOjpEZW55KSB7CisgICAgICAgIGRlbnlSZXF1ZXN0KHJlcXVlc3QtPnVzZXJN
ZWRpYUlEKCksIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vz
c0RlbmlhbFJlYXNvbjo6UGVybWlzc2lvbkRlbmllZCwgZW1wdHlTdHJpbmcoKSk7CisgICAgICAg
IHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoYWN0aW9uID09IFJlcXVlc3RBY3Rpb246OkdyYW50
KSB7CisgICAgICAgIEFTU0VSVChyZXF1ZXN0LT5yZXF1ZXN0VHlwZSgpICE9IE1lZGlhU3RyZWFt
UmVxdWVzdDo6VHlwZTo6RGlzcGxheU1lZGlhKTsKKworICAgICAgICBpZiAobV9wYWdlLmlzVmll
d1Zpc2libGUoKSkKKyAgICAgICAgICAgIGdyYW50QWNjZXNzKHJlcXVlc3QpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBtX3ByZWdyYW50ZWRSZXF1ZXN0cy5hcHBlbmQoV1RGTW92ZShyZXF1
ZXN0KSk7CisKKyAgICAgICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3BhZ2UuaXNDb250
cm9sbGVkQnlBdXRvbWF0aW9uKCkpIHsKKyAgICAgICAgaWYgKFdlYkF1dG9tYXRpb25TZXNzaW9u
KiBhdXRvbWF0aW9uU2Vzc2lvbiA9IG1fcGFnZS5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKS5hdXRv
bWF0aW9uU2Vzc2lvbigpKSB7CisgICAgICAgICAgICBpZiAoYXV0b21hdGlvblNlc3Npb24tPnNo
b3VsZEFsbG93R2V0VXNlck1lZGlhRm9yUGFnZShtX3BhZ2UpKQorICAgICAgICAgICAgICAgIHJl
cXVlc3QtPmFsbG93KCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgdXNlck1l
ZGlhQWNjZXNzV2FzRGVuaWVkKHJlcXVlc3QtPnVzZXJNZWRpYUlEKCksIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6UGVybWlzc2lv
bkRlbmllZCk7CisKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKworICAg
IGlmIChtX3BhZ2UucHJlZmVyZW5jZXMoKS5tb2NrQ2FwdHVyZURldmljZXNFbmFibGVkKCkgJiYg
IW1fcGFnZS5wcmVmZXJlbmNlcygpLm1vY2tDYXB0dXJlRGV2aWNlc1Byb21wdEVuYWJsZWQoKSkg
eworICAgICAgICByZXF1ZXN0LT5hbGxvdygpOworICAgICAgICByZXR1cm47CisgICAgfQorCisg
ICAgLy8gSWYgcGFnZSBuYXZpZ2F0ZWQsIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCB0aGUgcGFn
ZSBjbGllbnQgZm9yIGF1dGhvcml6YXRpb24uCisgICAgYXV0byogd2ViRnJhbWUgPSBtX3BhZ2Uu
cHJvY2VzcygpLndlYkZyYW1lKHJlcXVlc3QtPmZyYW1lSUQoKSk7CisKKyAgICBpZiAoIXdlYkZy
YW1lIHx8ICFTZWN1cml0eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyhtX3BhZ2UucGFnZUxvYWRT
dGF0ZSgpLmFjdGl2ZVVSTCgpKS0+aXNTYW1lU2NoZW1lSG9zdFBvcnQocmVxdWVzdC0+dG9wTGV2
ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkpKSB7CisgICAgICAgIGRlbnlSZXF1ZXN0KHJlcXVl
c3QtPnVzZXJNZWRpYUlEKCksIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJN
ZWRpYUFjY2Vzc0RlbmlhbFJlYXNvbjo6Tm9Db25zdHJhaW50cywgZW1wdHlTdHJpbmcoKSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisKKyAgICAvLyBGSVhNRTogUmVtb3ZlIHdlYkZyYW1lLCB1
c2VyTWVkaWFPcmlnaW4gYW5kIHRvcExldmVsT3JpZ2luIGZyb20gdGhpcyB1aUNsaWVudCBBUEkg
Y2FsbC4KKyAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNy
ZWF0ZShyZXF1ZXN0LT51c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkpOworICAgIGF1
dG8gdG9wTGV2ZWxPcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVhdGUocmVxdWVzdC0+
dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkpOworICAgIG1fcGFnZS51aUNsaWVudCgp
LmRlY2lkZVBvbGljeUZvclVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0KG1fcGFnZSwgKndlYkZy
YW1lLCBXVEZNb3ZlKHVzZXJNZWRpYU9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxPcmlnaW4pLCBy
ZXF1ZXN0KTsKK30KKwordm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eTo6Z2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8odWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChPcHRpb25h
bDxib29sPik+JiYgaGFuZGxlcikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IG1fcGFnZS5wcm9j
ZXNzKCkud2ViRnJhbWUoZnJhbWVJRCk7CiAgICAgaWYgKCF3ZWJGcmFtZSB8fCAhU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZUZyb21TdHJpbmcobV9wYWdlLnBhZ2VMb2FkU3RhdGUoKS5hY3RpdmVVUkwo
KSktPmlzU2FtZVNjaGVtZUhvc3RQb3J0KHRvcExldmVsRG9jdW1lbnRPcmlnaW4uZ2V0KCkpKSB7
Ci0gICAgICAgIGhhbmRsZXIoZmFsc2UpOworICAgICAgICBoYW5kbGVyKHsgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKICAgICBhdXRvIHVzZXJNZWRpYU9yaWdpbiA9IEFQSTo6U2VjdXJp
dHlPcmlnaW46OmNyZWF0ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbi5nZXQoKSk7CiAgICAgYXV0
byB0b3BMZXZlbE9yaWdpbiA9IEFQSTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZSh0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLmdldCgpKTsKLSAgICBhdXRvIHJlcXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNz
aW9uQ2hlY2tQcm94eTo6Y3JlYXRlKGZyYW1lSUQsIFdURk1vdmUoaGFuZGxlciksIFdURk1vdmUo
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4p
KTsKIAotICAgIG1fcGVuZGluZ0RldmljZVJlcXVlc3RzLmFkZChyZXF1ZXN0SUQsIHJlcXVlc3Qu
Y29weVJlZigpKTsKKyAgICBhdXRvIHJlcXVlc3RJRCA9IGdlbmVyYXRlUmVxdWVzdElEKCk7Cisg
ICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCk7CisKKyAgICBhdXRvIHJl
cXVlc3QgPSBVc2VyTWVkaWFQZXJtaXNzaW9uQ2hlY2tQcm94eTo6Y3JlYXRlKGZyYW1lSUQsIFt0
aGlzLCB3ZWFrVGhpcyA9IG1ha2VXZWFrUHRyKCp0aGlzKSwgcmVxdWVzdElELCBoYW5kbGVyID0g
V1RGTW92ZShoYW5kbGVyKV0oT3B0aW9uYWw8Ym9vbD4gYWxsb3dlZCkgbXV0YWJsZSB7CisgICAg
ICAgIGlmICghd2Vha1RoaXMgfHwgIW1fcGVuZGluZ0RldmljZVJlcXVlc3RzLnJlbW92ZShyZXF1
ZXN0SUQpIHx8ICFhbGxvd2VkKSB7CisgICAgICAgICAgICBoYW5kbGVyKHsgfSk7CisgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaGFuZGxlcigqYWxsb3dlZCk7CisgICAg
fSwgV1RGTW92ZSh1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1
bWVudE9yaWdpbikpOworCiAgICAgLy8gRklYTUU6IFJlbW92ZSB3ZWJGcmFtZSwgdXNlck1lZGlh
T3JpZ2luIGFuZCB0b3BMZXZlbE9yaWdpbiBmcm9tIHRoaXMgdWlDbGllbnQgQVBJIGNhbGwuCiAg
ICAgbV9wYWdlLnVpQ2xpZW50KCkuY2hlY2tVc2VyTWVkaWFQZXJtaXNzaW9uRm9yT3JpZ2luKG1f
cGFnZSwgKndlYkZyYW1lLCB1c2VyTWVkaWFPcmlnaW4uZ2V0KCksIHRvcExldmVsT3JpZ2luLmdl
dCgpLCByZXF1ZXN0LmdldCgpKTsKIH0KQEAgLTQ1NywxMiArNDg4LDkgQEAgYm9vbCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6d2FzR3JhbnRlZFZpZGVvT3JBdWRpb0Fj
Y2Vzcyh1aW50NjQKIAogICAgIHJldHVybiBmYWxzZTsKIH0KLSNlbmRpZgogCi12b2lkIFVzZXJN
ZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNG
b3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFNlY3Vy
aXR5T3JpZ2luPiYmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLCBSZWY8U2VjdXJpdHlPcmlnaW4+
JiYgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbikKK1ZlY3RvcjxDYXB0dXJlRGV2aWNlPiBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6Y29tcHV0ZUZpbHRlcmVkRGV2aWNlTGlz
dChib29sIHJldmVhbElkc0FuZExhYmVscywgY29uc3QgU3RyaW5nJiBkZXZpY2VJREhhc2hTYWx0
KQogewotI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KICNpZiBQTEFURk9STShJT1NfRkFNSUxZ
KQogICAgIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdE1heGltdW1DYW1lcmFDb3VudCA9IDI7CiAj
ZWxzZQpAQCAtNDcwLDE5ICs0OTgsNTYgQEAgdm9pZCBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDYKICNlbmRp
ZgogICAgIHN0YXRpYyBjb25zdCBpbnQgZGVmYXVsdE1heGltdW1NaWNyb3Bob25lQ291bnQgPSAx
OwogCi0gICAgYXV0byByZXF1ZXN0SUQgPSBnZW5lcmF0ZVJlcXVlc3RJRCgpOwotICAgIGF1dG8g
Y29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgd2Vha1RoaXMgPSBtYWtlV2Vha1B0cigqdGhpcyks
IHJlcXVlc3RJRCwgdXNlck1lZGlhSUQsIHJlcXVlc3RPcmlnaW4gPSB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbi5jb3B5UmVmKCksIHRvcE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uY29w
eVJlZigpXShib29sIG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MpIG11dGFibGUgewotICAgICAg
ICBpZiAoIXdlYWtUaGlzKQorICAgIGF1dG8gZGV2aWNlcyA9IFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNpbmdsZXRvbigpLmdldE1lZGlhU3RyZWFtRGV2aWNlcygpOworICAgIGludCBjYW1l
cmFDb3VudCA9IDA7CisgICAgaW50IG1pY3JvcGhvbmVDb3VudCA9IDA7CisKKyAgICBWZWN0b3I8
Q2FwdHVyZURldmljZT4gZmlsdGVyZWREZXZpY2VzOworICAgIGZvciAoY29uc3QgYXV0byYgZGV2
aWNlIDogZGV2aWNlcykgeworICAgICAgICBpZiAoIWRldmljZS5lbmFibGVkKCkgfHwgKGRldmlj
ZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYm
IGRldmljZS50eXBlKCkgIT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6TWlj
cm9waG9uZSkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICBpZiAoIXJldmVhbElk
c0FuZExhYmVscykgeworICAgICAgICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Q2FtZXJhICYmICsrY2FtZXJhQ291bnQgPiBkZWZh
dWx0TWF4aW11bUNhbWVyYUNvdW50KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAg
ICAgICAgaWYgKGRldmljZS50eXBlKCkgPT0gV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNl
VHlwZTo6TWljcm9waG9uZSAmJiArK21pY3JvcGhvbmVDb3VudCA+IGRlZmF1bHRNYXhpbXVtTWlj
cm9waG9uZUNvdW50KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKKyAg
ICAgICAgYXV0byBsYWJlbCA9IGVtcHR5U3RyaW5nKCk7CisgICAgICAgIGF1dG8gaWQgPSBlbXB0
eVN0cmluZygpOworICAgICAgICBhdXRvIGdyb3VwSWQgPSBlbXB0eVN0cmluZygpOworICAgICAg
ICBpZiAocmV2ZWFsSWRzQW5kTGFiZWxzKSB7CisgICAgICAgICAgICBsYWJlbCA9IGRldmljZS5s
YWJlbCgpOworICAgICAgICAgICAgaWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5n
bGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJ
REhhc2hTYWx0KTsKKyAgICAgICAgICAgIGdyb3VwSWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5nV2l0aFNhbHQoZGV2aWNlLmdyb3VwSWQoKSwgZGV2
aWNlSURIYXNoU2FsdCk7CisgICAgICAgIH0KKworICAgICAgICBmaWx0ZXJlZERldmljZXMuYXBw
ZW5kKENhcHR1cmVEZXZpY2UoaWQsIGRldmljZS50eXBlKCksIGxhYmVsLCBncm91cElkKSk7Cisg
ICAgfQorCisgICAgbV9oYXNGaWx0ZXJlZERldmljZUxpc3QgPSAhcmV2ZWFsSWRzQW5kTGFiZWxz
OworICAgIHJldHVybiBmaWx0ZXJlZERldmljZXM7Cit9CisjZW5kaWYKKwordm9pZCBVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eTo6ZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9y
RnJhbWUodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxTZWN1cml0
eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4pCit7CisjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAg
ICBhdXRvIGNvbXBsZXRpb25IYW5kbGVyID0gW3RoaXMsIHVzZXJNZWRpYUlELCBmcmFtZUlELCB1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luLmNvcHlSZWYo
KSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmlnaW4uY29weVJl
ZigpXShPcHRpb25hbDxib29sPiBvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKSBtdXRhYmxlIHsK
KyAgICAgICAgaWYgKCFvcmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzKQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIGlmICghbV9wYWdlLmlzVmFsaWQoKSkKICAgICAgICAgICAgIHJldHVy
bjsKIAotICAgICAgICBtX3BhZ2Uud2Vic2l0ZURhdGFTdG9yZSgpLmRldmljZUlkSGFzaFNhbHRT
dG9yYWdlKCkuZGV2aWNlSWRIYXNoU2FsdEZvck9yaWdpbihyZXF1ZXN0T3JpZ2luLmdldCgpLCB0
b3BPcmlnaW4uZ2V0KCksIFt0aGlzLCB3ZWFrVGhpcyA9IFdURk1vdmUod2Vha1RoaXMpLCByZXF1
ZXN0SUQsIHVzZXJNZWRpYUlELCAmb3JpZ2luSGFzUGVyc2lzdGVudEFjY2Vzc10gKFN0cmluZyYm
IGRldmljZUlESGFzaFNhbHQpIHsKLSAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCi0gICAgICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgYXV0byBwZW5kaW5nUmVxdWVzdCA9IG1fcGVu
ZGluZ0RldmljZVJlcXVlc3RzLnRha2UocmVxdWVzdElEKTsKLSAgICAgICAgICAgIGlmICghcGVu
ZGluZ1JlcXVlc3QpCisgICAgICAgIGF1dG8gcmVxdWVzdElEID0gZ2VuZXJhdGVSZXF1ZXN0SUQo
KTsKKyAgICAgICAgbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMuYWRkKHJlcXVlc3RJRCk7CisgICAg
ICAgIAorICAgICAgICBhdXRvJiByZXF1ZXN0T3JpZ2luID0gdXNlck1lZGlhRG9jdW1lbnRPcmln
aW4uZ2V0KCk7CisgICAgICAgIGF1dG8mIHRvcE9yaWdpbiA9IHRvcExldmVsRG9jdW1lbnRPcmln
aW4uZ2V0KCk7CisgICAgICAgIG1fcGFnZS53ZWJzaXRlRGF0YVN0b3JlKCkuZGV2aWNlSWRIYXNo
U2FsdFN0b3JhZ2UoKS5kZXZpY2VJZEhhc2hTYWx0Rm9yT3JpZ2luKHJlcXVlc3RPcmlnaW4sIHRv
cE9yaWdpbiwgW3RoaXMsIHdlYWtUaGlzID0gbWFrZVdlYWtQdHIoKnRoaXMpLCByZXF1ZXN0SUQs
IGZyYW1lSUQsIHVzZXJNZWRpYUlELCB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiA9IFdURk1vdmUo
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW4pLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luID0gV1RGTW92
ZSh0b3BMZXZlbERvY3VtZW50T3JpZ2luKSwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyA9ICpv
cmlnaW5IYXNQZXJzaXN0ZW50QWNjZXNzXSAoU3RyaW5nJiYgZGV2aWNlSURIYXNoU2FsdCkgewor
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCAhbV9wZW5kaW5nRGV2aWNlUmVxdWVzdHMucmVt
b3ZlKHJlcXVlc3RJRCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogCiAgICAgICAgICAgICBp
ZiAoIW1fcGFnZS5pc1ZhbGlkKCkpCkBAIC00OTAsNDMgKzU1NSwxMyBAQCB2b2lkIFVzZXJNZWRp
YVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5OjplbnVtZXJhdGVNZWRpYURldmljZXNGb3JG
cmFtZSh1aW50NgogCiAgICAgICAgICAgICBzeW5jV2l0aFdlYkNvcmVQcmVmcygpOwogCi0gICAg
ICAgICAgICBhdXRvIGRldmljZXMgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0
b24oKS5nZXRNZWRpYVN0cmVhbURldmljZXMoKTsKLSAgICAgICAgICAgIGF1dG8mIHJlcXVlc3Qg
PSAqcGVuZGluZ1JlcXVlc3Q7Ci0gICAgICAgICAgICBib29sIHJldmVhbElkc0FuZExhYmVscyA9
IG9yaWdpbkhhc1BlcnNpc3RlbnRBY2Nlc3MgfHwgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2Vz
cyhyZXF1ZXN0LT5mcmFtZUlEKCksIHJlcXVlc3QtPnVzZXJNZWRpYURvY3VtZW50U2VjdXJpdHlP
cmlnaW4oKSwgcmVxdWVzdC0+dG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkpOwotICAg
ICAgICAgICAgaW50IGNhbWVyYUNvdW50ID0gMDsKLSAgICAgICAgICAgIGludCBtaWNyb3Bob25l
Q291bnQgPSAwOwotCi0gICAgICAgICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gZmlsdGVyZWRE
ZXZpY2VzOwotICAgICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBkZXZpY2VzKSB7
Ci0gICAgICAgICAgICAgICAgaWYgKCFkZXZpY2UuZW5hYmxlZCgpIHx8IChkZXZpY2UudHlwZSgp
ICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiBkZXZpY2Uu
dHlwZSgpICE9IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6Ok1pY3JvcGhvbmUp
KQotICAgICAgICAgICAgICAgICAgICBjb250aW51ZTsKLQotICAgICAgICAgICAgICAgIGlmICgh
cmV2ZWFsSWRzQW5kTGFiZWxzKSB7Ci0gICAgICAgICAgICAgICAgICAgIGlmIChkZXZpY2UudHlw
ZSgpID09IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkNhbWVyYSAmJiArK2Nh
bWVyYUNvdW50ID4gZGVmYXVsdE1heGltdW1DYW1lcmFDb3VudCkKLSAgICAgICAgICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOwotICAgICAgICAgICAgICAgICAgICBpZiAoZGV2aWNlLnR5cGUoKSA9
PSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpNaWNyb3Bob25lICYmICsrbWlj
cm9waG9uZUNvdW50ID4gZGVmYXVsdE1heGltdW1NaWNyb3Bob25lQ291bnQpCi0gICAgICAgICAg
ICAgICAgICAgICAgICBjb250aW51ZTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
ICAgICBhdXRvIGxhYmVsID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGlk
ID0gZW1wdHlTdHJpbmcoKTsKLSAgICAgICAgICAgICAgICBhdXRvIGdyb3VwSWQgPSBlbXB0eVN0
cmluZygpOwotICAgICAgICAgICAgICAgIGlmIChyZXZlYWxJZHNBbmRMYWJlbHMpIHsKLSAgICAg
ICAgICAgICAgICAgICAgbGFiZWwgPSBkZXZpY2UubGFiZWwoKTsKLSAgICAgICAgICAgICAgICAg
ICAgaWQgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5oYXNoU3RyaW5n
V2l0aFNhbHQoZGV2aWNlLnBlcnNpc3RlbnRJZCgpLCBkZXZpY2VJREhhc2hTYWx0KTsKLSAgICAg
ICAgICAgICAgICAgICAgZ3JvdXBJZCA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLmhhc2hTdHJpbmdXaXRoU2FsdChkZXZpY2UuZ3JvdXBJZCgpLCBkZXZpY2VJREhhc2hT
YWx0KTsKLSAgICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICBmaWx0ZXJlZERldmlj
ZXMuYXBwZW5kKENhcHR1cmVEZXZpY2UoaWQsIGRldmljZS50eXBlKCksIGxhYmVsLCBncm91cElk
KSk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIG1faGFzRmlsdGVyZWREZXZpY2VMaXN0
ID0gIXJldmVhbElkc0FuZExhYmVsczsKLQotICAgICAgICAgICAgbV9wYWdlLnByb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpEaWRDb21wbGV0ZU1lZGlhRGV2aWNlRW51bWVyYXRpb24o
dXNlck1lZGlhSUQsIFdURk1vdmUoZmlsdGVyZWREZXZpY2VzKSwgV1RGTW92ZShkZXZpY2VJREhh
c2hTYWx0KSwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyksIG1fcGFnZS5wYWdlSUQoKSk7Cisg
ICAgICAgICAgICBib29sIHJldmVhbElkc0FuZExhYmVscyA9IG9yaWdpbkhhc1BlcnNpc3RlbnRB
Y2Nlc3MgfHwgd2FzR3JhbnRlZFZpZGVvT3JBdWRpb0FjY2VzcyhmcmFtZUlELCB1c2VyTWVkaWFE
b2N1bWVudE9yaWdpbi5nZXQoKSwgdG9wTGV2ZWxEb2N1bWVudE9yaWdpbi5nZXQoKSk7CisKKyAg
ICAgICAgICAgIG1fcGFnZS5wcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6RGlkQ29t
cGxldGVNZWRpYURldmljZUVudW1lcmF0aW9uIHsgdXNlck1lZGlhSUQsIGNvbXB1dGVGaWx0ZXJl
ZERldmljZUxpc3QocmV2ZWFsSWRzQW5kTGFiZWxzLCBkZXZpY2VJREhhc2hTYWx0KSwgZGV2aWNl
SURIYXNoU2FsdCwgb3JpZ2luSGFzUGVyc2lzdGVudEFjY2VzcyB9LCBtX3BhZ2UucGFnZUlEKCkp
OwogICAgICAgICB9KTsKICAgICB9OwogCi0gICAgZ2V0VXNlck1lZGlhUGVybWlzc2lvbkluZm8o
cmVxdWVzdElELCBmcmFtZUlELCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgV1RGTW92ZSh1
c2VyTWVkaWFEb2N1bWVudE9yaWdpbiksIFdURk1vdmUodG9wTGV2ZWxEb2N1bWVudE9yaWdpbikp
OworICAgIGdldFVzZXJNZWRpYVBlcm1pc3Npb25JbmZvKGZyYW1lSUQsIFdURk1vdmUodXNlck1l
ZGlhRG9jdW1lbnRPcmlnaW4pLCBXVEZNb3ZlKHRvcExldmVsRG9jdW1lbnRPcmlnaW4pLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTSh1c2VyTWVk
aWFJRCk7CiAgICAgVU5VU0VEX1BBUkFNKGZyYW1lSUQpOwpAQCAtNTk2LDMgKzYzMSw0IEBAIHZv
aWQgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHk6OndhdGNoZG9nVGltZXJG
aXJlZCgpCiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdAorCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5h
Z2VyUHJveHkuaAppbmRleCBlYWNjZTZmOTJiNjVmZmNjMjliZTRkMTM3ODhkYTgxZDkxNTkwNTU4
Li5hMTE1YzQzODY3NTM3ZWM4ZDUzZGY1ZGZiZTUyZTJlY2Q2OTE1ZTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmgKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJVc2VyTWVk
aWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVByb2R1
Y2VyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5oPgorI2luY2x1ZGUgPHd0
Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CiAjaW5jbHVk
ZSA8d3RmL1J1bkxvb3AuaD4KICNpbmNsdWRlIDx3dGYvU2Vjb25kcy5oPgpAQCAtNDgsNyArNDks
NyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGludmFsaWRhdGVQZW5kaW5nUmVxdWVzdHMoKTsKIAot
ICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRfdCB1c2Vy
TWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
ICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luPiYm
IHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVz
dCYpOworICAgIHZvaWQgcmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmICB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIFdlYkNvcmU6Ok1lZGlhU3RyZWFtUmVxdWVz
dCYmKTsKIAogICAgIHZvaWQgcmVzZXRBY2Nlc3ModWludDY0X3QgbWFpbkZyYW1lSUQpOwogICAg
IHZvaWQgdmlld0lzQmVjb21pbmdWaXNpYmxlKCk7CkBAIC03MSwyNyArNzIsMzMgQEAgcHJpdmF0
ZToKICAgICBSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4gY3JlYXRlUGVybWlz
c2lvblJlcXVlc3QodWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2NF90IG1haW5GcmFtZUlELCB1
aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBhdWRpb0Rldmlj
ZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZpZGVvRGV2aWNlcywgV2ViQ29y
ZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogICAgIHZvaWQgZGVueVJlcXVlc3QodWludDY0X3Qg
dXNlck1lZGlhSUQsIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk6OlVzZXJNZWRpYUFj
Y2Vzc0RlbmlhbFJlYXNvbiwgY29uc3QgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkKLSAgICBib29sIGdyYW50QWNjZXNzKHVpbnQ2NF90IHVzZXJN
ZWRpYUlELCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIGF1ZGlvRGV2aWNlLCBjb25zdCBX
ZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVvRGV2aWNlLCBjb25zdCBTdHJpbmcmIGRldmljZUlk
ZW50aWZpZXJIYXNoU2FsdCk7CisgICAgYm9vbCBncmFudEFjY2Vzcyhjb25zdCBVc2VyTWVkaWFQ
ZXJtaXNzaW9uUmVxdWVzdFByb3h5Jik7CiAKICAgICBjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5KiBzZWFyY2hGb3JHcmFudGVkUmVxdWVzdCh1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNv
bnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29s
IG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRlbykgY29uc3Q7CiAgICAgYm9vbCB3YXNSZXF1ZXN0
RGVuaWVkKHVpbnQ2NF90IG1haW5GcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
JiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBib29sIG5lZWRzQXVkaW8sIGJvb2wgbmVlZHNWaWRl
bywgYm9vbCBuZWVkc1NjcmVlbkNhcHR1cmUpOwogCi0gICAgdm9pZCBnZXRVc2VyTWVkaWFQZXJt
aXNzaW9uSW5mbyh1aW50NjRfdCByZXF1ZXN0SUQsIHVpbnQ2NF90IGZyYW1lSUQsIFVzZXJNZWRp
YVBlcm1pc3Npb25DaGVja1Byb3h5OjpDb21wbGV0aW9uSGFuZGxlciYmLCBSZWY8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luKTsKKyAgICB2b2lkIGdldFVz
ZXJNZWRpYVBlcm1pc3Npb25JbmZvKHVpbnQ2NF90IGZyYW1lSUQsIFJlZjxXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbj4mJiB1c2VyTWVkaWFEb2N1bWVudE9yaWdpbiwgUmVmPFdlYkNvcmU6OlNlY3Vy
aXR5T3JpZ2luPiYmIHRvcExldmVsRG9jdW1lbnRPcmlnaW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoT3B0aW9uYWw8Ym9vbD4pPiYmKTsKIAogICAgIGVudW0gY2xhc3MgUmVxdWVzdEFjdGlvbiB7
CiAgICAgICAgIERlbnksCiAgICAgICAgIEdyYW50LAogICAgICAgICBQcm9tcHQKICAgICB9Owot
ICAgIFJlcXVlc3RBY3Rpb24gZ2V0UmVxdWVzdEFjdGlvbih1aW50NjRfdCBmcmFtZUlELCBXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBjb25zdCBXZWJDb3JlOjpNZWRp
YVN0cmVhbVJlcXVlc3QmLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mIGF1ZGlvRGV2
aWNlcywgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+JiB2aWRlb0RldmljZXMpOworICAg
IFJlcXVlc3RBY3Rpb24gZ2V0UmVxdWVzdEFjdGlvbihjb25zdCBVc2VyTWVkaWFQZXJtaXNzaW9u
UmVxdWVzdFByb3h5Jik7CiAKICAgICBib29sIHdhc0dyYW50ZWRWaWRlb09yQXVkaW9BY2Nlc3Mo
dWludDY0X3QsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVu
dE9yaWdpbiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mIHRvcExldmVsRG9jdW1lbnRP
cmlnaW4pOworCisgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IGNvbXB1dGVGaWx0
ZXJlZERldmljZUxpc3QoYm9vbCByZXZlYWxJZHNBbmRMYWJlbHMsIGNvbnN0IFN0cmluZyYgZGV2
aWNlSURIYXNoU2FsdCk7CisKKyAgICB2b2lkIHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uUmVx
dWVzdChSZWY8VXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eT4mJiwgYm9vbCBoYXNQZXJz
aXN0ZW50QWNjZXNzKTsKKyAgICB2b2lkIHByb2Nlc3NVc2VyTWVkaWFQZXJtaXNzaW9uSW52YWxp
ZFJlcXVlc3QoY29uc3QgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eSYsIGNvbnN0IFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnQpOworICAgIHZvaWQgcHJvY2Vzc1VzZXJNZWRpYVBlcm1p
c3Npb25WYWxpZFJlcXVlc3QoUmVmPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk+JiYs
IFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIGF1ZGlvRGV2aWNlcywgVmVjdG9yPFdl
YkNvcmU6OkNhcHR1cmVEZXZpY2U+JiYgdmlkZW9EZXZpY2VzLCBTdHJpbmcmJiBkZXZpY2VJZGVu
dGlmaWVySGFzaFNhbHQpOwogI2VuZGlmCiAKICAgICB2b2lkIHdhdGNoZG9nVGltZXJGaXJlZCgp
OwogCiAgICAgSGFzaE1hcDx1aW50NjRfdCwgUmVmUHRyPFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1
ZXN0UHJveHk+PiBtX3BlbmRpbmdVc2VyTWVkaWFSZXF1ZXN0czsKLSAgICBIYXNoTWFwPHVpbnQ2
NF90LCBSZWY8VXNlck1lZGlhUGVybWlzc2lvbkNoZWNrUHJveHk+PiBtX3BlbmRpbmdEZXZpY2VS
ZXF1ZXN0czsKKyAgICBIYXNoU2V0PHVpbnQ2NF90PiBtX3BlbmRpbmdEZXZpY2VSZXF1ZXN0czsK
IAogICAgIFdlYlBhZ2VQcm94eSYgbV9wYWdlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Vc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5LmgKaW5kZXggYWM4
MDVlNzg4YmUyMzE3ZTBhN2FhZWI3MTg5MDljZjQ1YmNhODkwOC4uMDY3ZjgwMjAzZjFhNWZkZDMy
MzhjOGFlMjlkN2RjYWNhMWFlYTEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1VzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHkuaApAQCAtNDgsMjEgKzQ4
LDQyIEBAIHB1YmxpYzoKICAgICB2b2lkIGRlbnkoVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29u
ID0gVXNlck1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpVc2VyTWVkaWFEaXNhYmxlZCk7CiAKICAg
ICB2b2lkIGludmFsaWRhdGUoKTsKKyAgICBib29sIGlzUGVuZGluZygpIGNvbnN0IHsgcmV0dXJu
IG1fbWFuYWdlcjsgfQogCiAgICAgYm9vbCByZXF1aXJlc0F1ZGlvQ2FwdHVyZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZWxpZ2libGVBdWRpb0RldmljZXMuc2l6ZSgpOyB9CiAgICAgYm9vbCByZXF1aXJl
c1ZpZGVvQ2FwdHVyZSgpIGNvbnN0IHsgcmV0dXJuICFyZXF1aXJlc0Rpc3BsYXlDYXB0dXJlKCkg
JiYgbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5zaXplKCk7IH0KICAgICBib29sIHJlcXVpcmVzRGlz
cGxheUNhcHR1cmUoKSBjb25zdCB7IHJldHVybiBtX3JlcXVlc3QudHlwZSA9PSBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGU6OkRpc3BsYXlNZWRpYSAmJiBtX2VsaWdpYmxlVmlkZW9E
ZXZpY2VzLnNpemUoKTsgfQogCisgICAgdm9pZCBzZXRFbGlnaWJsZVZpZGVvRGV2aWNlVUlEcyhW
ZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBkZXZpY2VzKSB7IG1fZWxpZ2libGVWaWRl
b0RldmljZXMgPSBXVEZNb3ZlKGRldmljZXMpOyB9CisgICAgdm9pZCBzZXRFbGlnaWJsZUF1ZGlv
RGV2aWNlVUlEcyhWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURldmljZT4mJiBkZXZpY2VzKSB7IG1f
ZWxpZ2libGVBdWRpb0RldmljZXMgPSBXVEZNb3ZlKGRldmljZXMpOyB9CisKICAgICBWZWN0b3I8
U3RyaW5nPiB2aWRlb0RldmljZVVJRHMoKSBjb25zdDsKICAgICBWZWN0b3I8U3RyaW5nPiBhdWRp
b0RldmljZVVJRHMoKSBjb25zdDsKKyAgICBib29sIGhhc0F1ZGlvRGV2aWNlKCkgY29uc3QgeyBy
ZXR1cm4gIW1fZWxpZ2libGVBdWRpb0RldmljZXMuaXNFbXB0eSgpOyB9CisgICAgYm9vbCBoYXNW
aWRlb0RldmljZSgpIGNvbnN0IHsgcmV0dXJuICFtX2VsaWdpYmxlVmlkZW9EZXZpY2VzLmlzRW1w
dHkoKTsgfQorCisgICAgYm9vbCBoYXNQZXJzaXN0ZW50QWNjZXNzKCkgY29uc3QgeyByZXR1cm4g
bV9oYXNQZXJzaXN0ZW50QWNjZXNzOyB9CisgICAgdm9pZCBzZXRIYXNQZXJzaXN0ZW50QWNjZXNz
KCkgeyBtX2hhc1BlcnNpc3RlbnRBY2Nlc3MgPSB0cnVlOyB9CiAKKyAgICB1aW50NjRfdCB1c2Vy
TWVkaWFJRCgpIGNvbnN0IHsgcmV0dXJuIG1fdXNlck1lZGlhSUQ7IH0KICAgICB1aW50NjRfdCBt
YWluRnJhbWVJRCgpIGNvbnN0IHsgcmV0dXJuIG1fbWFpbkZyYW1lSUQ7IH0KICAgICB1aW50NjRf
dCBmcmFtZUlEKCkgY29uc3QgeyByZXR1cm4gbV9mcmFtZUlEOyB9CisKICAgICBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdG9wTGV2ZWxEb2N1bWVudFNlY3VyaXR5T3JpZ2luKCkgeyByZXR1cm4g
bV90b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4uZ2V0KCk7IH0KICAgICBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbiYgdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbigpIHsgcmV0dXJu
IG1fdXNlck1lZGlhRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQorICAgIGNvbnN0IFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB0b3BMZXZlbERvY3VtZW50U2VjdXJpdHlPcmlnaW4oKSBj
b25zdCB7IHJldHVybiBtX3RvcExldmVsRG9jdW1lbnRTZWN1cml0eU9yaWdpbi5nZXQoKTsgfQor
ICAgIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiB1c2VyTWVkaWFEb2N1bWVudFNlY3Vy
aXR5T3JpZ2luKCkgY29uc3QgeyByZXR1cm4gbV91c2VyTWVkaWFEb2N1bWVudFNlY3VyaXR5T3Jp
Z2luLmdldCgpOyB9CisKKyAgICBjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmIHVz
ZXJSZXF1ZXN0KCkgY29uc3QgeyByZXR1cm4gbV9yZXF1ZXN0OyB9CiAKICAgICBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3Q6OlR5cGUgcmVxdWVzdFR5cGUoKSBjb25zdCB7IHJldHVybiBtX3Jl
cXVlc3QudHlwZTsgfQogCisgICAgdm9pZCBzZXREZXZpY2VJZGVudGlmaWVySGFzaFNhbHQoU3Ry
aW5nJiYgc2FsdCkgeyBtX2RldmljZUlkZW50aWZpZXJIYXNoU2FsdCA9IFdURk1vdmUoc2FsdCk7
IH0KKyAgICBjb25zdCBTdHJpbmcmIGRldmljZUlkZW50aWZpZXJIYXNoU2FsdCgpIGNvbnN0IHsg
cmV0dXJuIG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OyB9CisKKyAgICBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlIGF1ZGlvRGV2aWNlKCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZUF1ZGlvRGV2
aWNlcy5pc0VtcHR5KCkgPyBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVB
dWRpb0RldmljZXNbMF07IH0KKyAgICBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlIHZpZGVvRGV2aWNl
KCkgY29uc3QgeyByZXR1cm4gbV9lbGlnaWJsZVZpZGVvRGV2aWNlcy5pc0VtcHR5KCkgPyBXZWJD
b3JlOjpDYXB0dXJlRGV2aWNlIHsgfSA6IG1fZWxpZ2libGVWaWRlb0RldmljZXNbMF07IH0KKwog
cHJpdmF0ZToKICAgICBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5KFVzZXJNZWRpYVBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5JiwgdWludDY0X3QgdXNlck1lZGlhSUQsIHVpbnQ2
NF90IG1haW5GcmFtZUlELCB1aW50NjRfdCBmcmFtZUlELCBSZWY8V2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4+JiYgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW4sIFJlZjxXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbj4mJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luLCBWZWN0b3I8V2ViQ29yZTo6Q2FwdHVyZURl
dmljZT4mJiBhdWRpb0RldmljZXMsIFZlY3RvcjxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlPiYmIHZp
ZGVvRGV2aWNlcywgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwogCkBAIC03NSw2ICs5
Niw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1fZWxp
Z2libGVWaWRlb0RldmljZXM7CiAgICAgVmVjdG9yPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U+IG1f
ZWxpZ2libGVBdWRpb0RldmljZXM7CiAgICAgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0IG1f
cmVxdWVzdDsKKyAgICBib29sIG1faGFzUGVyc2lzdGVudEFjY2VzcyB7IGZhbHNlIH07CisgICAg
U3RyaW5nIG1fZGV2aWNlSWRlbnRpZmllckhhc2hTYWx0OwogfTsKIAogfSAvLyBuYW1lc3BhY2Ug
V2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCA3YWI1
NmYxMTFlNjExNDlhNmYxNDI5ZjU0YTBkM2IyYWJhNzQ4YjM3Li5lMDI4Zjg0NjdiM2MzNjdlZTM0
MGIxZjcyYzcyYTBmOGVlZDE2MWU1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAKQEAgLTcwMTUsMTIgKzcwMTUsMTIgQEAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyUHJveHkmIFdlYlBhZ2VQcm94eTo6dXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3QK
IH0KICNlbmRpZgogCi12b2lkIFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Np
b25Gb3JGcmFtZSh1aW50NjRfdCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3Qg
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRh
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmln
aW5EYXRhLCBjb25zdCBXZWJDb3JlOjpNZWRpYVN0cmVhbVJlcXVlc3QmIHJlcXVlc3QpCit2b2lk
IFdlYlBhZ2VQcm94eTo6cmVxdWVzdFVzZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1aW50NjRf
dCB1c2VyTWVkaWFJRCwgdWludDY0X3QgZnJhbWVJRCwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW5EYXRhJiAgdXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhLCBXZWJDb3JlOjpN
ZWRpYVN0cmVhbVJlcXVlc3QmJiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0p
CiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIG1fcHJvY2Vzcy0+d2ViRnJhbWUoZnJhbWVJ
RCkpOwogCi0gICAgdXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyKCkucmVxdWVzdFVz
ZXJNZWRpYVBlcm1pc3Npb25Gb3JGcmFtZSh1c2VyTWVkaWFJRCwgZnJhbWVJRCwgdXNlck1lZGlh
RG9jdW1lbnRPcmlnaW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIHRvcExldmVsRG9jdW1lbnRPcmln
aW5EYXRhLnNlY3VyaXR5T3JpZ2luKCksIHJlcXVlc3QpOworICAgIHVzZXJNZWRpYVBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlcigpLnJlcXVlc3RVc2VyTWVkaWFQZXJtaXNzaW9uRm9yRnJhbWUodXNl
ck1lZGlhSUQsIGZyYW1lSUQsIHVzZXJNZWRpYURvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9y
aWdpbigpLCB0b3BMZXZlbERvY3VtZW50T3JpZ2luRGF0YS5zZWN1cml0eU9yaWdpbigpLCBXVEZN
b3ZlKHJlcXVlc3QpKTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKHVzZXJNZWRpYUlEKTsKICAg
ICBVTlVTRURfUEFSQU0oZnJhbWVJRCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5oCmluZGV4IDdiZTkxOTQzODkwYjc1ZDBlMjhjYTM3MDFmNWI0NjdlYzA4NzQ3YTIuLjdkMmIz
NWI2Mjg5ZWM3NTBmOWI4MmMyNzVkNTkxNmI2ZTBlYmZhNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNTk3LDcgKzE1OTcsNyBAQCBwcml2YXRlOgogI2lmIEVO
QUJMRShNRURJQV9TVFJFQU0pCiAgICAgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RNYW5hZ2Vy
UHJveHkmIHVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlcigpOwogI2VuZGlmCi0gICAg
dm9pZCByZXF1ZXN0VXNlck1lZGlhUGVybWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRp
YUlELCB1aW50NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEm
IHVzZXJNZWRpYURvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW5EYXRhJiB0b3BMZXZlbERvY3VtZW50T3JpZ2luSWRlbnRpZmllciwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0Jik7CisgICAgdm9pZCByZXF1ZXN0VXNlck1lZGlhUGVy
bWlzc2lvbkZvckZyYW1lKHVpbnQ2NF90IHVzZXJNZWRpYUlELCB1aW50NjRfdCBmcmFtZUlELCBj
b25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIHVzZXJNZWRpYURvY3VtZW50T3JpZ2lu
SWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhJiB0b3BMZXZlbERv
Y3VtZW50T3JpZ2luSWRlbnRpZmllciwgV2ViQ29yZTo6TWVkaWFTdHJlYW1SZXF1ZXN0JiYpOwog
ICAgIHZvaWQgZW51bWVyYXRlTWVkaWFEZXZpY2VzRm9yRnJhbWUodWludDY0X3QgdXNlck1lZGlh
SUQsIHVpbnQ2NF90IGZyYW1lSUQsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYg
dXNlck1lZGlhRG9jdW1lbnRPcmlnaW5EYXRhLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGEmIHRvcExldmVsRG9jdW1lbnRPcmlnaW5EYXRhKTsKICAgICB2b2lkIGJlZ2luTW9uaXRv
cmluZ0NhcHR1cmVEZXZpY2VzKCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9j
ZXNzUHJveHkuY3BwCmluZGV4IGIyZGEzYmI4NzY1ZTE2NmY5NzJlNTk2ZGUxZTM3ZWY2YmVkMzlm
NzIuLjAyMmZhNzJiNDYwMDA0MDU4NDZhMWIxZTQyZTFiYTg5Yjc3ZDUzYjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTcxLDYgKzU3MSwxMCBA
QCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVu
Y2goKQogICAgIC8vIHRvIGJlIGRlbGV0ZWQgYmVmb3JlIHdlIGNhbiBmaW5pc2ggb3VyIHdvcmsu
CiAgICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gcHJvdGVjdCgqdGhpcyk7CiAKKyNpZiBQTEFURk9S
TShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHktPmNsZWFyKCk7CisjZW5kaWYKKwogICAgIGlmIChhdXRvKiB3ZWJDb25uZWN0
aW9uID0gdGhpcy0+d2ViQ29ubmVjdGlvbigpKQogICAgICAgICB3ZWJDb25uZWN0aW9uLT5kaWRD
bG9zZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA0NWI5MDFlOGFjNGQ5MDhkY2FmYmRh
MDE2ZTUzYWRjZmY4YjdlYWVhLi4zNGJkODBkYWMyZWI1NjVhYjZhMTA1ZGFlZDNhOGI2ZjRmZTQ3
MTFkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4NSw2ICsxODUsNyBAQCBwcml2YXRlOgog
ICAgIC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigp
IGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAg
IHZvaWQgaGFzRW5kZWQoKSBmaW5hbCB7IG1fbWFuYWdlci5zb3VyY2VFbmRlZChtX2lkKTsgfQog
CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHMmIGNvbnN0cmFpbnRzLCBTdWNjZXNzSGFuZGxlciYmIHN1Y2Nlc3NIYW5kbGVyLCBGYWlsdXJl
SGFuZGxlciYmIGZhaWx1cmVIYW5kbGVyKSBmaW5hbCB7CiAgICAgICAgIG1fbWFuYWdlci5hcHBs
eUNvbnN0cmFpbnRzKG1faWQsIGNvbnN0cmFpbnRzKTsKQEAgLTM0NSw2ICszNDYsMTEgQEAgdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwg
Y29uc3QgV2ViQ29yZTo6TWVkaWEKICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyhpZCwgY29uc3RyYWludHMp
LCAwKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5kZWQodWlu
dDY0X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OkVuZChpZCksIDApOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIEFTU0VS
VChtX3NvdXJjZXMuY29udGFpbnMoaWQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggYWQxYmU3Y2Nl
ZGQ2YWU0MzA4ZmM0ZmVmMDI4YzM3N2I0YTllMGJkMC4uODM0MDRmYTZlZGNmNTFiNDY0ZTY0ZTA1
ZjkwYTFhZGM4M2VmMThlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHJp
dmF0ZToKICAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKICAgICB2b2lk
IGNhcHR1cmVGYWlsZWQodWludDY0X3QgaWQpOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCh1aW50
NjRfdCBpZCk7CisgICAgdm9pZCBzb3VyY2VFbmRlZCh1aW50NjRfdCBpZCk7CiAgICAgdm9pZCBz
b3VyY2VNdXRlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpOwogICAgIHZvaWQgc291
cmNlU2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmKTsKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlk
LCBjb25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJl
YW1EZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YTUwNTQ3
N2ZhZWJkOGM4MzcyN2IxNjk0MDU4MzI5NTIxNmZhODRkLi41NDVjMDE0ZmJjZDU4NDliNDUzYTA5
NDBkMzZhNjc4NGQ0Yzk4ZGFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTktMDItMDYgIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEZpbHRlciBvdXQgT3Zl
cmNvbnN0cmFpbmVkZXJyb3IuY29uc3RyYWludCB3aGVuIGdldFVzZXJNZWRpYSBpcyBub3QgZ3Jh
bnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0
MjQwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBm
YXN0L21lZGlhc3RyZWFtL292ZXJjb25zdHJhaW5lZGVycm9yLWNvbnN0cmFpbnQtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL292ZXJjb25zdHJhaW5lZGVy
cm9yLWNvbnN0cmFpbnQuaHRtbDogQWRkZWQuCisKIDIwMTktMDItMDYgIEFudHRpIEtvaXZpc3Rv
ICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX2RvY3VtZW50
LmlzUmVzb2x2aW5nVHJlZVN0eWxlKCkpIGluIGNvbS5hcHBsZS5XZWJLaXQuV2ViQ29udGVudCBh
dCBXZWJDb3JlOiBXZWJDb3JlOjpTdHlsZVJlc29sdmVyOjp+U3R5bGVSZXNvbHZlcgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9vdmVyY29uc3RyYWluZWRlcnJvci1j
b25zdHJhaW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vb3Zl
cmNvbnN0cmFpbmVkZXJyb3ItY29uc3RyYWludC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDQy
YjViYTc0NmNiYTY5NGZkMDg0MjNjNTYwMTA2N2U0ODA0MWZkZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vb3ZlcmNvbnN0cmFpbmVkZXJyb3ItY29uc3Ry
YWludC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK1BBU1MgQmVmb3JlIGdyYW50IAor
UEFTUyBBZnRlciBncmFudCAKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0
cmVhbS9vdmVyY29uc3RyYWluZWRlcnJvci1jb25zdHJhaW50Lmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL292ZXJjb25zdHJhaW5lZGVycm9yLWNvbnN0cmFpbnQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5jMTc2ZWZjZWJlNmFhYWExNTBkNWEyYTFjNzhlOTE5NDUwNGRkZmQwCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9vdmVyY29uc3RyYWluZWRl
cnJvci1jb25zdHJhaW50Lmh0bWwKQEAgLTAsMCArMSwzOSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgICAg
ICA8dGl0bGU+T3ZlckNvbnN0cmFpbmVkRXJyb3IuY29uc3RyYWludCB0ZXN0aW5nPC90aXRsZT4K
KyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3Ny
ZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKworICAgICAgICA8
c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgIHRlc3RSdW5uZXIuc2V0VXNlck1l
ZGlhUGVybWlzc2lvbih0cnVlKTsKK2lmICh3aW5kb3cuaW50ZXJuYWxzKQorICAgIHdpbmRvdy5p
bnRlcm5hbHMuc2V0TW9ja01lZGlhQ2FwdHVyZURldmljZXNFbmFibGVkKHRydWUpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2Vz
LmdldFVzZXJNZWRpYSh7YXVkaW86IHtkZXZpY2VJZDoge2V4YWN0OiJub25lIn19fSkudGhlbigK
KyAgICAgICAgKCkgPT4gYXNzZXJ0X25vdF9yZWFjaGVkKCJndW0gc2hvdWxkIGZhaWwiKSwKKyAg
ICAgICAgKGUpID0+IHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBPdmVy
Y29uc3RyYWluZWRFcnJvcik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuY29uc3RyYWlu
dCwgIiIsICJjb25zdHJhaW50IHNob3VsZCBiZSB0aGUgZW1wdHkgc3RyaW5nIik7CisgICAgICAg
IH0KKyAgICApOworfSwgIkJlZm9yZSBncmFudCIpOworCitwcm9taXNlX3Rlc3QoYXN5bmModGVz
dCkgPT4geworICAgIGF3YWl0IG5hdmlnYXRvci5tZWRpYURldmljZXMuZ2V0VXNlck1lZGlhKHth
dWRpbzogdHJ1ZX0pOworICAgIHJldHVybiBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldFVzZXJN
ZWRpYSh7YXVkaW86IHtkZXZpY2VJZDoge2V4YWN0OiJub25lIn19fSkudGhlbigKKyAgICAgICAg
KCkgPT4gYXNzZXJ0X25vdF9yZWFjaGVkKCJndW0gc2hvdWxkIGZhaWwiKSwKKyAgICAgICAgKGUp
ID0+IHsKKyAgICAgICAgICAgIGFzc2VydF90cnVlKGUgaW5zdGFuY2VvZiBPdmVyY29uc3RyYWlu
ZWRFcnJvcik7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKGUuY29uc3RyYWludCwgImRldmlj
ZUlkIiwgImNvbnN0cmFpbnQgc2hvdWxkIGJlIGRldmljZUlkIik7CisgICAgICAgIH0KKyAgICAp
OworfSwgIkFmdGVyIGdyYW50Iik7CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwv
aHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361412</attachid>
            <date>2019-02-07 10:37:44 -0800</date>
            <delta_ts>2019-02-07 11:20:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-194312-20190207103743.patch</filename>
            <type>text/plain</type>
            <size>12465</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzJhMTY3MmIxYmYwMjJi
NmJiY2ZmY2RjNWVmMTcyNDMxZTdkZTI0Yy4uOTBhYjRhNDk1MWE1MWY3Y2VlOTdjZmJjMGEzYjM1
ZTRlMzAzOTE5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAyLTA3ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNYWtlIHRvIGNsZWFyIHNv
dXJjZXMgZnJvbSBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IGFuZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciB3aGVuIG5vIGxvbmdlciBuZWVkZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE5NDMxMgorCisgICAgICAgIFJldmlld2VkIGJ5IEVy
aWMgQ2FybHNvbi4KKworICAgICAgICBBZGQgYSB3YXkgZm9yIHNvdXJjZXMgdG8ga25vdyB3aGVu
IHRoZXkgYXJlIGVuZGVkLCBpLmUuIHRoYXQgdGhleSB3aWxsIG5ldmVyIGJlIHN0YXJ0ZWQgYWdh
aW4uCisgICAgICAgIE5vIG9ic2VydmFibGUgY2hhbmdlIG9mIGJlaGF2aW9yLgorCisgICAgICAg
ICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpyZXF1ZXN0U3RvcCk6CisgICAgICAgICog
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oOgorCiAyMDE5LTAyLTA3
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bT3V0LW9m
LWZsb3ddIFVzZSB0aGUgY29udGFpbmluZyBibG9jaydzIHBhZGRpbmcgd2lkdGggd2hlbiBjb21w
dXRpbmcgbWluL21heCB3aWR0aC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZTI0ODZhZmI5M2U3Y2ZlZWU3Njc0OTBl
ZWFmYWE5MjFkODI3OGE5Yi4uZWU3MmE5N2EyNDdmODJhYzUwNDM1ZTEzZGFlMDkyMTY1ZWZhMDc5
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNyBAQAorMjAxOS0wMi0wNyAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWFrZSB0byBjbGVhciBzb3VyY2VzIGZyb20g
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSBhbmQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIg
d2hlbiBubyBsb25nZXIgbmVlZGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xOTQzMTIKKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24u
CisKKyAgICAgICAgU291cmNlcyBpbiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciBhbmQgUHJveHkg
YXJlIG5ldmVyIHJlbW92ZWQgb25jZSBhZGRlZCB0byB0aGVpciBIYXNoTWFwLgorICAgICAgICBV
c2UgdGhlICdlbmRlZCcgbWVjaGFuaXNtIHRvIGRvIHRoZSBjbGVhbi11cCBvbiBXZWJQcm9jZXNz
IHNpZGUuCisgICAgICAgIEFzIHBhcnQgb2YgdGhpcyBjbGVhbi11cCwgc2VuZCBJUEMgdG8gVUlQ
cm9jZXNzIHRvIGRvIGNsZWFuLXVwIG9uIHByb3h5IHNpZGUuCisgICAgICAgIE9uIFdlYlByb2Nl
c3MgY3Jhc2ggY2FzZSwgY2xlYW4tdXAgdGhlIHByb3h5IGFzIHdlbGwuCisKKyAgICAgICAgKiBV
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmVuZCk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNsZWFyKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNz
UHJveHk6OnByb2Nlc3NEaWRUZXJtaW5hdGVPckZhaWxlZFRvTGF1bmNoKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZUVuZGVkKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMTktMDItMDcg
IE1pZ3VlbCBHb21leiAgPG1hZ29tZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBJbXBs
ZW1lbnQgR1N0cmVhbWVyIGJhc2VkIGhvbGVwdW5jaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1UcmFja1ByaXZhdGUu
Y3BwCmluZGV4IDk1ZmE5NWVkNGY5NGI4NGNkMDlkNmYxOGJiZmRmNjFkNTNmNTg4ZjkuLjA5ZDBk
YjliNGMxMTljMTRmY2EzNGQzZmEzYWE1MmNjMTQ3NGQ0N2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtVHJhY2tQcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVRyYWNr
UHJpdmF0ZS5jcHAKQEAgLTEzNyw3ICsxMzcsNyBAQCB2b2lkIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjplbmRUcmFjaygpCiAgICAgbV9pc0VuZGVkID0gdHJ1ZTsKICAgICB1cGRhdGVSZWFkeVN0
YXRlKCk7CiAKLSAgICBtX3NvdXJjZS0+cmVxdWVzdFN0b3AodGhpcyk7CisgICAgbV9zb3VyY2Ut
PnJlcXVlc3RUb0VuZCgqdGhpcyk7CiAKICAgICBmb3JFYWNoT2JzZXJ2ZXIoW3RoaXNdKGF1dG8m
IG9ic2VydmVyKSB7CiAgICAgICAgIG9ic2VydmVyLnRyYWNrRW5kZWQoKnRoaXMpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcAppbmRleCA5NmNmNWQ5OWMzYmIyNWUyOWMyZjZiYjM5NmM4YjViODAyNjc5
MTk2Li43ZjM5ZGIyMTZkYThhYmVlYzc2MzQ0Mzc5ZTUxYjFhN2U5NDE4NTJkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlLmNwcApAQCAtMTcyLDcgKzE3Miw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6YXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltZSwgY29uc3QgUGxh
CiAKIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZTo6c3RhcnQoKQogewotICAgIGlmIChtX2lzUHJv
ZHVjaW5nRGF0YSkKKyAgICBpZiAobV9pc1Byb2R1Y2luZ0RhdGEgfHwgbV9pc0VuZGVkKQogICAg
ICAgICByZXR1cm47CiAKICAgICBtX2lzUHJvZHVjaW5nRGF0YSA9IHRydWU7CkBAIC0xOTUsNyAr
MTk1LDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlOjpzdG9wKCkKICAgICBzdG9wUHJvZHVj
aW5nRGF0YSgpOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVlc3RTdG9wKE9i
c2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2U6OnJlcXVl
c3RUb0VuZChPYnNlcnZlciYgY2FsbGluZ09ic2VydmVyKQogewogICAgIGlmICghbV9pc1Byb2R1
Y2luZ0RhdGEpCiAgICAgICAgIHJldHVybjsKQEAgLTIwOCwxMCArMjA4LDE0IEBAIHZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6cmVxdWVzdFN0b3AoT2JzZXJ2ZXIqIGNhbGxpbmdPYnNlcnZlcikK
ICAgICBpZiAoaGFzT2JzZXJ2ZXJQcmV2ZW50aW5nU3RvcHBpbmcpCiAgICAgICAgIHJldHVybjsK
IAorICAgIGF1dG8gcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpOworCiAgICAgc3RvcCgp
OworICAgIG1faXNFbmRlZCA9IHRydWU7CisgICAgaGFzRW5kZWQoKTsKIAogICAgIGZvckVhY2hP
YnNlcnZlcihbY2FsbGluZ09ic2VydmVyXShhdXRvJiBvYnNlcnZlcikgewotICAgICAgICBpZiAo
Jm9ic2VydmVyICE9IGNhbGxpbmdPYnNlcnZlcikKKyAgICAgICAgaWYgKCZvYnNlcnZlciAhPSAm
Y2FsbGluZ09ic2VydmVyKQogICAgICAgICAgICAgb2JzZXJ2ZXIuc291cmNlU3RvcHBlZCgpOwog
ICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDhlNDYyYzdlODg2OWVkMjY4YTkwNDk2
ZWI3ZjViZGUwNzhlOWI1ZjQuLjc5YTc5ZTEwNTg4NmRmNWM5OTA4OTQxMDVmMmUxMDg4N2NlYjJk
MDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc1Byb2R1Y2luZ0RhdGEoKSBjb25zdCB7IHJldHVybiBtX2lzUHJvZHVjaW5nRGF0YTsg
fQogICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIHN0b3AoKTsKLSAgICB2b2lkIHJlcXVlc3RT
dG9wKE9ic2VydmVyKiBjYWxsaW5nT2JzZXJ2ZXIgPSBudWxscHRyKTsKKyAgICB2b2lkIHJlcXVl
c3RUb0VuZChPYnNlcnZlciYgY2FsbGluZ09ic2VydmVyKTsKIAogICAgIGJvb2wgbXV0ZWQoKSBj
b25zdCB7IHJldHVybiBtX211dGVkOyB9CiAgICAgdm9pZCBzZXRNdXRlZChib29sKTsKQEAgLTIx
MSw2ICsyMTEsOCBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgdm9pZCBzdG9wUHJvZHVjaW5nRGF0
YSgpIHsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXR0aW5nc0RpZENoYW5nZShPcHRpb25TZXQ8UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOjpGbGFnPikgeyB9CiAKKyAgICB2aXJ0dWFsIHZvaWQg
aGFzRW5kZWQoKSB7IH0KKwogICAgIHZvaWQgZm9yRWFjaE9ic2VydmVyKGNvbnN0IFdURjo6RnVu
Y3Rpb248dm9pZChPYnNlcnZlciYpPiYpIGNvbnN0OwogCiAgICAgYm9vbCBtX211dGVkIHsgZmFs
c2UgfTsKQEAgLTIzOCw2ICsyNDAsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9pbnRlcnJ1cHRl
ZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2NhcHR1cmVEaWRGYWlsZWQgeyBmYWxzZSB9OwogICAg
IGJvb2wgbV9pc1JlbW90ZSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lzRW5kZWQgeyBmYWxzZSB9
OwogfTsKIAogc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5jcHAKaW5kZXggMDU2ZDVjMzQyZGQwNWI1MjljNmYyNmExMjliNzIwN2ZlNDEzNDNmNy4u
YzQ1NDBlNzBiMTM3NzBiYmQ3YTM1MzNlMGU2NDRmMmZmNzQ0OWI1NiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5jcHAKQEAgLTE2MSw3ICsxNjEsOCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aQogICAgICAgICBhdXRvIHNvdXJjZSA9IHNvdXJjZU9yRXJyb3Iuc291cmNlKCk7CiAgICAgICAg
IHNvdXJjZS0+c2V0SXNSZW1vdGUodHJ1ZSk7CiAgICAgICAgIHNldHRpbmdzID0gc291cmNlLT5z
ZXR0aW5ncygpOwotICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNv
dXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1vdmUoc291cmNlKSkpOworICAgICAgICBBU1NFUlQo
IW1fcHJveGllcy5jb250YWlucyhpZCkpOworICAgICAgICBtX3Byb3hpZXMuYWRkKGlkLCBzdGQ6
Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIFdURk1vdmUoc291cmNlKSkpOwog
ICAgIH0gZWxzZQogICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9y
RXJyb3IuZXJyb3JNZXNzYWdlKTsKIH0KQEAgLTE4MCw2ICsxODEsMTEgQEAgdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAg
ICAgICAgaXRlci0+dmFsdWUtPnNvdXJjZSgpLnN0b3AoKTsKIH0KIAordm9pZCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5OjplbmQodWludDY0X3QgaWQpCit7CisgICAgbV9wcm94aWVzLnJl
bW92ZShpZCk7Cit9CisKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y2FwYWJp
bGl0aWVzKHVpbnQ2NF90IGlkLCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJiBjYXBhYmlsaXRpZXMpCiB7CiAgICAgYXV0byBpdGVyID0gbV9wcm94aWVzLmZpbmQoaWQp
OwpAQCAtMjA4LDYgKzIxNCwxMSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OmFwcGx5Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFdlYkNvcmU6OgogICAgICAgICBt
X3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkFwcGx5Q29u
c3RyYWludHNGYWlsZWQoaWQsIHJlc3VsdC52YWx1ZSgpLmZpcnN0LCByZXN1bHQudmFsdWUoKS5z
ZWNvbmQpLCAwKTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjbGVh
cigpCit7CisgICAgbV9wcm94aWVzLmNsZWFyKCk7Cit9CisKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmgKaW5kZXggM2JmOTIxZmU2ODA2NDJmY2M3NmUxZmJkYWJmMzExZWE0ZWRh
NzNmZC4uYTUyZmVhMjVmNGQ1YzMzNDE3OTIxNGU0MjEzNzA1YjQ5MWZmZmY1NyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaApAQCAtNDAsMTAgKzQwLDExIEBAIGNsYXNzIFdlYlByb2Nlc3NQcm94
eTsKIAogY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSA6IHByaXZhdGUgSVBDOjpN
ZXNzYWdlUmVjZWl2ZXIgewogcHVibGljOgotICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkoV2ViUHJvY2Vzc1Byb3h5Jik7CisgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eShXZWJQcm9jZXNzUHJveHkmKTsKICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eSgpOwogCiAgICAgV2ViUHJvY2Vzc1Byb3h5JiBwcm9jZXNzKCkgY29uc3QgeyByZXR1cm4g
bV9wcm9jZXNzOyB9CisgICAgdm9pZCBjbGVhcigpOwogCiBwcml2YXRlOgogICAgIC8vIElQQzo6
TWVzc2FnZVJlY2VpdmVyCkBAIC01Myw2ICs1NCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQs
IGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmIGRldmljZUlELCBTdHJpbmcmJiwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZh
bGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYpOwog
ICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIHN0b3BQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90KTsKKyAgICB2b2lkIGVuZCh1aW50NjRfdCk7CiAgICAgdm9pZCBj
YXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmKTsKICAgICB2b2lkIHNldE11dGVkKHVpbnQ2NF90LCBib29sKTsKICAgICB2b2lkIGFw
cGx5Q29uc3RyYWludHModWludDY0X3QsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IDIwZGIx
NzYyZmIxNjgyYTkyNDQ3ZTQ3ODg1MjY1NDVmODk3ZjlhYjYuLjJhMjZkZTdkNzE4ZTE1MTBlMDFl
YThmNGE1ZThmN2UwYzAwZjBiOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5t
ZXNzYWdlcy5pbgpAQCAtMjcsNiArMjcsNyBAQCBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5IHsKIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyh1aW50NjRfdCBpZCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZSBkZXZpY2UsIFN0cmlu
ZyBoYXNoU2FsdCwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMgY29uc3RyYWludHMp
IC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyBzZXR0aW5ncykgTGVnYWN5U3luYwogICAgIFN0YXJ0
UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRf
dCBpZCkKKyAgICBFbmQodWludDY0X3QgaWQpCiAgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlk
KSAtPiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRp
ZXMpIExlZ2FjeVN5bmMKICAgICBTZXRNdXRlZCh1aW50NjRfdCBpZCwgYm9vbCBtdXRlZCkKICAg
ICBBcHBseUNvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyBjb25zdHJhaW50cykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCmluZGV4IGI3NjlkNTMyMDZlYmRlNzBjMTkyNzljZTI1MDM5NjcxNWRiNGUzNzcu
LmFjZTM0ZDViMzExNjZkYzIyMDYxZGY5ZWE1YzVjMGVhNzRhM2M4MzQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcApAQCAtNTcxLDYgKzU3MSwxMCBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0RpZFRlcm1pbmF0ZU9yRmFpbGVkVG9MYXVuY2go
KQogICAgIC8vIHRvIGJlIGRlbGV0ZWQgYmVmb3JlIHdlIGNhbiBmaW5pc2ggb3VyIHdvcmsuCiAg
ICAgUmVmPFdlYlByb2Nlc3NQcm94eT4gcHJvdGVjdCgqdGhpcyk7CiAKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKyAgICBtX3VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHktPmNsZWFyKCk7CisjZW5kaWYKKwogICAgIGlmIChhdXRvKiB3ZWJDb25uZWN0aW9u
ID0gdGhpcy0+d2ViQ29ubmVjdGlvbigpKQogICAgICAgICB3ZWJDb25uZWN0aW9uLT5kaWRDbG9z
ZSgpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCA0NWI5MDFlOGFjNGQ5MDhkY2FmYmRhMDE2
ZTUzYWRjZmY4YjdlYWVhLi4zNGJkODBkYWMyZWI1NjVhYjZhMTA1ZGFlZDNhOGI2ZjRmZTQ3MTFk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4NSw2ICsxODUsNyBAQCBwcml2YXRlOgogICAg
IC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZp
bmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZv
aWQgaGFzRW5kZWQoKSBmaW5hbCB7IG1fbWFuYWdlci5zb3VyY2VFbmRlZChtX2lkKTsgfQogCiAg
ICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMm
IGNvbnN0cmFpbnRzLCBTdWNjZXNzSGFuZGxlciYmIHN1Y2Nlc3NIYW5kbGVyLCBGYWlsdXJlSGFu
ZGxlciYmIGZhaWx1cmVIYW5kbGVyKSBmaW5hbCB7CiAgICAgICAgIG1fbWFuYWdlci5hcHBseUNv
bnN0cmFpbnRzKG1faWQsIGNvbnN0cmFpbnRzKTsKQEAgLTM0NSw2ICszNDYsMTEgQEAgdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29u
c3QgV2ViQ29yZTo6TWVkaWEKICAgICBtX3Byb2Nlc3Muc2VuZChNZXNzYWdlczo6VXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eTo6QXBwbHlDb25zdHJhaW50cyhpZCwgY29uc3RyYWludHMpLCAw
KTsKIH0KIAordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlRW5kZWQodWludDY0
X3QgaWQpCit7CisgICAgbV9wcm9jZXNzLnNlbmQoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OkVuZChpZCksIDApOworfQorCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKQogewogICAgIEFTU0VSVCht
X3NvdXJjZXMuY29udGFpbnMoaWQpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggYWQxYmU3Y2NlZGQ2
YWU0MzA4ZmM0ZmVmMDI4YzM3N2I0YTllMGJkMC4uODM0MDRmYTZlZGNmNTFiNDY0ZTY0ZTA1Zjkw
YTFhZGM4M2VmMThlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTg1LDYgKzg1LDcgQEAgcHJpdmF0
ZToKICAgICAvLyBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIKICAgICB2b2lkIGNh
cHR1cmVGYWlsZWQodWludDY0X3QgaWQpOwogICAgIHZvaWQgc291cmNlU3RvcHBlZCh1aW50NjRf
dCBpZCk7CisgICAgdm9pZCBzb3VyY2VFbmRlZCh1aW50NjRfdCBpZCk7CiAgICAgdm9pZCBzb3Vy
Y2VNdXRlZENoYW5nZWQodWludDY0X3QgaWQsIGJvb2wgbXV0ZWQpOwogICAgIHZvaWQgc291cmNl
U2V0dGluZ3NDaGFuZ2VkKHVpbnQ2NF90IGlkLCBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmKTsKICAgICB2b2lkIHN0b3JhZ2VDaGFuZ2VkKHVpbnQ2NF90IGlkLCBj
b25zdCBTaGFyZWRNZW1vcnk6OkhhbmRsZSYsIGNvbnN0IFdlYkNvcmU6OkNBQXVkaW9TdHJlYW1E
ZXNjcmlwdGlvbiYsIHVpbnQ2NF90IG51bWJlck9mRnJhbWVzKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>