<?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>209789</bug_id>
          
          <creation_ts>2020-03-30 16:49:31 -0700</creation_ts>
          <short_desc>[iPad] Use AVAudioSession to detect AirPlay route changes</short_desc>
          <delta_ts>2020-03-31 12:40:12 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>Other</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Eric Carlson">eric.carlson</reporter>
          <assigned_to name="Eric Carlson">eric.carlson</assigned_to>
          <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1635850</commentid>
    <comment_count>0</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-30 16:49:31 -0700</bug_when>
    <thetext>Use AVAudioSession to detect AirPlay route changes</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635851</commentid>
    <comment_count>1</comment_count>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-30 16:49:45 -0700</bug_when>
    <thetext>&lt;rdar://problem/58065279&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1635864</commentid>
    <comment_count>2</comment_count>
      <attachid>394989</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-30 17:08:58 -0700</bug_when>
    <thetext>Created attachment 394989
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636045</commentid>
    <comment_count>3</comment_count>
      <attachid>395046</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-31 09:11:00 -0700</bug_when>
    <thetext>Created attachment 395046
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636072</commentid>
    <comment_count>4</comment_count>
      <attachid>395055</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-31 09:55:39 -0700</bug_when>
    <thetext>Created attachment 395055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636111</commentid>
    <comment_count>5</comment_count>
      <attachid>395055</attachid>
    <who name="Jer Noble">jer.noble</who>
    <bug_when>2020-03-31 10:35:48 -0700</bug_when>
    <thetext>Comment on attachment 395055
Patch

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

r=me with nits.

&gt; Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.mm:106
&gt; +void activeAudioRouteDidChange(bool);
&gt; +void activeVideoRouteDidChange();

Weird spacing here.

&gt; Source/WebCore/platform/graphics/MediaPlaybackTarget.h:47
&gt; +    virtual bool supportsAirPlayVideo() const = 0;

It&apos;s kind of weird to have the term &quot;AirPlay&quot; here in a cross-port header.  Could we change this to &quot;supportsRemoteVideoPlayback&quot; or something?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636134</commentid>
    <comment_count>6</comment_count>
      <attachid>395055</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-31 11:06:59 -0700</bug_when>
    <thetext>Comment on attachment 395055
Patch

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

Thanks for the review!

&gt;&gt; Source/WebCore/platform/audio/ios/MediaSessionHelperIOS.mm:106
&gt;&gt; +void activeVideoRouteDidChange();
&gt; 
&gt; Weird spacing here.

Fixed.

&gt;&gt; Source/WebCore/platform/graphics/MediaPlaybackTarget.h:47
&gt;&gt; +    virtual bool supportsAirPlayVideo() const = 0;
&gt; 
&gt; It&apos;s kind of weird to have the term &quot;AirPlay&quot; here in a cross-port header.  Could we change this to &quot;supportsRemoteVideoPlayback&quot; or something?

Good point, fixed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636136</commentid>
    <comment_count>7</comment_count>
      <attachid>395070</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2020-03-31 11:08:24 -0700</bug_when>
    <thetext>Created attachment 395070
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636184</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-03-31 12:40:11 -0700</bug_when>
    <thetext>Committed r259303: &lt;https://trac.webkit.org/changeset/259303&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 395070.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>394989</attachid>
            <date>2020-03-30 17:08:58 -0700</date>
            <delta_ts>2020-03-31 09:10:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209789-20200330170858.patch</filename>
            <type>text/plain</type>
            <size>30187</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwOTdkNDViYjhkYzQ0
ZDAwNjIxMThiOGQyMDYxMjJlOTY2OGE3Yy4uZDMyOTlkY2RhNGVmMjg5OWQ0NzNiNmI4NTAwYTdj
ODY0M2EwZmY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBVc2Ug
QVZBdWRpb1Nlc3Npb24gdG8gZGV0ZWN0IEFpclBsYXkgcm91dGUgY2hhbmdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Nzg5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81ODA2NTI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM6IGNoYW5nZXMgb25seSBhZmZlY3QgcGxheWJh
Y2sgb24gZGV2aWNlIHRvIGFuIGFjdHVhbCBBaXJQbGF5IGRldmljZSwgd2hpY2gKKyAgICAgICAg
aXMgbm90IHRlc3RhYmxlIG9uIG91ciBjdXJyZW50IHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSk6IERyaXZl
LWJ5IGZpeDogcGFzcyBsb2cgaWRlbnRpZmllcgorICAgICAgICBpbnRvIGxhbWJkYSBzbyB0aGUg
bWV0aG9kIG5hbWUgaXMgbG9nZ2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c2V0SXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk6IERpdHRvLiAKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQpOiBVcGRhdGUg
bG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3VsZFBs
YXlUb1BsYXliYWNrVGFyZ2V0KTogQ2FsbCBzZXRJc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0Cisg
ICAgICAgIHNvIHdlIGtpY2sgb2ZmIGEgbWVkaWEgcGxheWVyIGNvbXBhdGliaWxpdHkgY2hlY2su
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aDogUmVtb3ZlIHVudXNlZCBpbnN0YW5jZSB2YXJpYWJsZXMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbToKKyAgICAgICAgKE1lZGlhU2Vzc2lv
bkhlbHBlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZSk6IENoYW5nZSBwYXJhbWV0ZXIg
dG8gYm9vbCBhcyBpdCBpcyBhbHdheXMKKyAgICAgICAgcHJlc2VudC4KKyAgICAgICAgKE1lZGlh
U2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSk6IFJlbW92ZSBwYXJh
bWV0ZXJzLCB1c2UgdGhlIG5ldworICAgICAgICBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EgY3Jl
YXRlIG1ldGhvZCBhbmQgYXNrIGl0IGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgQWlyUGxheS4KKyAg
ICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6IExpc3Rl
biBmb3IgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbi4KKyAgICAgICAgKC1b
V2ViTWVkaWFTZXNzaW9uSGVscGVyIGFjdGl2ZU91dHB1dERldmljZURpZENoYW5nZTpdKTogVXBk
YXRlIGZvciBuZXcgbm90aWZpY2F0aW9uIHNvdXJjZS4KKyAgICAgICAgKC1bV2ViTWVkaWFTZXNz
aW9uSGVscGVyIGFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2U6XSk6IERlbGV0ZWQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKTogU2V0IHBsYXliYWNrIHRhcmdldCBvbiBzZXNzaW9uCisgICAgICAgIHRoYXQgaXMgYWJv
dXQgdG8gYmVnaW4gcGxheWJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyaU9TOjphY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKTogU2F2ZSB0aGUgdGFyZ2V0IGFuZCBz
dGF0ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFj
a1RhcmdldENvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKTogQ3JlYXRlIGEgdGFyZ2V0IGZyb20gdGhlIGFwcGxp
Y2F0aW9uJ3MgY3VycmVudGx5CisgICAgICAgIGFjdGl2ZSBBVk91dHB1dENvbnRleHQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OnN1cHBvcnRzQWlyUGxheVZp
ZGVvIGNvbnN0KTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpoYXNBY3RpdmVSb3V0ZSBjb25zdCk6IFVzZSBuZXcgQVBJIGlmIGF2YWlsYWJsZSBpbnN0
ZWFkCisgICAgICAgIG9mIGp1c3QgY2hlY2tpbmcgZm9yIHRoZSBBVk91dHB1dENvbnRleHQgbmFt
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0V2lyZWxlc3NQbGF5YmFja1Rh
cmdldCk6IExvZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQpOiAKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg6CisKIDIwMjAtMDMtMjMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIGpl
dHNhbXMgd2l0aCByZXBlYXRlZCBkcmF3SW1hZ2UvZ2V0SW1hZ2VEYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBiNjFhOGJmMGZlZjc2OWZkNDE2MGJlNjgxMGY1OTlkZjc0OGFmYTkzLi5hMjE4Mzdl
ZGE2NzBmY2RhMzM2YTBkYTI3M2E4MmQyZjU1ODNlZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMC0wMy0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbaVBhZF0gVXNlIEFWQXVkaW9TZXNzaW9uIHRvIGRldGVjdCBB
aXJQbGF5IHJvdXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwOTc4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwNjUyNzk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW06CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEku
aDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29jb2EtcGxhdGZvcm0gSEFWRSBhbmQg
RU5BQkxFIG1hY3JvcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGIxYjU0ODQ0YjJmYTRlZjBlZDI2NTA3NDYyYTMxZDgy
NjhhNWIzZTYuLjQ1NmJkM2VjYmYzZTI4Y2FhM2VlMWE1Mjk2MzM0NWRkY2MxYzU0MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKQEAgLTI5MSw2ICsyOTEsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGUKICNkZWZpbmUg
QVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlv
biBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRl
Y3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0
Tm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVkF1ZGlvU2Vzc2lvbk1lZGlhU2Vy
dmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9T
ZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNo
YW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZBdWRpb1Nlc3Npb25Sb3V0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25S
b3V0ZUNoYW5nZU5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSBQQUw6
OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSgpCiAj
ZW5kaWYgLy8gIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0KaW5kZXggYWIwYmE4MGE5YWUwYzFlYmQ0OGNlOGIwOTZhYTM4ZDY4Yjg2MmUx
NS4uZmUxMDk2ZmY4MTkwMGNhOGQ4Y2MzMTBiMmQwNDAyM2NiOWRkZjViMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBA
IC0yMTMsNiArMjEzLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXMKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0
ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1l
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVu
dGlmaWVyS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91
dGVDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRp
b1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRIVFRQQ29va2llc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0UmVxdWlyZXNDdXN0b21VUkxMb2FkaW5nS2V5
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAppbmRleCA1ZjE1ZjA1MTNmNjU2ODhjMmZkMDkx
YTk0YjY2NDUwYmQ3M2JhNzI5Li43NTFhYjQ0ZTdlMDQ0N2JkZDExMWZhM2FjOWU4MzVmYzdkYmNl
Zjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaApAQCAtNzcsMTIgKzc3LDIxIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkZXZpY2VOYW1lOwogKyAo
aW5zdGFuY2V0eXBlKW91dHB1dENvbnRleHQ7CiArIChudWxsYWJsZSBBVk91dHB1dENvbnRleHQg
KilzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7CisrIChudWxsYWJsZSBBVk91
dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0Rm9ySUQ6KE5TU3RyaW5nICopSUQ7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBCT09MIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzOwogQHByb3Bl
cnR5IChyZWFkb25seSkgTlNBcnJheTxBVk91dHB1dERldmljZSAqPiAqb3V0cHV0RGV2aWNlczsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIEFWT3V0cHV0RGV2aWNl
ICpvdXRwdXREZXZpY2U7CiBAZW5kCiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBB
Vk91dHB1dERldmljZUZlYXR1cmVzKSB7CisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8g
PSAoMVVMIDw8IDApLAorICAgIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVNjcmVlbiA9ICgxVUwgPDwg
MSksCisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8gPSAoMVVMIDw8IDIpLAorfTsKKwog
QGludGVyZmFjZSBBVk91dHB1dERldmljZSA6IE5TT2JqZWN0CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBBVk91dHB1dERldmljZUZlYXR1cmVzIGRldmljZUZlYXR1cmVzOwogQGVuZAogCiAjaWYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zMzQsNiArMzQzLDE3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0VORAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCit0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbikgeworICAgIEFWQXVkaW9T
ZXNzaW9uUm91dGVDaGFuZ2VSZWFzb25Vbmtub3duID0gMCwKKyAgICBBVkF1ZGlvU2Vzc2lvblJv
dXRlQ2hhbmdlUmVhc29uTmV3RGV2aWNlQXZhaWxhYmxlID0gMSwKKyAgICBBVkF1ZGlvU2Vzc2lv
blJvdXRlQ2hhbmdlUmVhc29uT2xkRGV2aWNlVW5hdmFpbGFibGUgPSAyLAorICAgIEFWQXVkaW9T
ZXNzaW9uUm91dGVDaGFuZ2VSZWFzb25DYXRlZ29yeUNoYW5nZSA9IDMsCisgICAgQVZBdWRpb1Nl
c3Npb25Sb3V0ZUNoYW5nZVJlYXNvbk92ZXJyaWRlID0gNCwKKyAgICBBVkF1ZGlvU2Vzc2lvblJv
dXRlQ2hhbmdlUmVhc29uV2FrZUZyb21TbGVlcCA9IDYsCisgICAgQVZBdWRpb1Nlc3Npb25Sb3V0
ZUNoYW5nZVJlYXNvbk5vU3VpdGFibGVSb3V0ZUZvckNhdGVnb3J5ID0gNywKKyAgICBBVkF1ZGlv
U2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uUm91dGVDb25maWd1cmF0aW9uQ2hhbmdlID0gOAorfTsK
KwogQGludGVyZmFjZSBBVkF1ZGlvU2Vzc2lvbiAoQVZBdWRpb1Nlc3Npb25Qcml2YXRlKQogQHBy
b3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcqIHJvdXRpbmdDb250ZXh0VUlEOwogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYmRmNDU5YWU2MzZkMmYx
M2I5MDQyZWIzODQ4MWY3ODkwZThjMzdkNC4uNzMyNzVkMTE3OTJkNWNjODZlYjFmNjVkNTBkYmIy
MzJjZDgzN2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC0xMDUwLDExICsxMDUwLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUNoZWNr
UGxheWJhY2tUYXJnZXRDb21wYXRhYmlsaXR5KCkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2hl
Y2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSgpCiB7CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKLSAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklF
UjsKLSAgICBBTFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAidGFzayBzY2hlZHVsZWQiKTsK
ICAgICBpZiAobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0ICYmICFtX3BsYXllci0+Y2FuUGxh
eVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpKSB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShsb2dT
aXRlSWRlbnRpZmllcik7Ci0gICAgICAgIElORk9fTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiY2Fs
bGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChmYWxzZSkiKTsKKyAgICAgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUiwgImNhbGxpbmcgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJn
ZXQoZmFsc2UpIik7CiAgICAgICAgIG1fZmFpbGVkVG9QbGF5VG9XaXJlbGVzc1RhcmdldCA9IHRy
dWU7CiAgICAgICAgIG1fcGxheWVyLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChmYWxz
ZSk7CiAgICAgfQpAQCAtNTg1MCwxMiArNTg0NywxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCBp
cwogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldElzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQo
Ym9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQogewotICAgIG1fcGxheWJhY2tUYXJnZXRJ
c1dpcmVsZXNzUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGlzUGxheWluZ1RvV2lyZWxlc3NUYXJn
ZXRdIHsKKyAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBB
TFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KTsK
KyAgICBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBp
c1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0LCBsb2dTaXRlSWRlbnRpZmllcl0geworICAgICAgICBV
TlVTRURfUEFSQU0obG9nU2l0ZUlkZW50aWZpZXIpOworICAgICAgICBBTFdBWVNfTE9HKGxvZ1Np
dGVJZGVudGlmaWVyLCAibGFtYmRhKCksIHRhc2sgZmlyZWQiKTsKKwogICAgICAgICBpZiAoaXNQ
bGF5aW5nVG9XaXJlbGVzc1RhcmdldCA9PSBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpCiAg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
ID0gbV9wbGF5ZXIgJiYgbV9wbGF5ZXItPmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3Mo
KTsKICAgICAgICAgbV9yZW1vdGUtPmlzUGxheWluZ1RvUmVtb3RlVGFyZ2V0Q2hhbmdlZChtX2lz
UGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOwotICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk7CisgICAgICAgIEFMV0FZU19MT0cobG9n
U2l0ZUlkZW50aWZpZXIsIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk7CiAgICAgICAgIGNv
bmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmlzUGxheWlu
Z1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldENoYW5nZWQobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFy
Z2V0KTsKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsK
QEAgLTU5NDEsMTEgKzU5NDQsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnF1ZXVlUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlDaGFuZ2VkRXZlbnQoKQogCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+
JiYgZGV2aWNlKQogewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgYm9vbCBo
YXNBY3RpdmVSb3V0ZSA9IGRldmljZS0+aGFzQWN0aXZlUm91dGUoKTsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIGhhc0FjdGl2ZVJvdXRlKTsKKwogICAgIGlmIChtX3BsYXllcikKICAg
ICAgICAgbV9wbGF5ZXItPnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoV1RGTW92ZShkZXZpY2Up
KTsKLQogICAgIG1fcmVtb3RlLT5zaG91bGRQbGF5VG9SZW1vdGVUYXJnZXRDaGFuZ2VkKGhhc0Fj
dGl2ZVJvdXRlKTsKIH0KIApAQCAtNTk1Myw4ICs1OTU2LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc2hvdWxkUGxheSk7CiAKLSAgICBpZiAobV9w
bGF5ZXIpCisgICAgaWYgKG1fcGxheWVyKSB7CiAgICAgICAgIG1fcGxheWVyLT5zZXRTaG91bGRQ
bGF5VG9QbGF5YmFja1RhcmdldChzaG91bGRQbGF5KTsKKyAgICAgICAgc2V0SXNQbGF5aW5nVG9X
aXJlbGVzc1RhcmdldChtX3BsYXllci0+aXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygp
KTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tUYXJnZXRQaWNr
ZXJXYXNEaXNtaXNzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAppbmRleCA0N2Q4YWVhOWNjYjk2
MjdlZGI5NmUyZDg3ODJiMTI4YjEwN2E1MTE2Li4yNjJkOWJhYjlhZWJlODZjOTRhMjY5MzM4ODk0
ZThlZGY2ZmYzNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtMTgxLDExICsxODEsNiBA
QCBwcml2YXRlOgogICAgIFNlc3Npb25SZXN0cmljdGlvbnMgbV9yZXN0cmljdGlvbnNbc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OldlYkF1ZGlv
KSArIDFdOwogICAgIG11dGFibGUgVmVjdG9yPFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb24+
PiBtX3Nlc3Npb25zOwogCi0jaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVmUHRyPE1lZGlhUGxheWJhY2tUYXJnZXQ+IG1f
cGxheWJhY2tUYXJnZXQ7Ci0gICAgYm9vbCBtX2NhblBsYXlUb1RhcmdldCB7IGZhbHNlIH07Ci0j
ZW5kaWYKLQogICAgIGJvb2wgbV9pbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBi
b29sIG1faXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dp
bGxJZ25vcmVTeXN0ZW1JbnRlcnJ1cHRpb25zIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25IZWxwZXJJT1MubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uSGVscGVySU9TLm1t
CmluZGV4IDk2ZWRmNWU5NmNjNjE2YmQ4NzY4MWU0ODVhOWQ5MjgwMzhlYjVhMzYuLjE2Y2M2ZGUz
YzdkZDc5MjU2NTYyZjRlMTk5ODNkMjgwODNjZTBjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25IZWxwZXJJT1MubW0KKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbQpA
QCAtNTYsMTAgKzU2LDYgQEAgU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwg
QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZEF0dHIKIFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25u
ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVj
dGVkTm90aWZpY2F0aW9uUGFyYW1ldGVyLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX0NPTlNUQU5U
X01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX1NlcnZlckNvbm5lY3Rpb25E
aWVkTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlM
KENlbGVzdGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VO
b3RpZmljYXRpb24sIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2Vs
ZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfQWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZU5vdGlm
aWNhdGlvblBhcmFtZXRlcl9TaG91bGRQYXVzZSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9QaWNrZWRSb3V0ZUF0
dHJpYnV0ZSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3Rp
YWwsIEFWU3lzdGVtQ29udHJvbGxlcl9Sb3V0ZURlc2NyaXB0aW9uS2V5X1JvdXRlU3VwcG9ydHNB
aXJQbGF5VmlkZW8sIE5TU3RyaW5nICopCiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNv
cmU7CkBAIC0xMDQsOCArMTAwLDggQEAgcHVibGljOgogI2lmIEhBVkUoQ0VMRVNUSUFMKQogICAg
IHZvaWQgY2FyUGxheVNlcnZlckRpZWQoKTsKICAgICB2b2lkIHVwZGF0ZUNhclBsYXlJc0Nvbm5l
Y3RlZChPcHRpb25hbDxib29sPiYmKTsKLSAgICB2b2lkIGFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFu
Z2UoT3B0aW9uYWw8Ym9vbD4mJik7Ci0gICAgdm9pZCBhY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdl
KE9wdGlvbmFsPGJvb2w+JiYpOworICAgIHZvaWQgYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShi
b29sKTsKKyAgICB2b2lkIGFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoKTsKICNlbmRpZgogCiBw
cml2YXRlOgpAQCAtMjU3LDIyICsyNTMsMjEgQEAgdm9pZCBNZWRpYVNlc3Npb25IZWxwZXJpT1M6
OnNldElzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0KGJvb2wgaXNQbGF5aW5nKQogICAgIGZv
ciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQogICAgICAgICBjbGllbnQuaXNQbGF5aW5nVG9B
dXRvbW90aXZlSGVhZFVuaXREaWRDaGFuZ2UobV9pc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5p
dCA/IFBsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdDo6WWVzIDogUGxheWluZ1RvQXV0b21vdGl2
ZUhlYWRVbml0OjpObyk7CiB9CisjZW5kaWYgLy8gSEFWRShDRUxFU1RJQUwpCiAKLXZvaWQgTWVk
aWFTZXNzaW9uSGVscGVyaU9TOjphY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKE9wdGlvbmFsPGJv
b2w+JiYgc2hvdWxkUGF1c2UpCit2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlQXVk
aW9Sb3V0ZURpZENoYW5nZShib29sIHNob3VsZFBhdXNlKQogewogICAgIGZvciAoYXV0byYgY2xp
ZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQuYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5n
ZShzaG91bGRQYXVzZS52YWx1ZU9yKGZhbHNlKSA/IFNob3VsZFBhdXNlOjpZZXMgOiBTaG91bGRQ
YXVzZTo6Tm8pOworICAgICAgICBjbGllbnQuYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShzaG91
bGRQYXVzZSA/IFNob3VsZFBhdXNlOjpZZXMgOiBTaG91bGRQYXVzZTo6Tm8pOwogfQogCi12b2lk
IE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShPcHRpb25h
bDxib29sPiYmIHN1cHBvcnRzQWlyUGxheVZpZGVvKQordm9pZCBNZWRpYVNlc3Npb25IZWxwZXJp
T1M6OmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoKQogewotICAgIG1fYWN0aXZlVmlkZW9Sb3V0
ZVN1cHBvcnRzQWlyUGxheVZpZGVvID0gc3VwcG9ydHNBaXJQbGF5VmlkZW8udmFsdWVPcihmYWxz
ZSk7Ci0KLSAgICBhdXRvIHBsYXliYWNrVGFyZ2V0ID0gTWVkaWFQbGF5YmFja1RhcmdldENvY29h
OjpjcmVhdGUoW1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBzaGFyZWRBdWRpb1ByZXNl
bnRhdGlvbk91dHB1dENvbnRleHRdKTsKKyAgICBhdXRvIHBsYXliYWNrVGFyZ2V0ID0gTWVkaWFQ
bGF5YmFja1RhcmdldENvY29hOjpjcmVhdGUoKTsKKyAgICBtX2FjdGl2ZVZpZGVvUm91dGVTdXBw
b3J0c0FpclBsYXlWaWRlbyA9IHBsYXliYWNrVGFyZ2V0LT5zdXBwb3J0c0FpclBsYXlWaWRlbygp
OwogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQogICAgICAgICBjbGllbnQuYWN0
aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShtX2FjdGl2ZVZpZGVvUm91dGVTdXBwb3J0c0FpclBsYXlW
aWRlbyA/IFN1cHBvcnRzQWlyUGxheVZpZGVvOjpZZXMgOiBTdXBwb3J0c0FpclBsYXlWaWRlbzo6
Tm8sIHBsYXliYWNrVGFyZ2V0LmNvcHlSZWYoKSk7CiB9Ci0jZW5kaWYKIAogdm9pZCBNZWRpYVNl
c3Npb25IZWxwZXJpT1M6OmFwcGxpY2F0aW9uRGlkQmVjb21lQWN0aXZlKCkKIHsKQEAgLTMyOCwx
MyArMzIzLDEyIEBAIHZvaWQgTWVkaWFTZXNzaW9uSGVscGVyaU9TOjpleHRlcm5hbE91dHB1dERl
dmljZUF2YWlsYWJsZURpZENoYW5nZSgpCiAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNl
bGVjdG9yOkBzZWxlY3RvcihhcHBsaWNhdGlvbldpbGxSZXNpZ25BY3RpdmU6KSBuYW1lOldlYlVJ
QXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogICAg
IFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoYXBwbGljYXRpb25E
aWRFbnRlckJhY2tncm91bmQ6KSBuYW1lOlBBTDo6Z2V0X1VJS2l0X1VJQXBwbGljYXRpb25EaWRF
bnRlckJhY2tncm91bmROb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsXTsKICAgICBbY2VudGVyIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNr
Z3JvdW5kOikgbmFtZTpXZWJVSUFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0
aW9uIG9iamVjdDpuaWxdOworICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpA
c2VsZWN0b3IoYWN0aXZlT3V0cHV0RGV2aWNlRGlkQ2hhbmdlOikgbmFtZTpQQUw6OmdldF9BVkZv
dW5kYXRpb25fQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpu
aWxdOwogI2lmIEhBVkUoQ0VMRVNUSUFMKQogICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1Db250cm9s
bGVyX1NlcnZlckNvbm5lY3Rpb25EaWVkTm90aWZpY2F0aW9uKCkpCiAgICAgICAgIFtjZW50ZXIg
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoY2FyUGxheVNlcnZlckRpZWQ6KSBu
YW1lOmdldEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGllZE5vdGlmaWNhdGlv
bigpIG9iamVjdDpuaWxdOwogICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX0NhclBs
YXlJc0Nvbm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpKQogICAgICAgICBbY2VudGVyIGFk
ZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNhclBsYXlJc0Nvbm5lY3RlZERpZENo
YW5nZTopIG5hbWU6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZERpZENo
YW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwotICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1D
b250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmljYXRpb24oKSkKLSAgICAg
ICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhY3RpdmVBdWRp
b1JvdXRlRGlkQ2hhbmdlOikgbmFtZTpnZXRBVlN5c3RlbUNvbnRyb2xsZXJfQWN0aXZlQXVkaW9S
b3V0ZURpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwogI2VuZGlmCiAKICAgICAv
LyBOb3cgcGxheWluZyB3b24ndCB3b3JrIHVubGVzcyB3ZSB0dXJuIG9uIHRoZSBkZWxpdmVyeSBv
ZiByZW1vdGUgY29udHJvbCBldmVudHMuCkBAIC01NDIsMzMgKzUzNiwxNiBAQCB2b2lkIE1lZGlh
U2Vzc2lvbkhlbHBlcmlPUzo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2Uo
KQogICAgIH0pOwogfQogCi0tICh2b2lkKWFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2U6KE5TTm90
aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCistICh2b2lkKWFjdGl2ZU91dHB1dERldmljZURpZENo
YW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24KIHsKICAgICBpZiAoIV9jYWxsYmFj
aykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVU5VU0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7Ci0g
ICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkUGF1c2U7Ci0gICAgaWYgKG5vdGlmaWNhdGlvbiAmJiBj
YW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmlj
YXRpb25QYXJhbWV0ZXJfU2hvdWxkUGF1c2UoKSkgewotICAgICAgICBOU051bWJlciogbnNTaG91
bGRQYXVzZSA9IFtub3RpZmljYXRpb24udXNlckluZm8gdmFsdWVGb3JLZXk6Z2V0QVZTeXN0ZW1D
b250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmljYXRpb25QYXJhbWV0ZXJf
U2hvdWxkUGF1c2UoKV07Ci0gICAgICAgIGlmIChuc1Nob3VsZFBhdXNlKQotICAgICAgICAgICAg
c2hvdWxkUGF1c2UgPSBuc1Nob3VsZFBhdXNlLmJvb2xWYWx1ZTsKLSAgICB9Ci0KLSAgICBPcHRp
b25hbDxib29sPiBzdXBwb3J0c0FpclBsYXlWaWRlbzsKLSAgICBpZiAoY2FuTG9hZEFWU3lzdGVt
Q29udHJvbGxlcl9QaWNrZWRSb3V0ZUF0dHJpYnV0ZSgpICYmIGNhbkxvYWRBVlN5c3RlbUNvbnRy
b2xsZXJfUm91dGVEZXNjcmlwdGlvbktleV9Sb3V0ZVN1cHBvcnRzQWlyUGxheVZpZGVvKCkpIHsK
LSAgICAgICAgTlNEaWN0aW9uYXJ5KiBwaWNrZWRSb3V0ZSA9IFtbZ2V0QVZTeXN0ZW1Db250cm9s
bGVyQ2xhc3MoKSBzaGFyZWRBVlN5c3RlbUNvbnRyb2xsZXJdIGF0dHJpYnV0ZUZvcktleTpnZXRB
VlN5c3RlbUNvbnRyb2xsZXJfUGlja2VkUm91dGVBdHRyaWJ1dGUoKV07Ci0gICAgICAgIGlmIChb
cGlja2VkUm91dGUgaXNLaW5kT2ZDbGFzczpOU0RpY3Rpb25hcnkuY2xhc3NdKSB7Ci0gICAgICAg
ICAgICBOU051bWJlciogbnNTdXBwb3J0c0FpclBsYXlWaWRlbyA9IFtwaWNrZWRSb3V0ZSB2YWx1
ZUZvcktleTpnZXRBVlN5c3RlbUNvbnRyb2xsZXJfUm91dGVEZXNjcmlwdGlvbktleV9Sb3V0ZVN1
cHBvcnRzQWlyUGxheVZpZGVvKCldOwotICAgICAgICAgICAgaWYgKG5zU3VwcG9ydHNBaXJQbGF5
VmlkZW8pCi0gICAgICAgICAgICAgICAgc3VwcG9ydHNBaXJQbGF5VmlkZW8gPSBuc1N1cHBvcnRz
QWlyUGxheVZpZGVvLmJvb2xWYWx1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIGNhbGxPbldl
YlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFp
blB0cihzZWxmKSwgc2hvdWxkUGF1c2UgPSBXVEZNb3ZlKHNob3VsZFBhdXNlKSwgc3VwcG9ydHNB
aXJQbGF5VmlkZW8gPSBXVEZNb3ZlKHN1cHBvcnRzQWlyUGxheVZpZGVvKV0oKSBtdXRhYmxlIHsK
KyAgICBib29sIHNob3VsZFBhdXNlID0gW1tub3RpZmljYXRpb24udXNlckluZm8gb2JqZWN0Rm9y
S2V5OlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29u
S2V5KCldIHVuc2lnbmVkSW50ZWdlclZhbHVlXSA9PSBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdl
UmVhc29uT2xkRGV2aWNlVW5hdmFpbGFibGU7CisgICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRj
aEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBzaG91
bGRQYXVzZV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKGF1dG8qIGNhbGxiYWNrID0gcHJvdGVj
dGVkU2VsZi0+X2NhbGxiYWNrKSB7Ci0gICAgICAgICAgICBjYWxsYmFjay0+YWN0aXZlQXVkaW9S
b3V0ZURpZENoYW5nZShXVEZNb3ZlKHNob3VsZFBhdXNlKSk7Ci0gICAgICAgICAgICBjYWxsYmFj
ay0+YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShXVEZNb3ZlKHN1cHBvcnRzQWlyUGxheVZpZGVv
KSk7CisgICAgICAgICAgICBjYWxsYmFjay0+YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShzaG91
bGRQYXVzZSk7CisgICAgICAgICAgICBjYWxsYmFjay0+YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5n
ZSgpOwogICAgICAgICB9CiAgICAgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCmluZGV4IGM5ZmFj
N2Q5NjUzZmQwYTNiMzlkMjM2ZGM1YjliODA3MzE3NGMzZDEuLjhmOTBmYjc5MjYwOWY5MjA1ZDQy
NjU4NWJmMzJkZDk1NDU4YWY0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApAQCAtNTMsNyArNTMs
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNXaXJlbGVzc1RhcmdldHNBdmFpbGFibGUoKSBvdmVy
cmlkZTsKICAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlUHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElEKCk7CiAKLSAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gTWVkaWFTZXNzaW9u
SGVscGVyQ2xpZW50OjpXZWFrVmFsdWVUeXBlOwogICAgIHVzaW5nIE1lZGlhU2Vzc2lvbkhlbHBl
ckNsaWVudDo6d2Vha1B0ckZhY3Rvcnk7CiAKIHByaXZhdGU6CkBAIC02MSwxMCArNjAsMTEgQEAg
cHJpdmF0ZToKIAogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1MoKTsKIAotICAgIHZvaWQgcmVz
ZXRSZXN0cmljdGlvbnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc2V0UmVzdHJpY3Rpb25zKCkg
ZmluYWw7CiAKLSAgICB2b2lkIGNvbmZpZ3VyZVdpcmVMZXNzVGFyZ2V0TW9uaXRvcmluZygpIG92
ZXJyaWRlOworICAgIHZvaWQgY29uZmlndXJlV2lyZUxlc3NUYXJnZXRNb25pdG9yaW5nKCkgZmlu
YWw7CiAgICAgdm9pZCBwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElESWZOZWNlc3Nhcnko
KSBmaW5hbDsKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9y
bU1lZGlhU2Vzc2lvbiYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIGZpbmFsOwogCiAg
ICAgLy8gQXVkaW9TZXNzaW9uOjpJbnRlcnJ1cHRpb25PYnNlcnZlcgpAQCAtODQsNiArODQsMTEg
QEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiTWVkaWFTZXNzaW9uTWFuYWdlcmlPUyI7IH0KICNlbmRpZgogCisjaWYgIVBMQVRG
T1JNKFdBVENIT1MpCisgICAgUmVmUHRyPE1lZGlhUGxheWJhY2tUYXJnZXQ+IG1fcGxheWJhY2tU
YXJnZXQ7CisgICAgYm9vbCBtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5VmlkZW8geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBib29sIG1faXNNb25pdG9yaW5nV2lyZWxlc3NSb3V0ZXMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlUHJlc2VudGVkQXBwbGljYXRpb25QSUQgeyBmYWxz
ZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9N
ZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KaW5kZXggNmMxNjE4M2JhMzdjMzRhODgwZjcx
ZDExOWViMDhmNTVlNWM2MjU5OS4uODdmNWI0ZDdjNGNhNDc4YjQwNjk4ZmE0OWZjOGJkMTFiYjNh
M2IwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KQEAgLTEyMCw2ICsxMjAsMjYgQEAgdm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkK
ICAgICBNZWRpYVNlc3Npb25IZWxwZXI6OnNoYXJlZEhlbHBlcigpLnByb3ZpZGVQcmVzZW50aW5n
QXBwbGljYXRpb25QSUQocHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkpOwogfQogCitib29sIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKHNlc3Npb24pKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBpZiAoIW1fcGxheWJhY2tUYXJn
ZXQpIHsKKyAgICAgICAgbV9wbGF5YmFja1RhcmdldCA9IE1lZGlhUGxheWJhY2tUYXJnZXRDb2Nv
YTo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGxheWJhY2tUYXJnZXRTdXBwb3J0c0FpclBsYXlWaWRl
byA9IG1fcGxheWJhY2tUYXJnZXQtPnN1cHBvcnRzQWlyUGxheVZpZGVvKCk7CisgICAgfQorCisg
ICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQ
bGF5VmlkZW8pOworICAgIGlmIChtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5VmlkZW8p
CisgICAgICAgIHNlc3Npb24uc2V0UGxheWJhY2tUYXJnZXQoKm1fcGxheWJhY2tUYXJnZXQuY29w
eVJlZigpKTsKKyAgICBzZXNzaW9uLnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KG1fcGxh
eWJhY2tUYXJnZXRTdXBwb3J0c0FpclBsYXlWaWRlbyk7CisjZW5kaWYKKworICAgIHJldHVybiB0
cnVlOworfQorCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsRW5kUGxh
eWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24sIERlbGF5Q2FsbGluZ1VwZGF0ZU5v
d1BsYXlpbmcgZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZykKIHsKICAgICBNZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soc2Vzc2lvbiwgZGVsYXlDYWxs
aW5nVXBkYXRlTm93UGxheWluZyk7CkBAIC0xNjAsNiArMTgwLDEyIEBAIHZvaWQgTWVkaWFTZXNz
aW9uTWFuYWdlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShTaG91bGRQYXVzZSBzaG91
bGRQYXVzZSkKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURp
ZENoYW5nZShTdXBwb3J0c0FpclBsYXlWaWRlbyBzdXBwb3J0c0FpclBsYXlWaWRlbywgUmVmPE1l
ZGlhUGxheWJhY2tUYXJnZXQ+JiYgcGxheWJhY2tUYXJnZXQpCiB7CiAgICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSLCBzdXBwb3J0c0FpclBsYXlWaWRlbyk7CisKKyNpZiAhUExBVEZPUk0oV0FU
Q0hPUykKKyAgICBtX3BsYXliYWNrVGFyZ2V0ID0gcGxheWJhY2tUYXJnZXQucHRyKCk7CisgICAg
bV9wbGF5YmFja1RhcmdldFN1cHBvcnRzQWlyUGxheVZpZGVvID0gc3VwcG9ydHNBaXJQbGF5Vmlk
ZW8gPT0gU3VwcG9ydHNBaXJQbGF5VmlkZW86OlllczsKKyNlbmRpZgorCiAgICAgYXV0byBub3dQ
bGF5aW5nU2Vzc2lvbiA9IG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKICAgICBpZiAoIW5v
d1BsYXlpbmdTZXNzaW9uKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0LmgKaW5kZXggMzZiNzI5
NDRkNzE2M2QyMDFhNWY2ZWYzZjYzMjcyMWM2M2I3NjYxNC4uZWI5YzdiODUzZTc0OTY0OTkxZjdk
NTlkYmI1YzA5ZDNjNWFiMzEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0
Q29udGV4dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQWN0aXZlUm91dGUoKSBj
b25zdCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZGV2aWNlTmFtZSgpIGNvbnN0ID0gMDsKKyAg
ICB2aXJ0dWFsIGJvb2wgc3VwcG9ydHNBaXJQbGF5VmlkZW8oKSBjb25zdCA9IDA7CiB9OwogCiB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRp
b24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgKaW5kZXggYTI3
NWUyMDg2YjQ5Mzg3NDU4ZDFmYmM3YjVlODcyMjBiZDJiMzkwMS4uYmRmZDdjOTFkMzhmZTMyZjgz
ZDE0MDQ1NTc5ZTIzMzg3NWE2NGIyMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXli
YWNrVGFyZ2V0Q29jb2EuaApAQCAtMzcsMTQgKzM3LDE4IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tU
YXJnZXRDb2NvYSA6IHB1YmxpYyBNZWRpYVBsYXliYWNrVGFyZ2V0IHsKIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IGNyZWF0ZShBVk91
dHB1dENvbnRleHQgKik7CiAKLSAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2Eo
KTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIHN0YXRpYyBSZWY8TWVkaWFQbGF5YmFj
a1RhcmdldD4gY3JlYXRlKCk7CisjZW5kaWYKIAotICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgp
IGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFWRm91bmRhdGlvbjsgfQorICAgIHZpcnR1YWwgfk1l
ZGlhUGxheWJhY2tUYXJnZXRDb2NvYSgpOwogCi0gICAgY29uc3QgTWVkaWFQbGF5YmFja1Rhcmdl
dENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29sIGhhc0Fj
dGl2ZVJvdXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gQVZGb3VuZGF0aW9uOyB9CiAKLSAgICBTdHJpbmcgZGV2aWNl
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0JiB0YXJnZXRDb250ZXh0KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBoYXNBY3RpdmVSb3V0
ZSgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBkZXZpY2VOYW1lKCkgY29uc3QgZmluYWw7Cisg
ICAgYm9vbCBzdXBwb3J0c0FpclBsYXlWaWRlbygpIGNvbnN0IGZpbmFsOwogCiAgICAgQVZPdXRw
dXRDb250ZXh0ICpvdXRwdXRDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9vdXRwdXRDb250ZXh0
LmdldCgpOyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2F2Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29h
Lm1tCmluZGV4IGYzZTdjYzdhNzViYmVjYmRiZmI0NmJjNTllNDBkYThlMTVkYmVmMTIuLjRhM2U0
ZjUwYmM3ZmFiZTYwOTlmMWUzZTU3ZWU4OGJlMmQwOTk5ZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0
aW9uL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbQpAQCAtMzAsNyArMzAsNiBAQAogCiAjaW1w
b3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9u
U1BJLmg+Ci0KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oPgogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw2ICs0NSwzNiBAQCBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29jb2E6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShBVk91dHB1dENvbnRleHQgKmNvbnRleHQp
CiB7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorUmVmPE1lZGlhUGxheWJhY2tUYXJn
ZXQ+IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKCkKK3sKKyAgICBhdXRvICpyb3V0
aW5nQ29udGV4dFVJRCA9IFtbUEFMOjpnZXRBVkF1ZGlvU2Vzc2lvbkNsYXNzKCkgc2hhcmVkSW5z
dGFuY2VdIHJvdXRpbmdDb250ZXh0VUlEXTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRp
YVBsYXliYWNrVGFyZ2V0Q29jb2EoW1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBvdXRw
dXRDb250ZXh0Rm9ySUQ6cm91dGluZ0NvbnRleHRVSURdKSk7Cit9CisjZW5kaWYKKworYm9vbCBN
ZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OnN1cHBvcnRzQWlyUGxheVZpZGVvKCkgY29uc3QKK3sK
KyAgICBpZiAoIW1fb3V0cHV0Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAg
aWYgKCFbbV9vdXRwdXRDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3VwcG9y
dHNNdWx0aXBsZU91dHB1dERldmljZXMpXSB8fCAhW21fb3V0cHV0Q29udGV4dCBzdXBwb3J0c011
bHRpcGxlT3V0cHV0RGV2aWNlc10gfHwgIVttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2VzKV0pIHsKKyAgICAgICAgaWYgKGF1dG8gKm91dHB1
dERldmljZSA9IFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlXSkgeworICAgICAgICAgICAg
aWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZp
ZGVvKQorICAgICAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGZvciAoQVZPdXRwdXREZXZpY2UgKm91dHB1dERl
dmljZSBpbiBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZXNdKSB7CisgICAgICAgIGlmIChv
dXRwdXREZXZpY2UuZGV2aWNlRmVhdHVyZXMgJiBBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbykK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30K
KwogTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjp+TWVkaWFQbGF5YmFja1RhcmdldENvY29hKCkK
IHsKIH0KQEAgLTU4LDcgKzg3LDI0IEBAIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
JiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OnRhcmdldENvbnRleHQoKSBjb25zCiAKIGJvb2wg
TWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpoYXNBY3RpdmVSb3V0ZSgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIG1fb3V0cHV0Q29udGV4dCAmJiBtX291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFt
ZTsKKyAgICBpZiAoIW1fb3V0cHV0Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisg
ICAgaWYgKFttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdXBw
b3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcyldICYmIFttX291dHB1dENvbnRleHQgc3VwcG9ydHNN
dWx0aXBsZU91dHB1dERldmljZXNdICYmIFttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVj
dG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2VzKV0pIHsKKyAgICAgICAgZm9yIChBVk91dHB1dERl
dmljZSAqb3V0cHV0RGV2aWNlIGluIFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlc10pIHsK
KyAgICAgICAgICAgIGlmIChvdXRwdXREZXZpY2UuZGV2aWNlRmVhdHVyZXMgJiAoQVZPdXRwdXRE
ZXZpY2VGZWF0dXJlVmlkZW8gfCBBVk91dHB1dERldmljZUZlYXR1cmVBdWRpbykpCisgICAgICAg
ICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7
CisgICAgfQorCisgICAgaWYgKFttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBz
ZWxlY3RvcihvdXRwdXREZXZpY2UpXSkgeworICAgICAgICBpZiAoYXV0byAqb3V0cHV0RGV2aWNl
ID0gW21fb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VdKQorICAgICAgICAgICAgcmV0dXJuIG91
dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8
IEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlvKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9vdXRw
dXRDb250ZXh0LmdldCgpLmRldmljZU5hbWU7CiB9CiAKIFN0cmluZyBNZWRpYVBsYXliYWNrVGFy
Z2V0Q29jb2E6OmRldmljZU5hbWUoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmlu
ZGV4IDM2YjNjYjJjNGQ3ZGUyZjEzNGQ2Y2VkNGM1NjkzMWMyYTFmZGQyMTQuLjk4ZjA0YjdjZjg1
YTgwMmFmMmE2OWU0OThkZDVkM2NiMjkzNDUzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1l
ZGlhU291cmNlQVZGT2JqQy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KQEAgLTEyMjEsNiArMTIyMSw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3Vy
Y2VBVkZPYmpDOjpzZXRUZXh0VHJhY2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSCiAjaWYgRU5B
QkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVk
aWFTb3VyY2VBVkZPYmpDOjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXli
YWNrVGFyZ2V0PiYmIHRhcmdldCkKIHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwog
ICAgIG1fcGxheWJhY2tUYXJnZXQgPSBXVEZNb3ZlKHRhcmdldCk7CiB9CiAKQEAgLTEyMzMsNyAr
MTIzNCw3IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRT
aG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChib29sIHNoCiAgICAgbV9zaG91bGRQbGF5VG9UYXJn
ZXQgPSBzaG91bGRQbGF5VG9UYXJnZXQ7CiAKICAgICBpZiAobV9wbGF5ZXIpCi0gICAgICAgIG1f
cGxheWVyLT5jdXJyZW50UGxheWJhY2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChtX3BsYXllci0+
aXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpKTsKKyAgICAgICAgbV9wbGF5ZXItPmN1
cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKGlzQ3VycmVudFBsYXliYWNrVGFy
Z2V0V2lyZWxlc3MoKSk7CiB9CiAKIGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VB
VkZPYmpDOjppc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkgY29uc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2su
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2su
aAppbmRleCA4MTU1NTdhZDZhMzAyMGE2MjhhNWIzYTExZGJiYjVlNmQyODUwNTgwLi4wNWZlZDU0
N2Q1ZGYyNWUwZDA3YWQ1NjRmYmNmZTdkYzBlYWQwNzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oCkBAIC00MCwx
MyArNDAsMTQgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldE1v
Y2soKTsKIAotICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0
dXJuIE1vY2s7IH0KKyAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBNb2NrOyB9CiAKLSAgICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFy
Z2V0Q29udGV4dCgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0JiB0YXJnZXRDb250ZXh0KCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIGhhc0Fj
dGl2ZVJvdXRlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gIW1fbmFtZS5pc0VtcHR5KCk7IH0K
KyAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fbmFtZS5p
c0VtcHR5KCk7IH0KKyAgICBib29sIHN1cHBvcnRzQWlyUGxheVZpZGVvKCkgY29uc3QgZmluYWwg
eyByZXR1cm4gIW1fbmFtZS5pc0VtcHR5KCk7IH0KIAotICAgIFN0cmluZyBkZXZpY2VOYW1lKCkg
Y29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4gbV9uYW1lOyB9CisgICAgU3RyaW5nIGRldmljZU5hbWUo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX25hbWU7IH0KIAogICAgIE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0OjpTdGF0ZSBzdGF0ZSgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395046</attachid>
            <date>2020-03-31 09:11:00 -0700</date>
            <delta_ts>2020-03-31 09:55:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209789-20200331091059.patch</filename>
            <type>text/plain</type>
            <size>31819</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwOTdkNDViYjhkYzQ0
