<?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>231286</bug_id>
          
          <creation_ts>2021-10-06 05:01:17 -0700</creation_ts>
          <short_desc>getDisplayMedia MediaStreamTrack.applyConstraints behavior regressed in Safari 15</short_desc>
          <delta_ts>2021-12-05 03:31:18 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>Safari 15</version>
          <rep_platform>Mac (Intel)</rep_platform>
          <op_sys>macOS 11</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="Arjun Vade">avade</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>hta</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>pnormand</cc>
    
    <cc>sergio</cc>
    
    <cc>tommyw</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1801022</commentid>
    <comment_count>0</comment_count>
      <attachid>440353</attachid>
    <who name="Arjun Vade">avade</who>
    <bug_when>2021-10-06 05:01:17 -0700</bug_when>
    <thetext>Created attachment 440353
issue_illustrator

A valid applyConstraints on a MediaStreamTrack is now throwing OverconstrainedError. This used to work in earlier versions of safari and has regressed only with Safari 15. Attaching a sample html page that illustrates the issue.

Steps to reproduce:
1. Open the html page attached in safari
2. Click on the start button
3. Notice that video 1 works, while video 2 doesn&apos;t. Open the dev tools console and notice the OverconstrainedError.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801031</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-06 06:20:26 -0700</bug_when>
    <thetext>&lt;rdar://problem/83930865&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801038</commentid>
    <comment_count>2</comment_count>
      <attachid>440360</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-06 06:41:31 -0700</bug_when>
    <thetext>Created attachment 440360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1801131</commentid>
    <comment_count>3</comment_count>
      <attachid>440360</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-06 09:24:32 -0700</bug_when>
    <thetext>Comment on attachment 440360
Patch

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

It would be good to include tests the specify only width, only height, and neither.

&gt; Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:261
&gt; +        if (!requestedWidth &amp;&amp;  requestedHeight &amp;&amp; size().isEmpty())
&gt; +            return { };

Should this be `!requestedHeight`?