ZDAwNjIxMThiOGQyMDYxMjJlOTY2OGE3Yy4uZDMyOTlkY2RhNGVmMjg5OWQ0NzNiNmI4NTAwYTdj
ODY0M2EwZmY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBVc2Ug
QVZBdWRpb1Nlc3Npb24gdG8gZGV0ZWN0IEFpclBsYXkgcm91dGUgY2hhbmdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Nzg5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81ODA2NTI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM6IGNoYW5nZXMgb25seSBhZmZlY3QgcGxheWJh
Y2sgb24gZGV2aWNlIHRvIGFuIGFjdHVhbCBBaXJQbGF5IGRldmljZSwgd2hpY2gKKyAgICAgICAg
aXMgbm90IHRlc3RhYmxlIG9uIG91ciBjdXJyZW50IHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSk6IERyaXZl
LWJ5IGZpeDogcGFzcyBsb2cgaWRlbnRpZmllcgorICAgICAgICBpbnRvIGxhbWJkYSBzbyB0aGUg
bWV0aG9kIG5hbWUgaXMgbG9nZ2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c2V0SXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk6IERpdHRvLiAKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQpOiBVcGRhdGUg
bG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3VsZFBs
YXlUb1BsYXliYWNrVGFyZ2V0KTogQ2FsbCBzZXRJc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0Cisg
ICAgICAgIHNvIHdlIGtpY2sgb2ZmIGEgbWVkaWEgcGxheWVyIGNvbXBhdGliaWxpdHkgY2hlY2su
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aDogUmVtb3ZlIHVudXNlZCBpbnN0YW5jZSB2YXJpYWJsZXMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbToKKyAgICAgICAgKE1lZGlhU2Vzc2lv
bkhlbHBlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZSk6IENoYW5nZSBwYXJhbWV0ZXIg
dG8gYm9vbCBhcyBpdCBpcyBhbHdheXMKKyAgICAgICAgcHJlc2VudC4KKyAgICAgICAgKE1lZGlh
U2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSk6IFJlbW92ZSBwYXJh
bWV0ZXJzLCB1c2UgdGhlIG5ldworICAgICAgICBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EgY3Jl
YXRlIG1ldGhvZCBhbmQgYXNrIGl0IGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgQWlyUGxheS4KKyAg
ICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6IExpc3Rl
biBmb3IgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbi4KKyAgICAgICAgKC1b
V2ViTWVkaWFTZXNzaW9uSGVscGVyIGFjdGl2ZU91dHB1dERldmljZURpZENoYW5nZTpdKTogVXBk
YXRlIGZvciBuZXcgbm90aWZpY2F0aW9uIHNvdXJjZS4KKyAgICAgICAgKC1bV2ViTWVkaWFTZXNz
aW9uSGVscGVyIGFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2U6XSk6IERlbGV0ZWQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKTogU2V0IHBsYXliYWNrIHRhcmdldCBvbiBzZXNzaW9uCisgICAgICAgIHRoYXQgaXMgYWJv
dXQgdG8gYmVnaW4gcGxheWJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyaU9TOjphY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKTogU2F2ZSB0aGUgdGFyZ2V0IGFuZCBz
dGF0ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFj
a1RhcmdldENvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKTogQ3JlYXRlIGEgdGFyZ2V0IGZyb20gdGhlIGFwcGxp
Y2F0aW9uJ3MgY3VycmVudGx5CisgICAgICAgIGFjdGl2ZSBBVk91dHB1dENvbnRleHQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OnN1cHBvcnRzQWlyUGxheVZp
ZGVvIGNvbnN0KTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpoYXNBY3RpdmVSb3V0ZSBjb25zdCk6IFVzZSBuZXcgQVBJIGlmIGF2YWlsYWJsZSBpbnN0
ZWFkCisgICAgICAgIG9mIGp1c3QgY2hlY2tpbmcgZm9yIHRoZSBBVk91dHB1dENvbnRleHQgbmFt
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0V2lyZWxlc3NQbGF5YmFja1Rh
cmdldCk6IExvZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQpOiAKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg6CisKIDIwMjAtMDMtMjMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIGpl
dHNhbXMgd2l0aCByZXBlYXRlZCBkcmF3SW1hZ2UvZ2V0SW1hZ2VEYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBiNjFhOGJmMGZlZjc2OWZkNDE2MGJlNjgxMGY1OTlkZjc0OGFmYTkzLi5hMjE4Mzdl
ZGE2NzBmY2RhMzM2YTBkYTI3M2E4MmQyZjU1ODNlZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMC0wMy0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbaVBhZF0gVXNlIEFWQXVkaW9TZXNzaW9uIHRvIGRldGVjdCBB
aXJQbGF5IHJvdXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwOTc4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwNjUyNzk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW06CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEku
aDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29jb2EtcGxhdGZvcm0gSEFWRSBhbmQg
RU5BQkxFIG1hY3JvcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGIxYjU0ODQ0YjJmYTRlZjBlZDI2NTA3NDYyYTMxZDgy
NjhhNWIzZTYuLjQ1NmJkM2VjYmYzZTI4Y2FhM2VlMWE1Mjk2MzM0NWRkY2MxYzU0MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKQEAgLTI5MSw2ICsyOTEsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGUKICNkZWZpbmUg
QVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlv
biBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRl
Y3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0
Tm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVkF1ZGlvU2Vzc2lvbk1lZGlhU2Vy
dmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9T
ZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNo
YW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZBdWRpb1Nlc3Npb25Sb3V0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25S
b3V0ZUNoYW5nZU5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSBQQUw6
OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSgpCiAj
ZW5kaWYgLy8gIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0KaW5kZXggYWIwYmE4MGE5YWUwYzFlYmQ0OGNlOGIwOTZhYTM4ZDY4Yjg2MmUx
NS4uZmUxMDk2ZmY4MTkwMGNhOGQ4Y2MzMTBiMmQwNDAyM2NiOWRkZjViMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBA
IC0yMTMsNiArMjEzLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXMKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0
ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1l
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVu
dGlmaWVyS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91
dGVDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRp
b1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRIVFRQQ29va2llc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0UmVxdWlyZXNDdXN0b21VUkxMb2FkaW5nS2V5
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAppbmRleCA1ZjE1ZjA1MTNmNjU2ODhjMmZkMDkx
YTk0YjY2NDUwYmQ3M2JhNzI5Li43NTFhYjQ0ZTdlMDQ0N2JkZDExMWZhM2FjOWU4MzVmYzdkYmNl
Zjk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaApAQCAtNzcsMTIgKzc3LDIxIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkZXZpY2VOYW1lOwogKyAo
aW5zdGFuY2V0eXBlKW91dHB1dENvbnRleHQ7CiArIChudWxsYWJsZSBBVk91dHB1dENvbnRleHQg
KilzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7CisrIChudWxsYWJsZSBBVk91
dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0Rm9ySUQ6KE5TU3RyaW5nICopSUQ7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBCT09MIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzOwogQHByb3Bl
cnR5IChyZWFkb25seSkgTlNBcnJheTxBVk91dHB1dERldmljZSAqPiAqb3V0cHV0RGV2aWNlczsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIEFWT3V0cHV0RGV2aWNl
ICpvdXRwdXREZXZpY2U7CiBAZW5kCiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBB
Vk91dHB1dERldmljZUZlYXR1cmVzKSB7CisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8g
PSAoMVVMIDw8IDApLAorICAgIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVNjcmVlbiA9ICgxVUwgPDwg
MSksCisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8gPSAoMVVMIDw8IDIpLAorfTsKKwog
QGludGVyZmFjZSBBVk91dHB1dERldmljZSA6IE5TT2JqZWN0CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBBVk91dHB1dERldmljZUZlYXR1cmVzIGRldmljZUZlYXR1cmVzOwogQGVuZAogCiAjaWYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0zMzQsNiArMzQzLDE3IEBAIE5TX0FTU1VNRV9OT05O
VUxMX0VORAogCiBOU19BU1NVTUVfTk9OTlVMTF9CRUdJTgogCit0eXBlZGVmIE5TX0VOVU0oTlNV
SW50ZWdlciwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbikgeworICAgIEFWQXVkaW9T
ZXNzaW9uUm91dGVDaGFuZ2VSZWFzb25Vbmtub3duID0gMCwKKyAgICBBVkF1ZGlvU2Vzc2lvblJv
dXRlQ2hhbmdlUmVhc29uTmV3RGV2aWNlQXZhaWxhYmxlID0gMSwKKyAgICBBVkF1ZGlvU2Vzc2lv
blJvdXRlQ2hhbmdlUmVhc29uT2xkRGV2aWNlVW5hdmFpbGFibGUgPSAyLAorICAgIEFWQXVkaW9T
ZXNzaW9uUm91dGVDaGFuZ2VSZWFzb25DYXRlZ29yeUNoYW5nZSA9IDMsCisgICAgQVZBdWRpb1Nl
c3Npb25Sb3V0ZUNoYW5nZVJlYXNvbk92ZXJyaWRlID0gNCwKKyAgICBBVkF1ZGlvU2Vzc2lvblJv
dXRlQ2hhbmdlUmVhc29uV2FrZUZyb21TbGVlcCA9IDYsCisgICAgQVZBdWRpb1Nlc3Npb25Sb3V0
ZUNoYW5nZVJlYXNvbk5vU3VpdGFibGVSb3V0ZUZvckNhdGVnb3J5ID0gNywKKyAgICBBVkF1ZGlv
U2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uUm91dGVDb25maWd1cmF0aW9uQ2hhbmdlID0gOAorfTsK
KwogQGludGVyZmFjZSBBVkF1ZGlvU2Vzc2lvbiAoQVZBdWRpb1Nlc3Npb25Qcml2YXRlKQogQHBy
b3BlcnR5IChyZWFkb25seSkgTlNTdHJpbmcqIHJvdXRpbmdDb250ZXh0VUlEOwogQGVuZApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKaW5kZXggYmRmNDU5YWU2MzZkMmYx
M2I5MDQyZWIzODQ4MWY3ODkwZThjMzdkNC4uNzMyNzVkMTE3OTJkNWNjODZlYjFmNjVkNTBkYmIy
MzJjZDgzN2EzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVt
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCkBA
IC0xMDUwLDExICsxMDUwLDggQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzY2hlZHVsZUNoZWNr
UGxheWJhY2tUYXJnZXRDb21wYXRhYmlsaXR5KCkKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6Y2hl
Y2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSgpCiB7CiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BM
QVlCQUNLX1RBUkdFVCkKLSAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklF
UjsKLSAgICBBTFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAidGFzayBzY2hlZHVsZWQiKTsK
ICAgICBpZiAobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0ICYmICFtX3BsYXllci0+Y2FuUGxh
eVRvV2lyZWxlc3NQbGF5YmFja1RhcmdldCgpKSB7Ci0gICAgICAgIFVOVVNFRF9QQVJBTShsb2dT
aXRlSWRlbnRpZmllcik7Ci0gICAgICAgIElORk9fTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCAiY2Fs
bGluZyBzZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChmYWxzZSkiKTsKKyAgICAgICAgSU5G
T19MT0coTE9HSURFTlRJRklFUiwgImNhbGxpbmcgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJn
ZXQoZmFsc2UpIik7CiAgICAgICAgIG1fZmFpbGVkVG9QbGF5VG9XaXJlbGVzc1RhcmdldCA9IHRy
dWU7CiAgICAgICAgIG1fcGxheWVyLT5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChmYWxz
ZSk7CiAgICAgfQpAQCAtNTg1MCwxMiArNTg0NywxOCBAQCB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6
Om1lZGlhUGxheWVyQ3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoYm9vbCBp
cwogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldElzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQo
Ym9vbCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KQogewotICAgIG1fcGxheWJhY2tUYXJnZXRJ
c1dpcmVsZXNzUXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGlzUGxheWluZ1RvV2lyZWxlc3NUYXJn
ZXRdIHsKKyAgICBhdXRvIGxvZ1NpdGVJZGVudGlmaWVyID0gTE9HSURFTlRJRklFUjsKKyAgICBB
TFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCBpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KTsK
KyAgICBtX3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBp
c1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0LCBsb2dTaXRlSWRlbnRpZmllcl0geworICAgICAgICBV
TlVTRURfUEFSQU0obG9nU2l0ZUlkZW50aWZpZXIpOworICAgICAgICBBTFdBWVNfTE9HKGxvZ1Np
dGVJZGVudGlmaWVyLCAibGFtYmRhKCksIHRhc2sgZmlyZWQiKTsKKwogICAgICAgICBpZiAoaXNQ
bGF5aW5nVG9XaXJlbGVzc1RhcmdldCA9PSBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpCiAg
ICAgICAgICAgICByZXR1cm47CisKICAgICAgICAgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
ID0gbV9wbGF5ZXIgJiYgbV9wbGF5ZXItPmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3Mo
KTsKICAgICAgICAgbV9yZW1vdGUtPmlzUGxheWluZ1RvUmVtb3RlVGFyZ2V0Q2hhbmdlZChtX2lz
UGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOwotICAgICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIsIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk7CisgICAgICAgIEFMV0FZU19MT0cobG9n
U2l0ZUlkZW50aWZpZXIsIG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk7CiAgICAgICAgIGNv
bmZpZ3VyZU1lZGlhQ29udHJvbHMoKTsKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmlzUGxheWlu
Z1RvV2lyZWxlc3NQbGF5YmFja1RhcmdldENoYW5nZWQobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFy
Z2V0KTsKICAgICAgICAgbV9tZWRpYVNlc3Npb24tPmNhblByb2R1Y2VBdWRpb0NoYW5nZWQoKTsK
QEAgLTU5NDEsMTEgKzU5NDQsMTEgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjplbnF1ZXVlUGxh
eWJhY2tUYXJnZXRBdmFpbGFiaWxpdHlDaGFuZ2VkRXZlbnQoKQogCiB2b2lkIEhUTUxNZWRpYUVs
ZW1lbnQ6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+
JiYgZGV2aWNlKQogewotICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgYm9vbCBo
YXNBY3RpdmVSb3V0ZSA9IGRldmljZS0+aGFzQWN0aXZlUm91dGUoKTsKKyAgICBBTFdBWVNfTE9H
KExPR0lERU5USUZJRVIsIGhhc0FjdGl2ZVJvdXRlKTsKKwogICAgIGlmIChtX3BsYXllcikKICAg
ICAgICAgbV9wbGF5ZXItPnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoV1RGTW92ZShkZXZpY2Up
KTsKLQogICAgIG1fcmVtb3RlLT5zaG91bGRQbGF5VG9SZW1vdGVUYXJnZXRDaGFuZ2VkKGhhc0Fj
dGl2ZVJvdXRlKTsKIH0KIApAQCAtNTk1Myw4ICs1OTU2LDEwIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoYm9vbCBzaG91bGRQbGF5KQogewog
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc2hvdWxkUGxheSk7CiAKLSAgICBpZiAobV9w
bGF5ZXIpCisgICAgaWYgKG1fcGxheWVyKSB7CiAgICAgICAgIG1fcGxheWVyLT5zZXRTaG91bGRQ
bGF5VG9QbGF5YmFja1RhcmdldChzaG91bGRQbGF5KTsKKyAgICAgICAgc2V0SXNQbGF5aW5nVG9X
aXJlbGVzc1RhcmdldChtX3BsYXllci0+aXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygp
KTsKKyAgICB9CiB9CiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6cGxheWJhY2tUYXJnZXRQaWNr
ZXJXYXNEaXNtaXNzZWQoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAppbmRleCA0N2Q4YWVhOWNjYjk2
MjdlZGI5NmUyZDg3ODJiMTI4YjEwN2E1MTE2Li4yNjJkOWJhYjlhZWJlODZjOTRhMjY5MzM4ODk0
ZThlZGY2ZmYzNDdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9Q
bGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaApAQCAtMTgxLDExICsxODEsNiBA
QCBwcml2YXRlOgogICAgIFNlc3Npb25SZXN0cmljdGlvbnMgbV9yZXN0cmljdGlvbnNbc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KFBsYXRmb3JtTWVkaWFTZXNzaW9uOjpNZWRpYVR5cGU6OldlYkF1ZGlv
KSArIDFdOwogICAgIG11dGFibGUgVmVjdG9yPFdlYWtQdHI8UGxhdGZvcm1NZWRpYVNlc3Npb24+
PiBtX3Nlc3Npb25zOwogCi0jaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNLX1RBUkdFVCkgJiYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCi0gICAgUmVmUHRyPE1lZGlhUGxheWJhY2tUYXJnZXQ+IG1f
cGxheWJhY2tUYXJnZXQ7Ci0gICAgYm9vbCBtX2NhblBsYXlUb1RhcmdldCB7IGZhbHNlIH07Ci0j
ZW5kaWYKLQogICAgIGJvb2wgbV9pbnRlcnJ1cHRlZCB7IGZhbHNlIH07CiAgICAgbXV0YWJsZSBi
b29sIG1faXNBcHBsaWNhdGlvbkluQmFja2dyb3VuZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3dp
bGxJZ25vcmVTeXN0ZW1JbnRlcnJ1cHRpb25zIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdl
ckNvY29hLmgKaW5kZXggMWFkNjZhODJjMzhhM2VhMTg2NTY5NWYwZWU2OWI2Mjg3MzE5NzgzOC4u
NWQ2YjEzYThhMDk4MWQzYWRmNTg4MWIzODA0NWVjZTI0YjhkY2NiYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9uTWFuYWdlckNvY29h
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2EvTWVkaWFTZXNzaW9u
TWFuYWdlckNvY29hLmgKQEAgLTY4LDcgKzY4LDcgQEAgcHJvdGVjdGVkOgogICAgIHZvaWQgYWRk
U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2V0Q3VycmVu
dFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKIAotICAgIGJvb2wgc2Vzc2lv
bldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CisgICAgYm9v
bCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBvdmVycmlk
ZTsKICAgICB2b2lkIHNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24m
LCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nKSBvdmVycmlkZTsKICAgICB2b2lkIHNlc3Np
b25EaWRFbmRSZW1vdGVTY3J1YmJpbmcoY29uc3QgUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5h
bDsKICAgICB2b2lkIGNsaWVudENoYXJhY3RlcmlzdGljc0NoYW5nZWQoUGxhdGZvcm1NZWRpYVNl
c3Npb24mKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlv
L2lvcy9NZWRpYVNlc3Npb25IZWxwZXJJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9h
dWRpby9pb3MvTWVkaWFTZXNzaW9uSGVscGVySU9TLm1tCmluZGV4IDk2ZWRmNWU5NmNjNjE2YmQ4
NzY4MWU0ODVhOWQ5MjgwMzhlYjVhMzYuLmI2YzkyNTlhMTEwNGJmYzExMDdlMGQxMjAzOWE4ZDA0
YzIxZTU1YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9N
ZWRpYVNlc3Npb25IZWxwZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVk
aW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbQpAQCAtNTYsMTAgKzU2LDYgQEAgU09GVF9M
SU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX0NhclBs
YXlJc0Nvbm5lY3RlZEF0dHIKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWws
IEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRp
b24sIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBB
VlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkTm90aWZpY2F0aW9uUGFyYW1ldGVy
LCBOU1N0cmluZyAqKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZT
eXN0ZW1Db250cm9sbGVyX1NlcnZlckNvbm5lY3Rpb25EaWVkTm90aWZpY2F0aW9uLCBOU1N0cmlu
ZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250
cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICop
Ci1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xs
ZXJfQWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZU5vdGlmaWNhdGlvblBhcmFtZXRlcl9TaG91bGRQ
YXVzZSwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWws
IEFWU3lzdGVtQ29udHJvbGxlcl9QaWNrZWRSb3V0ZUF0dHJpYnV0ZSwgTlNTdHJpbmcgKikKLVNP
RlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9S
b3V0ZURlc2NyaXB0aW9uS2V5X1JvdXRlU3VwcG9ydHNBaXJQbGF5VmlkZW8sIE5TU3RyaW5nICop
CiAjZW5kaWYKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC0xMDQsOCArMTAwLDEwIEBA
IHB1YmxpYzoKICNpZiBIQVZFKENFTEVTVElBTCkKICAgICB2b2lkIGNhclBsYXlTZXJ2ZXJEaWVk
KCk7CiAgICAgdm9pZCB1cGRhdGVDYXJQbGF5SXNDb25uZWN0ZWQoT3B0aW9uYWw8Ym9vbD4mJik7
Ci0gICAgdm9pZCBhY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKE9wdGlvbmFsPGJvb2w+JiYpOwot
ICAgIHZvaWQgYWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShPcHRpb25hbDxib29sPiYmKTsKKyNl
bmRpZgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJ
TVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykK
K3ZvaWQgYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShib29sKTsKK3ZvaWQgYWN0aXZlVmlkZW9S
b3V0ZURpZENoYW5nZSgpOwogI2VuZGlmCiAKIHByaXZhdGU6CkBAIC0yNTcsMTggKzI1NSwxOSBA
QCB2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6c2V0SXNQbGF5aW5nVG9BdXRvbW90aXZlSGVh
ZFVuaXQoYm9vbCBpc1BsYXlpbmcpCiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMp
CiAgICAgICAgIGNsaWVudC5pc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdERpZENoYW5nZSht
X2lzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0ID8gUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRV
bml0OjpZZXMgOiBQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQ6Ok5vKTsKIH0KKyNlbmRpZiAv
LyBIQVZFKENFTEVTVElBTCkKIAotdm9pZCBNZWRpYVNlc3Npb25IZWxwZXJpT1M6OmFjdGl2ZUF1
ZGlvUm91dGVEaWRDaGFuZ2UoT3B0aW9uYWw8Ym9vbD4mJiBzaG91bGRQYXVzZSkKKyNpZiBQTEFU
Rk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQ
TEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpCit2b2lkIE1lZGlhU2Vz
c2lvbkhlbHBlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShib29sIHNob3VsZFBhdXNl
KQogewogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGllbnRzKQotICAgICAgICBjbGllbnQu
YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShzaG91bGRQYXVzZS52YWx1ZU9yKGZhbHNlKSA/IFNo
b3VsZFBhdXNlOjpZZXMgOiBTaG91bGRQYXVzZTo6Tm8pOworICAgICAgICBjbGllbnQuYWN0aXZl
QXVkaW9Sb3V0ZURpZENoYW5nZShzaG91bGRQYXVzZSA/IFNob3VsZFBhdXNlOjpZZXMgOiBTaG91
bGRQYXVzZTo6Tm8pOwogfQogCi12b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlVmlk
ZW9Sb3V0ZURpZENoYW5nZShPcHRpb25hbDxib29sPiYmIHN1cHBvcnRzQWlyUGxheVZpZGVvKQor
dm9pZCBNZWRpYVNlc3Npb25IZWxwZXJpT1M6OmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoKQog
ewotICAgIG1fYWN0aXZlVmlkZW9Sb3V0ZVN1cHBvcnRzQWlyUGxheVZpZGVvID0gc3VwcG9ydHNB
aXJQbGF5VmlkZW8udmFsdWVPcihmYWxzZSk7Ci0KLSAgICBhdXRvIHBsYXliYWNrVGFyZ2V0ID0g
TWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpjcmVhdGUoW1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0
Q2xhc3MoKSBzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHRdKTsKKyAgICBhdXRv
IHBsYXliYWNrVGFyZ2V0ID0gTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpjcmVhdGUoKTsKKyAg
ICBtX2FjdGl2ZVZpZGVvUm91dGVTdXBwb3J0c0FpclBsYXlWaWRlbyA9IHBsYXliYWNrVGFyZ2V0
LT5zdXBwb3J0c0FpclBsYXlWaWRlbygpOwogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9jbGll
bnRzKQogICAgICAgICBjbGllbnQuYWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShtX2FjdGl2ZVZp
ZGVvUm91dGVTdXBwb3J0c0FpclBsYXlWaWRlbyA/IFN1cHBvcnRzQWlyUGxheVZpZGVvOjpZZXMg
OiBTdXBwb3J0c0FpclBsYXlWaWRlbzo6Tm8sIHBsYXliYWNrVGFyZ2V0LmNvcHlSZWYoKSk7CiB9
CkBAIC0zMjgsMTMgKzMyNywxNSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6ZXh0ZXJu
YWxPdXRwdXREZXZpY2VBdmFpbGFibGVEaWRDaGFuZ2UoKQogICAgIFtjZW50ZXIgYWRkT2JzZXJ2
ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoYXBwbGljYXRpb25XaWxsUmVzaWduQWN0aXZlOikg
bmFtZTpXZWJVSUFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZU5vdGlmaWNhdGlvbiBvYmplY3Q6
bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpQQUw6OmdldF9VSUtpdF9VSUFwcGxp
Y2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uKCkgb2JqZWN0Om5pbF07CiAgICAg
W2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhcHBsaWNhdGlvbkRp
ZEVudGVyQmFja2dyb3VuZDopIG5hbWU6V2ViVUlBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZE5vdGlmaWNhdGlvbiBvYmplY3Q6bmlsXTsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAh
UExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkg
JiYgIVBMQVRGT1JNKFdBVENIT1MpCisgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVj
dG9yOkBzZWxlY3RvcihhY3RpdmVPdXRwdXREZXZpY2VEaWRDaGFuZ2U6KSBuYW1lOlBBTDo6Z2V0
X0FWRm91bmRhdGlvbl9BVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlTm90aWZpY2F0aW9uKCkgb2Jq
ZWN0Om5pbF07CisjZW5kaWYKKwogI2lmIEhBVkUoQ0VMRVNUSUFMKQogICAgIGlmIChjYW5Mb2Fk
QVZTeXN0ZW1Db250cm9sbGVyX1NlcnZlckNvbm5lY3Rpb25EaWVkTm90aWZpY2F0aW9uKCkpCiAg
ICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoY2FyUGxh
eVNlcnZlckRpZWQ6KSBuYW1lOmdldEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9u
RGllZE5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwogICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1D
b250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpKQogICAg
ICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNhclBsYXlJ
c0Nvbm5lY3RlZERpZENoYW5nZTopIG5hbWU6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJ
c0Nvbm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwotICAgIGlmIChj
YW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmlj
YXRpb24oKSkKLSAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxl
Y3RvcihhY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlOikgbmFtZTpnZXRBVlN5c3RlbUNvbnRyb2xs
ZXJfQWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwog
I2VuZGlmCiAKICAgICAvLyBOb3cgcGxheWluZyB3b24ndCB3b3JrIHVubGVzcyB3ZSB0dXJuIG9u
IHRoZSBkZWxpdmVyeSBvZiByZW1vdGUgY29udHJvbCBldmVudHMuCkBAIC01NDEsMzkgKzU0Miwy
NSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6ZXh0ZXJuYWxPdXRwdXREZXZpY2VBdmFp
bGFibGVEaWRDaGFuZ2UoKQogICAgICAgICAgICAgY2FsbGJhY2stPnVwZGF0ZUNhclBsYXlJc0Nv
bm5lY3RlZChXVEZNb3ZlKGNhclBsYXlJc0Nvbm5lY3RlZCkpOwogICAgIH0pOwogfQorI2VuZGlm
IC8vIEhBVkUoQ0VMRVNUSUFMKQogCi0tICh2b2lkKWFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2U6
KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpICYmICFQTEFURk9STShXQVRDSE9TKQorLSAodm9pZClhY3RpdmVPdXRwdXREZXZpY2VEaWRD
aGFuZ2U6KE5TTm90aWZpY2F0aW9uICopbm90aWZpY2F0aW9uCiB7CiAgICAgaWYgKCFfY2FsbGJh
Y2spCiAgICAgICAgIHJldHVybjsKIAotICAgIFVOVVNFRF9QQVJBTShub3RpZmljYXRpb24pOwot
ICAgIE9wdGlvbmFsPGJvb2w+IHNob3VsZFBhdXNlOwotICAgIGlmIChub3RpZmljYXRpb24gJiYg
Y2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9BY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlTm90aWZp
Y2F0aW9uUGFyYW1ldGVyX1Nob3VsZFBhdXNlKCkpIHsKLSAgICAgICAgTlNOdW1iZXIqIG5zU2hv
dWxkUGF1c2UgPSBbbm90aWZpY2F0aW9uLnVzZXJJbmZvIHZhbHVlRm9yS2V5OmdldEFWU3lzdGVt
Q29udHJvbGxlcl9BY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlTm90aWZpY2F0aW9uUGFyYW1ldGVy
X1Nob3VsZFBhdXNlKCldOwotICAgICAgICBpZiAobnNTaG91bGRQYXVzZSkKLSAgICAgICAgICAg
IHNob3VsZFBhdXNlID0gbnNTaG91bGRQYXVzZS5ib29sVmFsdWU7Ci0gICAgfQotCi0gICAgT3B0
aW9uYWw8Ym9vbD4gc3VwcG9ydHNBaXJQbGF5VmlkZW87Ci0gICAgaWYgKGNhbkxvYWRBVlN5c3Rl
bUNvbnRyb2xsZXJfUGlja2VkUm91dGVBdHRyaWJ1dGUoKSAmJiBjYW5Mb2FkQVZTeXN0ZW1Db250
cm9sbGVyX1JvdXRlRGVzY3JpcHRpb25LZXlfUm91dGVTdXBwb3J0c0FpclBsYXlWaWRlbygpKSB7
Ci0gICAgICAgIE5TRGljdGlvbmFyeSogcGlja2VkUm91dGUgPSBbW2dldEFWU3lzdGVtQ29udHJv
bGxlckNsYXNzKCkgc2hhcmVkQVZTeXN0ZW1Db250cm9sbGVyXSBhdHRyaWJ1dGVGb3JLZXk6Z2V0
QVZTeXN0ZW1Db250cm9sbGVyX1BpY2tlZFJvdXRlQXR0cmlidXRlKCldOwotICAgICAgICBpZiAo
W3BpY2tlZFJvdXRlIGlzS2luZE9mQ2xhc3M6TlNEaWN0aW9uYXJ5LmNsYXNzXSkgewotICAgICAg
ICAgICAgTlNOdW1iZXIqIG5zU3VwcG9ydHNBaXJQbGF5VmlkZW8gPSBbcGlja2VkUm91dGUgdmFs
dWVGb3JLZXk6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX1JvdXRlRGVzY3JpcHRpb25LZXlfUm91dGVT
dXBwb3J0c0FpclBsYXlWaWRlbygpXTsKLSAgICAgICAgICAgIGlmIChuc1N1cHBvcnRzQWlyUGxh
eVZpZGVvKQotICAgICAgICAgICAgICAgIHN1cHBvcnRzQWlyUGxheVZpZGVvID0gbnNTdXBwb3J0
c0FpclBsYXlWaWRlby5ib29sVmFsdWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICBjYWxsT25X
ZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3RlY3RlZFNlbGYgPSByZXRh
aW5QdHIoc2VsZiksIHNob3VsZFBhdXNlID0gV1RGTW92ZShzaG91bGRQYXVzZSksIHN1cHBvcnRz
QWlyUGxheVZpZGVvID0gV1RGTW92ZShzdXBwb3J0c0FpclBsYXlWaWRlbyldKCkgbXV0YWJsZSB7
CisgICAgYm9vbCBzaG91bGRQYXVzZSA9IFtbbm90aWZpY2F0aW9uLnVzZXJJbmZvIG9iamVjdEZv
cktleTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNv
bktleSgpXSB1bnNpZ25lZEludGVnZXJWYWx1ZV0gPT0gQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5n
ZVJlYXNvbk9sZERldmljZVVuYXZhaWxhYmxlOworICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0
Y2hBc3luY09uTWFpblRocmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgc2hv
dWxkUGF1c2VdKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmIChhdXRvKiBjYWxsYmFjayA9IHByb3Rl
Y3RlZFNlbGYtPl9jYWxsYmFjaykgewotICAgICAgICAgICAgY2FsbGJhY2stPmFjdGl2ZUF1ZGlv
Um91dGVEaWRDaGFuZ2UoV1RGTW92ZShzaG91bGRQYXVzZSkpOwotICAgICAgICAgICAgY2FsbGJh
Y2stPmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoV1RGTW92ZShzdXBwb3J0c0FpclBsYXlWaWRl
bykpOworICAgICAgICAgICAgY2FsbGJhY2stPmFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2Uoc2hv
dWxkUGF1c2UpOworICAgICAgICAgICAgY2FsbGJhY2stPmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFu
Z2UoKTsKICAgICAgICAgfQogICAgIH0pOwogCiB9Ci0jZW5kaWYgLy8gSEFWRShDRUxFU1RJQUwp
CisjZW5kaWYKKwogQGVuZAogCiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oCmluZGV4IGM5ZmFj
N2Q5NjUzZmQwYTNiMzlkMjM2ZGM1YjliODA3MzE3NGMzZDEuLjhmOTBmYjc5MjYwOWY5MjA1ZDQy
NjU4NWJmMzJkZDk1NDU4YWY0ZjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaApAQCAtNTMsNyArNTMs
NiBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNXaXJlbGVzc1RhcmdldHNBdmFpbGFibGUoKSBvdmVy
cmlkZTsKICAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgdm9pZCBwcm92aWRlUHJlc2VudGluZ0Fw
cGxpY2F0aW9uUElEKCk7CiAKLSAgICB1c2luZyBXZWFrVmFsdWVUeXBlID0gTWVkaWFTZXNzaW9u
SGVscGVyQ2xpZW50OjpXZWFrVmFsdWVUeXBlOwogICAgIHVzaW5nIE1lZGlhU2Vzc2lvbkhlbHBl
ckNsaWVudDo6d2Vha1B0ckZhY3Rvcnk7CiAKIHByaXZhdGU6CkBAIC02MSwxMCArNjAsMTEgQEAg
cHJpdmF0ZToKIAogICAgIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1MoKTsKIAotICAgIHZvaWQgcmVz
ZXRSZXN0cmljdGlvbnMoKSBvdmVycmlkZTsKKyAgICB2b2lkIHJlc2V0UmVzdHJpY3Rpb25zKCkg
ZmluYWw7CiAKLSAgICB2b2lkIGNvbmZpZ3VyZVdpcmVMZXNzVGFyZ2V0TW9uaXRvcmluZygpIG92
ZXJyaWRlOworICAgIHZvaWQgY29uZmlndXJlV2lyZUxlc3NUYXJnZXRNb25pdG9yaW5nKCkgZmlu
YWw7CiAgICAgdm9pZCBwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElESWZOZWNlc3Nhcnko
KSBmaW5hbDsKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlh
U2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5YmFjayhQbGF0Zm9y
bU1lZGlhU2Vzc2lvbiYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpIGZpbmFsOwogCiAg
ICAgLy8gQXVkaW9TZXNzaW9uOjpJbnRlcnJ1cHRpb25PYnNlcnZlcgpAQCAtODQsNiArODQsMTEg
QEAgcHJpdmF0ZToKICAgICBjb25zdCBjaGFyKiBsb2dDbGFzc05hbWUoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAiTWVkaWFTZXNzaW9uTWFuYWdlcmlPUyI7IH0KICNlbmRpZgogCisjaWYgIVBMQVRG
T1JNKFdBVENIT1MpCisgICAgUmVmUHRyPE1lZGlhUGxheWJhY2tUYXJnZXQ+IG1fcGxheWJhY2tU
YXJnZXQ7CisgICAgYm9vbCBtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5VmlkZW8geyBm
YWxzZSB9OworI2VuZGlmCisKICAgICBib29sIG1faXNNb25pdG9yaW5nV2lyZWxlc3NSb3V0ZXMg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9oYXZlUHJlc2VudGVkQXBwbGljYXRpb25QSUQgeyBmYWxz
ZSB9OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9N
ZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KaW5kZXggNmMxNjE4M2JhMzdjMzRhODgwZjcx
ZDExOWViMDhmNTVlNWM2MjU5OS4uYjFkMjg0ZDFmNWJkZTAzYTEwYzBlY2NlMDg5MWNkN2VmOWYw
NDBiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8v
aW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0KQEAgLTEyMCw2ICsxMjAsMjYgQEAgdm9pZCBN
ZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpwcm92aWRlUHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkK
ICAgICBNZWRpYVNlc3Npb25IZWxwZXI6OnNoYXJlZEhlbHBlcigpLnByb3ZpZGVQcmVzZW50aW5n
QXBwbGljYXRpb25QSUQocHJlc2VudGluZ0FwcGxpY2F0aW9uUElEKCkpOwogfQogCitib29sIE1l
ZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1l
ZGlhU2Vzc2lvbiYgc2Vzc2lvbikKK3sKKyAgICBpZiAoIVBsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlcjo6c2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKHNlc3Npb24pKQorICAgICAgICByZXR1cm4g
ZmFsc2U7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlM
WV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENI
T1MpCisgICAgaWYgKCFtX3BsYXliYWNrVGFyZ2V0KSB7CisgICAgICAgIG1fcGxheWJhY2tUYXJn
ZXQgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNyZWF0ZSgpOworICAgICAgICBtX3BsYXli
YWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5VmlkZW8gPSBtX3BsYXliYWNrVGFyZ2V0LT5zdXBwb3J0
c0FpclBsYXlWaWRlbygpOworICAgIH0KKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwg
bV9wbGF5YmFja1RhcmdldFN1cHBvcnRzQWlyUGxheVZpZGVvKTsKKyAgICBpZiAobV9wbGF5YmFj
a1RhcmdldFN1cHBvcnRzQWlyUGxheVZpZGVvKQorICAgICAgICBzZXNzaW9uLnNldFBsYXliYWNr
VGFyZ2V0KCptX3BsYXliYWNrVGFyZ2V0LmNvcHlSZWYoKSk7CisgICAgc2Vzc2lvbi5zZXRTaG91
bGRQbGF5VG9QbGF5YmFja1RhcmdldChtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5Vmlk
ZW8pOworI2VuZGlmCisKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBNZWRpYVNlc3Npb25N
YW5hZ2VyaU9TOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBz
ZXNzaW9uLCBEZWxheUNhbGxpbmdVcGRhdGVOb3dQbGF5aW5nIGRlbGF5Q2FsbGluZ1VwZGF0ZU5v
d1BsYXlpbmcpCiB7CiAgICAgTWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEVu
ZFBsYXliYWNrKHNlc3Npb24sIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpOwpAQCAtMTYw
LDYgKzE4MCwxMiBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OmFjdGl2ZUF1ZGlvUm91
dGVEaWRDaGFuZ2UoU2hvdWxkUGF1c2Ugc2hvdWxkUGF1c2UpCiB2b2lkIE1lZGlhU2Vzc2lvbk1h
bmFnZXJpT1M6OmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoU3VwcG9ydHNBaXJQbGF5VmlkZW8g
c3VwcG9ydHNBaXJQbGF5VmlkZW8sIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYmIHBsYXliYWNr
VGFyZ2V0KQogewogICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgc3VwcG9ydHNBaXJQbGF5
VmlkZW8pOworCisjaWYgIVBMQVRGT1JNKFdBVENIT1MpCisgICAgbV9wbGF5YmFja1RhcmdldCA9
IHBsYXliYWNrVGFyZ2V0LnB0cigpOworICAgIG1fcGxheWJhY2tUYXJnZXRTdXBwb3J0c0FpclBs
YXlWaWRlbyA9IHN1cHBvcnRzQWlyUGxheVZpZGVvID09IFN1cHBvcnRzQWlyUGxheVZpZGVvOjpZ
ZXM7CisjZW5kaWYKKwogICAgIGF1dG8gbm93UGxheWluZ1Nlc3Npb24gPSBub3dQbGF5aW5nRWxp
Z2libGVTZXNzaW9uKCk7CiAgICAgaWYgKCFub3dQbGF5aW5nU2Vzc2lvbikKICAgICAgICAgcmV0
dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5YmFja1RhcmdldC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQ
bGF5YmFja1RhcmdldC5oCmluZGV4IDM2YjcyOTQ0ZDcxNjNkMjAxYTVmNmVmM2Y2MzI3MjFjNjNi
NzY2MTQuLmViOWM3Yjg1M2U3NDk2NDk5MWY3ZDU5ZGJiNWMwOWQzYzVhYjMxMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFy
Z2V0LmgKQEAgLTQ0LDYgKzQ0LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgY29uc3QgTWVkaWFQ
bGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25zdCA9IDA7CiAgICAgdmly
dHVhbCBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5n
IGRldmljZU5hbWUoKSBjb25zdCA9IDA7CisgICAgdmlydHVhbCBib29sIHN1cHBvcnRzQWlyUGxh
eVZpZGVvKCkgY29uc3QgPSAwOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxh
eWJhY2tUYXJnZXRDb2NvYS5oCmluZGV4IGEyNzVlMjA4NmI0OTM4NzQ1OGQxZmJjN2I1ZTg3MjIw
YmQyYjM5MDEuLjJmYjdmMzE3ODBjM2FhNTNjYTM4ZWYyZjQ2ZjU1YzgzMzkxYjg5NGEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXliYWNrVGFyZ2V0Q29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgKQEAgLTM3LDE0ICsz
NywxOCBAQCBjbGFzcyBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EgOiBwdWJsaWMgTWVkaWFQbGF5
YmFja1RhcmdldCB7CiBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxNZWRp
YVBsYXliYWNrVGFyZ2V0PiBjcmVhdGUoQVZPdXRwdXRDb250ZXh0ICopOwogCi0gICAgdmlydHVh
bCB+TWVkaWFQbGF5YmFja1RhcmdldENvY29hKCk7CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpCisgICAgc3RhdGljIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBjcmVhdGUoKTsKKyNlbmRp
ZgogCi0gICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1cm4g
QVZGb3VuZGF0aW9uOyB9CisgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldENvY29hKCk7
CiAKLSAgICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29udGV4dCgp
IGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaGFzQWN0aXZlUm91dGUoKSBjb25zdCBvdmVycmlk
ZTsKKyAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBBVkZv
dW5kYXRpb247IH0KIAotICAgIFN0cmluZyBkZXZpY2VOYW1lKCkgY29uc3Qgb3ZlcnJpZGU7Cisg
ICAgY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25z
dCBmaW5hbDsKKyAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3QgZmluYWw7CisgICAgU3Ry
aW5nIGRldmljZU5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICBib29sIHN1cHBvcnRzQWlyUGxheVZp
ZGVvKCkgY29uc3QgZmluYWw7CiAKICAgICBBVk91dHB1dENvbnRleHQgKm91dHB1dENvbnRleHQo
KSBjb25zdCB7IHJldHVybiBtX291dHB1dENvbnRleHQuZ2V0KCk7IH0KIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJh
Y2tUYXJnZXRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KaW5kZXggZjNlN2NjN2E3NWJiZWNi
ZGJmYjQ2YmM1OWU0MGRhOGUxNWRiZWYxMi4uOThkYThkMjE5ODlhNGI3MDIxYTA2NjNkMWE1NzAx
MTI2ZDM2MDYxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
YXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENv
Y29hLm1tCkBAIC0zMCw3ICszMCw2IEBACiAKICNpbXBvcnQgPG9iamMvcnVudGltZS5oPgogI2lt
cG9ydCA8cGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaD4KLQogI2ltcG9ydCA8cGFsL2Nv
Y29hL0FWRm91bmRhdGlvblNvZnRMaW5rLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKQEAgLTQ2
LDYgKzQ1LDM2IEBAIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6TWVkaWFQbGF5YmFja1Rhcmdl
dENvY29hKEFWT3V0cHV0Q29udGV4dCAqY29udGV4dCkKIHsKIH0KIAorI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKQorUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IE1lZGlhUGxheWJhY2tUYXJn
ZXRDb2NvYTo6Y3JlYXRlKCkKK3sKKyAgICBhdXRvICpyb3V0aW5nQ29udGV4dFVJRCA9IFtbUEFM
OjpnZXRBVkF1ZGlvU2Vzc2lvbkNsYXNzKCkgc2hhcmVkSW5zdGFuY2VdIHJvdXRpbmdDb250ZXh0
VUlEXTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2Eo
W1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBvdXRwdXRDb250ZXh0Rm9ySUQ6cm91dGlu
Z0NvbnRleHRVSURdKSk7Cit9CisjZW5kaWYKKworYm9vbCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29j
b2E6OnN1cHBvcnRzQWlyUGxheVZpZGVvKCkgY29uc3QKK3sKKyAgICBpZiAoIW1fb3V0cHV0Q29u
dGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKCFbbV9vdXRwdXRDb250ZXh0
IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmlj
ZXMpXSB8fCAhW21fb3V0cHV0Q29udGV4dCBzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10g
fHwgIVttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXRE
ZXZpY2VzKV0pIHsKKyAgICAgICAgaWYgKGF1dG8gKm91dHB1dERldmljZSA9IFttX291dHB1dENv
bnRleHQgb3V0cHV0RGV2aWNlXSkgeworICAgICAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZp
Y2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvKQorICAgICAgICAgICAgICAg
IHJldHVybiB0cnVlOworICAgICAgICB9CisKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0K
KworICAgIGZvciAoQVZPdXRwdXREZXZpY2UgKm91dHB1dERldmljZSBpbiBbbV9vdXRwdXRDb250
ZXh0IG91dHB1dERldmljZXNdKSB7CisgICAgICAgIGlmIChvdXRwdXREZXZpY2UuZGV2aWNlRmVh
dHVyZXMgJiBBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbykKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgIH0KKworICAgIHJldHVybiBmYWxzZTsKK30KKwogTWVkaWFQbGF5YmFja1Rhcmdl
dENvY29hOjp+TWVkaWFQbGF5YmFja1RhcmdldENvY29hKCkKIHsKIH0KQEAgLTU4LDcgKzg3LDI0
IEBAIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0JiBNZWRpYVBsYXliYWNrVGFyZ2V0
Q29jb2E6OnRhcmdldENvbnRleHQoKSBjb25zCiAKIGJvb2wgTWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpoYXNBY3RpdmVSb3V0ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fb3V0cHV0Q29udGV4
dCAmJiBtX291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFtZTsKKyAgICBpZiAoIW1fb3V0cHV0
Q29udGV4dCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgaWYgKFttX291dHB1dENvbnRl
eHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2
aWNlcyldICYmIFttX291dHB1dENvbnRleHQgc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXNd
ICYmIFttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXRE
ZXZpY2VzKV0pIHsKKyAgICAgICAgZm9yIChBVk91dHB1dERldmljZSAqb3V0cHV0RGV2aWNlIGlu
IFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlc10pIHsKKyAgICAgICAgICAgIGlmIChvdXRw
dXREZXZpY2UuZGV2aWNlRmVhdHVyZXMgJiAoQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8gfCBB
Vk91dHB1dERldmljZUZlYXR1cmVBdWRpbykpCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgaWYgKFtt
X291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihvdXRwdXREZXZpY2Up
XSkgeworICAgICAgICBpZiAoYXV0byAqb3V0cHV0RGV2aWNlID0gW21fb3V0cHV0Q29udGV4dCBv
dXRwdXREZXZpY2VdKQorICAgICAgICAgICAgcmV0dXJuIG91dHB1dERldmljZS5kZXZpY2VGZWF0
dXJlcyAmIChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8IEFWT3V0cHV0RGV2aWNlRmVhdHVy
ZUF1ZGlvKTsKKyAgICB9CisKKyAgICByZXR1cm4gbV9vdXRwdXRDb250ZXh0LmdldCgpLmRldmlj
ZU5hbWU7CiB9CiAKIFN0cmluZyBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmRldmljZU5hbWUo
KSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZm
b3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCmluZGV4IDM2YjNjYjJjNGQ3ZGUyZjEz
NGQ2Y2VkNGM1NjkzMWMyYTFmZGQyMTQuLjk4ZjA0YjdjZjg1YTgwMmFmMmE2OWU0OThkZDVkM2Ni
MjkzNDUzM2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2
Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9N
ZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KQEAgLTEyMjEsNiArMTIyMSw3
IEBAIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRUZXh0VHJh
Y2tSZXByZXNlbnRhdGlvbihUZXh0VHJhY2tSCiAjaWYgRU5BQkxFKFdJUkVMRVNTX1BMQVlCQUNL
X1RBUkdFVCkKIHZvaWQgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRX
aXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYmIHRhcmdldCkK
IHsKKyAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIpOwogICAgIG1fcGxheWJhY2tUYXJnZXQg
PSBXVEZNb3ZlKHRhcmdldCk7CiB9CiAKQEAgLTEyMzMsNyArMTIzNCw3IEBAIHZvaWQgTWVkaWFQ
bGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldChib29sIHNoCiAgICAgbV9zaG91bGRQbGF5VG9UYXJnZXQgPSBzaG91bGRQbGF5VG9UYXJn
ZXQ7CiAKICAgICBpZiAobV9wbGF5ZXIpCi0gICAgICAgIG1fcGxheWVyLT5jdXJyZW50UGxheWJh
Y2tUYXJnZXRJc1dpcmVsZXNzQ2hhbmdlZChtX3BsYXllci0+aXNDdXJyZW50UGxheWJhY2tUYXJn
ZXRXaXJlbGVzcygpKTsKKyAgICAgICAgbV9wbGF5ZXItPmN1cnJlbnRQbGF5YmFja1RhcmdldElz
V2lyZWxlc3NDaGFuZ2VkKGlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSk7CiB9CiAK
IGJvb2wgTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDOjppc0N1cnJlbnRQbGF5
YmFja1RhcmdldFdpcmVsZXNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaAppbmRleCA4MTU1NTdhZDZhMzAy
MGE2MjhhNWIzYTExZGJiYjVlNmQyODUwNTgwLi4wNWZlZDU0N2Q1ZGYyNWUwZDA3YWQ1NjRmYmNm
ZTdkYzBlYWQwNzE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01l
ZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oCkBAIC00MCwxMyArNDAsMTQgQEAgcHVibGljOgog
CiAgICAgdmlydHVhbCB+TWVkaWFQbGF5YmFja1RhcmdldE1vY2soKTsKIAotICAgIFRhcmdldFR5
cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIE1vY2s7IH0KKyAgICBUYXJn
ZXRUeXBlIHRhcmdldFR5cGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiBNb2NrOyB9CiAKLSAgICBj
b25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29udGV4dCgpIGNvbnN0IG92
ZXJyaWRlOworICAgIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0JiB0YXJnZXRDb250
ZXh0KCkgY29uc3QgZmluYWw7CiAKLSAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3Qgb3Zl
cnJpZGUgeyByZXR1cm4gIW1fbmFtZS5pc0VtcHR5KCk7IH0KKyAgICBib29sIGhhc0FjdGl2ZVJv
dXRlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fbmFtZS5pc0VtcHR5KCk7IH0KKyAgICBib29s
IHN1cHBvcnRzQWlyUGxheVZpZGVvKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fbmFtZS5pc0Vt
cHR5KCk7IH0KIAotICAgIFN0cmluZyBkZXZpY2VOYW1lKCkgY29uc3Qgb3ZlcnJpZGUgeyByZXR1
cm4gbV9uYW1lOyB9CisgICAgU3RyaW5nIGRldmljZU5hbWUoKSBjb25zdCBmaW5hbCB7IHJldHVy
biBtX25hbWU7IH0KIAogICAgIE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0OjpTdGF0ZSBzdGF0
ZSgpIGNvbnN0OwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395055</attachid>
            <date>2020-03-31 09:55:39 -0700</date>
            <delta_ts>2020-03-31 10:35:48 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209789-20200331095538.patch</filename>
            <type>text/plain</type>
            <size>31104</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwOTdkNDViYjhkYzQ0
ZDAwNjIxMThiOGQyMDYxMjJlOTY2OGE3Yy4uZDMyOTlkY2RhNGVmMjg5OWQ0NzNiNmI4NTAwYTdj
ODY0M2EwZmY1MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBVc2Ug
QVZBdWRpb1Nlc3Npb24gdG8gZGV0ZWN0IEFpclBsYXkgcm91dGUgY2hhbmdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Nzg5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81ODA2NTI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBObyBuZXcgdGVzdHM6IGNoYW5nZXMgb25seSBhZmZlY3QgcGxheWJh
Y2sgb24gZGV2aWNlIHRvIGFuIGFjdHVhbCBBaXJQbGF5IGRldmljZSwgd2hpY2gKKyAgICAgICAg
aXMgbm90IHRlc3RhYmxlIG9uIG91ciBjdXJyZW50IHRlc3RpbmcgaW5mcmFzdHJ1Y3R1cmUuCisK
KyAgICAgICAgKiBodG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTE1lZGlhRWxlbWVudDo6Y2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFibGl0eSk6IERyaXZl
LWJ5IGZpeDogcGFzcyBsb2cgaWRlbnRpZmllcgorICAgICAgICBpbnRvIGxhbWJkYSBzbyB0aGUg
bWV0aG9kIG5hbWUgaXMgbG9nZ2VkLgorICAgICAgICAoV2ViQ29yZTo6SFRNTE1lZGlhRWxlbWVu
dDo6c2V0SXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk6IERpdHRvLiAKKyAgICAgICAgKFdlYkNv
cmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQpOiBVcGRhdGUg
bG9nZ2luZy4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3VsZFBs
YXlUb1BsYXliYWNrVGFyZ2V0KTogQ2FsbCBzZXRJc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0Cisg
ICAgICAgIHNvIHdlIGtpY2sgb2ZmIGEgbWVkaWEgcGxheWVyIGNvbXBhdGliaWxpdHkgY2hlY2su
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aDogUmVtb3ZlIHVudXNlZCBpbnN0YW5jZSB2YXJpYWJsZXMuCisgICAgICAgICogcGxhdGZvcm0v
YXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbToKKyAgICAgICAgKE1lZGlhU2Vzc2lv
bkhlbHBlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZSk6IENoYW5nZSBwYXJhbWV0ZXIg
dG8gYm9vbCBhcyBpdCBpcyBhbHdheXMKKyAgICAgICAgcHJlc2VudC4KKyAgICAgICAgKE1lZGlh
U2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSk6IFJlbW92ZSBwYXJh
bWV0ZXJzLCB1c2UgdGhlIG5ldworICAgICAgICBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EgY3Jl
YXRlIG1ldGhvZCBhbmQgYXNrIGl0IGlmIHRoZSB0YXJnZXQgc3VwcG9ydHMgQWlyUGxheS4KKyAg
ICAgICAgKC1bV2ViTWVkaWFTZXNzaW9uSGVscGVyIGluaXRXaXRoQ2FsbGJhY2s6XSk6IExpc3Rl
biBmb3IgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbi4KKyAgICAgICAgKC1b
V2ViTWVkaWFTZXNzaW9uSGVscGVyIGFjdGl2ZU91dHB1dERldmljZURpZENoYW5nZTpdKTogVXBk
YXRlIGZvciBuZXcgbm90aWZpY2F0aW9uIHNvdXJjZS4KKyAgICAgICAgKC1bV2ViTWVkaWFTZXNz
aW9uSGVscGVyIGFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2U6XSk6IERlbGV0ZWQuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tOgorICAgICAg
ICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldpbGxCZWdpblBsYXli
YWNrKTogU2V0IHBsYXliYWNrIHRhcmdldCBvbiBzZXNzaW9uCisgICAgICAgIHRoYXQgaXMgYWJv
dXQgdG8gYmVnaW4gcGxheWJhY2suCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVNlc3Npb25NYW5h
Z2VyaU9TOjphY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKTogU2F2ZSB0aGUgdGFyZ2V0IGFuZCBz
dGF0ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFj
a1RhcmdldENvY29hLmg6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxh
eWJhY2tUYXJnZXRDb2NvYTo6Y3JlYXRlKTogQ3JlYXRlIGEgdGFyZ2V0IGZyb20gdGhlIGFwcGxp
Y2F0aW9uJ3MgY3VycmVudGx5CisgICAgICAgIGFjdGl2ZSBBVk91dHB1dENvbnRleHQuCisgICAg
ICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OnN1cHBvcnRzQWlyUGxheVZp
ZGVvIGNvbnN0KTogTmV3LgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENv
Y29hOjpoYXNBY3RpdmVSb3V0ZSBjb25zdCk6IFVzZSBuZXcgQVBJIGlmIGF2YWlsYWJsZSBpbnN0
ZWFkCisgICAgICAgIG9mIGp1c3QgY2hlY2tpbmcgZm9yIHRoZSBBVk91dHB1dENvbnRleHQgbmFt
ZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbToKKyAgICAgICAgKFdlYkNvcmU6Ok1l
ZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQzo6c2V0V2lyZWxlc3NQbGF5YmFja1Rh
cmdldCk6IExvZy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291
cmNlQVZGT2JqQzo6c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQpOiAKKyAgICAgICAgKiBw
bGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmg6CisKIDIwMjAtMDMtMjMgIFNp
bW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgU2FmYXJpIGpl
dHNhbXMgd2l0aCByZXBlYXRlZCBkcmF3SW1hZ2UvZ2V0SW1hZ2VEYXRhCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwppbmRleCBiNjFhOGJmMGZlZjc2OWZkNDE2MGJlNjgxMGY1OTlkZjc0OGFmYTkzLi5hMjE4Mzdl
ZGE2NzBmY2RhMzM2YTBkYTI3M2E4MmQyZjU1ODNlZWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwxNSBAQAorMjAyMC0wMy0zMCAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KKworICAgICAgICBbaVBhZF0gVXNlIEFWQXVkaW9TZXNzaW9uIHRvIGRldGVjdCBB
aXJQbGF5IHJvdXRlIGNoYW5nZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIwOTc4OQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTgwNjUyNzk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvY29j
b2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaDoKKyAgICAgICAgKiBwYWwvY29jb2EvQVZGb3VuZGF0
aW9uU29mdExpbmsubW06CisgICAgICAgICogcGFsL3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEku
aDoKKwogMjAyMC0wMy0yMCAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4K
IAogICAgICAgICBVcHN0cmVhbSBhIHZhcmlldHkgb2YgQ29jb2EtcGxhdGZvcm0gSEFWRSBhbmQg
RU5BQkxFIG1hY3JvcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9B
VkZvdW5kYXRpb25Tb2Z0TGluay5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZv
dW5kYXRpb25Tb2Z0TGluay5oCmluZGV4IGIxYjU0ODQ0YjJmYTRlZjBlZDI2NTA3NDYyYTMxZDgy
NjhhNWIzZTYuLjQ1NmJkM2VjYmYzZTI4Y2FhM2VlMWE1Mjk2MzM0NWRkY2MxYzU0MGIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
LmgKQEAgLTI5MSw2ICsyOTEsMTAgQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9IRUFERVIoUEFM
LCBBVkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3Rvck11bHRpcGxlUm91dGVzRGUKICNkZWZpbmUg
QVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRlY3RlZERpZENoYW5nZU5vdGlmaWNhdGlv
biBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZXRl
Y3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbigpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURF
UihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25NZWRpYVNlcnZpY2VzV2VyZVJlc2V0
Tm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogI2RlZmluZSBBVkF1ZGlvU2Vzc2lvbk1lZGlhU2Vy
dmljZXNXZXJlUmVzZXROb3RpZmljYXRpb24gUEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9T
ZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVSZXNldE5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09O
U1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNo
YW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKKyNkZWZpbmUgQVZBdWRpb1Nlc3Npb25Sb3V0
ZUNoYW5nZU5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25S
b3V0ZUNoYW5nZU5vdGlmaWNhdGlvbigpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQ
QUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSwgTlNT
dHJpbmcgKikKKyNkZWZpbmUgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSBQQUw6
OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSgpCiAj
ZW5kaWYgLy8gIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNlbmRpZiAvLyBVU0UoQVZGT1VOREFU
SU9OKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRp
b25Tb2Z0TGluay5tbSBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9u
U29mdExpbmsubW0KaW5kZXggYWIwYmE4MGE5YWUwYzFlYmQ0OGNlOGIwOTZhYTM4ZDY4Yjg2MmUx
NS4uZmUxMDk2ZmY4MTkwMGNhOGQ4Y2MzMTBiMmQwNDAyM2NiOWRkZjViMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5tbQorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCkBA
IC0yMTMsNiArMjEzLDggQEAgU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25XYXMKIFNPRlRfTElOS19DT05T
VEFOVF9GT1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVlJvdXRlRGV0
ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmlu
ZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0VfV0lUSF9FWFBP
UlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRCb3VuZE5ldHdvcmtJbnRlcmZhY2VOYW1l
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9TT1VSQ0Vf
V0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWVVJMQXNzZXRDbGllbnRCdW5kbGVJZGVu
dGlmaWVyS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQorU09GVF9MSU5LX0NPTlNUQU5UX0ZP
Ul9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWQXVkaW9TZXNzaW9uUm91
dGVDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktf
Q09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRp
b1Nlc3Npb25Sb3V0ZUNoYW5nZVJlYXNvbktleSwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKIAog
U09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBB
VkZvdW5kYXRpb24sIEFWVVJMQXNzZXRIVFRQQ29va2llc0tleSwgTlNTdHJpbmcgKiwgUEFMX0VY
UE9SVCkKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTF9GT1JfU09VUkNFX1dJVEhfRVhQT1JU
KFBBTCwgQVZGb3VuZGF0aW9uLCBBVlVSTEFzc2V0UmVxdWlyZXNDdXN0b21VUkxMb2FkaW5nS2V5
LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFs
L3NwaS9jb2NvYS9BVkZvdW5kYXRpb25TUEkuaAppbmRleCA1ZjE1ZjA1MTNmNjU2ODhjMmZkMDkx
YTk0YjY2NDUwYmQ3M2JhNzI5Li45ZTQ4MmJiZDAwYmNkMTRhYzdiMzcwNTU0MjU2MDY0OGJlZGU3
ZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9BVkZvdW5k
YXRpb25TUEkuaApAQCAtNzcsMTIgKzc3LDIxIEBAIE5TX0FTU1VNRV9OT05OVUxMX0JFR0lOCiBA
cHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIE5TU3RyaW5nICpkZXZpY2VOYW1lOwogKyAo
aW5zdGFuY2V0eXBlKW91dHB1dENvbnRleHQ7CiArIChudWxsYWJsZSBBVk91dHB1dENvbnRleHQg
KilzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91dHB1dENvbnRleHQ7CisrIChudWxsYWJsZSBBVk91
dHB1dENvbnRleHQgKilvdXRwdXRDb250ZXh0Rm9ySUQ6KE5TU3RyaW5nICopSUQ7CiBAcHJvcGVy
dHkgKHJlYWRvbmx5KSBCT09MIHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzOwogQHByb3Bl
cnR5IChyZWFkb25seSkgTlNBcnJheTxBVk91dHB1dERldmljZSAqPiAqb3V0cHV0RGV2aWNlczsK
K0Bwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25seSwgbnVsbGFibGUpIEFWT3V0cHV0RGV2aWNl
ICpvdXRwdXREZXZpY2U7CiBAZW5kCiAKK3R5cGVkZWYgTlNfT1BUSU9OUyhOU1VJbnRlZ2VyLCBB
Vk91dHB1dERldmljZUZlYXR1cmVzKSB7CisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8g
PSAoMVVMIDw8IDApLAorICAgIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVNjcmVlbiA9ICgxVUwgPDwg
MSksCisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8gPSAoMVVMIDw8IDIpLAorfTsKKwog
QGludGVyZmFjZSBBVk91dHB1dERldmljZSA6IE5TT2JqZWN0CiBAcHJvcGVydHkgKG5vbmF0b21p
YywgcmVhZG9ubHkpIE5TU3RyaW5nICpuYW1lOworQHByb3BlcnR5IChub25hdG9taWMsIHJlYWRv
bmx5KSBBVk91dHB1dERldmljZUZlYXR1cmVzIGRldmljZUZlYXR1cmVzOwogQGVuZAogCiAjaWYg
IVBMQVRGT1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxNZWRpYUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVkaWFFbGVtZW50
LmNwcAppbmRleCBiZGY0NTlhZTYzNmQyZjEzYjkwNDJlYjM4NDgxZjc4OTBlOGMzN2Q0Li43MzI3
NWQxMTc5MmQ1Y2M4NmViMWY2NWQ1MGRiYjIzMmNkODM3YTMzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKQEAgLTEwNTAsMTEgKzEwNTAsOCBAQCB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OnNjaGVkdWxlQ2hlY2tQbGF5YmFja1RhcmdldENvbXBhdGFiaWxpdHkoKQog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpjaGVja1BsYXliYWNrVGFyZ2V0Q29tcGF0YWJsaXR5KCkK
IHsKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQotICAgIGF1dG8gbG9nU2l0
ZUlkZW50aWZpZXIgPSBMT0dJREVOVElGSUVSOwotICAgIEFMV0FZU19MT0cobG9nU2l0ZUlkZW50
aWZpZXIsICJ0YXNrIHNjaGVkdWxlZCIpOwogICAgIGlmIChtX2lzUGxheWluZ1RvV2lyZWxlc3NU
YXJnZXQgJiYgIW1fcGxheWVyLT5jYW5QbGF5VG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0KCkpIHsK
LSAgICAgICAgVU5VU0VEX1BBUkFNKGxvZ1NpdGVJZGVudGlmaWVyKTsKLSAgICAgICAgSU5GT19M
T0cobG9nU2l0ZUlkZW50aWZpZXIsICJjYWxsaW5nIHNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFy
Z2V0KGZhbHNlKSIpOworICAgICAgICBJTkZPX0xPRyhMT0dJREVOVElGSUVSLCAiY2FsbGluZyBz
ZXRTaG91bGRQbGF5VG9QbGF5YmFja1RhcmdldChmYWxzZSkiKTsKICAgICAgICAgbV9mYWlsZWRU
b1BsYXlUb1dpcmVsZXNzVGFyZ2V0ID0gdHJ1ZTsKICAgICAgICAgbV9wbGF5ZXItPnNldFNob3Vs
ZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGZhbHNlKTsKICAgICB9CkBAIC01ODUwLDEyICs1ODQ3LDE4
IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6bWVkaWFQbGF5ZXJDdXJyZW50UGxheWJhY2tUYXJn
ZXRJc1dpcmVsZXNzQ2hhbmdlZChib29sIGlzCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0
SXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldChib29sIGlzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQp
CiB7Ci0gICAgbV9wbGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZS5lbnF1ZXVlVGFzayhbdGhp
cywgaXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldF0geworICAgIGF1dG8gbG9nU2l0ZUlkZW50aWZp
ZXIgPSBMT0dJREVOVElGSUVSOworICAgIEFMV0FZU19MT0cobG9nU2l0ZUlkZW50aWZpZXIsIGlz
UGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOworICAgIG1fcGxheWJhY2tUYXJnZXRJc1dpcmVsZXNz
UXVldWUuZW5xdWV1ZVRhc2soW3RoaXMsIGlzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQsIGxvZ1Np
dGVJZGVudGlmaWVyXSB7CisgICAgICAgIFVOVVNFRF9QQVJBTShsb2dTaXRlSWRlbnRpZmllcik7
CisgICAgICAgIEFMV0FZU19MT0cobG9nU2l0ZUlkZW50aWZpZXIsICJsYW1iZGEoKSwgdGFzayBm
aXJlZCIpOworCiAgICAgICAgIGlmIChpc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0ID09IG1faXNQ
bGF5aW5nVG9XaXJlbGVzc1RhcmdldCkKICAgICAgICAgICAgIHJldHVybjsKKwogICAgICAgICBt
X2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQgPSBtX3BsYXllciAmJiBtX3BsYXllci0+aXNDdXJy
ZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpOwogICAgICAgICBtX3JlbW90ZS0+aXNQbGF5aW5n
VG9SZW1vdGVUYXJnZXRDaGFuZ2VkKG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCk7Ci0gICAg
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0
KTsKKyAgICAgICAgQUxXQVlTX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgbV9pc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0KTsKICAgICAgICAgY29uZmlndXJlTWVkaWFDb250cm9scygpOwogICAgICAg
ICBtX21lZGlhU2Vzc2lvbi0+aXNQbGF5aW5nVG9XaXJlbGVzc1BsYXliYWNrVGFyZ2V0Q2hhbmdl
ZChtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOwogICAgICAgICBtX21lZGlhU2Vzc2lvbi0+
Y2FuUHJvZHVjZUF1ZGlvQ2hhbmdlZCgpOwpAQCAtNTk0MSwxMSArNTk0NCwxMSBAQCB2b2lkIEhU
TUxNZWRpYUVsZW1lbnQ6OmVucXVldWVQbGF5YmFja1RhcmdldEF2YWlsYWJpbGl0eUNoYW5nZWRF
dmVudCgpCiAKIHZvaWQgSFRNTE1lZGlhRWxlbWVudDo6c2V0V2lyZWxlc3NQbGF5YmFja1Rhcmdl
dChSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4mJiBkZXZpY2UpCiB7Ci0gICAgQUxXQVlTX0xPRyhM
T0dJREVOVElGSUVSKTsKICAgICBib29sIGhhc0FjdGl2ZVJvdXRlID0gZGV2aWNlLT5oYXNBY3Rp
dmVSb3V0ZSgpOworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgaGFzQWN0aXZlUm91dGUp
OworCiAgICAgaWYgKG1fcGxheWVyKQogICAgICAgICBtX3BsYXllci0+c2V0V2lyZWxlc3NQbGF5
YmFja1RhcmdldChXVEZNb3ZlKGRldmljZSkpOwotCiAgICAgbV9yZW1vdGUtPnNob3VsZFBsYXlU
b1JlbW90ZVRhcmdldENoYW5nZWQoaGFzQWN0aXZlUm91dGUpOwogfQogCkBAIC01OTUzLDggKzU5
NTYsMTAgQEAgdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldChib29sIHNob3VsZFBsYXkpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBz
aG91bGRQbGF5KTsKIAotICAgIGlmIChtX3BsYXllcikKKyAgICBpZiAobV9wbGF5ZXIpIHsKICAg
ICAgICAgbV9wbGF5ZXItPnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KHNob3VsZFBsYXkp
OworICAgICAgICBzZXRJc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KG1fcGxheWVyLT5pc0N1cnJl
bnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkpOworICAgIH0KIH0KIAogdm9pZCBIVE1MTWVkaWFF
bGVtZW50OjpwbGF5YmFja1RhcmdldFBpY2tlcldhc0Rpc21pc3NlZCgpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9QbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oCmluZGV4IDQ3ZDhhZWE5Y2NiOTYyN2VkYjk2ZTJkODc4MmIxMjhiMTA3YTUxMTYuLjI2
MmQ5YmFiOWFlYmU4NmM5NGEyNjkzMzg4OTRlOGVkZjZmZjM0N2UgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFu
YWdlci5oCkBAIC0xODEsMTEgKzE4MSw2IEBAIHByaXZhdGU6CiAgICAgU2Vzc2lvblJlc3RyaWN0
aW9ucyBtX3Jlc3RyaWN0aW9uc1tzdGF0aWNfY2FzdDx1bnNpZ25lZD4oUGxhdGZvcm1NZWRpYVNl
c3Npb246Ok1lZGlhVHlwZTo6V2ViQXVkaW8pICsgMV07CiAgICAgbXV0YWJsZSBWZWN0b3I8V2Vh
a1B0cjxQbGF0Zm9ybU1lZGlhU2Vzc2lvbj4+IG1fc2Vzc2lvbnM7CiAKLSNpZiBFTkFCTEUoV0lS
RUxFU1NfUExBWUJBQ0tfVEFSR0VUKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKLSAgICBSZWZQ
dHI8TWVkaWFQbGF5YmFja1RhcmdldD4gbV9wbGF5YmFja1RhcmdldDsKLSAgICBib29sIG1fY2Fu
UGxheVRvVGFyZ2V0IHsgZmFsc2UgfTsKLSNlbmRpZgotCiAgICAgYm9vbCBtX2ludGVycnVwdGVk
IHsgZmFsc2UgfTsKICAgICBtdXRhYmxlIGJvb2wgbV9pc0FwcGxpY2F0aW9uSW5CYWNrZ3JvdW5k
IHsgZmFsc2UgfTsKICAgICBib29sIG1fd2lsbElnbm9yZVN5c3RlbUludGVycnVwdGlvbnMgeyBm
YWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vY29jb2Ev
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRp
by9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaAppbmRleCAxYWQ2NmE4MmMzOGEzZWEx
ODY1Njk1ZjBlZTY5YjYyODczMTk3ODM4Li41ZDZiMTNhOGEwOTgxZDNhZGY1ODgxYjM4MDQ1ZWNl
MjRiOGRjY2JiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2Nv
YS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9hdWRpby9jb2NvYS9NZWRpYVNlc3Npb25NYW5hZ2VyQ29jb2EuaApAQCAtNjgsNyArNjgsNyBA
QCBwcm90ZWN0ZWQ6CiAgICAgdm9pZCBhZGRTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikg
ZmluYWw7CiAgICAgdm9pZCBzZXRDdXJyZW50U2Vzc2lvbihQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYp
IGZpbmFsOwogCi0gICAgYm9vbCBzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRp
YVNlc3Npb24mKSBmaW5hbDsKKyAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0
Zm9ybU1lZGlhU2Vzc2lvbiYpIG92ZXJyaWRlOwogICAgIHZvaWQgc2Vzc2lvbldpbGxFbmRQbGF5
YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYsIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcp
IG92ZXJyaWRlOwogICAgIHZvaWQgc2Vzc2lvbkRpZEVuZFJlbW90ZVNjcnViYmluZyhjb25zdCBQ
bGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwogICAgIHZvaWQgY2xpZW50Q2hhcmFjdGVyaXN0
aWNzQ2hhbmdlZChQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25IZWxwZXJJT1Mu
bW0KaW5kZXggOTZlZGY1ZTk2Y2M2MTZiZDg3NjgxZTQ4NWE5ZDkyODAzOGViNWEzNi4uYjZjOTI1
OWExMTA0YmZjMTEwN2UwZDEyMDM5YThkMDRjMjFlNTVhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uSGVscGVySU9TLm1t
CkBAIC01NiwxMCArNTYsNiBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2VsZXN0aWFs
LCBBVlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkQXR0cgogU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nv
bm5lY3RlZERpZENoYW5nZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19DT05T
VEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25u
ZWN0ZWROb3RpZmljYXRpb25QYXJhbWV0ZXIsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfQ09OU1RB
TlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfU2VydmVyQ29ubmVjdGlv
bkRpZWROb3RpZmljYXRpb24sIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZB
SUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfQWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5n
ZU5vdGlmaWNhdGlvbiwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChD
ZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9BY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlTm90
aWZpY2F0aW9uUGFyYW1ldGVyX1Nob3VsZFBhdXNlLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NP
TlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX1BpY2tlZFJvdXRl
QXR0cmlidXRlLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVz
dGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX1JvdXRlRGVzY3JpcHRpb25LZXlfUm91dGVTdXBwb3J0
c0FpclBsYXlWaWRlbywgTlNTdHJpbmcgKikKICNlbmRpZgogCiB1c2luZyBuYW1lc3BhY2UgV2Vi
Q29yZTsKQEAgLTEwNCw4ICsxMDAsMTAgQEAgcHVibGljOgogI2lmIEhBVkUoQ0VMRVNUSUFMKQog
ICAgIHZvaWQgY2FyUGxheVNlcnZlckRpZWQoKTsKICAgICB2b2lkIHVwZGF0ZUNhclBsYXlJc0Nv
bm5lY3RlZChPcHRpb25hbDxib29sPiYmKTsKLSAgICB2b2lkIGFjdGl2ZUF1ZGlvUm91dGVEaWRD
aGFuZ2UoT3B0aW9uYWw8Ym9vbD4mJik7Ci0gICAgdm9pZCBhY3RpdmVWaWRlb1JvdXRlRGlkQ2hh
bmdlKE9wdGlvbmFsPGJvb2w+JiYpOworI2VuZGlmCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkg
JiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZ
U1QpICYmICFQTEFURk9STShXQVRDSE9TKQordm9pZCBhY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdl
KGJvb2wpOwordm9pZCBhY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKCk7CiAjZW5kaWYKIAogcHJp
dmF0ZToKQEAgLTI1NywxOCArMjU1LDE5IEBAIHZvaWQgTWVkaWFTZXNzaW9uSGVscGVyaU9TOjpz
ZXRJc1BsYXlpbmdUb0F1dG9tb3RpdmVIZWFkVW5pdChib29sIGlzUGxheWluZykKICAgICBmb3Ig
KGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKICAgICAgICAgY2xpZW50LmlzUGxheWluZ1RvQXV0
b21vdGl2ZUhlYWRVbml0RGlkQ2hhbmdlKG1faXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQg
PyBQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQ6OlllcyA6IFBsYXlpbmdUb0F1dG9tb3RpdmVI
ZWFkVW5pdDo6Tm8pOwogfQorI2VuZGlmIC8vIEhBVkUoQ0VMRVNUSUFMKQogCi12b2lkIE1lZGlh
U2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShPcHRpb25hbDxib29s
PiYmIHNob3VsZFBhdXNlKQorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZP
Uk0oV0FUQ0hPUykKK3ZvaWQgTWVkaWFTZXNzaW9uSGVscGVyaU9TOjphY3RpdmVBdWRpb1JvdXRl
RGlkQ2hhbmdlKGJvb2wgc2hvdWxkUGF1c2UpCiB7CiAgICAgZm9yIChhdXRvJiBjbGllbnQgOiBt
X2NsaWVudHMpCi0gICAgICAgIGNsaWVudC5hY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKHNob3Vs
ZFBhdXNlLnZhbHVlT3IoZmFsc2UpID8gU2hvdWxkUGF1c2U6OlllcyA6IFNob3VsZFBhdXNlOjpO
byk7CisgICAgICAgIGNsaWVudC5hY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKHNob3VsZFBhdXNl
ID8gU2hvdWxkUGF1c2U6OlllcyA6IFNob3VsZFBhdXNlOjpObyk7CiB9CiAKLXZvaWQgTWVkaWFT
ZXNzaW9uSGVscGVyaU9TOjphY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKE9wdGlvbmFsPGJvb2w+
JiYgc3VwcG9ydHNBaXJQbGF5VmlkZW8pCit2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6YWN0
aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSgpCiB7Ci0gICAgbV9hY3RpdmVWaWRlb1JvdXRlU3VwcG9y
dHNBaXJQbGF5VmlkZW8gPSBzdXBwb3J0c0FpclBsYXlWaWRlby52YWx1ZU9yKGZhbHNlKTsKLQot
ICAgIGF1dG8gcGxheWJhY2tUYXJnZXQgPSBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNyZWF0
ZShbUEFMOjpnZXRBVk91dHB1dENvbnRleHRDbGFzcygpIHNoYXJlZEF1ZGlvUHJlc2VudGF0aW9u
T3V0cHV0Q29udGV4dF0pOworICAgIGF1dG8gcGxheWJhY2tUYXJnZXQgPSBNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2E6OmNyZWF0ZSgpOworICAgIG1fYWN0aXZlVmlkZW9Sb3V0ZVN1cHBvcnRzQWly
UGxheVZpZGVvID0gcGxheWJhY2tUYXJnZXQtPnN1cHBvcnRzQWlyUGxheVZpZGVvKCk7CiAgICAg
Zm9yIChhdXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCiAgICAgICAgIGNsaWVudC5hY3RpdmVWaWRl
b1JvdXRlRGlkQ2hhbmdlKG1fYWN0aXZlVmlkZW9Sb3V0ZVN1cHBvcnRzQWlyUGxheVZpZGVvID8g
U3VwcG9ydHNBaXJQbGF5VmlkZW86OlllcyA6IFN1cHBvcnRzQWlyUGxheVZpZGVvOjpObywgcGxh
eWJhY2tUYXJnZXQuY29weVJlZigpKTsKIH0KQEAgLTMyOCwxMyArMzI3LDE1IEBAIHZvaWQgTWVk
aWFTZXNzaW9uSGVscGVyaU9TOjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5n
ZSgpCiAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhcHBs
aWNhdGlvbldpbGxSZXNpZ25BY3RpdmU6KSBuYW1lOldlYlVJQXBwbGljYXRpb25XaWxsUmVzaWdu
QWN0aXZlTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOwogICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6
c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBu
YW1lOlBBTDo6Z2V0X1VJS2l0X1VJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmlj
YXRpb24oKSBvYmplY3Q6bmlsXTsKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0
b3I6QHNlbGVjdG9yKGFwcGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kOikgbmFtZTpXZWJVSUFw
cGxpY2F0aW9uRGlkRW50ZXJCYWNrZ3JvdW5kTm90aWZpY2F0aW9uIG9iamVjdDpuaWxdOworI2lm
IFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikg
JiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBbY2Vu
dGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGFjdGl2ZU91dHB1dERldmlj
ZURpZENoYW5nZTopIG5hbWU6UEFMOjpnZXRfQVZGb3VuZGF0aW9uX0FWQXVkaW9TZXNzaW9uUm91
dGVDaGFuZ2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsXTsKKyNlbmRpZgorCiAjaWYgSEFWRShD
RUxFU1RJQUwpCiAgICAgaWYgKGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJfU2VydmVyQ29ubmVj
dGlvbkRpZWROb3RpZmljYXRpb24oKSkKICAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpzZWxm
IHNlbGVjdG9yOkBzZWxlY3RvcihjYXJQbGF5U2VydmVyRGllZDopIG5hbWU6Z2V0QVZTeXN0ZW1D
b250cm9sbGVyX1NlcnZlckNvbm5lY3Rpb25EaWVkTm90aWZpY2F0aW9uKCkgb2JqZWN0Om5pbF07
CiAgICAgaWYgKGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkRGlk
Q2hhbmdlTm90aWZpY2F0aW9uKCkpCiAgICAgICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoY2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hhbmdlOikgbmFtZTpnZXRB
VlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9u
KCkgb2JqZWN0Om5pbF07Ci0gICAgaWYgKGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJfQWN0aXZl
QXVkaW9Sb3V0ZURpZENoYW5nZU5vdGlmaWNhdGlvbigpKQotICAgICAgICBbY2VudGVyIGFkZE9i
c2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2U6
KSBuYW1lOmdldEFWU3lzdGVtQ29udHJvbGxlcl9BY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlTm90
aWZpY2F0aW9uKCkgb2JqZWN0Om5pbF07CiAjZW5kaWYKIAogICAgIC8vIE5vdyBwbGF5aW5nIHdv
bid0IHdvcmsgdW5sZXNzIHdlIHR1cm4gb24gdGhlIGRlbGl2ZXJ5IG9mIHJlbW90ZSBjb250cm9s
IGV2ZW50cy4KQEAgLTU0MSwzOSArNTQyLDI1IEBAIHZvaWQgTWVkaWFTZXNzaW9uSGVscGVyaU9T
OjpleHRlcm5hbE91dHB1dERldmljZUF2YWlsYWJsZURpZENoYW5nZSgpCiAgICAgICAgICAgICBj
YWxsYmFjay0+dXBkYXRlQ2FyUGxheUlzQ29ubmVjdGVkKFdURk1vdmUoY2FyUGxheUlzQ29ubmVj
dGVkKSk7CiAgICAgfSk7CiB9CisjZW5kaWYgLy8gSEFWRShDRUxFU1RJQUwpCiAKLS0gKHZvaWQp
YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmljYXRpb24K
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFU
T1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JNKFdBVENIT1MpCistICh2
b2lkKWFjdGl2ZU91dHB1dERldmljZURpZENoYW5nZTooTlNOb3RpZmljYXRpb24gKilub3RpZmlj
YXRpb24KIHsKICAgICBpZiAoIV9jYWxsYmFjaykKICAgICAgICAgcmV0dXJuOwogCi0gICAgVU5V
U0VEX1BBUkFNKG5vdGlmaWNhdGlvbik7Ci0gICAgT3B0aW9uYWw8Ym9vbD4gc2hvdWxkUGF1c2U7
Ci0gICAgaWYgKG5vdGlmaWNhdGlvbiAmJiBjYW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2
ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmljYXRpb25QYXJhbWV0ZXJfU2hvdWxkUGF1c2UoKSkg
ewotICAgICAgICBOU051bWJlciogbnNTaG91bGRQYXVzZSA9IFtub3RpZmljYXRpb24udXNlcklu
Zm8gdmFsdWVGb3JLZXk6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRD
aGFuZ2VOb3RpZmljYXRpb25QYXJhbWV0ZXJfU2hvdWxkUGF1c2UoKV07Ci0gICAgICAgIGlmIChu
c1Nob3VsZFBhdXNlKQotICAgICAgICAgICAgc2hvdWxkUGF1c2UgPSBuc1Nob3VsZFBhdXNlLmJv
b2xWYWx1ZTsKLSAgICB9Ci0KLSAgICBPcHRpb25hbDxib29sPiBzdXBwb3J0c0FpclBsYXlWaWRl
bzsKLSAgICBpZiAoY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9QaWNrZWRSb3V0ZUF0dHJpYnV0
ZSgpICYmIGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJfUm91dGVEZXNjcmlwdGlvbktleV9Sb3V0
ZVN1cHBvcnRzQWlyUGxheVZpZGVvKCkpIHsKLSAgICAgICAgTlNEaWN0aW9uYXJ5KiBwaWNrZWRS
b3V0ZSA9IFtbZ2V0QVZTeXN0ZW1Db250cm9sbGVyQ2xhc3MoKSBzaGFyZWRBVlN5c3RlbUNvbnRy
b2xsZXJdIGF0dHJpYnV0ZUZvcktleTpnZXRBVlN5c3RlbUNvbnRyb2xsZXJfUGlja2VkUm91dGVB
dHRyaWJ1dGUoKV07Ci0gICAgICAgIGlmIChbcGlja2VkUm91dGUgaXNLaW5kT2ZDbGFzczpOU0Rp
Y3Rpb25hcnkuY2xhc3NdKSB7Ci0gICAgICAgICAgICBOU051bWJlciogbnNTdXBwb3J0c0FpclBs
YXlWaWRlbyA9IFtwaWNrZWRSb3V0ZSB2YWx1ZUZvcktleTpnZXRBVlN5c3RlbUNvbnRyb2xsZXJf
Um91dGVEZXNjcmlwdGlvbktleV9Sb3V0ZVN1cHBvcnRzQWlyUGxheVZpZGVvKCldOwotICAgICAg
ICAgICAgaWYgKG5zU3VwcG9ydHNBaXJQbGF5VmlkZW8pCi0gICAgICAgICAgICAgICAgc3VwcG9y
dHNBaXJQbGF5VmlkZW8gPSBuc1N1cHBvcnRzQWlyUGxheVZpZGVvLmJvb2xWYWx1ZTsKLSAgICAg
ICAgfQotICAgIH0KLQotICAgIGNhbGxPbldlYlRocmVhZE9yRGlzcGF0Y2hBc3luY09uTWFpblRo
cmVhZChbcHJvdGVjdGVkU2VsZiA9IHJldGFpblB0cihzZWxmKSwgc2hvdWxkUGF1c2UgPSBXVEZN
b3ZlKHNob3VsZFBhdXNlKSwgc3VwcG9ydHNBaXJQbGF5VmlkZW8gPSBXVEZNb3ZlKHN1cHBvcnRz
QWlyUGxheVZpZGVvKV0oKSBtdXRhYmxlIHsKKyAgICBib29sIHNob3VsZFBhdXNlID0gW1tub3Rp
ZmljYXRpb24udXNlckluZm8gb2JqZWN0Rm9yS2V5OlBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkF1
ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uS2V5KCldIHVuc2lnbmVkSW50ZWdlclZhbHVlXSA9
PSBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uT2xkRGV2aWNlVW5hdmFpbGFibGU7Cisg
ICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25NYWluVGhyZWFkKFtwcm90ZWN0ZWRT
ZWxmID0gcmV0YWluUHRyKHNlbGYpLCBzaG91bGRQYXVzZV0oKSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKGF1dG8qIGNhbGxiYWNrID0gcHJvdGVjdGVkU2VsZi0+X2NhbGxiYWNrKSB7Ci0gICAgICAg
ICAgICBjYWxsYmFjay0+YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShXVEZNb3ZlKHNob3VsZFBh
dXNlKSk7Ci0gICAgICAgICAgICBjYWxsYmFjay0+YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShX
VEZNb3ZlKHN1cHBvcnRzQWlyUGxheVZpZGVvKSk7CisgICAgICAgICAgICBjYWxsYmFjay0+YWN0
aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShzaG91bGRQYXVzZSk7CisgICAgICAgICAgICBjYWxsYmFj
ay0+YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSgpOwogICAgICAgICB9CiAgICAgfSk7CiAKIH0K
LSNlbmRpZiAvLyBIQVZFKENFTEVTVElBTCkKKyNlbmRpZgorCiBAZW5kCiAKICNlbmRpZgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1h
bmFnZXJJT1MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Np
b25NYW5hZ2VySU9TLmgKaW5kZXggYzlmYWM3ZDk2NTNmZDBhM2IzOWQyMzZkYzViOWI4MDczMTc0
YzNkMS4uOGY5MGZiNzkyNjA5ZjkyMDVkNDI2NTg1YmYzMmRkOTU0NThhZjRmMyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJ
T1MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9u
TWFuYWdlcklPUy5oCkBAIC01Myw3ICs1Myw2IEBAIHB1YmxpYzoKICAgICBib29sIGhhc1dpcmVs
ZXNzVGFyZ2V0c0F2YWlsYWJsZSgpIG92ZXJyaWRlOwogICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9S
VCB2b2lkIHByb3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKTsKIAotICAgIHVzaW5nIFdl
YWtWYWx1ZVR5cGUgPSBNZWRpYVNlc3Npb25IZWxwZXJDbGllbnQ6OldlYWtWYWx1ZVR5cGU7CiAg
ICAgdXNpbmcgTWVkaWFTZXNzaW9uSGVscGVyQ2xpZW50Ojp3ZWFrUHRyRmFjdG9yeTsKIAogcHJp
dmF0ZToKQEAgLTYxLDEwICs2MCwxMSBAQCBwcml2YXRlOgogCiAgICAgTWVkaWFTZXNzaW9uTWFu
YWdlcmlPUygpOwogCi0gICAgdm9pZCByZXNldFJlc3RyaWN0aW9ucygpIG92ZXJyaWRlOworICAg
IHZvaWQgcmVzZXRSZXN0cmljdGlvbnMoKSBmaW5hbDsKIAotICAgIHZvaWQgY29uZmlndXJlV2ly
ZUxlc3NUYXJnZXRNb25pdG9yaW5nKCkgb3ZlcnJpZGU7CisgICAgdm9pZCBjb25maWd1cmVXaXJl
TGVzc1RhcmdldE1vbml0b3JpbmcoKSBmaW5hbDsKICAgICB2b2lkIHByb3ZpZGVQcmVzZW50aW5n
QXBwbGljYXRpb25QSURJZk5lY2Vzc2FyeSgpIGZpbmFsOworICAgIGJvb2wgc2Vzc2lvbldpbGxC
ZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CiAgICAgdm9pZCBzZXNz
aW9uV2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBk
YXRlTm93UGxheWluZykgZmluYWw7CiAKICAgICAvLyBBdWRpb1Nlc3Npb246OkludGVycnVwdGlv
bk9ic2VydmVyCkBAIC04NCw2ICs4NCwxMSBAQCBwcml2YXRlOgogICAgIGNvbnN0IGNoYXIqIGxv
Z0NsYXNzTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJNZWRpYVNlc3Npb25NYW5hZ2VyaU9T
IjsgfQogI2VuZGlmCiAKKyNpZiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBSZWZQdHI8TWVkaWFQ
bGF5YmFja1RhcmdldD4gbV9wbGF5YmFja1RhcmdldDsKKyAgICBib29sIG1fcGxheWJhY2tUYXJn
ZXRTdXBwb3J0c0FpclBsYXlWaWRlbyB7IGZhbHNlIH07CisjZW5kaWYKKwogICAgIGJvb2wgbV9p
c01vbml0b3JpbmdXaXJlbGVzc1JvdXRlcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2hhdmVQcmVz
ZW50ZWRBcHBsaWNhdGlvblBJRCB7IGZhbHNlIH07CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpp
bmRleCA2YzE2MTgzYmEzN2MzNGE4ODBmNzFkMTE5ZWIwOGY1NWU1YzYyNTk5Li5iMWQyODRkMWY1
YmRlMDNhMTBjMGVjY2UwODkxY2Q3ZWY5ZjA0MGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbQpA
QCAtMTIwLDYgKzEyMCwyNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnByb3ZpZGVQ
cmVzZW50aW5nQXBwbGljYXRpb25QSUQoKQogICAgIE1lZGlhU2Vzc2lvbkhlbHBlcjo6c2hhcmVk
SGVscGVyKCkucHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwcmVzZW50aW5nQXBwbGlj
YXRpb25QSUQoKSk7CiB9CiAKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vzc2lvbldp
bGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQoreworICAgIGlm
ICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxheWJhY2so
c2Vzc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIFBMQVRGT1JNKElPU19GQU1J
TFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NB
VEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBpZiAoIW1fcGxheWJhY2tUYXJnZXQp
IHsKKyAgICAgICAgbV9wbGF5YmFja1RhcmdldCA9IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6
Y3JlYXRlKCk7CisgICAgICAgIG1fcGxheWJhY2tUYXJnZXRTdXBwb3J0c0FpclBsYXlWaWRlbyA9
IG1fcGxheWJhY2tUYXJnZXQtPnN1cHBvcnRzQWlyUGxheVZpZGVvKCk7CisgICAgfQorCisgICAg
QUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5
VmlkZW8pOworICAgIGlmIChtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5VmlkZW8pCisg
ICAgICAgIHNlc3Npb24uc2V0UGxheWJhY2tUYXJnZXQoKm1fcGxheWJhY2tUYXJnZXQuY29weVJl
ZigpKTsKKyAgICBzZXNzaW9uLnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KG1fcGxheWJh
Y2tUYXJnZXRTdXBwb3J0c0FpclBsYXlWaWRlbyk7CisjZW5kaWYKKworICAgIHJldHVybiB0cnVl
OworfQorCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsRW5kUGxheWJh
Y2soUGxhdGZvcm1NZWRpYVNlc3Npb24mIHNlc3Npb24sIERlbGF5Q2FsbGluZ1VwZGF0ZU5vd1Bs
YXlpbmcgZGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZykKIHsKICAgICBNZWRpYVNlc3Npb25N
YW5hZ2VyQ29jb2E6OnNlc3Npb25XaWxsRW5kUGxheWJhY2soc2Vzc2lvbiwgZGVsYXlDYWxsaW5n
VXBkYXRlTm93UGxheWluZyk7CkBAIC0xNjAsNiArMTgwLDEyIEBAIHZvaWQgTWVkaWFTZXNzaW9u
TWFuYWdlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShTaG91bGRQYXVzZSBzaG91bGRQ
YXVzZSkKIHZvaWQgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENo
YW5nZShTdXBwb3J0c0FpclBsYXlWaWRlbyBzdXBwb3J0c0FpclBsYXlWaWRlbywgUmVmPE1lZGlh
UGxheWJhY2tUYXJnZXQ+JiYgcGxheWJhY2tUYXJnZXQpCiB7CiAgICAgQUxXQVlTX0xPRyhMT0dJ
REVOVElGSUVSLCBzdXBwb3J0c0FpclBsYXlWaWRlbyk7CisKKyNpZiAhUExBVEZPUk0oV0FUQ0hP
UykKKyAgICBtX3BsYXliYWNrVGFyZ2V0ID0gcGxheWJhY2tUYXJnZXQucHRyKCk7CisgICAgbV9w
bGF5YmFja1RhcmdldFN1cHBvcnRzQWlyUGxheVZpZGVvID0gc3VwcG9ydHNBaXJQbGF5VmlkZW8g
PT0gU3VwcG9ydHNBaXJQbGF5VmlkZW86OlllczsKKyNlbmRpZgorCiAgICAgYXV0byBub3dQbGF5
aW5nU2Vzc2lvbiA9IG5vd1BsYXlpbmdFbGlnaWJsZVNlc3Npb24oKTsKICAgICBpZiAoIW5vd1Bs
YXlpbmdTZXNzaW9uKQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0LmgKaW5kZXggMzZiNzI5NDRk
NzE2M2QyMDFhNWY2ZWYzZjYzMjcyMWM2M2I3NjYxNC4uZWI5YzdiODUzZTc0OTY0OTkxZjdkNTlk
YmI1YzA5ZDNjNWFiMzEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQuaApAQCAtNDQsNiArNDQsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29u
dGV4dCgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQWN0aXZlUm91dGUoKSBjb25z
dCA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgZGV2aWNlTmFtZSgpIGNvbnN0ID0gMDsKKyAgICB2
aXJ0dWFsIGJvb2wgc3VwcG9ydHNBaXJQbGF5VmlkZW8oKSBjb25zdCA9IDA7CiB9OwogCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24v
TWVkaWFQbGF5YmFja1RhcmdldENvY29hLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmgKaW5kZXggYTI3NWUy
MDg2YjQ5Mzg3NDU4ZDFmYmM3YjVlODcyMjBiZDJiMzkwMS4uMmZiN2YzMTc4MGMzYWE1M2NhMzhl
ZjJmNDZmNTVjODMzOTFiODk0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2EuaApAQCAtMzcsMTQgKzM3LDE4IEBAIGNsYXNzIE1lZGlhUGxheWJhY2tUYXJn
ZXRDb2NvYSA6IHB1YmxpYyBNZWRpYVBsYXliYWNrVGFyZ2V0IHsKIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+IGNyZWF0ZShBVk91dHB1
dENvbnRleHQgKik7CiAKLSAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoKTsK
KyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFU
T1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkKKyAgICBzdGF0aWMgUmVmPE1lZGlhUGxheWJh
Y2tUYXJnZXQ+IGNyZWF0ZSgpOworI2VuZGlmCiAKLSAgICBUYXJnZXRUeXBlIHRhcmdldFR5cGUo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBVkZvdW5kYXRpb247IH0KKyAgICB2aXJ0dWFsIH5N
ZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoKTsKIAotICAgIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJn
ZXRDb250ZXh0JiB0YXJnZXRDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgYm9vbCBoYXNB
Y3RpdmVSb3V0ZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIEFWRm91bmRhdGlvbjsgfQogCi0gICAgU3RyaW5nIGRldmlj
ZU5hbWUoKSBjb25zdCBvdmVycmlkZTsKKyAgICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29u
dGV4dCYgdGFyZ2V0Q29udGV4dCgpIGNvbnN0IGZpbmFsOworICAgIGJvb2wgaGFzQWN0aXZlUm91
dGUoKSBjb25zdCBmaW5hbDsKKyAgICBTdHJpbmcgZGV2aWNlTmFtZSgpIGNvbnN0IGZpbmFsOwor
ICAgIGJvb2wgc3VwcG9ydHNBaXJQbGF5VmlkZW8oKSBjb25zdCBmaW5hbDsKIAogICAgIEFWT3V0
cHV0Q29udGV4dCAqb3V0cHV0Q29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIG1fb3V0cHV0Q29udGV4
dC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJnZXRDb2Nv
YS5tbQppbmRleCBmM2U3Y2M3YTc1YmJlY2JkYmZiNDZiYzU5ZTQwZGE4ZTE1ZGJlZjEyLi45OGRh
OGQyMTk4OWE0YjcwMjFhMDY2M2QxYTU3MDExMjZkMzYwNjFlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1Rhcmdl
dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRh
dGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0KQEAgLTMwLDcgKzMwLDYgQEAKIAogI2lt
cG9ydCA8b2JqYy9ydW50aW1lLmg+CiAjaW1wb3J0IDxwYWwvc3BpL2NvY29hL0FWRm91bmRhdGlv
blNQSS5oPgotCiAjaW1wb3J0IDxwYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaD4KIAog
bmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtNDYsNiArNDUsMzYgQEAgTWVkaWFQbGF5YmFja1Rhcmdl
dENvY29hOjpNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoQVZPdXRwdXRDb250ZXh0ICpjb250ZXh0
KQogewogfQogCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1J
TFlfU0lNVUxBVE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpCitSZWY8TWVkaWFQbGF5YmFj
a1RhcmdldD4gTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpjcmVhdGUoKQoreworICAgIGF1dG8g
KnJvdXRpbmdDb250ZXh0VUlEID0gW1tQQUw6OmdldEFWQXVkaW9TZXNzaW9uQ2xhc3MoKSBzaGFy
ZWRJbnN0YW5jZV0gcm91dGluZ0NvbnRleHRVSURdOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShbUEFMOjpnZXRBVk91dHB1dENvbnRleHRDbGFzcygp
IG91dHB1dENvbnRleHRGb3JJRDpyb3V0aW5nQ29udGV4dFVJRF0pKTsKK30KKyNlbmRpZgorCiti
b29sIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6c3VwcG9ydHNBaXJQbGF5VmlkZW8oKSBjb25z
dAoreworICAgIGlmICghbV9vdXRwdXRDb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisK
KyAgICBpZiAoIVttX291dHB1dENvbnRleHQgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihz
dXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcyldIHx8ICFbbV9vdXRwdXRDb250ZXh0IHN1cHBv
cnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzXSB8fCAhW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZXMpXSkgeworICAgICAgICBpZiAoYXV0byAq
b3V0cHV0RGV2aWNlID0gW21fb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VdKSB7CisgICAgICAg
ICAgICBpZiAob3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgQVZPdXRwdXREZXZpY2VGZWF0
dXJlVmlkZW8pCisgICAgICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKworICAg
ICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisgICAgZm9yIChBVk91dHB1dERldmljZSAqb3V0
cHV0RGV2aWNlIGluIFttX291dHB1dENvbnRleHQgb3V0cHV0RGV2aWNlc10pIHsKKyAgICAgICAg
aWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZp
ZGVvKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNl
OworfQorCiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6On5NZWRpYVBsYXliYWNrVGFyZ2V0Q29j
b2EoKQogewogfQpAQCAtNTgsNyArODcsMjQgQEAgY29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENv
bnRleHQmIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6dGFyZ2V0Q29udGV4dCgpIGNvbnMKIAog
Ym9vbCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6Omhhc0FjdGl2ZVJvdXRlKCkgY29uc3QKIHsK
LSAgICByZXR1cm4gbV9vdXRwdXRDb250ZXh0ICYmIG1fb3V0cHV0Q29udGV4dC5nZXQoKS5kZXZp
Y2VOYW1lOworICAgIGlmICghbV9vdXRwdXRDb250ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7
CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9y
KHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzKV0gJiYgW21fb3V0cHV0Q29udGV4dCBzdXBw
b3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10gJiYgW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1Rv
U2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZXMpXSkgeworICAgICAgICBmb3IgKEFWT3V0
cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21fb3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2Vz
XSkgeworICAgICAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJlcyAmIChBVk91
dHB1dERldmljZUZlYXR1cmVWaWRlbyB8IEFWT3V0cHV0RGV2aWNlRmVhdHVyZUF1ZGlvKSkKKyAg
ICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorCisgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICB9CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKG91dHB1dERldmljZSldKSB7CisgICAgICAgIGlmIChhdXRvICpvdXRwdXRE
ZXZpY2UgPSBbbV9vdXRwdXRDb250ZXh0IG91dHB1dERldmljZV0pCisgICAgICAgICAgICByZXR1
cm4gb3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVzICYgKEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZp
ZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVkaW8pOworICAgIH0KKworICAgIHJldHVybiBt
X291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFtZTsKIH0KIAogU3RyaW5nIE1lZGlhUGxheWJh
Y2tUYXJnZXRDb2NvYTo6ZGV2aWNlTmFtZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMu
bW0KaW5kZXggMzZiM2NiMmM0ZDdkZTJmMTM0ZDZjZWQ0YzU2OTMxYzJhMWZkZDIxNC4uOThmMDRi
N2NmODVhODAyYWYyYTY5ZTQ5OGRkNWQzY2IyOTM0NTMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2
YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlhUGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZG
T2JqQy5tbQpAQCAtMTIyMSw2ICsxMjIxLDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRp
YVNvdXJjZUFWRk9iakM6OnNldFRleHRUcmFja1JlcHJlc2VudGF0aW9uKFRleHRUcmFja1IKICNp
ZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFSR0VUKQogdm9pZCBNZWRpYVBsYXllclByaXZh
dGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlh
UGxheWJhY2tUYXJnZXQ+JiYgdGFyZ2V0KQogeworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklF
Uik7CiAgICAgbV9wbGF5YmFja1RhcmdldCA9IFdURk1vdmUodGFyZ2V0KTsKIH0KIApAQCAtMTIz
Myw3ICsxMjM0LDcgQEAgdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6
OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wgc2gKICAgICBtX3Nob3VsZFBsYXlU
b1RhcmdldCA9IHNob3VsZFBsYXlUb1RhcmdldDsKIAogICAgIGlmIChtX3BsYXllcikKLSAgICAg
ICAgbV9wbGF5ZXItPmN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxlc3NDaGFuZ2VkKG1fcGxh
eWVyLT5pc0N1cnJlbnRQbGF5YmFja1RhcmdldFdpcmVsZXNzKCkpOworICAgICAgICBtX3BsYXll
ci0+Y3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc0NoYW5nZWQoaXNDdXJyZW50UGxheWJh
Y2tUYXJnZXRXaXJlbGVzcygpKTsKIH0KIAogYm9vbCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNv
dXJjZUFWRk9iakM6OmlzQ3VycmVudFBsYXliYWNrVGFyZ2V0V2lyZWxlc3MoKSBjb25zdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0
TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0
TW9jay5oCmluZGV4IDgxNTU1N2FkNmEzMDIwYTYyOGE1YjNhMTFkYmJiNWU2ZDI4NTA1ODAuLjA1
ZmVkNTQ3ZDVkZjI1ZTBkMDdhZDU2NGZiY2ZlN2RjMGVhZDA3MTQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQbGF5YmFja1RhcmdldE1vY2suaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01lZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKQEAg
LTQwLDEzICs0MCwxNCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIH5NZWRpYVBsYXliYWNrVGFy
Z2V0TW9jaygpOwogCi0gICAgVGFyZ2V0VHlwZSB0YXJnZXRUeXBlKCkgY29uc3Qgb3ZlcnJpZGUg
eyByZXR1cm4gTW9jazsgfQorICAgIFRhcmdldFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuIE1vY2s7IH0KIAotICAgIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250ZXh0
JiB0YXJnZXRDb250ZXh0KCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgY29uc3QgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25zdCBmaW5hbDsKIAotICAgIGJvb2wg
aGFzQWN0aXZlUm91dGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiAhbV9uYW1lLmlzRW1wdHko
KTsgfQorICAgIGJvb2wgaGFzQWN0aXZlUm91dGUoKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9u
YW1lLmlzRW1wdHkoKTsgfQorICAgIGJvb2wgc3VwcG9ydHNBaXJQbGF5VmlkZW8oKSBjb25zdCBm
aW5hbCB7IHJldHVybiAhbV9uYW1lLmlzRW1wdHkoKTsgfQogCi0gICAgU3RyaW5nIGRldmljZU5h
bWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBtX25hbWU7IH0KKyAgICBTdHJpbmcgZGV2aWNl
TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fbmFtZTsgfQogCiAgICAgTWVkaWFQbGF5YmFj
a1RhcmdldENvbnRleHQ6OlN0YXRlIHN0YXRlKCkgY29uc3Q7CiAK
</data>
<flag name="review"
          id="410472"
          type_id="1"
          status="+"
          setter="jer.noble"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395070</attachid>
            <date>2020-03-31 11:08:24 -0700</date>
            <delta_ts>2020-03-31 12:40:11 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209789-20200331110823.patch</filename>
            <type>text/plain</type>
            <size>32559</size>
            <attacher name="Eric Carlson">eric.carlson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTA4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmYwOTdkNDViYjhkYzQ0
ZDAwNjIxMThiOGQyMDYxMjJlOTY2OGE3Yy4uYTg4NDZhOWE4MjZlYzNhODIzM2JkYTA0YzYzNzJl
YzA3ZjhlZGNjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUyIEBACisyMDIwLTAzLTMwICBFcmlj
IENhcmxzb24gIDxlcmljLmNhcmxzb25AYXBwbGUuY29tPgorCisgICAgICAgIFtpUGFkXSBVc2Ug
QVZBdWRpb1Nlc3Npb24gdG8gZGV0ZWN0IEFpclBsYXkgcm91dGUgY2hhbmdlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5Nzg5CisgICAgICAgIDxy
ZGFyOi8vcHJvYmxlbS81ODA2NTI3OT4KKworICAgICAgICBSZXZpZXdlZCBieSBKZXIgTm9ibGUu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzOiBjaGFuZ2VzIG9ubHkgYWZmZWN0IHBsYXliYWNrIG9u
IGRldmljZSB0byBhbiBhY3R1YWwgQWlyUGxheSBkZXZpY2UsIHdoaWNoCisgICAgICAgIGlzIG5v
dCB0ZXN0YWJsZSBvbiBvdXIgY3VycmVudCB0ZXN0aW5nIGluZnJhc3RydWN0dXJlLgorCisgICAg
ICAgICogaHRtbC9IVE1MTWVkaWFFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxN
ZWRpYUVsZW1lbnQ6OmNoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHkpOiBEcml2ZS1ieSBm
aXg6IHBhc3MgbG9nIGlkZW50aWZpZXIKKyAgICAgICAgaW50byBsYW1iZGEgc28gdGhlIG1ldGhv
ZCBuYW1lIGlzIGxvZ2dlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxNZWRpYUVsZW1lbnQ6OnNl
dElzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOiBEaXR0by4gCisgICAgICAgIChXZWJDb3JlOjpI
VE1MTWVkaWFFbGVtZW50OjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KTogVXBkYXRlIGxvZ2dp
bmcuCisgICAgICAgIChXZWJDb3JlOjpIVE1MTWVkaWFFbGVtZW50OjpzZXRTaG91bGRQbGF5VG9Q
bGF5YmFja1RhcmdldCk6IENhbGwgc2V0SXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldAorICAgICAg
ICBzbyB3ZSBraWNrIG9mZiBhIG1lZGlhIHBsYXllciBjb21wYXRpYmlsaXR5IGNoZWNrLgorCisg
ICAgICAgICogcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmg6IFJl
bW92ZSB1bnVzZWQgaW5zdGFuY2UgdmFyaWFibGVzLgorICAgICAgICAqIHBsYXRmb3JtL2F1ZGlv
L2lvcy9NZWRpYVNlc3Npb25IZWxwZXJJT1MubW06CisgICAgICAgIChNZWRpYVNlc3Npb25IZWxw
ZXJpT1M6OmFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2UpOiBDaGFuZ2UgcGFyYW1ldGVyIHRvIGJv
b2wgYXMgaXQgaXMgYWx3YXlzCisgICAgICAgIHByZXNlbnQuCisgICAgICAgIChNZWRpYVNlc3Np
b25IZWxwZXJpT1M6OmFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UpOiBSZW1vdmUgcGFyYW1ldGVy
cywgdXNlIHRoZSBuZXcKKyAgICAgICAgTWVkaWFQbGF5YmFja1RhcmdldENvY29hIGNyZWF0ZSBt
ZXRob2QgYW5kIGFzayBpdCBpZiB0aGUgdGFyZ2V0IHN1cHBvcnRzIEFpclBsYXkuCisgICAgICAg
ICgtW1dlYk1lZGlhU2Vzc2lvbkhlbHBlciBpbml0V2l0aENhbGxiYWNrOl0pOiBMaXN0ZW4gZm9y
IEFWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VOb3RpZmljYXRpb24uCisgICAgICAgICgtW1dlYk1l
ZGlhU2Vzc2lvbkhlbHBlciBhY3RpdmVPdXRwdXREZXZpY2VEaWRDaGFuZ2U6XSk6IFVwZGF0ZSBm
b3IgbmV3IG5vdGlmaWNhdGlvbiBzb3VyY2UuCisgICAgICAgICgtW1dlYk1lZGlhU2Vzc2lvbkhl
bHBlciBhY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlOl0pOiBEZWxldGVkLgorCisgICAgICAgICog
cGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbk1hbmFnZXJJT1MuaDoKKyAgICAgICAgKiBw
bGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayk6
IFNldCBwbGF5YmFjayB0YXJnZXQgb24gc2Vzc2lvbgorICAgICAgICB0aGF0IGlzIGFib3V0IHRv
IGJlZ2luIHBsYXliYWNrLgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTZXNzaW9uTWFuYWdlcmlP
Uzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSk6IFNhdmUgdGhlIHRhcmdldCBhbmQgc3RhdGUu
CisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0Lmg6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tUYXJn
ZXRDb2NvYS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRp
YVBsYXliYWNrVGFyZ2V0Q29jb2EubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXliYWNr
VGFyZ2V0Q29jb2E6OmNyZWF0ZSk6IENyZWF0ZSBhIHRhcmdldCBmcm9tIHRoZSBhcHBsaWNhdGlv
bidzIGN1cnJlbnRseQorICAgICAgICBhY3RpdmUgQVZPdXRwdXRDb250ZXh0LgorICAgICAgICAo
V2ViQ29yZTo6TWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpzdXBwb3J0c0FpclBsYXlWaWRlbyBj
b25zdCk6IE5ldy4KKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6
aGFzQWN0aXZlUm91dGUgY29uc3QpOiBVc2UgbmV3IEFQSSBpZiBhdmFpbGFibGUgaW5zdGVhZAor
ICAgICAgICBvZiBqdXN0IGNoZWNraW5nIGZvciB0aGUgQVZPdXRwdXRDb250ZXh0IG5hbWUuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW06CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBs
YXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFdpcmVsZXNzUGxheWJhY2tUYXJnZXQp
OiBMb2cuCisgICAgICAgIChXZWJDb3JlOjpNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFW
Rk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KTogCisgICAgICAgICogcGxhdGZv
cm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oOgorCiAyMDIwLTAzLTIzICBTaW1vbiBG
cmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNhZmFyaSBqZXRzYW1z
IHdpdGggcmVwZWF0ZWQgZHJhd0ltYWdlL2dldEltYWdlRGF0YQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5k
ZXggYjYxYThiZjBmZWY3NjlmZDQxNjBiZTY4MTBmNTk5ZGY3NDhhZmE5My4uMDMxYTQ3Mjg5NThi
ZmE5ZDk5YmMyZTZkYzg0ZjcwMWUxODFmOTFiMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
UEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMg
KzEsMTUgQEAKKzIwMjAtMDMtMzAgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBhcHBsZS5j
b20+CisKKyAgICAgICAgW2lQYWRdIFVzZSBBVkF1ZGlvU2Vzc2lvbiB0byBkZXRlY3QgQWlyUGxh
eSByb3V0ZSBjaGFuZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMDk3ODkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzU4MDY1Mjc5PgorCisgICAg
ICAgIFJldmlld2VkIGJ5IEplciBOb2JsZS4KKworICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oOgorICAgICAgICAqIHBhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGlu
ay5tbToKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5oOgorCiAyMDIw
LTAzLTIwICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAg
IFVwc3RyZWFtIGEgdmFyaWV0eSBvZiBDb2NvYS1wbGF0Zm9ybSBIQVZFIGFuZCBFTkFCTEUgbWFj
cm9zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlv
blNvZnRMaW5rLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNv
ZnRMaW5rLmgKaW5kZXggYjFiNTQ4NDRiMmZhNGVmMGVkMjY1MDc0NjJhMzFkODI2OGE1YjNlNi4u
NDU2YmQzZWNiZjNlMjhjYWEzZWUxYTUyOTYzMzQ1ZGRjYzFjNTQwYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsuaApAQCAtMjkx
LDYgKzI5MSwxMCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX0hFQURFUihQQUwsIEFWRm91bmRh
dGlvbiwgQVZSb3V0ZURldGVjdG9yTXVsdGlwbGVSb3V0ZXNEZQogI2RlZmluZSBBVlJvdXRlRGV0
ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hhbmdlTm90aWZpY2F0aW9uIFBBTDo6Z2V0
X0FWRm91bmRhdGlvbl9BVlJvdXRlRGV0ZWN0b3JNdWx0aXBsZVJvdXRlc0RldGVjdGVkRGlkQ2hh
bmdlTm90aWZpY2F0aW9uKCkKIFNPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZG
b3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvbk1lZGlhU2VydmljZXNXZXJlUmVzZXROb3RpZmljYXRp
b24sIE5TU3RyaW5nICopCiAjZGVmaW5lIEFWQXVkaW9TZXNzaW9uTWVkaWFTZXJ2aWNlc1dlcmVS
ZXNldE5vdGlmaWNhdGlvbiBQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Npb25NZWRp
YVNlcnZpY2VzV2VyZVJlc2V0Tm90aWZpY2F0aW9uKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1Jf
SEVBREVSKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlTm90aWZp
Y2F0aW9uLCBOU1N0cmluZyAqKQorI2RlZmluZSBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlTm90
aWZpY2F0aW9uIFBBTDo6Z2V0X0FWRm91bmRhdGlvbl9BVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdl
Tm90aWZpY2F0aW9uKCkKK1NPRlRfTElOS19DT05TVEFOVF9GT1JfSEVBREVSKFBBTCwgQVZGb3Vu
ZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uS2V5LCBOU1N0cmluZyAqKQor
I2RlZmluZSBBVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uS2V5IFBBTDo6Z2V0X0FWRm91
bmRhdGlvbl9BVkF1ZGlvU2Vzc2lvblJvdXRlQ2hhbmdlUmVhc29uS2V5KCkKICNlbmRpZiAvLyAg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogI2VuZGlmIC8vIFVTRShBVkZPVU5EQVRJT04pCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5r
Lm1tIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9jb2NvYS9BVkZvdW5kYXRpb25Tb2Z0TGluay5t
bQppbmRleCBhYjBiYTgwYTlhZTBjMWViZDQ4Y2U4YjA5NmFhMzhkNjhiODYyZTE1Li5mZTEwOTZm
ZjgxOTAwY2E4ZDhjYzMxMGIyZDA0MDIzY2I5ZGRmNWIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9QQUwvcGFsL2NvY29hL0FWRm91bmRhdGlvblNvZnRMaW5rLm1tCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvY29jb2EvQVZGb3VuZGF0aW9uU29mdExpbmsubW0KQEAgLTIxMyw2ICsy
MTMsOCBAQCBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFW
Rm91bmRhdGlvbiwgQVZDYXB0dXJlU2Vzc2lvbldhcwogU09GVF9MSU5LX0NPTlNUQU5UX0ZPUl9T
T1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZvdW5kYXRpb24sIEFWUm91dGVEZXRlY3Rvck11bHRp
cGxlUm91dGVzRGV0ZWN0ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24sIE5TU3RyaW5nICosIFBBTF9F
WFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFW
Rm91bmRhdGlvbiwgQVZVUkxBc3NldEJvdW5kTmV0d29ya0ludGVyZmFjZU5hbWUsIE5TU3RyaW5n
ICosIFBBTF9FWFBPUlQpCiBTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9XSVRIX0VYUE9S
VChQQUwsIEFWRm91bmRhdGlvbiwgQVZVUkxBc3NldENsaWVudEJ1bmRsZUlkZW50aWZpZXJLZXks
IE5TU3RyaW5nICosIFBBTF9FWFBPUlQpCitTT0ZUX0xJTktfQ09OU1RBTlRfRk9SX1NPVVJDRV9X
SVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlvbiwgQVZBdWRpb1Nlc3Npb25Sb3V0ZUNoYW5nZU5v
dGlmaWNhdGlvbiwgTlNTdHJpbmcgKiwgUEFMX0VYUE9SVCkKK1NPRlRfTElOS19DT05TVEFOVF9G
T1JfU09VUkNFX1dJVEhfRVhQT1JUKFBBTCwgQVZGb3VuZGF0aW9uLCBBVkF1ZGlvU2Vzc2lvblJv
dXRlQ2hhbmdlUmVhc29uS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogCiBTT0ZUX0xJTktf
Q09OU1RBTlRfTUFZX0ZBSUxfRk9SX1NPVVJDRV9XSVRIX0VYUE9SVChQQUwsIEFWRm91bmRhdGlv
biwgQVZVUkxBc3NldEhUVFBDb29raWVzS2V5LCBOU1N0cmluZyAqLCBQQUxfRVhQT1JUKQogU09G
VF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMX0ZPUl9TT1VSQ0VfV0lUSF9FWFBPUlQoUEFMLCBBVkZv
dW5kYXRpb24sIEFWVVJMQXNzZXRSZXF1aXJlc0N1c3RvbVVSTExvYWRpbmdLZXksIE5TU3RyaW5n
ICosIFBBTF9FWFBPUlQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9BVkZvdW5kYXRpb25TUEkuaCBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29h
L0FWRm91bmRhdGlvblNQSS5oCmluZGV4IDVmMTVmMDUxM2Y2NTY4OGMyZmQwOTFhOTRiNjY0NTBi
ZDczYmE3MjkuLjllNDgyYmJkMDBiY2QxNGFjN2IzNzA1NTQyNTYwNjQ4YmVkZTdlOTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0FWRm91bmRhdGlvblNQSS5o
CkBAIC03NywxMiArNzcsMjEgQEAgTlNfQVNTVU1FX05PTk5VTExfQkVHSU4KIEBwcm9wZXJ0eSAo
bm9uYXRvbWljLCByZWFkb25seSkgTlNTdHJpbmcgKmRldmljZU5hbWU7CiArIChpbnN0YW5jZXR5
cGUpb3V0cHV0Q29udGV4dDsKICsgKG51bGxhYmxlIEFWT3V0cHV0Q29udGV4dCAqKXNoYXJlZEF1
ZGlvUHJlc2VudGF0aW9uT3V0cHV0Q29udGV4dDsKKysgKG51bGxhYmxlIEFWT3V0cHV0Q29udGV4
dCAqKW91dHB1dENvbnRleHRGb3JJRDooTlNTdHJpbmcgKilJRDsKIEBwcm9wZXJ0eSAocmVhZG9u
bHkpIEJPT0wgc3VwcG9ydHNNdWx0aXBsZU91dHB1dERldmljZXM7CiBAcHJvcGVydHkgKHJlYWRv
bmx5KSBOU0FycmF5PEFWT3V0cHV0RGV2aWNlICo+ICpvdXRwdXREZXZpY2VzOworQHByb3BlcnR5
IChub25hdG9taWMsIHJlYWRvbmx5LCBudWxsYWJsZSkgQVZPdXRwdXREZXZpY2UgKm91dHB1dERl
dmljZTsKIEBlbmQKIAordHlwZWRlZiBOU19PUFRJT05TKE5TVUludGVnZXIsIEFWT3V0cHV0RGV2
aWNlRmVhdHVyZXMpIHsKKyAgICBBVk91dHB1dERldmljZUZlYXR1cmVBdWRpbyA9ICgxVUwgPDwg
MCksCisgICAgQVZPdXRwdXREZXZpY2VGZWF0dXJlU2NyZWVuID0gKDFVTCA8PCAxKSwKKyAgICBB
Vk91dHB1dERldmljZUZlYXR1cmVWaWRlbyA9ICgxVUwgPDwgMiksCit9OworCiBAaW50ZXJmYWNl
IEFWT3V0cHV0RGV2aWNlIDogTlNPYmplY3QKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCByZWFkb25s
eSkgTlNTdHJpbmcgKm5hbWU7CitAcHJvcGVydHkgKG5vbmF0b21pYywgcmVhZG9ubHkpIEFWT3V0
cHV0RGV2aWNlRmVhdHVyZXMgZGV2aWNlRmVhdHVyZXM7CiBAZW5kCiAKICNpZiAhUExBVEZPUk0o
SU9TX0ZBTUlMWSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTE1lZGlhRWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxNZWRpYUVsZW1lbnQuY3BwCmluZGV4
IGJkZjQ1OWFlNjM2ZDJmMTNiOTA0MmViMzg0ODFmNzg5MGU4YzM3ZDQuLjczMjc1ZDExNzkyZDVj
Yzg2ZWIxZjY1ZDUwZGJiMjMyY2Q4MzdhMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTE1lZGlhRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MTWVk
aWFFbGVtZW50LmNwcApAQCAtMTA1MCwxMSArMTA1MCw4IEBAIHZvaWQgSFRNTE1lZGlhRWxlbWVu
dDo6c2NoZWR1bGVDaGVja1BsYXliYWNrVGFyZ2V0Q29tcGF0YWJpbGl0eSgpCiB2b2lkIEhUTUxN
ZWRpYUVsZW1lbnQ6OmNoZWNrUGxheWJhY2tUYXJnZXRDb21wYXRhYmxpdHkoKQogewogI2lmIEVO
QUJMRShXSVJFTEVTU19QTEFZQkFDS19UQVJHRVQpCi0gICAgYXV0byBsb2dTaXRlSWRlbnRpZmll
ciA9IExPR0lERU5USUZJRVI7Ci0gICAgQUxXQVlTX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgInRh
c2sgc2NoZWR1bGVkIik7CiAgICAgaWYgKG1faXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCAmJiAh
bV9wbGF5ZXItPmNhblBsYXlUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXQoKSkgewotICAgICAgICBV
TlVTRURfUEFSQU0obG9nU2l0ZUlkZW50aWZpZXIpOwotICAgICAgICBJTkZPX0xPRyhsb2dTaXRl
SWRlbnRpZmllciwgImNhbGxpbmcgc2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoZmFsc2Up
Iik7CisgICAgICAgIElORk9fTE9HKExPR0lERU5USUZJRVIsICJjYWxsaW5nIHNldFNob3VsZFBs
YXlUb1BsYXliYWNrVGFyZ2V0KGZhbHNlKSIpOwogICAgICAgICBtX2ZhaWxlZFRvUGxheVRvV2ly
ZWxlc3NUYXJnZXQgPSB0cnVlOwogICAgICAgICBtX3BsYXllci0+c2V0U2hvdWxkUGxheVRvUGxh
eWJhY2tUYXJnZXQoZmFsc2UpOwogICAgIH0KQEAgLTU4NTAsMTIgKzU4NDcsMTggQEAgdm9pZCBI
VE1MTWVkaWFFbGVtZW50OjptZWRpYVBsYXllckN1cnJlbnRQbGF5YmFja1RhcmdldElzV2lyZWxl
c3NDaGFuZ2VkKGJvb2wgaXMKIAogdm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRJc1BsYXlpbmdU
b1dpcmVsZXNzVGFyZ2V0KGJvb2wgaXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCkKIHsKLSAgICBt
X3BsYXliYWNrVGFyZ2V0SXNXaXJlbGVzc1F1ZXVlLmVucXVldWVUYXNrKFt0aGlzLCBpc1BsYXlp
bmdUb1dpcmVsZXNzVGFyZ2V0XSB7CisgICAgYXV0byBsb2dTaXRlSWRlbnRpZmllciA9IExPR0lE
RU5USUZJRVI7CisgICAgQUxXQVlTX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgaXNQbGF5aW5nVG9X
aXJlbGVzc1RhcmdldCk7CisgICAgbV9wbGF5YmFja1RhcmdldElzV2lyZWxlc3NRdWV1ZS5lbnF1
ZXVlVGFzayhbdGhpcywgaXNQbGF5aW5nVG9XaXJlbGVzc1RhcmdldCwgbG9nU2l0ZUlkZW50aWZp
ZXJdIHsKKyAgICAgICAgVU5VU0VEX1BBUkFNKGxvZ1NpdGVJZGVudGlmaWVyKTsKKyAgICAgICAg
QUxXQVlTX0xPRyhsb2dTaXRlSWRlbnRpZmllciwgImxhbWJkYSgpLCB0YXNrIGZpcmVkIik7CisK
ICAgICAgICAgaWYgKGlzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQgPT0gbV9pc1BsYXlpbmdUb1dp
cmVsZXNzVGFyZ2V0KQogICAgICAgICAgICAgcmV0dXJuOworCiAgICAgICAgIG1faXNQbGF5aW5n
VG9XaXJlbGVzc1RhcmdldCA9IG1fcGxheWVyICYmIG1fcGxheWVyLT5pc0N1cnJlbnRQbGF5YmFj
a1RhcmdldFdpcmVsZXNzKCk7CiAgICAgICAgIG1fcmVtb3RlLT5pc1BsYXlpbmdUb1JlbW90ZVRh
cmdldENoYW5nZWQobV9pc1BsYXlpbmdUb1dpcmVsZXNzVGFyZ2V0KTsKLSAgICAgICAgQUxXQVlT
X0xPRyhMT0dJREVOVElGSUVSLCBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQpOworICAgICAg
ICBBTFdBWVNfTE9HKGxvZ1NpdGVJZGVudGlmaWVyLCBtX2lzUGxheWluZ1RvV2lyZWxlc3NUYXJn
ZXQpOwogICAgICAgICBjb25maWd1cmVNZWRpYUNvbnRyb2xzKCk7CiAgICAgICAgIG1fbWVkaWFT
ZXNzaW9uLT5pc1BsYXlpbmdUb1dpcmVsZXNzUGxheWJhY2tUYXJnZXRDaGFuZ2VkKG1faXNQbGF5
aW5nVG9XaXJlbGVzc1RhcmdldCk7CiAgICAgICAgIG1fbWVkaWFTZXNzaW9uLT5jYW5Qcm9kdWNl
QXVkaW9DaGFuZ2VkKCk7CkBAIC01OTQxLDExICs1OTQ0LDExIEBAIHZvaWQgSFRNTE1lZGlhRWxl
bWVudDo6ZW5xdWV1ZVBsYXliYWNrVGFyZ2V0QXZhaWxhYmlsaXR5Q2hhbmdlZEV2ZW50KCkKIAog
dm9pZCBIVE1MTWVkaWFFbGVtZW50OjpzZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0KFJlZjxNZWRp
YVBsYXliYWNrVGFyZ2V0PiYmIGRldmljZSkKIHsKLSAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJ
RVIpOwogICAgIGJvb2wgaGFzQWN0aXZlUm91dGUgPSBkZXZpY2UtPmhhc0FjdGl2ZVJvdXRlKCk7
CisgICAgQUxXQVlTX0xPRyhMT0dJREVOVElGSUVSLCBoYXNBY3RpdmVSb3V0ZSk7CisKICAgICBp
ZiAobV9wbGF5ZXIpCiAgICAgICAgIG1fcGxheWVyLT5zZXRXaXJlbGVzc1BsYXliYWNrVGFyZ2V0
KFdURk1vdmUoZGV2aWNlKSk7Ci0KICAgICBtX3JlbW90ZS0+c2hvdWxkUGxheVRvUmVtb3RlVGFy
Z2V0Q2hhbmdlZChoYXNBY3RpdmVSb3V0ZSk7CiB9CiAKQEAgLTU5NTMsOCArNTk1NiwxMCBAQCB2
b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0KGJvb2wg
c2hvdWxkUGxheSkKIHsKICAgICBBTFdBWVNfTE9HKExPR0lERU5USUZJRVIsIHNob3VsZFBsYXkp
OwogCi0gICAgaWYgKG1fcGxheWVyKQorICAgIGlmIChtX3BsYXllcikgewogICAgICAgICBtX3Bs
YXllci0+c2V0U2hvdWxkUGxheVRvUGxheWJhY2tUYXJnZXQoc2hvdWxkUGxheSk7CisgICAgICAg
IHNldElzUGxheWluZ1RvV2lyZWxlc3NUYXJnZXQobV9wbGF5ZXItPmlzQ3VycmVudFBsYXliYWNr
VGFyZ2V0V2lyZWxlc3MoKSk7CisgICAgfQogfQogCiB2b2lkIEhUTUxNZWRpYUVsZW1lbnQ6OnBs
YXliYWNrVGFyZ2V0UGlja2VyV2FzRGlzbWlzc2VkKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL1BsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKaW5k
ZXggNDdkOGFlYTljY2I5NjI3ZWRiOTZlMmQ4NzgyYjEyOGIxMDdhNTExNi4uMjYyZDliYWI5YWVi
ZTg2Yzk0YTI2OTMzODg5NGU4ZWRmNmZmMzQ3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgKQEAg
LTE4MSwxMSArMTgxLDYgQEAgcHJpdmF0ZToKICAgICBTZXNzaW9uUmVzdHJpY3Rpb25zIG1fcmVz
dHJpY3Rpb25zW3N0YXRpY19jYXN0PHVuc2lnbmVkPihQbGF0Zm9ybU1lZGlhU2Vzc2lvbjo6TWVk
aWFUeXBlOjpXZWJBdWRpbykgKyAxXTsKICAgICBtdXRhYmxlIFZlY3RvcjxXZWFrUHRyPFBsYXRm
b3JtTWVkaWFTZXNzaW9uPj4gbV9zZXNzaW9uczsKIAotI2lmIEVOQUJMRShXSVJFTEVTU19QTEFZ
QkFDS19UQVJHRVQpICYmICFQTEFURk9STShJT1NfRkFNSUxZKQotICAgIFJlZlB0cjxNZWRpYVBs
YXliYWNrVGFyZ2V0PiBtX3BsYXliYWNrVGFyZ2V0OwotICAgIGJvb2wgbV9jYW5QbGF5VG9UYXJn
ZXQgeyBmYWxzZSB9OwotI2VuZGlmCi0KICAgICBib29sIG1faW50ZXJydXB0ZWQgeyBmYWxzZSB9
OwogICAgIG11dGFibGUgYm9vbCBtX2lzQXBwbGljYXRpb25JbkJhY2tncm91bmQgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV93aWxsSWdub3JlU3lzdGVtSW50ZXJydXB0aW9ucyB7IGZhbHNlIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9jb2NvYS9NZWRpYVNlc3Np
b25NYW5hZ2VyQ29jb2EuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01l
ZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCmluZGV4IDFhZDY2YTgyYzM4YTNlYTE4NjU2OTVmMGVl
NjliNjI4NzMxOTc4MzguLjVkNmIxM2E4YTA5ODFkM2FkZjU4ODFiMzgwNDVlY2UyNGI4ZGNjYmIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2NvY29hL01lZGlhU2Vz
c2lvbk1hbmFnZXJDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2Nv
Y29hL01lZGlhU2Vzc2lvbk1hbmFnZXJDb2NvYS5oCkBAIC02OCw3ICs2OCw3IEBAIHByb3RlY3Rl
ZDoKICAgICB2b2lkIGFkZFNlc3Npb24oUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKICAg
ICB2b2lkIHNldEN1cnJlbnRTZXNzaW9uKFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CiAK
LSAgICBib29sIHNlc3Npb25XaWxsQmVnaW5QbGF5YmFjayhQbGF0Zm9ybU1lZGlhU2Vzc2lvbiYp
IGZpbmFsOworICAgIGJvb2wgc2Vzc2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFT
ZXNzaW9uJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBzZXNzaW9uV2lsbEVuZFBsYXliYWNrKFBsYXRm
b3JtTWVkaWFTZXNzaW9uJiwgRGVsYXlDYWxsaW5nVXBkYXRlTm93UGxheWluZykgb3ZlcnJpZGU7
CiAgICAgdm9pZCBzZXNzaW9uRGlkRW5kUmVtb3RlU2NydWJiaW5nKGNvbnN0IFBsYXRmb3JtTWVk
aWFTZXNzaW9uJikgZmluYWw7CiAgICAgdm9pZCBjbGllbnRDaGFyYWN0ZXJpc3RpY3NDaGFuZ2Vk
KFBsYXRmb3JtTWVkaWFTZXNzaW9uJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uSGVscGVySU9TLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlhU2Vzc2lvbkhlbHBlcklPUy5tbQppbmRleCA5
NmVkZjVlOTZjYzYxNmJkODc2ODFlNDg1YTlkOTI4MDM4ZWI1YTM2Li40MmEyZjcwODExMzA3ODJk
YWY4YTQxNWVmYWQ0NjAwNzk1NTExYmJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uSGVscGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25IZWxwZXJJT1MubW0KQEAgLTU2LDEw
ICs1Niw2IEBAIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3RpYWwsIEFWU3lzdGVt
Q29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWRBdHRyCiBTT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfQ2FyUGxheUlzQ29ubmVjdGVkRGlk
Q2hhbmdlTm90aWZpY2F0aW9uLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX0NPTlNUQU5UX01BWV9G
QUlMKENlbGVzdGlhbCwgQVZTeXN0ZW1Db250cm9sbGVyX0NhclBsYXlJc0Nvbm5lY3RlZE5vdGlm
aWNhdGlvblBhcmFtZXRlciwgTlNTdHJpbmcgKikKIFNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJ
TChDZWxlc3RpYWwsIEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJDb25uZWN0aW9uRGllZE5vdGlm
aWNhdGlvbiwgTlNTdHJpbmcgKikKLVNPRlRfTElOS19DT05TVEFOVF9NQVlfRkFJTChDZWxlc3Rp
YWwsIEFWU3lzdGVtQ29udHJvbGxlcl9BY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlTm90aWZpY2F0
aW9uLCBOU1N0cmluZyAqKQotU09GVF9MSU5LX0NPTlNUQU5UX01BWV9GQUlMKENlbGVzdGlhbCwg
QVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2VOb3RpZmljYXRpb25Q
YXJhbWV0ZXJfU2hvdWxkUGF1c2UsIE5TU3RyaW5nICopCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZ
X0ZBSUwoQ2VsZXN0aWFsLCBBVlN5c3RlbUNvbnRyb2xsZXJfUGlja2VkUm91dGVBdHRyaWJ1dGUs
IE5TU3RyaW5nICopCi1TT0ZUX0xJTktfQ09OU1RBTlRfTUFZX0ZBSUwoQ2VsZXN0aWFsLCBBVlN5
c3RlbUNvbnRyb2xsZXJfUm91dGVEZXNjcmlwdGlvbktleV9Sb3V0ZVN1cHBvcnRzQWlyUGxheVZp
ZGVvLCBOU1N0cmluZyAqKQogI2VuZGlmCiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAt
MTA0LDggKzEwMCwxMCBAQCBwdWJsaWM6CiAjaWYgSEFWRShDRUxFU1RJQUwpCiAgICAgdm9pZCBj
YXJQbGF5U2VydmVyRGllZCgpOwogICAgIHZvaWQgdXBkYXRlQ2FyUGxheUlzQ29ubmVjdGVkKE9w
dGlvbmFsPGJvb2w+JiYpOwotICAgIHZvaWQgYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShPcHRp
b25hbDxib29sPiYmKTsKLSAgICB2b2lkIGFjdGl2ZVZpZGVvUm91dGVEaWRDaGFuZ2UoT3B0aW9u
YWw8Ym9vbD4mJik7CisjZW5kaWYKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBM
QVRGT1JNKFdBVENIT1MpCisgICAgdm9pZCBhY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKGJvb2wp
OworICAgIHZvaWQgYWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZSgpOwogI2VuZGlmCiAKIHByaXZh
dGU6CkBAIC0yNTcsMTggKzI1NSwxOSBAQCB2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6c2V0
SXNQbGF5aW5nVG9BdXRvbW90aXZlSGVhZFVuaXQoYm9vbCBpc1BsYXlpbmcpCiAgICAgZm9yIChh
dXRvJiBjbGllbnQgOiBtX2NsaWVudHMpCiAgICAgICAgIGNsaWVudC5pc1BsYXlpbmdUb0F1dG9t
b3RpdmVIZWFkVW5pdERpZENoYW5nZShtX2lzUGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0ID8g
UGxheWluZ1RvQXV0b21vdGl2ZUhlYWRVbml0OjpZZXMgOiBQbGF5aW5nVG9BdXRvbW90aXZlSGVh
ZFVuaXQ6Ok5vKTsKIH0KKyNlbmRpZiAvLyBIQVZFKENFTEVTVElBTCkKIAotdm9pZCBNZWRpYVNl
c3Npb25IZWxwZXJpT1M6OmFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2UoT3B0aW9uYWw8Ym9vbD4m
JiBzaG91bGRQYXVzZSkKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAmJiAhUExBVEZPUk0oSU9T
X0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlTVCkgJiYgIVBMQVRGT1JN
KFdBVENIT1MpCit2b2lkIE1lZGlhU2Vzc2lvbkhlbHBlcmlPUzo6YWN0aXZlQXVkaW9Sb3V0ZURp
ZENoYW5nZShib29sIHNob3VsZFBhdXNlKQogewogICAgIGZvciAoYXV0byYgY2xpZW50IDogbV9j
bGllbnRzKQotICAgICAgICBjbGllbnQuYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShzaG91bGRQ
YXVzZS52YWx1ZU9yKGZhbHNlKSA/IFNob3VsZFBhdXNlOjpZZXMgOiBTaG91bGRQYXVzZTo6Tm8p
OworICAgICAgICBjbGllbnQuYWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZShzaG91bGRQYXVzZSA/
IFNob3VsZFBhdXNlOjpZZXMgOiBTaG91bGRQYXVzZTo6Tm8pOwogfQogCi12b2lkIE1lZGlhU2Vz
c2lvbkhlbHBlcmlPUzo6YWN0aXZlVmlkZW9Sb3V0ZURpZENoYW5nZShPcHRpb25hbDxib29sPiYm
IHN1cHBvcnRzQWlyUGxheVZpZGVvKQordm9pZCBNZWRpYVNlc3Npb25IZWxwZXJpT1M6OmFjdGl2
ZVZpZGVvUm91dGVEaWRDaGFuZ2UoKQogewotICAgIG1fYWN0aXZlVmlkZW9Sb3V0ZVN1cHBvcnRz
QWlyUGxheVZpZGVvID0gc3VwcG9ydHNBaXJQbGF5VmlkZW8udmFsdWVPcihmYWxzZSk7Ci0KLSAg
ICBhdXRvIHBsYXliYWNrVGFyZ2V0ID0gTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpjcmVhdGUo
W1BBTDo6Z2V0QVZPdXRwdXRDb250ZXh0Q2xhc3MoKSBzaGFyZWRBdWRpb1ByZXNlbnRhdGlvbk91
dHB1dENvbnRleHRdKTsKKyAgICBhdXRvIHBsYXliYWNrVGFyZ2V0ID0gTWVkaWFQbGF5YmFja1Rh
cmdldENvY29hOjpjcmVhdGUoKTsKKyAgICBtX2FjdGl2ZVZpZGVvUm91dGVTdXBwb3J0c0FpclBs
YXlWaWRlbyA9IHBsYXliYWNrVGFyZ2V0LT5zdXBwb3J0c1JlbW90ZVZpZGVvUGxheWJhY2soKTsK
ICAgICBmb3IgKGF1dG8mIGNsaWVudCA6IG1fY2xpZW50cykKICAgICAgICAgY2xpZW50LmFjdGl2
ZVZpZGVvUm91dGVEaWRDaGFuZ2UobV9hY3RpdmVWaWRlb1JvdXRlU3VwcG9ydHNBaXJQbGF5Vmlk
ZW8gPyBTdXBwb3J0c0FpclBsYXlWaWRlbzo6WWVzIDogU3VwcG9ydHNBaXJQbGF5VmlkZW86Ok5v
LCBwbGF5YmFja1RhcmdldC5jb3B5UmVmKCkpOwogfQpAQCAtMzI4LDEzICszMjcsMTUgQEAgdm9p
ZCBNZWRpYVNlc3Npb25IZWxwZXJpT1M6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlk
Q2hhbmdlKCkKICAgICBbY2VudGVyIGFkZE9ic2VydmVyOnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9y
KGFwcGxpY2F0aW9uV2lsbFJlc2lnbkFjdGl2ZTopIG5hbWU6V2ViVUlBcHBsaWNhdGlvbldpbGxS
ZXNpZ25BY3RpdmVOb3RpZmljYXRpb24gb2JqZWN0Om5pbF07CiAgICAgW2NlbnRlciBhZGRPYnNl
cnZlcjpzZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihhcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3Vu
ZDopIG5hbWU6UEFMOjpnZXRfVUlLaXRfVUlBcHBsaWNhdGlvbkRpZEVudGVyQmFja2dyb3VuZE5v
dGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOwogICAgIFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBz
ZWxlY3RvcjpAc2VsZWN0b3IoYXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmQ6KSBuYW1lOldl
YlVJQXBwbGljYXRpb25EaWRFbnRlckJhY2tncm91bmROb3RpZmljYXRpb24gb2JqZWN0Om5pbF07
CisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkgJiYgIVBMQVRGT1JNKElPU19GQU1JTFlfU0lNVUxB
VE9SKSAmJiAhUExBVEZPUk0oTUFDQ0FUQUxZU1QpICYmICFQTEFURk9STShXQVRDSE9TKQorICAg
IFtjZW50ZXIgYWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoYWN0aXZlT3V0cHV0
RGV2aWNlRGlkQ2hhbmdlOikgbmFtZTpQQUw6OmdldF9BVkZvdW5kYXRpb25fQVZBdWRpb1Nlc3Np
b25Sb3V0ZUNoYW5nZU5vdGlmaWNhdGlvbigpIG9iamVjdDpuaWxdOworI2VuZGlmCisKICNpZiBI
QVZFKENFTEVTVElBTCkKICAgICBpZiAoY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9TZXJ2ZXJD
b25uZWN0aW9uRGllZE5vdGlmaWNhdGlvbigpKQogICAgICAgICBbY2VudGVyIGFkZE9ic2VydmVy
OnNlbGYgc2VsZWN0b3I6QHNlbGVjdG9yKGNhclBsYXlTZXJ2ZXJEaWVkOikgbmFtZTpnZXRBVlN5
c3RlbUNvbnRyb2xsZXJfU2VydmVyQ29ubmVjdGlvbkRpZWROb3RpZmljYXRpb24oKSBvYmplY3Q6
bmlsXTsKICAgICBpZiAoY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0
ZWREaWRDaGFuZ2VOb3RpZmljYXRpb24oKSkKICAgICAgICAgW2NlbnRlciBhZGRPYnNlcnZlcjpz
ZWxmIHNlbGVjdG9yOkBzZWxlY3RvcihjYXJQbGF5SXNDb25uZWN0ZWREaWRDaGFuZ2U6KSBuYW1l
OmdldEFWU3lzdGVtQ29udHJvbGxlcl9DYXJQbGF5SXNDb25uZWN0ZWREaWRDaGFuZ2VOb3RpZmlj
YXRpb24oKSBvYmplY3Q6bmlsXTsKLSAgICBpZiAoY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9B
Y3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlTm90aWZpY2F0aW9uKCkpCi0gICAgICAgIFtjZW50ZXIg
YWRkT2JzZXJ2ZXI6c2VsZiBzZWxlY3RvcjpAc2VsZWN0b3IoYWN0aXZlQXVkaW9Sb3V0ZURpZENo
YW5nZTopIG5hbWU6Z2V0QVZTeXN0ZW1Db250cm9sbGVyX0FjdGl2ZUF1ZGlvUm91dGVEaWRDaGFu
Z2VOb3RpZmljYXRpb24oKSBvYmplY3Q6bmlsXTsKICNlbmRpZgogCiAgICAgLy8gTm93IHBsYXlp
bmcgd29uJ3Qgd29yayB1bmxlc3Mgd2UgdHVybiBvbiB0aGUgZGVsaXZlcnkgb2YgcmVtb3RlIGNv
bnRyb2wgZXZlbnRzLgpAQCAtNTQxLDM5ICs1NDIsMjUgQEAgdm9pZCBNZWRpYVNlc3Npb25IZWxw
ZXJpT1M6OmV4dGVybmFsT3V0cHV0RGV2aWNlQXZhaWxhYmxlRGlkQ2hhbmdlKCkKICAgICAgICAg
ICAgIGNhbGxiYWNrLT51cGRhdGVDYXJQbGF5SXNDb25uZWN0ZWQoV1RGTW92ZShjYXJQbGF5SXND
b25uZWN0ZWQpKTsKICAgICB9KTsKIH0KKyNlbmRpZiAvLyBIQVZFKENFTEVTVElBTCkKIAotLSAo
dm9pZClhY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5vdGlmaWNh
dGlvbgorI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJ
TVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykK
Ky0gKHZvaWQpYWN0aXZlT3V0cHV0RGV2aWNlRGlkQ2hhbmdlOihOU05vdGlmaWNhdGlvbiAqKW5v
dGlmaWNhdGlvbgogewogICAgIGlmICghX2NhbGxiYWNrKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBVTlVTRURfUEFSQU0obm90aWZpY2F0aW9uKTsKLSAgICBPcHRpb25hbDxib29sPiBzaG91bGRQ
YXVzZTsKLSAgICBpZiAobm90aWZpY2F0aW9uICYmIGNhbkxvYWRBVlN5c3RlbUNvbnRyb2xsZXJf
QWN0aXZlQXVkaW9Sb3V0ZURpZENoYW5nZU5vdGlmaWNhdGlvblBhcmFtZXRlcl9TaG91bGRQYXVz
ZSgpKSB7Ci0gICAgICAgIE5TTnVtYmVyKiBuc1Nob3VsZFBhdXNlID0gW25vdGlmaWNhdGlvbi51
c2VySW5mbyB2YWx1ZUZvcktleTpnZXRBVlN5c3RlbUNvbnRyb2xsZXJfQWN0aXZlQXVkaW9Sb3V0
ZURpZENoYW5nZU5vdGlmaWNhdGlvblBhcmFtZXRlcl9TaG91bGRQYXVzZSgpXTsKLSAgICAgICAg
aWYgKG5zU2hvdWxkUGF1c2UpCi0gICAgICAgICAgICBzaG91bGRQYXVzZSA9IG5zU2hvdWxkUGF1
c2UuYm9vbFZhbHVlOwotICAgIH0KLQotICAgIE9wdGlvbmFsPGJvb2w+IHN1cHBvcnRzQWlyUGxh
eVZpZGVvOwotICAgIGlmIChjYW5Mb2FkQVZTeXN0ZW1Db250cm9sbGVyX1BpY2tlZFJvdXRlQXR0
cmlidXRlKCkgJiYgY2FuTG9hZEFWU3lzdGVtQ29udHJvbGxlcl9Sb3V0ZURlc2NyaXB0aW9uS2V5
X1JvdXRlU3VwcG9ydHNBaXJQbGF5VmlkZW8oKSkgewotICAgICAgICBOU0RpY3Rpb25hcnkqIHBp
Y2tlZFJvdXRlID0gW1tnZXRBVlN5c3RlbUNvbnRyb2xsZXJDbGFzcygpIHNoYXJlZEFWU3lzdGVt
Q29udHJvbGxlcl0gYXR0cmlidXRlRm9yS2V5OmdldEFWU3lzdGVtQ29udHJvbGxlcl9QaWNrZWRS
b3V0ZUF0dHJpYnV0ZSgpXTsKLSAgICAgICAgaWYgKFtwaWNrZWRSb3V0ZSBpc0tpbmRPZkNsYXNz
Ok5TRGljdGlvbmFyeS5jbGFzc10pIHsKLSAgICAgICAgICAgIE5TTnVtYmVyKiBuc1N1cHBvcnRz
QWlyUGxheVZpZGVvID0gW3BpY2tlZFJvdXRlIHZhbHVlRm9yS2V5OmdldEFWU3lzdGVtQ29udHJv
bGxlcl9Sb3V0ZURlc2NyaXB0aW9uS2V5X1JvdXRlU3VwcG9ydHNBaXJQbGF5VmlkZW8oKV07Ci0g
ICAgICAgICAgICBpZiAobnNTdXBwb3J0c0FpclBsYXlWaWRlbykKLSAgICAgICAgICAgICAgICBz
dXBwb3J0c0FpclBsYXlWaWRlbyA9IG5zU3VwcG9ydHNBaXJQbGF5VmlkZW8uYm9vbFZhbHVlOwot
ICAgICAgICB9Ci0gICAgfQotCi0gICAgY2FsbE9uV2ViVGhyZWFkT3JEaXNwYXRjaEFzeW5jT25N
YWluVGhyZWFkKFtwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpLCBzaG91bGRQYXVzZSA9
IFdURk1vdmUoc2hvdWxkUGF1c2UpLCBzdXBwb3J0c0FpclBsYXlWaWRlbyA9IFdURk1vdmUoc3Vw
cG9ydHNBaXJQbGF5VmlkZW8pXSgpIG11dGFibGUgeworICAgIGJvb2wgc2hvdWxkUGF1c2UgPSBb
W25vdGlmaWNhdGlvbi51c2VySW5mbyBvYmplY3RGb3JLZXk6UEFMOjpnZXRfQVZGb3VuZGF0aW9u
X0FWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VSZWFzb25LZXkoKV0gdW5zaWduZWRJbnRlZ2VyVmFs
dWVdID09IEFWQXVkaW9TZXNzaW9uUm91dGVDaGFuZ2VSZWFzb25PbGREZXZpY2VVbmF2YWlsYWJs
ZTsKKyAgICBjYWxsT25XZWJUaHJlYWRPckRpc3BhdGNoQXN5bmNPbk1haW5UaHJlYWQoW3Byb3Rl
Y3RlZFNlbGYgPSByZXRhaW5QdHIoc2VsZiksIHNob3VsZFBhdXNlXSgpIG11dGFibGUgewogICAg
ICAgICBpZiAoYXV0byogY2FsbGJhY2sgPSBwcm90ZWN0ZWRTZWxmLT5fY2FsbGJhY2spIHsKLSAg
ICAgICAgICAgIGNhbGxiYWNrLT5hY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKFdURk1vdmUoc2hv
dWxkUGF1c2UpKTsKLSAgICAgICAgICAgIGNhbGxiYWNrLT5hY3RpdmVWaWRlb1JvdXRlRGlkQ2hh
bmdlKFdURk1vdmUoc3VwcG9ydHNBaXJQbGF5VmlkZW8pKTsKKyAgICAgICAgICAgIGNhbGxiYWNr
LT5hY3RpdmVBdWRpb1JvdXRlRGlkQ2hhbmdlKHNob3VsZFBhdXNlKTsKKyAgICAgICAgICAgIGNh
bGxiYWNrLT5hY3RpdmVWaWRlb1JvdXRlRGlkQ2hhbmdlKCk7CiAgICAgICAgIH0KICAgICB9KTsK
IAogfQotI2VuZGlmIC8vIEhBVkUoQ0VMRVNUSUFMKQorI2VuZGlmCisKIEBlbmQKIAogI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNz
aW9uTWFuYWdlcklPUy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vYXVkaW8vaW9zL01lZGlh
U2Vzc2lvbk1hbmFnZXJJT1MuaAppbmRleCBjOWZhYzdkOTY1M2ZkMGEzYjM5ZDIzNmRjNWI5Yjgw
NzMxNzRjM2QxLi44ZjkwZmI3OTI2MDlmOTIwNWQ0MjY1ODViZjMyZGQ5NTQ1OGFmNGYzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFu
YWdlcklPUy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNl
c3Npb25NYW5hZ2VySU9TLmgKQEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIGJvb2wgaGFz
V2lyZWxlc3NUYXJnZXRzQXZhaWxhYmxlKCkgb3ZlcnJpZGU7CiAgICAgc3RhdGljIFdFQkNPUkVf
RVhQT1JUIHZvaWQgcHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRCgpOwogCi0gICAgdXNp
bmcgV2Vha1ZhbHVlVHlwZSA9IE1lZGlhU2Vzc2lvbkhlbHBlckNsaWVudDo6V2Vha1ZhbHVlVHlw
ZTsKICAgICB1c2luZyBNZWRpYVNlc3Npb25IZWxwZXJDbGllbnQ6OndlYWtQdHJGYWN0b3J5Owog
CiBwcml2YXRlOgpAQCAtNjEsMTAgKzYwLDExIEBAIHByaXZhdGU6CiAKICAgICBNZWRpYVNlc3Np
b25NYW5hZ2VyaU9TKCk7CiAKLSAgICB2b2lkIHJlc2V0UmVzdHJpY3Rpb25zKCkgb3ZlcnJpZGU7
CisgICAgdm9pZCByZXNldFJlc3RyaWN0aW9ucygpIGZpbmFsOwogCi0gICAgdm9pZCBjb25maWd1
cmVXaXJlTGVzc1RhcmdldE1vbml0b3JpbmcoKSBvdmVycmlkZTsKKyAgICB2b2lkIGNvbmZpZ3Vy
ZVdpcmVMZXNzVGFyZ2V0TW9uaXRvcmluZygpIGZpbmFsOwogICAgIHZvaWQgcHJvdmlkZVByZXNl
bnRpbmdBcHBsaWNhdGlvblBJRElmTmVjZXNzYXJ5KCkgZmluYWw7CisgICAgYm9vbCBzZXNzaW9u
V2lsbEJlZ2luUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mKSBmaW5hbDsKICAgICB2b2lk
IHNlc3Npb25XaWxsRW5kUGxheWJhY2soUGxhdGZvcm1NZWRpYVNlc3Npb24mLCBEZWxheUNhbGxp
bmdVcGRhdGVOb3dQbGF5aW5nKSBmaW5hbDsKIAogICAgIC8vIEF1ZGlvU2Vzc2lvbjo6SW50ZXJy
dXB0aW9uT2JzZXJ2ZXIKQEAgLTg0LDYgKzg0LDExIEBAIHByaXZhdGU6CiAgICAgY29uc3QgY2hh
ciogbG9nQ2xhc3NOYW1lKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIk1lZGlhU2Vzc2lvbk1hbmFn
ZXJpT1MiOyB9CiAjZW5kaWYKIAorI2lmICFQTEFURk9STShXQVRDSE9TKQorICAgIFJlZlB0cjxN
ZWRpYVBsYXliYWNrVGFyZ2V0PiBtX3BsYXliYWNrVGFyZ2V0OworICAgIGJvb2wgbV9wbGF5YmFj
a1RhcmdldFN1cHBvcnRzQWlyUGxheVZpZGVvIHsgZmFsc2UgfTsKKyNlbmRpZgorCiAgICAgYm9v
bCBtX2lzTW9uaXRvcmluZ1dpcmVsZXNzUm91dGVzIHsgZmFsc2UgfTsKICAgICBib29sIG1faGF2
ZVByZXNlbnRlZEFwcGxpY2F0aW9uUElEIHsgZmFsc2UgfTsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9hdWRpby9pb3MvTWVkaWFTZXNzaW9uTWFuYWdlcklPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lm1tCmluZGV4IDZjMTYxODNiYTM3YzM0YTg4MGY3MWQxMTllYjA4ZjU1ZTVjNjI1OTkuLjQ1YmQ1
NGI0YzFiZWY5YThkMDY1YThhNWU1NzE0OTE2Yjk1YzY5NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9TLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2F1ZGlvL2lvcy9NZWRpYVNlc3Npb25NYW5hZ2VySU9T
Lm1tCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNC0yMDE3IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNC0yMDIwIEFw
cGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucwpAQCAtMTIwLDYgKzEyMCwyNiBAQCB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OnBy
b3ZpZGVQcmVzZW50aW5nQXBwbGljYXRpb25QSUQoKQogICAgIE1lZGlhU2Vzc2lvbkhlbHBlcjo6
c2hhcmVkSGVscGVyKCkucHJvdmlkZVByZXNlbnRpbmdBcHBsaWNhdGlvblBJRChwcmVzZW50aW5n
QXBwbGljYXRpb25QSUQoKSk7CiB9CiAKK2Jvb2wgTWVkaWFTZXNzaW9uTWFuYWdlcmlPUzo6c2Vz
c2lvbldpbGxCZWdpblBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uKQorewor
ICAgIGlmICghUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyOjpzZXNzaW9uV2lsbEJlZ2luUGxh
eWJhY2soc2Vzc2lvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpICYmICFQTEFURk9STShJT1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JN
KE1BQ0NBVEFMWVNUKSAmJiAhUExBVEZPUk0oV0FUQ0hPUykKKyAgICBpZiAoIW1fcGxheWJhY2tU
YXJnZXQpIHsKKyAgICAgICAgbV9wbGF5YmFja1RhcmdldCA9IE1lZGlhUGxheWJhY2tUYXJnZXRD
b2NvYTo6Y3JlYXRlKCk7CisgICAgICAgIG1fcGxheWJhY2tUYXJnZXRTdXBwb3J0c0FpclBsYXlW
aWRlbyA9IG1fcGxheWJhY2tUYXJnZXQtPnN1cHBvcnRzUmVtb3RlVmlkZW9QbGF5YmFjaygpOwor
ICAgIH0KKworICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUiwgbV9wbGF5YmFja1RhcmdldFN1
cHBvcnRzQWlyUGxheVZpZGVvKTsKKyAgICBpZiAobV9wbGF5YmFja1RhcmdldFN1cHBvcnRzQWly
UGxheVZpZGVvKQorICAgICAgICBzZXNzaW9uLnNldFBsYXliYWNrVGFyZ2V0KCptX3BsYXliYWNr
VGFyZ2V0LmNvcHlSZWYoKSk7CisgICAgc2Vzc2lvbi5zZXRTaG91bGRQbGF5VG9QbGF5YmFja1Rh
cmdldChtX3BsYXliYWNrVGFyZ2V0U3VwcG9ydHNBaXJQbGF5VmlkZW8pOworI2VuZGlmCisKKyAg
ICByZXR1cm4gdHJ1ZTsKK30KKwogdm9pZCBNZWRpYVNlc3Npb25NYW5hZ2VyaU9TOjpzZXNzaW9u
V2lsbEVuZFBsYXliYWNrKFBsYXRmb3JtTWVkaWFTZXNzaW9uJiBzZXNzaW9uLCBEZWxheUNhbGxp
bmdVcGRhdGVOb3dQbGF5aW5nIGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpCiB7CiAgICAg
TWVkaWFTZXNzaW9uTWFuYWdlckNvY29hOjpzZXNzaW9uV2lsbEVuZFBsYXliYWNrKHNlc3Npb24s
IGRlbGF5Q2FsbGluZ1VwZGF0ZU5vd1BsYXlpbmcpOwpAQCAtMTYwLDYgKzE4MCwxMiBAQCB2b2lk
IE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OmFjdGl2ZUF1ZGlvUm91dGVEaWRDaGFuZ2UoU2hvdWxk
UGF1c2Ugc2hvdWxkUGF1c2UpCiB2b2lkIE1lZGlhU2Vzc2lvbk1hbmFnZXJpT1M6OmFjdGl2ZVZp
ZGVvUm91dGVEaWRDaGFuZ2UoU3VwcG9ydHNBaXJQbGF5VmlkZW8gc3VwcG9ydHNBaXJQbGF5Vmlk
ZW8sIFJlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiYmIHBsYXliYWNrVGFyZ2V0KQogewogICAgIEFM
V0FZU19MT0coTE9HSURFTlRJRklFUiwgc3VwcG9ydHNBaXJQbGF5VmlkZW8pOworCisjaWYgIVBM
QVRGT1JNKFdBVENIT1MpCisgICAgbV9wbGF5YmFja1RhcmdldCA9IHBsYXliYWNrVGFyZ2V0LnB0
cigpOworICAgIG1fcGxheWJhY2tUYXJnZXRTdXBwb3J0c0FpclBsYXlWaWRlbyA9IHN1cHBvcnRz
QWlyUGxheVZpZGVvID09IFN1cHBvcnRzQWlyUGxheVZpZGVvOjpZZXM7CisjZW5kaWYKKwogICAg
IGF1dG8gbm93UGxheWluZ1Nlc3Npb24gPSBub3dQbGF5aW5nRWxpZ2libGVTZXNzaW9uKCk7CiAg
ICAgaWYgKCFub3dQbGF5aW5nU2Vzc2lvbikKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvTWVkaWFQbGF5YmFja1RhcmdldC5oCmlu
ZGV4IDM2YjcyOTQ0ZDcxNjNkMjAxYTVmNmVmM2Y2MzI3MjFjNjNiNzY2MTQuLjZhZGZhOTM3Zjcz
ZjU3M2Q5NWM5ZmNkNzRkNmQyMWI4NzNhMmY3ODggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL01lZGlhUGxheWJhY2tUYXJnZXQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9NZWRpYVBsYXliYWNrVGFyZ2V0LmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC00NCw2ICs0
NCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIGNvbnN0IE1lZGlhUGxheWJhY2tUYXJnZXRDb250
ZXh0JiB0YXJnZXRDb250ZXh0KCkgY29uc3QgPSAwOwogICAgIHZpcnR1YWwgYm9vbCBoYXNBY3Rp
dmVSb3V0ZSgpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBkZXZpY2VOYW1lKCkgY29u
c3QgPSAwOworICAgIHZpcnR1YWwgYm9vbCBzdXBwb3J0c1JlbW90ZVZpZGVvUGxheWJhY2soKSBj
b25zdCA9IDA7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1Rhcmdl
dENvY29hLmgKaW5kZXggYTI3NWUyMDg2YjQ5Mzg3NDU4ZDFmYmM3YjVlODcyMjBiZDJiMzkwMS4u
NmE4ZTE5NDc2YTM0N2Q4ZTc0ODQxZmY2OWZiZDQ4YjA5MjIzYzg4OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9uL01lZGlhUGxheWJhY2tU
YXJnZXRDb2NvYS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91
bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMTUgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICog
Q29weXJpZ2h0IChDKSAyMDE1LTIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNywxNCArMzcsMTggQEAgY2xhc3Mg
TWVkaWFQbGF5YmFja1RhcmdldENvY29hIDogcHVibGljIE1lZGlhUGxheWJhY2tUYXJnZXQgewog
cHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBSZWY8TWVkaWFQbGF5YmFja1Rhcmdl
dD4gY3JlYXRlKEFWT3V0cHV0Q29udGV4dCAqKTsKIAotICAgIHZpcnR1YWwgfk1lZGlhUGxheWJh
Y2tUYXJnZXRDb2NvYSgpOworI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpICYmICFQTEFURk9STShJ
T1NfRkFNSUxZX1NJTVVMQVRPUikgJiYgIVBMQVRGT1JNKE1BQ0NBVEFMWVNUKQorICAgIHN0YXRp
YyBSZWY8TWVkaWFQbGF5YmFja1RhcmdldD4gY3JlYXRlKCk7CisjZW5kaWYKIAotICAgIFRhcmdl
dFR5cGUgdGFyZ2V0VHlwZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFWRm91bmRhdGlvbjsg
fQorICAgIHZpcnR1YWwgfk1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYSgpOwogCi0gICAgY29uc3Qg
TWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25zdCBvdmVycmlk
ZTsKLSAgICBib29sIGhhc0FjdGl2ZVJvdXRlKCkgY29uc3Qgb3ZlcnJpZGU7CisgICAgVGFyZ2V0
VHlwZSB0YXJnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gQVZGb3VuZGF0aW9uOyB9CiAK
LSAgICBTdHJpbmcgZGV2aWNlTmFtZSgpIGNvbnN0IG92ZXJyaWRlOworICAgIGNvbnN0IE1lZGlh
UGxheWJhY2tUYXJnZXRDb250ZXh0JiB0YXJnZXRDb250ZXh0KCkgY29uc3QgZmluYWw7CisgICAg
Ym9vbCBoYXNBY3RpdmVSb3V0ZSgpIGNvbnN0IGZpbmFsOworICAgIFN0cmluZyBkZXZpY2VOYW1l
KCkgY29uc3QgZmluYWw7CisgICAgYm9vbCBzdXBwb3J0c1JlbW90ZVZpZGVvUGxheWJhY2soKSBj
b25zdCBmaW5hbDsKIAogICAgIEFWT3V0cHV0Q29udGV4dCAqb3V0cHV0Q29udGV4dCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3V0cHV0Q29udGV4dC5nZXQoKTsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vTWVkaWFQbGF5YmFja1Rhcmdl
dENvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3VuZGF0aW9u
L01lZGlhUGxheWJhY2tUYXJnZXRDb2NvYS5tbQppbmRleCBmM2U3Y2M3YTc1YmJlY2JkYmZiNDZi
YzU5ZTQwZGE4ZTE1ZGJlZjEyLi4yMTljMjkzMWI5YWMwNTBlMzFkNjUzMWNkYzFkNmY1NTU4ZWRl
YmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vTWVkaWFQbGF5YmFja1RhcmdldENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EubW0K
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE1IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNS0yMDIwIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MzAsNyArMzAsNiBAQAogCiAjaW1wb3J0IDxvYmpjL3J1bnRpbWUuaD4KICNpbXBvcnQgPHBhbC9z
cGkvY29jb2EvQVZGb3VuZGF0aW9uU1BJLmg+Ci0KICNpbXBvcnQgPHBhbC9jb2NvYS9BVkZvdW5k
YXRpb25Tb2Z0TGluay5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CkBAIC00Niw2ICs0NSwzNiBA
QCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6Ok1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYShBVk91
dHB1dENvbnRleHQgKmNvbnRleHQpCiB7CiB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKSAm
JiAhUExBVEZPUk0oSU9TX0ZBTUlMWV9TSU1VTEFUT1IpICYmICFQTEFURk9STShNQUNDQVRBTFlT
VCkKK1JlZjxNZWRpYVBsYXliYWNrVGFyZ2V0PiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6OmNy
ZWF0ZSgpCit7CisgICAgYXV0byAqcm91dGluZ0NvbnRleHRVSUQgPSBbW1BBTDo6Z2V0QVZBdWRp
b1Nlc3Npb25DbGFzcygpIHNoYXJlZEluc3RhbmNlXSByb3V0aW5nQ29udGV4dFVJRF07CisgICAg
cmV0dXJuIGFkb3B0UmVmKCpuZXcgTWVkaWFQbGF5YmFja1RhcmdldENvY29hKFtQQUw6OmdldEFW
T3V0cHV0Q29udGV4dENsYXNzKCkgb3V0cHV0Q29udGV4dEZvcklEOnJvdXRpbmdDb250ZXh0VUlE
XSkpOworfQorI2VuZGlmCisKK2Jvb2wgTWVkaWFQbGF5YmFja1RhcmdldENvY29hOjpzdXBwb3J0
c1JlbW90ZVZpZGVvUGxheWJhY2soKSBjb25zdAoreworICAgIGlmICghbV9vdXRwdXRDb250ZXh0
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoIVttX291dHB1dENvbnRleHQgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlcyld
IHx8ICFbbV9vdXRwdXRDb250ZXh0IHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2VzXSB8fCAh
W21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmlj
ZXMpXSkgeworICAgICAgICBpZiAoYXV0byAqb3V0cHV0RGV2aWNlID0gW21fb3V0cHV0Q29udGV4
dCBvdXRwdXREZXZpY2VdKSB7CisgICAgICAgICAgICBpZiAob3V0cHV0RGV2aWNlLmRldmljZUZl
YXR1cmVzICYgQVZPdXRwdXREZXZpY2VGZWF0dXJlVmlkZW8pCisgICAgICAgICAgICAgICAgcmV0
dXJuIHRydWU7CisgICAgICAgIH0KKworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgfQorCisg
ICAgZm9yIChBVk91dHB1dERldmljZSAqb3V0cHV0RGV2aWNlIGluIFttX291dHB1dENvbnRleHQg
b3V0cHV0RGV2aWNlc10pIHsKKyAgICAgICAgaWYgKG91dHB1dERldmljZS5kZXZpY2VGZWF0dXJl
cyAmIEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorCisgICAgcmV0dXJuIGZhbHNlOworfQorCiBNZWRpYVBsYXliYWNrVGFyZ2V0Q29j
b2E6On5NZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2EoKQogewogfQpAQCAtNTgsNyArODcsMjQgQEAg
Y29uc3QgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQmIE1lZGlhUGxheWJhY2tUYXJnZXRDb2Nv
YTo6dGFyZ2V0Q29udGV4dCgpIGNvbnMKIAogYm9vbCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29jb2E6
Omhhc0FjdGl2ZVJvdXRlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9vdXRwdXRDb250ZXh0ICYm
IG1fb3V0cHV0Q29udGV4dC5nZXQoKS5kZXZpY2VOYW1lOworICAgIGlmICghbV9vdXRwdXRDb250
ZXh0KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBpZiAoW21fb3V0cHV0Q29udGV4dCBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHN1cHBvcnRzTXVsdGlwbGVPdXRwdXREZXZpY2Vz
KV0gJiYgW21fb3V0cHV0Q29udGV4dCBzdXBwb3J0c011bHRpcGxlT3V0cHV0RGV2aWNlc10gJiYg
W21fb3V0cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmlj
ZXMpXSkgeworICAgICAgICBmb3IgKEFWT3V0cHV0RGV2aWNlICpvdXRwdXREZXZpY2UgaW4gW21f
b3V0cHV0Q29udGV4dCBvdXRwdXREZXZpY2VzXSkgeworICAgICAgICAgICAgaWYgKG91dHB1dERl
dmljZS5kZXZpY2VGZWF0dXJlcyAmIChBVk91dHB1dERldmljZUZlYXR1cmVWaWRlbyB8IEFWT3V0
cHV0RGV2aWNlRmVhdHVyZUF1ZGlvKSkKKyAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQorCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisKKyAgICBpZiAoW21fb3V0
cHV0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKG91dHB1dERldmljZSldKSB7
CisgICAgICAgIGlmIChhdXRvICpvdXRwdXREZXZpY2UgPSBbbV9vdXRwdXRDb250ZXh0IG91dHB1
dERldmljZV0pCisgICAgICAgICAgICByZXR1cm4gb3V0cHV0RGV2aWNlLmRldmljZUZlYXR1cmVz
ICYgKEFWT3V0cHV0RGV2aWNlRmVhdHVyZVZpZGVvIHwgQVZPdXRwdXREZXZpY2VGZWF0dXJlQXVk
aW8pOworICAgIH0KKworICAgIHJldHVybiBtX291dHB1dENvbnRleHQuZ2V0KCkuZGV2aWNlTmFt
ZTsKIH0KIAogU3RyaW5nIE1lZGlhUGxheWJhY2tUYXJnZXRDb2NvYTo6ZGV2aWNlTmFtZSgpIGNv
bnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5k
YXRpb24vb2JqYy9NZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0gYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9hdmZvdW5kYXRpb24vb2JqYy9NZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakMubW0KaW5kZXggMzZiM2NiMmM0ZDdkZTJmMTM0ZDZj
ZWQ0YzU2OTMxYzJhMWZkZDIxNC4uOThmMDRiN2NmODVhODAyYWYyYTY5ZTQ5OGRkNWQzY2IyOTM0
NTMzZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvYXZmb3Vu
ZGF0aW9uL29iamMvTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFTb3VyY2VBVkZPYmpDLm1tCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2F2Zm91bmRhdGlvbi9vYmpjL01lZGlh
UGxheWVyUHJpdmF0ZU1lZGlhU291cmNlQVZGT2JqQy5tbQpAQCAtMTIyMSw2ICsxMjIxLDcgQEAg
dm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFRleHRUcmFja1Jl
cHJlc2VudGF0aW9uKFRleHRUcmFja1IKICNpZiBFTkFCTEUoV0lSRUxFU1NfUExBWUJBQ0tfVEFS
R0VUKQogdm9pZCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFdpcmVs
ZXNzUGxheWJhY2tUYXJnZXQoUmVmPE1lZGlhUGxheWJhY2tUYXJnZXQ+JiYgdGFyZ2V0KQogewor
ICAgIEFMV0FZU19MT0coTE9HSURFTlRJRklFUik7CiAgICAgbV9wbGF5YmFja1RhcmdldCA9IFdU
Rk1vdmUodGFyZ2V0KTsKIH0KIApAQCAtMTIzMyw3ICsxMjM0LDcgQEAgdm9pZCBNZWRpYVBsYXll
clByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OnNldFNob3VsZFBsYXlUb1BsYXliYWNrVGFyZ2V0
KGJvb2wgc2gKICAgICBtX3Nob3VsZFBsYXlUb1RhcmdldCA9IHNob3VsZFBsYXlUb1RhcmdldDsK
IAogICAgIGlmIChtX3BsYXllcikKLSAgICAgICAgbV9wbGF5ZXItPmN1cnJlbnRQbGF5YmFja1Rh
cmdldElzV2lyZWxlc3NDaGFuZ2VkKG1fcGxheWVyLT5pc0N1cnJlbnRQbGF5YmFja1RhcmdldFdp
cmVsZXNzKCkpOworICAgICAgICBtX3BsYXllci0+Y3VycmVudFBsYXliYWNrVGFyZ2V0SXNXaXJl
bGVzc0NoYW5nZWQoaXNDdXJyZW50UGxheWJhY2tUYXJnZXRXaXJlbGVzcygpKTsKIH0KIAogYm9v
bCBNZWRpYVBsYXllclByaXZhdGVNZWRpYVNvdXJjZUFWRk9iakM6OmlzQ3VycmVudFBsYXliYWNr
VGFyZ2V0V2lyZWxlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9NZWRpYVBsYXliYWNrVGFyZ2V0TW9jay5oCmluZGV4IDgxNTU1N2FkNmEzMDIwYTYy
OGE1YjNhMTFkYmJiNWU2ZDI4NTA1ODAuLmNkNDQ5YjAzYzExMzEwNjY1Mjk0Y2I4OTI0ZGYwZTRl
ZWFhMTNmNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTWVkaWFQ
bGF5YmFja1RhcmdldE1vY2suaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01l
ZGlhUGxheWJhY2tUYXJnZXRNb2NrLmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNS0yMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDAsMTMgKzQwLDE0IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgfk1lZGlhUGxheWJhY2tUYXJnZXRNb2NrKCk7CiAKLSAgICBUYXJnZXRUeXBlIHRhcmdl
dFR5cGUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBNb2NrOyB9CisgICAgVGFyZ2V0VHlwZSB0
YXJnZXRUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gTW9jazsgfQogCi0gICAgY29uc3QgTWVk
aWFQbGF5YmFja1RhcmdldENvbnRleHQmIHRhcmdldENvbnRleHQoKSBjb25zdCBvdmVycmlkZTsK
KyAgICBjb25zdCBNZWRpYVBsYXliYWNrVGFyZ2V0Q29udGV4dCYgdGFyZ2V0Q29udGV4dCgpIGNv
bnN0IGZpbmFsOwogCi0gICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSgpIGNvbnN0IG92ZXJyaWRlIHsg
cmV0dXJuICFtX25hbWUuaXNFbXB0eSgpOyB9CisgICAgYm9vbCBoYXNBY3RpdmVSb3V0ZSgpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICFtX25hbWUuaXNFbXB0eSgpOyB9CisgICAgYm9vbCBzdXBwb3J0
c1JlbW90ZVZpZGVvUGxheWJhY2soKSBjb25zdCBmaW5hbCB7IHJldHVybiAhbV9uYW1lLmlzRW1w
dHkoKTsgfQogCi0gICAgU3RyaW5nIGRldmljZU5hbWUoKSBjb25zdCBvdmVycmlkZSB7IHJldHVy
biBtX25hbWU7IH0KKyAgICBTdHJpbmcgZGV2aWNlTmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJu
IG1fbmFtZTsgfQogCiAgICAgTWVkaWFQbGF5YmFja1RhcmdldENvbnRleHQ6OlN0YXRlIHN0YXRl
KCkgY29uc3Q7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>