&gt; Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:265
&gt; +        if (!requestedWidth) {
&gt; +            captureSize.setWidth(*requestedWidth);

This will crash, shouldn&apos;t it be `if (requestedWidth)`?

&gt; Source/WebCore/platform/mediastream/RealtimeVideoCaptureSource.cpp:268
&gt; +            captureSize.setHeight(*requestedHeight);

Can&apos;t requestedHeight be null here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802114</commentid>
    <comment_count>4</comment_count>
      <attachid>440629</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-08 09:10:30 -0700</bug_when>
    <thetext>Created attachment 440629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802134</commentid>
    <comment_count>5</comment_count>
      <attachid>440629</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2021-10-08 09:58:43 -0700</bug_when>
    <thetext>Comment on attachment 440629
Patch

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

&gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeAudioSource.cpp:49
&gt; +    fprintf(stderr, &quot;RemoteRealtimeAudioSource::create %d\n&quot;, (int)source-&gt;identifier().toUInt64());

Oops!

&gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeDisplaySource.cpp:44
&gt; +    fprintf(stderr, &quot;RemoteRealtimeDisplaySource::create %d\n&quot;, (int)source-&gt;identifier().toUInt64());

Ditto

&gt; Source/WebKit/WebProcess/cocoa/RemoteRealtimeVideoSource.cpp:51
&gt; +    fprintf(stderr, &quot;RemoteRealtimeVideoSource::create %d\n&quot;, (int)source-&gt;identifier().toUInt64());

Ditto</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1802532</commentid>
    <comment_count>6</comment_count>
      <attachid>440761</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-11 00:39:50 -0700</bug_when>
    <thetext>Created attachment 440761
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805566</commentid>
    <comment_count>7</comment_count>
      <attachid>441600</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-18 07:33:27 -0700</bug_when>
    <thetext>Created attachment 441600
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805901</commentid>
    <comment_count>8</comment_count>
      <attachid>441695</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-19 00:21:16 -0700</bug_when>
    <thetext>Created attachment 441695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1805949</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-19 04:52:29 -0700</bug_when>
    <thetext>Committed r284444 (243206@main): &lt;https://commits.webkit.org/243206@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441695.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1820490</commentid>
    <comment_count>10</comment_count>
      <attachid>441695</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2021-12-05 03:31:18 -0800</bug_when>
    <thetext>Comment on attachment 441695
Patch

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

&gt; LayoutTests/fast/mediastream/getDisplayMedia-size-expected.txt:6
&gt; +FAIL original source should stay at a small size assert_equals: expected 640 but got 320
&gt; +FAIL original source should stay at a big size assert_equals: expected 640 but got 1280

This is a bit confusing. Should these tests be reworked to have PASS expectations?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>440353</attachid>
            <date>2021-10-06 05:01:17 -0700</date>
            <delta_ts>2021-10-06 05:01:17 -0700</delta_ts>
            <desc>issue_illustrator</desc>
            <filename>displaymedia.html</filename>
            <type>text/html</type>
            <size>1318</size>
            <attacher name="Arjun Vade">avade</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxodG1sPgogIDxib2R5PgogICAgVmlkZW8gMToKICAgIDx2aWRlbyBz
dHlsZT0iZGlzcGxheTogYmxvY2siIGlkPSJiaWdWaWRlbyIgYXV0b3BsYXk+PC92aWRlbz4KICAg
IDxociAvPgogICAgVmlkZW8gMjoKICAgIDx2aWRlbyBzdHlsZT0iZGlzcGxheTogYmxvY2siIGlk
PSJzbWFsbFZpZGVvIiBhdXRvcGxheT48L3ZpZGVvPgogICAgPGJ1dHRvbiBpZD0idGVzdCI+U3Rh
cnQ8L2J1dHRvbj4KICAgIDxzY3JpcHQ+CiAgICAgIGFzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CiAg
ICAgICAgdmFyIGEgPSBhd2FpdCBuYXZpZ2F0b3IubWVkaWFEZXZpY2VzLmdldERpc3BsYXlNZWRp
YSh7CiAgICAgICAgICB2aWRlbzogewogICAgICAgICAgICB3aWR0aDogeyBtYXg6IDY0MCB9LAog
ICAgICAgICAgICBoZWlnaHQ6IHsgbWF4OiA0MDAgfQogICAgICAgICAgfQogICAgICAgIH0pOwog
ICAgICAgIC8vIHRoaXMgZmFpbHMgdG9vCiAgICAgICAgLy8gYXdhaXQgYS5nZXRUcmFja3MoKVsw
XS5hcHBseUNvbnN0cmFpbnRzKHsKICAgICAgICAvLyAgIHdpZHRoOiB7IG1heDogMzIwIH0sCiAg
ICAgICAgLy8gICBoZWlnaHQ6IHsgbWF4OiAyMDAgfQogICAgICAgIC8vIH0pOwogICAgICAgIHdp
bmRvdy5hPWE7CiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2JpZ1ZpZGVvJykuc3Jj
T2JqZWN0ID0gYTsKCiAgICAgICAgdmFyIGIgPSBhLmdldFZpZGVvVHJhY2tzKClbMF07CiAgICAg
ICAgYiA9IGIuY2xvbmUoKTsKICAgICAgICB0cnkgewogICAgICAgICAgYXdhaXQgYi5hcHBseUNv
bnN0cmFpbnRzKHsKICAgICAgICAgICAgd2lkdGg6IHsgbWF4OiAzMjAgfSwKICAgICAgICAgICAg
aGVpZ2h0OiB7IG1heDogMjAwIH0sCiAgICAgICAgICAgIC8vIHdpZHRoOiB7IG1heDogNjQwIH0s
CiAgICAgICAgICAgIC8vIGhlaWdodDogeyBtYXg6IDQwMCB9LAogICAgICAgICAgICBmcmFtZVJh
dGU6IDEKICAgICAgICAgIH0pOwogICAgICAgIH0gY2F0Y2ggKGUpIHsKICAgICAgICAgIGNvbnNv
bGUuZXJyb3IoZSk7CiAgICAgICAgICByZXR1cm47CiAgICAgICAgfQogICAgICAgIHdpbmRvdy5i
PWI7CiAgICAgICAgdmFyIGMgPSBuZXcgTWVkaWFTdHJlYW0oKTsKICAgICAgICBjLmFkZFRyYWNr
KGIpOwogICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdzbWFsbFZpZGVvJykuc3JjT2Jq
ZWN0ID0gYzsKICAgICAgfQogICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgndGVzdCcpLmFk
ZEV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGVzdCk7CgogICAgPC9zY3JpcHQ+CiAgPC9ib2R5Pgo8
L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440360</attachid>
            <date>2021-10-06 06:41:31 -0700</date>
            <delta_ts>2021-10-08 09:10:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231286-20211006154129.patch</filename>
            <type>text/plain</type>
            <size>11572</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNDkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjc2ZDRjZDBlMDY2OTQx
NWY4NzkyZWVkNGJhMGVhMGI0YTNkYTRjNS4uMzAwNjZlMDI0MDdhMmQyNTljMTMyY2UyNGZmNTI4
YmQ5YTAwZjllNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIxLTEwLTA2ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbVRyYWNr
LmFwcGx5Q29uc3RyYWludHMgYmVoYXZpb3IgcmVncmVzc2VkIGluIFNhZmFyaSAxNQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjg2CisgICAgICAg
IDxyZGFyOi8vcHJvYmxlbS84MzkzMDg2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZSB3YXMgb25seSBl
eHBlY3Rpbmcgc291cmNlcyB3aXRoIHByZXNldHMsIHdoaWNoIGRpc3BsYXkgY2FwdHVyZSBpcyBu
b3QuCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzb3VyY2VzIHdpdGggbm8gcHJlc2V0cyB0aGF0
IGNhbiBzY2FsZSB0byB3aGF0ZXZlciByZXNvbHV0aW9uLgorICAgICAgICBVcGRhdGUgbW9jayBz
b3VyY2UgdG8gYmUgY2xvc2VyIHRvIGRpc3BsYXkgY2FwdHVyZSBzb3VyY2UvCisKKyAgICAgICAg
VGVzdDogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHA6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLm1tOgorCiAyMDIxLTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5u
QGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgc3VwcG9ydCBmb3IgcHJvY2Vzc2luZyBwdXNoIGV2
ZW50cyB3aXRob3V0IHNlcnZpY2Ugd29ya2VyIGNsaWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggMWMzN2RmZmVk
Y2Q0NDMzYTIzZDc5Y2NiMmFkNzM1ZDExZTU2MDczOC4uOTg3NDVlNjFmNDI1MWNlYTc0YmUwYzgw
NGIxMGY0YmQ4MTk1YzFjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysr
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAyMS0xMC0wNiAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgTWVkaWFTdHJlYW1U
cmFjay5hcHBseUNvbnN0cmFpbnRzIGJlaGF2aW9yIHJlZ3Jlc3NlZCBpbiBTYWZhcmkgMTUKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMTI4NgorICAg
ICAgICA8cmRhcjovL3Byb2JsZW0vODM5MzA4NjU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHA6CisgICAgICAgIE1ha2Ugc3VyZSB0byBzZW5kIGJhY2sgc2l6ZSBh
bmQgZnJhbWVSYXRlIGZvciBhbGwgc291cmNlcy4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICBEbyBub3Qgc2V0IGEgZnJh
bWVSYXRlIGNvbnN0cmFpbnQgaW4gY2FzZSBmcmFtZVJhdGUgaXMgbnVsbC4KKwogMjAyMS0xMC0w
NiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBv
cnQgZm9yIHByb2Nlc3NpbmcgcHVzaCBldmVudHMgd2l0aG91dCBzZXJ2aWNlIHdvcmtlciBjbGll
bnRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9SZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZS5jcHAKaW5kZXggODY4NmJhYzRmMTYx
MjY2MDhjOWYxNTJhNjJlMTA0ZTNkYjcyNTc0NS4uNjA5ZjYyODE4YjYyNGE5ZTA4NjI4YzE2ZGQ4
ZjVkNTFkNDM0NDNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlLmNwcApAQCAt
NjIsNyArNjIsNiBAQCBjb25zdCBWZWN0b3I8UmVmPFZpZGVvUHJlc2V0Pj4mIFJlYWx0aW1lVmlk
ZW9DYXB0dXJlU291cmNlOjpwcmVzZXRzKCkKICAgICBpZiAobV9wcmVzZXRzLmlzRW1wdHkoKSkK
ICAgICAgICAgZ2VuZXJhdGVQcmVzZXRzKCk7CiAKLSAgICBBU1NFUlQoIW1fcHJlc2V0cy5pc0Vt
cHR5KCkpOwogICAgIHJldHVybiBtX3ByZXNldHM7CiB9CiAKQEAgLTI1Niw2ICsyNTUsMjIgQEAg
c3RkOjpvcHRpb25hbDxSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6Q2FwdHVyZVNpemVBbmRG
cmFtZVJhdGU+IFJlYWx0aW1lVmlkZW8KICAgICAgICAgcmVxdWVzdGVkSGVpZ2h0ID0gc2l6ZSgp
LmhlaWdodCgpOwogICAgIH0KIAorICAgIGlmIChwcmVzZXRzKCkuaXNFbXB0eSgpKSB7CisgICAg
ICAgIC8vIFRoZSBzb3VyY2UgaXMgYWJsZSB0byByZXNpemUgYXQgd2lsbCwgbGV0J3MgdXNlIGl0
LgorICAgICAgICBpZiAoIXJlcXVlc3RlZFdpZHRoICYmICByZXF1ZXN0ZWRIZWlnaHQgJiYgc2l6
ZSgpLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisKKyAgICAgICAgSW50U2l6
ZSBjYXB0dXJlU2l6ZTsKKyAgICAgICAgaWYgKCFyZXF1ZXN0ZWRXaWR0aCkgeworICAgICAgICAg
ICAgY2FwdHVyZVNpemUuc2V0V2lkdGgoKnJlcXVlc3RlZFdpZHRoKTsKKyAgICAgICAgICAgIGNh
cHR1cmVTaXplLnNldEhlaWdodChyZXF1ZXN0ZWRIZWlnaHQgPyAqcmVxdWVzdGVkSGVpZ2h0IDog
KnJlcXVlc3RlZFdpZHRoICogc2l6ZSgpLmhlaWdodCgpIC8gc2l6ZSgpLndpZHRoKCkpOworICAg
ICAgICB9IGVsc2UgeworICAgICAgICAgICAgY2FwdHVyZVNpemUuc2V0SGVpZ2h0KCpyZXF1ZXN0
ZWRIZWlnaHQpOworICAgICAgICAgICAgY2FwdHVyZVNpemUuc2V0V2lkdGgocmVxdWVzdGVkV2lk
dGggPyAqcmVxdWVzdGVkV2lkdGggOiAqcmVxdWVzdGVkSGVpZ2h0ICogc2l6ZSgpLndpZHRoKCkg
LyBzaXplKCkuaGVpZ2h0KCkpOworICAgICAgICB9CisgICAgICAgIHJldHVybiBDYXB0dXJlU2l6
ZUFuZEZyYW1lUmF0ZSB7IFZpZGVvUHJlc2V0OjpjcmVhdGUoVmlkZW9QcmVzZXREYXRhIHsgY2Fw
dHVyZVNpemUsIHsgfSB9KSwgY2FwdHVyZVNpemUsIHJlcXVlc3RlZEZyYW1lUmF0ZS52YWx1ZV9v
cihmcmFtZVJhdGUoKSkgfTsKKyAgICB9CisKICAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IGV4YWN0
U2l6ZVByZXNldDsKICAgICBSZWZQdHI8VmlkZW9QcmVzZXQ+IGFzcGVjdFJhdGlvUHJlc2V0Owog
ICAgIEludFNpemUgYXNwZWN0UmF0aW9NYXRjaFNpemU7CkBAIC0zODMsNyArMzk4LDggQEAgdm9p
ZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0U2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9w
dGlvbmFsPGludD4gd2lkdGgsIHMKIAogICAgIGlmICghbWF0Y2gtPnJlcXVlc3RlZFNpemUuaXNF
bXB0eSgpKQogICAgICAgICBzZXRTaXplKG1hdGNoLT5yZXF1ZXN0ZWRTaXplKTsKLSAgICBzZXRG
cmFtZVJhdGUobWF0Y2gtPnJlcXVlc3RlZEZyYW1lUmF0ZSk7CisgICAgaWYgKG1hdGNoLT5yZXF1
ZXN0ZWRGcmFtZVJhdGUpCisgICAgICAgIHNldEZyYW1lUmF0ZShtYXRjaC0+cmVxdWVzdGVkRnJh
bWVSYXRlKTsKIH0KIAogdm9pZCBSZWFsdGltZVZpZGVvQ2FwdHVyZVNvdXJjZTo6ZGlzcGF0Y2hN
ZWRpYVNhbXBsZVRvT2JzZXJ2ZXJzKE1lZGlhU2FtcGxlJiBzYW1wbGUpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCmluZGV4IDk1Y2YzNWNkNGViMTMxOGQ4NjgzMjczYTVk
MDk2YzczNjQ0NjA4YjAuLjgzZWE5MWNlYzAxYmJlMTBlYTdjMDIwZDUyMjA1NDVlYTliYzgzNGQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oCkBAIC01OCwxMCArNTgs
MTMgQEAgcHJpdmF0ZToKICAgICBQbGF0Zm9ybUxheWVyKiBwbGF0Zm9ybUxheWVyKCkgY29uc3Q7
CiAgICAgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSBmaW5hbDsKICAgICBib29sIGNhblJlc2l6
ZVZpZGVvRnJhbWVzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIC8vIFdlIG1v
Y2sgbWFjIGltcGxlbWVudGF0aW9uIGZvciB3aGljaCBkaXNwbGF5IHNvdXJjZSBpcyBub3QgYSBS
ZWFsdGltZVZpZGVvU291cmNlLgorICAgIGJvb2wgaXNWaWRlb1NvdXJjZSgpIGNvbnN0IHsgcmV0
dXJuICFtX2lzRGlzcGxheTsgfQogCiAgICAgc3RkOjp1bmlxdWVfcHRyPEltYWdlVHJhbnNmZXJT
ZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAgICAgSW50U2l6ZSBtX3ByZXNldFNp
emU7CiAgICAgUmVmPFdvcmtRdWV1ZT4gbV93b3JrUXVldWU7CisgICAgYm9vbCBtX2lzRGlzcGxh
eSB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggZjAzOTg3NzE3MTY0NzdhMTg5ZTg2YTMx
OGMwNzYwYjkzM2M0OTBhNy4uMDg0ODdmMjU1NjAwMTU1NDA1NTVlZjc1NGNlNGYzMmEyZjgzZDlh
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQpAQCAtNzIsNyAr
NzIsOSBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3Jl
YXRlKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJgogCiBSZWY8TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpjcmVhdGVGb3JNb2NrRGlzcGxheUNh
cHR1cmVyKFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2Fs
dCkKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1h
YyhXVEZNb3ZlKGRldmljZUlEKSwgV1RGTW92ZShuYW1lKSwgV1RGTW92ZShoYXNoU2FsdCkpKTsK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMoV1RGTW92ZShkZXZpY2VJRCksIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpKSk7
CisgICAgc291cmNlLT5tX2lzRGlzcGxheSA9IHRydWU7CisgICAgcmV0dXJuIHNvdXJjZTsKIH0K
IAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KFN0cmluZyYmIGRldmljZUlELCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggYzgxMGYxMGQwOWNjMDg4ODAzZjMzYzA2YzA3
YWY2NjFkN2E3ODQzYS4uN2IyNTJlNDM3NzU2NmNjMzI5NDgxZTFmMjQ2ODZjOGFhN2U2MjEwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTMxOCw5ICszMTgsOSBAQCB2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaQogICAgICAgICBpZiAoc291cmNlLT5pc1ZpZGVvU291cmNlKCkpIHsK
ICAgICAgICAgICAgIGF1dG8mIHZpZGVvU291cmNlID0gc3RhdGljX2Nhc3Q8UmVhbHRpbWVWaWRl
b1NvdXJjZSY+KHNvdXJjZS5nZXQoKSk7CiAgICAgICAgICAgICBwcmVzZXRzID0gdmlkZW9Tb3Vy
Y2UucHJlc2V0c0RhdGEoKTsKLSAgICAgICAgICAgIHNpemUgPSB2aWRlb1NvdXJjZS5zaXplKCk7
Ci0gICAgICAgICAgICBmcmFtZVJhdGUgPSB2aWRlb1NvdXJjZS5mcmFtZVJhdGUoKTsKICAgICAg
ICAgfQorICAgICAgICBzaXplID0gc291cmNlLT5zaXplKCk7CisgICAgICAgIGZyYW1lUmF0ZSA9
IHNvdXJjZS0+ZnJhbWVSYXRlKCk7CiAKICAgICAgICAgQVNTRVJUKCFtX3Byb3hpZXMuY29udGFp
bnMoaWQpKTsKICAgICAgICAgYXV0byBwcm94eSA9IG1ha2VVbmlxdWU8U291cmNlUHJveHk+KGlk
LCBtX2Nvbm5lY3Rpb25Qcm94eS0+Y29ubmVjdGlvbigpLCBXVEZNb3ZlKHNvdXJjZSkpOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDFjYjAwMDc0NzFlNDIyYmRlNzQyZDIwMjRmNjVkMmFh
ZTgwYTRjNGMuLmFmZmM0YzA1NDkzMTlmM2VjYjAyZDI4MmI4Y2MyOWJmNTM4M2NiNjkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTE3NCwxMCArMTc0LDExIEBAIHZvaWQgUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZTo6c2V0RnJhbWVSYXRlV2l0aFByZXNldChkb3VibGUgZnJhbWVSYXRl
LCBSZWZQdHI8CiAgICAgTWVkaWFDb25zdHJhaW50cyBjb25zdHJhaW50czsKIAogICAgIGNvbnN0
cmFpbnRzLmlzVmFsaWQgPSB0cnVlOwotICAgIERvdWJsZUNvbnN0cmFpbnQgZnJhbWVSYXRlQ29u
c3RyYWludCgiZnJhbWVSYXRlIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpGcmFtZVJhdGUpOwot
ICAgIGZyYW1lUmF0ZUNvbnN0cmFpbnQuc2V0SWRlYWwoZnJhbWVSYXRlKTsKLSAgICBjb25zdHJh
aW50cy5tYW5kYXRvcnlDb25zdHJhaW50cy5zZXQoTWVkaWFDb25zdHJhaW50VHlwZTo6RnJhbWVS
YXRlLCBmcmFtZVJhdGVDb25zdHJhaW50KTsKLQorICAgIGlmIChmcmFtZVJhdGUpIHsKKyAgICAg
ICAgRG91YmxlQ29uc3RyYWludCBmcmFtZVJhdGVDb25zdHJhaW50KCJmcmFtZVJhdGUiX3MsIE1l
ZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSk7CisgICAgICAgIGZyYW1lUmF0ZUNvbnN0cmFp
bnQuc2V0SWRlYWwoZnJhbWVSYXRlKTsKKyAgICAgICAgY29uc3RyYWludHMubWFuZGF0b3J5Q29u
c3RyYWludHMuc2V0KE1lZGlhQ29uc3RyYWludFR5cGU6OkZyYW1lUmF0ZSwgZnJhbWVSYXRlQ29u
c3RyYWludCk7CisgICAgfQogICAgIGlmIChwcmVzZXQpIHsKICAgICAgICAgSW50Q29uc3RyYWlu
dCB3aWR0aENvbnN0cmFpbnQoIndpZHRoIl9zLCBNZWRpYUNvbnN0cmFpbnRUeXBlOjpXaWR0aCk7
CiAgICAgICAgIHdpZHRoQ29uc3RyYWludC5zZXRJZGVhbChwcmVzZXQtPnNpemUud2lkdGgoKSk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYmYwMDM2M2Y4NWFmNTlkNjk0ODIzMjNjNmU5NTVlNmQ5OGQxMmVmZi4uNTI0OGZm
NGNiODBhOWMyMTc0YTZhZDBmMjUyOGMzN2RjNjIxNjFkYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBA
CisyMDIxLTEwLTA2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAg
ICBNZWRpYVN0cmVhbVRyYWNrLmFwcGx5Q29uc3RyYWludHMgYmVoYXZpb3IgcmVncmVzc2VkIGlu
IFNhZmFyaSAxNQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjMxMjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzkzMDg2NT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbWVkaWFzdHJlYW0v
Z2V0RGlzcGxheU1lZGlhLXNpemUtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWw6IEFkZGVkLgorCiAyMDIxLTEw
LTA0ICBaaXJhbiBTdW4gIDx6c3VuQGlnYWxpYS5jb20+CiAKICAgICAgICAgW2Nzcy1ncmlkXSBS
ZXN5bmMgd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtZ3JpZCB0ZXN0cyBmcm9tIHVwc3RyZWFt
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRp
YS1zaXplLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlz
cGxheU1lZGlhLXNpemUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlNDA0YjQzY2Y1MDA4NmIy
ZTRmZTE3NDY3MWE3NjVhMDk2NmNhMzQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9m
YXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDUgQEAKKworCitQQVNTIEVuc3VyZSBnZXREaXNwbGF5TWVkaWEgc2l6ZSBjYW4gYmUgcmVk
dWNlZCB3aXRoIGFwcGx5Q29uc3RyYWludHMKK1BBU1MgRW5zdXJlIGdldERpc3BsYXlNZWRpYSBz
aXplIGNhbiBiZSBpbmNyZWFzZWQgd2l0aCBhcHBseUNvbnN0cmFpbnRzCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5kNWU5ZDk0YTE0N2YwZDYzODVlMGVhYjY3NWRhMDUyYWMzMDRmZTcwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVk
aWEtc2l6ZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxl
PmdldERpc3BsYXlNZWRpYSBhbmQgc2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXREaXNwbGF5TWVkaWEtdXRpbHMuanMiPjwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRl
bzEiIGF1dG9wbGF5PjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8yIiBhdXRvcGxh
eT48L3ZpZGVvPgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsK
KyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgY2FsbEdldERpc3BsYXlNZWRpYSh7IHZpZGVvOiB7
IHdpZHRoOiA2NDAsIGhlaWdodDo0ODAgfSB9KTsKKyAgICBjb25zdCBzdHJlYW0yID0gc3RyZWFt
MS5jbG9uZSgpOworCisgICAgYXdhaXQgc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpWzBdLmFwcGx5
Q29uc3RyYWludHMoeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCB9KTsKKworICAgIHZpZGVvMS5z
cmNPYmplY3QgPSBzdHJlYW0xOworICAgIHZpZGVvMi5zcmNPYmplY3QgPSBzdHJlYW0yOworCisg
ICAgYXdhaXQgdmlkZW8xLnBsYXkoKTsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworCisgICAg
YXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHZpZGVvMS52aWRlb0hlaWdodCwgNDgwKTsKKworICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZp
ZGVvV2lkdGgsIDMyMCk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzIudmlkZW9IZWlnaHQsIDI0
MCk7Cit9LCAiRW5zdXJlIGdldERpc3BsYXlNZWRpYSBzaXplIGNhbiBiZSByZWR1Y2VkIHdpdGgg
YXBwbHlDb25zdHJhaW50cyIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNv
bnN0IHN0cmVhbTEgPSBhd2FpdCBjYWxsR2V0RGlzcGxheU1lZGlhKHsgdmlkZW86IHsgd2lkdGg6
IDY0MCwgaGVpZ2h0OjQ4MCB9IH0pOworICAgIGNvbnN0IHN0cmVhbTIgPSBzdHJlYW0xLmNsb25l
KCk7CisKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlDb25zdHJh
aW50cyh7IHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDk2MCB9KTsKKworICAgIHZpZGVvMS5zcmNPYmpl
Y3QgPSBzdHJlYW0xOworICAgIHZpZGVvMi5zcmNPYmplY3QgPSBzdHJlYW0yOworCisgICAgYXdh
aXQgdmlkZW8xLnBsYXkoKTsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworCisgICAgYXNzZXJ0
X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVv
MS52aWRlb0hlaWdodCwgNDgwKTsKKworICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZpZGVvV2lk
dGgsIDEyODApOworICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZpZGVvSGVpZ2h0LCA5NjApOwor
fSwgIkVuc3VyZSBnZXREaXNwbGF5TWVkaWEgc2l6ZSBjYW4gYmUgaW5jcmVhc2VkIHdpdGggYXBw
bHlDb25zdHJhaW50cyIpOworICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440629</attachid>
            <date>2021-10-08 09:10:30 -0700</date>
            <delta_ts>2021-10-11 00:39:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231286-20211008181028.patch</filename>
            <type>text/plain</type>
            <size>36615</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjZDEyYWZlZTAyMWQ5OGRj
MGFjMzAwZmJhMDkyZThhYTk1OWM1YjcuLmY1ZWUzZjQ1YjYxNTE0MDMyYzg2NjYyYTUwODE5NmY3
Yjk3ZTdmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTAtMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2suYXBw
bHlDb25zdHJhaW50cyBiZWhhdmlvciByZWdyZXNzZWQgaW4gU2FmYXJpIDE1CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyODYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzOTMwODY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERpc3BsYXkgdHJhY2tzIGFyZSBkaWZmZXJlbnQgaW4gdGhhdCB0aGV5
IGRvIG5vdCBoYXZlIHByZXNldHMuCisgICAgICAgIFJldmVydCBiYWNrIHRvIGRpcmVjdGx5IGxp
bmtpbmcgdGhlIFdlYlByb2Nlc3MgdHJhY2sgd2l0aCB0aGUgcmVtb3RlIGRpc3BsYXkgc291cmNl
IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBSZWFsdGltZVZpZGVvU291cmNlLgorICAgICAgICBUaGlz
IHJlc3RvcmVzIHBhc3QgYmVoYXZpb3IuCisgICAgICAgIFJlZmFjdG9yaW5nIG9mIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIHRvIHVzZSBhIHNpbmdsZSBtYXAuCisgICAgICAgIFdlIGRvIG5vdCB5
ZXQgc3VwcG9ydCBjbG9uaW5nIHRyYWNrcyB0byBnZXQgZGlmZmVyZW50IHNpemVzLCB0aGlzIHNo
b3VsZCBiZSBkb25lIGFzIGEgZm9sbG93LXVwLgorCisgICAgICAgIENvdmVyZWQgYnkgZmFzdC9t
ZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sLgorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDIxLTEwLTA4ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCaW5kIHRoZSBudW1iZXIgb2YgV2ViUlRDIHNv
Y2tldHMgb3BlbmVkIHBlciBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzcyMmVm
OGY1ZjNlYzdjMGNhYmY1ZjcwOWUyOWQ1NmJkY2M3MWI3My4uZDRjNWU4ZTJhMjZlMzFiMGI2YmQw
ZDI2MDc5MjFmY2Y3MDIyZjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjEyLDYgKzYx
Miw3IEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yQ29j
b2EubW0KIFdlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKK1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZWQyMDQxZmE1MmRmMzZhOTE2NmZjNzI4MmUxOWI2NGI5MWQ0OWIzZS4uY2EyMTIzNGY0Y2Fk
NTFkMDA0YjgzYjY4Mjk2ZTBhZTg4ZmQ2MGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODg1LDYgKzM4ODUsOCBAQAogCQk0MTg5
N0VENDFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ1MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3Jh
Z2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3
RUQ2MUY0MTVEODYwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MThGQ0JFNDI3MTA0OURDMDBGOTZF
Q0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTlBQ0Y5QjFGOTgxRDI2MDA5RjFBODMgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQTVGN0I5MjI2
RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29h
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2
NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTkwLDYgKzk1OTIsOCBAQAogCQkJCTQx
Njg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk0MUU2N0E4RDI1RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAgKi8sCiAJCQkJNDFFNjdBOEMyNUQyQ0ZEMDAwN0IwQTRDIC8qIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCAqLywKKwkJCQk0MThGQ0JFMzI3MTA0OURCMDBGOTZF
Q0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcCAqLywKKwkJCQk0MThGQ0JFNDI3
MTA0OURDMDBGOTZFQ0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggKi8sCiAJCQkJ
NDE2MDA4QjIyNURBODk1QjAwRTg5MkZFIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAgKi8sCiAJCQkJNDE2MDA4QjEyNURBODZCOTAwRTg5MkZFIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oICovLAogCQkJCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3Bw
CmluZGV4IDE1OGMxZmQ3MDA1OGE1MGQyZmU1MGM3ZTg1NTA3YWUyYjNiOTUwYTguLjY1YjhlYjAw
NzQ1OTQwYWE2MjhlN2RhOTEyOWZiZTA5NzM1MWM4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmNwcApAQCAtMTA0LDYgKzEwNCwxOSBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYgc291cgogICAgIH0p
OwogfQogCit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgQVNTRVJUKFdURjo6
aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKHNvdXJjZS0+Y29ubmVjdGlvbigp
KTsKKworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgc291cmNlID0gV1RGTW92ZShzb3VyY2UpXSgpIG11dGFibGUgeworICAgICAgICBh
dXRvIGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKKworICAgICAgICBBU1NFUlQo
IW1fdmlkZW9Tb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV92aWRlb1Nv
dXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVtb3RlVmlkZW8+KFdURk1vdmUoc291
cmNlKSkpOworICAgIH0pOworfQorCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5SdW5Mb29wKCkpOwpAQCAtMjE1LDcgKzIy
OCw3IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRT
dG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuCiAgICAgc3RhcnRUaHJlYWQoKTsKIH0KIAot
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZVZpZGVvOjpSZW1vdGVWaWRlbyhSZWY8
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJiBzb3VyY2UpCitSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFNvdXJjZSYmIHNvdXJjZSkKICAgICA6
IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKIHsKIH0KQEAgLTIzNSw4ICsyNDgsMTEgQEAgdm9p
ZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKFJlbW90ZVZpZGVvU2EKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBtX3NvdXJjZS0+dmlkZW9TYW1wbGVBdmFpbGFibGUo
KnNhbXBsZVJlZiwgcmVtb3RlU2FtcGxlLnNpemUoKSk7CisgICAgc3dpdGNoT24obV9zb3VyY2Us
IFsmXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBz
b3VyY2UtPnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYsIHJlbW90ZVNhbXBsZS5zaXpl
KCkpOworICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNl
KSB7CisgICAgICAgIHNvdXJjZS0+cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJl
Zik7CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggMmMzN2YxNWU3
NjE1NGVhOWNkYzI3YmI2Y2E5NzI3Zjg2YzQwZDFlNi4uMTVjOGFkZWUzNjNmMGYxOTJlZDYyMWFk
NDcwOTgxNTc1MmY4MWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgiCisjaW5jbHVkZSAiUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CkBAIC01NSw2ICs1Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKICAg
ICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CisgICAg
dm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mJik7CiAgICAg
dm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIp
OwogCiAgICAgdm9pZCBkaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiop
OwpAQCAtMTAwLDEyICsxMDIsMTMgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBSZW1vdGVWaWRlbyB7
CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAg
ZXhwbGljaXQgUmVtb3RlVmlkZW8oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYpOwor
ICAgICAgICB1c2luZyBTb3VyY2UgPSBWYXJpYW50PFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OworICAgICAgICBleHBsaWNp
dCBSZW1vdGVWaWRlbyhTb3VyY2UmJik7CiAKICAgICAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWls
YWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiBtX3NvdXJjZTsKKyAgICAgICAgU291
cmNlIG1fc291cmNlOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFu
c2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKaW5kZXggMjI5YTg4M2Y5NmJiMzQ5MWQwNWFmY2E1M2VjOGRkYjA5ZmY3
ZDI0Yi4uNTdkNWE3ZmEwMGZkZDk1NzgxMDhlYzg4YmI1YjI1MTg5MjJmYjc0NCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcApAQCAtNDYsNyArNDYsOCBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
CiB7CiAgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwg
Y29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFuYWdlci5hZGRBdWRpb1NvdXJjZShz
b3VyY2UuY29weVJlZigpKTsKKyAgICBmcHJpbnRmKHN0ZGVyciwgIlJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZSAlZFxuIiwgKGludClzb3VyY2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2
NCgpKTsKKyAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5h
Z2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVm
KCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4g
c291cmNlOwpAQCAtMTIwLDcgKzEyMSw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltCiB2b2lk
IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKICAgICBtX3Byb3h5Lmhh
c0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZUF1ZGlvU291cmNlKGlkZW50aWZpZXIoKSk7
CisgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogICAgIG1fbWFuYWdl
ci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCAwM2NhZTJhNWUyYWQ5ZTM2ZDI4NGM4M2Vk
YjAyMDU1NjZlZDNkNTk4Li5jZTBjOWNlZDUwOWJiZGZlMzJhY2UzMDJlOTRjMjE5MmM5MjA2NWVm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2
b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmln
dXJhdGlvbigpIGZpbmFsIHsgfQotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJik7CisgICAg
dm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBB
cHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGhhc0VuZGVkKCkgZmlu
YWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0
aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICBjb25zdCBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJl
dHVybiBtX2NhcGFiaWxpdGllczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5jMjU1ZmZiMzNlMWQ5ZmE4ZDZhNGQxMDc0OTgzM2FjOGZkMDdlNGZjCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAi
Y29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgiCisKKyNp
ZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNz
YWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldl
YlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKworbmFt
ZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENh
cHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQoreworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRp
bWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMs
IFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKSk7CisgICAgZnByaW50ZihzdGRlcnIsICJSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U6OmNyZWF0ZSAlZFxuIiwgKGludClzb3VyY2UtPmlkZW50aWZpZXIoKS50b1VJbnQ2
NCgpKTsKKyAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBtYW5h
Z2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVm
KCkpOworICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKKyAgICByZXR1cm4g
c291cmNlOworfQorCitSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OlJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBj
b25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKKyAgICA6
IFJlYWx0aW1lTWVkaWFTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIFdU
Rk1vdmUobmFtZSksIFN0cmluZyB7IGRldmljZS5wZXJzaXN0ZW50SWQoKSB9LCBXVEZNb3ZlKGhh
c2hTYWx0KSkKKyAgICAsIG1fcHJveHkoaWRlbnRpZmllciwgZGV2aWNlLCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzLCBjb25zdHJhaW50cykKKyAgICAsIG1fbWFuYWdlcihtYW5hZ2VyKQorewor
ICAgIEFTU0VSVChkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlNj
cmVlbiB8fCBkZXZpY2UudHlwZSgpID09IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OldpbmRv
dyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjcmVhdGVSZW1vdGVN
ZWRpYVNvdXJjZSgpCit7CisgICAgbV9wcm94eS5jcmVhdGVSZW1vdGVNZWRpYVNvdXJjZShkZXZp
Y2VJREhhc2hTYWx0KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYm9v
bCBzdWNjZWVkZWQsIGF1dG8mJiBlcnJvck1lc3NhZ2UsIGF1dG8mJiBzZXR0aW5ncywgYXV0byYm
IGNhcGFiaWxpdGllcywgYXV0byYmLCBhdXRvLCBhdXRvKSB7CisgICAgICAgIGlmICghc3VjY2Vl
ZGVkKSB7CisgICAgICAgICAgICBtX3Byb3h5LmRpZEZhaWwoV1RGTW92ZShlcnJvck1lc3NhZ2Up
KTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorCisgICAgICAgIHNldFNldHRpbmdz
KFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICAgICAgc2V0Q2FwYWJpbGl0aWVzKFdURk1vdmUoY2Fw
YWJpbGl0aWVzKSk7CisgICAgICAgIHNldE5hbWUoU3RyaW5nIHsgbV9zZXR0aW5ncy5sYWJlbCgp
LnN0cmluZygpIH0pOworCisgICAgICAgIG1fcHJveHkuc2V0QXNSZWFkeSgpOworICAgICAgICBp
ZiAobV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpCisgICAgICAgICAgICBXZWJQ
cm9jZXNzOjpzaW5nbGV0b24oKS5lbnN1cmVHUFVQcm9jZXNzQ29ubmVjdGlvbigpLmFkZENsaWVu
dCgqdGhpcyk7CisgICAgfSk7Cit9CisKK1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6flJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpCit7CisgICAgaWYgKG1fcHJveHkuc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcygpKSB7CisgICAgICAgIGlmIChhdXRvKiBjb25uZWN0aW9uID0gV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZXhpc3RpbmdHUFVQcm9jZXNzQ29ubmVjdGlvbigpKQorICAg
ICAgICAgICAgY29ubmVjdGlvbi0+cmVtb3ZlQ2xpZW50KCp0aGlzKTsKKyAgICB9Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpzZXRDYXBhYmlsaXRpZXMoUmVhbHRpbWVN
ZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYmIGNhcGFiaWxpdGllcykKK3sKKyAgICBtX2NhcGFiaWxp
dGllcyA9IFdURk1vdmUoY2FwYWJpbGl0aWVzKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U6OnNldFNldHRpbmdzKFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNl
dHRpbmdzKQoreworICAgIGF1dG8gY2hhbmdlZCA9IG1fc2V0dGluZ3MuZGlmZmVyZW5jZShzZXR0
aW5ncyk7CisgICAgbV9zZXR0aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOworICAgIG5vdGlmeVNl
dHRpbmdzRGlkQ2hhbmdlT2JzZXJ2ZXJzKGNoYW5nZWQpOworfQorCit2b2lkIFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZTo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3sKKyAgICBzZXRTZXR0aW5ncyhX
VEZNb3ZlKHNldHRpbmdzKSk7CisgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVk
KCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpoYXNFbmRlZCgpCit7
CisgICAgbV9wcm94eS5oYXNFbmRlZCgpOworICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRl
bnRpZmllcigpKTsKKyAgICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5y
ZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U6OmNhcHR1cmVTdG9wcGVkKCkKK3sKKyAgICBzdG9wKCk7CisgICAgaGFzRW5kZWQo
KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNhcHR1cmVGYWlsZWQo
KQoreworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OmNhcHR1cmVGYWlsZWQoKTsKKyAgICBoYXNF
bmRlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6YXBwbHlDb25z
dHJhaW50cyhjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBjb25zdHJhaW50cywgQXBwbHlDb25zdHJh
aW50c0hhbmRsZXImJiBjYWxsYmFjaykKK3sKKyAgICBtX2NvbnN0cmFpbnRzID0gY29uc3RyYWlu
dHM7CisgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRzKGNvbnN0cmFpbnRzLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7Cit9CisKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCit2b2lkIFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZTo6Z3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNz
Q29ubmVjdGlvbiYpCit7CisgICAgQVNTRVJUKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcygpKTsKKyAgICBpZiAoaXNFbmRlZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBtX21h
bmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5kaWRVcGRhdGVTb3VyY2VDb25uZWN0
aW9uKGNvbm5lY3Rpb24oKSk7CisgICAgbV9wcm94eS5yZXNldFJlYWR5KCk7CisgICAgY3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoKTsKKworICAgIG1fcHJveHkuZmFpbEFwcGx5Q29uc3RyYWludENh
bGxiYWNrcygiR1BVIFByb2Nlc3MgdGVybWluYXRlZCJfcyk7CisgICAgaWYgKG1fY29uc3RyYWlu
dHMpCisgICAgICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50cygqbV9jb25zdHJhaW50cywgW10o
YXV0bykgeyB9KTsKKworICAgIGlmIChpc1Byb2R1Y2luZ0RhdGEoKSkKKyAgICAgICAgc3RhcnRQ
cm9kdWNpbmdEYXRhKCk7CisKK30KKyNlbmRpZgorCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNjZmODdkN2Q2MTRjNjM0MzQ3ZTk0NWVkNmI2ZWI3YjUy
MmUyZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKQEAgLTAsMCArMSwxMDAgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIFBMQVRGT1JNKENPQ09BKSAmJiBFTkFCTEUoTUVESUFf
U1RSRUFNKQorCisjaW5jbHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKKyNpbmNsdWRlICJS
ZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL0NhcHR1
cmVEZXZpY2UuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBNZWRpYUNvbnN0cmFpbnRzOworfQorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKworY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI7CisKK2NsYXNzIFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSBmaW5hbCA6IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQorICAgICwgcHVibGljIEdQVVByb2Nl
c3NDb25uZWN0aW9uOjpDbGllbnQKKyNlbmRpZgoreworcHVibGljOgorICAgIHN0YXRpYyBSZWY8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlKGNvbnN0IFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFt
ZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91
bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKyAgICB+UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
KCk7CisKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9wcm94eS5pZGVudGlmaWVyKCk7IH0KKyAgICBJUEM6OkNv
bm5lY3Rpb24qIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX3Byb3h5LmNvbm5lY3Rpb24oKTsgfQor
CisgICAgdm9pZCBzZXRTZXR0aW5ncyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGlu
Z3MmJik7CisKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0Zh
aWxlZChTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBlcnJvck1lc3NhZ2UpIHsg
bV9wcm94eS5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFpbGVkQ29uc3RyYWludCks
IFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7IH0KKworICAgIHZvaWQgY2FwdHVyZVN0b3BwZWQoKTsK
KyAgICB2b2lkIGNhcHR1cmVGYWlsZWQoKSBmaW5hbDsKKworICAgIHZvaWQgcmVtb3RlVmlkZW9T
YW1wbGVBdmFpbGFibGUoV2ViQ29yZTo6TWVkaWFTYW1wbGUmIHNhbXBsZSkgeyB2aWRlb1NhbXBs
ZUF2YWlsYWJsZShzYW1wbGUpOyB9CisgICAgdm9pZCBzb3VyY2VNdXRlZENoYW5nZWQoYm9vbCB2
YWx1ZSkgeyBub3RpZnlNdXRlZENoYW5nZSh2YWx1ZSk7IH0KKworcHJpdmF0ZToKKyAgICBSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIGNvbnN0IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2UmLCBjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKTsKKworICAg
IC8vIFJlYWx0aW1lTWVkaWFTb3VyY2UKKyAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSgpIGZp
bmFsIHsgbV9wcm94eS5zdGFydFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIHZvaWQgc3RvcFByb2R1
Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RvcFByb2R1Y2luZ0RhdGEoKTsgfQorICAgIGJv
b2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorICAgIHZv
aWQgYmVnaW5Db25maWd1cmF0aW9uKCkgZmluYWwgeyB9CisgICAgdm9pZCBjb21taXRDb25maWd1
cmF0aW9uKCkgZmluYWwgeyB9CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsK
KyAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7
IH0KKyAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBj
YXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQorICAgIHZvaWQg
d2hlblJlYWR5KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjYWxsYmFjaykgZmlu
YWwgeyBtX3Byb3h5LndoZW5SZWFkeShXVEZNb3ZlKGNhbGxiYWNrKSk7IH0KKyAgICBXZWJDb3Jl
OjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIGRldmljZVR5cGUoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiBtX3Byb3h5LmRldmljZVR5cGUoKTsgfQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQor
ICAgIC8vIEdQVVByb2Nlc3NDb25uZWN0aW9uOjpDbGllbnQKKyAgICB2b2lkIGdwdVByb2Nlc3ND
b25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKSBmaW5hbDsKKyNlbmRpZgor
CisgICAgdm9pZCBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOworICAgIHZvaWQgc2V0Q2FwYWJp
bGl0aWVzKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJik7CisKKyAg
ICBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkgbV9wcm94eTsKKyAgICBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbV9tYW5hZ2VyOworICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cz4gbV9jb25zdHJhaW50czsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2FwYWJpbGl0aWVzIG1fY2FwYWJpbGl0aWVzOworICAgIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VTZXR0aW5ncyBtX3NldHRpbmdzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDFjYjAwMDc0NzFlNDIy
YmRlNzQyZDIwMjRmNjVkMmFhZTgwYTRjNGMuLjllY2IwMTRkM2JmYzg2ZTExZTNjMWQ0ODIyZTRk
YmY2NDExNTBhOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ4LDcgKzQ4LDggQEAg
dXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiBSZWY8UmVhbHRpbWVWaWRlb0NhcHR1cmVTb3VyY2U+
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBk
ZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1l
LCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1hbmFnZXIsIGJv
b2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKIHsKICAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllcjo6Z2VuZXJhdGUoKSwgZGV2aWNlLCBjb25zdHJhaW50cywgV1RGTW92ZShuYW1lKSwg
V1RGTW92ZShoYXNoU2FsdCksIG1hbmFnZXIsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpKTsK
LSAgICBtYW5hZ2VyLmFkZFZpZGVvU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOworICAgIGZwcmlu
dGYoc3RkZXJyLCAiUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlICVkXG4iLCAoaW50
KXNvdXJjZS0+aWRlbnRpZmllcigpLnRvVUludDY0KCkpOworICAgIG1hbmFnZXIuYWRkU291cmNl
KHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIoKS5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAgc291cmNlLT5jcmVhdGVSZW1v
dGVNZWRpYVNvdXJjZSgpOwogICAgIHJldHVybiBzb3VyY2U7CkBAIC0xNDgsNyArMTQ5LDcgQEAg
Y29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y2FwYWJpbGl0aWVzKCkKIHZvaWQgUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6
aGFzRW5kZWQoKQogewogICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKLSAgICBtX21hbmFnZXIucmVt
b3ZlVmlkZW9Tb3VyY2UoaWRlbnRpZmllcigpKTsKKyAgICBtX21hbmFnZXIucmVtb3ZlU291cmNl
KGlkZW50aWZpZXIoKSk7CiAgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
KCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmlu
ZGV4IDFjZDUzMjg2N2IzNmExNmFjZGUwZjU0NDk0ZTVhZjdmZDMxODliYWIuLjYyY2EzOTM2YjZh
NWQxMzY3NDNmZWRiZmY2YTM4MmRhMjEwNjUwNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAt
MzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkF1ZGlvTWVkaWFTdHJlYW1UcmFja1JlbmRlcmVySW50
ZXJuYWxVbml0TWFuYWdlci5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCiAj
aW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIgorI2luY2x1ZGUgIlJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2UuaCIKICNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgiCkBAIC05Miw3NCArOTMsMTE5IEBAIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3Vs
ZENhcHR1cmVBdWRpb0luVUlQCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNp
bmdsZXRvbigpLnNldERpc3BsYXlDYXB0dXJlRmFjdG9yeShtX2Rpc3BsYXlGYWN0b3J5KTsKIH0K
IAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkQXVkaW9Tb3VyY2UoUmVmPFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYgc291cmNlKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmIHNvdXJjZSkK
IHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKLSAgICBBU1NF
UlQoIW1fYXVkaW9Tb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX2F1ZGlvU291
cmNlcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKTsKKyAgICBBU1NFUlQoIW1fc291
cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVy
LCBTb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnJlbW92ZUF1ZGlvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYgc291cmNlKQogewotICAgIEFTU0VSVChtX2F1ZGlv
U291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9hdWRpb1NvdXJjZXMucmVtb3Zl
KGlkZW50aWZpZXIpOworICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS0+aWRlbnRpZmllcigp
OworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3Nv
dXJjZXMuYWRkKGlkZW50aWZpZXIsIFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkVmlkZW9Tb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lVmlkZW9Tb3VyY2U+JiYgc291cmNlKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYgc291cmNlKQogewog
ICAgIGF1dG8gaWRlbnRpZmllciA9IHNvdXJjZS0+aWRlbnRpZmllcigpOwotICAgIEFTU0VSVCgh
bV92aWRlb1NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1fdmlkZW9Tb3VyY2Vz
LmFkZChpZGVudGlmaWVyLCBXVEZNb3ZlKHNvdXJjZSkpOworICAgIEFTU0VSVCghbV9zb3VyY2Vz
LmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFNv
dXJjZShXVEZNb3ZlKHNvdXJjZSkpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
cjo6cmVtb3ZlVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW92ZVNvdXJjZShSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIEFTU0VSVChtX3ZpZGVv
U291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV92aWRlb1NvdXJjZXMucmVtb3Zl
KGlkZW50aWZpZXIpOworICAgIEFTU0VSVChtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikp
OworICAgIG1fc291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAKIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OnNvdXJjZVN0b3BwZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllcikKIHsKLSAgICBpZiAoYXV0byBzb3VyY2UgPSBtX2F1ZGlvU291cmNlcy5n
ZXQoaWRlbnRpZmllcikpCisgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50
aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW10oUmVmPFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBl
ZCgpOwotICAgIGVsc2UgaWYgKGF1dG8gc291cmNlID0gbV92aWRlb1NvdXJjZXMuZ2V0KGlkZW50
aWZpZXIpKQorICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNl
KSB7CiAgICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoKTsKKyAgICB9LCBbXShSZWY8UmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+Y2Fw
dHVyZVN0b3BwZWQoKTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcHR1cmVG
YWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBp
ZiAoYXV0byBzb3VyY2UgPSBtX2F1ZGlvU291cmNlcy5nZXQoaWQpKQorICAgIGF1dG8gaXRlcmF0
b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9z
b3VyY2VzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihpdGVyYXRvci0+
dmFsdWUsIFtdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CiAgICAg
ICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOwotICAgIGVsc2UgaWYgKGF1dG8gc291cmNlID0g
bV92aWRlb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAg
ICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CisgICAg
ICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOworICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7
IH0pOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5n
ZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIGJvb2wgbXV0ZWQpCit2b2lkIFVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VNdXRlZENoYW5nZWQoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgYm9vbCBtdXRlZCkKIHsKLSAgICBpZiAoYXV0byBz
b3VyY2UgPSBtX2F1ZGlvU291cmNlcy5nZXQoaWQpKQorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3Nv
dXJjZXMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVu
ZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFtt
dXRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAg
c291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQobXV0ZWQpOworICAgIH0sIFttdXRlZF0oUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5zb3Vy
Y2VNdXRlZENoYW5nZWQobXV0ZWQpOwotICAgIGVsc2UgaWYgKGF1dG8gc291cmNlID0gbV92aWRl
b1NvdXJjZXMuZ2V0KGlkKSkKKyAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5zb3VyY2VNdXRlZENoYW5nZWQo
bXV0ZWQpOworICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCi12b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQoUmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdz
KQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYmIHNldHRpbmdzKQogewotICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fYXVkaW9T
b3VyY2VzLmdldChpZCkpCisgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50
aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgWyZdKFJlZjxSZW1vdGVSZWFs
dGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3Mo
V1RGTW92ZShzZXR0aW5ncykpOworICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1Nv
dXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0
dGluZ3MpKTsKLSAgICBlbHNlIGlmIChhdXRvIHNvdXJjZSA9IG1fdmlkZW9Tb3VyY2VzLmdldChp
ZCkpCisgICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2Up
IHsKICAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAg
fSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIgaWQsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3MmJiBzZXR0aW5ncykKIHsKLSAgICBpZiAoYXV0byBzb3VyY2UgPSBtX2F1ZGlvU291cmNl
cy5nZXQoaWQpKQorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVy
KTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoV1RGTW92ZShzZXR0aW5ncykpOworICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVE
aXNwbGF5U291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50
c1N1Y2NlZWRlZChXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgfSwgW10oc3RkOjpudWxscHRyX3Qp
IHsgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWlu
dHNGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQsIFN0cmluZyYmIGZhaWxl
ZENvbnN0cmFpbnQsIFN0cmluZyYmIG1lc3NhZ2UpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmluZyYmIG1lc3NhZ2Up
CiB7Ci0gICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICBh
dXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJh
dG9yID09IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoT24o
aXRlcmF0b3ItPnZhbHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3Vy
Y2UpIHsKKyAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFp
bGVkQ29uc3RyYWludCksIFdURk1vdmUobWVzc2FnZSkpOworICAgIH0sIFsmXShSZWY8UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAgIH0sIFsmXShSZWY8UmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2Up
KTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAogQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkF1ZGlvRmFjdG9yeTo6Y3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgU3RyaW5nJiYgaGFzaFNh
bHQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQpAQCAtMTk1LDcgKzI0MSw3
IEBAIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpWaWRlb0Zh
Y3Rvcnk6OmNyZWF0ZVZpZGVvQ2FwdHVyZVNvCiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpEaXNwbGF5RmFjdG9yeTo6Y3JlYXRlRGlzcGxheUNhcHR1cmVT
b3VyY2UoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKLSAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGNvbnN0cmFpbnRzLCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSkpKTsKKyAgICBy
ZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpj
cmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCB7IH0sIG1fbWFuYWdlciwgZmFsc2UpKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCBlOTAxODAzNzllNmZkYzNjMTE2NTdlNTFkODQy
NzMxYjgxNzgxNWUxLi44ZTU1OWU3ZDQ1MjdlYjdlNTljZDI4MGI4YTY0ZmQzMzc5YzQyMzZlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuaApAQCAtNDQsNiArNDQsNyBAQCBjbGFzcyBSZW1vdGVWaWRlb1NhbXBs
ZTsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
OworY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOwogY2xhc3MgUmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKQEAgLTU4LDExICs1OSwxMCBAQCBw
dWJsaWM6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUZyb21HUFVQcm9jZXNzKElQQzo6Q29u
bmVjdGlvbiYgY29ubmVjdGlvbiwgSVBDOjpEZWNvZGVyJiBkZWNvZGVyKSB7IGRpZFJlY2VpdmVN
ZXNzYWdlKGNvbm5lY3Rpb24sIGRlY29kZXIpOyB9CiAgICAgdm9pZCBzZXR1cENhcHR1cmVQcm9j
ZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0
dXJlQXVkaW9JbkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5VSVByb2Nlc3Ms
IGJvb2wgc2hvdWxkQ2FwdHVyZVZpZGVvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVE
aXNwbGF5SW5VSVByb2Nlc3MpOwogCi0gICAgdm9pZCBhZGRBdWRpb1NvdXJjZShSZWY8UmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZT4mJik7Ci0gICAgdm9pZCByZW1vdmVBdWRpb1NvdXJjZShXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7Ci0KLSAgICB2b2lkIGFkZFZpZGVv
U291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKLSAgICB2b2lkIHJlbW92
ZVZpZGVvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKKyAg
ICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mJik7CisgICAg
dm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYpOworICAgIHZv
aWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYpOworICAgIHZv
aWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyKTsK
IAogICAgIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyJiByZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcigpIHsgcmV0dXJuIG1fcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI7IH0KIApAQCAtMTI5
LDggKzEyOSw4IEBAIHByaXZhdGU6CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CiAgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVk
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBTdHJpbmcmJiwgU3RyaW5n
JiYpOwogCi0gICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciwgUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+PiBtX2F1ZGlvU291cmNlczsKLSAgICBI
YXNoTWFwPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZT4+IG1fdmlkZW9Tb3VyY2VzOworICAgIHVzaW5nIFNvdXJjZSA9
IFZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiwg
UmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+LCBSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlPj47CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciwgU291cmNlPiBtX3NvdXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9jZXNzOwogICAg
IE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFuYWdlcjsKICAg
ICBBdWRpb0ZhY3RvcnkgbV9hdWRpb0ZhY3Rvcnk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWI2ZmUwNjFhZmU1MWMyZDEw
MzJkZWFmYmQ2OGI1ZThhZjM3MTllYS4uNWVmYmMxODViMWFkMmNhODVmMGY5NTc0ZmMzMDY3M2Uw
NTE0Y2ZhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTA4ICBZb3Vlbm4gRmFibGV0
ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBNZWRpYVN0cmVhbVRyYWNrLmFwcGx5Q29u
c3RyYWludHMgYmVoYXZpb3IgcmVncmVzc2VkIGluIFNhZmFyaSAxNQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxMjg2CisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS84MzkzMDg2NT4KKworICAgICAgICBSZXZpZXdlZCBieSBFcmljIENhcmxzb24uCisK
KyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEt
c2l6ZS5odG1sOiBBZGRlZC4KKwogMjAyMS0xMC0wOCAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUu
Y29tPgogCiAgICAgICAgIFJlLXN5bmMgdGhlLWRpYWxvZy1lbGVtZW50IGFuZCBpbmVydCBXUFQg
ZnJvbSB1cHN0cmVhbQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE5YzY1ZGRjMDhhNTZmODA3MTVl
MzUxZWRkY2RjMmVkMTdhNWFhMTMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0
L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwKQEAgLTAsMCArMSw1OSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgorICAgICAgICA8dGl0bGU+Z2V0RGlzcGxheU1lZGlhIGFuZCBzaXplPC90aXRs
ZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2dl
dERpc3BsYXlNZWRpYS11dGlscy5qcyI+PC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5
PgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvMSIgYXV0b3BsYXk+PC92aWRlbz4KKyAgICAgICAg
PHZpZGVvIGlkPSJ2aWRlbzIiIGF1dG9wbGF5PjwvdmlkZW8+CisgICAgICAgIDxzY3JpcHQ+Citw
cm9taXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBjYWxs
R2V0RGlzcGxheU1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OjQ4MCB9IH0pOwor
ICAgIHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3YWl0IHZpZGVvMS5wbGF5KCk7
CisKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOworICAgIGFzc2Vy
dF9lcXVhbHModmlkZW8xLnZpZGVvSGVpZ2h0LCAzNjApOworCisgICAgY29uc3Qgc3RyZWFtMiA9
IHN0cmVhbTEuY2xvbmUoKTsKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0u
YXBwbHlDb25zdHJhaW50cyh7IHdpZHRoOiAzMjAsIGhlaWdodDogMjQwIH0pOworICAgIHZpZGVv
Mi5zcmNPYmplY3QgPSBzdHJlYW0yOworICAgIGF3YWl0IHZpZGVvMi5wbGF5KCk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKHZpZGVvMi52aWRlb1dpZHRoLCAzMjApOworICAgIGFzc2VydF9lcXVhbHMo
dmlkZW8yLnZpZGVvSGVpZ2h0LCAyNDApOworCisgICAgdGVzdCgoKSA9PiB7CisgICAgICAgIGFz
c2VydF9lcXVhbHModmlkZW8xLnZpZGVvV2lkdGgsIDY0MCk7CisgICAgICAgIGFzc2VydF9lcXVh
bHModmlkZW8xLnZpZGVvSGVpZ2h0LCAzNjApOworICAgIH0sICJvcmlnaW5hbCBzb3VyY2Ugc2hv
dWxkIHN0YXkgYXQgYSBzbWFsbCBzaXplIik7Cit9LCAiRW5zdXJlIGdldERpc3BsYXlNZWRpYSBz
aXplIGNhbiBiZSByZWR1Y2VkIHdpdGggYXBwbHlDb25zdHJhaW50cyIpOworCitwcm9taXNlX3Rl
c3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBjYWxsR2V0RGlzcGxh
eU1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OjQ4MCB9IH0pOworICAgIHZpZGVv
MS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3YWl0IHZpZGVvMS5wbGF5KCk7CisKKyAgICBh
c3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOworICAgIGFzc2VydF9lcXVhbHMo
dmlkZW8xLnZpZGVvSGVpZ2h0LCAzNjApOworCisgICAgY29uc3Qgc3RyZWFtMiA9IHN0cmVhbTEu
Y2xvbmUoKTsKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0uYXBwbHlDb25z
dHJhaW50cyh7IHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDk2MCB9KTsKKyAgICB2aWRlbzIuc3JjT2Jq
ZWN0ID0gc3RyZWFtMjsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworCisgICAgYXNzZXJ0X2Vx
dWFscyh2aWRlbzIudmlkZW9XaWR0aCwgMTI4MCk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzIu
dmlkZW9IZWlnaHQsIDk2MCk7CisKKyAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2Vx
dWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRl
bzEudmlkZW9IZWlnaHQsIDM2MCk7CisgICAgfSwgIm9yaWdpbmFsIHNvdXJjZSBzaG91bGQgc3Rh
eSBhdCBhIGJpZyBzaXplIik7Cit9LCAiRW5zdXJlIGdldERpc3BsYXlNZWRpYSBzaXplIGNhbiBi
ZSBpbmNyZWFzZWQgd2l0aCBhcHBseUNvbnN0cmFpbnRzIik7CisgICAgICAgIDwvc2NyaXB0Pgor
ICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>440761</attachid>
            <date>2021-10-11 00:39:50 -0700</date>
            <delta_ts>2021-10-18 07:33:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231286-20211011093948.patch</filename>
            <type>text/plain</type>
            <size>36986</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgzNzk3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNjZDEyYWZlZTAyMWQ5OGRj
MGFjMzAwZmJhMDkyZThhYTk1OWM1YjcuLmY1ZWUzZjQ1YjYxNTE0MDMyYzg2NjYyYTUwODE5NmY3
Yjk3ZTdmMmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTAtMDggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIE1lZGlhU3RyZWFtVHJhY2suYXBw
bHlDb25zdHJhaW50cyBiZWhhdmlvciByZWdyZXNzZWQgaW4gU2FmYXJpIDE1CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyODYKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzgzOTMwODY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIERpc3BsYXkgdHJhY2tzIGFyZSBkaWZmZXJlbnQgaW4gdGhhdCB0aGV5
IGRvIG5vdCBoYXZlIHByZXNldHMuCisgICAgICAgIFJldmVydCBiYWNrIHRvIGRpcmVjdGx5IGxp
bmtpbmcgdGhlIFdlYlByb2Nlc3MgdHJhY2sgd2l0aCB0aGUgcmVtb3RlIGRpc3BsYXkgc291cmNl
IHdpdGhvdXQgZ29pbmcgdGhyb3VnaCBSZWFsdGltZVZpZGVvU291cmNlLgorICAgICAgICBUaGlz
IHJlc3RvcmVzIHBhc3QgYmVoYXZpb3IuCisgICAgICAgIFJlZmFjdG9yaW5nIG9mIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIHRvIHVzZSBhIHNpbmdsZSBtYXAuCisgICAgICAgIFdlIGRvIG5vdCB5
ZXQgc3VwcG9ydCBjbG9uaW5nIHRyYWNrcyB0byBnZXQgZGlmZmVyZW50IHNpemVzLCB0aGlzIHNo
b3VsZCBiZSBkb25lIGFzIGEgZm9sbG93LXVwLgorCisgICAgICAgIENvdmVyZWQgYnkgZmFzdC9t
ZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5odG1sLgorCisgICAgICAgICogU291cmNl
c0NvY29hLnR4dDoKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNw
cDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
Lmg6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
LmNwcDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5jcHA6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlLmg6IEFkZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAyMDIxLTEwLTA4ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBCaW5kIHRoZSBudW1iZXIgb2YgV2ViUlRDIHNv
Y2tldHMgb3BlbmVkIHBlciBwcm9jZXNzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NvdXJj
ZXNDb2NvYS50eHQgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQKaW5kZXggMzcyMmVm
OGY1ZjNlYzdjMGNhYmY1ZjcwOWUyOWQ1NmJkY2M3MWI3My4uZDRjNWU4ZTJhMjZlMzFiMGI2YmQw
ZDI2MDc5MjFmY2Y3MDIyZjUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29j
b2EudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dApAQCAtNjEyLDYgKzYx
Miw3IEBAIFdlYlByb2Nlc3MvQXBwbGVQYXkvY29jb2EvV2ViUGF5bWVudENvb3JkaW5hdG9yQ29j
b2EubW0KIFdlYlByb2Nlc3MvY29jb2EvUGxheWJhY2tTZXNzaW9uTWFuYWdlci5tbQogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKIFdlYlByb2Nlc3MvY29j
b2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKK1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZU1lZGlhU291cmNlUHJveHkuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZWQyMDQxZmE1MmRmMzZhOTE2NmZjNzI4MmUxOWI2NGI5MWQ0OWIzZS4uY2EyMTIzNGY0Y2Fk
NTFkMDA0YjgzYjY4Mjk2ZTBhZTg4ZmQ2MGQ4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zODg1LDYgKzM4ODUsOCBAQAogCQk0MTg5
N0VENDFGNDE1RDg1MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxODk3RUQ1MUY0MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3Jh
Z2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNv
bm5lY3Rpb24ubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODk3
RUQ2MUY0MTVEODYwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmUuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MThGQ0JFNDI3MTA0OURDMDBGOTZF
Q0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTlBQ0Y5QjFGOTgxRDI2MDA5RjFBODMgLyogV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVu
dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQTVGN0I5MjI2
RUNGN0MwMDY3MTc2NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2Eu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3NpdGlvbkNvY29h
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxQTVGN0JBMjI2RUNGN0MwMDY3MTc2
NCAvKiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW0gKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5v
YmpjcHA7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC05NTkwLDYgKzk1OTIsOCBAQAogCQkJCTQx
Njg0QzREMjQ2NDNCRkEwMDFDRThFRCAvKiBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5tZXNz
YWdlcy5pbiAqLywKIAkJCQk0MUU2N0E4RDI1RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAgKi8sCiAJCQkJNDFFNjdBOEMyNUQyQ0ZEMDAwN0IwQTRDIC8qIFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCAqLywKKwkJCQk0MThGQ0JFMzI3MTA0OURCMDBGOTZF
Q0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcCAqLywKKwkJCQk0MThGQ0JFNDI3
MTA0OURDMDBGOTZFQ0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmggKi8sCiAJCQkJ
NDE2MDA4QjIyNURBODk1QjAwRTg5MkZFIC8qIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94
eS5jcHAgKi8sCiAJCQkJNDE2MDA4QjEyNURBODZCOTAwRTg5MkZFIC8qIFJlbW90ZVJlYWx0aW1l
TWVkaWFTb3VyY2VQcm94eS5oICovLAogCQkJCTQxNjg0QzUwMjQ2NDUwRkQwMDFDRThFRCAvKiBS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3Bw
CmluZGV4IDE1OGMxZmQ3MDA1OGE1MGQyZmU1MGM3ZTg1NTA3YWUyYjNiOTUwYTguLjY1YjhlYjAw
NzQ1OTQwYWE2MjhlN2RhOTEyOWZiZTA5NzM1MWM4Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
LmNwcApAQCAtMTA0LDYgKzEwNCwxOSBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
OjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYgc291cgogICAgIH0p
OwogfQogCit2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJl
bW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mJiBzb3VyY2UpCit7CisgICAgQVNTRVJUKFdURjo6
aXNNYWluUnVuTG9vcCgpKTsKKyAgICBzZXRDb25uZWN0aW9uKHNvdXJjZS0+Y29ubmVjdGlvbigp
KTsKKworICAgIG1fcXVldWUtPmRpc3BhdGNoKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgc291cmNlID0gV1RGTW92ZShzb3VyY2UpXSgpIG11dGFibGUgeworICAgICAgICBh
dXRvIGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKKworICAgICAgICBBU1NFUlQo
IW1fdmlkZW9Tb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICAgICAgbV92aWRlb1Nv
dXJjZXMuYWRkKGlkZW50aWZpZXIsIG1ha2VVbmlxdWU8UmVtb3RlVmlkZW8+KFdURk1vdmUoc291
cmNlKSkpOworICAgIH0pOworfQorCiB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpy
ZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRp
ZmllcikKIHsKICAgICBBU1NFUlQoV1RGOjppc01haW5SdW5Mb29wKCkpOwpAQCAtMjE1LDcgKzIy
OCw3IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZUF1ZGlvOjpzZXRT
dG9yYWdlKGNvbnN0IFNoYXJlZE1lbW9yeTo6SGFuCiAgICAgc3RhcnRUaHJlYWQoKTsKIH0KIAot
UmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZVZpZGVvOjpSZW1vdGVWaWRlbyhSZWY8
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJiBzb3VyY2UpCitSZW1vdGVDYXB0dXJlU2FtcGxl
TWFuYWdlcjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFNvdXJjZSYmIHNvdXJjZSkKICAgICA6
IG1fc291cmNlKFdURk1vdmUoc291cmNlKSkKIHsKIH0KQEAgLTIzNSw4ICsyNDgsMTEgQEAgdm9p
ZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OnZpZGVvU2FtcGxlQXZh
aWxhYmxlKFJlbW90ZVZpZGVvU2EKICAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CiAgICAg
ICAgIHJldHVybjsKICAgICB9Ci0KLSAgICBtX3NvdXJjZS0+dmlkZW9TYW1wbGVBdmFpbGFibGUo
KnNhbXBsZVJlZiwgcmVtb3RlU2FtcGxlLnNpemUoKSk7CisgICAgc3dpdGNoT24obV9zb3VyY2Us
IFsmXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBz
b3VyY2UtPnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYsIHJlbW90ZVNhbXBsZS5zaXpl
KCkpOworICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNl
KSB7CisgICAgICAgIHNvdXJjZS0+cmVtb3RlVmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJl
Zik7CisgICAgfSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKaW5kZXggMmMzN2YxNWU3
NjE1NGVhOWNkYzI3YmI2Y2E5NzI3Zjg2YzQwZDFlNi4uMTVjOGFkZWUzNjNmMGYxOTJlZDYyMWFk
NDcwOTgxNTc1MmY4MWMwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmgKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJJUENTZW1hcGhvcmUuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIu
aCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgiCisjaW5jbHVkZSAiUmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVWaWRl
b1NvdXJjZS5oIgogI2luY2x1ZGUgIlNoYXJlZE1lbW9yeS5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
Q0FBdWRpb1N0cmVhbURlc2NyaXB0aW9uLmg+CkBAIC01NSw2ICs1Niw3IEBAIHB1YmxpYzoKIAog
ICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKICAg
ICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CisgICAg
dm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mJik7CiAgICAg
dm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIp
OwogCiAgICAgdm9pZCBkaWRVcGRhdGVTb3VyY2VDb25uZWN0aW9uKElQQzo6Q29ubmVjdGlvbiop
OwpAQCAtMTAwLDEyICsxMDIsMTMgQEAgcHJpdmF0ZToKICAgICBjbGFzcyBSZW1vdGVWaWRlbyB7
CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogICAgIHB1YmxpYzoKLSAgICAgICAg
ZXhwbGljaXQgUmVtb3RlVmlkZW8oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYpOwor
ICAgICAgICB1c2luZyBTb3VyY2UgPSBWYXJpYW50PFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OworICAgICAgICBleHBsaWNp
dCBSZW1vdGVWaWRlbyhTb3VyY2UmJik7CiAKICAgICAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWls
YWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBsZSYmKTsKIAogICAgIHByaXZhdGU6Ci0gICAg
ICAgIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiBtX3NvdXJjZTsKKyAgICAgICAgU291
cmNlIG1fc291cmNlOwogICAgICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFu
c2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVyU2Vzc2lvbjsKICAgICB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKaW5kZXggMjI5YTg4M2Y5NmJiMzQ5MWQwNWFmY2E1M2VjOGRkYjA5ZmY3
ZDI0Yi4uMmNlOTU0ZjQ4YmZmZTFmOTQxMDU1NWM1ZTQ5YzY1NmFlZDk3ZTEzOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcApAQCAtNDYsNyArNDYsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpj
cmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mp
CiB7CiAgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwg
Y29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFuYWdlci5hZGRBdWRpb1NvdXJjZShz
b3VyY2UuY29weVJlZigpKTsKKyAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigp
KTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNv
dXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsK
ICAgICByZXR1cm4gc291cmNlOwpAQCAtMTIwLDcgKzEyMCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGlt
ZSYgdGltCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKICAg
ICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZUF1ZGlvU291cmNlKGlk
ZW50aWZpZXIoKSk7CisgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwog
ICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShp
ZGVudGlmaWVyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCAwM2NhZTJhNWUyYWQ5
ZTM2ZDI4NGM4M2VkYjAyMDU1NjZlZDNkNTk4Li5jZTBjOWNlZDUwOWJiZGZlMzJhY2UzMDJlOTRj
MjE5MmM5MjA2NWVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJp
dmF0ZToKICAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KICAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQg
Y29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50
cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRs
ZXImJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGhh
c0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNl
dHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0dXJuIG1fc2V0dGluZ3M7IH0KICAgICBjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMo
KSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGllczsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42NjM4YjFjNzNlZDk2MGEwYWM5YTRkZTAzODkzY2U5OTdhYWRiMjhl
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKQEAgLTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKwor
I2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgor
I2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWlu
dHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKwor
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3Jl
YXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQor
eworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwg
Y29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7CisgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNl
LmNvcHlSZWYoKSk7CisgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFk
ZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlh
U291cmNlKCk7CisgICAgcmV0dXJuIHNvdXJjZTsKK30KKworUmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFz
aFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1
cmVJbkdQVVByb2Nlc3MpCisgICAgOiBSZWFsdGltZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5hbWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lz
dGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkpCisgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIs
IGRldmljZSwgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcywgY29uc3RyYWludHMpCisgICAgLCBt
X21hbmFnZXIobWFuYWdlcikKK3sKKyAgICBBU1NFUlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4gfHwgZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3cpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKQoreworICAgIG1fcHJveHkuY3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNoU2FsdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2VlZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBh
dXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmlsaXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykg
eworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgeworICAgICAgICAgICAgbV9wcm94eS5kaWRGYWls
KFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0K
KworICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAgICAgIHNldENh
cGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGllcykpOworICAgICAgICBzZXROYW1lKFN0cmlu
ZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmcoKSB9KTsKKworICAgICAgICBtX3Byb3h5LnNl
dEFzUmVhZHkoKTsKKyAgICAgICAgaWYgKG1fcHJveHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vz
cygpKQorICAgICAgICAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vz
c0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMpOworICAgIH0pOworfQorCitSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2U6On5SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoKQoreworICAg
IGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSkgeworICAgICAgICBpZiAo
YXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJv
Y2Vzc0Nvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgIGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgq
dGhpcyk7CisgICAgfQorfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6c2V0
Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRp
ZXMpCit7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBXVEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1l
ZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3sKKyAgICBhdXRvIGNoYW5nZWQgPSBtX3Nl
dHRpbmdzLmRpZmZlcmVuY2Uoc2V0dGluZ3MpOworICAgIG1fc2V0dGluZ3MgPSBXVEZNb3ZlKHNl
dHRpbmdzKTsKKyAgICBub3RpZnlTZXR0aW5nc0RpZENoYW5nZU9ic2VydmVycyhjaGFuZ2VkKTsK
K30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNT
dWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3Mp
Cit7CisgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOworICAgIG1fcHJveHkuYXBw
bHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZTo6aGFzRW5kZWQoKQoreworICAgIG1fcHJveHkuaGFzRW5kZWQoKTsKKyAgICBtX21h
bmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgbV9tYW5hZ2VyLnJlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291cmNlKGlkZW50aWZpZXIoKSk7Cit9CisKK3Zv
aWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjYXB0dXJlU3RvcHBlZCgpCit7CisgICAg
c3RvcCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5
U291cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3sKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0
dXJlRmFpbGVkKCk7CisgICAgaGFzRW5kZWQoKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMoY29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29u
c3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVyJiYgY2FsbGJhY2spCit7CisgICAgbV9j
b25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOworICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50cyhj
b25zdHJhaW50cywgV1RGTW92ZShjYWxsYmFjaykpOworfQorCisjaWYgRU5BQkxFKEdQVV9QUk9D
RVNTKQordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0
aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rpb24mKQoreworICAgIEFTU0VSVChtX3Byb3h5
LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSk7CisgICAgaWYgKGlzRW5kZWQoKSkKKyAgICAg
ICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCku
ZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25uZWN0aW9uKCkpOworICAgIG1fcHJveHkucmVz
ZXRSZWFkeSgpOworICAgIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CisKKyAgICBtX3Byb3h5
LmZhaWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3MoIkdQVSBQcm9jZXNzIHRlcm1pbmF0ZWQiX3Mp
OworICAgIGlmIChtX2NvbnN0cmFpbnRzKQorICAgICAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWlu
dHMoKm1fY29uc3RyYWludHMsIFtdKGF1dG8pIHsgfSk7CisKKyAgICBpZiAoaXNQcm9kdWNpbmdE
YXRhKCkpCisgICAgICAgIHN0YXJ0UHJvZHVjaW5nRGF0YSgpOworCit9CisjZW5kaWYKKworfQor
CisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjY2Zjg3ZDdkNjE0
YzYzNDM0N2U5NDVlZDZiNmViN2I1MjJlMmRiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC0w
LDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShD
T0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25u
ZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmgiCisj
aW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFs
dGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgTWVkaWFDb25zdHJh
aW50czsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOworCitjbGFzcyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UgZmluYWwgOiBwdWJs
aWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
KyAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CisjZW5kaWYKK3sKK3B1
YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisgICAgflJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpOworCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRp
ZmllcigpOyB9CisgICAgSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9w
cm94eS5jb25uZWN0aW9uKCk7IH0KKworICAgIHZvaWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOworCisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRz
U3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKyAgICB2
b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3Ry
aW5nJiYgZXJyb3JNZXNzYWdlKSB7IG1fcHJveHkuYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZN
b3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKGVycm9yTWVzc2FnZSkpOyB9CisKKyAgICB2
b2lkIGNhcHR1cmVTdG9wcGVkKCk7CisgICAgdm9pZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisK
KyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZhaWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxl
JiBzYW1wbGUpIHsgdmlkZW9TYW1wbGVBdmFpbGFibGUoc2FtcGxlKTsgfQorICAgIHZvaWQgc291
cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsgbm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9
CisKK3ByaXZhdGU6CisgICAgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2Vzcyk7CisKKyAgICAvLyBSZWFsdGltZU1lZGlhU291cmNlCisgICAgdm9pZCBz
dGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1fcHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7
IH0KKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0b3BQcm9k
dWNpbmdEYXRhKCk7IH0KKyAgICBib29sIGlzQ2FwdHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsg
cmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGJlZ2luQ29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQor
ICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZvaWQgYXBwbHlD
b25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJh
aW50c0hhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBoYXNFbmRlZCgpIGZpbmFsOworICAgIGNv
bnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5h
bCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisgICAgY29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBh
YmlsaXRpZXM7IH0KKyAgICB2b2lkIHdoZW5SZWFkeShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0
cmluZyk+JiYgY2FsbGJhY2spIGZpbmFsIHsgbV9wcm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxs
YmFjaykpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VU
eXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9wcm94eS5kZXZpY2VUeXBlKCk7IH0KKworI2lm
IEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAvLyBHUFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50
CisgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlvbkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0
aW9uJikgZmluYWw7CisjZW5kaWYKKworICAgIHZvaWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2Uo
KTsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiYpOworCisgICAgUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5IG1f
cHJveHk7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImIG1fbWFuYWdlcjsKKyAgICBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHM+IG1fY29uc3RyYWludHM7CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsK
KyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNw
cAppbmRleCAxY2IwMDA3NDcxZTQyMmJkZTc0MmQyMDI0ZjY1ZDJhYWU4MGE0YzRjLi5kNjc2YjIz
OTBlOGEyZmE2ZTA5M2Q1Mzk2ZmZiODUzNjM3YTNhZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwCkBAIC00OCw3ICs0OCw3IEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogUmVmPFJlYWx0
aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
Y29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiB7CiAg
ICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3Ry
YWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRD
YXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFuYWdlci5hZGRWaWRlb1NvdXJjZShzb3VyY2Uu
Y29weVJlZigpKTsKKyAgICBtYW5hZ2VyLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAg
ICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5j
b3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICBy
ZXR1cm4gc291cmNlOwpAQCAtMTQ4LDcgKzE0OCw3IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygp
CiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKICAgICBtX3By
b3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2VyLnJlbW92ZVZpZGVvU291cmNlKGlkZW50aWZp
ZXIoKSk7CisgICAgbV9tYW5hZ2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogICAgIG1f
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlm
aWVyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCAxY2Q1MzI4NjdiMzZhMTZhY2Rl
MGY1NDQ5NGU1YWY3ZmQzMTg5YmFiLi42MmNhMzkzNmI2YTVkMTM2NzQzZmVkYmZmNmEzODJkYTIx
MDY1MDcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRl
ICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXIuaCIKICNp
bmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCIK
ICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmgiCiAjaW5jbHVkZSAiVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgpAQCAtOTIsNzQgKzkzLDExOSBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBzaG91bGRDYXB0dXJlQXVkaW9JblVJUAogICAg
ICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXREaXNwbGF5Q2Fw
dHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OmFkZEF1ZGlvU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYm
IHNvdXJjZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVt
b3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBpZGVudGlmaWVy
ID0gc291cmNlLT5pZGVudGlmaWVyKCk7Ci0gICAgQVNTRVJUKCFtX2F1ZGlvU291cmNlcy5jb250
YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9hdWRpb1NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFdU
Rk1vdmUoc291cmNlKSk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmll
cikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgU291cmNlKFdURk1vdmUoc291cmNl
KSkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdmVBdWRpb1NvdXJj
ZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
PiYmIHNvdXJjZSkKIHsKLSAgICBBU1NFUlQobV9hdWRpb1NvdXJjZXMuY29udGFpbnMoaWRlbnRp
ZmllcikpOwotICAgIG1fYXVkaW9Tb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKyAgICBhdXRv
IGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNl
cy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBT
b3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmFkZFZpZGVvU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXJj
ZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlPiYmIHNvdXJjZSkKIHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBz
b3VyY2UtPmlkZW50aWZpZXIoKTsKLSAgICBBU1NFUlQoIW1fdmlkZW9Tb3VyY2VzLmNvbnRhaW5z
KGlkZW50aWZpZXIpKTsKLSAgICBtX3ZpZGVvU291cmNlcy5hZGQoaWRlbnRpZmllciwgV1RGTW92
ZShzb3VyY2UpKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7
CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBTb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7
CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnJlbW92ZVZpZGVvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCit2b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQobV92aWRlb1NvdXJjZXMuY29udGFpbnMoaWRlbnRp
ZmllcikpOwotICAgIG1fdmlkZW9Tb3VyY2VzLnJlbW92ZShpZGVudGlmaWVyKTsKKyAgICBBU1NF
UlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKKyAgICBtX3NvdXJjZXMucmVtb3Zl
KGlkZW50aWZpZXIpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VT
dG9wcGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAg
aWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0
b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihp
dGVyYXRvci0+dmFsdWUsIFtdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNl
KSB7CiAgICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0b3BwZWQoKTsKLSAgICBlbHNlIGlmIChhdXRv
IHNvdXJjZSA9IG1fdmlkZW9Tb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICB9LCBbXShSZWY8
UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmNh
cHR1cmVTdG9wcGVkKCk7CisgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKCk7CisgICAgfSwg
W10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmNhcHR1cmVGYWlsZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWQpCit2b2lk
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXB0dXJlRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRp
b1NvdXJjZXMuZ2V0KGlkKSkKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRl
bnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbXShSZWY8UmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWls
ZWQoKTsKLSAgICBlbHNlIGlmIChhdXRvIHNvdXJjZSA9IG1fdmlkZW9Tb3VyY2VzLmdldChpZCkp
CisgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAg
ICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVkKCk7CisgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWls
ZWQoKTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkLCBib29sIG11dGVkKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c291cmNlTXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIGJvb2wgbXV0ZWQpCiB7Ci0gICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMu
Z2V0KGlkKSkKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7
CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOwor
CisgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGlt
ZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFu
Z2VkKG11dGVkKTsKKyAgICB9LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
PiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsK
LSAgICBlbHNlIGlmIChhdXRvIHNvdXJjZSA9IG1fdmlkZW9Tb3VyY2VzLmdldChpZCkpCisgICAg
fSwgW211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CiAg
ICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsKKyAgICB9LCBbXShzdGQ6
Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291
cmNlU2V0dGluZ3NDaGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWFs
dGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykK
IHsKLSAgICBpZiAoYXV0byBzb3VyY2UgPSBtX2F1ZGlvU291cmNlcy5nZXQoaWQpKQorICAgIGF1
dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0
b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihp
dGVyYXRvci0+dmFsdWUsIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJj
ZSkgeworICAgICAgICBzb3VyY2UtPnNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAg
ICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAg
ICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7Ci0gICAgZWxzZSBpZiAo
YXV0byBzb3VyY2UgPSBtX3ZpZGVvU291cmNlcy5nZXQoaWQpKQorICAgIH0sIFsmXShSZWY8UmVt
b3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+c2V0
U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOworICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7
IH0pOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRz
U3VjY2VlZGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7Ci0g
ICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICBhdXRvIGl0
ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09
IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoT24oaXRlcmF0
b3ItPnZhbHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsK
ICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0dGlu
Z3MpKTsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2Up
IHsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkg
eworICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV1RGTW92ZShzZXR0
aW5ncykpOworICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCi12b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzRmFpbGVkKFJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkLCBTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBt
ZXNzYWdlKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0Zh
aWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBm
YWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBtZXNzYWdlKQogewotICAgIGlmIChhdXRvIHNvdXJj
ZSA9IG1fYXVkaW9Tb3VyY2VzLmdldChpZCkpCisgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNl
cy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkp
CisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgWyZdKFJl
ZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3Zl
KG1lc3NhZ2UpKTsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBz
b3VyY2UpIHsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNv
dXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShm
YWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNzYWdlKSk7CisgICAgfSwgW10oc3RkOjpudWxs
cHRyX3QpIHsgfSk7CiB9CiAKIENhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0
dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhhc2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykKQEAgLTE5NSw3ICsyNDEsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJv
ciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6VmlkZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1
cmVTbwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlz
cGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZp
Y2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAg
cmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShS
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9
LCB7IH0sIG1fbWFuYWdlciwgZmFsc2UpKSk7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVy
cm9yKFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWlu
dHMsIHsgfSwgeyB9LCBtX21hbmFnZXIsIGZhbHNlKSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgK
aW5kZXggZTkwMTgwMzc5ZTZmZGMzYzExNjU3ZTUxZDg0MjczMWI4MTc4MTVlMS4uOGU1NTllN2Q0
NTI3ZWI3ZTU5Y2QyODBiOGE2NGZkMzM3OWM0MjM2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTQ0
LDYgKzQ0LDcgQEAgY2xhc3MgUmVtb3RlVmlkZW9TYW1wbGU7CiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAogY2xhc3MgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTsKK2NsYXNzIFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZTsKIGNsYXNzIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U7CiBjbGFzcyBX
ZWJQcm9jZXNzOwogCkBAIC01OCwxMSArNTksMTAgQEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQ
Qzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNlaXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNv
ZGVyKTsgfQogICAgIHZvaWQgc2V0dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVy
ZUF1ZGlvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBi
b29sIHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRl
b0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlRGlzcGxheUluVUlQcm9jZXNzKTsKIAot
ICAgIHZvaWQgYWRkQXVkaW9Tb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYp
OwotICAgIHZvaWQgcmVtb3ZlQXVkaW9Tb3VyY2UoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZUlkZW50aWZpZXIpOwotCi0gICAgdm9pZCBhZGRWaWRlb1NvdXJjZShSZWY8UmVtb3RlUmVhbHRp
bWVWaWRlb1NvdXJjZT4mJik7Ci0gICAgdm9pZCByZW1vdmVWaWRlb1NvdXJjZShXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1v
dGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKKyAgICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAgICBSZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlciYgcmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKSB7IHJldHVybiBtX3JlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOyB9CiAKQEAgLTEyOSw4ICsxMjksOCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYp
OwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0ZhaWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0cmluZyYmKTsKIAotICAgIEhhc2hNYXA8V2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlPj4gbV9hdWRpb1NvdXJjZXM7Ci0gICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlSWRlbnRpZmllciwgUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+PiBt
X3ZpZGVvU291cmNlczsKKyAgICB1c2luZyBTb3VyY2UgPSBWYXJpYW50PHN0ZDo6bnVsbHB0cl90
LCBSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4sIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OworICAgIEhhc2hNYXA8
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNvdXJjZT4gbV9zb3VyY2Vz
OwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKICAgICBOb09wQ2FwdHVyZURldmljZU1hbmFn
ZXIgbV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7CiAgICAgQXVkaW9GYWN0b3J5IG1fYXVkaW9G
YWN0b3J5OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IGViNmZlMDYxYWZlNTFjMmQxMDMyZGVhZmJkNjhiNWU4YWYzNzE5ZWEu
LjVlZmJjMTg1YjFhZDJjYTg1ZjBmOTU3NGZjMzA2NzNlMDUxNGNmYWYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxNCBAQAorMjAyMS0xMC0wOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgTWVkaWFTdHJlYW1UcmFjay5hcHBseUNvbnN0cmFpbnRzIGJlaGF2aW9yIHJlZ3Jl
c3NlZCBpbiBTYWZhcmkgMTUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMTI4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5MzA4NjU+CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0
cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbDogQWRkZWQuCisKIDIw
MjEtMTAtMDggIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4KIAogICAgICAgICBSZS1zeW5j
IHRoZS1kaWFsb2ctZWxlbWVudCBhbmQgaW5lcnQgV1BUIGZyb20gdXBzdHJlYW0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEt
c2l6ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjI3NjViZGM5MjQxMWUzMDI2YWI0YmRhNDVm
YzIzZGQ0NjMyYjM5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFz
dHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAor
CisKK1BBU1MgRW5zdXJlIGdldERpc3BsYXlNZWRpYSBzaXplIGNhbiBiZSByZWR1Y2VkIHdpdGgg
YXBwbHlDb25zdHJhaW50cworUEFTUyBFbnN1cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJl
IGluY3JlYXNlZCB3aXRoIGFwcGx5Q29uc3RyYWludHMKK0ZBSUwgb3JpZ2luYWwgc291cmNlIHNo
b3VsZCBzdGF5IGF0IGEgc21hbGwgc2l6ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCA2NDAgYnV0
IGdvdCAzMjAKK0ZBSUwgb3JpZ2luYWwgc291cmNlIHNob3VsZCBzdGF5IGF0IGEgYmlnIHNpemUg
YXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgNjQwIGJ1dCBnb3QgMTI4MAorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwgYi9M
YXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMTljNjVkZGMwOGE1NmY4MDcxNWUzNTFlZGRjZGMyZWQxN2E1YWExMwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlh
LXNpemUuaHRtbApAQCAtMCwwICsxLDU5IEBACis8IWRvY3R5cGUgaHRtbD4KKzxodG1sPgorICAg
IDxoZWFkPgorICAgICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgICAgIDx0aXRsZT5n
ZXREaXNwbGF5TWVkaWEgYW5kIHNpemU8L3RpdGxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBz
cmM9Ii4uLy4uL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAg
ICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvZ2V0RGlzcGxheU1lZGlhLXV0aWxzLmpzIj48L3Nj
cmlwdD4KKyAgICA8L2hlYWQ+CisgICAgPGJvZHk+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8x
IiBhdXRvcGxheT48L3ZpZGVvPgorICAgICAgICA8dmlkZW8gaWQ9InZpZGVvMiIgYXV0b3BsYXk+
PC92aWRlbz4KKyAgICAgICAgPHNjcmlwdD4KK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7Cisg
ICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IGNhbGxHZXREaXNwbGF5TWVkaWEoeyB2aWRlbzogeyB3
aWR0aDogNjQwLCBoZWlnaHQ6NDgwIH0gfSk7CisgICAgdmlkZW8xLnNyY09iamVjdCA9IHN0cmVh
bTE7CisgICAgYXdhaXQgdmlkZW8xLnBsYXkoKTsKKworICAgIGFzc2VydF9lcXVhbHModmlkZW8x
LnZpZGVvV2lkdGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9IZWlnaHQs
IDM2MCk7CisKKyAgICBjb25zdCBzdHJlYW0yID0gc3RyZWFtMS5jbG9uZSgpOworICAgIGF3YWl0
IHN0cmVhbTIuZ2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHsgd2lkdGg6IDMy
MCwgaGVpZ2h0OiAyNDAgfSk7CisgICAgdmlkZW8yLnNyY09iamVjdCA9IHN0cmVhbTI7CisgICAg
YXdhaXQgdmlkZW8yLnBsYXkoKTsKKworICAgIGFzc2VydF9lcXVhbHModmlkZW8yLnZpZGVvV2lk
dGgsIDMyMCk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzIudmlkZW9IZWlnaHQsIDI0MCk7CisK
KyAgICB0ZXN0KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0
aCwgNjQwKTsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9IZWlnaHQsIDM2MCk7
CisgICAgfSwgIm9yaWdpbmFsIHNvdXJjZSBzaG91bGQgc3RheSBhdCBhIHNtYWxsIHNpemUiKTsK
K30sICJFbnN1cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJlIHJlZHVjZWQgd2l0aCBhcHBs
eUNvbnN0cmFpbnRzIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAoKSA9PiB7CisgICAgY29uc3Qg
c3RyZWFtMSA9IGF3YWl0IGNhbGxHZXREaXNwbGF5TWVkaWEoeyB2aWRlbzogeyB3aWR0aDogNjQw
LCBoZWlnaHQ6NDgwIH0gfSk7CisgICAgdmlkZW8xLnNyY09iamVjdCA9IHN0cmVhbTE7CisgICAg
YXdhaXQgdmlkZW8xLnBsYXkoKTsKKworICAgIGFzc2VydF9lcXVhbHModmlkZW8xLnZpZGVvV2lk
dGgsIDY0MCk7CisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9IZWlnaHQsIDM2MCk7CisK
KyAgICBjb25zdCBzdHJlYW0yID0gc3RyZWFtMS5jbG9uZSgpOworICAgIGF3YWl0IHN0cmVhbTIu
Z2V0VmlkZW9UcmFja3MoKVswXS5hcHBseUNvbnN0cmFpbnRzKHsgd2lkdGg6IDEyODAsIGhlaWdo
dDogOTYwIH0pOworICAgIHZpZGVvMi5zcmNPYmplY3QgPSBzdHJlYW0yOworICAgIGF3YWl0IHZp
ZGVvMi5wbGF5KCk7CisKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMi52aWRlb1dpZHRoLCAxMjgw
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMi52aWRlb0hlaWdodCwgOTYwKTsKKworICAgIHRl
c3QoKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDAp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb0hlaWdodCwgMzYwKTsKKyAgICB9
LCAib3JpZ2luYWwgc291cmNlIHNob3VsZCBzdGF5IGF0IGEgYmlnIHNpemUiKTsKK30sICJFbnN1
cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJlIGluY3JlYXNlZCB3aXRoIGFwcGx5Q29uc3Ry
YWludHMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441600</attachid>
            <date>2021-10-18 07:33:27 -0700</date>
            <delta_ts>2021-10-19 00:21:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231286-20211018163324.patch</filename>
            <type>text/plain</type>
            <size>36767</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGJhNGRiNDVjOWM1NTRlOTNj
NTFkNGEwOWI4ZGI2ZjRhNzg0YThmNzYuLjcxYzdiYzA5MGY3NDg2NmE4ZTJiMzYzY2NiMjU5MTg3
MDdkMzIwNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIGdldERpc3BsYXlNZWRpYSBNZWRp
YVN0cmVhbVRyYWNrLmFwcGx5Q29uc3RyYWludHMgYmVoYXZpb3IgcmVncmVzc2VkIGluIFNhZmFy
aSAxNQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
Mjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzkzMDg2NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgRGlzcGxheSB0cmFja3MgYXJlIGRpZmZlcmVu
dCBpbiB0aGF0IHRoZXkgZG8gbm90IGhhdmUgcHJlc2V0cy4KKyAgICAgICAgUmV2ZXJ0IGJhY2sg
dG8gZGlyZWN0bHkgbGlua2luZyB0aGUgV2ViUHJvY2VzcyB0cmFjayB3aXRoIHRoZSByZW1vdGUg
ZGlzcGxheSBzb3VyY2Ugd2l0aG91dCBnb2luZyB0aHJvdWdoIFJlYWx0aW1lVmlkZW9Tb3VyY2Uu
CisgICAgICAgIFRoaXMgcmVzdG9yZXMgcGFzdCBiZWhhdmlvci4KKyAgICAgICAgUmVmYWN0b3Jp
bmcgb2YgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgdG8gdXNlIGEgc2luZ2xlIG1hcC4KKyAgICAg
ICAgV2UgZG8gbm90IHlldCBzdXBwb3J0IGNsb25pbmcgdHJhY2tzIHRvIGdldCBkaWZmZXJlbnQg
c2l6ZXMsIHRoaXMgc2hvdWxkIGJlIGRvbmUgYXMgYSBmb2xsb3ctdXAuCisKKyAgICAgICAgQ292
ZXJlZCBieSBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjEtMTAtMTggIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRlZSBvcmRl
ciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0IGIvU291cmNlL1dlYktpdC9Tb3VyY2Vz
Q29jb2EudHh0CmluZGV4IGZkOTQ5ZDg5YjAwZWY0YTM0NzcxNjgzYzczZWI3MWE5OGYwNTFhNmYu
LjNlZDUzYTRmYzExNDZjMWFmNDc0OWMyMWMwYzhkMmIwMjg0ZWNmZmIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L1NvdXJjZXND
b2NvYS50eHQKQEAgLTYxNSw2ICs2MTUsNyBAQCBXZWJQcm9jZXNzL0FwcGxlUGF5L2NvY29hL1dl
YlBheW1lbnRDb29yZGluYXRvckNvY29hLm1tCiBXZWJQcm9jZXNzL2NvY29hL1BsYXliYWNrU2Vz
c2lvbk1hbmFnZXIubW0KIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFn
ZXIuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCitX
ZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKIFdlYlByb2Nl
c3MvY29jb2EvUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcAogV2ViUHJvY2Vzcy9j
b2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGRjZjRjMGY3YjhjNDY1ZWNhZTc1Mzc2Y2I3ZjYzYzEx
OTIwYWExZTUuLjc2ODJjMjFiMmE4YTQ0ZTc5ODk1YWZmOWUxNjU0MDhlMTE0YmFjYTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMzk0
NCw2ICszOTQ0LDggQEAKIAkJNDE4OTdFRDQxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFn
ZUVuZ2luZUNvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29u
bmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg5N0VENTFGNDE1RDg1
MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk0MTg5N0VENjFGNDE1RDg2MDAxNkZBNDIgLyogQ2FjaGVTdG9yYWdl
RW5naW5lLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOEZDQkUzMjcxMDQ5REIwMEY5NkVDQSAvKiBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
NDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE5QUNGOUIxRjk4MUQyNjAwOUYxQTgzIC8qIFdlYlNlcnZp
Y2VXb3JrZXJGZXRjaFRhc2tDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV2ViU2VydmljZVdvcmtlckZldGNoVGFza0NsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MUE1RjdCOTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VEaXNwb3NpdGlvbkNvY29hLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MUE1RjdCQTIyNkVDRjdDMDA2NzE3NjQgLyogQXV0aGVudGljYXRpb25DaGFsbGVuZ2VEaXNwb3Np
dGlvbkNvY29hLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VEaXNwb3NpdGlvbkNvY29hLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTcy
MSw2ICs5NzIzLDggQEAKIAkJCQk0MTY4NEM0RDI0NjQzQkZBMDAxQ0U4RUQgLyogUmVtb3RlQ2Fw
dHVyZVNhbXBsZU1hbmFnZXIubWVzc2FnZXMuaW4gKi8sCiAJCQkJNDFFNjdBOEQyNUQyQ0ZEMDAw
N0IwQTRDIC8qIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwICovLAogCQkJCTQxRTY3QThD
MjVEMkNGRDAwMDdCMEE0QyAvKiBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmggKi8sCisJCQkJ
NDE4RkNCRTMyNzEwNDlEQjAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5j
cHAgKi8sCisJCQkJNDE4RkNCRTQyNzEwNDlEQzAwRjk2RUNBIC8qIFJlbW90ZVJlYWx0aW1lRGlz
cGxheVNvdXJjZS5oICovLAogCQkJCTQxNjAwOEIyMjVEQTg5NUIwMEU4OTJGRSAvKiBSZW1vdGVS
ZWFsdGltZU1lZGlhU291cmNlUHJveHkuY3BwICovLAogCQkJCTQxNjAwOEIxMjVEQTg2QjkwMEU4
OTJGRSAvKiBSZW1vdGVSZWFsdGltZU1lZGlhU291cmNlUHJveHkuaCAqLywKIAkJCQk0MTY4NEM1
MDI0NjQ1MEZEMDAxQ0U4RUQgLyogUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZUNh
cHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAppbmRleCBlYmNmMTBhYTg2MTJhZTQ2NGJlMmMyMzc4Mzlk
YTg0NTViNGRiZTA3Li41MjA5MWQ4MzQ5YzIxMDNmOWY4MGExYjQwYTY1ZmNmNDY5YTZlZmM0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKQEAgLTEwNCw2ICsxMDQsMTkgQEAgdm9pZCBSZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlPiYmIHNvdXIKICAgICB9KTsKIH0KIAordm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcjo6YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiYgc291cmNl
KQoreworICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CisgICAgc2V0Q29ubmVjdGlv
bihzb3VyY2UtPmNvbm5lY3Rpb24oKSk7CisKKyAgICBtX3F1ZXVlLT5kaXNwYXRjaChbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIHNvdXJjZSA9IFdURk1vdmUoc291cmNlKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVy
KCk7CisKKyAgICAgICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVy
KSk7CisgICAgICAgIG1fdmlkZW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBtYWtlVW5pcXVlPFJl
bW90ZVZpZGVvPihXVEZNb3ZlKHNvdXJjZSkpKTsKKyAgICB9KTsKK30KKwogdm9pZCBSZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7CiAgICAgQVNTRVJUKFdURjo6aXNNYWluUnVu
TG9vcCgpKTsKQEAgLTIxNSw3ICsyMjgsNyBAQCB2b2lkIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5h
Z2VyOjpSZW1vdGVBdWRpbzo6c2V0U3RvcmFnZShjb25zdCBTaGFyZWRNZW1vcnk6OkhhbgogICAg
IHN0YXJ0VGhyZWFkKCk7CiB9CiAKLVJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVW
aWRlbzo6UmVtb3RlVmlkZW8oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiYgc291cmNl
KQorUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90ZVZpZGVvOjpSZW1vdGVWaWRlbyhT
b3VyY2UmJiBzb3VyY2UpCiAgICAgOiBtX3NvdXJjZShXVEZNb3ZlKHNvdXJjZSkpCiB7CiB9CkBA
IC0yMzUsOCArMjQ4LDExIEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OlJlbW90
ZVZpZGVvOjp2aWRlb1NhbXBsZUF2YWlsYWJsZShSZW1vdGVWaWRlb1NhCiAgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwogICAgICAgICByZXR1cm47CiAgICAgfQotCi0gICAgbV9zb3VyY2Ut
PnZpZGVvU2FtcGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYsIHJlbW90ZVNhbXBsZS5zaXplKCkpOwor
ICAgIHN3aXRjaE9uKG1fc291cmNlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+
JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT52aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxl
UmVmLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1l
RGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPnJlbW90ZVZpZGVvU2Ft
cGxlQXZhaWxhYmxlKCpzYW1wbGVSZWYpOworICAgIH0pOwogfQogCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCmluZGV4IDJjMzdmMTVlNzYxNTRlYTljZGMyN2JiNmNhOTcyN2Y4NmM0MGQxZTYuLmI0
MTNiOGU2OTcyOTAzYWJhY2E4MjMzZGIwY2MwNjE4MGE4ZjMyMmEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlci5oCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAiSVBDU2VtYXBob3JlLmgiCiAjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5oIgogI2luY2x1
ZGUgIlJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuaCIKICNpbmNsdWRlICJTaGFyZWRNZW1vcnku
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0NBQXVkaW9TdHJlYW1EZXNjcmlwdGlvbi5oPgpAQCAtNTUs
NiArNTYsNyBAQCBwdWJsaWM6CiAKICAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRp
bWVBdWRpb1NvdXJjZT4mJik7CiAgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U+JiYpOworICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U+JiYpOwogICAgIHZvaWQgcmVtb3ZlU291cmNlKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VJZGVudGlmaWVyKTsKIAogICAgIHZvaWQgZGlkVXBkYXRlU291cmNlQ29ubmVj
dGlvbihJUEM6OkNvbm5lY3Rpb24qKTsKQEAgLTEwMCwxMiArMTAyLDEzIEBAIHByaXZhdGU6CiAg
ICAgY2xhc3MgUmVtb3RlVmlkZW8gewogICAgICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsK
ICAgICBwdWJsaWM6Ci0gICAgICAgIGV4cGxpY2l0IFJlbW90ZVZpZGVvKFJlZjxSZW1vdGVSZWFs
dGltZVZpZGVvU291cmNlPiYmKTsKKyAgICAgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50
PFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxh
eVNvdXJjZT4+OworICAgICAgICBleHBsaWNpdCBSZW1vdGVWaWRlbyhTb3VyY2UmJik7CiAKICAg
ICAgICAgdm9pZCB2aWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpSZW1vdGVWaWRlb1NhbXBs
ZSYmKTsKIAogICAgIHByaXZhdGU6Ci0gICAgICAgIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291
cmNlPiBtX3NvdXJjZTsKKyAgICAgICAgU291cmNlIG1fc291cmNlOwogICAgICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6SW1hZ2VUcmFuc2ZlclNlc3Npb25WVD4gbV9pbWFnZVRyYW5zZmVy
U2Vzc2lvbjsKICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggMjI5YTg4M2Y5
NmJiMzQ5MWQwNWFmY2E1M2VjOGRkYjA5ZmY3ZDI0Yi4uMmNlOTU0ZjQ4YmZmZTFmOTQxMDU1NWM1
ZTQ5YzY1NmFlZDk3ZTEzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcApAQCAtNDYsNyArNDYs
NyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiBS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2
aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwg
U3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29s
IHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCiB7CiAgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJl
ZigqbmV3IFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0g
ICAgbWFuYWdlci5hZGRBdWRpb1NvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBtYW5hZ2Vy
LmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVT
YW1wbGVNYW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+
Y3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwpAQCAtMTIwLDcg
KzEyMCw3IEBAIHZvaWQgUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6cmVtb3RlQXVkaW9TYW1w
bGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYgdGltCiB2b2lkIFJlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2U6Omhhc0VuZGVkKCkKIHsKICAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9t
YW5hZ2VyLnJlbW92ZUF1ZGlvU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgbV9tYW5hZ2VyLnJl
bW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2Ft
cGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJj
ZS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9T
b3VyY2UuaAppbmRleCAwM2NhZTJhNWUyYWQ5ZTM2ZDI4NGM4M2VkYjAyMDU1NjZlZDNkNTk4Li5j
ZTBjOWNlZDUwOWJiZGZlMzJhY2UzMDJlOTRjMjE5MmM5MjA2NWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlLmgKQEAgLTgwLDcgKzgwLDcgQEAgcHJpdmF0ZToKICAgICBib29sIGlzQ2FwdHVyZVNvdXJj
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KICAgICB2b2lkIGJlZ2luQ29uZmlndXJh
dGlvbigpIGZpbmFsIHsgfQogICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigpIGZpbmFsIHsg
fQotICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJik7CisgICAgdm9pZCBhcHBseUNvbnN0cmFp
bnRzKGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMmLCBBcHBseUNvbnN0cmFpbnRzSGFu
ZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGhhc0VuZGVkKCkgZmluYWw7CiAgICAgY29uc3QgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiBzZXR0aW5ncygpIGZpbmFsIHsgcmV0
dXJuIG1fc2V0dGluZ3M7IH0KICAgICBjb25zdCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBjYXBhYmlsaXRpZXMoKSBmaW5hbCB7IHJldHVybiBtX2NhcGFiaWxpdGll
czsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NjM4YjFjNzNlZDk2
MGEwYWM5YTRkZTAzODkzY2U5OTdhYWRiMjhlCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHAKQEAg
LTAsMCArMSwxNTAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgiCisKKyNpZiBQTEFURk9STShDT0NPQSkg
JiYgRU5BQkxFKE1FRElBX1NUUkVBTSkKKworI2luY2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyLmgiCisjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgorI2lu
Y2x1ZGUgIlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHlNZXNzYWdlcy5oIgorI2luY2x1ZGUg
IldlYkNvcmVBcmd1bWVudENvZGVycy5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3MuaCIKKyNpbmNs
dWRlIDxXZWJDb3JlL01lZGlhQ29uc3RyYWludHMuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7Cit1
c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKKworUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmlj
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0
cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBz
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQoreworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
Km5ldyBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXI6OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdU
Rk1vdmUoaGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Cisg
ICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CisgICAgbWFuYWdlci5yZW1v
dGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAg
ICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CisgICAgcmV0dXJuIHNvdXJjZTsK
K30KKworUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgQ2Fw
dHVyZURldmljZSYgZGV2aWNlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiYgbmFtZSwgU3RyaW5nJiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
JiBtYW5hZ2VyLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpCisgICAgOiBSZWFsdGlt
ZU1lZGlhU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBXVEZNb3ZlKG5h
bWUpLCBTdHJpbmcgeyBkZXZpY2UucGVyc2lzdGVudElkKCkgfSwgV1RGTW92ZShoYXNoU2FsdCkp
CisgICAgLCBtX3Byb3h5KGlkZW50aWZpZXIsIGRldmljZSwgc2hvdWxkQ2FwdHVyZUluR1BVUHJv
Y2VzcywgY29uc3RyYWludHMpCisgICAgLCBtX21hbmFnZXIobWFuYWdlcikKK3sKKyAgICBBU1NF
UlQoZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpTY3JlZW4gfHwg
ZGV2aWNlLnR5cGUoKSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpXaW5kb3cpOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y3JlYXRlUmVtb3RlTWVkaWFTb3Vy
Y2UoKQoreworICAgIG1fcHJveHkuY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoZGV2aWNlSURIYXNo
U2FsdCgpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGJvb2wgc3VjY2Vl
ZGVkLCBhdXRvJiYgZXJyb3JNZXNzYWdlLCBhdXRvJiYgc2V0dGluZ3MsIGF1dG8mJiBjYXBhYmls
aXRpZXMsIGF1dG8mJiwgYXV0bywgYXV0bykgeworICAgICAgICBpZiAoIXN1Y2NlZWRlZCkgewor
ICAgICAgICAgICAgbV9wcm94eS5kaWRGYWlsKFdURk1vdmUoZXJyb3JNZXNzYWdlKSk7CisgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBzZXRTZXR0aW5ncyhXVEZNb3Zl
KHNldHRpbmdzKSk7CisgICAgICAgIHNldENhcGFiaWxpdGllcyhXVEZNb3ZlKGNhcGFiaWxpdGll
cykpOworICAgICAgICBzZXROYW1lKFN0cmluZyB7IG1fc2V0dGluZ3MubGFiZWwoKS5zdHJpbmco
KSB9KTsKKworICAgICAgICBtX3Byb3h5LnNldEFzUmVhZHkoKTsKKyAgICAgICAgaWYgKG1fcHJv
eHkuc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcygpKQorICAgICAgICAgICAgV2ViUHJvY2Vzczo6
c2luZ2xldG9uKCkuZW5zdXJlR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKS5hZGRDbGllbnQoKnRoaXMp
OworICAgIH0pOworfQorCitSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6On5SZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UoKQoreworICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQ
VVByb2Nlc3MoKSkgeworICAgICAgICBpZiAoYXV0byogY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6
OnNpbmdsZXRvbigpLmV4aXN0aW5nR1BVUHJvY2Vzc0Nvbm5lY3Rpb24oKSkKKyAgICAgICAgICAg
IGNvbm5lY3Rpb24tPnJlbW92ZUNsaWVudCgqdGhpcyk7CisgICAgfQorfQorCit2b2lkIFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6c2V0Q2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDYXBhYmlsaXRpZXMmJiBjYXBhYmlsaXRpZXMpCit7CisgICAgbV9jYXBhYmlsaXRpZXMgPSBX
VEZNb3ZlKGNhcGFiaWxpdGllcyk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlOjpzZXRTZXR0aW5ncyhSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykK
K3sKKyAgICBhdXRvIGNoYW5nZWQgPSBtX3NldHRpbmdzLmRpZmZlcmVuY2Uoc2V0dGluZ3MpOwor
ICAgIG1fc2V0dGluZ3MgPSBXVEZNb3ZlKHNldHRpbmdzKTsKKyAgICBub3RpZnlTZXR0aW5nc0Rp
ZENoYW5nZU9ic2VydmVycyhjaGFuZ2VkKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShz
ZXR0aW5ncykpOworICAgIG1fcHJveHkuYXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZCgpOworfQor
Cit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6aGFzRW5kZWQoKQoreworICAgIG1f
cHJveHkuaGFzRW5kZWQoKTsKKyAgICBtX21hbmFnZXIucmVtb3ZlU291cmNlKGlkZW50aWZpZXIo
KSk7CisgICAgbV9tYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkucmVtb3ZlU291
cmNlKGlkZW50aWZpZXIoKSk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNl
OjpjYXB0dXJlU3RvcHBlZCgpCit7CisgICAgc3RvcCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisK
K3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpjYXB0dXJlRmFpbGVkKCkKK3sKKyAg
ICBSZWFsdGltZU1lZGlhU291cmNlOjpjYXB0dXJlRmFpbGVkKCk7CisgICAgaGFzRW5kZWQoKTsK
K30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmFwcGx5Q29uc3RyYWludHMo
Y29uc3QgTWVkaWFDb25zdHJhaW50cyYgY29uc3RyYWludHMsIEFwcGx5Q29uc3RyYWludHNIYW5k
bGVyJiYgY2FsbGJhY2spCit7CisgICAgbV9jb25zdHJhaW50cyA9IGNvbnN0cmFpbnRzOworICAg
IG1fcHJveHkuYXBwbHlDb25zdHJhaW50cyhjb25zdHJhaW50cywgV1RGTW92ZShjYWxsYmFjaykp
OworfQorCisjaWYgRU5BQkxFKEdQVV9QUk9DRVNTKQordm9pZCBSZW1vdGVSZWFsdGltZURpc3Bs
YXlTb3VyY2U6OmdwdVByb2Nlc3NDb25uZWN0aW9uRGlkQ2xvc2UoR1BVUHJvY2Vzc0Nvbm5lY3Rp
b24mKQoreworICAgIEFTU0VSVChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MoKSk7
CisgICAgaWYgKGlzRW5kZWQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9tYW5hZ2VyLnJl
bW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkuZGlkVXBkYXRlU291cmNlQ29ubmVjdGlvbihjb25u
ZWN0aW9uKCkpOworICAgIG1fcHJveHkucmVzZXRSZWFkeSgpOworICAgIGNyZWF0ZVJlbW90ZU1l
ZGlhU291cmNlKCk7CisKKyAgICBtX3Byb3h5LmZhaWxBcHBseUNvbnN0cmFpbnRDYWxsYmFja3Mo
IkdQVSBQcm9jZXNzIHRlcm1pbmF0ZWQiX3MpOworICAgIGlmIChtX2NvbnN0cmFpbnRzKQorICAg
ICAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHMoKm1fY29uc3RyYWludHMsIFtdKGF1dG8pIHsg
fSk7CisKKyAgICBpZiAoaXNQcm9kdWNpbmdEYXRhKCkpCisgICAgICAgIHN0YXJ0UHJvZHVjaW5n
RGF0YSgpOworCit9CisjZW5kaWYKKworfQorCisjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2Uu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wMjY2Zjg3ZDdkNjE0YzYzNDM0N2U5NDVlZDZiNmViN2I1MjJlMmRiCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZS5oCkBAIC0wLDAgKzEsMTAwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBQTEFURk9STShDT0NPQSkgJiYgRU5BQkxFKE1FRElBX1NUUkVBTSkK
KworI2luY2x1ZGUgIkdQVVByb2Nlc3NDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVh
bHRpbWVNZWRpYVNvdXJjZVByb3h5LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9DYXB0dXJlRGV2aWNl
Lmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CitzdHJ1Y3QgTWVkaWFDb25zdHJhaW50czsKK30KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOworCitjbGFzcyBSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UgZmluYWwgOiBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZQorI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAsIHB1YmxpYyBHUFVQcm9jZXNzQ29ubmVj
dGlvbjo6Q2xpZW50CisjZW5kaWYKK3sKK3B1YmxpYzoKKyAgICBzdGF0aWMgUmVmPFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZShjb25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
JiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmlu
ZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVy
ZUluR1BVUHJvY2Vzcyk7CisgICAgflJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZSgpOworCisg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNv
bnN0IHsgcmV0dXJuIG1fcHJveHkuaWRlbnRpZmllcigpOyB9CisgICAgSVBDOjpDb25uZWN0aW9u
KiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9wcm94eS5jb25uZWN0aW9uKCk7IH0KKworICAgIHZv
aWQgc2V0U2V0dGluZ3MoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwor
CisgICAgdm9pZCBhcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VTZXR0aW5ncyYmKTsKKyAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoU3Ry
aW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgZXJyb3JNZXNzYWdlKSB7IG1fcHJveHku
YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3ZlKGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3Zl
KGVycm9yTWVzc2FnZSkpOyB9CisKKyAgICB2b2lkIGNhcHR1cmVTdG9wcGVkKCk7CisgICAgdm9p
ZCBjYXB0dXJlRmFpbGVkKCkgZmluYWw7CisKKyAgICB2b2lkIHJlbW90ZVZpZGVvU2FtcGxlQXZh
aWxhYmxlKFdlYkNvcmU6Ok1lZGlhU2FtcGxlJiBzYW1wbGUpIHsgdmlkZW9TYW1wbGVBdmFpbGFi
bGUoc2FtcGxlKTsgfQorICAgIHZvaWQgc291cmNlTXV0ZWRDaGFuZ2VkKGJvb2wgdmFsdWUpIHsg
bm90aWZ5TXV0ZWRDaGFuZ2UodmFsdWUpOyB9CisKK3ByaXZhdGU6CisgICAgUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBj
b25zdCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlJiwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJh
aW50cyosIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2Vzcyk7CisKKyAgICAvLyBSZWFs
dGltZU1lZGlhU291cmNlCisgICAgdm9pZCBzdGFydFByb2R1Y2luZ0RhdGEoKSBmaW5hbCB7IG1f
cHJveHkuc3RhcnRQcm9kdWNpbmdEYXRhKCk7IH0KKyAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRh
KCkgZmluYWwgeyBtX3Byb3h5LnN0b3BQcm9kdWNpbmdEYXRhKCk7IH0KKyAgICBib29sIGlzQ2Fw
dHVyZVNvdXJjZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRydWU7IH0KKyAgICB2b2lkIGJlZ2lu
Q29uZmlndXJhdGlvbigpIGZpbmFsIHsgfQorICAgIHZvaWQgY29tbWl0Q29uZmlndXJhdGlvbigp
IGZpbmFsIHsgfQorICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRp
YUNvbnN0cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7CisgICAgdm9p
ZCBoYXNFbmRlZCgpIGZpbmFsOworICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VTZXR0aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CisgICAg
Y29uc3QgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0
aWVzKCkgZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KKyAgICB2b2lkIHdoZW5SZWFk
eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY2FsbGJhY2spIGZpbmFsIHsgbV9w
cm94eS53aGVuUmVhZHkoV1RGTW92ZShjYWxsYmFjaykpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSBkZXZpY2VUeXBlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9w
cm94eS5kZXZpY2VUeXBlKCk7IH0KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKKyAgICAvLyBH
UFVQcm9jZXNzQ29ubmVjdGlvbjo6Q2xpZW50CisgICAgdm9pZCBncHVQcm9jZXNzQ29ubmVjdGlv
bkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikgZmluYWw7CisjZW5kaWYKKworICAgIHZv
aWQgY3JlYXRlUmVtb3RlTWVkaWFTb3VyY2UoKTsKKyAgICB2b2lkIHNldENhcGFiaWxpdGllcyhX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYpOworCisgICAgUmVtb3Rl
UmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5IG1fcHJveHk7CisgICAgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXImIG1fbWFuYWdlcjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHM+IG1fY29uc3RyYWludHM7CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyBtX2NhcGFiaWxpdGllczsKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlU2V0dGluZ3MgbV9zZXR0aW5nczsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9S
ZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAxY2IwMDA3NDcxZTQyMmJkZTc0MmQy
MDI0ZjY1ZDJhYWU4MGE0YzRjLi5kNjc2YjIzOTBlOGEyZmE2ZTA5M2Q1Mzk2ZmZiODUzNjM3YTNh
ZWRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00OCw3ICs0OCw3IEBAIHVzaW5nIG5h
bWVzcGFjZSBXZWJDb3JlOwogUmVmPFJlYWx0aW1lVmlkZW9DYXB0dXJlU291cmNlPiBSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3QgQ2FwdHVyZURldmljZSYgZGV2aWNlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiYgbmFtZSwgU3RyaW5n
JiYgaGFzaFNhbHQsIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtYW5hZ2VyLCBib29sIHNob3Vs
ZENhcHR1cmVJbkdQVVByb2Nlc3MpCiB7CiAgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXI6
OmdlbmVyYXRlKCksIGRldmljZSwgY29uc3RyYWludHMsIFdURk1vdmUobmFtZSksIFdURk1vdmUo
aGFzaFNhbHQpLCBtYW5hZ2VyLCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKSk7Ci0gICAgbWFu
YWdlci5hZGRWaWRlb1NvdXJjZShzb3VyY2UuY29weVJlZigpKTsKKyAgICBtYW5hZ2VyLmFkZFNv
dXJjZShzb3VyY2UuY29weVJlZigpKTsKICAgICBtYW5hZ2VyLnJlbW90ZUNhcHR1cmVTYW1wbGVN
YW5hZ2VyKCkuYWRkU291cmNlKHNvdXJjZS5jb3B5UmVmKCkpOwogICAgIHNvdXJjZS0+Y3JlYXRl
UmVtb3RlTWVkaWFTb3VyY2UoKTsKICAgICByZXR1cm4gc291cmNlOwpAQCAtMTQ4LDcgKzE0OCw3
IEBAIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmIFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNhcGFiaWxpdGllcygpCiB2b2lkIFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3Vy
Y2U6Omhhc0VuZGVkKCkKIHsKICAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7Ci0gICAgbV9tYW5hZ2Vy
LnJlbW92ZVZpZGVvU291cmNlKGlkZW50aWZpZXIoKSk7CisgICAgbV9tYW5hZ2VyLnJlbW92ZVNv
dXJjZShpZGVudGlmaWVyKCkpOwogICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFu
YWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cAppbmRleCA3YjFiYjU1NDAzNjdjZTg2NTA1ZGJjNWZkOTRiOGNmNDU0NjgwODdhLi4wZjM0OTUz
NDI2MDgwYjk4NDllODFlNWRhNDY3MTVmYjM3Y2Q0ZWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAK
QEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJl
ckludGVybmFsVW5pdE1hbmFnZXIuaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVjdGlvbi5o
IgogI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1v
dGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVv
U291cmNlLmgiCiAjaW5jbHVkZSAiVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgpAQCAtOTMsNzQgKzk0LDExOSBAQCB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzZXR1cENhcHR1cmVQcm9jZXNzZXMoYm9vbCBz
aG91bGRDYXB0dXJlQXVkaW9JblVJUAogICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzaW5nbGV0b24oKS5zZXREaXNwbGF5Q2FwdHVyZUZhY3RvcnkobV9kaXNwbGF5RmFjdG9yeSk7
CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZEF1ZGlvU291cmNlKFJlZjxS
ZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mJiBzb3Vy
Y2UpCiB7CiAgICAgYXV0byBpZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7Ci0gICAg
QVNTRVJUKCFtX2F1ZGlvU291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7Ci0gICAgbV9hdWRp
b1NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUoc291cmNlKSk7CisgICAgQVNTRVJUKCFt
X3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRp
ZmllciwgU291cmNlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjpyZW1vdmVBdWRpb1NvdXJjZShSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
ciBpZGVudGlmaWVyKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YWRkU291cmNlKFJl
ZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXJjZSkKIHsKLSAgICBBU1NFUlQobV9h
dWRpb1NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1fYXVkaW9Tb3VyY2VzLnJl
bW92ZShpZGVudGlmaWVyKTsKKyAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZp
ZXIoKTsKKyAgICBBU1NFUlQoIW1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAg
bV9zb3VyY2VzLmFkZChpZGVudGlmaWVyLCBTb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAK
LXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFkZFZpZGVvU291cmNlKFJlZjxSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXJjZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmIHNvdXJjZSkK
IHsKICAgICBhdXRvIGlkZW50aWZpZXIgPSBzb3VyY2UtPmlkZW50aWZpZXIoKTsKLSAgICBBU1NF
UlQoIW1fdmlkZW9Tb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIpKTsKLSAgICBtX3ZpZGVvU291
cmNlcy5hZGQoaWRlbnRpZmllciwgV1RGTW92ZShzb3VyY2UpKTsKKyAgICBBU1NFUlQoIW1fc291
cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLmFkZChpZGVudGlmaWVy
LCBTb3VyY2UoV1RGTW92ZShzb3VyY2UpKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OnJlbW92ZVZpZGVvU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdmVTb3VyY2UoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKIHsKLSAgICBBU1NFUlQobV92
aWRlb1NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwotICAgIG1fdmlkZW9Tb3VyY2VzLnJl
bW92ZShpZGVudGlmaWVyKTsKKyAgICBBU1NFUlQobV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKKyAgICBtX3NvdXJjZXMucmVtb3ZlKGlkZW50aWZpZXIpOwogfQogCiB2b2lkIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0gICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJj
ZXMuZ2V0KGlkZW50aWZpZXIpKQorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChp
ZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFtdKFJlZjxSZW1vdGVS
ZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+Y2FwdHVyZVN0
b3BwZWQoKTsKLSAgICBlbHNlIGlmIChhdXRvIHNvdXJjZSA9IG1fdmlkZW9Tb3VyY2VzLmdldChp
ZGVudGlmaWVyKSkKKyAgICB9LCBbXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mIHNv
dXJjZSkgewogICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKCk7CisgICAgfSwgW10oUmVm
PFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2Ut
PmNhcHR1cmVTdG9wcGVkKCk7CisgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAK
LXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNhcHR1cmVGYWlsZWQoUmVhbHRpbWVNZWRp
YVNvdXJjZUlkZW50aWZpZXIgaWQpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjYXB0
dXJlRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIpCiB7Ci0g
ICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICBhdXRvIGl0
ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09
IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoT24oaXRlcmF0
b3ItPnZhbHVlLCBbXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgewog
ICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKLSAgICBlbHNlIGlmIChhdXRvIHNvdXJj
ZSA9IG1fdmlkZW9Tb3VyY2VzLmdldChpZCkpCisgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVkKCk7
CisgICAgfSwgW10oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewor
ICAgICAgICBzb3VyY2UtPmNhcHR1cmVGYWlsZWQoKTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJf
dCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRD
aGFuZ2VkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBib29sIG11dGVkKQordm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlTXV0ZWRDaGFuZ2VkKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgbXV0ZWQpCiB7Ci0gICAgaWYgKGF1
dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICBhdXRvIGl0ZXJhdG9yID0g
bV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNl
cy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVl
LCBbbXV0ZWRdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CisgICAg
ICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsKKyAgICB9LCBbbXV0ZWRdKFJl
ZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+
c291cmNlTXV0ZWRDaGFuZ2VkKG11dGVkKTsKLSAgICBlbHNlIGlmIChhdXRvIHNvdXJjZSA9IG1f
dmlkZW9Tb3VyY2VzLmdldChpZCkpCisgICAgfSwgW211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVE
aXNwbGF5U291cmNlPiYgc291cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+c291cmNlTXV0ZWRDaGFu
Z2VkKG11dGVkKTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU2V0dGluZ3NDaGFuZ2VkKFJlYWx0aW1lTWVk
aWFTb3VyY2VJZGVudGlmaWVyIGlkLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0
aW5ncykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJjZVNldHRpbmdzQ2hhbmdl
ZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWFsdGltZU1lZGlh
U291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKIHsKLSAgICBpZiAoYXV0byBzb3VyY2UgPSBtX2F1
ZGlvU291cmNlcy5nZXQoaWQpKQorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMuZmluZChp
ZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQorICAgICAg
ICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFsmXShSZWY8UmVtb3Rl
UmVhbHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPnNldFNldHRp
bmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lVmlk
ZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3Zl
KHNldHRpbmdzKSk7Ci0gICAgZWxzZSBpZiAoYXV0byBzb3VyY2UgPSBtX3ZpZGVvU291cmNlcy5n
ZXQoaWQpKQorICAgIH0sIFsmXShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYgc291
cmNlKSB7CiAgICAgICAgIHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwor
ICAgIH0sIFtdKHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyOjphcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyIGlkLCBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJiBzZXR0aW5ncykKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoUmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVhbHRpbWVNZWRpYVNvdXJj
ZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7Ci0gICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1Nv
dXJjZXMuZ2V0KGlkKSkKKyAgICBhdXRvIGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRp
Zmllcik7CisgICAgaWYgKGl0ZXJhdG9yID09IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgc3dpdGNoT24oaXRlcmF0b3ItPnZhbHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFp
bnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICB9LCBbJl0oUmVmPFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPmFwcGx5Q29uc3Ry
YWludHNTdWNjZWVkZWQoV1RGTW92ZShzZXR0aW5ncykpOworICAgIH0sIFtdKHN0ZDo6bnVsbHB0
cl90KSB7IH0pOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphcHBseUNvbnN0
cmFpbnRzRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkLCBTdHJpbmcmJiBm
YWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBtZXNzYWdlKQordm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBmYWlsZWRDb25zdHJhaW50LCBTdHJpbmcmJiBtZXNz
YWdlKQogewotICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fYXVkaW9Tb3VyY2VzLmdldChpZCkpCisg
ICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChp
dGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRj
aE9uKGl0ZXJhdG9yLT52YWx1ZSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYg
c291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c0ZhaWxlZChXVEZNb3Zl
KGZhaWxlZENvbnN0cmFpbnQpLCBXVEZNb3ZlKG1lc3NhZ2UpKTsKKyAgICB9LCBbJl0oUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKKyAgICB9LCBbJl0oUmVmPFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPmFwcGx5
Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShtZXNz
YWdlKSk7CisgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKIENhcHR1cmVTb3Vy
Y2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpBdWRpb0ZhY3Rvcnk6OmNyZWF0ZUF1
ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIFN0cmluZyYmIGhh
c2hTYWx0LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKQEAgLTE5Niw3ICsy
NDIsNyBAQCBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Vmlk
ZW9GYWN0b3J5OjpjcmVhdGVWaWRlb0NhcHR1cmVTbwogCiBDYXB0dXJlU291cmNlT3JFcnJvciBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6RGlzcGxheUZhY3Rvcnk6OmNyZWF0ZURpc3BsYXlDYXB0
dXJlU291cmNlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUoZGV2aWNlLCBjb25zdHJhaW50cywgeyB9LCB7IH0sIG1fbWFuYWdlciwgZmFsc2UpKSk7Cisg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwgeyB9LCBtX21hbmFnZXIsIGZhbHNl
KSk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggZTkwMTgwMzc5ZTZmZGMzYzExNjU3ZTUx
ZDg0MjczMWI4MTc4MTVlMS4uMjI4ODEwODlkZmY4ZDViMzFhMjkyNzI2NTk0OWI2MjYxOTlhZmZj
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTQ0LDYgKzQ0LDcgQEAgY2xhc3MgUmVtb3RlVmlkZW9T
YW1wbGU7CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgUmVtb3RlUmVhbHRpbWVBdWRpb1Nv
dXJjZTsKK2NsYXNzIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTsKIGNsYXNzIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2U7CiBjbGFzcyBXZWJQcm9jZXNzOwogCkBAIC01OCwxMSArNTksMTAg
QEAgcHVibGljOgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VGcm9tR1BVUHJvY2VzcyhJUEM6
OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQQzo6RGVjb2RlciYgZGVjb2RlcikgeyBkaWRSZWNl
aXZlTWVzc2FnZShjb25uZWN0aW9uLCBkZWNvZGVyKTsgfQogICAgIHZvaWQgc2V0dXBDYXB0dXJl
UHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVByb2Nlc3MsIGJvb2wgc2hvdWxk
Q2FwdHVyZUF1ZGlvSW5HUFVQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luVUlQcm9j
ZXNzLCBib29sIHNob3VsZENhcHR1cmVWaWRlb0luR1BVUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0
dXJlRGlzcGxheUluVUlQcm9jZXNzKTsKIAotICAgIHZvaWQgYWRkQXVkaW9Tb3VyY2UoUmVmPFJl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwotICAgIHZvaWQgcmVtb3ZlQXVkaW9Tb3VyY2Uo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwotCi0gICAgdm9pZCBhZGRW
aWRlb1NvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7Ci0gICAgdm9pZCBy
ZW1vdmVWaWRlb1NvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7
CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwor
ICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKKyAg
ICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKKyAg
ICB2b2lkIHJlbW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmll
cik7CiAKICAgICBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlciYgcmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXIoKSB7IHJldHVybiBtX3JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOyB9CiAKQEAg
LTEyOSw4ICsxMjksOCBAQCBwcml2YXRlOgogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1Y2Nl
ZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYpOwogICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c0Zh
aWxlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgU3RyaW5nJiYsIFN0
cmluZyYmKTsKIAotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50
aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPj4gbV9hdWRpb1NvdXJjZXM7Ci0g
ICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+PiBtX3ZpZGVvU291cmNlczsKKyAgICB1c2luZyBTb3Vy
Y2UgPSBzdGQ6OnZhcmlhbnQ8c3RkOjpudWxscHRyX3QsIFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+LCBSZWY8UmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlPj47CisgICAgSGFzaE1hcDxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciwgU291cmNlPiBtX3NvdXJjZXM7CiAgICAgV2ViUHJvY2VzcyYgbV9wcm9j
ZXNzOwogICAgIE5vT3BDYXB0dXJlRGV2aWNlTWFuYWdlciBtX25vT3BDYXB0dXJlRGV2aWNlTWFu
YWdlcjsKICAgICBBdWRpb0ZhY3RvcnkgbV9hdWRpb0ZhY3Rvcnk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTlhNTEyOWRm
MmE1YTBmMGY2YzExMWZmOWFjZmIwYmRhYjRjMTZmMy4uN2U3OWEwNTI1OTE1NzQwOGUwNzM1ODQ1
NWVkMjUwODllZmRkZThkMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTEwLTE4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXREaXNwbGF5TWVkaWEg
TWVkaWFTdHJlYW1UcmFjay5hcHBseUNvbnN0cmFpbnRzIGJlaGF2aW9yIHJlZ3Jlc3NlZCBpbiBT
YWZhcmkgMTUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMTI4NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODM5MzA4NjU+CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgICogZmFzdC9tZWRpYXN0cmVhbS9nZXRE
aXNwbGF5TWVkaWEtc2l6ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvbWVk
aWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbDogQWRkZWQuCisKIDIwMjEtMTAtMTgg
IFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEd1YXJhbnRlZSBv
cmRlciBvZiBXZWJTb2NrZXQgZXZlbnRzIGluIGNhc2Ugb2YgYmVpbmcgcmVzdW1lZApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRp
YS1zaXplLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjc2NWJkYzkyNDExZTMwMjZhYjRiZGE0
NWZjMjNkZDQ2MzJiMzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRp
YXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBA
CisKKworUEFTUyBFbnN1cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJlIHJlZHVjZWQgd2l0
aCBhcHBseUNvbnN0cmFpbnRzCitQQVNTIEVuc3VyZSBnZXREaXNwbGF5TWVkaWEgc2l6ZSBjYW4g
YmUgaW5jcmVhc2VkIHdpdGggYXBwbHlDb25zdHJhaW50cworRkFJTCBvcmlnaW5hbCBzb3VyY2Ug
c2hvdWxkIHN0YXkgYXQgYSBzbWFsbCBzaXplIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDY0MCBi
dXQgZ290IDMyMAorRkFJTCBvcmlnaW5hbCBzb3VyY2Ugc2hvdWxkIHN0YXkgYXQgYSBiaWcgc2l6
ZSBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCA2NDAgYnV0IGdvdCAxMjgwCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lNzgyNjkyZDcyYTQxZTllNzZmODRlNDk3YzA4Mzk1ZmQ2OGQwMjBjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVk
aWEtc2l6ZS5odG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxl
PmdldERpc3BsYXlNZWRpYSBhbmQgc2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0
IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAg
ICAgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy9nZXREaXNwbGF5TWVkaWEtdXRpbHMuanMiPjwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRl
bzEiIGF1dG9wbGF5PjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8yIiBhdXRvcGxh
eT48L3ZpZGVvPgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsK
KyAgICBjb25zdCBzdHJlYW0xID0gYXdhaXQgY2FsbEdldERpc3BsYXlNZWRpYSh7IHZpZGVvOiB7
IHdpZHRoOiA2NDAsIGhlaWdodDo0ODAgfSB9KTsKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gc3Ry
ZWFtMTsKKyAgICBhd2FpdCB2aWRlbzEucGxheSgpOworCisgICAgYXNzZXJ0X2VxdWFscyh2aWRl
bzEudmlkZW9XaWR0aCwgNjQwKTsKKworICAgIGNvbnN0IHN0cmVhbTIgPSBzdHJlYW0xLmNsb25l
KCk7CisgICAgYXdhaXQgc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpWzBdLmFwcGx5Q29uc3RyYWlu
dHMoeyB3aWR0aDogMzIwLCBoZWlnaHQ6IDI0MCB9KTsKKyAgICB2aWRlbzIuc3JjT2JqZWN0ID0g
c3RyZWFtMjsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworCisgICAgYXNzZXJ0X2VxdWFscyh2
aWRlbzIudmlkZW9XaWR0aCwgMzIwKTsKKworICAgIHRlc3QoKCkgPT4geworICAgICAgICBhc3Nl
cnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOworICAgIH0sICJvcmlnaW5hbCBzb3Vy
Y2Ugc2hvdWxkIHN0YXkgYXQgYSBzbWFsbCBzaXplIik7Cit9LCAiRW5zdXJlIGdldERpc3BsYXlN
ZWRpYSBzaXplIGNhbiBiZSByZWR1Y2VkIHdpdGggYXBwbHlDb25zdHJhaW50cyIpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgKCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBjYWxsR2V0
RGlzcGxheU1lZGlhKHsgdmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OjQ4MCB9IH0pOworICAg
IHZpZGVvMS5zcmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3YWl0IHZpZGVvMS5wbGF5KCk7CisK
KyAgICBhc3NlcnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOworCisgICAgY29uc3Qg
c3RyZWFtMiA9IHN0cmVhbTEuY2xvbmUoKTsKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJh
Y2tzKClbMF0uYXBwbHlDb25zdHJhaW50cyh7IHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDk2MCB9KTsK
KyAgICB2aWRlbzIuc3JjT2JqZWN0ID0gc3RyZWFtMjsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgp
OworCisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzIudmlkZW9XaWR0aCwgMTI4MCk7CisKKyAgICB0
ZXN0KCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQw
KTsKKyAgICB9LCAib3JpZ2luYWwgc291cmNlIHNob3VsZCBzdGF5IGF0IGEgYmlnIHNpemUiKTsK
K30sICJFbnN1cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJlIGluY3JlYXNlZCB3aXRoIGFw
cGx5Q29uc3RyYWludHMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441695</attachid>
            <date>2021-10-19 00:21:16 -0700</date>
            <delta_ts>2021-10-19 04:52:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231286-20211019092113.patch</filename>
            <type>text/plain</type>
            <size>37574</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU1Y2Q2ZjljYjQwMGExZTM2
YjBiNzk1ZTIwMDdjMzUzNTcwOWQ0ZDAuLjhlN2U1NTI4YmM0NGU0ODU1YzUwZDE3ZDkyZjIxNTU3
NDM5ZjVmMTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMTAtMTggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIGdldERpc3BsYXlNZWRpYSBNZWRp
YVN0cmVhbVRyYWNrLmFwcGx5Q29uc3RyYWludHMgYmVoYXZpb3IgcmVncmVzc2VkIGluIFNhZmFy
aSAxNQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
Mjg2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MzkzMDg2NT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgRGlzcGxheSB0cmFja3MgYXJlIGRpZmZlcmVu
dCBpbiB0aGF0IHRoZXkgZG8gbm90IGhhdmUgcHJlc2V0cy4KKyAgICAgICAgUmV2ZXJ0IGJhY2sg
dG8gZGlyZWN0bHkgbGlua2luZyB0aGUgV2ViUHJvY2VzcyB0cmFjayB3aXRoIHRoZSByZW1vdGUg
ZGlzcGxheSBzb3VyY2Ugd2l0aG91dCBnb2luZyB0aHJvdWdoIFJlYWx0aW1lVmlkZW9Tb3VyY2Uu
CisgICAgICAgIFRoaXMgcmVzdG9yZXMgcGFzdCBiZWhhdmlvci4KKyAgICAgICAgUmVmYWN0b3Jp
bmcgb2YgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgdG8gdXNlIGEgc2luZ2xlIG1hcC4KKyAgICAg
ICAgV2UgZG8gbm90IHlldCBzdXBwb3J0IGNsb25pbmcgdHJhY2tzIHRvIGdldCBkaWZmZXJlbnQg
c2l6ZXMsIHRoaXMgc2hvdWxkIGJlIGRvbmUgYXMgYSBmb2xsb3ctdXAuCisKKyAgICAgICAgQ292
ZXJlZCBieSBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwuCisKKyAg
ICAgICAgKiBTb3VyY2VzQ29jb2EudHh0OgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNh
bXBsZU1hbmFnZXIuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVy
ZVNhbXBsZU1hbmFnZXIuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlLmNwcDogQWRkZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2Nv
YS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKIDIwMjEtMTAtMTggIFlv
dWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBzdXBwb3J0IGZv
ciByZXF1ZXN0VmlkZW9GcmFtZUNhbGxiYWNrIEFQSSBhbmQgTWVkaWFTdHJlYW1UcmFjay1iYXNl
ZCBiYWNrZW5kIHN1cHBvcnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29h
LnR4dCBiL1NvdXJjZS9XZWJLaXQvU291cmNlc0NvY29hLnR4dAppbmRleCBmZDk0OWQ4OWIwMGVm
NGEzNDc3MTY4M2M3M2ViNzFhOThmMDUxYTZmLi4zZWQ1M2E0ZmMxMTQ2YzFhZjQ3NDljMjFjMGM4
ZDJiMDI4NGVjZmZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NvdXJjZXNDb2NvYS50eHQK
KysrIGIvU291cmNlL1dlYktpdC9Tb3VyY2VzQ29jb2EudHh0CkBAIC02MTUsNiArNjE1LDcgQEAg
V2ViUHJvY2Vzcy9BcHBsZVBheS9jb2NvYS9XZWJQYXltZW50Q29vcmRpbmF0b3JDb2NvYS5tbQog
V2ViUHJvY2Vzcy9jb2NvYS9QbGF5YmFja1Nlc3Npb25NYW5hZ2VyLm1tCiBXZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAogV2ViUHJvY2Vzcy9jb2NvYS9SZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlLmNwcAorV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2UuY3BwCiBXZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lTWVkaWFT
b3VyY2VQcm94eS5jcHAKIFdlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkY2Y0
YzBmN2I4YzQ2NWVjYWU3NTM3NmNiN2Y2M2MxMTkyMGFhMWU1Li43NjgyYzIxYjJhOGE0NGU3OTg5
NWFmZjllMTY1NDA4ZTExNGJhY2E5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM5NDQsNiArMzk0NCw4IEBACiAJCTQxODk3RUQ0MUY0
MTVEODUwMDE2RkE0MiAvKiBDYWNoZVN0b3JhZ2VFbmdpbmVDb25uZWN0aW9uLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IENhY2hlU3RvcmFnZUVuZ2luZUNvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE4OTdFRDUxRjQxNUQ4NTAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2lu
ZUNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQ2FjaGVTdG9yYWdlRW5naW5lQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4OTdFRDYxRjQx
NUQ4NjAwMTZGQTQyIC8qIENhY2hlU3RvcmFnZUVuZ2luZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDYWNoZVN0b3JhZ2VFbmdpbmUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0
MThGQ0JFMzI3MTA0OURCMDBGOTZFQ0EgLyogUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxOEZDQkU0MjcxMDQ5REMwMEY5NkVDQSAvKiBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOUFDRjlC
MUY5ODFEMjYwMDlGMUE4MyAvKiBXZWJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrQ2xpZW50LmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlNlcnZpY2VXb3JrZXJGZXRjaFRhc2tD
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBNUY3QjkyMjZFQ0Y3QzAw
NjcxNzY0IC8qIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZURpc3Bvc2l0aW9uQ29jb2EuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFBNUY3QkEyMjZFQ0Y3QzAwNjcxNzY0IC8qIEF1
dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlRGlzcG9zaXRpb25Db2NvYS5tbTsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTk3MjEsNiArOTcyMyw4IEBACiAJCQkJNDE2ODRDNEQy
NDY0M0JGQTAwMUNFOEVEIC8qIFJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLm1lc3NhZ2VzLmlu
ICovLAogCQkJCTQxRTY3QThEMjVEMkNGRDAwMDdCMEE0QyAvKiBSZW1vdGVSZWFsdGltZUF1ZGlv
U291cmNlLmNwcCAqLywKIAkJCQk0MUU2N0E4QzI1RDJDRkQwMDA3QjBBNEMgLyogUmVtb3RlUmVh
bHRpbWVBdWRpb1NvdXJjZS5oICovLAorCQkJCTQxOEZDQkUzMjcxMDQ5REIwMEY5NkVDQSAvKiBS
ZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwICovLAorCQkJCTQxOEZDQkU0MjcxMDQ5REMw
MEY5NkVDQSAvKiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaCAqLywKIAkJCQk0MTYwMDhC
MjI1REE4OTVCMDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNvdXJjZVByb3h5LmNwcCAq
LywKIAkJCQk0MTYwMDhCMTI1REE4NkI5MDBFODkyRkUgLyogUmVtb3RlUmVhbHRpbWVNZWRpYVNv
dXJjZVByb3h5LmggKi8sCiAJCQkJNDE2ODRDNTAyNDY0NTBGRDAwMUNFOEVEIC8qIFJlbW90ZVJl
YWx0aW1lVmlkZW9Tb3VyY2UuY3BwICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlci5jcHAKaW5kZXgg
ZWJjZjEwYWE4NjEyYWU0NjRiZTJjMjM3ODM5ZGE4NDU1YjRkYmUwNy4uNTIwOTFkODM0OWMyMTAz
ZjlmODBhMWI0MGE2NWZjZjQ2OWE2ZWZjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuY3BwCkBA
IC0xMDQsNiArMTA0LDE5IEBAIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNv
dXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJiBzb3VyCiAgICAgfSk7CiB9CiAK
K3ZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVh
bHRpbWVEaXNwbGF5U291cmNlPiYmIHNvdXJjZSkKK3sKKyAgICBBU1NFUlQoV1RGOjppc01haW5S
dW5Mb29wKCkpOworICAgIHNldENvbm5lY3Rpb24oc291cmNlLT5jb25uZWN0aW9uKCkpOworCisg
ICAgbV9xdWV1ZS0+ZGlzcGF0Y2goW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBzb3VyY2UgPSBXVEZNb3ZlKHNvdXJjZSldKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8gaWRl
bnRpZmllciA9IHNvdXJjZS0+aWRlbnRpZmllcigpOworCisgICAgICAgIEFTU0VSVCghbV92aWRl
b1NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOworICAgICAgICBtX3ZpZGVvU291cmNlcy5h
ZGQoaWRlbnRpZmllciwgbWFrZVVuaXF1ZTxSZW1vdGVWaWRlbz4oV1RGTW92ZShzb3VyY2UpKSk7
CisgICAgfSk7Cit9CisKIHZvaWQgUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXI6OnJlbW92ZVNv
dXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQog
ewogICAgIEFTU0VSVChXVEY6OmlzTWFpblJ1bkxvb3AoKSk7CkBAIC0yMTUsNyArMjI4LDcgQEAg
dm9pZCBSZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlQXVkaW86OnNldFN0b3JhZ2Uo
Y29uc3QgU2hhcmVkTWVtb3J5OjpIYW4KICAgICBzdGFydFRocmVhZCgpOwogfQogCi1SZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjo6UmVtb3RlVmlkZW86OlJlbW90ZVZpZGVvKFJlZjxSZW1vdGVS
ZWFsdGltZVZpZGVvU291cmNlPiYmIHNvdXJjZSkKK1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2Vy
OjpSZW1vdGVWaWRlbzo6UmVtb3RlVmlkZW8oU291cmNlJiYgc291cmNlKQogICAgIDogbV9zb3Vy
Y2UoV1RGTW92ZShzb3VyY2UpKQogewogfQpAQCAtMjM1LDggKzI0OCwxMSBAQCB2b2lkIFJlbW90
ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyOjpSZW1vdGVWaWRlbzo6dmlkZW9TYW1wbGVBdmFpbGFibGUo
UmVtb3RlVmlkZW9TYQogICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLQotICAgIG1fc291cmNlLT52aWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxl
UmVmLCByZW1vdGVTYW1wbGUuc2l6ZSgpKTsKKyAgICBzd2l0Y2hPbihtX3NvdXJjZSwgWyZdKFJl
ZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CisgICAgICAgIHNvdXJjZS0+
dmlkZW9TYW1wbGVBdmFpbGFibGUoKnNhbXBsZVJlZiwgcmVtb3RlU2FtcGxlLnNpemUoKSk7Cisg
ICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKKyAg
ICAgICAgc291cmNlLT5yZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZSgqc2FtcGxlUmVmKTsKKyAg
ICB9KTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L1JlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAppbmRleCAyYzM3ZjE1ZTc2MTU0ZWE5
Y2RjMjdiYjZjYTk3MjdmODZjNDBkMWU2Li5iNDEzYjhlNjk3MjkwM2FiYWNhODIzM2RiMGNjMDYx
ODBhOGYzMjJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVt
b3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIuaApAQCAtMzEsNiArMzEsNyBAQAogI2lu
Y2x1ZGUgIklQQ1NlbWFwaG9yZS5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2lu
Y2x1ZGUgIlJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCIKKyNpbmNsdWRlICJSZW1vdGVSZWFs
dGltZURpc3BsYXlTb3VyY2UuaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZVZpZGVvU291cmNl
LmgiCiAjaW5jbHVkZSAiU2hhcmVkTWVtb3J5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9DQUF1ZGlv
U3RyZWFtRGVzY3JpcHRpb24uaD4KQEAgLTU1LDYgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYpOwogICAgIHZvaWQg
YWRkU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYmKTsKKyAgICB2b2lkIGFk
ZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlPiYmKTsKICAgICB2b2lkIHJl
bW92ZVNvdXJjZShXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllcik7CiAKICAg
ICB2b2lkIGRpZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uKik7CkBAIC0x
MDAsMTIgKzEwMiwxMyBAQCBwcml2YXRlOgogICAgIGNsYXNzIFJlbW90ZVZpZGVvIHsKICAgICAg
ICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiAgICAgcHVibGljOgotICAgICAgICBleHBsaWNp
dCBSZW1vdGVWaWRlbyhSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CisgICAgICAg
IHVzaW5nIFNvdXJjZSA9IHN0ZDo6dmFyaWFudDxSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJj
ZT4sIFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+PjsKKyAgICAgICAgZXhwbGljaXQg
UmVtb3RlVmlkZW8oU291cmNlJiYpOwogCiAgICAgICAgIHZvaWQgdmlkZW9TYW1wbGVBdmFpbGFi
bGUoV2ViQ29yZTo6UmVtb3RlVmlkZW9TYW1wbGUmJik7CiAKICAgICBwcml2YXRlOgotICAgICAg
ICBSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4gbV9zb3VyY2U7CisgICAgICAgIFNvdXJj
ZSBtX3NvdXJjZTsKICAgICAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OkltYWdlVHJhbnNm
ZXJTZXNzaW9uVlQ+IG1faW1hZ2VUcmFuc2ZlclNlc3Npb247CiAgICAgfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lQXVk
aW9Tb3VyY2UuY3BwCmluZGV4IDIyOWE4ODNmOTZiYjM0OTFkMDVhZmNhNTNlYzhkZGIwOWZmN2Qy
NGIuLjJjZTk1NGY0OGJmZmUxZjk0MTA1NTVjNWU0OWM2NTZhZWQ5N2UxMzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZS5jcHAKQEAgLTQ2LDcgKzQ2LDcgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CiBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3Jl
YXRlKGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQog
ewogICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZUF1ZGlvU291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOwotICAgIG1hbmFnZXIuYWRkQXVkaW9Tb3VyY2Uoc291
cmNlLmNvcHlSZWYoKSk7CisgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7
CiAgICAgbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3Vy
Y2UuY29weVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAg
ICAgcmV0dXJuIHNvdXJjZTsKQEAgLTEyMCw3ICsxMjAsNyBAQCB2b2lkIFJlbW90ZVJlYWx0aW1l
QXVkaW9Tb3VyY2U6OnJlbW90ZUF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUm
IHRpbQogdm9pZCBSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlOjpoYXNFbmRlZCgpCiB7CiAgICAg
bV9wcm94eS5oYXNFbmRlZCgpOwotICAgIG1fbWFuYWdlci5yZW1vdmVBdWRpb1NvdXJjZShpZGVu
dGlmaWVyKCkpOworICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKICAg
ICBtX21hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRl
bnRpZmllcigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL1JlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9SZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggMDNjYWUyYTVlMmFkOWUz
NmQyODRjODNlZGIwMjA1NTY2ZWQzZDU5OC4uY2UwYzljZWQ1MDliYmRmZTMyYWNlMzAyZTk0YzIx
OTJjOTIwNjVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Jl
bW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
Y29jb2EvUmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC04MCw3ICs4MCw3IEBAIHByaXZh
dGU6CiAgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVl
OyB9CiAgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KICAgICB2b2lkIGNv
bW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KLSAgICB2b2lkIGFwcGx5Q29uc3RyYWludHMo
Y29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWludHNIYW5kbGVy
JiYpOworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50cyhjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzJiwgQXBwbHlDb25zdHJhaW50c0hhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBoYXNF
bmRlZCgpIGZpbmFsOwogICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0
aW5ncyYgc2V0dGluZ3MoKSBmaW5hbCB7IHJldHVybiBtX3NldHRpbmdzOyB9CiAgICAgY29uc3Qg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYgY2FwYWJpbGl0aWVzKCkg
ZmluYWwgeyByZXR1cm4gbV9jYXBhYmlsaXRpZXM7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZS5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNjYzOGIxYzczZWQ5NjBhMGFjOWE0ZGUwMzg5M2NlOTk3YWFkYjI4ZQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2UuY3BwCkBAIC0wLDAgKzEsMTUwIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJj
ZS5oIgorCisjaWYgUExBVEZPUk0oQ09DT0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNp
bmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIgorI2luY2x1ZGUgIlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKKyNpbmNsdWRlICJVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5TWVzc2FnZXMuaCIKKyNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKKyNp
bmNsdWRlICJXZWJQcm9jZXNzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYUNvbnN0cmFpbnRz
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1Jl
ZjxSZWFsdGltZU1lZGlhU291cmNlPiBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0
ZShjb25zdCBDYXB0dXJlRGV2aWNlJiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXImIG1hbmFnZXIsIGJvb2wgc2hvdWxkQ2FwdHVyZUluR1BVUHJvY2VzcykKK3sK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291
cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNv
bnN0cmFpbnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hv
dWxkQ2FwdHVyZUluR1BVUHJvY2VzcykpOworICAgIG1hbmFnZXIuYWRkU291cmNlKHNvdXJjZS5j
b3B5UmVmKCkpOworICAgIG1hbmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5hZGRT
b3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CisgICAgc291cmNlLT5jcmVhdGVSZW1vdGVNZWRpYVNv
dXJjZSgpOworICAgIHJldHVybiBzb3VyY2U7Cit9CisKK1JlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZTo6UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hT
YWx0LCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJl
SW5HUFVQcm9jZXNzKQorICAgIDogUmVhbHRpbWVNZWRpYVNvdXJjZShSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpWaWRlbywgV1RGTW92ZShuYW1lKSwgU3RyaW5nIHsgZGV2aWNlLnBlcnNpc3Rl
bnRJZCgpIH0sIFdURk1vdmUoaGFzaFNhbHQpKQorICAgICwgbV9wcm94eShpZGVudGlmaWVyLCBk
ZXZpY2UsIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MsIGNvbnN0cmFpbnRzKQorICAgICwgbV9t
YW5hZ2VyKG1hbmFnZXIpCit7CisgICAgQVNTRVJUKGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6U2NyZWVuIHx8IGRldmljZS50eXBlKCkgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6V2luZG93KTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U6OmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCkKK3sKKyAgICBtX3Byb3h5LmNyZWF0ZVJl
bW90ZU1lZGlhU291cmNlKGRldmljZUlESGFzaFNhbHQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShib29sIHN1Y2NlZWRlZCwgYXV0byYmIGVycm9yTWVzc2FnZSwgYXV0
byYmIHNldHRpbmdzLCBhdXRvJiYgY2FwYWJpbGl0aWVzLCBhdXRvJiYsIGF1dG8sIGF1dG8pIHsK
KyAgICAgICAgaWYgKCFzdWNjZWVkZWQpIHsKKyAgICAgICAgICAgIG1fcHJveHkuZGlkRmFpbChX
VEZNb3ZlKGVycm9yTWVzc2FnZSkpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisK
KyAgICAgICAgc2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOworICAgICAgICBzZXRDYXBh
YmlsaXRpZXMoV1RGTW92ZShjYXBhYmlsaXRpZXMpKTsKKyAgICAgICAgc2V0TmFtZShTdHJpbmcg
eyBtX3NldHRpbmdzLmxhYmVsKCkuc3RyaW5nKCkgfSk7CisKKyAgICAgICAgbV9wcm94eS5zZXRB
c1JlYWR5KCk7CisgICAgICAgIGlmIChtX3Byb3h5LnNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3Mo
KSkKKyAgICAgICAgICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZUdQVVByb2Nlc3ND
b25uZWN0aW9uKCkuYWRkQ2xpZW50KCp0aGlzKTsKKyAgICB9KTsKK30KKworUmVtb3RlUmVhbHRp
bWVEaXNwbGF5U291cmNlOjp+UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlKCkKK3sKKyAgICBp
ZiAobV9wcm94eS5zaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpIHsKKyAgICAgICAgaWYgKGF1
dG8qIGNvbm5lY3Rpb24gPSBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5leGlzdGluZ0dQVVByb2Nl
c3NDb25uZWN0aW9uKCkpCisgICAgICAgICAgICBjb25uZWN0aW9uLT5yZW1vdmVDbGllbnQoKnRo
aXMpOworICAgIH0KK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OnNldENh
cGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJiYgY2FwYWJpbGl0aWVz
KQoreworICAgIG1fY2FwYWJpbGl0aWVzID0gV1RGTW92ZShjYXBhYmlsaXRpZXMpOworfQorCit2
b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6c2V0U2V0dGluZ3MoUmVhbHRpbWVNZWRp
YVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit7CisgICAgYXV0byBjaGFuZ2VkID0gbV9zZXR0
aW5ncy5kaWZmZXJlbmNlKHNldHRpbmdzKTsKKyAgICBtX3NldHRpbmdzID0gV1RGTW92ZShzZXR0
aW5ncyk7CisgICAgbm90aWZ5U2V0dGluZ3NEaWRDaGFuZ2VPYnNlcnZlcnMoY2hhbmdlZCk7Cit9
CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjphcHBseUNvbnN0cmFpbnRzU3Vj
Y2VlZGVkKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQor
eworICAgIHNldFNldHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICBtX3Byb3h5LmFwcGx5
Q29uc3RyYWludHNTdWNjZWVkZWQoKTsKK30KKwordm9pZCBSZW1vdGVSZWFsdGltZURpc3BsYXlT
b3VyY2U6Omhhc0VuZGVkKCkKK3sKKyAgICBtX3Byb3h5Lmhhc0VuZGVkKCk7CisgICAgbV9tYW5h
Z2VyLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0
dXJlU2FtcGxlTWFuYWdlcigpLnJlbW92ZVNvdXJjZShpZGVudGlmaWVyKCkpOworfQorCit2b2lk
IFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZTo6Y2FwdHVyZVN0b3BwZWQoKQoreworICAgIHN0
b3AoKTsKKyAgICBoYXNFbmRlZCgpOworfQorCit2b2lkIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNv
dXJjZTo6Y2FwdHVyZUZhaWxlZCgpCit7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Y2FwdHVy
ZUZhaWxlZCgpOworICAgIGhhc0VuZGVkKCk7Cit9CisKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNw
bGF5U291cmNlOjphcHBseUNvbnN0cmFpbnRzKGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIGNvbnN0
cmFpbnRzLCBBcHBseUNvbnN0cmFpbnRzSGFuZGxlciYmIGNhbGxiYWNrKQoreworICAgIG1fY29u
c3RyYWludHMgPSBjb25zdHJhaW50czsKKyAgICBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHMoY29u
c3RyYWludHMsIFdURk1vdmUoY2FsbGJhY2spKTsKK30KKworI2lmIEVOQUJMRShHUFVfUFJPQ0VT
UykKK3ZvaWQgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlOjpncHVQcm9jZXNzQ29ubmVjdGlv
bkRpZENsb3NlKEdQVVByb2Nlc3NDb25uZWN0aW9uJikKK3sKKyAgICBBU1NFUlQobV9wcm94eS5z
aG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKCkpOworICAgIGlmIChpc0VuZGVkKCkpCisgICAgICAg
IHJldHVybjsKKworICAgIG1fbWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmRp
ZFVwZGF0ZVNvdXJjZUNvbm5lY3Rpb24oY29ubmVjdGlvbigpKTsKKyAgICBtX3Byb3h5LnJlc2V0
UmVhZHkoKTsKKyAgICBjcmVhdGVSZW1vdGVNZWRpYVNvdXJjZSgpOworCisgICAgbV9wcm94eS5m
YWlsQXBwbHlDb25zdHJhaW50Q2FsbGJhY2tzKCJHUFUgUHJvY2VzcyB0ZXJtaW5hdGVkIl9zKTsK
KyAgICBpZiAobV9jb25zdHJhaW50cykKKyAgICAgICAgbV9wcm94eS5hcHBseUNvbnN0cmFpbnRz
KCptX2NvbnN0cmFpbnRzLCBbXShhdXRvKSB7IH0pOworCisgICAgaWYgKGlzUHJvZHVjaW5nRGF0
YSgpKQorICAgICAgICBzdGFydFByb2R1Y2luZ0RhdGEoKTsKKworfQorI2VuZGlmCisKK30KKwor
I2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3Rl
UmVhbHRpbWVEaXNwbGF5U291cmNlLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
UmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDI2NmY4N2Q3ZDYxNGM2
MzQzNDdlOTQ1ZWQ2YjZlYjdiNTIyZTJkYgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2UuaApAQCAtMCww
ICsxLDEwMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgUExBVEZPUk0oQ09D
T0EpICYmIEVOQUJMRShNRURJQV9TVFJFQU0pCisKKyNpbmNsdWRlICJHUFVQcm9jZXNzQ29ubmVj
dGlvbi5oIgorI2luY2x1ZGUgIlJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eS5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvQ2FwdHVyZURldmljZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRp
bWVNZWRpYVNvdXJjZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZUlk
ZW50aWZpZXIuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IE1lZGlhQ29uc3RyYWlu
dHM7Cit9CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjsKKworY2xhc3MgUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlIGZpbmFsIDogcHVibGlj
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UKKyNpZiBFTkFCTEUoR1BVX1BST0NFU1MpCisg
ICAgLCBwdWJsaWMgR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAorI2VuZGlmCit7CitwdWJs
aWM6CisgICAgc3RhdGljIFJlZjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGUo
Y29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcmJiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJbkdQVVByb2Nlc3MpOworICAgIH5SZW1vdGVS
ZWFsdGltZURpc3BsYXlTb3VyY2UoKTsKKworICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VJZGVudGlmaWVyIGlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb3h5LmlkZW50aWZp
ZXIoKTsgfQorICAgIElQQzo6Q29ubmVjdGlvbiogY29ubmVjdGlvbigpIHsgcmV0dXJuIG1fcHJv
eHkuY29ubmVjdGlvbigpOyB9CisKKyAgICB2b2lkIHNldFNldHRpbmdzKFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsKKworICAgIHZvaWQgYXBwbHlDb25zdHJhaW50c1N1
Y2NlZWRlZChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmJik7CisgICAgdm9p
ZCBhcHBseUNvbnN0cmFpbnRzRmFpbGVkKFN0cmluZyYmIGZhaWxlZENvbnN0cmFpbnQsIFN0cmlu
ZyYmIGVycm9yTWVzc2FnZSkgeyBtX3Byb3h5LmFwcGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92
ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZShlcnJvck1lc3NhZ2UpKTsgfQorCisgICAgdm9p
ZCBjYXB0dXJlU3RvcHBlZCgpOworICAgIHZvaWQgY2FwdHVyZUZhaWxlZCgpIGZpbmFsOworCisg
ICAgdm9pZCByZW1vdGVWaWRlb1NhbXBsZUF2YWlsYWJsZShXZWJDb3JlOjpNZWRpYVNhbXBsZSYg
c2FtcGxlKSB7IHZpZGVvU2FtcGxlQXZhaWxhYmxlKHNhbXBsZSk7IH0KKyAgICB2b2lkIHNvdXJj
ZU11dGVkQ2hhbmdlZChib29sIHZhbHVlKSB7IG5vdGlmeU11dGVkQ2hhbmdlKHZhbHVlKTsgfQor
Citwcml2YXRlOgorICAgIFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZShXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciwgY29uc3QgV2ViQ29yZTo6Q2FwdHVyZURldmljZSYs
IGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmJiBuYW1lLCBTdHJpbmcm
JiBoYXNoU2FsdCwgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXImLCBib29sIHNob3VsZENhcHR1cmVJ
bkdQVVByb2Nlc3MpOworCisgICAgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZQorICAgIHZvaWQgc3Rh
cnRQcm9kdWNpbmdEYXRhKCkgZmluYWwgeyBtX3Byb3h5LnN0YXJ0UHJvZHVjaW5nRGF0YSgpOyB9
CisgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSgpIGZpbmFsIHsgbV9wcm94eS5zdG9wUHJvZHVj
aW5nRGF0YSgpOyB9CisgICAgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCBmaW5hbCB7IHJl
dHVybiB0cnVlOyB9CisgICAgdm9pZCBiZWdpbkNvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAg
ICB2b2lkIGNvbW1pdENvbmZpZ3VyYXRpb24oKSBmaW5hbCB7IH0KKyAgICB2b2lkIGFwcGx5Q29u
c3RyYWludHMoY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyYsIEFwcGx5Q29uc3RyYWlu
dHNIYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgaGFzRW5kZWQoKSBmaW5hbDsKKyAgICBjb25z
dCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3MmIHNldHRpbmdzKCkgZmluYWwg
eyByZXR1cm4gbV9zZXR0aW5nczsgfQorICAgIGNvbnN0IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDYXBhYmlsaXRpZXMmIGNhcGFiaWxpdGllcygpIGZpbmFsIHsgcmV0dXJuIG1fY2FwYWJp
bGl0aWVzOyB9CisgICAgdm9pZCB3aGVuUmVhZHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJp
bmcpPiYmIGNhbGxiYWNrKSBmaW5hbCB7IG1fcHJveHkud2hlblJlYWR5KFdURk1vdmUoY2FsbGJh
Y2spKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgZGV2aWNlVHlw
ZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJveHkuZGV2aWNlVHlwZSgpOyB9CisKKyNpZiBF
TkFCTEUoR1BVX1BST0NFU1MpCisgICAgLy8gR1BVUHJvY2Vzc0Nvbm5lY3Rpb246OkNsaWVudAor
ICAgIHZvaWQgZ3B1UHJvY2Vzc0Nvbm5lY3Rpb25EaWRDbG9zZShHUFVQcm9jZXNzQ29ubmVjdGlv
biYpIGZpbmFsOworI2VuZGlmCisKKyAgICB2b2lkIGNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7
CisgICAgdm9pZCBzZXRDYXBhYmlsaXRpZXMoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNh
cGFiaWxpdGllcyYmKTsKKworICAgIFJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2VQcm94eSBtX3By
b3h5OworICAgIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyJiBtX21hbmFnZXI7CisgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzPiBtX2NvbnN0cmFpbnRzOworICAgIFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgbV9jYXBhYmlsaXRpZXM7Cisg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzIG1fc2V0dGluZ3M7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
aW5kZXggMWNiMDAwNzQ3MWU0MjJiZGU3NDJkMjAyNGY2NWQyYWFlODBhNGM0Yy4uZDY3NmIyMzkw
ZThhMmZhNmUwOTNkNTM5NmZmYjg1MzYzN2EzYWVkZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL1JlbW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9SZW1vdGVSZWFsdGltZVZpZGVvU291cmNlLmNw
cApAQCAtNDgsNyArNDgsNyBAQCB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIFJlZjxSZWFsdGlt
ZVZpZGVvQ2FwdHVyZVNvdXJjZT4gUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNv
bnN0IENhcHR1cmVEZXZpY2UmIGRldmljZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYmIG5hbWUsIFN0cmluZyYmIGhhc2hTYWx0LCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlciYgbWFuYWdlciwgYm9vbCBzaG91bGRDYXB0dXJlSW5HUFVQcm9jZXNzKQogewogICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlKFJl
YWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyOjpnZW5lcmF0ZSgpLCBkZXZpY2UsIGNvbnN0cmFp
bnRzLCBXVEZNb3ZlKG5hbWUpLCBXVEZNb3ZlKGhhc2hTYWx0KSwgbWFuYWdlciwgc2hvdWxkQ2Fw
dHVyZUluR1BVUHJvY2VzcykpOwotICAgIG1hbmFnZXIuYWRkVmlkZW9Tb3VyY2Uoc291cmNlLmNv
cHlSZWYoKSk7CisgICAgbWFuYWdlci5hZGRTb3VyY2Uoc291cmNlLmNvcHlSZWYoKSk7CiAgICAg
bWFuYWdlci5yZW1vdGVDYXB0dXJlU2FtcGxlTWFuYWdlcigpLmFkZFNvdXJjZShzb3VyY2UuY29w
eVJlZigpKTsKICAgICBzb3VyY2UtPmNyZWF0ZVJlbW90ZU1lZGlhU291cmNlKCk7CiAgICAgcmV0
dXJuIHNvdXJjZTsKQEAgLTE0OCw3ICsxNDgsNyBAQCBjb25zdCBSZWFsdGltZU1lZGlhU291cmNl
Q2FwYWJpbGl0aWVzJiBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpjYXBhYmlsaXRpZXMoKQog
dm9pZCBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOjpoYXNFbmRlZCgpCiB7CiAgICAgbV9wcm94
eS5oYXNFbmRlZCgpOwotICAgIG1fbWFuYWdlci5yZW1vdmVWaWRlb1NvdXJjZShpZGVudGlmaWVy
KCkpOworICAgIG1fbWFuYWdlci5yZW1vdmVTb3VyY2UoaWRlbnRpZmllcigpKTsKICAgICBtX21h
bmFnZXIucmVtb3RlQ2FwdHVyZVNhbXBsZU1hbmFnZXIoKS5yZW1vdmVTb3VyY2UoaWRlbnRpZmll
cigpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggN2IxYmI1NTQwMzY3Y2U4NjUwNWRi
YzVmZDk0YjhjZjQ1NDY4MDg3YS4uMGYzNDk1MzQyNjA4MGI5ODQ5ZTgxZTVkYTQ2NzE1ZmIzN2Nk
NGVlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCkBAIC0zMSw2ICszMSw3IEBACiAjaW5jbHVkZSAi
QXVkaW9NZWRpYVN0cmVhbVRyYWNrUmVuZGVyZXJJbnRlcm5hbFVuaXRNYW5hZ2VyLmgiCiAjaW5j
bHVkZSAiR1BVUHJvY2Vzc0Nvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJSZW1vdGVSZWFsdGltZUF1
ZGlvU291cmNlLmgiCisjaW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVEaXNwbGF5U291cmNlLmgiCiAj
aW5jbHVkZSAiUmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgogI2luY2x1ZGUgIlVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaCIKQEAgLTkzLDc0ICs5NCwxMTkgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c2V0dXBDYXB0dXJlUHJvY2Vzc2VzKGJvb2wgc2hvdWxkQ2FwdHVyZUF1ZGlvSW5VSVAKICAgICAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0RGlzcGxheUNhcHR1
cmVGYWN0b3J5KG1fZGlzcGxheUZhY3RvcnkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjphZGRBdWRpb1NvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mJiBz
b3VyY2UpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90
ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiYgc291cmNlKQogewogICAgIGF1dG8gaWRlbnRpZmllciA9
IHNvdXJjZS0+aWRlbnRpZmllcigpOwotICAgIEFTU0VSVCghbV9hdWRpb1NvdXJjZXMuY29udGFp
bnMoaWRlbnRpZmllcikpOwotICAgIG1fYXVkaW9Tb3VyY2VzLmFkZChpZGVudGlmaWVyLCBXVEZN
b3ZlKHNvdXJjZSkpOworICAgIEFTU0VSVCghbV9zb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZpZXIp
KTsKKyAgICBtX3NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFNvdXJjZShXVEZNb3ZlKHNvdXJjZSkp
KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6cmVtb3ZlQXVkaW9Tb3VyY2Uo
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllcikKK3ZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmFkZFNvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4m
JiBzb3VyY2UpCiB7Ci0gICAgQVNTRVJUKG1fYXVkaW9Tb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKLSAgICBtX2F1ZGlvU291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisgICAgYXV0byBp
ZGVudGlmaWVyID0gc291cmNlLT5pZGVudGlmaWVyKCk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMu
Y29udGFpbnMoaWRlbnRpZmllcikpOworICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgU291
cmNlKFdURk1vdmUoc291cmNlKSkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjphZGRWaWRlb1NvdXJjZShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4mJiBzb3VyY2Up
Cit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjphZGRTb3VyY2UoUmVmPFJlbW90ZVJlYWx0
aW1lRGlzcGxheVNvdXJjZT4mJiBzb3VyY2UpCiB7CiAgICAgYXV0byBpZGVudGlmaWVyID0gc291
cmNlLT5pZGVudGlmaWVyKCk7Ci0gICAgQVNTRVJUKCFtX3ZpZGVvU291cmNlcy5jb250YWlucyhp
ZGVudGlmaWVyKSk7Ci0gICAgbV92aWRlb1NvdXJjZXMuYWRkKGlkZW50aWZpZXIsIFdURk1vdmUo
c291cmNlKSk7CisgICAgQVNTRVJUKCFtX3NvdXJjZXMuY29udGFpbnMoaWRlbnRpZmllcikpOwor
ICAgIG1fc291cmNlcy5hZGQoaWRlbnRpZmllciwgU291cmNlKFdURk1vdmUoc291cmNlKSkpOwog
fQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpyZW1vdmVWaWRlb1NvdXJjZShSZWFs
dGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcjo6cmVtb3ZlU291cmNlKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIpCiB7Ci0gICAgQVNTRVJUKG1fdmlkZW9Tb3VyY2VzLmNvbnRhaW5zKGlkZW50aWZp
ZXIpKTsKLSAgICBtX3ZpZGVvU291cmNlcy5yZW1vdmUoaWRlbnRpZmllcik7CisgICAgQVNTRVJU
KG1fc291cmNlcy5jb250YWlucyhpZGVudGlmaWVyKSk7CisgICAgbV9zb3VyY2VzLnJlbW92ZShp
ZGVudGlmaWVyKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3Rv
cHBlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIGlm
IChhdXRvIHNvdXJjZSA9IG1fYXVkaW9Tb3VyY2VzLmdldChpZGVudGlmaWVyKSkKKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9y
ID09IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoT24oaXRl
cmF0b3ItPnZhbHVlLCBbXShSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkg
ewogICAgICAgICBzb3VyY2UtPmNhcHR1cmVTdG9wcGVkKCk7Ci0gICAgZWxzZSBpZiAoYXV0byBz
b3VyY2UgPSBtX3ZpZGVvU291cmNlcy5nZXQoaWRlbnRpZmllcikpCisgICAgfSwgW10oUmVmPFJl
bW90ZVJlYWx0aW1lVmlkZW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5jYXB0
dXJlU3RvcHBlZCgpOworICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+
JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0dXJlU3RvcHBlZCgpOworICAgIH0sIFtd
KHN0ZDo6bnVsbHB0cl90KSB7IH0pOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjYXB0dXJlRmFpbGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlkKQordm9pZCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y2FwdHVyZUZhaWxlZChSZWFsdGltZU1lZGlhU291cmNl
SWRlbnRpZmllciBpZGVudGlmaWVyKQogewotICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fYXVkaW9T
b3VyY2VzLmdldChpZCkpCisgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50
aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCisgICAgICAgIHJl
dHVybjsKKworICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW10oUmVmPFJlbW90ZVJlYWx0
aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2UpIHsKICAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVk
KCk7Ci0gICAgZWxzZSBpZiAoYXV0byBzb3VyY2UgPSBtX3ZpZGVvU291cmNlcy5nZXQoaWQpKQor
ICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAg
ICAgIHNvdXJjZS0+Y2FwdHVyZUZhaWxlZCgpOworICAgIH0sIFtdKFJlZjxSZW1vdGVSZWFsdGlt
ZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsKKyAgICAgICAgc291cmNlLT5jYXB0dXJlRmFpbGVk
KCk7CisgICAgfSwgW10oc3RkOjpudWxscHRyX3QpIHsgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OnNvdXJjZU11dGVkQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRl
bnRpZmllciBpZCwgYm9vbCBtdXRlZCkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNv
dXJjZU11dGVkQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBib29sIG11dGVkKQogewotICAgIGlmIChhdXRvIHNvdXJjZSA9IG1fYXVkaW9Tb3VyY2VzLmdl
dChpZCkpCisgICAgYXV0byBpdGVyYXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50aWZpZXIpOwor
ICAgIGlmIChpdGVyYXRvciA9PSBtX3NvdXJjZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKwor
ICAgIHN3aXRjaE9uKGl0ZXJhdG9yLT52YWx1ZSwgW211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVB
dWRpb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdl
ZChtdXRlZCk7CisgICAgfSwgW211dGVkXShSZWY8UmVtb3RlUmVhbHRpbWVWaWRlb1NvdXJjZT4m
IHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCk7Ci0g
ICAgZWxzZSBpZiAoYXV0byBzb3VyY2UgPSBtX3ZpZGVvU291cmNlcy5nZXQoaWQpKQorICAgIH0s
IFttdXRlZF0oUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewogICAg
ICAgICBzb3VyY2UtPnNvdXJjZU11dGVkQ2hhbmdlZChtdXRlZCk7CisgICAgfSwgW10oc3RkOjpu
dWxscHRyX3QpIHsgfSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNvdXJj
ZVNldHRpbmdzQ2hhbmdlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVhbHRp
bWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpzb3VyY2VTZXR0aW5nc0NoYW5nZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCiB7
Ci0gICAgaWYgKGF1dG8gc291cmNlID0gbV9hdWRpb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICBhdXRv
IGl0ZXJhdG9yID0gbV9zb3VyY2VzLmZpbmQoaWRlbnRpZmllcik7CisgICAgaWYgKGl0ZXJhdG9y
ID09IG1fc291cmNlcy5lbmQoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgc3dpdGNoT24oaXRl
cmF0b3ItPnZhbHVlLCBbJl0oUmVmPFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U+JiBzb3VyY2Up
IHsKKyAgICAgICAgc291cmNlLT5zZXRTZXR0aW5ncyhXVEZNb3ZlKHNldHRpbmdzKSk7CisgICAg
fSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7CiAgICAgICAg
IHNvdXJjZS0+c2V0U2V0dGluZ3MoV1RGTW92ZShzZXR0aW5ncykpOwotICAgIGVsc2UgaWYgKGF1
dG8gc291cmNlID0gbV92aWRlb1NvdXJjZXMuZ2V0KGlkKSkKKyAgICB9LCBbJl0oUmVmPFJlbW90
ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4mIHNvdXJjZSkgewogICAgICAgICBzb3VyY2UtPnNldFNl
dHRpbmdzKFdURk1vdmUoc2V0dGluZ3MpKTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9
KTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c1N1
Y2NlZWRlZChSZWFsdGltZU1lZGlhU291cmNlSWRlbnRpZmllciBpZCwgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzJiYgc2V0dGluZ3MpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjph
cHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmIHNldHRpbmdzKQogewotICAg
IGlmIChhdXRvIHNvdXJjZSA9IG1fYXVkaW9Tb3VyY2VzLmdldChpZCkpCisgICAgYXV0byBpdGVy
YXRvciA9IG1fc291cmNlcy5maW5kKGlkZW50aWZpZXIpOworICAgIGlmIChpdGVyYXRvciA9PSBt
X3NvdXJjZXMuZW5kKCkpCisgICAgICAgIHJldHVybjsKKworICAgIHN3aXRjaE9uKGl0ZXJhdG9y
LT52YWx1ZSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYgc291cmNlKSB7CiAg
ICAgICAgIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50c1N1Y2NlZWRlZChXVEZNb3ZlKHNldHRpbmdz
KSk7CisgICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291cmNlKSB7
CisgICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3VyY2UpIHsK
KyAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzU3VjY2VlZGVkKFdURk1vdmUoc2V0dGlu
Z3MpKTsKKyAgICB9LCBbXShzdGQ6Om51bGxwdHJfdCkgeyB9KTsKIH0KIAotdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6YXBwbHlDb25zdHJhaW50c0ZhaWxlZChSZWFsdGltZU1lZGlhU291
cmNlSWRlbnRpZmllciBpZCwgU3RyaW5nJiYgZmFpbGVkQ29uc3RyYWludCwgU3RyaW5nJiYgbWVz
c2FnZSkKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmFwcGx5Q29uc3RyYWludHNGYWls
ZWQoUmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgZmFp
bGVkQ29uc3RyYWludCwgU3RyaW5nJiYgbWVzc2FnZSkKIHsKLSAgICBpZiAoYXV0byBzb3VyY2Ug
PSBtX2F1ZGlvU291cmNlcy5nZXQoaWQpKQorICAgIGF1dG8gaXRlcmF0b3IgPSBtX3NvdXJjZXMu
ZmluZChpZGVudGlmaWVyKTsKKyAgICBpZiAoaXRlcmF0b3IgPT0gbV9zb3VyY2VzLmVuZCgpKQor
ICAgICAgICByZXR1cm47CisKKyAgICBzd2l0Y2hPbihpdGVyYXRvci0+dmFsdWUsIFsmXShSZWY8
UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4mIHNvdXJjZSkgeworICAgICAgICBzb3VyY2UtPmFw
cGx5Q29uc3RyYWludHNGYWlsZWQoV1RGTW92ZShmYWlsZWRDb25zdHJhaW50KSwgV1RGTW92ZSht
ZXNzYWdlKSk7CisgICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPiYgc291
cmNlKSB7CisgICAgfSwgWyZdKFJlZjxSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U+JiBzb3Vy
Y2UpIHsKICAgICAgICAgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzRmFpbGVkKFdURk1vdmUoZmFp
bGVkQ29uc3RyYWludCksIFdURk1vdmUobWVzc2FnZSkpOworICAgIH0sIFtdKHN0ZDo6bnVsbHB0
cl90KSB7IH0pOwogfQogCiBDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6QXVkaW9GYWN0b3J5OjpjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgQ2FwdHVy
ZURldmljZSYgZGV2aWNlLCBTdHJpbmcmJiBoYXNoU2FsdCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCkBAIC0xOTYsNyArMjQyLDcgQEAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OlZpZGVvRmFjdG9yeTo6Y3JlYXRlVmlkZW9DYXB0dXJl
U28KIAogQ2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OkRpc3Bs
YXlGYWN0b3J5OjpjcmVhdGVEaXNwbGF5Q2FwdHVyZVNvdXJjZShjb25zdCBDYXB0dXJlRGV2aWNl
JiBkZXZpY2UsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIHJl
dHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoUmVt
b3RlUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZSwgY29uc3RyYWludHMsIHsgfSwg
eyB9LCBtX21hbmFnZXIsIGZhbHNlKSkpOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
cihSZW1vdGVSZWFsdGltZURpc3BsYXlTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGNvbnN0cmFpbnRz
LCB7IH0sIHsgfSwgbV9tYW5hZ2VyLCBmYWxzZSkpOwogfQogCiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmlu
ZGV4IGU5MDE4MDM3OWU2ZmRjM2MxMTY1N2U1MWQ4NDI3MzFiODE3ODE1ZTEuLjIyODgxMDg5ZGZm
OGQ1YjMxYTI5MjcyNjU5NDliNjI2MTk5YWZmYzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC00NCw2
ICs0NCw3IEBAIGNsYXNzIFJlbW90ZVZpZGVvU2FtcGxlOwogbmFtZXNwYWNlIFdlYktpdCB7CiAK
IGNsYXNzIFJlbW90ZVJlYWx0aW1lQXVkaW9Tb3VyY2U7CitjbGFzcyBSZW1vdGVSZWFsdGltZURp
c3BsYXlTb3VyY2U7CiBjbGFzcyBSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlOwogY2xhc3MgV2Vi
UHJvY2VzczsKIApAQCAtNTgsMTEgKzU5LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlRnJvbUdQVVByb2Nlc3MoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBJUEM6
OkRlY29kZXImIGRlY29kZXIpIHsgZGlkUmVjZWl2ZU1lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2Rl
cik7IH0KICAgICB2b2lkIHNldHVwQ2FwdHVyZVByb2Nlc3Nlcyhib29sIHNob3VsZENhcHR1cmVB
dWRpb0luVUlQcm9jZXNzLCBib29sIHNob3VsZENhcHR1cmVBdWRpb0luR1BVUHJvY2VzcywgYm9v
bCBzaG91bGRDYXB0dXJlVmlkZW9JblVJUHJvY2VzcywgYm9vbCBzaG91bGRDYXB0dXJlVmlkZW9J
bkdQVVByb2Nlc3MsIGJvb2wgc2hvdWxkQ2FwdHVyZURpc3BsYXlJblVJUHJvY2Vzcyk7CiAKLSAg
ICB2b2lkIGFkZEF1ZGlvU291cmNlKFJlZjxSZW1vdGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsK
LSAgICB2b2lkIHJlbW92ZUF1ZGlvU291cmNlKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJ
ZGVudGlmaWVyKTsKLQotICAgIHZvaWQgYWRkVmlkZW9Tb3VyY2UoUmVmPFJlbW90ZVJlYWx0aW1l
VmlkZW9Tb3VyY2U+JiYpOwotICAgIHZvaWQgcmVtb3ZlVmlkZW9Tb3VyY2UoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOworICAgIHZvaWQgYWRkU291cmNlKFJlZjxSZW1v
dGVSZWFsdGltZUF1ZGlvU291cmNlPiYmKTsKKyAgICB2b2lkIGFkZFNvdXJjZShSZWY8UmVtb3Rl
UmVhbHRpbWVWaWRlb1NvdXJjZT4mJik7CisgICAgdm9pZCBhZGRTb3VyY2UoUmVmPFJlbW90ZVJl
YWx0aW1lRGlzcGxheVNvdXJjZT4mJik7CisgICAgdm9pZCByZW1vdmVTb3VyY2UoV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIpOwogCiAgICAgUmVtb3RlQ2FwdHVyZVNhbXBs
ZU1hbmFnZXImIHJlbW90ZUNhcHR1cmVTYW1wbGVNYW5hZ2VyKCkgeyByZXR1cm4gbV9yZW1vdGVD
YXB0dXJlU2FtcGxlTWFuYWdlcjsgfQogCkBAIC0xMjksOCArMTI5LDggQEAgcHJpdmF0ZToKICAg
ICB2b2lkIGFwcGx5Q29uc3RyYWludHNTdWNjZWVkZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VTZXR0aW5ncyYmKTsK
ICAgICB2b2lkIGFwcGx5Q29uc3RyYWludHNGYWlsZWQoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUlkZW50aWZpZXIsIFN0cmluZyYmLCBTdHJpbmcmJik7CiAKLSAgICBIYXNoTWFwPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VJZGVudGlmaWVyLCBSZWY8UmVtb3RlUmVhbHRpbWVBdWRp
b1NvdXJjZT4+IG1fYXVkaW9Tb3VyY2VzOwotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZUlkZW50aWZpZXIsIFJlZjxSZW1vdGVSZWFsdGltZVZpZGVvU291cmNlPj4gbV92
aWRlb1NvdXJjZXM7CisgICAgdXNpbmcgU291cmNlID0gc3RkOjp2YXJpYW50PHN0ZDo6bnVsbHB0
cl90LCBSZWY8UmVtb3RlUmVhbHRpbWVBdWRpb1NvdXJjZT4sIFJlZjxSZW1vdGVSZWFsdGltZVZp
ZGVvU291cmNlPiwgUmVmPFJlbW90ZVJlYWx0aW1lRGlzcGxheVNvdXJjZT4+OworICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUlkZW50aWZpZXIsIFNvdXJjZT4gbV9zb3Vy
Y2VzOwogICAgIFdlYlByb2Nlc3MmIG1fcHJvY2VzczsKICAgICBOb09wQ2FwdHVyZURldmljZU1h
bmFnZXIgbV9ub09wQ2FwdHVyZURldmljZU1hbmFnZXI7CiAgICAgQXVkaW9GYWN0b3J5IG1fYXVk
aW9GYWN0b3J5OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCmluZGV4IGM4NTI2ZjcwZmI1OGM3MmJlMTFhMDVkODExYzdiYWI2Y2U1NGZh
NTguLjQ0ZGE0M2IyOGJiYTg3MTE0ODFhZDM3MzFmZGIzYzIwMjM1NGE5YjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwxNSBAQAorMjAyMS0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+
CisKKyAgICAgICAgZ2V0RGlzcGxheU1lZGlhIE1lZGlhU3RyZWFtVHJhY2suYXBwbHlDb25zdHJh
aW50cyBiZWhhdmlvciByZWdyZXNzZWQgaW4gU2FmYXJpIDE1CisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyODYKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzgzOTMwODY1PgorCisgICAgICAgIFJldmlld2VkIGJ5IEVyaWMgQ2FybHNvbi4KKworICAg
ICAgICAqIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUtZXhwZWN0ZWQudHh0
OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXpl
Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBB
ZGRlZC4KKwogMjAyMS0xMC0xOCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJlcXVlc3RWaWRlb0ZyYW1lQ2FsbGJhY2sgQVBJIGFu
ZCBNZWRpYVN0cmVhbVRyYWNrLWJhc2VkIGJhY2tlbmQgc3VwcG9ydApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9mYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjc2NWJkYzkyNDExZTMwMjZhYjRiZGE0NWZjMjNkZDQ2
MzJiMzlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9n
ZXREaXNwbGF5TWVkaWEtc2l6ZS1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACisKKworUEFT
UyBFbnN1cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJlIHJlZHVjZWQgd2l0aCBhcHBseUNv
bnN0cmFpbnRzCitQQVNTIEVuc3VyZSBnZXREaXNwbGF5TWVkaWEgc2l6ZSBjYW4gYmUgaW5jcmVh
c2VkIHdpdGggYXBwbHlDb25zdHJhaW50cworRkFJTCBvcmlnaW5hbCBzb3VyY2Ugc2hvdWxkIHN0
YXkgYXQgYSBzbWFsbCBzaXplIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIDY0MCBidXQgZ290IDMy
MAorRkFJTCBvcmlnaW5hbCBzb3VyY2Ugc2hvdWxkIHN0YXkgYXQgYSBiaWcgc2l6ZSBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCA2NDAgYnV0IGdvdCAxMjgwCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbCBiL0xheW91dFRl
c3RzL2Zhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxheU1lZGlhLXNpemUuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5lNzgyNjkyZDcyYTQxZTllNzZmODRlNDk3YzA4Mzk1ZmQ2OGQwMjBjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9tZWRpYXN0cmVhbS9nZXREaXNwbGF5TWVkaWEtc2l6ZS5o
dG1sCkBAIC0wLDAgKzEsNTMgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+
CisgICAgICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICAgICAgPHRpdGxlPmdldERpc3Bs
YXlNZWRpYSBhbmQgc2l6ZTwvdGl0bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNv
dXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4v
Li4vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9InJlc291cmNlcy9nZXREaXNwbGF5TWVkaWEtdXRpbHMuanMiPjwvc2NyaXB0Pgor
ICAgIDwvaGVhZD4KKyAgICA8Ym9keT4KKyAgICAgICAgPHZpZGVvIGlkPSJ2aWRlbzEiIGF1dG9w
bGF5PjwvdmlkZW8+CisgICAgICAgIDx2aWRlbyBpZD0idmlkZW8yIiBhdXRvcGxheT48L3ZpZGVv
PgorICAgICAgICA8c2NyaXB0PgorcHJvbWlzZV90ZXN0KGFzeW5jICgpID0+IHsKKyAgICBjb25z
dCBzdHJlYW0xID0gYXdhaXQgY2FsbEdldERpc3BsYXlNZWRpYSh7IHZpZGVvOiB7IHdpZHRoOiA2
NDAsIGhlaWdodDo0ODAgfSB9KTsKKyAgICB2aWRlbzEuc3JjT2JqZWN0ID0gc3RyZWFtMTsKKyAg
ICBhd2FpdCB2aWRlbzEucGxheSgpOworCisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9X
aWR0aCwgNjQwKTsKKworICAgIGNvbnN0IHN0cmVhbTIgPSBzdHJlYW0xLmNsb25lKCk7CisgICAg
YXdhaXQgc3RyZWFtMi5nZXRWaWRlb1RyYWNrcygpWzBdLmFwcGx5Q29uc3RyYWludHMoeyB3aWR0
aDogMzIwLCBoZWlnaHQ6IDI0MCB9KTsKKyAgICB2aWRlbzIuc3JjT2JqZWN0ID0gc3RyZWFtMjsK
KyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworCisgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzIudmlk
ZW9XaWR0aCwgMzIwKTsKKworICAgIHRlc3QoKCkgPT4geworICAgICAgICBhc3NlcnRfZXF1YWxz
KHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOworICAgIH0sICJvcmlnaW5hbCBzb3VyY2Ugc2hvdWxk
IHN0YXkgYXQgYSBzbWFsbCBzaXplIik7Cit9LCAiRW5zdXJlIGdldERpc3BsYXlNZWRpYSBzaXpl
IGNhbiBiZSByZWR1Y2VkIHdpdGggYXBwbHlDb25zdHJhaW50cyIpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgKCkgPT4geworICAgIGNvbnN0IHN0cmVhbTEgPSBhd2FpdCBjYWxsR2V0RGlzcGxheU1l
ZGlhKHsgdmlkZW86IHsgd2lkdGg6IDY0MCwgaGVpZ2h0OjQ4MCB9IH0pOworICAgIHZpZGVvMS5z
cmNPYmplY3QgPSBzdHJlYW0xOworICAgIGF3YWl0IHZpZGVvMS5wbGF5KCk7CisKKyAgICBhc3Nl
cnRfZXF1YWxzKHZpZGVvMS52aWRlb1dpZHRoLCA2NDApOworCisgICAgY29uc3Qgc3RyZWFtMiA9
IHN0cmVhbTEuY2xvbmUoKTsKKyAgICBhd2FpdCBzdHJlYW0yLmdldFZpZGVvVHJhY2tzKClbMF0u
YXBwbHlDb25zdHJhaW50cyh7IHdpZHRoOiAxMjgwLCBoZWlnaHQ6IDk2MCB9KTsKKyAgICB2aWRl
bzIuc3JjT2JqZWN0ID0gc3RyZWFtMjsKKyAgICBhd2FpdCB2aWRlbzIucGxheSgpOworCisgICAg
YXNzZXJ0X2VxdWFscyh2aWRlbzIudmlkZW9XaWR0aCwgMTI4MCk7CisKKyAgICB0ZXN0KCgpID0+
IHsKKyAgICAgICAgYXNzZXJ0X2VxdWFscyh2aWRlbzEudmlkZW9XaWR0aCwgNjQwKTsKKyAgICB9
LCAib3JpZ2luYWwgc291cmNlIHNob3VsZCBzdGF5IGF0IGEgYmlnIHNpemUiKTsKK30sICJFbnN1
cmUgZ2V0RGlzcGxheU1lZGlhIHNpemUgY2FuIGJlIGluY3JlYXNlZCB3aXRoIGFwcGx5Q29uc3Ry
YWludHMiKTsKKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBmYWVmZGZhZDFmMDMyOWM0
ZTZkMTAwMzFjNjg2OTc3YjFkNTQ5ZGY5Li5lNzRmMjNhY2ZkYzg5OGY4MDAwYzJmOWNhYzRmOTgw
ZTM5Y2RjYmM5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVj
dGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpA
QCAtMjc0OCw2ICsyNzQ4LDcgQEAgZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLXVzZXIt
Z2VzdHVyZS5odG1sIFsgU2tpcCBdCiBmYXN0L21lZGlhc3RyZWFtL2dldERpc3BsYXlNZWRpYS1t
YXgtY29uc3RyYWludHMxLmh0bWwgWyBTa2lwIF0KIGZhc3QvbWVkaWFzdHJlYW0vZ2V0RGlzcGxh
eU1lZGlhLW1heC1jb25zdHJhaW50czIuaHRtbCBbIFNraXAgXQogZmFzdC9tZWRpYXN0cmVhbS9n
ZXREaXNwbGF5TWVkaWEtbWF4LWNvbnN0cmFpbnRzMy5odG1sIFsgU2tpcCBdCitmYXN0L21lZGlh
c3RyZWFtL2dldERpc3BsYXlNZWRpYS1zaXplLmh0bWwgWyBTa2lwIF0KIAogd2Via2l0Lm9yZy9i
LzE3NzQwMSB3ZWJydGMvY2FwdHVyZUNhbnZhcy13ZWJydGMuaHRtbCBbIFBhc3MgVGltZW91dCBG
YWlsdXJlIF0KIAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>