<?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>171284</bug_id>
          
          <creation_ts>2017-04-25 12:52:34 -0700</creation_ts>
          <short_desc>getUserMedia video streams should follow device orientation</short_desc>
          <delta_ts>2017-04-28 17:39:42 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Media</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>buildbot</cc>
    
    <cc>commit-queue</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>jer.noble</cc>
    
    <cc>jonlee</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1301162</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-25 12:52:34 -0700</bug_when>
    <thetext>Following orientation allows keeping the camera capturing the scene even if rotating the device.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301266</commentid>
    <comment_count>1</comment_count>
      <attachid>308150</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-25 14:49:24 -0700</bug_when>
    <thetext>Created attachment 308150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301270</commentid>
    <comment_count>2</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-25 14:58:54 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #1)
&gt; Created attachment 308150 [details]
&gt; Patch

WIP doing also some refactoring in the capture factories.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301286</commentid>
    <comment_count>3</comment_count>
      <attachid>308154</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-25 15:51:22 -0700</bug_when>
    <thetext>Created attachment 308154
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301308</commentid>
    <comment_count>4</comment_count>
      <attachid>308161</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-25 16:24:04 -0700</bug_when>
    <thetext>Created attachment 308161
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301310</commentid>
    <comment_count>5</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-25 16:25:28 -0700</bug_when>
    <thetext>Attachment 308161 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:247:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:248:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 2 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301700</commentid>
    <comment_count>6</comment_count>
      <attachid>308271</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-26 11:30:30 -0700</bug_when>
    <thetext>Created attachment 308271
Fixing GTK build</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301703</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-26 11:31:38 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Created attachment 308271 [details]
&gt; Fixing GTK build

orientation adaptation in AVVideoCaptureSource is untested and probably broken now. Will do some manual testing. Interested in feedback on the overall design and refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301705</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-26 11:33:24 -0700</bug_when>
    <thetext>Attachment 308271 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:247:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:248:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 2 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1301749</commentid>
    <comment_count>9</comment_count>
    <who name="Jon Lee">jonlee</who>
    <bug_when>2017-04-26 13:30:42 -0700</bug_when>
    <thetext>&lt;rdar://problem/31671907&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302371</commentid>
    <comment_count>10</comment_count>
      <attachid>308470</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-27 16:16:47 -0700</bug_when>
    <thetext>Created attachment 308470
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302375</commentid>
    <comment_count>11</comment_count>
      <attachid>308472</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-27 16:22:03 -0700</bug_when>
    <thetext>Created attachment 308472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302377</commentid>
    <comment_count>12</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 16:24:42 -0700</bug_when>
    <thetext>Attachment 308472 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:467:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:247:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:248:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 39 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302391</commentid>
    <comment_count>13</comment_count>
      <attachid>308475</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-27 16:42:54 -0700</bug_when>
    <thetext>Created attachment 308475
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302395</commentid>
    <comment_count>14</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-27 16:46:14 -0700</bug_when>
    <thetext>Attachment 308475 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:467:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:247:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:248:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302667</commentid>
    <comment_count>15</comment_count>
      <attachid>308475</attachid>
    <who name="Eric Carlson">eric.carlson</who>
    <bug_when>2017-04-28 10:58:49 -0700</bug_when>
    <thetext>Comment on attachment 308475
Patch

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

&gt; Source/WebCore/platform/mediastream/RealtimeMediaSource.h:250
&gt; +    operator bool()  const { return !!captureSource; }

Is the &quot;!!&quot; necessary?

&gt; Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:167
&gt; +    // FIXME: Do something with m_deviceOrientation

Nit: you could not that this is https://bugs.webkit.org/show_bug.cgi?id=169822.

&gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:140
&gt; +        if (!!audioSource)

Why is the &quot;!!&quot; necessary since CaptureSourceOrError has an operator bool()?

&gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:149
&gt; +        if (!!videoSource)

Ditto.

&gt; Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:91
&gt; +            if (!!sourceOrError &amp;&amp; sourceOrError.captureSource-&gt;supportsConstraints(audioConstraints, invalidConstraint))

Ditto.

&gt; Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:139
&gt; +            if (!!sourceOrError)

Ditto.

&gt; Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:143
&gt; +            if (!!sourceOrError)

Ditto.

&gt; Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:152
&gt; +            if (!!sourceOrError)

Ditto.

&gt; Source/WebCore/platform/mock/MockRealtimeMediaSourceCenter.cpp:156
&gt; +            if (!!sourceOrError)

Ditto.

&gt; Source/WebKit2/UIProcess/Cocoa/UserMediaCaptureManagerProxy.cpp:144
&gt; +    succeeded = !!sourceOrError;

Ditto.

&gt; Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp:101
&gt; -    ASSERT(!idToHistoryItemMap().contains(itemID));
&gt; +//    ASSERT(!idToHistoryItemMap().contains(itemID));

Oops!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302795</commentid>
    <comment_count>16</comment_count>
      <attachid>308597</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-28 14:34:38 -0700</bug_when>
    <thetext>Created attachment 308597
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302797</commentid>
    <comment_count>17</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-04-28 14:38:09 -0700</bug_when>
    <thetext>Attachment 308597 did not pass style-queue:


ERROR: Source/WebCore/platform/mediastream/mac/AVVideoCaptureSource.mm:467:  Tests for true/false, null/non-null, and zero/non-zero should all be done without equality comparisons.  [readability/comparison_to_zero] [5]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:247:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
ERROR: Source/WebCore/platform/mediastream/RealtimeMediaSource.h:248:  Should be indented on a separate line, with the colon or comma first on that line.  [whitespace/indent] [4]
Total errors found: 3 in 38 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302858</commentid>
    <comment_count>18</comment_count>
      <attachid>308597</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-28 16:26:35 -0700</bug_when>
    <thetext>Comment on attachment 308597
Patch for landing

Clearing flags on attachment: 308597

Committed r215955: &lt;http://trac.webkit.org/changeset/215955&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302859</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-04-28 16:26:37 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1302907</commentid>
    <comment_count>20</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2017-04-28 17:39:42 -0700</bug_when>
    <thetext>Thanks for the review.
I took all of it in https://bugs.webkit.org/show_bug.cgi?id=171466

&gt; &gt; Source/WebCore/platform/mediastream/mac/MockRealtimeVideoSourceMac.mm:167
&gt; &gt; +    // FIXME: Do something with m_deviceOrientation
&gt; 
&gt; Nit: you could not that this is
&gt; https://bugs.webkit.org/show_bug.cgi?id=169822.

Done

&gt; &gt; Source/WebCore/platform/mediastream/mac/RealtimeMediaSourceCenterMac.cpp:140
&gt; &gt; +        if (!!audioSource)
&gt; 
&gt; Why is the &quot;!!&quot; necessary since CaptureSourceOrError has an operator bool()?

Done for all these.


&gt; &gt; Source/WebKit2/WebProcess/WebPage/WebBackForwardListProxy.cpp:101
&gt; &gt; -    ASSERT(!idToHistoryItemMap().contains(itemID));
&gt; &gt; +//    ASSERT(!idToHistoryItemMap().contains(itemID));
&gt; 
&gt; Oops!

Fixed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308150</attachid>
            <date>2017-04-25 14:49:24 -0700</date>
            <delta_ts>2017-04-25 15:51:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171284-20170425144923.patch</filename>
            <type>text/plain</type>
            <size>75920</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ3MDdjOTBlZWFlZjk3
NTRlNjYyMmE1NGY4NGMyZjFkOTNhNjJkZS4uYmI0ZmNkODFkOGYzOGJlM2FiNGE3OWE0NmMyMzYw
NTM3MzQ3OTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE5vIHRlc3QgeWV0LgorCisgICAgICAgIE1ha2lu
ZyBEb2N1bWVudCBoYXZpbmcgYW4gT3JpZW50YXRpb25Ob3RpZmllciB0aGF0IEFWVmlkZW9DYXB0
dXJlU291cmNlcyBnZXQgcmVnaXN0ZXJlZCB0by4KKyAgICAgICAgTWFraW5nIEFWVmlkZW9DYXB0
dXJlU291cmNlIGFuIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHNvIHRoYXQgaXQgY2Fu
IGNoYW5nZXMgd2lkdGgvaGVpZ2h0IGlmIG5lZWRlZC4KKworICAgICAgICBSZWZhY3RvcmluZyB0
byBzcGVjaWFsaXplIENhcHR1cmVGYWN0b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkuCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1
cmVTb3VyY2VPckVycm9yIGluc3RlYWQgb2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIHBsdXMg
cmV0dXJuaW5nIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFs
bG93KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpvcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vT3JpZW50YXRpb25Ob3RpZmVyLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmguCisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6
c2V0Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXI6On5PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVy
OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3Rp
Zmllcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmll
cjo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6
Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3I6
OkNhcHR1cmVTb3VyY2VPckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpzb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1
ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjp2aWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRp
b0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9D
YXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9u
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpj
cmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Blbndl
YnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFt
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZh
dWx0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmg6CisKIDIwMTctMDQtMjMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTU2
NTcgYW5kIHIyMTU2NzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmVkNTAzNmNhOGRkNGMzNjc0OGFkMWU4ZjI1
MDY2NjE4ODA3MDExNS4uMDBmNjkzN2U3MWY2ODYyMzk5Mzg1MDJmOWY2YzQxZTU4MjcwYjgzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTI1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlkZW8gc3RyZWFtcyBz
aG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gc3BlY2lhbGl6ZSBDYXB0dXJl
RmFjdG9yeSBpbiBWaWRlb0NhcHR1cmVGYWN0b3J5IGFuZCBBdWRpb0NhcHR1cmVGYWN0b3J5Lgor
ICAgICAgICBSZWZhY3RvcmluZyB0byByZXR1cm4gYSBDYXB0dXJlU291cmNlT3JFcnJvciBpbnN0
ZWFkIG9mIHBhc3NpbmcgYW4gb3V0IHBhcmFtZXRlciBpbiBhZGRpdGlvbiB0byByZXR1cm5pbmcg
YSBSZWZQdHIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAy
MDE3LTA0LTIzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21h
Y09TXSBXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaGFzIGEgcHVibGljIGl2YXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuY3BwCmluZGV4IDZlYjQxOTQxYTcyNDVhMjE2ZDcwODQ0NjQ5NTYzZjYwZThmOGM2NTYu
LjkxZmQ4ODZiNjhhNzRlMjU1OGI2ZWEyZTVlM2JhMmU2NGQ0Y2U1OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cApAQCAtMTYwLDEzICsxNjAsMTYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyhjb25z
dCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGUKIAogICAgIFJl
ZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzID0gdGhpczsKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY2FsbGJhY2sgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+JiYgcHJpdmF0ZVN0cmVhbSkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICBhdXRvKiBjb250ZXh0ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIEFTU0VSVChjb250
ZXh0KTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGlmICghcHJpdmF0ZVN0cmVhbSkgewogICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6SGFyZHdhcmVFcnJvciwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZVN0cmVhbS0+bW9uaXRvck9yaWVudGF0
aW9uKGNvbnRleHQtPm9yaWVudGF0aW9uTm90aWZpZXIoKSk7CiAKICAgICAgICAgYXV0byBzdHJl
YW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHByaXZh
dGVTdHJlYW0ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGlmIChzdHJlYW0tPmdldFRyYWNr
cygpLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGUyN2JjZjM1NTVhYzg4ZTBiOTBmMDBhZjE2YTNkMzdkMDEy
NDE1ZWMuLjUzZGE4NDRiMzM2MjBkODY2ZjVmOTM3NjkxMjZkYzMxZjgxYWQxZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3
NTksNiArMTc1OSw3IEBACiAJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVz
dFN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxODE1QzFEMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0NzFFNTNF
OThDMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRy
b2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MTgyMDU0OTFFNTNFQUIwMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0ODFFNTNFQUFEMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi87IH07CisJCTQxODRGNTE2MUVBRjA1QTgwMEYx
OEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlv
bk5vdGlmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkxMTFCNkZEQTYw
MDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3Vi
bWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovOyB9Owog
CQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEzM0MwNEQ1MDBD
RDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87IH07CkBAIC05Mzc3LDYgKzkzNzgsNyBAQAog
CQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MjA1NDUxRTUzQzhDRDAwRDYy
MjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgyMDU0ODFF
NTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmllbnRhdGlvbk5vdGlmZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8q
IEZvcm1TdWJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1T
dWJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFCNkZE
QTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk5MCw2ICsyMzk5Miw3IEBACiAJCQkJQkM3NzJDNEQw
QzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2
NzdGMDg4MDAxNDlGQ0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLAogCQkJCTk4RUIxRjk0MTMx
M0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovLAorCQkJCTQxODRGNTE1MUVBRjA1
OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLywKIAkJCQk0QjI3MDhDNTBBRjE5
RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovLAogCQkJCUM1Rjc2NUI0MTRFMUQ0MTQwMDZD
ODk5QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCAqLywKIAkJCQkxQUY1RTREMjFFNTY3MzVBMDA0
QTFGMDEgLyogUGFzdGVib2FyZFdyaXRlckRhdGEuY3BwICovLApAQCAtMjk2MTksNiArMjk2MjIs
NyBAQAogCQkJCTA4MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5l
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkUzOEVGRTFFODM5NkZEMDBDQTNBREYgLyogQ1NTRm9u
dFN0eWxlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI2MTI1NUYzQkQwMEVGQ0Ey
NyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
ODRGNTE2MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5l
U3BhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8q
IFNWR1RleHRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBF
RTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IGZiNmJkNjg0NDA2ZTk1OTA0NzBlY2IwNDkzMGU3OGZmZDJjYzM1
OWYuLjViZmQxYWViZWIyZjEwNTZiNWE5MzlmMjNlZTkxNTg5NzRkYTZjZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNjk1NCw0ICs2OTU0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJl
bW92ZUluRG9jdW1lbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiAgICAgbV9p
bkRvY3VtZW50U2hhZG93Um9vdHMucmVtb3ZlKCZzaGFkb3dSb290KTsKIH0KIAordm9pZCBEb2N1
bWVudDo6b3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKK3sKKyAgICBkaXNwYXRj
aFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdl
RXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIG1fb3JpZW50YXRpb25Ob3RpZmllci5vcmllbnRh
dGlvbkNoYW5nZWQob3JpZW50YXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ4MjgzMThkNzVmMTM2MWUzMDI4MjUwYTE5MWI2OWM3Yzlj
YWU1NTkuLjRlMDY5ZmQxNjY5MTNiY2NhMzhkZDk0MzgyZTg1YjBlNTE0NTg1NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk11dGF0
aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmZXIuaCIKICNpbmNsdWRl
ICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1FdmVudC5oIgogI2lu
Y2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCkBAIC0xMzA1LDYgKzEzMDYsOSBAQCBwdWJsaWM6CiAK
ICAgICBDb25zdGFudFByb3BlcnR5TWFwJiBjb25zdGFudFByb3BlcnRpZXMoKSBjb25zdCB7IHJl
dHVybiAqbV9jb25zdGFudFByb3BlcnR5TWFwOyB9CiAKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hh
bmdlZChpbnQgb3JpZW50YXRpb24pOworICAgIE9yaWVudGF0aW9uTm90aWZpZXImIG9yaWVudGF0
aW9uTm90aWZpZXIoKSB7IHJldHVybiBtX29yaWVudGF0aW9uTm90aWZpZXI7IH0KKwogcHJvdGVj
dGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJl
bmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0
IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVj
dGlvbkZsYWdzID0gMCk7CkBAIC0xNzYwLDYgKzE3NjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9kaWREaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0NoYW5nZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAKKyAgICBPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKKwogICAg
IHN0YXRpYyBib29sIGhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCA0ZWQ5MTI0ZjIxMTU1Zjk1MTgxMGI5YWQwM2YwMjE1NGFhMmVmMzkz
Li4zNmExZmUxOWIwMTJhMTQ1NzlhYTVmMjJiMDhkNDU5YTMyMGQyN2VkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtMjk4LDkgKzI5OCwxMCBAQCB2b2lkIEZyYW1lOjpvcmllbnRhdGlvbkNoYW5n
ZWQoKQogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKICAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOwog
CisgICAgYXV0byBuZXdPcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uKCk7CiAgICAgZm9yIChhdXRv
JiBmcmFtZSA6IGZyYW1lcykgewogICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+ZGlzcGF0Y2hXaW5kb3dFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5vcmllbnRhdGlvbkNoYW5nZWQobmV3
T3JpZW50YXRpb24pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vT3JpZW50YXRpb25Ob3RpZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Pcmll
bnRhdGlvbk5vdGlmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWIyOWZkMTI1NTE4NWIyNmZlZTM4OGE4ZmRm
NzZiZDhjNzljZmQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
T3JpZW50YXRpb25Ob3RpZmVyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE9yaWVudGF0aW9uTm90aWZp
ZXIgeworcHVibGljOgorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlv
bik7CisgICAgfk9yaWVudGF0aW9uTm90aWZpZXIoKTsKKworICAgIGNsYXNzIE9ic2VydmVyIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSA9IDA7CisgICAgICAg
IHZvaWQgc2V0Tm90aWZpZXIoT3JpZW50YXRpb25Ob3RpZmllciogbm90aWZpZXIpIHsgbV9ub3Rp
ZmllciA9IG5vdGlmaWVyOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBPcmllbnRhdGlvbk5v
dGlmaWVyKiBtX25vdGlmaWVyIHsgbnVsbHB0ciB9OworICAgIH07CisKKyAgICB2b2lkIGFkZE9i
c2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwor
Citwcml2YXRlOgorICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9ic2VydmVyPj4g
bV9vYnNlcnZlcnM7Cit9OworCitpbmxpbmUgT3JpZW50YXRpb25Ob3RpZmllcjo6fk9yaWVudGF0
aW9uTm90aWZpZXIoKQoreworICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCisgICAgICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKG51bGxwdHIpOworfQorCitpbmxpbmUg
T3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXI6On5PYnNlcnZlcigpCit7CisgICAgaWYgKG1f
bm90aWZpZXIpCisgICAgICAgIG1fbm90aWZpZXItPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30K
KworaW5saW5lIHZvaWQgT3JpZW50YXRpb25Ob3RpZmllcjo6b3JpZW50YXRpb25DaGFuZ2VkKGlu
dCBvcmllbnRhdGlvbikKK3sKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQorICAgICAgICBvYnNlcnZlci5vcmllbnRhdGlvbkNoYW5nZWQob3JpZW50YXRpb24pOwor
fQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjphZGRPYnNlcnZlcihPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBv
YnNlcnZlci5zZXROb3RpZmllcih0aGlzKTsKK30KKworaW5saW5lIHZvaWQgT3JpZW50YXRpb25O
b3RpZmllcjo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fb2Jz
ZXJ2ZXJzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZlcl0oYXV0byBpdGVtKSB7CisgICAg
ICAgIGlmICgmb2JzZXJ2ZXIgIT0gJml0ZW0uZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKG51bGxwdHIpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKaW5kZXggYzhmYWI2
ODY4N2JkODc1ZjcxZjcyNzU1ZjUwOWI1ZmMxNTc3Njk3OC4uYmYyOGVmMWJlZWI3ODc3YjYwZjlm
YTc2MTlmNmYzZDBjNjBkZWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCkBAIC0yOTgsNiArMjk4
LDE1IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5j
dGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIH0pOwogfQogCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVy
KQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNDYXB0dXJlU291cmNlKCkgJiYgdHJhY2stPnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKKyAgICAgICAgICAgIHRyYWNr
LT5zb3VyY2UoKS5tb25pdG9yT3JpZW50YXRpb24obm90aWZpZXIpOworICAgIH0KKworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaAppbmRleCA5YjVhYTJlNjc4YTU2OTk1NjVhMTk3YzA4MDhhMDc1YTI1NjJm
NTgyLi43MTllOWNmMzIwODM1OTk0NDRhOTM1ZmI3NGZmM2Q3NzM2NGI1OTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaApAQCAtNTYsNiArNTYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
ZWRpYVN0cmVhbTsKK2NsYXNzIE9yaWVudGF0aW9uTm90aWZpZXI7CiAKIGNsYXNzIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZT4gewogcHVibGljOgpAQCAtMTE2LDYg
KzExNyw4IEBAIHByaXZhdGU6CiAgICAgR1JlZlB0cjxPd3JHc3RWaWRlb1JlbmRlcmVyPiBtX2dz
dFZpZGVvUmVuZGVyZXI7CiAjZW5kaWYKIAorICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9y
aWVudGF0aW9uTm90aWZpZXImKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVByaXZhdGUo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImLCBTdHJpbmcmJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAppbmRleCA5MGUyMjJiMzgyNmMwYzM1NGM0ZjIxZTZlYjg1ZGVmMWI3NTkyZjdj
Li45NmFmMzA5NGM2N2U2NmExYzZhNjE3YzNmMWExOTRlZjU3NGI3NDIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5oCkBAIC01OCw5ICs1OCwxMiBAQCBjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwog
Y2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTWVkaWFTdHJl
YW1Qcml2YXRlOworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsKIGNsYXNzIFBsYXRmb3JtQXVk
aW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOwogCitzdHJ1Y3QgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3I7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWx0aW1lTWVkaWFT
b3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlPiB7CiBwdWJsaWM6
CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewpAQCAtODMsMTMgKzg2LDIyIEBAIHB1YmxpYzoKICAgICAg
ICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBj
b25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBz
aXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0KICAgICB9OwogCi0gICAgY2xhc3MgQ2FwdHVy
ZUZhY3RvcnkgeworICAgIGNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgeworICAgIHB1YmxpYzoK
KyAgICAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAg
ICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
Y29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAw
OworICAgICAgICAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIEF1ZGlvQ2FwdHVyZUZhY3Rvcnko
KSA9IGRlZmF1bHQ7CisgICAgfTsKKworICAgIGNsYXNzIFZpZGVvQ2FwdHVyZUZhY3Rvcnkgewog
ICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7
Ci0gICAgICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGF1ZGlv
RGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqLCBTdHJpbmcmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgflZpZGVvQ2FwdHVyZUZhY3Rvcnko
KSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyopID0gMDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAgQ2FwdHVyZUZh
Y3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1
bHQ7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KQEAg
LTEzNSw2ICsxNDcsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291
cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBtb25pdG9y
T3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIHsgfQorICAgIAogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CiAKQEAgLTIyOSw4ICsyNDMsMTggQEAgcHJp
dmF0ZToKICAgICBib29sIG1fc3VwcHJlc3NOb3RpZmljYXRpb25zIHsgdHJ1ZSB9OwogfTsKIAor
c3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yIHsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvcigp
ID0gZGVmYXVsdDsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvcihSZWY8UmVhbHRpbWVNZWRpYVNv
dXJjZT4mJiBzb3VyY2UpIDogY2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpIHsgfQorICAg
IENhcHR1cmVTb3VyY2VPckVycm9yKFN0cmluZyYmIG1lc3NhZ2UpIDogZXJyb3JNZXNzYWdlKFdU
Rk1vdmUobWVzc2FnZSkpIHsgfQorICAgIAorICAgIG9wZXJhdG9yIGJvb2woKSAgY29uc3QgeyBy
ZXR1cm4gISFjYXB0dXJlU291cmNlOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNv
dXJjZSgpIHsgcmV0dXJuIGNhcHR1cmVTb3VyY2UucmVsZWFzZU5vbk51bGwoKTsgfQorICAgIAor
ICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlOworICAgIFN0cmlu
ZyBlcnJvck1lc3NhZ2U7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAv
LyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZV9o
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDk1NTk5OGQ2NjcxY2RkMTVi
YjA3YmE5MjMwMjYyZjlhNzI2NjM3NDYuLmY0YzJiYTY4NDgzZDE4N2M3MGI4MzdhZjRhMTA5N2Q3
MmQxYzg0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC02NiwyMyAr
NjYsMjMgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIoKQogewogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldEF1ZGlv
RmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3Zv
aWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV9hdWRpb0Zh
Y3RvcnkgPSAmZmFjdG9yeTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1
bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFj
dG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3Rvcnko
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAg
ICBpZiAobV9hdWRpb0ZhY3RvcnkgPT0gJmZhY3RvcnkpCiAgICAgICAgIG1fYXVkaW9GYWN0b3J5
ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRWaWRl
b0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCit2
b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1l
ZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIG1fdmlkZW9G
YWN0b3J5ID0gJmZhY3Rvcnk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIGZh
Y3RvcnkpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0VmlkZW9GYWN0b3J5
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAg
ICAgaWYgKG1fdmlkZW9GYWN0b3J5ID09ICZmYWN0b3J5KQogICAgICAgICBtX3ZpZGVvRmFjdG9y
eSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNTEyNDFhZDkx
ODIyYTJkNzgwYjAzZmMxZjJjMWVjZDYzNjcxNTU3OS4uMzIxZTYzZjdjYjU1NDM0MzE2OWNmMjVi
N2Y0MTE0M2E0ZTk2ODYyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjYs
MTYgKzY2LDE2IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVk
aWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKSB7IHJl
dHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOyB9CiAKLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgeyByZXR1cm4g
bnVsbHB0cjsgfQotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3Rv
cnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVh
bCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9G
YWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIHsgcmV0dXJu
IG51bGxwdHI7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSYpOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBhdWRpb0ZhY3Rv
cnkoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRmFjdG9yeTsgfQorICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBhdWRpb0ZhY3RvcnkoKSBjb25zdCB7IHJldHVy
biBtX2F1ZGlvRmFjdG9yeTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Zh
Y3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHVuc2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1
cmVGYWN0b3J5Jik7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIHZp
ZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5OyB9CisgICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCBzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9D
YXB0dXJlRmFjdG9yeSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRWaWRlb0ZhY3Rv
cnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIHZpZGVvRmFjdG9yeSgpIGNvbnN0
IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5OyB9CiAKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VN
YW5hZ2VyKiBkZWZhdWx0QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51bGxw
dHI7IH0KICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0VmlkZW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KQEAgLTk0LDggKzk0LDggQEAg
cHJvdGVjdGVkOgogICAgIHN0YXRpYyBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBwbGF0Zm9y
bUNlbnRlcigpOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBt
X3N1cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVy
ZUZhY3RvcnkqIG1fYXVkaW9GYWN0b3J5IHsgbnVsbHB0ciB9OwotICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBtX3ZpZGVvRmFjdG9yeSB7IG51bGxwdHIgfTsKKyAgICBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBtX2F1ZGlvRmFjdG9yeSB7
IG51bGxwdHIgfTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5
KiBtX3ZpZGVvRmFjdG9yeSB7IG51bGxwdHIgfTsKIAogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2Vy
KiBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIgeyBudWxscHRyIH07CiAgICAgQ2FwdHVyZURl
dmljZU1hbmFnZXIqIG1fdmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlv
Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0FWQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXggNmM4MzYyZmU4ZTg0NTYxMWUzZjVjODVjMTE1
YTJmZTI3YmQ4NzA5NS4uNzk4OGMxZTI5YTQzZjU1ODRiNGJiNWQwNzZjZjlkMTBhMmNjNGNhNiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVk
aW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgY2xhc3MgV2Vi
QXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7CiBjbGFzcyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZSA6
IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUmVm
UHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBjcmVhdGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpOworICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3Qg
QXRvbWljU3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogcHJpdmF0ZToKICAg
ICBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJp
bmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCA2ZGIxYzc1ZjIwZmNlOTYw
NjllNzM2ZTIyYzRjNzY4NGIzMWZmNDhkLi42ZTU5ZDJlMjkwZWZkZmRmYmE3N2NkOGM4NDFkZWIw
MzFhZWMxOWI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCkBAIC03NywzMCArNzcs
MjcgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBO
U1N0cmluZyAqKQogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIEFWQXVkaW9DYXB0dXJl
U291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSB7CitjbGFzcyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGlu
dmFsaWRDb25zdHJhaW50KSBmaW5hbCB7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
QXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5
cGVkZWYgKmRldmljZSA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlx
dWVJRDpkZXZpY2VJRF07Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgIWRldmljZSB8fCAo
ZGV2aWNlICYmIHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8pKTsKLSAg
ICAgICAgcmV0dXJuIGRldmljZSA/IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNl
LCBlbXB0eVN0cmluZygpLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpIDogbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIGRldmljZSA/IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUo
ZGV2aWNlLCBlbXB0eVN0cmluZygpLCBjb25zdHJhaW50cykgOiBDYXB0dXJlU291cmNlT3JFcnJv
cigpOwogICAgIH0KIH07CiAKLVJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0
IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBT
dHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0
IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IEFWQXVkaW9DYXB0dXJlU291cmNlKGRl
dmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZBdWRpb0NhcHR1
cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBh
dXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAg
ICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3Vs
dC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAgc291cmNlID0gbnVsbHB0cjsKLSAgICAgICAg
fQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhyZXN1bHQu
dmFsdWUoKS5maXJzdCk7CiAgICAgfQogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4g
Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAotUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIEFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkK
K1JlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmIEFWQXVkaW9DYXB0dXJl
U291cmNlOjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVZBdWRpb0Nh
cHR1cmVTb3VyY2VGYWN0b3J5PiBmYWN0b3J5OwogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRleCBhODIxNTgwMTE5OGQ0YTg3YTAwMjMxNmQz
NTFhZmVlMGRmMGZmNzQ1Li45NjVlYzYyMTBlY2M4ZWIyMTVmNzY5ZDVmMGE3NmY2MzdkYjA4NjQ5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaApAQCAtMjMsMTIgKzIzLDEyIEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQVZWaWRlb0NhcHR1cmVTb3VyY2VfaAotI2RlZmlu
ZSBBVlZpZGVvQ2FwdHVyZVNvdXJjZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJ
QV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04pCiAKICNpbmNsdWRlICJBVk1lZGlhQ2FwdHVy
ZVNvdXJjZS5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogCiBPQkpDX0NMQVNT
IENBTGF5ZXI7CiBPQkpDX0NMQVNTIEFWRnJhbWVSYXRlUmFuZ2U7CkBAIC00MywxMSArNDMsMTEg
QEAgY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgUGl4ZWxC
dWZmZXJDb25mb3JtZXJDVjsKIAotY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMg
QVZNZWRpYUNhcHR1cmVTb3VyY2UgeworY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJs
aWMgQVZNZWRpYUNhcHR1cmVTb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+
IGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9y
IGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3Rv
cnkmIGZhY3RvcnkoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFj
dG9yeSYgZmFjdG9yeSgpOwogCiAgICAgaW50MzJfdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2lkdGg7IH0KICAgICBpbnQzMl90IGhlaWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9
CkBAIC02NiwxMiArNjYsMTcgQEAgcHJpdmF0ZToKICAgICBib29sIGFwcGx5RnJhbWVSYXRlKGRv
dWJsZSkgZmluYWw7CiAgICAgYm9vbCBzZXRQcmVzZXQoTlNTdHJpbmcqKTsKIAorICAgIHZvaWQg
bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImKSBmaW5hbDsKKwogICAgIE5T
U3RyaW5nICpiZXN0U2Vzc2lvblByZXNldEZvclZpZGVvRGltZW5zaW9ucyhzdGQ6Om9wdGlvbmFs
PGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQpIGNvbnN0OwogICAgIGJvb2wg
c3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpv
cHRpb25hbDxpbnQ+IGhlaWdodCwgc3RkOjpvcHRpb25hbDxkb3VibGU+KSBmaW5hbDsKIAogICAg
IHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0
aWVzJikgZmluYWw7CiAgICAgdm9pZCBpbml0aWFsaXplU3VwcG9ydGVkQ29uc3RyYWludHMoUmVh
bHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJikgZmluYWw7CiAKKyAgICAvLyBP
cmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciBBUEkKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hh
bmdlZChpbnQgb3JpZW50YXRpb24pIGZpbmFsOworCiAgICAgYm9vbCBzZXRGcmFtZVJhdGVDb25z
dHJhaW50KGRvdWJsZSBtaW5GcmFtZVJhdGUsIGRvdWJsZSBtYXhGcmFtZVJhdGUpOwogCiAgICAg
Ym9vbCB1cGRhdGVGcmFtZXJhdGUoQ01TYW1wbGVCdWZmZXJSZWYpOwpAQCAtOTAsMTAgKzk1LDkg
QEAgcHJpdmF0ZToKICAgICBGbG9hdDY0IG1fZnJhbWVSYXRlIHsgMCB9OwogICAgIGludDMyX3Qg
bV93aWR0aCB7IDAgfTsKICAgICBpbnQzMl90IG1faGVpZ2h0IHsgMCB9OworICAgIE1lZGlhU2Ft
cGxlOjpWaWRlb1JvdGF0aW9uIG1fZGV2aWNlT3JpZW50YXRpb24geyBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6Tm9uZSB9OwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5k
aWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQotI2VuZGlmIC8vIEFWVmlkZW9DYXB0dXJlU291
cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQppbmRleCBiMzYwYzUwYzQ0YzBhY2Uw
OWVmZmQ0OTU2Y2UyMTRhYTZhYWEyMDNhLi45NDc0NjJiNGJjMTNiZTQyZmQyZGQ2NDM3NGVkNDll
MjkwZWQ2NzZiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCkBAIC0xMDksMzAgKzEw
OSwyOSBAQCBjb25zdCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRU
eXBlXzQyMFlwQ2JDcjhQbGFuYXI7CiBjb25zdCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0g
a0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKICNlbmRpZgog
Ci1jbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2VGYWN0
b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3Rvcnkgewog
cHVibGljOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkgZmluYWwgeworICAgIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgewogICAg
ICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICpkZXZpY2UgPSBbZ2V0QVZDYXB0dXJlRGV2aWNl
Q2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVlSUQ6ZGV2aWNlSURdOwotICAgICAgICBBU1NFUlRfVU5V
U0VEKHR5cGUsICFkZXZpY2UgfHwgKHR5cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
VmlkZW8pKTsKLSAgICAgICAgcmV0dXJuIGRldmljZSA/IEFWVmlkZW9DYXB0dXJlU291cmNlOjpj
cmVhdGUoZGV2aWNlLCBlbXB0eVN0cmluZygpLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFp
bnQpIDogbnVsbHB0cjsKKyAgICAgICAgaWYgKCFkZXZpY2UpCisgICAgICAgICAgICByZXR1cm4g
eyB9OworICAgICAgICByZXR1cm4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzKTsKICAgICB9CiB9OwogCi1SZWZQdHI8QVZNZWRp
YUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2
aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKK0NhcHR1
cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2
aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkKSk7CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKICAgICBpZiAo
Y29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3Ry
YWludHMoKmNvbnN0cmFpbnRzKTsKLSAgICAgICAgaWYgKHJlc3VsdCkgewotICAgICAgICAgICAg
aW52YWxpZENvbnN0cmFpbnQgPSByZXN1bHQudmFsdWUoKS5maXJzdDsKLSAgICAgICAgICAgIHNv
dXJjZSA9IG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAg
ICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNv
dXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0
dXJlRmFjdG9yeSYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRp
YyBOZXZlckRlc3Ryb3llZDxBVlZpZGVvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAg
ICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CkBAIC0xNDcsNiArMTQ2LDMxIEBAIEFWVmlkZW9DYXB0
dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3VyY2UoKQogewogfQogCit2b2lkIEFWVmlkZW9D
YXB0dXJlU291cmNlOjptb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90
aWZpZXIpCit7CisgICAgbm90aWZpZXIuYWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIEFW
VmlkZW9DYXB0dXJlU291cmNlOjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQor
eworICAgIHN3aXRjaCAob3JpZW50YXRpb24pIHsKKyAgICBjYXNlIDA6CisgICAgICAgIG1fZGV2
aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZTsKKyAgICAg
ICAgYnJlYWs7CisgICAgY2FzZSA5MDoKKyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2Fz
ZSAtOTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6TGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxODA6CisgICAgICAgIG1f
ZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93
bjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKwogc3RhdGljIHZvaWQgdXBkYXRlU2l6ZU1pbk1heChpbnQmIG1pbiwgaW50JiBtYXgsIGlu
dCB2YWx1ZSkKIHsKICAgICBtaW4gPSBzdGQ6Om1pbjxpbnQ+KG1pbiwgdmFsdWUpOwpAQCAtNDYy
LDIwICs0ODYsMjIgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1l
KFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnUKICAgICAgICAgYnJlYWs7CiAg
ICAgfQogI2VuZGlmCisgICAgYm9vbCBzaG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdodCA9IGZhbHNl
OworICAgIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQg
JiYgbV9kZXZpY2VPcmllbnRhdGlvbiAhPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Umln
aHQpCisgICAgICAgIHNob3VsZFN3aXRjaFdpZHRoQW5kSGVpZ2h0ID0gdHJ1ZTsKKyAgICBlbHNl
IGlmIChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCAmJiBtX2Rl
dmljZU9yaWVudGF0aW9uICE9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQorICAg
ICAgICBzaG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdodCA9IHRydWU7CiAKLSAgICBib29sIHNldHRp
bmdzQ2hhbmdlZCA9IGZhbHNlOwogICAgIENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBD
TVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsK
LSAgICBpZiAocm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0IHx8
IHJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQorICAgIGlmIChz
aG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdodCkKICAgICAgICAgc3RkOjpzd2FwKGRpbWVuc2lvbnMu
d2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0KTsKIAogICAgIGlmIChkaW1lbnNpb25zLndpZHRoICE9
IG1fd2lkdGggfHwgZGltZW5zaW9ucy5oZWlnaHQgIT0gbV9oZWlnaHQpIHsKICAgICAgICAgbV93
aWR0aCA9IGRpbWVuc2lvbnMud2lkdGg7CiAgICAgICAgIG1faGVpZ2h0ID0gZGltZW5zaW9ucy5o
ZWlnaHQ7Ci0gICAgICAgIHNldHRpbmdzQ2hhbmdlZCA9IHRydWU7Ci0gICAgfQogCi0gICAgaWYg
KHNldHRpbmdzQ2hhbmdlZCkKICAgICAgICAgc2V0dGluZ3NEaWRDaGFuZ2UoKTsKKyAgICB9CiAK
ICAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShtX2J1
ZmZlci5nZXQoKSwgcm90YXRpb24sIFtjb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pKTsKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3Jl
QXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCBlMDgzYjU0MDMzN2I4ZjNl
NzBkMDgzNGRiMWZlYjcxZTg2YWJhODhlLi44MWUwZGY0ODU2MjgzZTE4Nzc2ZGViZDBiNDQ5Mzc5
YjQwN2JlY2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00Niw0
NSArNDYsMzkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb3JlQXVkaW9DYXB0
dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFj
dG9yeSB7CitjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQ
dHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmlu
ZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKLSAgICAgICAgcmV0dXJuIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHMsIGludmFsaWRD
b25zdHJhaW50KTsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsIHsKKyAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShkZXZpY2VJRCwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKIGNvbnN0IFVJbnQz
MiBvdXRwdXRCdXMgPSAwOwogY29uc3QgVUludDMyIGlucHV0QnVzID0gMTsKIAotUmVmUHRyPENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U+IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewotICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIFN0cmluZyBsYWJlbDsKICAgICB1aW50MzJf
dCBwZXJzaXN0ZW50SUQgPSAwOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9
IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZp
Y2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJuIG51
bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwo
KTsKICAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKLSAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlE
LCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGxhYmVsLCBwZXJzaXN0ZW50SUQpKTsK
IAogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAg
ICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCkK
KyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9
Ci0KLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihX
VEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkK
IHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rv
cnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuaAppbmRleCAyMzVkNWEzMTRkYzJhYzgxMmQ3MmJmODg0OWI2ZTYxYmQ3OWJj
NGRkLi4xM2Y0MTZjZTEyMDUyMzc5NmQ2Y2EyNTI0NzA0MmI5YmMyMjk2Y2UyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDkgKzUzLDkgQEAgY2xhc3MgQ2FwdHVyZURl
dmljZUluZm87CiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1l
TWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxDb3JlQXVkaW9DYXB0
dXJlU291cmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpOworICAgIHN0YXRp
YyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1
cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2Fw
dHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZvaWQgYWRkRWNob0NhbmNlbGxhdGlvblNv
dXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKICAgICB2b2lkIHJlbW92ZUVjaG9DYW5jZWxs
YXRpb25Tb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggY2U0ZGFiYjM4ZWJlODg4OGYzY2MwMzdmZmY1M2Fm
YTc0YjBiOTIzOC4uYjBmMjgzYjFkYzc0MmRkMDlhZjY1MWQ3NzI1ZmNhYTY3MWM4YWM5NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQpAQCAtODQsMTMgKzg0LDE0
IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwg
ZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9CiB9CiAKLVJlZlB0cjxNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKG5hbWUpKTsK
KyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2Vz
CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3Ry
YWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9Owog
Ci0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RG
TW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tSZWFs
dGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggNGQ1MTQzZWMyOWJiMDdjMTIwZWIxMGU0MzEwNjVh
MWZlODhhODZiYS4uOTU4MzdiMTFhNWM2ZDk3Zjg3MmI2NTAwNTg4ODQxMDIwYWNhN2YxZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFs
dGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTI4LDEzICsyOCwxMyBA
QAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjX2gKLSNkZWZpbmUgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaAorI3ByYWdtYSBvbmNl
CiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIK
ICNpbmNsdWRlICJNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgorI2luY2x1ZGUgIk9yaWVudGF0
aW9uTm90aWZlci5oIgogCiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVkJ1ZmZlclJlZjsK
IHR5cGVkZWYgQ1ZCdWZmZXJSZWYgQ1ZJbWFnZUJ1ZmZlclJlZjsKQEAgLTQzLDkgKzQzLDggQEAg
dHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCAqQ1ZQaXhlbEJ1ZmZlclBvb2xSZWY7
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgeworY2xhc3MgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotCiAg
ICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSB7IH0KIAogcHJpdmF0ZToK
QEAgLTU5LDEzICs1OCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVy
KCkgZmluYWw7CiAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwogCisg
ICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAg
IG11dGFibGUgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcHJldmlld0ltYWdlOwogICAgIG11dGFi
bGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fcHJldmlld0xheWVyOwogICAgIG11dGFibGUg
UmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX2J1ZmZlclBvb2w7CisgICAgTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb24gbV9kZXZpY2VPcmllbnRhdGlvbiB7IE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmlu
ZGV4IDkxYTRlZTczZTg5MGY5NWE2MWVkZDk3ZjE2M2I1YTA5ZWM0MDY4MzcuLmIyOTlkNTczZDhj
YzkyNTBjMGQ1ZWI2ZDY1OTAwYTgwYWMxYzAwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUwLDEzICs1MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9TYW1wbGVSYXRlID0gOTAwMDA7CiAKLVJlZlB0cjxN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQor
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25z
dCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewot
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFj
KG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9y
IG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50
cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6
Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTE1Nyw2
ICsxNTgsMjcgQEAgYm9vbCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6YXBwbHlTaXplKGNv
bnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjphcHBseVNpemUobmV3U2l6ZSk7CiB9CiAKK3ZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWM6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7CisgICAgLy8gRklYTUU6
IERvIHNvbWV0aGluZyB3aXRoIG1fZGV2aWNlT3JpZW50YXRpb24KKyAgICBzd2l0Y2ggKG9yaWVu
dGF0aW9uKSB7CisgICAgY2FzZSAwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
OTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgLTkwOgorICAgICAgICBtX2Rl
dmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ7CisgICAg
ICAgIGJyZWFrOworICAgIGNhc2UgMTgwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAgICAgIGJyZWFrOwor
ICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggNmY0YmY2MTAxNTAyYzdhNDA1
YWI1Y2ZiMTI3MWVjOGY1MzM3MzUyYy4uNWMyNjA1MDI2NTU3MDg0ZGNhMTRkMTZjYWNhZDE4ZDFi
OWU3ZmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNw
cApAQCAtMTM2LDE5ICsxMzYsMjEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
OjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcGwKICAgICBTdHJp
bmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBpZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0eSgp
ICYmIG1fYXVkaW9GYWN0b3J5KSB7Ci0gICAgICAgIGlmIChhdXRvIGF1ZGlvU291cmNlID0gbV9h
dWRpb0ZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhhdWRpb0RldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbywgYXVk
aW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgYXV0byBh
dWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoYXVk
aW9EZXZpY2VJRCwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgIGlmICghIWF1ZGlvU291cmNl
KQorICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7
CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFw
cGx5OiAlcyIsIHRoaXMsIGludmFsaWRDb25zdHJhaW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAg
ICBpZiAoIWF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBM
T0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVh
bSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBhdWRp
b1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICB9CiAgICAg
aWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSAmJiBtX3ZpZGVvRmFjdG9yeSkgewotICAgICAg
ICBpZiAoYXV0byB2aWRlb1NvdXJjZSA9IG1fdmlkZW9GYWN0b3J5LT5jcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModmlkZW9EZXZpY2VJRCwgQ2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6VmlkZW8sIHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJh
aW50KSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2UucmVsZWFz
ZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBtX3ZpZGVvRmFjdG9yeS0+
Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKHZpZGVvRGV2aWNlSUQsIHZpZGVvQ29uc3RyYWludHMp
OworICAgICAgICBpZiAoISF2aWRlb1NvdXJjZSkKKyAgICAgICAgICAgIHZpZGVvU291cmNlcy5h
cHBlbmQodmlkZW9Tb3VyY2Uuc291cmNlKCkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAg
aWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBMT0coTWVkaWEs
ICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZp
ZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBpbnZhbGlkQ29uc3Ry
YWludC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJjZS5lcnJvck1lc3Nh
Z2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgTE9HKE1lZGlhLCAiUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0oJXApLCB2aWRlbyBjb25zdHJhaW50cyBmYWls
ZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywgdmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlLnV0ZjgoKS5k
YXRhKCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0xODcsMTIgKzE4OSwxOCBAQCBWZWN0b3I8U3Ry
aW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRD
b25zdHJhaW50cyhSZQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UuZW5hYmxlZCgpIHx8IGNh
cHR1cmVEZXZpY2UudHlwZSgpICE9IGRldmljZVR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZmFjdG9yeSA9
IHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gPyBtX3ZpZGVvRmFjdG9y
eSA6IG1fYXVkaW9GYWN0b3J5OwotICAgICAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgICAgICBj
b250aW51ZTsKKyAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKKyAg
ICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYgbV92
aWRlb0ZhY3RvcnkpCisgICAgICAgICAgICBzb3VyY2VPckVycm9yID0gbV92aWRlb0ZhY3Rvcnkt
PmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpLCAm
Y29uc3RyYWludHMpOworICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvICYmIG1fYXVkaW9GYWN0b3J5KQorICAgICAgICAgICAgc291cmNlT3JF
cnJvciA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURl
dmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFpbnRzKTsKIAotICAgICAgICBpZiAoYXV0byBj
YXB0dXJlU291cmNlID0gZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZVR5cGUs
ICZjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAgICAgYmVzdFNvdXJj
ZXMuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigpKTsKKyAgICAgICAgaWYgKCFzb3VyY2VP
ckVycm9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGludmFs
aWQgY29uc3RyYWludHMgb24gbW9yZSB0aGFuIG9uZSBkZXZpY2UuCisgICAgICAgICAgICBpbnZh
bGlkQ29uc3RyYWludCA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOworICAg
ICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5k
KHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgIH0KIAogICAgIFZlY3RvcjxTdHJpbmc+IHNv
dXJjZVVJRHM7CkBAIC0yMDcsMTIgKzIxNSwxMiBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQog
ICAgIHJldHVybiBzb3VyY2VVSURzOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdEF1ZGlvRmFjdG9y
eSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkKIHsKICAgICByZXR1cm4g
JkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Q2FwdHVyZUZhY3RvcnkqIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1
bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9y
eSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCiB7
CiAgICAgcmV0dXJuICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggMWJmNDk3ZmQ2ZDdjM2Mx
NjZmZGE4MmRlYTJiMTMxYjEzYzhhNDQ4NC4uZmYxZjg5N2JiZWRlOTlhNDQwNTJiNjkyY2Y1ZDhk
MGFlZDEwMGQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5o
CkBAIC01NCw4ICs1NCw4IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8U3RyaW5nPiBiZXN0U291
cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CiAKLSAgICBS
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgp
IGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0
VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0
dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5h
bDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck93ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2Vi
cnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCmluZGV4IDZlYzhlOGIwNTNhMTIw
OTE0MmRkY2UzMzFkMzhjMGFlYTE3YmRiOGIuLjBmNjRkZTQzN2Y0MTRhYTZiMGQxOWI4ODRlMjQ3
NmU5NDhlN2ZhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyT3dyLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck93cjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJh
aW50c0hhCiAgICAgbV9pbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKIH0KIAot
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdN
ZWRpYVN0cmVhbUhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9E
ZXZpY2VJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBs
ZXRpb25IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYg
dmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKQogewogICAgIGludCB0eXBlcyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047CiAKQEAg
LTEwOSw3ICsxMDksNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0
ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wbAogICAgIGlmICghdmlkZW9E
ZXZpY2VJRC5pc0VtcHR5KCkpCiAgICAgICAgIHR5cGVzIHw9IE9XUl9NRURJQV9UWVBFX1ZJREVP
OwogCi0gICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyOworICAgIG1f
Y29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKIAogICAgIG93
cl9nZXRfY2FwdHVyZV9zb3VyY2VzKHN0YXRpY19jYXN0PE93ck1lZGlhVHlwZT4odHlwZXMpLCBt
ZWRpYVNvdXJjZXNBdmFpbGFibGVDYWxsYmFjaywgdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29w
ZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCmluZGV4IDZjZGQ3ZDVmZTBj
NGE4MjgyZDQxMDM3NGVkNGY3MmM3ODFmZDliMTYuLmIzODcwYzEyZGNiNWRkNjY3ZTRjYjMwM2U0
ODA4YzAyODVjYWIyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck93ci5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQg
dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXIgdmFsaWRI
YW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
JiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0o
TmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25z
dHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7
CisgICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXImJiwgY29u
c3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIHZpZGVvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGF1ZGlvQ29uc3RyYWludHMpIGZpbmFsOwogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZp
Y2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4
IDQwNzg4ZDdlYTUzNGJmOTU3ODliMWZlZjc5NTMyNjVlNmE0ZDlmNDguLmM0MDA1ZWRmMTg4MWQ4
NWJkYTkwOTlmMjcwZTE4ZDMwNzg1NDEyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSwyOSAr
NDEsMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3Rv
cnkgeworY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VX
aXRoQ29uc3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JikgZmluYWwgewotICAgICAgICBpZiAodHlwZSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpBdWRpbykKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCisgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIGZv
ciAoYXV0byYgZGV2aWNlIDogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygp
KSB7CiAgICAgICAgICAgICBpZiAoZGV2aWNlLnBlcnNpc3RlbnRJZCgpID09IGRldmljZUlEKQog
ICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRl
dmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CiAgICAgICAgIH0KLQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiB9OwogCiAjaWYgIVBMQVRGT1JN
KE1BQykgJiYgIVBMQVRGT1JNKElPUykKLVJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4g
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UobmFtZSkpOwogICAgIGlmIChj
b25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKLSAg
ICAgICAgc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVy
biBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNl
KSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTc0LDcgKzcwLDcg
QEAgUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW4KIH0KICNlbmRpZgogCi1SZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQor
UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlLmgKaW5kZXggMTMzMWM3OTE4MTQ0ZTZlOTZmYzJhZjQyNTdiZmMyZTcxZmNk
OGU2Ny4uMzY0NTIyYjEzZjcwNGU5MDg5YmFmODY1ZjliNmI5ODZkYjIzMTMwNSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaApAQCAtNDIsMTAgKzQyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1
YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IGNyZWF0
ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKik7CiAgICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3Jl
YXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHN0YXRpYyBDYXB0dXJlRmFjdG9y
eSYgZmFjdG9yeSgpOworICAgIHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7
CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpID0gZGVmYXVsdDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBiZDc0ODg2MDYyYTEzNWZiODJkNTcyZmRh
YzFjYTYxZTlhNjZiZjEwLi42OGU2NmEyNWJiMDI0NzQzNDI2MzI5MTI0YmI4ZjNhMTFiNWI4MmVi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtODcsOSArODcsOSBAQCB2b2lkIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhW
YWxpZENvbnN0cmFpbnRzSAogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewog
ICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKICAgICAgICAgZm9yIChjb25z
dCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkp
IHsKLSAgICAgICAgICAgIGF1dG8gYXVkaW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmIChhdWRp
b1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29u
c3RyYWludCkpCi0gICAgICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe2F1ZGlvU291cmNl
LT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CisgICAgICAgICAgICBh
dXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmlj
ZS5sYWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJyb3IgJiYg
c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKGF1ZGlvQ29u
c3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKKyAgICAgICAgICAgICAgICBkZXZpY2VJbmZv
LmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZGV2aWNlSW5m
by5pc0VtcHR5KCkpIHsKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRz
SAogICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8
RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2Ug
OiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAg
IGF1dG8gdmlkZW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmlj
ZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmICh2aWRlb1NvdXJjZS0+c3VwcG9y
dHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAg
ICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe3ZpZGVvU291cmNlLT5maXRuZXNzU2NvcmUo
KSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJy
b3IgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxs
cHRyKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2Fw
dHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlk
Q29uc3RyYWludCkpCisgICAgICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9y
RXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZS5wZXJzaXN0ZW50SWQo
KX0pOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRldmljZUluZm8uaXNFbXB0eSgpKSB7CkBA
IC0xMzUsMjYgKzEzNSwyNiBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpj
cmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcAogICAgIGlmICghYXVk
aW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byYgYXVkaW9EZXZpY2VzID0gTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpOwogICAgICAgICBpZiAoYXVkaW9E
ZXZpY2VJRCA9PSBhdWRpb0RldmljZXNbMF0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAg
IGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0Rldmlj
ZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNl
KQotICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25O
dWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50
cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIGF1
ZGlvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0gZWxz
ZSBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0RldmljZXNbMV0ucGVyc2lzdGVudElkKCkpIHsK
LSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShhdWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAg
ICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNl
LnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVk
aW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAg
ICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAg
ICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpKSB7CiAg
ICAgICAgIGF1dG8mIHZpZGVvRGV2aWNlcyA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRl
b0RldmljZXMoKTsKICAgICAgICAgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzBd
LnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3Ry
YWludHMpOwotICAgICAgICAgICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAgICAgICB2aWRlb1Nv
dXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8g
c291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZp
Y2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgaWYgKCEhc291
cmNlT3JFcnJvcikKKyAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9y
RXJyb3Iuc291cmNlKCkpOwogICAgICAgICB9IGVsc2UgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlk
ZW9EZXZpY2VzWzFdLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZSA9
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCks
IHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAgICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAg
ICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAg
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAg
ICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBw
ZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNzQs
MTIgKzE3NCwxMiBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OmdldE1lZGlhU3RyZWFtRGV2aWNlcygpCiAgICAgcmV0dXJuIHNvdXJjZXM7CiB9
CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVm
YXVsdEF1ZGlvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6ZmFjdG9yeSgpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSog
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQogewogICAgIHJldHVybiAmTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApp
bmRleCBjZGU2NTBmYjIxZTFlZTI2NmFlNWI5Mjk1NzIwMTE5MjVkMTliMWRlLi5lODQxNDIyMjFj
YTM4MzA3OWZhNDg2NmIwYWNhYTE5ZmU1NGFhYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
CkBAIC00NSw4ICs0NSw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdl
dE1lZGlhU3RyZWFtRGV2aWNlcygpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0o
TmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0
IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25z
dHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cykgZmluYWw7
CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlv
RmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5
KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3Rv
cnkoKSBmaW5hbDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMmU2NjQyMmU4ZTJmYjlj
ZjQ5N2I3MzAxOTQ2MmFjMGYxMDdkZjIwMy4uZWFhZGRlYmFjZGIxNjA1ZTdlZmFiZjk5YWIwZjhh
NmIxMTJjYTA4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ4LDI5ICs0OCwyNSBAQAogCiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6
IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhj
b25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmKSBmaW5hbCB7Ci0gICAg
ICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvKQotICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2Ug
OiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsKICAgICAgICAgICAg
IGlmIChkZXZpY2UucGVyc2lzdGVudElkKCkgPT0gZGV2aWNlSUQpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIGNv
bnN0cmFpbnRzKTsKICAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAg
ICByZXR1cm4geyB9OwogICAgIH0KIH07CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZP
Uk0oSU9TKQotUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCiB7CiAgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UobmFtZSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFw
cGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKLSAgICAgICAgc291cmNlID0gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENh
cHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNv
bnN0IFN0cmluZyYgbmFtZSkKQEAgLTgxLDcgKzc3LDcgQEAgUmVmUHRyPE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3Ry
aW4KIH0KICNlbmRpZgogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKQogewog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rvcnk+
IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggZDc5
OTg1ZTcxYWMyZGUyMDQ4Y2Y2Y2EzYmI5YmNkZDdiNGUwOTMwNC4uYWE2MGVjN2U1ZjM4MzFjZjBj
MjdmZDhmMTA3MTEzYjAwMmQyOTYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDYsMTAgKzQ2LDEwIEBA
IGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDog
cHVibGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBS
ZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGlj
IFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5n
JiBuYW1lKTsKIAotICAgIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0
YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYmY4ZGQ3NTNmOTczZTcyNmNjYTRjNWIxNTY5M2Q2
NjRiYWNhMjFmMS4uZDA3YmYzZWRkMTA1MTIyMWI5ZmYzNWI4OGJmZDkwOTA2NThmYzg5MSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzQs
NiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNp
bmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UGF5bWVudEhlYWRlcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgogCiBuYW1lc3Bh
Y2UgV1RGIHsKQEAgLTcyMiw2ICs3MjMsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlPiB7CiAgICAgICAgIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvCiAgICAgPjsKIH07Cit0ZW1wbGF0ZTw+
IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU+IHsK
KyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGUsCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
Tm9uZSwKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywKKyAg
ICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbworICAgID47Cit9Owog
I2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZWxl
Y3Rpb25PcHRpb246OlR5cGU+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBl
OWQ3NmI2MWQzYzMxYTc3M2M5NjNjNjU5YTY5NTZhNjQ0YmNmYjUwLi4xNzZmNjBhZjRlZDdlMjdk
MmE2YmI2MmMyNzIwZmU1OWI3ZjU4ZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
CkBAIC0xMjUsMTQgKzEyNSwyNyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VS
ZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJl
Y2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojpj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3Qg
aWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwg
Ym9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3ZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNl
V2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlk
Q29uc3RyYWludHMpCiB7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsK
ICAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb25z
dHJhaW50c0RhdGEpOwotICAgIGF1dG8gc291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHMucHRyKCks
IGludmFsaWRDb25zdHJhaW50cyk7Ci0gICAgc3VjY2VlZGVkID0gISFzb3VyY2U7CisgICAgc3dp
dGNoICh0eXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbzoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
ZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgc291cmNl
T3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFj
dG9yeSgpLT5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0
cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
YnJlYWs7CisgICAgfQogCi0gICAgaWYgKHNvdXJjZSkKLSAgICAgICAgbV9wcm94aWVzLnNldChp
ZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2UucmVsZWFz
ZU5vbk51bGwoKSkpOworICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKKyAgICBpZiAo
c291cmNlT3JFcnJvcikKKyAgICAgICAgbV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1
ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKSk7CisgICAg
ZWxzZQorICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3Iu
ZXJyb3JNZXNzYWdlKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojpz
dGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaApp
bmRleCAwZTYzNTE4MmUyNDNjYzc3YzM0OGUwNzY2ZWQzZWM1YWFkZDBmMTgyLi40MTM5ZGIyNGQ0
NzUyMDllYzNlN2NkM2NiZjdiZDgzNGEyNzhjYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVj
ZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5p
cXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYg
aW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVy
ZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnRzKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9p
ZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWlu
dDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNTI3ZGZhNjZhODQ2
ZjQ3ZmQwODBkNTdlNzE4MzM3MTIyZDgxYzgwOC4uMWZjMDkzZTViMzA5NmY1MTBkZGU4ZmY0YWNl
NjRmZDE0MDEzYjdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKLSAgICBDcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQs
IFN0cmluZyBkZXZpY2VJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBl
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChi
b29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgQ3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBTdHJpbmcg
ZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgc3RydWN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNj
ZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzKQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1
aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBDYXBh
YmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Fw
YWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYjMxYWEx
OGUxYjY4MjkxNDk3NTc5ODgxMzhjNmQyZjBmZTZiNDRkYy4uNGQ0ZjAyNjJmZDliMTE4M2I4MDQz
OTA5NGU1ZjMxNGNmMDZlNTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4MiwxMCAr
MTgyLDEwIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3Qg
V2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQorV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykKIHsKICAgICBpZiAoIWNvbnN0cmFpbnRzKQotICAgICAgICByZXR1cm4g
bnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIHVpbnQ2NF90IGlkID0gbmV4dFNl
c3Npb25JRCgpOwogICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzRGF0YTsKQEAg
LTE5NCwyNCArMTk0LDEzIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlCiAgICAgY29uc3RyYWlu
dHNEYXRhLmlzVmFsaWQgPSBjb25zdHJhaW50cy0+aXNWYWxpZCgpOwogICAgIGJvb2wgc3VjY2Vl
ZGVkOwogCi0gICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoaWQsIGRldmljZUlELCB0eXBlLCBjb25zdHJhaW50c0RhdGEpLCBNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cyks
IDApOwotCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlOwotICAgIHN3
aXRjaCAodHlwZSkgewotICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZTo6QXVkaW86Ci0gICAgICAgIHNvdXJjZVR5cGUgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpBdWRpbzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbzoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOwotICAgICAgICBicmVhazsKLSAg
ICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAg
ZGVmYXVsdDoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6Ok5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0
eVN0cmluZygpLCBpZCwgKnRoaXMpKTsKLSAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UpOwot
ICAgIHJldHVybiBzb3VyY2U7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIW1f
cHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZp
Y2VJRCwgc291cmNlVHlwZSwgY29uc3RyYWludHNEYXRhKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2UpLCAwKSkKKyAgICAgICAg
cmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmlu
ZygpLCBpZCwgKnRoaXMpKTsKKyAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UuY29weVJlZigp
KTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3Vy
Y2UpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1
aW50NjRfdCBpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA0NDZkYTk5MWNhNmM4OGM4NjBmYTcx
OTQ1YWQ4ZDZmOWUyZTRkNjdmLi5hOGE5M2FiZGVlNWU4ZWRjNmQwMjE5OGI1MTA2OTQ5YzVlNDg5
YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJL
aXQgewogY2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRpbWVBdWRpb1NvdXJjZTsKIGNsYXNzIFdlYlBy
b2Nlc3M7CiAKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nl
c3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBVc2VyTWVkaWFD
YXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6
TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9DYXB0dXJlRmFjdG9yeSwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsKICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsK
QEAgLTUzLDggKzUzLDEwIEBAIHByaXZhdGU6CiAgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQK
ICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYp
IGZpbmFsOwogCi0gICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9yeToK
LSAgICBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHMqLCBTdHJpbmcmKSBmaW5hbDsKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlIGZhY3RvcmllcworICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRl
Q2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8sIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVy
cm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4g
Y3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6VmlkZW8sIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25z
dHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJl
Y2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308154</attachid>
            <date>2017-04-25 15:51:22 -0700</date>
            <delta_ts>2017-04-25 16:24:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171284-20170425155121.patch</filename>
            <type>text/plain</type>
            <size>76124</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NjgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmQ3MDdjOTBlZWFlZjk3
NTRlNjYyMmE1NGY4NGMyZjFkOTNhNjJkZS4uYmI0ZmNkODFkOGYzOGJlM2FiNGE3OWE0NmMyMzYw
NTM3MzQ3OTI1MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE5vIHRlc3QgeWV0LgorCisgICAgICAgIE1ha2lu
ZyBEb2N1bWVudCBoYXZpbmcgYW4gT3JpZW50YXRpb25Ob3RpZmllciB0aGF0IEFWVmlkZW9DYXB0
dXJlU291cmNlcyBnZXQgcmVnaXN0ZXJlZCB0by4KKyAgICAgICAgTWFraW5nIEFWVmlkZW9DYXB0
dXJlU291cmNlIGFuIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHNvIHRoYXQgaXQgY2Fu
IGNoYW5nZXMgd2lkdGgvaGVpZ2h0IGlmIG5lZWRlZC4KKworICAgICAgICBSZWZhY3RvcmluZyB0
byBzcGVjaWFsaXplIENhcHR1cmVGYWN0b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkuCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1
cmVTb3VyY2VPckVycm9yIGluc3RlYWQgb2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIHBsdXMg
cmV0dXJuaW5nIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFs
bG93KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpvcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vT3JpZW50YXRpb25Ob3RpZmVyLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmguCisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6
c2V0Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXI6On5PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVy
OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3Rp
Zmllcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmll
cjo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6
Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3I6
OkNhcHR1cmVTb3VyY2VPckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpzb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1
ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjp2aWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRp
b0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9D
YXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9u
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpj
cmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Blbndl
YnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFt
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZh
dWx0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmg6CisKIDIwMTctMDQtMjMgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1x
dWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIyMTU2
NTcgYW5kIHIyMTU2NzYuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggNmVkNTAzNmNhOGRkNGMzNjc0OGFkMWU4ZjI1
MDY2NjE4ODA3MDExNS4uMDBmNjkzN2U3MWY2ODYyMzk5Mzg1MDJmOWY2YzQxZTU4MjcwYjgzMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE3LTA0LTI1ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlkZW8gc3RyZWFtcyBz
aG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gc3BlY2lhbGl6ZSBDYXB0dXJl
RmFjdG9yeSBpbiBWaWRlb0NhcHR1cmVGYWN0b3J5IGFuZCBBdWRpb0NhcHR1cmVGYWN0b3J5Lgor
ICAgICAgICBSZWZhY3RvcmluZyB0byByZXR1cm4gYSBDYXB0dXJlU291cmNlT3JFcnJvciBpbnN0
ZWFkIG9mIHBhc3NpbmcgYW4gb3V0IHBhcmFtZXRlciBpbiBhZGRpdGlvbiB0byByZXR1cm5pbmcg
YSBSZWZQdHIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3Bw
OgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW46
CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVDYXB0dXJl
U291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6IERlbGV0ZWQuCisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oOgorCiAy
MDE3LTA0LTIzICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21h
Y09TXSBXS1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIgaGFzIGEgcHVibGljIGl2YXIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJl
cXVlc3QuY3BwCmluZGV4IDZlYjQxOTQxYTcyNDVhMjE2ZDcwODQ0NjQ5NTYzZjYwZThmOGM2NTYu
LjkxZmQ4ODZiNjhhNzRlMjU1OGI2ZWEyZTVlM2JhMmU2NGQ0Y2U1OTcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNw
cApAQCAtMTYwLDEzICsxNjAsMTYgQEAgdm9pZCBVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyhjb25z
dCBTdHJpbmcmIGF1ZGlvRGV2aWNlVUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGUKIAogICAgIFJl
ZlB0cjxVc2VyTWVkaWFSZXF1ZXN0PiBwcm90ZWN0ZWRUaGlzID0gdGhpczsKICAgICBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY2FsbGJhY2sgPSBbdGhp
cywgcHJvdGVjdGVkVGhpcyA9IFdURk1vdmUocHJvdGVjdGVkVGhpcyldKFJlZlB0cjxNZWRpYVN0
cmVhbVByaXZhdGU+JiYgcHJpdmF0ZVN0cmVhbSkgbXV0YWJsZSB7Ci0gICAgICAgIGlmICghbV9z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KQorICAgICAgICBhdXRvKiBjb250ZXh0ID0gZG93bmNhc3Q8
RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCk7CisgICAgICAgIEFTU0VSVChjb250
ZXh0KTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuOwogCiAgICAg
ICAgIGlmICghcHJpdmF0ZVN0cmVhbSkgewogICAgICAgICAgICAgZGVueShNZWRpYUFjY2Vzc0Rl
bmlhbFJlYXNvbjo6SGFyZHdhcmVFcnJvciwgZW1wdHlTdHJpbmcoKSk7CiAgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIH0KKyAgICAgICAgcHJpdmF0ZVN0cmVhbS0+bW9uaXRvck9yaWVudGF0
aW9uKGNvbnRleHQtPm9yaWVudGF0aW9uTm90aWZpZXIoKSk7CiAKICAgICAgICAgYXV0byBzdHJl
YW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHByaXZh
dGVTdHJlYW0ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGlmIChzdHJlYW0tPmdldFRyYWNr
cygpLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IGUyN2JjZjM1NTVhYzg4ZTBiOTBmMDBhZjE2YTNkMzdkMDEy
NDE1ZWMuLjUzZGE4NDRiMzM2MjBkODY2ZjVmOTM3NjkxMjZkYzMxZjgxYWQxZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3
NTksNiArMTc1OSw3IEBACiAJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVz
dFN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxODE1QzFEMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLzsgc2V0
dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0NzFFNTNF
OThDMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRy
b2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MTgyMDU0OTFFNTNFQUIwMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNl
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0ODFFNTNFQUFEMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi87IH07CisJCTQxODRGNTE2MUVBRjA1QTgwMEYx
OEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlv
bk5vdGlmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkxMTFCNkZEQTYw
MDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3Vi
bWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovOyB9Owog
CQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEzM0MwNEQ1MDBD
RDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87IH07CkBAIC05Mzc3LDYgKzkzNzgsNyBAQAog
CQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmln
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC54Y2Nv
bmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MjA1NDUxRTUzQzhDRDAwRDYy
MjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
UlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgyMDU0ODFF
NTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmllbnRhdGlvbk5vdGlmZXIuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8q
IEZvcm1TdWJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1T
dWJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFCNkZE
QTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk5MCw2ICsyMzk5Miw3IEBACiAJCQkJQkM3NzJDNEQw
QzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2
NzdGMDg4MDAxNDlGQ0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLAogCQkJCTk4RUIxRjk0MTMx
M0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovLAorCQkJCTQxODRGNTE1MUVBRjA1
OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLywKIAkJCQk0QjI3MDhDNTBBRjE5
RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovLAogCQkJCUM1Rjc2NUI0MTRFMUQ0MTQwMDZD
ODk5QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCAqLywKIAkJCQkxQUY1RTREMjFFNTY3MzVBMDA0
QTFGMDEgLyogUGFzdGVib2FyZFdyaXRlckRhdGEuY3BwICovLApAQCAtMjk2MTksNiArMjk2MjIs
NyBAQAogCQkJCTA4MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5l
LmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkUzOEVGRTFFODM5NkZEMDBDQTNBREYgLyogQ1NTRm9u
dFN0eWxlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI2MTI1NUYzQkQwMEVGQ0Ey
NyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQx
ODRGNTE2MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA4MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5l
U3BhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8q
IFNWR1RleHRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBF
RTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCmluZGV4IGZiNmJkNjg0NDA2ZTk1OTA0NzBlY2IwNDkzMGU3OGZmZDJjYzM1
OWYuLjViZmQxYWViZWIyZjEwNTZiNWE5MzlmMjNlZTkxNTg5NzRkYTZjZDYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmNwcApAQCAtNjk1NCw0ICs2OTU0LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJl
bW92ZUluRG9jdW1lbnRTaGFkb3dSb290KFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiAgICAgbV9p
bkRvY3VtZW50U2hhZG93Um9vdHMucmVtb3ZlKCZzaGFkb3dSb290KTsKIH0KIAordm9pZCBEb2N1
bWVudDo6b3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKK3sKKyAgICBkaXNwYXRj
aFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdl
RXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgIG1fb3JpZW50YXRpb25Ob3RpZmllci5vcmllbnRh
dGlvbkNoYW5nZWQob3JpZW50YXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDQ4MjgzMThkNzVmMTM2MWUzMDI4MjUwYTE5MWI2OWM3Yzlj
YWU1NTkuLjRlMDY5ZmQxNjY5MTNiY2NhMzhkZDk0MzgyZTg1YjBlNTE0NTg1NzkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5oCkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlv
bk9ic2VydmVyLmgiCiAjaW5jbHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk11dGF0
aW9uT2JzZXJ2ZXIuaCIKKyNpbmNsdWRlICJPcmllbnRhdGlvbk5vdGlmZXIuaCIKICNpbmNsdWRl
ICJQYWdlVmlzaWJpbGl0eVN0YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1FdmVudC5oIgogI2lu
Y2x1ZGUgIlJlZmVycmVyUG9saWN5LmgiCkBAIC0xMzA1LDYgKzEzMDYsOSBAQCBwdWJsaWM6CiAK
ICAgICBDb25zdGFudFByb3BlcnR5TWFwJiBjb25zdGFudFByb3BlcnRpZXMoKSBjb25zdCB7IHJl
dHVybiAqbV9jb25zdGFudFByb3BlcnR5TWFwOyB9CiAKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hh
bmdlZChpbnQgb3JpZW50YXRpb24pOworICAgIE9yaWVudGF0aW9uTm90aWZpZXImIG9yaWVudGF0
aW9uTm90aWZpZXIoKSB7IHJldHVybiBtX29yaWVudGF0aW9uTm90aWZpZXI7IH0KKwogcHJvdGVj
dGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJl
bmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEgfTsKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0
IFVSTCYsIHVuc2lnbmVkID0gRGVmYXVsdERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVj
dGlvbkZsYWdzID0gMCk7CkBAIC0xNzYwLDYgKzE3NjQsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9kaWREaXNwYXRjaFZpZXdwb3J0UHJvcGVydGllc0NoYW5nZWQgeyBmYWxzZSB9OwogI2VuZGlm
CiAKKyAgICBPcmllbnRhdGlvbk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKKwogICAg
IHN0YXRpYyBib29sIGhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hlOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAppbmRleCA0ZWQ5MTI0ZjIxMTU1Zjk1MTgxMGI5YWQwM2YwMjE1NGFhMmVmMzkz
Li4zNmExZmUxOWIwMTJhMTQ1NzlhYTVmMjJiMDhkNDU5YTMyMGQyN2VkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lLmNwcApAQCAtMjk4LDkgKzI5OCwxMCBAQCB2b2lkIEZyYW1lOjpvcmllbnRhdGlvbkNoYW5n
ZWQoKQogICAgIGZvciAoRnJhbWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUt
PnRyZWUoKS50cmF2ZXJzZU5leHQoKSkKICAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOwog
CisgICAgYXV0byBuZXdPcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uKCk7CiAgICAgZm9yIChhdXRv
JiBmcmFtZSA6IGZyYW1lcykgewogICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJh
bWUtPmRvY3VtZW50KCkpCi0gICAgICAgICAgICBkb2N1bWVudC0+ZGlzcGF0Y2hXaW5kb3dFdmVu
dChFdmVudDo6Y3JlYXRlKGV2ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBmYWxz
ZSwgZmFsc2UpKTsKKyAgICAgICAgICAgIGRvY3VtZW50LT5vcmllbnRhdGlvbkNoYW5nZWQobmV3
T3JpZW50YXRpb24pOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vT3JpZW50YXRpb25Ob3RpZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Pcmll
bnRhdGlvbk5vdGlmZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41NWIyOWZkMTI1NTE4NWIyNmZlZTM4OGE4ZmRm
NzZiZDhjNzljZmQzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
T3JpZW50YXRpb25Ob3RpZmVyLmgKQEAgLTAsMCArMSw4NiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE9yaWVudGF0aW9uTm90aWZp
ZXIgeworcHVibGljOgorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlv
bik7CisgICAgfk9yaWVudGF0aW9uTm90aWZpZXIoKTsKKworICAgIGNsYXNzIE9ic2VydmVyIHsK
KyAgICBwdWJsaWM6CisgICAgICAgIHZpcnR1YWwgfk9ic2VydmVyKCk7CisgICAgICAgIHZpcnR1
YWwgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSA9IDA7CisgICAgICAg
IHZvaWQgc2V0Tm90aWZpZXIoT3JpZW50YXRpb25Ob3RpZmllciogbm90aWZpZXIpIHsgbV9ub3Rp
ZmllciA9IG5vdGlmaWVyOyB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBPcmllbnRhdGlvbk5v
dGlmaWVyKiBtX25vdGlmaWVyIHsgbnVsbHB0ciB9OworICAgIH07CisKKyAgICB2b2lkIGFkZE9i
c2VydmVyKE9ic2VydmVyJik7CisgICAgdm9pZCByZW1vdmVPYnNlcnZlcihPYnNlcnZlciYpOwor
Citwcml2YXRlOgorICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9ic2VydmVyPj4g
bV9vYnNlcnZlcnM7Cit9OworCitpbmxpbmUgT3JpZW50YXRpb25Ob3RpZmllcjo6fk9yaWVudGF0
aW9uTm90aWZpZXIoKQoreworICAgIGZvciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZl
cnMpCisgICAgICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKG51bGxwdHIpOworfQorCitpbmxpbmUg
T3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXI6On5PYnNlcnZlcigpCit7CisgICAgaWYgKG1f
bm90aWZpZXIpCisgICAgICAgIG1fbm90aWZpZXItPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30K
KworaW5saW5lIHZvaWQgT3JpZW50YXRpb25Ob3RpZmllcjo6b3JpZW50YXRpb25DaGFuZ2VkKGlu
dCBvcmllbnRhdGlvbikKK3sKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2
ZXJzKQorICAgICAgICBvYnNlcnZlci5vcmllbnRhdGlvbkNoYW5nZWQob3JpZW50YXRpb24pOwor
fQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjphZGRPYnNlcnZlcihPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBv
YnNlcnZlci5zZXROb3RpZmllcih0aGlzKTsKK30KKworaW5saW5lIHZvaWQgT3JpZW50YXRpb25O
b3RpZmllcjo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fb2Jz
ZXJ2ZXJzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZlcl0oYXV0byBpdGVtKSB7CisgICAg
ICAgIGlmICgmb2JzZXJ2ZXIgIT0gJml0ZW0uZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CisgICAgICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKG51bGxwdHIpOworICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKaW5kZXggYzhmYWI2
ODY4N2JkODc1ZjcxZjcyNzU1ZjUwOWI1ZmMxNTc3Njk3OC4uYmYyOGVmMWJlZWI3ODc3YjYwZjlm
YTc2MTlmNmYzZDBjNjBkZWMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCkBAIC0yOTgsNiArMjk4
LDE1IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5j
dGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIH0pOwogfQogCit2b2lkIE1lZGlhU3RyZWFt
UHJpdmF0ZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVy
KQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisgICAg
ICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNDYXB0dXJlU291cmNlKCkgJiYgdHJhY2stPnR5cGUo
KSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKKyAgICAgICAgICAgIHRyYWNr
LT5zb3VyY2UoKS5tb25pdG9yT3JpZW50YXRpb24obm90aWZpZXIpOworICAgIH0KKworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0
cmVhbVByaXZhdGUuaAppbmRleCA5YjVhYTJlNjc4YTU2OTk1NjVhMTk3YzA4MDhhMDc1YTI1NjJm
NTgyLi43MTllOWNmMzIwODM1OTk0NDRhOTM1ZmI3NGZmM2Q3NzM2NGI1OTZmIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuaApAQCAtNTYsNiArNTYsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBN
ZWRpYVN0cmVhbTsKK2NsYXNzIE9yaWVudGF0aW9uTm90aWZpZXI7CiAKIGNsYXNzIE1lZGlhU3Ry
ZWFtUHJpdmF0ZSA6IHB1YmxpYyBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZTo6T2JzZXJ2ZXIsIHB1
YmxpYyBSZWZDb3VudGVkPE1lZGlhU3RyZWFtUHJpdmF0ZT4gewogcHVibGljOgpAQCAtMTE2LDYg
KzExNyw4IEBAIHByaXZhdGU6CiAgICAgR1JlZlB0cjxPd3JHc3RWaWRlb1JlbmRlcmVyPiBtX2dz
dFZpZGVvUmVuZGVyZXI7CiAjZW5kaWYKIAorICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9y
aWVudGF0aW9uTm90aWZpZXImKTsKKwogcHJpdmF0ZToKICAgICBNZWRpYVN0cmVhbVByaXZhdGUo
Y29uc3QgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGVWZWN0b3ImLCBTdHJpbmcmJik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAppbmRleCA5MGUyMjJiMzgyNmMwYzM1NGM0ZjIxZTZlYjg1ZGVmMWI3NTkyZjdj
Li4yYWY2MTFmYWY5NGY5ZjgyNGUxM2JjMDYzNGFmZmE3OWNlNzNkZjEwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZS5oCkBAIC0zMSw4ICszMSw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYg
UmVhbHRpbWVNZWRpYVNvdXJjZV9oCi0jZGVmaW5lIFJlYWx0aW1lTWVkaWFTb3VyY2VfaAorI3By
YWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCkBAIC01OCw5ICs1NywxMiBA
QCBjbGFzcyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgT3JpZW50
YXRpb25Ob3RpZmllcjsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVN
ZWRpYVNvdXJjZVNldHRpbmdzOwogCitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CisKIGNs
YXNzIFdFQkNPUkVfRVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRl
ZDxSZWFsdGltZU1lZGlhU291cmNlPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewpA
QCAtODMsMTMgKzg1LDIyIEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2Ft
cGxlc0F2YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYs
IGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyov
KSB7IH0KICAgICB9OwogCi0gICAgY2xhc3MgQ2FwdHVyZUZhY3RvcnkgeworICAgIGNsYXNzIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+QXVkaW9D
YXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgICAgICAKKyAgICBwcm90ZWN0
ZWQ6CisgICAgICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgfTsKKwor
ICAgIGNsYXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmly
dHVhbCB+Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgUmVmUHRy
PFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKSA9IDA7CisgICAg
ICAgIHZpcnR1YWwgflZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZp
cnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0
IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKIAog
ICAgIHByb3RlY3RlZDoKLSAgICAgICAgQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAg
ICAgIFZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgfTsKIAogICAgIHZpcnR1
YWwgflJlYWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KQEAgLTEzNSw2ICsxNDYsOCBAQCBwdWJsaWM6
CiAKICAgICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFs
c2U7IH0KIAorICAgIHZpcnR1YWwgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25O
b3RpZmllciYpIHsgfQorICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkT2JzZXJ2ZXIo
T2JzZXJ2ZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2Vy
dmVyJik7CiAKQEAgLTIyOSw4ICsyNDIsMTggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcHJl
c3NOb3RpZmljYXRpb25zIHsgdHJ1ZSB9OwogfTsKIAorc3RydWN0IENhcHR1cmVTb3VyY2VPckVy
cm9yIHsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvcigpID0gZGVmYXVsdDsKKyAgICBDYXB0dXJl
U291cmNlT3JFcnJvcihSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpIDogY2FwdHVy
ZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSkpIHsgfQorICAgIENhcHR1cmVTb3VyY2VPckVycm9yKFN0
cmluZyYmIG1lc3NhZ2UpIDogZXJyb3JNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpIHsgfQorICAg
IAorICAgIG9wZXJhdG9yIGJvb2woKSAgY29uc3QgeyByZXR1cm4gISFjYXB0dXJlU291cmNlOyB9
CisgICAgUmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSgpIHsgcmV0dXJuIGNhcHR1cmVT
b3VyY2UucmVsZWFzZU5vbk51bGwoKTsgfQorICAgIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlh
U291cmNlPiBjYXB0dXJlU291cmNlOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Cit9OworCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQot
Ci0jZW5kaWYgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwCmluZGV4IDk1NTk5OGQ2NjcxY2RkMTViYjA3YmE5MjMwMjYyZjlhNzI2NjM3NDYu
LmY0YzJiYTY4NDgzZDE4N2M3MGI4MzdhZjRhMTA5N2Q3MmQxYzg0MzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC02NiwyMyArNjYsMjMgQEAgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogewogfQogCi12b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6c2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV9hdWRpb0ZhY3RvcnkgPSAmZmFjdG9yeTsKIH0KIAot
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBpZiAobV9hdWRpb0ZhY3RvcnkgPT0g
JmZhY3RvcnkpCiAgICAgICAgIG1fYXVkaW9GYWN0b3J5ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVG
YWN0b3J5JiBmYWN0b3J5KQogewogICAgIG1fdmlkZW9GYWN0b3J5ID0gJmZhY3Rvcnk7CiB9CiAK
LXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCit2b2lkIFJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXI6OnVuc2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgaWYgKG1fdmlkZW9GYWN0b3J5ID09
ICZmYWN0b3J5KQogICAgICAgICBtX3ZpZGVvRmFjdG9yeSA9IG51bGxwdHI7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKaW5kZXggNTEyNDFhZDkxODIyYTJkNzgwYjAzZmMxZjJjMWVjZDYz
NjcxNTU3OS4uMzIxZTYzZjdjYjU1NDM0MzE2OWNmMjViN2Y0MTE0M2E0ZTk2ODYyMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjYsMTYgKzY2LDE2IEBAIHB1YmxpYzoKICAg
ICAKICAgICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJh
aW50cyYgc3VwcG9ydGVkQ29uc3RyYWludHMoKSB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFp
bnRzOyB9CiAKLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5
KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3Rvcnko
KSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpB
dWRpb0NhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0
cjsgfQorICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9y
eSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIAotICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1
cmVGYWN0b3J5Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnNldEF1ZGlvRmFjdG9yeShS
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYpOwotICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBhdWRpb0ZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2F1
ZGlvRmFjdG9yeTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2Fw
dHVyZUZhY3RvcnkmKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0
b3J5KiBhdWRpb0ZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRmFjdG9yeTsgfQogCi0g
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0VmlkZW9G
YWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIHZpZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0
dXJuIG1fdmlkZW9GYWN0b3J5OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0Zh
Y3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFdF
QkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VmlkZW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2Fw
dHVyZUZhY3RvcnkqIHZpZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5
OyB9CiAKICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0QXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIENhcHR1
cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0VmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0
dXJuIG51bGxwdHI7IH0KQEAgLTk0LDggKzk0LDggQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyJiBwbGF0Zm9ybUNlbnRlcigpOwogICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwog
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIG1fYXVkaW9GYWN0b3J5
IHsgbnVsbHB0ciB9OwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBt
X3ZpZGVvRmFjdG9yeSB7IG51bGxwdHIgfTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b0NhcHR1cmVGYWN0b3J5KiBtX2F1ZGlvRmFjdG9yeSB7IG51bGxwdHIgfTsKKyAgICBSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBtX3ZpZGVvRmFjdG9yeSB7IG51bGxw
dHIgfTsKIAogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBtX2F1ZGlvQ2FwdHVyZURldmljZU1h
bmFnZXIgeyBudWxscHRyIH07CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIG1fdmlkZW9DYXB0
dXJlRGV2aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgK
aW5kZXggNmM4MzYyZmU4ZTg0NTYxMWUzZjVjODVjMTE1YTJmZTI3YmQ4NzA5NS4uNzk4OGMxZTI5
YTQzZjU1ODRiNGJiNWQwNzZjZjlkMTBhMmNjNGNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291
cmNlLmgKQEAgLTQ0LDkgKzQ0LDkgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9i
akM7CiBjbGFzcyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNv
dXJjZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNl
PiBjcmVhdGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyosIFN0cmluZyYpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVGYWN0
b3J5JiBmYWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZh
Y3RvcnkmIGZhY3RvcnkoKTsKIAogcHJpdmF0ZToKICAgICBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShB
VkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVy
ZVNvdXJjZS5tbQppbmRleCA2ZGIxYzc1ZjIwZmNlOTYwNjllNzM2ZTIyYzRjNzY4NGIzMWZmNDhk
Li42ZTU5ZDJlMjkwZWZkZmRmYmE3N2NkOGM4NDFkZWIwMzFhZWMxOWI4IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVk
aW9DYXB0dXJlU291cmNlLm1tCkBAIC03NywzMCArNzcsMjcgQEAgU09GVF9MSU5LX1BPSU5URVIo
QVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKQogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKLWNsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBBVkF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcm
IGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBmaW5hbCB7
CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbCB7CiAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNh
cHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2VJRF07Ci0gICAgICAg
IEFTU0VSVF9VTlVTRUQodHlwZSwgIWRldmljZSB8fCAoZGV2aWNlICYmIHR5cGUgPT0gQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8pKTsKLSAgICAgICAgcmV0dXJuIGRldmljZSA/IEFW
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBlbXB0eVN0cmluZygpLCBjb25zdHJh
aW50cywgaW52YWxpZENvbnN0cmFpbnQpIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGRldmlj
ZSA/IEFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBlbXB0eVN0cmluZygpLCBj
b25zdHJhaW50cykgOiBDYXB0dXJlU291cmNlT3JFcnJvcigpOwogICAgIH0KIH07CiAKLVJlZlB0
cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNh
cHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNh
cHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYobmV3IEFWQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwog
ICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAg
ICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAg
ICAgICAgc291cmNlID0gbnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0KQor
ICAgICAgICAgICAgcmV0dXJuIFN0cmluZyhyZXN1bHQudmFsdWUoKS5maXJzdCk7CiAgICAgfQog
Ci0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RG
TW92ZShzb3VyY2UpKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3Rvcnkm
IEFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OkF1
ZGlvQ2FwdHVyZUZhY3RvcnkmIEFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKIHsKICAg
ICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8QVZBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5PiBmYWN0
b3J5OwogICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
aAppbmRleCBhODIxNTgwMTE5OGQ0YTg3YTAwMjMxNmQzNTFhZmVlMGRmMGZmNzQ1Li45NjVlYzYy
MTBlY2M4ZWIyMTVmNzY5ZDVmMGE3NmY2MzdkYjA4NjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVT
b3VyY2UuaApAQCAtMjMsMTIgKzIzLDEyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5k
ZWYgQVZWaWRlb0NhcHR1cmVTb3VyY2VfaAotI2RlZmluZSBBVlZpZGVvQ2FwdHVyZVNvdXJjZV9o
CisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5E
QVRJT04pCiAKICNpbmNsdWRlICJBVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIk9y
aWVudGF0aW9uTm90aWZlci5oIgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIEFW
RnJhbWVSYXRlUmFuZ2U7CkBAIC00MywxMSArNDMsMTEgQEAgY2xhc3MgRmxvYXRSZWN0OwogY2xh
c3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIAotY2xh
c3MgQVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgQVZNZWRpYUNhcHR1cmVTb3VyY2Ugewor
Y2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgQVZNZWRpYUNhcHR1cmVTb3VyY2Us
IHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0
YXRpYyBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNhcHR1cmVEZXZpY2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7
CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShBVkNhcHR1cmVEZXZpY2Uq
LCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKLSAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKKyAgICBXRUJD
T1JFX0VYUE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAg
aW50MzJfdCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQzMl90IGhl
aWdodCgpIGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CkBAIC02NiwxMiArNjYsMTcgQEAgcHJp
dmF0ZToKICAgICBib29sIGFwcGx5RnJhbWVSYXRlKGRvdWJsZSkgZmluYWw7CiAgICAgYm9vbCBz
ZXRQcmVzZXQoTlNTdHJpbmcqKTsKIAorICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVu
dGF0aW9uTm90aWZpZXImKSBmaW5hbDsKKwogICAgIE5TU3RyaW5nICpiZXN0U2Vzc2lvblByZXNl
dEZvclZpZGVvRGltZW5zaW9ucyhzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9u
YWw8aW50PiBoZWlnaHQpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRl
KHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwgc3Rk
OjpvcHRpb25hbDxkb3VibGU+KSBmaW5hbDsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxp
dGllcyhSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJikgZmluYWw7CiAgICAgdm9pZCBp
bml0aWFsaXplU3VwcG9ydGVkQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRl
ZENvbnN0cmFpbnRzJikgZmluYWw7CiAKKyAgICAvLyBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNl
cnZlciBBUEkKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pIGZp
bmFsOworCiAgICAgYm9vbCBzZXRGcmFtZVJhdGVDb25zdHJhaW50KGRvdWJsZSBtaW5GcmFtZVJh
dGUsIGRvdWJsZSBtYXhGcmFtZVJhdGUpOwogCiAgICAgYm9vbCB1cGRhdGVGcmFtZXJhdGUoQ01T
YW1wbGVCdWZmZXJSZWYpOwpAQCAtOTAsMTAgKzk1LDkgQEAgcHJpdmF0ZToKICAgICBGbG9hdDY0
IG1fZnJhbWVSYXRlIHsgMCB9OwogICAgIGludDMyX3QgbV93aWR0aCB7IDAgfTsKICAgICBpbnQz
Ml90IG1faGVpZ2h0IHsgMCB9OworICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fZGV2
aWNlT3JpZW50YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVB
TSkKLQotI2VuZGlmIC8vIEFWVmlkZW9DYXB0dXJlU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVy
ZVNvdXJjZS5tbQppbmRleCBiMzYwYzUwYzQ0YzBhY2UwOWVmZmQ0OTU2Y2UyMTRhYTZhYWEyMDNh
Li45NDc0NjJiNGJjMTNiZTQyZmQyZGQ2NDM3NGVkNDllMjkwZWQ2NzZiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tCkBAIC0xMDksMzAgKzEwOSwyOSBAQCBjb25zdCBPU1R5cGUgdmlk
ZW9DYXB0dXJlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhQbGFuYXI7CiBj
b25zdCBPU1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlw
Q2JDcjhCaVBsYW5hckZ1bGxSYW5nZTsKICNlbmRpZgogCi1jbGFzcyBBVlZpZGVvQ2FwdHVyZVNv
dXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3Rvcnkg
eworY2xhc3MgQVZWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZh
bGlkQ29uc3RyYWludCkgZmluYWwgeworICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZp
ZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgewogICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBl
ZGVmICpkZXZpY2UgPSBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVl
SUQ6ZGV2aWNlSURdOwotICAgICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsICFkZXZpY2UgfHwgKHR5
cGUgPT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8pKTsKLSAgICAgICAgcmV0dXJu
IGRldmljZSA/IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBlbXB0eVN0cmlu
ZygpLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpIDogbnVsbHB0cjsKKyAgICAgICAg
aWYgKCFkZXZpY2UpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gQVZW
aWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFp
bnRzKTsKICAgICB9CiB9OwogCi1SZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25z
dCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCkKK0NhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25z
dCBBdG9taWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykK
IHsKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShk
ZXZpY2UsIGlkKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0
dXJlU291cmNlKGRldmljZSwgaWQpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAg
YXV0byByZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKLSAg
ICAgICAgaWYgKHJlc3VsdCkgewotICAgICAgICAgICAgaW52YWxpZENvbnN0cmFpbnQgPSByZXN1
bHQudmFsdWUoKS5maXJzdDsKLSAgICAgICAgICAgIHNvdXJjZSA9IG51bGxwdHI7Ci0gICAgICAg
IH0KKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3Vs
dC52YWx1ZSgpLmZpcnN0KTsKICAgICB9CiAKLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVy
biBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1l
ZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZhY3Rvcnko
KQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVlZpZGVv
Q2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7
CkBAIC0xNDcsNiArMTQ2LDMxIEBAIEFWVmlkZW9DYXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1
cmVTb3VyY2UoKQogewogfQogCit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjptb25pdG9yT3Jp
ZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpCit7CisgICAgbm90aWZpZXIu
YWRkT2JzZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpvcmll
bnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIHN3aXRjaCAob3JpZW50YXRp
b24pIHsKKyAgICBjYXNlIDA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSA5MDoK
KyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpSaWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAtOTA6CisgICAgICAgIG1fZGV2aWNl
T3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSAxODA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKKyAgICAgICAgYnJlYWs7CisgICAg
ZGVmYXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwogc3RhdGljIHZvaWQgdXBkYXRl
U2l6ZU1pbk1heChpbnQmIG1pbiwgaW50JiBtYXgsIGludCB2YWx1ZSkKIHsKICAgICBtaW4gPSBz
dGQ6Om1pbjxpbnQ+KG1pbiwgdmFsdWUpOwpAQCAtNDYyLDIwICs0ODYsMjIgQEAgdm9pZCBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZl
clJlZj4gc2FtcGxlQnUKICAgICAgICAgYnJlYWs7CiAgICAgfQogI2VuZGlmCisgICAgYm9vbCBz
aG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdodCA9IGZhbHNlOworICAgIGlmIChyb3RhdGlvbiA9PSBN
ZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgJiYgbV9kZXZpY2VPcmllbnRhdGlvbiAh
PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCisgICAgICAgIHNob3VsZFN3aXRj
aFdpZHRoQW5kSGVpZ2h0ID0gdHJ1ZTsKKyAgICBlbHNlIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdCAmJiBtX2RldmljZU9yaWVudGF0aW9uICE9IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQorICAgICAgICBzaG91bGRTd2l0Y2hXaWR0aEFu
ZEhlaWdodCA9IHRydWU7CiAKLSAgICBib29sIHNldHRpbmdzQ2hhbmdlZCA9IGZhbHNlOwogICAg
IENNVmlkZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25H
ZXREaW1lbnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBpZiAocm90YXRpb24gPT0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0IHx8IHJvdGF0aW9uID09IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQorICAgIGlmIChzaG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdo
dCkKICAgICAgICAgc3RkOjpzd2FwKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0
KTsKIAogICAgIGlmIChkaW1lbnNpb25zLndpZHRoICE9IG1fd2lkdGggfHwgZGltZW5zaW9ucy5o
ZWlnaHQgIT0gbV9oZWlnaHQpIHsKICAgICAgICAgbV93aWR0aCA9IGRpbWVuc2lvbnMud2lkdGg7
CiAgICAgICAgIG1faGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHQ7Ci0gICAgICAgIHNldHRpbmdz
Q2hhbmdlZCA9IHRydWU7Ci0gICAgfQogCi0gICAgaWYgKHNldHRpbmdzQ2hhbmdlZCkKICAgICAg
ICAgc2V0dGluZ3NEaWRDaGFuZ2UoKTsKKyAgICB9CiAKICAgICB2aWRlb1NhbXBsZUF2YWlsYWJs
ZShNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZShtX2J1ZmZlci5nZXQoKSwgcm90YXRpb24sIFtj
b25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJl
U291cmNlLmNwcAppbmRleCBlMDgzYjU0MDMzN2I4ZjNlNzBkMDgzNGRiMWZlYjcxZTg2YWJhODhl
Li44MWUwZGY0ODU2MjgzZTE4Nzc2ZGViZDBiNDQ5Mzc5YjQwN2JlY2YyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0Nv
cmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00Niw0NSArNDYsMzkgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBDb3JlQXVkaW9D
YXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0Nh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZp
bmFsIHsKLSAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZp
Y2VJRCwgdHlwZSwgY29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KTsKKyAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKKyAgICAg
ICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgY29uc3Ry
YWludHMpOwogICAgIH0KIH07CiAKIGNvbnN0IFVJbnQzMiBvdXRwdXRCdXMgPSAwOwogY29uc3Qg
VUludDMyIGlucHV0QnVzID0gMTsKIAotUmVmUHRyPENvcmVBdWRpb0NhcHR1cmVTb3VyY2U+IENv
cmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGlmICh0eXBlICE9IENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
LQogICAgIFN0cmluZyBsYWJlbDsKICAgICB1aW50MzJfdCBwZXJzaXN0ZW50SUQgPSAwOwogI2lm
IFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VN
YW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAg
ICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB7
IH07CiAKICAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwoKTsKICAgICBwZXJzaXN0ZW50SUQgPSBk
ZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5l
dyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBsYWJlbCwgcGVyc2lzdGVudElEKSk7
CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2Uo
ZGV2aWNlSUQsIGxhYmVsLCBwZXJzaXN0ZW50SUQpKTsKIAogICAgIGlmIChjb25zdHJhaW50cykg
ewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3Ry
YWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3Ry
YWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBXVEZN
b3ZlKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9Ci0KLSAgICByZXR1cm4gc291cmNlOwor
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1S
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBD
b3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0
cm95ZWQ8Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJu
IGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAyMzVk
NWEzMTRkYzJhYzgxMmQ3MmJmODg0OWI2ZTYxYmQ3OWJjNGRkLi4xM2Y0MTZjZTEyMDUyMzc5NmQ2
Y2EyNTI0NzA0MmI5YmMyMjk2Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgK
QEAgLTUzLDkgKzUzLDkgQEAgY2xhc3MgQ2FwdHVyZURldmljZUluZm87CiBjbGFzcyBDb3JlQXVk
aW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgog
Ci0gICAgc3RhdGljIFJlZlB0cjxDb3JlQXVkaW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyosIFN0cmluZyYpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBj
cmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsK
IAogICAgIHZvaWQgYWRkRWNob0NhbmNlbGxhdGlvblNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3Vy
Y2UmKTsKICAgICB2b2lkIHJlbW92ZUVjaG9DYW5jZWxsYXRpb25Tb3VyY2UoQXVkaW9TYW1wbGVE
YXRhU291cmNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5k
ZXggY2U0ZGFiYjM4ZWJlODg4OGYzY2MwMzdmZmY1M2FmYTc0YjBiOTIzOC4uYjBmMjgzYjFkYzc0
MmRkMDlhZjY1MWQ3NzI1ZmNhYTY3MWM4YWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZU1hYy5tbQpAQCAtODQsMTMgKzg0LDE0IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShm
bG9hdCBhbXBsaXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0
X3QKICAgICB9CiB9CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0
UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1F
OiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYm
IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2Ug
PSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAg
ICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0
IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5k
ZXggNGQ1MTQzZWMyOWJiMDdjMTIwZWIxMGU0MzEwNjVhMWZlODhhODZiYS4uOTU4MzdiMTFhNWM2
ZDk3Zjg3MmI2NTAwNTg4ODQxMDIwYWNhN2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLmgKQEAgLTI4LDEzICsyOCwxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjX2gKLSNkZWZpbmUgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RS
RUFNKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogCiB0eXBlZGVm
IHN0cnVjdCBfX0NWQnVmZmVyICpDVkJ1ZmZlclJlZjsKIHR5cGVkZWYgQ1ZCdWZmZXJSZWYgQ1ZJ
bWFnZUJ1ZmZlclJlZjsKQEAgLTQzLDkgKzQzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVs
QnVmZmVyUG9vbCAqQ1ZQaXhlbEJ1ZmZlclBvb2xSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IAotY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UgeworY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmlu
YWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25O
b3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMoKSB7IH0KIAogcHJpdmF0ZToKQEAgLTU5LDEzICs1OCwxNCBAQCBwcml2
YXRlOgogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCBhcHBs
eVNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwogCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5n
ZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAgIG11dGFibGUgUmV0YWluUHRyPENHSW1h
Z2VSZWY+IG1fcHJldmlld0ltYWdlOwogICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5
ZXI+IG1fcHJldmlld0xheWVyOwogICAgIG11dGFibGUgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQ
b29sUmVmPiBtX2J1ZmZlclBvb2w7CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9k
ZXZpY2VPcmllbnRhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQotCi0jZW5kaWYgLy8gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IDkxYTRlZTczZTg5MGY5NWE2MWVk
ZDk3ZjE2M2I1YTA5ZWM0MDY4MzcuLmIyOTlkNTczZDhjYzkyNTBjMGQ1ZWI2ZDY1OTAwYTgwYWMx
YzAwNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUw
LDEzICs1MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlk
ZW9TYW1wbGVSYXRlID0gOTAwMDA7CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4g
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYobmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJj
ZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMobmFtZSkpOworICAg
IC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0
cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAg
ICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNv
dXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsK
IH0KIAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTE1Nyw2ICsxNTgsMjcgQEAgYm9vbCBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZU1hYzo6YXBwbHlTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAg
ICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjphcHBseVNpemUobmV3U2l6ZSk7CiB9
CiAKK3ZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9uQ2hhbmdlZChp
bnQgb3JpZW50YXRpb24pCit7CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIG1fZGV2
aWNlT3JpZW50YXRpb24KKyAgICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSAwOgor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
Ok5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgOTA6CisgICAgICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAgIGJy
ZWFrOworICAgIGNhc2UgLTkwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMTgw
OgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OlVwc2lkZURvd247CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJl
dHVybjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVO
QUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ck1hYy5jcHAKaW5kZXggNmY0YmY2MTAxNTAyYzdhNDA1YWI1Y2ZiMTI3MWVjOGY1MzM3MzUyYy4u
NWMyNjA1MDI2NTU3MDg0ZGNhMTRkMTZjYWNhZDE4ZDFiOWU3ZmM0YyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtMTM2LDE5ICsxMzYsMjEgQEAg
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdN
ZWRpYVN0cmVhbUhhbmRsZXIgY29tcGwKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAK
ICAgICBpZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0eSgpICYmIG1fYXVkaW9GYWN0b3J5KSB7Ci0g
ICAgICAgIGlmIChhdXRvIGF1ZGlvU291cmNlID0gbV9hdWRpb0ZhY3RvcnktPmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhhdWRpb0RldmljZUlELCBDYXB0
dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENv
bnN0cmFpbnQpKQotICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0
b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoYXVkaW9EZXZpY2VJRCwgYXVkaW9Db25zdHJh
aW50cyk7CisgICAgICAgIGlmICghIWF1ZGlvU291cmNlKQorICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAg
ICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPRyhN
ZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVw
KSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGludmFsaWRD
b25zdHJhaW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoIWF1ZGlvU291cmNlLmVycm9y
TWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRz
IGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRm
OCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICB9CiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1w
dHkoKSAmJiBtX3ZpZGVvRmFjdG9yeSkgewotICAgICAgICBpZiAoYXV0byB2aWRlb1NvdXJjZSA9
IG1fdmlkZW9GYWN0b3J5LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModmlkZW9EZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8s
IHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgIHZpZGVv
U291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1
dG8gdmlkZW9Tb3VyY2UgPSBtX3ZpZGVvRmFjdG9yeS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNl
KHZpZGVvRGV2aWNlSUQsIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICBpZiAoISF2aWRlb1Nv
dXJjZSkKKyAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291cmNl
KCkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludC5p
c0VtcHR5KCkpCi0gICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0
byBhcHBseTogJXMiLCB0aGlzLCBpbnZhbGlkQ29uc3RyYWludC51dGY4KCkuZGF0YSgpKTsKKyAg
ICAgICAgaWYgKCF2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAg
ICAgTE9HKE1lZGlhLCAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFT
dHJlYW0oJXApLCB2aWRlbyBjb25zdHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywg
dmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgfQog
CkBAIC0xODcsMTIgKzE4OSwxOCBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgICAgICBp
ZiAoIWNhcHR1cmVEZXZpY2UuZW5hYmxlZCgpIHx8IGNhcHR1cmVEZXZpY2UudHlwZSgpICE9IGRl
dmljZVR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSogZmFjdG9yeSA9IHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW8gPyBtX3ZpZGVvRmFjdG9yeSA6IG1fYXVkaW9GYWN0b3J5OwotICAg
ICAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYgbV92aWRlb0ZhY3RvcnkpCisgICAgICAgICAg
ICBzb3VyY2VPckVycm9yID0gbV92aWRlb0ZhY3RvcnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJj
ZShjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpLCAmY29uc3RyYWludHMpOworICAgICAgICBl
bHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYmIG1fYXVk
aW9GYWN0b3J5KQorICAgICAgICAgICAgc291cmNlT3JFcnJvciA9IG1fYXVkaW9GYWN0b3J5LT5j
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNv
bnN0cmFpbnRzKTsKIAotICAgICAgICBpZiAoYXV0byBjYXB0dXJlU291cmNlID0gZmFjdG9yeS0+
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNhcHR1cmVE
ZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZVR5cGUsICZjb25zdHJhaW50cywgaW52YWxpZENv
bnN0cmFpbnQpKQotICAgICAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5kKGNhcHR1cmVTb3VyY2Uu
bGVha1JlZigpKTsKKyAgICAgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgICAgICAv
LyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGludmFsaWQgY29uc3RyYWludHMgb24gbW9yZSB0
aGFuIG9uZSBkZXZpY2UuCisgICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IFdURk1vdmUo
c291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgY29udGludWU7CisgICAg
ICAgIH0KKyAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkp
OwogICAgIH0KIAogICAgIFZlY3RvcjxTdHJpbmc+IHNvdXJjZVVJRHM7CkBAIC0yMDcsMTIgKzIx
NSwxMiBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0
U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgIHJldHVybiBzb3VyY2VVSURzOwog
fQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZh
dWx0QXVkaW9GYWN0b3J5KCkKIHsKICAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OmZhY3RvcnkoKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYzo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLmgKaW5kZXggMWJmNDk3ZmQ2ZDdjM2MxNjZmZGE4MmRlYTJiMTMxYjEzYzhhNDQ4
NC4uZmYxZjg5N2JiZWRlOTlhNDQwNTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0MyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCkBAIC01NCw4ICs1NCw4IEBAIHByaXZh
dGU6CiAKICAgICBWZWN0b3I8U3RyaW5nPiBiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50
cyhSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3Ry
aW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0
dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7Cisg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlv
RmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZh
Y3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3IuY3BwCmluZGV4IDZlYzhlOGIwNTNhMTIwOTE0MmRkY2UzMzFkMzhjMGFlYTE3YmRi
OGIuLjBmNjRkZTQzN2Y0MTRhYTZiMGQxOWI4ODRlMjQ3NmU5NDhlN2ZhMjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApAQCAt
MTAwLDcgKzEwMCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6dmFsaWRh
dGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhCiAgICAgbV9pbnZhbGlkQ29u
c3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyT3dyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcGxl
dGlvbkhhbmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5nJiB2
aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyopCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3Ry
ZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBjb25zdCBTdHJp
bmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyosIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKQogewogICAgIGludCB0eXBl
cyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047CiAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3Ry
ZWFtSGFuZGxlciBjb21wbAogICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpCiAgICAg
ICAgIHR5cGVzIHw9IE9XUl9NRURJQV9UWVBFX1ZJREVPOwogCi0gICAgbV9jb21wbGV0aW9uSGFu
ZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyOworICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKIAogICAgIG93cl9nZXRfY2FwdHVyZV9zb3VyY2VzKHN0
YXRpY19jYXN0PE93ck1lZGlhVHlwZT4odHlwZXMpLCBtZWRpYVNvdXJjZXNBdmFpbGFibGVDYWxs
YmFjaywgdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck93ci5oCmluZGV4IDZjZGQ3ZDVmZTBjNGE4MjgyZDQxMDM3NGVkNGY3MmM3ODFm
ZDliMTYuLmIzODcwYzEyZGNiNWRkNjY3ZTRjYjMwM2U0ODA4YzAyODVjYWIyNGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCkBAIC01
Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWlu
dHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXIgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWlu
dHNIYW5kbGVyIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0Nv
bnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5h
bDsKIAotICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBj
b25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7CisgICAgdm9pZCBjcmVhdGVNZWRpYVN0
cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXImJiwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlE
LCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIHZp
ZGVvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGF1ZGlvQ29uc3RyYWludHMp
IGZpbmFsOwogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNl
cygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDQwNzg4ZDdlYTUzNGJmOTU3ODliMWZl
Zjc5NTMyNjVlNmE0ZDlmNDguLmM0MDA1ZWRmMTg4MWQ4NWJkYTkwOTlmMjcwZTE4ZDMwNzg1NDEy
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSwyOSArNDEsMjUgQEAKIAogbmFtZXNwYWNlIFdl
YkNvcmUgewogCi1jbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xhc3MgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2Fw
dHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJikgZmluYWwgewotICAgICAgICBpZiAo
dHlwZSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOwotCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpKSB7CiAgICAgICAgICAgICBpZiAoZGV2
aWNlLnBlcnNpc3RlbnRJZCgpID09IGRldmljZUlEKQogICAgICAgICAgICAgICAgIHJldHVybiBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50
cyk7CiAgICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IHsgfTsKICAgICB9CiB9OwogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykK
LVJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UobmFtZSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFw
cGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKLSAgICAgICAgc291cmNlID0gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENh
cHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNv
bnN0IFN0cmluZyYgbmFtZSkKQEAgLTc0LDcgKzcwLDcgQEAgUmVmUHRyPE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3Ry
aW4KIH0KICNlbmRpZgogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQogewog
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rvcnk+
IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggMTMz
MWM3OTE4MTQ0ZTZlOTZmYzJhZjQyNTdiZmMyZTcxZmNkOGU2Ny4uMzY0NTIyYjEzZjcwNGU5MDg5
YmFmODY1ZjliNmI5ODZkYjIzMTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTAgKzQyLDEwIEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVi
bGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQ
dHI8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGljIFJl
ZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBu
YW1lKTsKIAotICAgIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0YXRp
YyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZSgpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cAppbmRleCBiZDc0ODg2MDYyYTEzNWZiODJkNTcyZmRhYzFjYTYxZTlhNjZiZjEwLi42OGU2NmEy
NWJiMDI0NzQzNDI2MzI5MTI0YmI4ZjNhMTFiNWI4MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcApAQCAtODcsOSArODcsOSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAgIGlm
IChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNlSW5m
bz4gZGV2aWNlSW5mbzsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8gYXVk
aW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgp
LCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmIChhdWRpb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJh
aW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAg
ICAgZGV2aWNlSW5mby5hcHBlbmQoe2F1ZGlvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNl
LnBlcnNpc3RlbnRJZCgpfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKKyAg
ICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291
cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJh
aW50KSkKKyAgICAgICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5j
YXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEwNyw5
ICsxMDcsOSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJl
cXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAgIGlmICh2aWRlb0NvbnN0cmFp
bnRzLmlzVmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsK
ICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6dmlkZW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAg
ICAgICAgICAgIGlmICh2aWRlb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0
cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgZGV2aWNlSW5mby5h
cHBlbmQoe3ZpZGVvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgp
fSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChz
b3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25z
dHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAgICAg
ICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0
bmVzc1Njb3JlKCksIGRldmljZS5wZXJzaXN0ZW50SWQoKX0pOwogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKGRldmljZUluZm8uaXNFbXB0eSgpKSB7CkBAIC0xMzUsMjYgKzEzNSwyNiBAQCB2b2lk
IE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRp
YVN0cmVhbUhhbmRsZXIgY29tcAogICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsK
ICAgICAgICAgYXV0byYgYXVkaW9EZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1
ZGlvRGV2aWNlcygpOwogICAgICAgICBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0RldmljZXNb
MF0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25z
dHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIGF1ZGlv
U291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0
byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0Rl
dmljZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFz
b3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNl
T3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoYXVkaW9EZXZpY2VJRCA9PSBh
dWRpb0RldmljZXNbMV0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNl
ID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMV0ubGFiZWwo
KSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAg
ICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAg
ICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNy
ZWF0ZShhdWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAg
ICAgICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5h
cHBlbmQoc291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBp
ZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8mIHZpZGVvRGV2aWNl
cyA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKTsKICAgICAgICAgaWYg
KHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzBdLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAg
ICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlk
ZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAgICAgaWYg
KHNvdXJjZSkKLSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxl
YXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29u
c3RyYWludHMpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAgICAgICAg
ICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgICAg
ICB9IGVsc2UgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzFdLnBlcnNpc3RlbnRJ
ZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAg
ICAgICAgICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5k
KHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJv
ciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxhYmVs
KCksIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvcikK
KyAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNl
KCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNzQsMTIgKzE3NCwxMiBAQCBWZWN0b3I8Q2Fw
dHVyZURldmljZT4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3RyZWFt
RGV2aWNlcygpCiAgICAgcmV0dXJuIHNvdXJjZXM7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6
OkNhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1
ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7CiAg
ICAgcmV0dXJuICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpOwogfQogCi1SZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9D
YXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRl
b0ZhY3RvcnkoKQogewogICAgIHJldHVybiAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3Rv
cnkoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCBjZGU2NTBmYjIxZTFlZTI2NmFl
NWI5Mjk1NzIwMTE5MjVkMTliMWRlLi5lODQxNDIyMjFjYTM4MzA3OWZhNDg2NmIwYWNhYTE5ZmU1
NGFhYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC00NSw4ICs0NSw4IEBAIHByaXZh
dGU6CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZp
bmFsOwogICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBj
b25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogdmlkZW9Db25zdHJhaW50cykgZmluYWw7CiAKLSAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkg
ZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVm
YXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVv
Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5jcHAKaW5kZXggMmU2NjQyMmU4ZTJmYjljZjQ5N2I3MzAxOTQ2MmFjMGYxMDdkZjIw
My4uZWFhZGRlYmFjZGIxNjA1ZTdlZmFiZjk5YWIwZjhhNmIxMTJjYTA4MSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKQEAgLTQ4LDI5ICs0OCwyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNz
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rv
cnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBw
dWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBTdHJpbmcmKSBmaW5hbCB7Ci0gICAgICAgIGlmICh0eXBlICE9IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZp
bmFsIHsKICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6dmlkZW9EZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2UucGVyc2lzdGVudElk
KCkgPT0gZGV2aWNlSUQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKICAgICAgICAgfQot
Ci0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIH07
CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQotUmVmUHRyPE1vY2tSZWFs
dGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UobmFtZSkpOwog
ICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFp
bnRzKSkKLSAgICAgICAgc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAot
ICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1v
dmUoc291cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTgx
LDcgKzc3LDcgQEAgUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW4KIH0KICNlbmRpZgogCi1SZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZh
Y3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZh
Y3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZVZpZGVvU291cmNlLmgKaW5kZXggZDc5OTg1ZTcxYWMyZGUyMDQ4Y2Y2Y2EzYmI5
YmNkZDdiNGUwOTMwNC4uYWE2MGVjN2U1ZjM4MzFjZjBjMjdmZDhmMTA3MTEzYjAwMmQyOTYwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuaApAQCAtNDYsMTAgKzQ2LDEwIEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsK
IGNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGljIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Cisg
ICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHN0YXRpYyBD
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5
JiBmYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSgpIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29k
ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5k
ZXggYmY4ZGQ3NTNmOTczZTcyNmNjYTRjNWIxNTY5M2Q2NjRiYWNhMjFmMS4uZDA3YmYzZWRkMTA1
MTIyMWI5ZmYzNWI4OGJmZDkwOTA2NThmYzg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
U2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJl
ZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtM
b2FkTWV0cmljcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbmNs
dWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Nj
cm9sbFNuYXBPZmZzZXRzSW5mby5oPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTcyMiw2ICs3MjMs
MTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlPiB7CiAgICAgICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OlZpZGVvCiAgICAgPjsKIH07Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVt
VmFsdWVzPAorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsCisgICAgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlOjpUeXBlOjpWaWRlbworICAgID47Cit9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3Ry
dWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAppbmRleCBlOWQ3NmI2MWQzYzMxYTc3M2M5NjNjNjU5
YTY5NTZhNjQ0YmNmYjUwLi4xNzZmNjBhZjRlZDdlMjdkMmE2YmI2MmMyNzIwZmU1OWI3ZjU4ZDc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCkBAIC0xMjUsMTQgKzEyNSwyNyBAQCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNl
SUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcm
IGludmFsaWRDb25zdHJhaW50cykKK3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90
IGlkLCBjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEs
IGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCiB7CisgICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKICAgICBhdXRvIGNvbnN0cmFpbnRzID0g
TWVkaWFDb25zdHJhaW50c0ltcGw6OmNyZWF0ZShjb25zdHJhaW50c0RhdGEpOwotICAgIGF1dG8g
c291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0
b3J5KCktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhk
ZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHMucHRyKCksIGludmFsaWRDb25zdHJhaW50cyk7Ci0g
ICAgc3VjY2VlZGVkID0gISFzb3VyY2U7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgc291cmNl
T3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFj
dG9yeSgpLT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0
cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLT5jcmVhdGVWaWRlb0NhcHR1
cmVTb3VyY2UoZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0cigpKTsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgaWYg
KHNvdXJjZSkKLSAgICAgICAgbV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3Vy
Y2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOworICAgIHN1Y2Nl
ZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKKyAgICBpZiAoc291cmNlT3JFcnJvcikKKyAgICAgICAg
bV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlz
LCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKSk7CisgICAgZWxzZQorICAgICAgICBpbnZhbGlkQ29u
c3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKIH0KIAogdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0
X3QgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCAwZTYzNTE4MmUyNDNjYzc3YzM0
OGUwNzY2ZWQzZWM1YWFkZDBmMTgyLi40MTM5ZGIyNGQ0NzUyMDllYzNlN2NkM2NiZjdiZDgzNGEy
NzhjYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6
RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+Jikg
ZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50
c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAg
ICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1
aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBib29s
JiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKICAgICB2b2lkIHN0YXJ0
UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50
NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkubWVzc2FnZXMuaW4KaW5kZXggNTI3ZGZhNjZhODQ2ZjQ3ZmQwODBkNTdlNzE4MzM3MTIyZDgx
YzgwOC4uMWZjMDkzZTViMzA5NmY1MTBkZGU4ZmY0YWNlNjRmZDE0MDEzYjdhYSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1Vz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAK
ICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlclByb3h5IHsKLSAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFN0cmluZyBkZXZpY2VJRCwgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZh
bGlkQ29uc3RyYWludHMpCisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBTdHJpbmcgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0
cmFpbnRzKQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJv
ZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+
IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYjMxYWExOGUxYjY4MjkxNDk3NTc5ODgxMzhjNmQy
ZjBmZTZiNDRkYy4uNGQ0ZjAyNjJmZDliMTE4M2I4MDQzOTA5NGU1ZjMxNGNmMDZlNTQ1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBl
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBp
ZiAoIWNvbnN0cmFpbnRzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IHsgfTsKIAogICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOwogICAgIE1lZGlhQ29u
c3RyYWludHNEYXRhIGNvbnN0cmFpbnRzRGF0YTsKQEAgLTE5NCwyNCArMTk0LDEzIEBAIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlCiAgICAgY29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJh
aW50cy0+aXNWYWxpZCgpOwogICAgIGJvb2wgc3VjY2VlZGVkOwogCi0gICAgbV9wcm9jZXNzLnNl
bmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZUlELCB0eXBl
LCBjb25zdHJhaW50c0RhdGEpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBs
eShzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cyksIDApOwotCi0gICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW86Ci0gICAgICAgIHNvdXJj
ZVR5cGUgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpW
aWRlbzoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OlZpZGVvOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc291cmNl
VHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3Ry
aW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsK
LSAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UpOwotICAgIHJldHVybiBzb3VyY2U7CisgICAg
U3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2VJRCwgc291cmNlVHlwZSwgY29uc3Ry
YWludHNEYXRhKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2Vl
ZGVkLCBlcnJvck1lc3NhZ2UpLCAwKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNz
YWdlKTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpu
dW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsKKyAgICBt
X3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaAppbmRleCA0NDZkYTk5MWNhNmM4OGM4NjBmYTcxOTQ1YWQ4ZDZmOWUyZTRkNjdmLi5hOGE5
M2FiZGVlNWU4ZWRjNmQwMjE5OGI1MTA2OTQ5YzVlNDg5YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ3Jvc3NQcm9jZXNz
UmVhbHRpbWVBdWRpb1NvdXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKLWNsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSB7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBX
ZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVibGlj
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsK
ICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsKQEAgLTUzLDggKzUzLDEwIEBAIHByaXZh
dGU6CiAgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQKICAgICB2b2lkIGluaXRpYWxpemUoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOwogCi0gICAgLy8gV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9yeToKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKSBm
aW5hbDsKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGZhY3RvcmllcworICAg
IFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGNvbnN0cmFpbnRzKTsg
fQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZp
Y2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIGNvbnN0cmFp
bnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308161</attachid>
            <date>2017-04-25 16:24:04 -0700</date>
            <delta_ts>2017-04-26 11:30:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171284-20170425162404.patch</filename>
            <type>text/plain</type>
            <size>76163</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAwMzY1MzEzOWMzOWM5
MDhlOWJiNDNjYmQyNzgzZGNjYjBmNjUxZS4uODgxNzdlYmQyNjA2M2EyZmIwNmVjYmQzOTcyN2M2
NWRhZWU3MGNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE5vIHRlc3QgeWV0LgorCisgICAgICAgIE1ha2lu
ZyBEb2N1bWVudCBoYXZpbmcgYW4gT3JpZW50YXRpb25Ob3RpZmllciB0aGF0IEFWVmlkZW9DYXB0
dXJlU291cmNlcyBnZXQgcmVnaXN0ZXJlZCB0by4KKyAgICAgICAgTWFraW5nIEFWVmlkZW9DYXB0
dXJlU291cmNlIGFuIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHNvIHRoYXQgaXQgY2Fu
IGNoYW5nZXMgd2lkdGgvaGVpZ2h0IGlmIG5lZWRlZC4KKworICAgICAgICBSZWZhY3RvcmluZyB0
byBzcGVjaWFsaXplIENhcHR1cmVGYWN0b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkuCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1
cmVTb3VyY2VPckVycm9yIGluc3RlYWQgb2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIHBsdXMg
cmV0dXJuaW5nIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFs
bG93KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpvcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vT3JpZW50YXRpb25Ob3RpZmVyLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmguCisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6
c2V0Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXI6On5PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVy
OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3Rp
Zmllcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmll
cjo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6
Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3I6
OkNhcHR1cmVTb3VyY2VPckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpzb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1
ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjp2aWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRp
b0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9D
YXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9u
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpj
cmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Blbndl
YnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFt
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZh
dWx0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmg6CisKIDIwMTctMDQtMjUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN0cmljdCBXZWJLaXQgaW1hZ2UgZm9y
bWF0cyB0byBhIGtub3duIHdoaXRlbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhhOTA5ZWQ3NTk0MzBmYjhi
YjA1ODk3YWY4Mjg2MDU5YTVhN2RhZDMuLjk4ZDljODdmMGRkNjVjNGUwNjA0MTdlMzUxMDUyY2U4
OTNjOWEwZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAxNy0wNC0yNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0VXNlck1lZGlhIHZpZGVv
IHN0cmVhbXMgc2hvdWxkIGZvbGxvdyBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTI4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHNwZWNpYWxp
emUgQ2FwdHVyZUZhY3RvcnkgaW4gVmlkZW9DYXB0dXJlRmFjdG9yeSBhbmQgQXVkaW9DYXB0dXJl
RmFjdG9yeS4KKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gcmV0dXJuIGEgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgaW5zdGVhZCBvZiBwYXNzaW5nIGFuIG91dCBwYXJhbWV0ZXIgaW4gYWRkaXRpb24gdG8g
cmV0dXJuaW5nIGEgUmVmUHRyLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3Jl
YXRlQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaDoKKwogMjAxNy0wNC0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW0NvY29hXVtXaW5dIEVuYWJsZSBvZiBYLUNvbnRlbnQtVHlwZS1PcHRpb25zOiBu
b3NuaWZmIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0
cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFz
dHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggNmViNDE5NDFhNzI0NWEyMTZkNzA4NDQ2
NDk1NjNmNjBlOGY4YzY1Ni4uOTFmZDg4NmI2OGE3NGUyNTU4YjZlYTJlNWUzYmEyZTY0ZDRjZTU5
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1Vz
ZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0xNjAsMTMgKzE2MCwxNiBAQCB2b2lkIFVzZXJNZWRpYVJl
cXVlc3Q6OmFsbG93KGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0IFN0cmluZyYg
dmlkZW9EZQogCiAgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3RlZFRoaXMgPSB0
aGlzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok5ld01lZGlhU3RyZWFtSGFuZGxl
ciBjYWxsYmFjayA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90ZWN0ZWRUaGlz
KV0oUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBwcml2YXRlU3RyZWFtKSBtdXRhYmxlIHsK
LSAgICAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgICAgIGF1dG8qIGNv
bnRleHQgPSBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250ZXh0KTsKKyAg
ICAgICAgQVNTRVJUKGNvbnRleHQpOworICAgICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgICAg
ICByZXR1cm47CiAKICAgICAgICAgaWYgKCFwcml2YXRlU3RyZWFtKSB7CiAgICAgICAgICAgICBk
ZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVycm9yLCBlbXB0eVN0cmluZygp
KTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBwcml2YXRlU3RyZWFt
LT5tb25pdG9yT3JpZW50YXRpb24oY29udGV4dC0+b3JpZW50YXRpb25Ob3RpZmllcigpKTsKIAog
ICAgICAgICBhdXRvIHN0cmVhbSA9IE1lZGlhU3RyZWFtOjpjcmVhdGUoKm1fc2NyaXB0RXhlY3V0
aW9uQ29udGV4dCwgcHJpdmF0ZVN0cmVhbS5yZWxlYXNlTm9uTnVsbCgpKTsKICAgICAgICAgaWYg
KHN0cmVhbS0+Z2V0VHJhY2tzKCkuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWY1NWIxZDQ3OTdkN2NkM2I0
YzExZGI0ZmExYTk2MGRiZWYwMGNkMS4uMWNhOTM5NTZhMWI5OWUxYWU0MzY2MWYyYzlkY2VlMjgx
YmE2ZTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMTc1NSw2ICsxNzU1LDcgQEAKIAkJNDE4MTVDMUYxMzgzMTk4MzAwNTdB
QUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDE4MTVDMUQxMzgzMTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0
U3VwcG9ydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQxODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0NTFFNTNDOENEMDBE
NjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQxODIwNTQ5MUU1M0VBQjAwMEQ2MjIwNyAvKiBSVENDb250cm9s
bGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
ODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLzsgfTsKKwkJNDE4
NEY1MTYxRUFGMDVBODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4NEY1MTUxRUFGMDU5ODAwRjE4
QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1QjkzMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3Vi
bWlzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4ODVCOTQxMUI2RkRBNjAw
MzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlz
c2lvbi5jcHAgKi87IH07CiAJCTQxOEEwNkQwMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3Bh
dGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
OEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLzsgfTsKQEAgLTkz
NjcsNiArOTM2OCw3IEBACiAJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBXZWJDb3JlVGVz
dFN1cHBvcnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gV2ViQ29y
ZVRlc3RTdXBwb3J0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgy
MDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTg0RjUxNTFFQUYwNTk4MDBGMThCRjAgLyogT3Jp
ZW50YXRpb25Ob3RpZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9yaWVu
dGF0aW9uTm90aWZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTg4NUI5MTEx
QjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gRm9ybVN1Ym1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlDIC8qIEV2ZW50
RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBFdmVudERpc3Bh
dGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOTcyLDYgKzIzOTc0LDcg
QEAKIAkJCQlCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdpc3RyeS5oICov
LAogCQkJCUUxNTEzRDUwMTY3N0YwODgwMDE0OUZDQiAvKiBOb3RJbXBsZW1lbnRlZC5jcHAgKi8s
CiAJCQkJOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVkLmggKi8sCisJ
CQkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oICovLAog
CQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8sCiAJCQkJQzVG
NzY1QjQxNEUxRDQxNDAwNkM4OTlCIC8qIFBhc3RlYm9hcmRTdHJhdGVneS5oICovLAogCQkJCTFB
RjVFNEQyMUU1NjczNUEwMDRBMUYwMSAvKiBQYXN0ZWJvYXJkV3JpdGVyRGF0YS5jcHAgKi8sCkBA
IC0yOTU5Nyw2ICsyOTYwMCw3IEBACiAJCQkJMDgxNjY4REExMjU2MDNENTAwNkYyNURFIC8qIFNW
R1RleHRMYXlvdXRFbmdpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyRTM4RUZFMUU4Mzk2RkQw
MENBM0FERiAvKiBDU1NGb250U3R5bGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5
MjYxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGluZS5oIGluIEhl
YWRlcnMgKi8sCisJCQkJNDE4NEY1MTYxRUFGMDVBODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90
aWZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZDQTI3IC8qIFNW
R1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkwOEYwQkZDNjEy
NTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICovLAogCQkJCTcx
MTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2FjZDVlOWIxNzVlNWIyOWVlMzRm
Yjk2YzgyODA5OTIyNDc0ZWUyYy4uNjgyNzA4NTAzMWFiZTg5YjhhN2RhNWYxMjRlYTgyNjdlNjk5
NDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02OTU0LDQgKzY5NTQsMTAgQEAgdm9p
ZCBEb2N1bWVudDo6ZGlkUmVtb3ZlSW5Eb2N1bWVudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgc2hh
ZG93Um9vdCkKICAgICBtX2luRG9jdW1lbnRTaGFkb3dSb290cy5yZW1vdmUoJnNoYWRvd1Jvb3Qp
OwogfQogCit2b2lkIERvY3VtZW50OjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9u
KQoreworICAgIGRpc3BhdGNoV2luZG93RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
b3JpZW50YXRpb25jaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7CisgICAgbV9vcmllbnRhdGlv
bk5vdGlmaWVyLm9yaWVudGF0aW9uQ2hhbmdlZChvcmllbnRhdGlvbik7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNDgyODMxOGQ3NWYxMzYxZTMw
MjgyNTBhMTkxYjY5YzdjOWNhZTU1OS4uNGUwNjlmZDE2NjkxM2JjY2EzOGRkOTQzODJlODViMGU1
MTQ1ODU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90
aWZlci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKQEAgLTEzMDUsNiArMTMw
Niw5IEBAIHB1YmxpYzoKIAogICAgIENvbnN0YW50UHJvcGVydHlNYXAmIGNvbnN0YW50UHJvcGVy
dGllcygpIGNvbnN0IHsgcmV0dXJuICptX2NvbnN0YW50UHJvcGVydHlNYXA7IH0KIAorICAgIHZv
aWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbik7CisgICAgT3JpZW50YXRpb25O
b3RpZmllciYgb3JpZW50YXRpb25Ob3RpZmllcigpIHsgcmV0dXJuIG1fb3JpZW50YXRpb25Ob3Rp
ZmllcjsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRo
ZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3Vt
ZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywg
dW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTE3NjAsNiArMTc2NCw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCB7
IGZhbHNlIH07CiAjZW5kaWYKIAorICAgIE9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlv
bk5vdGlmaWVyOworCiAgICAgc3RhdGljIGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2Fj
aGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDRlZDkxMjRmMjExNTVmOTUxODEwYjlh
ZDAzZjAyMTU0YWEyZWYzOTMuLjM2YTFmZTE5YjAxMmExNDU3OWFhNWYyMmIwOGQ0NTlhMzIwZDI3
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0yOTgsOSArMjk4LDEwIEBAIHZvaWQgRnJhbWU6
Om9yaWVudGF0aW9uQ2hhbmdlZCgpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQogICAgICAgICBmcmFtZXMu
YXBwZW5kKCpmcmFtZSk7CiAKKyAgICBhdXRvIG5ld09yaWVudGF0aW9uID0gb3JpZW50YXRpb24o
KTsKICAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKSB7CiAgICAgICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5k
aXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9u
Y2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICAgICAgZG9jdW1lbnQtPm9yaWVu
dGF0aW9uQ2hhbmdlZChuZXdPcmllbnRhdGlvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL09yaWVudGF0aW9uTm90aWZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1YjI5ZmQxMjU1
MTg1YjI2ZmVlMzg4YThmZGY3NmJkOGM3OWNmZDMKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaApAQCAtMCwwICsxLDg2IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
T3JpZW50YXRpb25Ob3RpZmllciB7CitwdWJsaWM6CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5n
ZWQoaW50IG9yaWVudGF0aW9uKTsKKyAgICB+T3JpZW50YXRpb25Ob3RpZmllcigpOworCisgICAg
Y2xhc3MgT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIo
KTsKKyAgICAgICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRp
b24pID0gMDsKKyAgICAgICAgdm9pZCBzZXROb3RpZmllcihPcmllbnRhdGlvbk5vdGlmaWVyKiBu
b3RpZmllcikgeyBtX25vdGlmaWVyID0gbm90aWZpZXI7IH0KKworICAgIHByaXZhdGU6CisgICAg
ICAgIE9yaWVudGF0aW9uTm90aWZpZXIqIG1fbm90aWZpZXIgeyBudWxscHRyIH07CisgICAgfTsK
KworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9ic2Vy
dmVyKE9ic2VydmVyJik7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dy
YXBwZXI8T2JzZXJ2ZXI+PiBtX29ic2VydmVyczsKK307CisKK2lubGluZSBPcmllbnRhdGlvbk5v
dGlmaWVyOjp+T3JpZW50YXRpb25Ob3RpZmllcigpCit7CisgICAgZm9yIChPYnNlcnZlciYgb2Jz
ZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuc2V0Tm90aWZpZXIobnVsbHB0
cik7Cit9CisKK2lubGluZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6fk9ic2VydmVy
KCkKK3sKKyAgICBpZiAobV9ub3RpZmllcikKKyAgICAgICAgbV9ub3RpZmllci0+cmVtb3ZlT2Jz
ZXJ2ZXIoKnRoaXMpOworfQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjpvcmll
bnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIGZvciAoT2JzZXJ2ZXImIG9i
c2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLm9yaWVudGF0aW9uQ2hhbmdl
ZChvcmllbnRhdGlvbik7Cit9CisKK2lubGluZSB2b2lkIE9yaWVudGF0aW9uTm90aWZpZXI6OmFk
ZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBtX29ic2VydmVycy5hcHBlbmQo
b2JzZXJ2ZXIpOworICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKHRoaXMpOworfQorCitpbmxpbmUg
dm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjpyZW1vdmVPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2
ZXIpCit7CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJm9ic2VydmVyXShh
dXRvIGl0ZW0pIHsKKyAgICAgICAgaWYgKCZvYnNlcnZlciAhPSAmaXRlbS5nZXQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb2JzZXJ2ZXIuc2V0Tm90aWZpZXIobnVsbHB0
cik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0pOworfQorCit9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmNwcAppbmRleCBjOGZhYjY4Njg3YmQ4NzVmNzFmNzI3NTVmNTA5YjVmYzE1Nzc2OTc4Li5iZjI4
ZWYxYmVlYjc4NzdiNjBmOWZhNzYxOWY2ZjNkMGM2MGRlYzA4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5j
cHAKQEAgLTI5OCw2ICsyOTgsMTUgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6OnNjaGVkdWxl
RGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAgICAgfSk7CiB9CiAK
K3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjptb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25O
b3RpZmllciYgbm90aWZpZXIpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1fdHJhY2tTZXQu
dmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5zb3VyY2UoKS5pc0NhcHR1cmVTb3VyY2Uo
KSAmJiB0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvKQor
ICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLm1vbml0b3JPcmllbnRhdGlvbihub3RpZmllcik7
CisgICAgfQorCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDliNWFhMmU2NzhhNTY5OTU2NWEx
OTdjMDgwOGEwNzVhMjU2MmY1ODIuLjcxOWU5Y2YzMjA4MzU5OTQ0NGE5MzVmYjc0ZmYzZDc3MzY0
YjU5NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01l
ZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC01Niw2ICs1Niw3IEBACiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsK
IAogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2
YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlPiB7CiBw
dWJsaWM6CkBAIC0xMTYsNiArMTE3LDggQEAgcHJpdmF0ZToKICAgICBHUmVmUHRyPE93ckdzdFZp
ZGVvUmVuZGVyZXI+IG1fZ3N0VmlkZW9SZW5kZXJlcjsKICNlbmRpZgogCisgICAgdm9pZCBtb25p
dG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpOworCiBwcml2YXRlOgogICAgIE1l
ZGlhU3RyZWFtUHJpdmF0ZShjb25zdCBNZWRpYVN0cmVhbVRyYWNrUHJpdmF0ZVZlY3RvciYsIFN0
cmluZyYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDkwZTIyMmIzODI2YzBjMzU0YzRmMjFl
NmViODVkZWYxYjc1OTJmN2MuLjJhZjYxMWZhZjk0ZjlmODI0ZTEzYmMwNjM0YWZmYTc5Y2U3M2Rm
MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0
aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMxLDggKzMxLDcgQEAKICAqIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CiAgKi8KIAotI2lmbmRlZiBSZWFsdGltZU1lZGlhU291cmNlX2gKLSNkZWZpbmUgUmVhbHRpbWVN
ZWRpYVNvdXJjZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAK
QEAgLTU4LDkgKzU3LDEyIEBAIGNsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBG
bG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZh
dGU7CitjbGFzcyBPcmllbnRhdGlvbk5vdGlmaWVyOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7
CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CiAKK3N0cnVjdCBDYXB0dXJlU291
cmNlT3JFcnJvcjsKKwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKIHB1YmxpYzoKICAgICBj
bGFzcyBPYnNlcnZlciB7CkBAIC04MywxMyArODUsMjIgQEAgcHVibGljOgogICAgICAgICB2aXJ0
dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBs
YXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCAv
Km51bWJlck9mRnJhbWVzKi8pIHsgfQogICAgIH07CiAKLSAgICBjbGFzcyBDYXB0dXJlRmFjdG9y
eSB7CisgICAgY2xhc3MgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CisgICAgcHVibGljOgorICAgICAg
ICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0
dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAg
ICAgIAorICAgIHByb3RlY3RlZDoKKyAgICAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVm
YXVsdDsKKyAgICB9OworCisgICAgY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiAgICAgcHVi
bGljOgotICAgICAgICB2aXJ0dWFsIH5DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICAg
ICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJ
RCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0
cmluZyYpID0gMDsKKyAgICAgICAgdmlydHVhbCB+VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVm
YXVsdDsKKyAgICAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0Nh
cHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKikgPSAwOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBDYXB0dXJlRmFjdG9yeSgp
ID0gZGVmYXVsdDsKKyAgICAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAg
ICB9OwogCiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpIHsgfQpAQCAtMTM1LDYg
KzE0Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIG1vbml0b3JPcmllbnRh
dGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJikgeyB9CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVt
b3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAtMjI5LDggKzI0MiwxOCBAQCBwcml2YXRlOgog
ICAgIGJvb2wgbV9zdXBwcmVzc05vdGlmaWNhdGlvbnMgeyB0cnVlIH07CiB9OwogCitzdHJ1Y3Qg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgeworICAgIENhcHR1cmVTb3VyY2VPckVycm9yKCkgPSBkZWZh
dWx0OworICAgIENhcHR1cmVTb3VyY2VPckVycm9yKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYm
IHNvdXJjZSkgOiBjYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSkgeyB9CisgICAgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IoU3RyaW5nJiYgbWVzc2FnZSkgOiBlcnJvck1lc3NhZ2UoV1RGTW92ZSht
ZXNzYWdlKSkgeyB9CisgICAgCisgICAgb3BlcmF0b3IgYm9vbCgpICBjb25zdCB7IHJldHVybiAh
IWNhcHR1cmVTb3VyY2U7IH0KKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlKCkg
eyByZXR1cm4gY2FwdHVyZVNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpOyB9CisgICAgCisgICAgUmVm
UHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2U7CisgICAgU3RyaW5nIGVycm9y
TWVzc2FnZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlX2gKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggOTU1OTk4ZDY2NzFjZGQxNWJiMDdiYTky
MzAyNjJmOWE3MjY2Mzc0Ni4uZjRjMmJhNjg0ODNkMTg3YzcwYjgzN2FmNGExMDk3ZDcyZDFjODQz
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTY2LDIzICs2NiwyMyBA
QCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigp
CiB7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQordm9pZCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBtX2F1ZGlvRmFjdG9yeSA9
ICZmYWN0b3J5OwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVk
aW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQor
dm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIGlmICht
X2F1ZGlvRmFjdG9yeSA9PSAmZmFjdG9yeSkKICAgICAgICAgbV9hdWRpb0ZhY3RvcnkgPSBudWxs
cHRyOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9y
eShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV92aWRlb0ZhY3Rvcnkg
PSAmZmFjdG9yeTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZp
ZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkK
K3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBpZiAo
bV92aWRlb0ZhY3RvcnkgPT0gJmZhY3RvcnkpCiAgICAgICAgIG1fdmlkZW9GYWN0b3J5ID0gbnVs
bHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCA1MTI0MWFkOTE4MjJhMmQ3
ODBiMDNmYzFmMmMxZWNkNjM2NzE1NTc5Li4zMjFlNjNmN2NiNTU0MzQzMTY5Y2YyNWI3ZjQxMTQz
YTRlOTY4NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC02NiwxNiArNjYs
MTYgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJj
ZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygpIHsgcmV0dXJuIG1f
c3VwcG9ydGVkQ29uc3RyYWludHM7IH0KIAotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRBdWRpb0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRy
OyB9Ci0gICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVm
YXVsdFZpZGVvRmFjdG9yeSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRBdWRpb0ZhY3Rvcnko
KSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlb0NhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0
cjsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVu
c2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFjdG9yeSgpIGNv
bnN0IHsgcmV0dXJuIG1fYXVkaW9GYWN0b3J5OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVk
aW9GYWN0b3J5OyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRmFjdG9yeShS
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYpOwotICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgdW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3Rv
cnkmKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogdmlkZW9GYWN0
b3J5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0ZhY3Rvcnk7IH0KKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVG
YWN0b3J5Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnNldFZpZGVvRmFjdG9yeShSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5Jik7CisgICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogdmlkZW9GYWN0b3J5KCkgY29uc3QgeyByZXR1
cm4gbV92aWRlb0ZhY3Rvcnk7IH0KIAogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIq
IGRlZmF1bHRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQog
ICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1bHRWaWRlb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0
ZWQ6CiAgICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHBsYXRmb3JtQ2VudGVy
KCk7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9y
dGVkQ29uc3RyYWludHM7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSogbV9hdWRpb0ZhY3RvcnkgeyBudWxscHRyIH07Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Q2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIG1fYXVkaW9GYWN0b3J5IHsgbnVsbHB0
ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIG1fdmlk
ZW9GYWN0b3J5IHsgbnVsbHB0ciB9OwogCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIG1fYXVk
aW9DYXB0dXJlRGV2aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKICAgICBDYXB0dXJlRGV2aWNlTWFu
YWdlciogbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJl
U291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRp
b0NhcHR1cmVTb3VyY2UuaAppbmRleCA2YzgzNjJmZThlODQ1NjExZTNmNWM4NWMxMTVhMmZlMjdi
ZDg3MDk1Li43OTg4YzFlMjlhNDNmNTU4NGI0YmI1ZDA3NmNmOWQxMGEyY2M0Y2E2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1
cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNDQsOSArNDQsOSBAQCBjbGFzcyBXZWJBdWRpb1Nv
dXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGlj
IEFWTWVkaWFDYXB0dXJlU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8QVZN
ZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7CisgICAgc3RhdGljIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNT
dHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBz
dGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiBwcml2YXRlOgogICAgIEFWQXVk
aW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVk
aW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDZkYjFjNzVmMjBmY2U5NjA2OWU3MzZl
MjJjNGM3Njg0YjMxZmY0OGQuLjZlNTlkMmUyOTBlZmRmZGZiYTc3Y2Q4Yzg0MWRlYjAzMWFlYzE5
YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KQEAgLTc3LDMwICs3NywyNyBAQCBT
T0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5n
ICopCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQVZBdWRpb0NhcHR1cmVTb3VyY2VG
YWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2Ns
YXNzIEFWQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVN
ZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFp
bnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlw
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENv
bnN0cmFpbnQpIGZpbmFsIHsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0Nh
cHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAq
ZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmRl
dmljZUlEXTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCAhZGV2aWNlIHx8IChkZXZpY2Ug
JiYgdHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbykpOwotICAgICAgICBy
ZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5
U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkgOiBudWxscHRyOworICAg
ICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2Us
IGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzKSA6IENhcHR1cmVTb3VyY2VPckVycm9yKCk7CiAg
ICAgfQogfTsKIAotUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBBVkF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYg
aW52YWxpZENvbnN0cmFpbnQpCitDYXB0dXJlU291cmNlT3JFcnJvciBBVkF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWlj
U3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgQVZBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBp
ZCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVkF1ZGlvQ2FwdHVyZVNvdXJj
ZShkZXZpY2UsIGlkKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVz
dWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7Ci0gICAgICAgIGlm
IChyZXN1bHQpIHsKLSAgICAgICAgICAgIGludmFsaWRDb25zdHJhaW50ID0gcmVzdWx0LnZhbHVl
KCkuZmlyc3Q7Ci0gICAgICAgICAgICBzb3VyY2UgPSBudWxscHRyOwotICAgICAgICB9CisgICAg
ICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHJlc3VsdC52YWx1ZSgp
LmZpcnN0KTsKICAgICB9CiAKLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJl
U291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRp
bWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVkF1ZGlvQ2FwdHVyZVNv
dXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1
cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGE4MjE1ODAxMTk4ZDRhODdhMDAyMzE2ZDM1MWFmZWUw
ZGYwZmY3NDUuLjk2NWVjNjIxMGVjYzhlYjIxNWY3NjlkNWYwYTc2ZjYzN2RiMDg2NDkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yMywxMiArMjMsMTIgQEAKICAqIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCiAgKi8KIAotI2lmbmRlZiBBVlZpZGVvQ2FwdHVyZVNvdXJjZV9oCi0jZGVmaW5lIEFWVmlk
ZW9DYXB0dXJlU291cmNlX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVB
TSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAogI2luY2x1ZGUgIkFWTWVkaWFDYXB0dXJlU291cmNl
LmgiCisjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3RpZmVyLmgiCiAKIE9CSkNfQ0xBU1MgQ0FMYXll
cjsKIE9CSkNfQ0xBU1MgQVZGcmFtZVJhdGVSYW5nZTsKQEAgLTQzLDExICs0MywxMSBAQCBjbGFz
cyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBQaXhlbEJ1ZmZlckNv
bmZvcm1lckNWOwogCi1jbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlh
Q2FwdHVyZVNvdXJjZSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1l
ZGlhQ2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7
CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRl
KEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqLCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
KEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFj
dG9yeSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBm
YWN0b3J5KCk7CiAKICAgICBpbnQzMl90IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsg
fQogICAgIGludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KQEAgLTY2
LDEyICs2NiwxNyBAQCBwcml2YXRlOgogICAgIGJvb2wgYXBwbHlGcmFtZVJhdGUoZG91YmxlKSBm
aW5hbDsKICAgICBib29sIHNldFByZXNldChOU1N0cmluZyopOwogCisgICAgdm9pZCBtb25pdG9y
T3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIGZpbmFsOworCiAgICAgTlNTdHJpbmcg
KmJlc3RTZXNzaW9uUHJlc2V0Rm9yVmlkZW9EaW1lbnNpb25zKHN0ZDo6b3B0aW9uYWw8aW50PiB3
aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCkgY29uc3Q7CiAgICAgYm9vbCBzdXBwb3J0
c1NpemVBbmRGcmFtZVJhdGUoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFs
PGludD4gaGVpZ2h0LCBzdGQ6Om9wdGlvbmFsPGRvdWJsZT4pIGZpbmFsOwogCiAgICAgdm9pZCBp
bml0aWFsaXplQ2FwYWJpbGl0aWVzKFJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKSBm
aW5hbDsKICAgICB2b2lkIGluaXRpYWxpemVTdXBwb3J0ZWRDb25zdHJhaW50cyhSZWFsdGltZU1l
ZGlhU291cmNlU3VwcG9ydGVkQ29uc3RyYWludHMmKSBmaW5hbDsKIAorICAgIC8vIE9yaWVudGF0
aW9uTm90aWZpZXI6Ok9ic2VydmVyIEFQSQorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGlu
dCBvcmllbnRhdGlvbikgZmluYWw7CisKICAgICBib29sIHNldEZyYW1lUmF0ZUNvbnN0cmFpbnQo
ZG91YmxlIG1pbkZyYW1lUmF0ZSwgZG91YmxlIG1heEZyYW1lUmF0ZSk7CiAKICAgICBib29sIHVw
ZGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZik7CkBAIC05MCwxMCArOTUsOSBAQCBwcml2
YXRlOgogICAgIEZsb2F0NjQgbV9mcmFtZVJhdGUgeyAwIH07CiAgICAgaW50MzJfdCBtX3dpZHRo
IHsgMCB9OwogICAgIGludDMyX3QgbV9oZWlnaHQgeyAwIH07CisgICAgTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb24gbV9kZXZpY2VPcmllbnRhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0
aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBF
TkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gQVZWaWRlb0NhcHR1cmVTb3VyY2VfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlk
ZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDg4MTMxYjhkYjA3Y2FmN2Y4MDNkMTNh
ZjUyNDk5YWE4NTBjMWQ4OTQuLmFjYjA4ZDk4NzNmNmEzYzc0MTBjMzgyY2RjNTFmNzk3ZGFkZWNj
YzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9B
VlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTEwOSwzMCArMTA5LDI5IEBA
IGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOFBsYW5hcjsKIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhl
bEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOwogI2VuZGlmCiAKLWNsYXNz
IEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBw
dWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6
Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBmaW5hbCB7CisgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIEFW
Q2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygp
IGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2VJRF07Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQodHlw
ZSwgIWRldmljZSB8fCAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbykp
OwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShk
ZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkgOiBu
dWxscHRyOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiB7IH07Cisg
ICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgZW1wdHlT
dHJpbmcoKSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKLVJlZlB0cjxBVk1lZGlhQ2FwdHVy
ZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBl
ZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBl
ZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IEFWVmlk
ZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwogICAgIGlmIChjb25zdHJh
aW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygq
Y29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlk
Q29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAgc291cmNlID0g
bnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgcmV0
dXJuIFdURk1vdmUocmVzdWx0LnZhbHVlKCkuZmlyc3QpOwogICAgIH0KIAotICAgIHJldHVybiBz
b3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7
CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0
b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1
cm4gZmFjdG9yeS5nZXQoKTsKQEAgLTE0Nyw2ICsxNDYsMzEgQEAgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6On5BVlZpZGVvQ2FwdHVyZVNvdXJjZSgpCiB7CiB9CiAKK3ZvaWQgQVZWaWRlb0NhcHR1cmVT
b3VyY2U6Om1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJiBub3RpZmllcikK
K3sKKyAgICBub3RpZmllci5hZGRPYnNlcnZlcigqdGhpcyk7Cit9CisKK3ZvaWQgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7CisgICAg
c3dpdGNoIChvcmllbnRhdGlvbikgeworICAgIGNhc2UgMDoKKyAgICAgICAgbV9kZXZpY2VPcmll
bnRhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIDkwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIC05MDoK
KyAgICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpMZWZ0OworICAgICAgICBicmVhazsKKyAgICBjYXNlIDE4MDoKKyAgICAgICAgbV9kZXZpY2VP
cmllbnRhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpVcHNpZGVEb3duOworICAg
ICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICByZXR1cm47CisgICAgfQorfQorCiBz
dGF0aWMgdm9pZCB1cGRhdGVTaXplTWluTWF4KGludCYgbWluLCBpbnQmIG1heCwgaW50IHZhbHVl
KQogewogICAgIG1pbiA9IHN0ZDo6bWluPGludD4obWluLCB2YWx1ZSk7CkBAIC00NjIsMjAgKzQ4
NiwyMiBAQCB2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUoUmV0YWlu
UHRyPENNU2FtcGxlQnVmZmVyUmVmPiBzYW1wbGVCdQogICAgICAgICBicmVhazsKICAgICB9CiAj
ZW5kaWYKKyAgICBib29sIHNob3VsZFN3aXRjaFdpZHRoQW5kSGVpZ2h0ID0gZmFsc2U7CisgICAg
aWYgKHJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodCAmJiBtX2Rl
dmljZU9yaWVudGF0aW9uICE9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodCkKKyAg
ICAgICAgc2hvdWxkU3dpdGNoV2lkdGhBbmRIZWlnaHQgPSB0cnVlOworICAgIGVsc2UgaWYgKHJv
dGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0ICYmIG1fZGV2aWNlT3Jp
ZW50YXRpb24gIT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQpCisgICAgICAgIHNo
b3VsZFN3aXRjaFdpZHRoQW5kSGVpZ2h0ID0gdHJ1ZTsKIAotICAgIGJvb2wgc2V0dGluZ3NDaGFu
Z2VkID0gZmFsc2U7CiAgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9G
b3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlm
IChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwgcm90YXRp
b24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQpCisgICAgaWYgKHNob3VsZFN3
aXRjaFdpZHRoQW5kSGVpZ2h0KQogICAgICAgICBzdGQ6OnN3YXAoZGltZW5zaW9ucy53aWR0aCwg
ZGltZW5zaW9ucy5oZWlnaHQpOwogCiAgICAgaWYgKGRpbWVuc2lvbnMud2lkdGggIT0gbV93aWR0
aCB8fCBkaW1lbnNpb25zLmhlaWdodCAhPSBtX2hlaWdodCkgewogICAgICAgICBtX3dpZHRoID0g
ZGltZW5zaW9ucy53aWR0aDsKICAgICAgICAgbV9oZWlnaHQgPSBkaW1lbnNpb25zLmhlaWdodDsK
LSAgICAgICAgc2V0dGluZ3NDaGFuZ2VkID0gdHJ1ZTsKLSAgICB9CiAKLSAgICBpZiAoc2V0dGlu
Z3NDaGFuZ2VkKQogICAgICAgICBzZXR0aW5nc0RpZENoYW5nZSgpOworICAgIH0KIAogICAgIHZp
ZGVvU2FtcGxlQXZhaWxhYmxlKE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlKG1fYnVmZmVyLmdl
dCgpLCByb3RhdGlvbiwgW2Nvbm5lY3Rpb24gaXNWaWRlb01pcnJvcmVkXSkpOwogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0Nh
cHR1cmVTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCmluZGV4IDhmMjRjNjMwMDllYmRjOWNjNDFlMWFi
YzVkZWExYTE3ZTE0YmY3NTkuLjM5MzljYTYzMDkxNGU3MDBhNTFiMDU1MmRhOTZlMzU4ZDNjMmJl
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKQEAgLTQ2LDQ1ICs0Niwz
OSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsK
K2NsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFs
dGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlw
ZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZh
bGlkQ29uc3RyYWludCkgZmluYWwgewotICAgICAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6Y3JlYXRlKGRldmljZUlELCB0eXBlLCBjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFp
bnQpOworICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwgeworICAgICAgICByZXR1cm4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGRldmljZUlELCBjb25zdHJhaW50cyk7CiAgICAgfQogfTsKIAogY29uc3QgVUludDMyIG91dHB1
dEJ1cyA9IDA7CiBjb25zdCBVSW50MzIgaW5wdXRCdXMgPSAxOwogCi1SZWZQdHI8Q29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZT4gQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCitDYXB0
dXJlU291cmNlT3JFcnJvciBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0g
ICAgaWYgKHR5cGUgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW8pCi0gICAgICAg
IHJldHVybiBudWxscHRyOwotCiAgICAgU3RyaW5nIGxhYmVsOwogICAgIHVpbnQzMl90IHBlcnNp
c3RlbnRJRCA9IDA7CiAjaWYgUExBVEZPUk0oTUFDKQogICAgIGF1dG8gZGV2aWNlID0gQ29yZUF1
ZGlvQ2FwdHVyZURldmljZU1hbmFnZXI6OnNpbmdsZXRvbigpLmNvcmVBdWRpb0RldmljZVdpdGhV
SUQoZGV2aWNlSUQpOwogICAgIGlmICghZGV2aWNlKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsK
KyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIGxhYmVsID0gZGV2aWNlLT5sYWJlbCgpOwogICAg
IHBlcnNpc3RlbnRJRCA9IGRldmljZS0+ZGV2aWNlSUQoKTsKICNlbmRpZgotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYobmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGxhYmVs
LCBwZXJzaXN0ZW50SUQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgbGFiZWwsIHBlcnNpc3RlbnRJRCkpOwogCiAgICAg
aWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNv
bnN0cmFpbnRzKCpjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAg
ICAgIGludmFsaWRDb25zdHJhaW50ID0gcmVzdWx0LnZhbHVlKCkuZmlyc3Q7Ci0gICAgICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0LnZhbHVlKCkuZmlyc3QpOwogICAgIH0KLQotICAg
IHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUo
c291cmNlKSk7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
Q2FwdHVyZUZhY3RvcnkmIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQogewogICAg
IHN0YXRpYyBOZXZlckRlc3Ryb3llZDxDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeT4gZmFj
dG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oCmluZGV4IDIzNWQ1YTMxNGRjMmFjODEyZDcyYmY4ODQ5YjZlNjFiZDc5YmM0ZGQuLjEz
ZjQxNmNlMTIwNTIzNzk2ZDZjYTI1MjQ3MDQyYjliYzIyOTZjZTIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaApAQCAtNTMsOSArNTMsOSBAQCBjbGFzcyBDYXB0dXJlRGV2aWNlSW5m
bzsKIGNsYXNzIENvcmVBdWRpb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNv
dXJjZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUmVmUHRyPENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7CisgICAgc3RhdGljIENhcHR1
cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3Rv
cnkmIGZhY3RvcnkoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFj
dG9yeSYgZmFjdG9yeSgpOwogCiAgICAgdm9pZCBhZGRFY2hvQ2FuY2VsbGF0aW9uU291cmNlKEF1
ZGlvU2FtcGxlRGF0YVNvdXJjZSYpOwogICAgIHZvaWQgcmVtb3ZlRWNob0NhbmNlbGxhdGlvblNv
dXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZU1hYy5tbQppbmRleCBjZTRkYWJiMzhlYmU4ODg4ZjNjYzAzN2ZmZjUzYWZhNzRiMGI5
MjM4Li5iMGYyODNiMWRjNzQyZGQwOWFmNjUxZDc3MjVmY2FhNjcxYzhhYzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCkBAIC04NCwxMyArODQsMTQgQEAgc3Rh
dGljIHZvaWQgYWRkSHVtKGZsb2F0IGFtcGxpdHVkZSwgZmxvYXQgZnJlcXVlbmN5LCBmbG9hdCBz
YW1wbGVSYXRlLCB1aW50NjRfdAogICAgIH0KIH0KIAotUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlv
U291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JF
cnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2Ug
PSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMobmFtZSkpOworICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYyhuYW1l
KSk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXBvcnQgZXJyb3IgbWVzc2FnZXMKICAgICBp
ZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cykp
Ci0gICAgICAgIHNvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAKLSAgICBy
ZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNv
dXJjZSkpOwogfQogCiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYzo6TW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBuYW1lKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMuaAppbmRleCA0ZDUxNDNlYzI5YmIwN2MxMjBlYjEwZTQzMTA2NWExZmU4OGE4
NmJhLi45NTgzN2IxMWE1YzZkOTdmODcyYjY1MDA1ODg4NDEwMjBhY2E3ZjFkIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaApAQCAtMjgsMTMgKzI4LDEzIEBACiAgKiBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaAot
I2RlZmluZSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hY19oCisjcHJhZ21hIG9uY2UKIAogI2lm
IEVOQUJMRShNRURJQV9TVFJFQU0pCiAKICNpbmNsdWRlICJGb250Q2FzY2FkZS5oIgogI2luY2x1
ZGUgIk1vY2tSZWFsdGltZVZpZGVvU291cmNlLmgiCisjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3Rp
ZmVyLmgiCiAKIHR5cGVkZWYgc3RydWN0IF9fQ1ZCdWZmZXIgKkNWQnVmZmVyUmVmOwogdHlwZWRl
ZiBDVkJ1ZmZlclJlZiBDVkltYWdlQnVmZmVyUmVmOwpAQCAtNDMsOSArNDMsOCBAQCB0eXBlZGVm
IHN0cnVjdCBfX0NWUGl4ZWxCdWZmZXJQb29sICpDVlBpeGVsQnVmZmVyUG9vbFJlZjsKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYyBmaW5h
bCA6IHB1YmxpYyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSB7CitjbGFzcyBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYyBmaW5hbCA6IHB1YmxpYyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSwgcHJp
dmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0KICAgICB2aXJ0
dWFsIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYygpIHsgfQogCiBwcml2YXRlOgpAQCAtNTks
MTMgKzU4LDE0IEBAIHByaXZhdGU6CiAgICAgdm9pZCB1cGRhdGVTYW1wbGVCdWZmZXIoKSBmaW5h
bDsKICAgICBib29sIGFwcGx5U2l6ZShjb25zdCBJbnRTaXplJikgZmluYWw7CiAKKyAgICB2b2lk
IG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pIGZpbmFsOworCiAgICAgbXV0YWJs
ZSBSZXRhaW5QdHI8Q0dJbWFnZVJlZj4gbV9wcmV2aWV3SW1hZ2U7CiAgICAgbXV0YWJsZSBSZXRh
aW5QdHI8UGxhdGZvcm1MYXllcj4gbV9wcmV2aWV3TGF5ZXI7CiAgICAgbXV0YWJsZSBSZXRhaW5Q
dHI8Q1ZQaXhlbEJ1ZmZlclBvb2xSZWY+IG1fYnVmZmVyUG9vbDsKKyAgICBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbiBtX2RldmljZU9yaWVudGF0aW9uIHsgTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246Ok5vbmUgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hY19oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KaW5kZXggYmM2
ODBhOGVhYTM4ZWNjN2UyOGFjMDkyNTIxZmFkNzUzZWFmM2U0Ny4uYmU0YmUwMGFlNDk1MjBhYWVj
ODZjNGMyMzFhNjM5NDg2ODdlMGVjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbQpAQCAtNTAsMTMgKzUwLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogc3Rh
dGljIGNvbnN0IGludCB2aWRlb1NhbXBsZVJhdGUgPSA5MDAwMDsKIAotUmVmUHRyPE1vY2tSZWFs
dGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJl
U291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmlu
ZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0
byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMobmFtZSkp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZU1hYyhuYW1lKSk7CisgICAgLy8gRklYTUU6IFdlIHNob3VsZCByZXBvcnQgZXJyb3IgbWVzc2Fn
ZXMKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25z
dHJhaW50cykpCi0gICAgICAgIHNvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07
CiAKLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihX
VEZNb3ZlKHNvdXJjZSkpOwogfQogCiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6TW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWMoY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtMTYxLDYgKzE2Miwy
NyBAQCBib29sIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjphcHBseVNpemUoY29uc3QgSW50
U2l6ZSYgbmV3U2l6ZSkKICAgICByZXR1cm4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmFwcGx5
U2l6ZShuZXdTaXplKTsKIH0KIAordm9pZCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6b3Jp
ZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKK3sKKyAgICAvLyBGSVhNRTogRG8gc29t
ZXRoaW5nIHdpdGggbV9kZXZpY2VPcmllbnRhdGlvbgorICAgIHN3aXRjaCAob3JpZW50YXRpb24p
IHsKKyAgICBjYXNlIDA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSA5MDoKKyAg
ICAgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAtOTA6CisgICAgICAgIG1fZGV2aWNlT3Jp
ZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSAxODA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVm
YXVsdDoKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcAppbmRleCA2ZjRiZjYxMDE1MDJjN2E0MDVhYjVjZmIx
MjcxZWM4ZjUzMzczNTJjLi41YzI2MDUwMjY1NTcwODRkY2ExNGQxNmNhY2FkMThkMWI5ZTdmYzRj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCkBAIC0x
MzYsMTkgKzEzNiwyMSBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0
ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wbAogICAgIFN0cmluZyBpbnZh
bGlkQ29uc3RyYWludDsKIAogICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkgJiYgbV9h
dWRpb0ZhY3RvcnkpIHsKLSAgICAgICAgaWYgKGF1dG8gYXVkaW9Tb3VyY2UgPSBtX2F1ZGlvRmFj
dG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGF1
ZGlvRGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvLCBhdWRpb0NvbnN0
cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICBhdWRpb1NvdXJjZXMuYXBw
ZW5kKGF1ZGlvU291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICBhdXRvIGF1ZGlvU291
cmNlID0gbV9hdWRpb0ZhY3RvcnktPmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShhdWRpb0Rldmlj
ZUlELCBhdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgaWYgKCEhYXVkaW9Tb3VyY2UpCisgICAg
ICAgICAgICBhdWRpb1NvdXJjZXMuYXBwZW5kKGF1ZGlvU291cmNlLnNvdXJjZSgpKTsKICNpZiAh
TE9HX0RJU0FCTEVECi0gICAgICAgIGlmICghaW52YWxpZENvbnN0cmFpbnQuaXNFbXB0eSgpKQot
ICAgICAgICAgICAgTE9HKE1lZGlhLCAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3Jl
YXRlTWVkaWFTdHJlYW0oJXApLCBhdWRpbyBjb25zdHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVz
IiwgdGhpcywgaW52YWxpZENvbnN0cmFpbnQudXRmOCgpLmRhdGEoKSk7CisgICAgICAgIGlmICgh
YXVkaW9Tb3VyY2UuZXJyb3JNZXNzYWdlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIExPRyhNZWRp
YSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwg
YXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGF1ZGlvU291cmNl
LmVycm9yTWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICNlbmRpZgogICAgIH0KICAgICBpZiAoIXZp
ZGVvRGV2aWNlSUQuaXNFbXB0eSgpICYmIG1fdmlkZW9GYWN0b3J5KSB7Ci0gICAgICAgIGlmIChh
dXRvIHZpZGVvU291cmNlID0gbV92aWRlb0ZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyh2aWRlb0RldmljZUlELCBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpWaWRlbywgdmlkZW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQot
ICAgICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZCh2aWRlb1NvdXJjZS5yZWxlYXNlTm9uTnVs
bCgpKTsKKyAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9IG1fdmlkZW9GYWN0b3J5LT5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UodmlkZW9EZXZpY2VJRCwgdmlkZW9Db25zdHJhaW50cyk7CisgICAg
ICAgIGlmICghIXZpZGVvU291cmNlKQorICAgICAgICAgICAgdmlkZW9Tb3VyY2VzLmFwcGVuZCh2
aWRlb1NvdXJjZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBpZiAoIWlu
dmFsaWRDb25zdHJhaW50LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgdmlkZW8gY29u
c3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGludmFsaWRDb25zdHJhaW50LnV0
ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoIXZpZGVvU291cmNlLmVycm9yTWVzc2FnZS5pc0Vt
cHR5KCkpCisgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBh
cHBseTogJXMiLCB0aGlzLCB2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7
CiAjZW5kaWYKICAgICB9CiAKQEAgLTE4NywxMiArMTg5LDE4IEBAIFZlY3RvcjxTdHJpbmc+IFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFp
bnRzKFJlCiAgICAgICAgIGlmICghY2FwdHVyZURldmljZS5lbmFibGVkKCkgfHwgY2FwdHVyZURl
dmljZS50eXBlKCkgIT0gZGV2aWNlVHlwZSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCi0gICAg
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBmYWN0b3J5ID0gdHlwZSA9
PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyA/IG1fdmlkZW9GYWN0b3J5IDogbV9h
dWRpb0ZhY3Rvcnk7Ci0gICAgICAgIGlmICghZmFjdG9yeSkKLSAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOworICAgICAgICBp
ZiAodHlwZSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbyAmJiBtX3ZpZGVvRmFj
dG9yeSkKKyAgICAgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBtX3ZpZGVvRmFjdG9yeS0+Y3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCksICZjb25zdHJh
aW50cyk7CisgICAgICAgIGVsc2UgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZTo6QXVkaW8gJiYgbV9hdWRpb0ZhY3RvcnkpCisgICAgICAgICAgICBzb3VyY2VPckVycm9yID0g
bV9hdWRpb0ZhY3RvcnktPmNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLnBl
cnNpc3RlbnRJZCgpLCAmY29uc3RyYWludHMpOwogCi0gICAgICAgIGlmIChhdXRvIGNhcHR1cmVT
b3VyY2UgPSBmYWN0b3J5LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHMoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgZGV2aWNlVHlwZSwgJmNvbnN0
cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICBiZXN0U291cmNlcy5hcHBl
bmQoY2FwdHVyZVNvdXJjZS5sZWFrUmVmKCkpOworICAgICAgICBpZiAoIXNvdXJjZU9yRXJyb3Ip
IHsKKyAgICAgICAgICAgIC8vIEZJWE1FOiBIYW5kbGUgdGhlIGNhc2Ugb2YgaW52YWxpZCBjb25z
dHJhaW50cyBvbiBtb3JlIHRoYW4gb25lIGRldmljZS4KKyAgICAgICAgICAgIGludmFsaWRDb25z
dHJhaW50ID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CisgICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgfQorICAgICAgICBiZXN0U291cmNlcy5hcHBlbmQoc291cmNl
T3JFcnJvci5zb3VyY2UoKSk7CiAgICAgfQogCiAgICAgVmVjdG9yPFN0cmluZz4gc291cmNlVUlE
czsKQEAgLTIwNywxMiArMjE1LDEyIEBAIFZlY3RvcjxTdHJpbmc+IFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFpbnRzKFJlCiAgICAgcmV0
dXJuIHNvdXJjZVVJRHM7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5
KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkKK1Jl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OmRlZmF1bHRBdWRpb0ZhY3RvcnkoKQogewogICAgIHJldHVybiAmQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFZpZGVv
RmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0b3J5KCkKIHsKICAgICBy
ZXR1cm4gJkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCk7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAppbmRleCAxYmY0OTdmZDZkN2MzYzE2NmZkYTgy
ZGVhMmIxMzFiMTNjOGE0NDg0Li5mZjFmODk3YmJlZGU5OWE0NDA1MmI2OTJjZjVkOGQwYWVkMTAw
ZDQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKQEAgLTU0
LDggKzU0LDggQEAgcHJpdmF0ZToKIAogICAgIFZlY3RvcjxTdHJpbmc+IGJlc3RTb3VyY2VzRm9y
VHlwZUFuZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMmLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KTsKIAotICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgZmluYWw7
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0Zh
Y3RvcnkoKSBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0
b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIGZpbmFsOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dy
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKaW5kZXggNmVjOGU4YjA1M2ExMjA5MTQyZGRj
ZTMzMWQzOGMwYWVhMTdiZGI4Yi4uMGY2NGRlNDM3ZjQxNGFhNmIwZDE5Yjg4NGUyNDc2ZTk0OGU3
ZmEyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Bl
bndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXJPd3IuY3BwCkBAIC0xMDAsNyArMTAwLDcgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyT3dyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGEK
ICAgICBtX2ludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgPSBudWxscHRyOwogfQogCi12b2lkIFJl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3Ry
ZWFtSGFuZGxlciBjb21wbGV0aW9uSGFuZGxlciwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlE
LCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
cjo6Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyJiYgY29tcGxldGlvbkhh
bmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0Rl
dmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyop
CiB7CiAgICAgaW50IHR5cGVzID0gT1dSX01FRElBX1RZUEVfVU5LTk9XTjsKIApAQCAtMTA5LDcg
KzEwOSw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyIGNvbXBsCiAgICAgaWYgKCF2aWRlb0RldmljZUlE
LmlzRW1wdHkoKSkKICAgICAgICAgdHlwZXMgfD0gT1dSX01FRElBX1RZUEVfVklERU87CiAKLSAg
ICBtX2NvbXBsZXRpb25IYW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXI7CisgICAgbV9jb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOwogCiAgICAgb3dyX2dldF9j
YXB0dXJlX3NvdXJjZXMoc3RhdGljX2Nhc3Q8T3dyTWVkaWFUeXBlPih0eXBlcyksIG1lZGlhU291
cmNlc0F2YWlsYWJsZUNhbGxiYWNrLCB0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck93ci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0
Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgKaW5kZXggNmNkZDdkNWZlMGM0YTgyODJk
NDEwMzc0ZWQ0ZjcyYzc4MWZkOWIxNi4uYjM4NzBjMTJkY2I1ZGQ2NjdlNGNiMzAzZTQ4MDhjMDI4
NWNhYjI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
b3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyT3dyLmgKQEAgLTU2LDcgKzU2LDcgQEAgcHVibGljOgogCiAgICAgdm9pZCB2YWxpZGF0
ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSGFuZGxlciB2YWxpZEhhbmRsZXIs
IEludmFsaWRDb25zdHJhaW50c0hhbmRsZXIgaW52YWxpZEhhbmRsZXIsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMmIGF1ZGlvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMmIHZpZGVv
Q29uc3RyYWludHMpIGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRp
YVN0cmVhbUhhbmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5n
JiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRz
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBhdWRpb0NvbnN0cmFpbnRzKSBmaW5hbDsKKyAgICB2
b2lkIGNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmLCBjb25zdCBTdHJp
bmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
YXVkaW9Db25zdHJhaW50cykgZmluYWw7CiAKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gZ2V0
TWVkaWFTdHJlYW1EZXZpY2VzKCkgZmluYWw7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggNDA3ODhk
N2VhNTM0YmY5NTc4OWIxZmVmNzk1MzI2NWU2YTRkOWY0OC4uYzQwMDVlZGYxODgxZDg1YmRhOTA5
OWYyNzBlMThkMzA3ODU0MTJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQxLDI5ICs0MSwyNSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
RmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7Citj
bGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
IHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmKSBmaW5h
bCB7Ci0gICAgICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlv
KQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KKyAgICBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgZm9yIChhdXRv
JiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpIHsKICAg
ICAgICAgICAgIGlmIChkZXZpY2UucGVyc2lzdGVudElkKCkgPT0gZGV2aWNlSUQpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxh
YmVsKCksIGNvbnN0cmFpbnRzKTsKICAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxscHRy
OworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIH07CiAKICNpZiAhUExBVEZPUk0oTUFDKSAm
JiAhUExBVEZPUk0oSU9TKQotUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcg
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UobmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZShuYW1lKSk7CiAgICAgaWYgKGNvbnN0cmFp
bnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBz
b3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJj
ZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0K
IAogUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtNzQsNyArNzAsNyBAQCBSZWZQ
dHI8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGVNdXRlZChjb25zdCBTdHJpbgogfQogI2VuZGlmCiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNh
cHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuaAppbmRleCAxMzMxYzc5MTgxNDRlNmU5NmZjMmFmNDI1N2JmYzJlNzFmY2Q4ZTY3Li4z
NjQ1MjJiMTNmNzA0ZTkwODliYWY4NjVmOWI2Yjk4NmRiMjMxMzA1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBA
IC00MiwxMCArNDIsMTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UgOiBwdWJsaWMgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgog
Ci0gICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3JlYXRlKGNvbnN0
IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
KTsKICAgICBzdGF0aWMgUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBjcmVhdGVNdXRl
ZChjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0
b3J5KCk7CisgICAgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAg
IHZpcnR1YWwgfk1vY2tSZWFsdGltZUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IGJkNzQ4ODYwNjJhMTM1ZmI4MmQ1NzJmZGFjMWNhNjFl
OWE2NmJmMTAuLjY4ZTY2YTI1YmIwMjQ3NDM0MjYzMjkxMjRiYjhmM2ExMWI1YjgyZWIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBAIC04Nyw5ICs4Nyw5IEBAIHZvaWQgTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29u
c3RyYWludHNICiAgICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCgpKSB7CiAgICAgICAg
IFZlY3RvcjxEZXZpY2VJbmZvPiBkZXZpY2VJbmZvOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8m
IGRldmljZSA6IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb0RldmljZXMoKSkgewotICAg
ICAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVh
dGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOwotICAgICAgICAgICAgaWYgKGF1ZGlvU291cmNl
LT5zdXBwb3J0c0NvbnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50
KSkKLSAgICAgICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7YXVkaW9Tb3VyY2UtPmZpdG5l
c3NTY29yZSgpLCBkZXZpY2UucGVyc2lzdGVudElkKCl9KTsKKyAgICAgICAgICAgIGF1dG8gc291
cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVs
KCksIG51bGxwdHIpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvciAmJiBzb3VyY2VP
ckVycm9yLmNhcHR1cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMoYXVkaW9Db25zdHJhaW50
cywgaW52YWxpZENvbnN0cmFpbnQpKQorICAgICAgICAgICAgICAgIGRldmljZUluZm8uYXBwZW5k
KHtzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UucGVy
c2lzdGVudElkKCl9KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChkZXZpY2VJbmZvLmlzRW1w
dHkoKSkgewpAQCAtMTA3LDkgKzEwNyw5IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNICiAgICAg
aWYgKHZpZGVvQ29uc3RyYWludHMuaXNWYWxpZCgpKSB7CiAgICAgICAgIFZlY3RvcjxEZXZpY2VJ
bmZvPiBkZXZpY2VJbmZvOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKSkgewotICAgICAgICAgICAgYXV0byB2
aWRlb1NvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVs
KCksIG51bGxwdHIpOwotICAgICAgICAgICAgaWYgKHZpZGVvU291cmNlLT5zdXBwb3J0c0NvbnN0
cmFpbnRzKHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAg
ICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7dmlkZW9Tb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZp
Y2UucGVyc2lzdGVudElkKCl9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOwor
ICAgICAgICAgICAgaWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291
cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJh
aW50KSkKKyAgICAgICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5j
YXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAg
ICAgICAgIH0KIAogICAgICAgICBpZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEzNSwy
NiArMTM1LDI2IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1l
ZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wCiAgICAgaWYgKCFhdWRpb0Rldmlj
ZUlELmlzRW1wdHkoKSkgewogICAgICAgICBhdXRvJiBhdWRpb0RldmljZXMgPSBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCk7CiAgICAgICAgIGlmIChhdWRpb0RldmljZUlE
ID09IGF1ZGlvRGV2aWNlc1swXS5wZXJzaXN0ZW50SWQoKSkgewotICAgICAgICAgICAgYXV0byBz
b3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1swXS5s
YWJlbCgpLCBhdWRpb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIGlmIChzb3VyY2UpCi0gICAg
ICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1swXS5sYWJlbCgpLCBhdWRpb0NvbnN0cmFpbnRzKTsKKyAg
ICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJyb3IpCisgICAgICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKICAgICAgICAgfSBlbHNlIGlmIChh
dWRpb0RldmljZUlEID09IGF1ZGlvRGV2aWNlc1sxXS5wZXJzaXN0ZW50SWQoKSkgewotICAgICAg
ICAgICAgYXV0byBzb3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1ZGlv
RGV2aWNlc1sxXS5sYWJlbCgpLCBhdWRpb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIGlmIChz
b3VyY2UpCi0gICAgICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFz
ZU5vbk51bGwoKSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1sxXS5sYWJlbCgpLCBhdWRpb0NvbnN0
cmFpbnRzKTsKKyAgICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJyb3IpCisgICAgICAgICAgICAg
ICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKICAgICAgICAg
fQogICAgIH0KIAogICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKICAgICAgICAg
YXV0byYgdmlkZW9EZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNl
cygpOwogICAgICAgICBpZiAodmlkZW9EZXZpY2VJRCA9PSB2aWRlb0RldmljZXNbMF0ucGVyc2lz
dGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZSh2aWRlb0RldmljZXNbMF0ubGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7
Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5h
cHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSh2aWRlb0RldmljZXNbMF0u
bGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVy
cm9yKQorICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5z
b3VyY2UoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAodmlkZW9EZXZpY2VJRCA9PSB2aWRlb0Rldmlj
ZXNbMV0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSh2aWRlb0RldmljZXNbMV0ubGFiZWwoKSwgdmlkZW9D
b25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIHZp
ZGVvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAg
YXV0byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSh2aWRl
b0RldmljZXNbMV0ubGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAo
ISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQoc291
cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE3NCwxMiArMTc0
LDEyIEBAIFZlY3RvcjxDYXB0dXJlRGV2aWNlPiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6Z2V0TWVkaWFTdHJlYW1EZXZpY2VzKCkKICAgICByZXR1cm4gc291cmNlczsKIH0KIAotUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
Q2FwdHVyZUZhY3RvcnkqIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZhdWx0QXVk
aW9GYWN0b3J5KCkKIHsKICAgICByZXR1cm4gJk1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpmYWN0
b3J5KCk7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCitSZWFsdGltZU1l
ZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZTo6ZmFjdG9yeSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IGNk
ZTY1MGZiMjFlMWVlMjY2YWU1YjkyOTU3MjAxMTkyNWQxOWIxZGUuLmU4NDE0MjIyMWNhMzgzMDc5
ZmE0ODY2YjBhY2FhMTlmZTU0YWFhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTQ1
LDggKzQ1LDggQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gZ2V0TWVkaWFT
dHJlYW1EZXZpY2VzKCkgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRp
YVN0cmVhbUhhbmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5n
JiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBhdWRpb0NvbnN0cmFpbnRz
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5hbDsKIAotICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5
KCkgZmluYWw7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1
bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0Nh
cHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIGZp
bmFsOwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcAppbmRleCAyZTY2NDIyZThlMmZiOWNmNDk3Yjcz
MDE5NDYyYWMwZjEwN2RmMjAzLi5lYWFkZGViYWNkYjE2MDVlN2VmYWJmOTlhYjBmOGE2YjExMmNh
MDgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlLmNwcApAQCAtNDgsMjkgKzQ4LDI1IEBACiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGlj
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0Nh
cHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYpIGZpbmFsIHsKLSAgICAgICAgaWYg
KHR5cGUgIT0gQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8pCi0gICAgICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLQorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2Fw
dHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwgewogICAgICAgICBmb3IgKGF1dG8mIGRldmljZSA6IE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKSkgewogICAgICAgICAgICAgaWYgKGRl
dmljZS5wZXJzaXN0ZW50SWQoKSA9PSBkZXZpY2VJRCkKICAgICAgICAgICAgICAgICByZXR1cm4g
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UubGFiZWwoKSwgY29uc3RyYWlu
dHMpOwogICAgICAgICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVy
biB7IH07CiAgICAgfQogfTsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1Mp
Ci1SZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cykKK0NhcHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGUoY29uc3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cykKIHsKICAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZShuYW1lKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAg
ICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNv
dXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogUmVmUHRyPE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3Ry
aW5nJiBuYW1lKQpAQCAtODEsNyArNzcsNyBAQCBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVNdXRlZChjb25zdCBTdHJpbgogfQog
I2VuZGlmCiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1
cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeT4gZmFjdG9y
eTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCBkNzk5ODVlNzFh
YzJkZTIwNDhjZjZjYTNiYjliY2RkN2I0ZTA5MzA0Li5hYTYwZWM3ZTVmMzgzMWNmMGMyN2ZkOGYx
MDcxMTNiMDAyZDI5NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00NiwxMCArNDYsMTAgQEAgY2xhc3Mg
R3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMg
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICBzdGF0aWMgUmVmUHRy
PE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVNdXRlZChjb25zdCBTdHJpbmcmIG5hbWUp
OwogCi0gICAgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgc3RhdGljIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9X
ZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJn
dW1lbnRDb2RlcnMuaAppbmRleCBiZjhkZDc1M2Y5NzNlNzI2Y2NhNGM1YjE1NjkzZDY2NGJhY2Ey
MWYxLi5kMDdiZjNlZGQxMDUxMjIxYjlmZjM1Yjg4YmZkOTA5MDY1OGZjODkxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291
cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENvZGVycy5oCkBAIC0zNCw2ICszNCw3
IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNlbGVjdGlvbk9wdGlvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50
SGVhZGVycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmg+CiAKIG5hbWVzcGFjZSBXVEYg
ewpAQCAtNzIyLDYgKzcyMywxNCBAQCB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU+IHsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8KICAgICA+OwogfTsKK3RlbXBsYXRlPD4gc3RydWN0
IEVudW1UcmFpdHM8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZT4geworICAgIHVz
aW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSwKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lLAor
ICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvLAorICAgIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvCisgICAgPjsKK307CiAjZW5kaWYK
IAogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9w
dGlvbjo6VHlwZT4gewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCmluZGV4IDgzOGFlZjEz
NTg4YTY3NzY3ZjA4MDgyMDM0NTViYjVjNTFjZTkwNGQuLjljM2RlNzdlMjVmY2U4ZjA2NTI5ZDJi
NjA0ZTUxNWI3NjNlMjhiNTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9D
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTEy
NSwxNCArMTI1LDI3IEBAIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlclByb3h5KCkKICAgICBtX3Byb2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVy
KE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0
eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29uc3RyYWludHNEYXRhLCBib29sJiBz
dWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQordm9pZCBVc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEm
IGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50cykKIHsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBzb3VyY2VPckVycm9yOwogICAgIGF1
dG8gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFpbnRzSW1wbDo6Y3JlYXRlKE1lZGlhQ29uc3Ry
YWludHNEYXRhKGNvbnN0cmFpbnRzRGF0YSkpOwotICAgIGF1dG8gc291cmNlID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCktPmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhkZXZpY2VJRCwgdHlwZSwgY29u
c3RyYWludHMucHRyKCksIGludmFsaWRDb25zdHJhaW50cyk7Ci0gICAgc3VjY2VlZGVkID0gISFz
b3VyY2U7CisgICAgc3dpdGNoICh0eXBlKSB7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0cigpKTsKKyAgICAgICAgYnJl
YWs7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoK
KyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmds
ZXRvbigpLnZpZGVvRmFjdG9yeSgpLT5jcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQs
IGNvbnN0cmFpbnRzLnB0cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQogCi0gICAgaWYgKHNvdXJjZSkKLSAgICAgICAg
bV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlz
LCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOworICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JF
cnJvcjsKKyAgICBpZiAoc291cmNlT3JFcnJvcikKKyAgICAgICAgbV9wcm94aWVzLnNldChpZCwg
c3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2VPckVycm9yLnNv
dXJjZSgpKSk7CisgICAgZWxzZQorICAgICAgICBpbnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3Zl
KHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaAppbmRleCAwZTYzNTE4MmUyNDNjYzc3YzM0OGUwNzY2ZWQzZWM1YWFkZDBm
MTgyLi40MTM5ZGIyNGQ0NzUyMDllYzNlN2NkM2NiZjdiZDgzNGEyNzhjYmNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlclByb3h5LmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwog
ICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVj
b2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVuY29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lk
IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRf
dCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2
aWNlVHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNj
ZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29u
c3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmlu
ZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKICAgICB2b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50
NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBj
YXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmls
aXRpZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5k
ZXggNTI3ZGZhNjZhODQ2ZjQ3ZmQwODBkNTdlNzE4MzM3MTIyZDgxYzgwOC4uMWZjMDkzZTViMzA5
NmY1MTBkZGU4ZmY0YWNlNjRmZDE0MDEzYjdhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcgKzIyLDcgQEAKICMgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAtPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5IHsKLSAgICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIFN0cmluZyBkZXZpY2VJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6
RGV2aWNlVHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29u
c3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisg
ICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2
NF90IGlkLCBTdHJpbmcgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5
cGUgdHlwZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRz
KSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnRzKQogICAgIFN0YXJ0
UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRf
dCBpZCkKICAgICBDYXBhYmlsaXRpZXModWludDY0X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKaW5kZXggYjMxYWExOGUxYjY4MjkxNDk3NTc5ODgxMzhjNmQyZjBmZTZiNDRkYy4uNGQ0ZjAy
NjJmZDliMTE4M2I4MDQzOTA5NGU1ZjMxNGNmMDZlNTQ1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5j
cHAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6Omlu
aXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyCiAgICAgICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnNldEF1ZGlvRmFjdG9yeSgq
dGhpcyk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlLCBjb25zdCBXZWJDb3JlOjpN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBpZiAoIWNvbnN0cmFpbnRzKQot
ICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAogICAgIHVpbnQ2
NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOwogICAgIE1lZGlhQ29uc3RyYWludHNEYXRhIGNvbnN0
cmFpbnRzRGF0YTsKQEAgLTE5NCwyNCArMTk0LDEzIEBAIFJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
CiAgICAgY29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJhaW50cy0+aXNWYWxpZCgpOwog
ICAgIGJvb2wgc3VjY2VlZGVkOwogCi0gICAgbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZUlELCB0eXBlLCBjb25zdHJhaW50c0RhdGEp
LCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGludmFs
aWRDb25zdHJhaW50cyksIDApOwotCi0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3Vy
Y2VUeXBlOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURl
dmljZTo6RGV2aWNlVHlwZTo6QXVkaW86Ci0gICAgICAgIHNvdXJjZVR5cGUgPSBXZWJDb3JlOjpS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2Fz
ZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbzoKLSAgICAgICAgc291
cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6
OlVua25vd246Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBz
b3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsKLSAgICBtX3NvdXJjZXMuc2V0
KGlkLCBzb3VyY2UpOwotICAgIHJldHVybiBzb3VyY2U7CisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVy
ZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0
cmFpbnRzKGlkLCBkZXZpY2VJRCwgc291cmNlVHlwZSwgY29uc3RyYWludHNEYXRhKSwgTWVzc2Fn
ZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBlcnJvck1lc3NhZ2Up
LCAwKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNzYWdlKTsKKworICAgIGF1dG8g
c291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VU
eXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsKKyAgICBtX3NvdXJjZXMuc2V0KGlkLCBz
b3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJy
b3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQy
L1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAppbmRleCA0NDZkYTk5
MWNhNmM4OGM4NjBmYTcxOTQ1YWQ4ZDZmOWUyZTRkNjdmLi5hOGE5M2FiZGVlNWU4ZWRjNmQwMjE5
OGI1MTA2OTQ5YzVlNDg5YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCkBAIC00Miw3ICs0Miw3IEBA
IG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ3Jvc3NQcm9jZXNzUmVhbHRpbWVBdWRpb1NvdXJj
ZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKLWNsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDog
cHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIs
IHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7Citj
bGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVu
dCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgogICAgIGV4cGxpY2l0
IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsKICAgICB+VXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIoKTsKQEAgLTUzLDggKzUzLDEwIEBAIHByaXZhdGU6CiAgICAgLy8gV2ViUHJv
Y2Vzc1N1cHBsZW1lbnQKICAgICB2b2lkIGluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0
aW9uUGFyYW1ldGVycyYpIGZpbmFsOwogCi0gICAgLy8gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6RmFjdG9yeToKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZT4g
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0
IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKSBmaW5hbDsKKyAgICAvLyBXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGZhY3RvcmllcworICAgIFdlYkNvcmU6OkNhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmlj
ZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwg
eyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcm
IGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykg
ZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIGNvbnN0cmFpbnRzKTsgfQorICAgIFdlYkNv
cmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2Vi
Q29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8gSVBDOjpNZXNzYWdlUmVjZWl2ZXIK
ICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2Rl
ciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308271</attachid>
            <date>2017-04-26 11:30:30 -0700</date>
            <delta_ts>2017-04-27 16:16:46 -0700</delta_ts>
            <desc>Fixing GTK build</desc>
            <filename>bug-171284-20170426113030.patch</filename>
            <type>text/plain</type>
            <size>78100</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAwMzY1MzEzOWMzOWM5
MDhlOWJiNDNjYmQyNzgzZGNjYjBmNjUxZS4uODgxNzdlYmQyNjA2M2EyZmIwNmVjYmQzOTcyN2M2
NWRhZWU3MGNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk0IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE5vIHRlc3QgeWV0LgorCisgICAgICAgIE1ha2lu
ZyBEb2N1bWVudCBoYXZpbmcgYW4gT3JpZW50YXRpb25Ob3RpZmllciB0aGF0IEFWVmlkZW9DYXB0
dXJlU291cmNlcyBnZXQgcmVnaXN0ZXJlZCB0by4KKyAgICAgICAgTWFraW5nIEFWVmlkZW9DYXB0
dXJlU291cmNlIGFuIE9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyIHNvIHRoYXQgaXQgY2Fu
IGNoYW5nZXMgd2lkdGgvaGVpZ2h0IGlmIG5lZWRlZC4KKworICAgICAgICBSZWZhY3RvcmluZyB0
byBzcGVjaWFsaXplIENhcHR1cmVGYWN0b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkuCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1
cmVTb3VyY2VPckVycm9yIGluc3RlYWQgb2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIHBsdXMg
cmV0dXJuaW5nIGEgUmVmUHRyLgorCisgICAgICAgICogTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2Vy
TWVkaWFSZXF1ZXN0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlVzZXJNZWRpYVJlcXVlc3Q6OmFs
bG93KToKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojpvcmll
bnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAqIGRvbS9Eb2N1bWVudC5oOgorICAgICAgICAqIHBh
Z2UvRnJhbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdl
ZCk6CisgICAgICAgICogcGxhdGZvcm0vT3JpZW50YXRpb25Ob3RpZmVyLmg6IENvcGllZCBmcm9t
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmguCisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6
c2V0Tm90aWZpZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXI6On5PYnNlcnZlcik6CisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVy
OjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3Rp
Zmllcjo6YWRkT2JzZXJ2ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmll
cjo6cmVtb3ZlT2JzZXJ2ZXIpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNZWRpYVN0cmVhbVByaXZhdGU6
Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVk
aWFTdHJlYW1Qcml2YXRlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRp
bWVNZWRpYVNvdXJjZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3I6
OkNhcHR1cmVTb3VyY2VPckVycm9yKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpvcGVyYXRvciBib29sKToKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VP
ckVycm9yOjpzb3VyY2UpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeSk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeSk6Cisg
ICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5o
OgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1
ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjp2aWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6
OkFWQXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRp
b0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlk
ZW9DYXB0dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6Om1vbml0b3JPcmllbnRhdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9D
YXB0dXJlU291cmNlOjpwcm9jZXNzTmV3RnJhbWUpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb3Jl
QXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbToKKyAgICAgICAgKFdl
YkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oOgorICAgICAg
ICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUpOgor
ICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9u
Q2hhbmdlZCk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJNYWMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6YmVzdFNvdXJjZXNGb3JUeXBlQW5kQ29uc3RyYWlu
dHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oOgorICAgICAgICAqIHBs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpj
cmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3Blbndl
YnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmg6CisgICAgICAgICogcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMpOgorICAgICAgICAo
V2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFt
KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZh
dWx0QXVkaW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpkZWZhdWx0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAgICAgICogcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmg6CisKIDIwMTctMDQtMjUgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fi
b3VoYWxsYXdhQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXN0cmljdCBXZWJLaXQgaW1hZ2UgZm9y
bWF0cyB0byBhIGtub3duIHdoaXRlbGlzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDhhOTA5ZWQ3NTk0MzBmYjhi
YjA1ODk3YWY4Mjg2MDU5YTVhN2RhZDMuLjIyMjFmN2QyNzEyMjZkYzRiMWVlNWY1ODdmOWZjM2Ji
N2EwYzRmMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxNy0wNC0yNSAgWW91ZW5u
IEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgZ2V0VXNlck1lZGlhIHZpZGVv
IHN0cmVhbXMgc2hvdWxkIGZvbGxvdyBkZXZpY2Ugb3JpZW50YXRpb24KKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MTI4NAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHNwZWNpYWxp
emUgQ2FwdHVyZUZhY3RvcnkgaW4gVmlkZW9DYXB0dXJlRmFjdG9yeSBhbmQgQXVkaW9DYXB0dXJl
RmFjdG9yeS4KKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gcmV0dXJuIGEgQ2FwdHVyZVNvdXJjZU9y
RXJyb3IgaW5zdGVhZCBvZiBwYXNzaW5nIGFuIG91dCBwYXJhbWV0ZXIgaW4gYWRkaXRpb24gdG8g
cmV0dXJuaW5nIGEgUmVmUHRyLgorCisgICAgICAgICogU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1l
c3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3Jl
YXRlQ2FwdHVyZVNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaDoKKworMjAxNy0wNC0yNSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisK
KyAgICAgICAgVW5hdXRoZW50aWNhdGVkIENPUlMgcHJlZmxpZ2h0IHJlcXVlc3RzIHNob3VsZCBu
b3QgdXNlIGNsaWVudCBjZXJ0aWZpY2F0ZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTE3MTI5OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25D
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Nlc3Npb25Db2NvYTo6TmV0d29ya1Nl
c3Npb25Db2NvYSk6IEVuc3VyaW5nIHRoYXQgc2Vzc2lvbiBkZWRpY2F0ZWQgdG8gcmVxdWVzdHMg
dGhhdCBkbyBub3Qgd2FudCB0byB1c2UgY3JlZGVudGlhbHMgZG8gbm90IGxvb2sgZm9yIGNsaWVu
dCBjcmVkZW50aWFscy4KKwogMjAxNy0wNC0yNSAgRGFuaWVsIEJhdGVzICA8ZGFiYXRlc0BhcHBs
ZS5jb20+CiAKICAgICAgICAgW0NvY29hXVtXaW5dIEVuYWJsZSBvZiBYLUNvbnRlbnQtVHlwZS1P
cHRpb25zOiBub3NuaWZmIGhlYWRlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKaW5kZXggNmViNDE5NDFhNzI0NWEy
MTZkNzA4NDQ2NDk1NjNmNjBlOGY4YzY1Ni4uOTFmZDg4NmI2OGE3NGUyNTU4YjZlYTJlNWUzYmEy
ZTY0ZDRjZTU5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlh
c3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCkBAIC0xNjAsMTMgKzE2MCwxNiBAQCB2b2lkIFVz
ZXJNZWRpYVJlcXVlc3Q6OmFsbG93KGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VVSUQsIGNvbnN0
IFN0cmluZyYgdmlkZW9EZQogCiAgICAgUmVmUHRyPFVzZXJNZWRpYVJlcXVlc3Q+IHByb3RlY3Rl
ZFRoaXMgPSB0aGlzOwogICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6Ok5ld01lZGlhU3Ry
ZWFtSGFuZGxlciBjYWxsYmFjayA9IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gV1RGTW92ZShwcm90
ZWN0ZWRUaGlzKV0oUmVmUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4mJiBwcml2YXRlU3RyZWFtKSBt
dXRhYmxlIHsKLSAgICAgICAgaWYgKCFtX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQpCisgICAgICAg
IGF1dG8qIGNvbnRleHQgPSBkb3duY2FzdDxEb2N1bWVudD4obV9zY3JpcHRFeGVjdXRpb25Db250
ZXh0KTsKKyAgICAgICAgQVNTRVJUKGNvbnRleHQpOworICAgICAgICBpZiAoIWNvbnRleHQpCiAg
ICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgaWYgKCFwcml2YXRlU3RyZWFtKSB7CiAgICAg
ICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVycm9yLCBlbXB0
eVN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBwcml2
YXRlU3RyZWFtLT5tb25pdG9yT3JpZW50YXRpb24oY29udGV4dC0+b3JpZW50YXRpb25Ob3RpZmll
cigpKTsKIAogICAgICAgICBhdXRvIHN0cmVhbSA9IE1lZGlhU3RyZWFtOjpjcmVhdGUoKm1fc2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCwgcHJpdmF0ZVN0cmVhbS5yZWxlYXNlTm9uTnVsbCgpKTsKICAg
ICAgICAgaWYgKHN0cmVhbS0+Z2V0VHJhY2tzKCkuaXNFbXB0eSgpKSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMWY1NWIxZDQ3
OTdkN2NkM2I0YzExZGI0ZmExYTk2MGRiZWYwMGNkMS4uMWNhOTM5NTZhMWI5OWUxYWU0MzY2MWYy
YzlkY2VlMjgxYmE2ZTkzYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTc1NSw2ICsxNzU1LDcgQEAKIAkJNDE4MTVDMUYxMzgz
MTk4MzAwNTdBQUE0IC8qIFdlYkNvcmVUZXN0U3VwcG9ydC5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MTVDMUQxMzgzMTk4MzAwNTdBQUE0IC8qIFdl
YkNvcmVUZXN0U3VwcG9ydC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CiAJCTQxODIwNTQ3MUU1M0U5OEMwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0NTFF
NTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODIwNTQ5MUU1M0VBQjAwMEQ2MjIwNyAvKiBS
VENDb250cm9sbGVyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVyLmNwcCAqLzsg
fTsKKwkJNDE4NEY1MTYxRUFGMDVBODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4NEY1MTUxRUFG
MDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1QjkzMTFCNkZEQTYwMDMzODNCQiAv
KiBGb3JtU3VibWlzc2lvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE4ODVCOTQx
MUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBG
b3JtU3VibWlzc2lvbi5jcHAgKi87IH07CiAJCTQxOEEwNkQwMTMzQzA0RDUwMENEMzc5QyAvKiBF
dmVudERpc3BhdGNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLzsg
fTsKQEAgLTkzNjcsNiArOTM2OCw3IEBACiAJCTQxODE3MDdEMTM4NkVERjIwMDU3QUFBNCAvKiBX
ZWJDb3JlVGVzdFN1cHBvcnQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRo
ID0gV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MTgyMDU0NTFFNTNDOENEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBSVENDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTQxODIwNTQ4MUU1M0VBQUQwMEQ2MjIwNyAvKiBSVENDb250cm9sbGVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFJUQ0NvbnRyb2xsZXIu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MTg0RjUxNTFFQUYwNTk4MDBGMThC
RjAgLyogT3JpZW50YXRpb25Ob3RpZmVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE9yaWVudGF0aW9uTm90aWZlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0
MTg4NUI5MTExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gRm9ybVN1Ym1pc3Npb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDE4ODVCOTIxMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4QTA2Q0UxMzNDMDRENTAwQ0QzNzlD
IC8qIEV2ZW50RGlzcGF0Y2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBF
dmVudERpc3BhdGNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzOTcyLDYg
KzIzOTc0LDcgQEAKIAkJCQlCQzc3MkM0RDBDNEVCMzA0MDA4MzI4NUYgLyogTUlNRVR5cGVSZWdp
c3RyeS5oICovLAogCQkJCUUxNTEzRDUwMTY3N0YwODgwMDE0OUZDQiAvKiBOb3RJbXBsZW1lbnRl
ZC5jcHAgKi8sCiAJCQkJOThFQjFGOTQxMzEzRkUwNTAwRDBFMUVBIC8qIE5vdEltcGxlbWVudGVk
LmggKi8sCisJCQkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZl
ci5oICovLAogCQkJCTRCMjcwOEM1MEFGMTlFRTQwMDY1MTI3RiAvKiBQYXN0ZWJvYXJkLmggKi8s
CiAJCQkJQzVGNzY1QjQxNEUxRDQxNDAwNkM4OTlCIC8qIFBhc3RlYm9hcmRTdHJhdGVneS5oICov
LAogCQkJCTFBRjVFNEQyMUU1NjczNUEwMDRBMUYwMSAvKiBQYXN0ZWJvYXJkV3JpdGVyRGF0YS5j
cHAgKi8sCkBAIC0yOTU5Nyw2ICsyOTYwMCw3IEBACiAJCQkJMDgxNjY4REExMjU2MDNENTAwNkYy
NURFIC8qIFNWR1RleHRMYXlvdXRFbmdpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUMyRTM4RUZF
MUU4Mzk2RkQwMENBM0FERiAvKiBDU1NGb250U3R5bGVWYWx1ZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDgwRTQ5MjYxMjU1RjNCRDAwRUZDQTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVCYXNlbGlu
ZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE4NEY1MTYxRUFGMDVBODAwRjE4QkYwIC8qIE9yaWVu
dGF0aW9uTm90aWZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDgwRTQ5MjgxMjU1RjNCRDAwRUZD
QTI3IC8qIFNWR1RleHRMYXlvdXRFbmdpbmVTcGFjaW5nLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
OEYwQkZDNjEyNTVDNTNDMDAwNzUxODUgLyogU1ZHVGV4dE1ldHJpY3MuaCBpbiBIZWFkZXJzICov
LAogCQkJCTcxMTc0NDU5MTRCQzM0RUMwMEVFNUZDOCAvKiBTVkdUZXh0TWV0cmljc0J1aWxkZXIu
aCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggM2FjZDVlOWIxNzVl
NWIyOWVlMzRmYjk2YzgyODA5OTIyNDc0ZWUyYy4uNjgyNzA4NTAzMWFiZTg5YjhhN2RhNWYxMjRl
YTgyNjdlNjk5NDYyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC02OTU0LDQgKzY5NTQs
MTAgQEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVtb3ZlSW5Eb2N1bWVudFNoYWRvd1Jvb3QoU2hhZG93
Um9vdCYgc2hhZG93Um9vdCkKICAgICBtX2luRG9jdW1lbnRTaGFkb3dSb290cy5yZW1vdmUoJnNo
YWRvd1Jvb3QpOwogfQogCit2b2lkIERvY3VtZW50OjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9y
aWVudGF0aW9uKQoreworICAgIGRpc3BhdGNoV2luZG93RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVu
dE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7CisgICAgbV9v
cmllbnRhdGlvbk5vdGlmaWVyLm9yaWVudGF0aW9uQ2hhbmdlZChvcmllbnRhdGlvbik7Cit9CisK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNDgyODMxOGQ3
NWYxMzYxZTMwMjgyNTBhMTkxYjY5YzdjOWNhZTU1OS4uNGUwNjlmZDE2NjkxM2JjY2EzOGRkOTQz
ODJlODViMGU1MTQ1ODU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM4LDYgKzM4LDcgQEAK
ICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJNZWRpYVBy
b2R1Y2VyLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk9yaWVu
dGF0aW9uTm90aWZlci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNs
dWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKQEAgLTEz
MDUsNiArMTMwNiw5IEBAIHB1YmxpYzoKIAogICAgIENvbnN0YW50UHJvcGVydHlNYXAmIGNvbnN0
YW50UHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuICptX2NvbnN0YW50UHJvcGVydHlNYXA7IH0K
IAorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbik7CisgICAgT3Jp
ZW50YXRpb25Ob3RpZmllciYgb3JpZW50YXRpb25Ob3RpZmllcigpIHsgcmV0dXJuIG1fb3JpZW50
YXRpb25Ob3RpZmllcjsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFn
cyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9Owog
ICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9jdW1l
bnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTE3NjAsNiArMTc2
NCw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVz
Q2hhbmdlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorICAgIE9yaWVudGF0aW9uTm90aWZpZXIgbV9v
cmllbnRhdGlvbk5vdGlmaWVyOworCiAgICAgc3RhdGljIGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFY
T2JqZWN0Q2FjaGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDRlZDkxMjRmMjExNTVm
OTUxODEwYjlhZDAzZjAyMTU0YWEyZWYzOTMuLjM2YTFmZTE5YjAxMmExNDU3OWFhNWYyMmIwOGQ0
NTlhMzIwZDI3ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0yOTgsOSArMjk4LDEwIEBAIHZv
aWQgRnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdlZCgpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSB0
aGlzOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQogICAgICAg
ICBmcmFtZXMuYXBwZW5kKCpmcmFtZSk7CiAKKyAgICBhdXRvIG5ld09yaWVudGF0aW9uID0gb3Jp
ZW50YXRpb24oKTsKICAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKSB7CiAgICAgICAgIGlm
IChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRv
Y3VtZW50LT5kaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9y
aWVudGF0aW9uY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICAgICAgZG9jdW1l
bnQtPm9yaWVudGF0aW9uQ2hhbmdlZChuZXdPcmllbnRhdGlvbik7CiAgICAgfQogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL09yaWVudGF0aW9uTm90aWZlci5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjU1
YjI5ZmQxMjU1MTg1YjI2ZmVlMzg4YThmZGY3NmJkOGM3OWNmZDMKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaApAQCAtMCwwICsx
LDg2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllciB7CitwdWJsaWM6CisgICAgdm9pZCBvcmllbnRh
dGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKTsKKyAgICB+T3JpZW50YXRpb25Ob3RpZmllcigp
OworCisgICAgY2xhc3MgT2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+
T2JzZXJ2ZXIoKTsKKyAgICAgICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQg
b3JpZW50YXRpb24pID0gMDsKKyAgICAgICAgdm9pZCBzZXROb3RpZmllcihPcmllbnRhdGlvbk5v
dGlmaWVyKiBub3RpZmllcikgeyBtX25vdGlmaWVyID0gbm90aWZpZXI7IH0KKworICAgIHByaXZh
dGU6CisgICAgICAgIE9yaWVudGF0aW9uTm90aWZpZXIqIG1fbm90aWZpZXIgeyBudWxscHRyIH07
CisgICAgfTsKKworICAgIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJl
bW92ZU9ic2VydmVyKE9ic2VydmVyJik7CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6cmVm
ZXJlbmNlX3dyYXBwZXI8T2JzZXJ2ZXI+PiBtX29ic2VydmVyczsKK307CisKK2lubGluZSBPcmll
bnRhdGlvbk5vdGlmaWVyOjp+T3JpZW50YXRpb25Ob3RpZmllcigpCit7CisgICAgZm9yIChPYnNl
cnZlciYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuc2V0Tm90aWZp
ZXIobnVsbHB0cik7Cit9CisKK2lubGluZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6
fk9ic2VydmVyKCkKK3sKKyAgICBpZiAobV9ub3RpZmllcikKKyAgICAgICAgbV9ub3RpZmllci0+
cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworfQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlm
aWVyOjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIGZvciAoT2Jz
ZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLm9yaWVudGF0
aW9uQ2hhbmdlZChvcmllbnRhdGlvbik7Cit9CisKK2lubGluZSB2b2lkIE9yaWVudGF0aW9uTm90
aWZpZXI6OmFkZE9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKK3sKKyAgICBtX29ic2VydmVy
cy5hcHBlbmQob2JzZXJ2ZXIpOworICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKHRoaXMpOworfQor
CitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjpyZW1vdmVPYnNlcnZlcihPYnNlcnZl
ciYgb2JzZXJ2ZXIpCit7CisgICAgbV9vYnNlcnZlcnMucmVtb3ZlRmlyc3RNYXRjaGluZyhbJm9i
c2VydmVyXShhdXRvIGl0ZW0pIHsKKyAgICAgICAgaWYgKCZvYnNlcnZlciAhPSAmaXRlbS5nZXQo
KSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgb2JzZXJ2ZXIuc2V0Tm90aWZp
ZXIobnVsbHB0cik7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0pOworfQorCit9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVBy
aXZhdGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJl
YW1Qcml2YXRlLmNwcAppbmRleCBjOGZhYjY4Njg3YmQ4NzVmNzFmNzI3NTVmNTA5YjVmYzE1Nzc2
OTc4Li5iZjI4ZWYxYmVlYjc4NzdiNjBmOWZhNzYxOWY2ZjNkMGM2MGRlYzA4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UHJpdmF0ZS5jcHAKQEAgLTI5OCw2ICsyOTgsMTUgQEAgdm9pZCBNZWRpYVN0cmVhbVByaXZhdGU6
OnNjaGVkdWxlRGVmZXJyZWRUYXNrKEZ1bmN0aW9uPHZvaWQgKCk+JiYgZnVuY3Rpb24pCiAgICAg
fSk7CiB9CiAKK3ZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjptb25pdG9yT3JpZW50YXRpb24oT3Jp
ZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpCit7CisgICAgZm9yIChhdXRvJiB0cmFjayA6IG1f
dHJhY2tTZXQudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKHRyYWNrLT5zb3VyY2UoKS5pc0NhcHR1
cmVTb3VyY2UoKSAmJiB0cmFjay0+dHlwZSgpID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OlZpZGVvKQorICAgICAgICAgICAgdHJhY2stPnNvdXJjZSgpLm1vbml0b3JPcmllbnRhdGlvbihu
b3RpZmllcik7CisgICAgfQorCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlm
IC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDliNWFhMmU2Nzhh
NTY5OTU2NWExOTdjMDgwOGEwNzVhMjU2MmY1ODIuLmNjNTFmYjZhMTA3NjBmMTQyMDgxYjYzMTlj
ZjExMjc0ZWVmZjI4MDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oCkBAIC01Niw2ICs1Niw3IEBACiBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT3JpZW50YXRpb25O
b3RpZmllcjsKIAogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlIDogcHVibGljIE1lZGlhU3RyZWFt
VHJhY2tQcml2YXRlOjpPYnNlcnZlciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2
YXRlPiB7CiBwdWJsaWM6CkBAIC0xMDYsNiArMTA3LDggQEAgcHVibGljOgogCiAgICAgV2Vha1B0
cjxNZWRpYVN0cmVhbVByaXZhdGU+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJG
YWN0b3J5LmNyZWF0ZVdlYWtQdHIoKTsgfQogCisgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24o
T3JpZW50YXRpb25Ob3RpZmllciYpOworCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICB2b2lkIHNl
dFZpZGVvUmVuZGVyZXIoT3dyR3N0VmlkZW9SZW5kZXJlciogcmVuZGVyZXIsIEdzdEVsZW1lbnQq
IHNpbmspIHsgbV9nc3RWaWRlb1JlbmRlcmVyID0gcmVuZGVyZXI7IG1fZ3N0VmlkZW9TaW5rRWxl
bWVudCA9IHNpbms7IH0KICAgICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGdldFZpZGVvU2lua0VsZW1l
bnQoKSBjb25zdCB7IHJldHVybiBtX2dzdFZpZGVvU2lua0VsZW1lbnQ7IH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3Vy
Y2UuaAppbmRleCA5MGUyMjJiMzgyNmMwYzM1NGM0ZjIxZTZlYjg1ZGVmMWI3NTkyZjdjLi4yYWY2
MTFmYWY5NGY5ZjgyNGUxM2JjMDYzNGFmZmE3OWNlNzNkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5o
CkBAIC0zMSw4ICszMSw3IEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVhbHRp
bWVNZWRpYVNvdXJjZV9oCi0jZGVmaW5lIFJlYWx0aW1lTWVkaWFTb3VyY2VfaAorI3ByYWdtYSBv
bmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCkBAIC01OCw5ICs1NywxMiBAQCBjbGFz
cyBBdWRpb1N0cmVhbURlc2NyaXB0aW9uOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwogY2xhc3MgTWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgT3JpZW50YXRpb25O
b3RpZmllcjsKIGNsYXNzIFBsYXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNv
dXJjZVNldHRpbmdzOwogCitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CisKIGNsYXNzIFdF
QkNPUkVfRVhQT1JUIFJlYWx0aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFs
dGltZU1lZGlhU291cmNlPiB7CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewpAQCAtODMs
MTMgKzg1LDIyIEBAIHB1YmxpYzoKICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2
YWlsYWJsZShjb25zdCBNZWRpYVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0
IEF1ZGlvU3RyZWFtRGVzY3JpcHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0K
ICAgICB9OwogCi0gICAgY2xhc3MgQ2FwdHVyZUZhY3RvcnkgeworICAgIGNsYXNzIEF1ZGlvQ2Fw
dHVyZUZhY3RvcnkgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJl
RmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOworICAgICAgICAKKyAgICBwcm90ZWN0ZWQ6Cisg
ICAgICAgIEF1ZGlvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgfTsKKworICAgIGNs
YXNzIFZpZGVvQ2FwdHVyZUZhY3RvcnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+
Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0
aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmlj
ZVR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKSA9IDA7CisgICAgICAgIHZp
cnR1YWwgflZpZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmlu
ZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKIAogICAgIHBy
b3RlY3RlZDoKLSAgICAgICAgQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgICAgIFZp
ZGVvQ2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgflJl
YWx0aW1lTWVkaWFTb3VyY2UoKSB7IH0KQEAgLTEzNSw2ICsxNDYsOCBAQCBwdWJsaWM6CiAKICAg
ICB2aXJ0dWFsIGJvb2wgaXNDYXB0dXJlU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0K
IAorICAgIHZpcnR1YWwgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmll
ciYpIHsgfQorICAgIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2
ZXImKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7
CiAKQEAgLTIyOSw4ICsyNDIsMTggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcHJlc3NOb3Rp
ZmljYXRpb25zIHsgdHJ1ZSB9OwogfTsKIAorc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yIHsK
KyAgICBDYXB0dXJlU291cmNlT3JFcnJvcigpID0gZGVmYXVsdDsKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvcihSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpIDogY2FwdHVyZVNvdXJj
ZShXVEZNb3ZlKHNvdXJjZSkpIHsgfQorICAgIENhcHR1cmVTb3VyY2VPckVycm9yKFN0cmluZyYm
IG1lc3NhZ2UpIDogZXJyb3JNZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpIHsgfQorICAgIAorICAg
IG9wZXJhdG9yIGJvb2woKSAgY29uc3QgeyByZXR1cm4gISFjYXB0dXJlU291cmNlOyB9CisgICAg
UmVmPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHNvdXJjZSgpIHsgcmV0dXJuIGNhcHR1cmVTb3VyY2Uu
cmVsZWFzZU5vbk51bGwoKTsgfQorICAgIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBjYXB0dXJlU291cmNlOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Cit9OworCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5k
aWYgLy8gUmVhbHRpbWVNZWRpYVNvdXJjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwCmluZGV4IDk1NTk5OGQ2NjcxY2RkMTViYjA3YmE5MjMwMjYyZjlhNzI2NjM3NDYuLmY0YzJi
YTY4NDgzZDE4N2M3MGI4MzdhZjRhMTA5N2Q3MmQxYzg0MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXIuY3BwCkBAIC02NiwyMyArNjYsMjMgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlcjo6flJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIoKQogewogfQogCi12b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3Rvcnkm
IGZhY3RvcnkpCiB7CiAgICAgbV9hdWRpb0ZhY3RvcnkgPSAmZmFjdG9yeTsKIH0KIAotdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6dW5zZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0
dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBpZiAobV9hdWRpb0ZhY3RvcnkgPT0gJmZhY3Rv
cnkpCiAgICAgICAgIG1fYXVkaW9GYWN0b3J5ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjpzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5
JiBmYWN0b3J5KQogewogICAgIG1fdmlkZW9GYWN0b3J5ID0gJmZhY3Rvcnk7CiB9CiAKLXZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnVuc2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2Fw
dHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgaWYgKG1fdmlkZW9GYWN0b3J5ID09ICZmYWN0
b3J5KQogICAgICAgICBtX3ZpZGVvRmFjdG9yeSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyLmgKaW5kZXggNTEyNDFhZDkxODIyYTJkNzgwYjAzZmMxZjJjMWVjZDYzNjcxNTU3
OS4uMzIxZTYzZjdjYjU1NDM0MzE2OWNmMjViN2Y0MTE0M2E0ZTk2ODYyMCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaApAQCAtNjYsMTYgKzY2LDE2IEBAIHB1YmxpYzoKICAgICAKICAg
ICB2aXJ0dWFsIGNvbnN0IFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYg
c3VwcG9ydGVkQ29uc3RyYWludHMoKSB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOyB9
CiAKLSAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZh
dWx0QXVkaW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSB7IHJl
dHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0Nh
cHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQor
ICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVm
YXVsdFZpZGVvRmFjdG9yeSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KIAotICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5Jik7Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYpOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkNhcHR1cmVGYWN0b3J5KiBhdWRpb0ZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRmFj
dG9yeTsgfQorICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkmKTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBh
dWRpb0ZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRmFjdG9yeTsgfQogCi0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2Fw
dHVyZUZhY3RvcnkmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0VmlkZW9GYWN0b3J5
KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIHZpZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1f
dmlkZW9GYWN0b3J5OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0ZhY3Rvcnko
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgdW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9D
YXB0dXJlRmFjdG9yeSYpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZh
Y3RvcnkqIHZpZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5OyB9CiAK
ICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0QXVkaW9DYXB0dXJlRGV2
aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIENhcHR1cmVEZXZp
Y2VNYW5hZ2VyKiBkZWZhdWx0VmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51
bGxwdHI7IH0KQEAgLTk0LDggKzk0LDggQEAgcHJvdGVjdGVkOgogICAgIHN0YXRpYyBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyJiBwbGF0Zm9ybUNlbnRlcigpOwogICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOwogCi0gICAg
UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIG1fYXVkaW9GYWN0b3J5IHsgbnVs
bHB0ciB9OwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBtX3ZpZGVv
RmFjdG9yeSB7IG51bGxwdHIgfTsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1
cmVGYWN0b3J5KiBtX2F1ZGlvRmFjdG9yeSB7IG51bGxwdHIgfTsKKyAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBtX3ZpZGVvRmFjdG9yeSB7IG51bGxwdHIgfTsK
IAogICAgIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBtX2F1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIg
eyBudWxscHRyIH07CiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIG1fdmlkZW9DYXB0dXJlRGV2
aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgKaW5kZXgg
NmM4MzYyZmU4ZTg0NTYxMWUzZjVjODVjMTE1YTJmZTI3YmQ4NzA5NS4uNzk4OGMxZTI5YTQzZjU1
ODRiNGJiNWQwNzZjZjlkMTBhMmNjNGNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmgK
QEAgLTQ0LDkgKzQ0LDkgQEAgY2xhc3MgV2ViQXVkaW9Tb3VyY2VQcm92aWRlckFWRk9iakM7CiBj
bGFzcyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7
CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBjcmVh
dGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyosIFN0cmluZyYpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVh
dGUoQVZDYXB0dXJlRGV2aWNlKiwgY29uc3QgQXRvbWljU3RyaW5nJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBm
YWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3Rvcnkm
IGZhY3RvcnkoKTsKIAogcHJpdmF0ZToKICAgICBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShBVkNhcHR1
cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJj
ZS5tbQppbmRleCA2ZGIxYzc1ZjIwZmNlOTYwNjllNzM2ZTIyYzRjNzY4NGIzMWZmNDhkLi42ZTU5
ZDJlMjkwZWZkZmRmYmE3N2NkOGM4NDFkZWIwMzFhZWMxOWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0
dXJlU291cmNlLm1tCkBAIC03NywzMCArNzcsMjcgQEAgU09GVF9MSU5LX1BPSU5URVIoQVZGb3Vu
ZGF0aW9uLCBBVk1lZGlhVHlwZUF1ZGlvLCBOU1N0cmluZyAqKQogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBBVkF1ZGlvQ2FwdHVyZVNvdXJj
ZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9y
eSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmlj
ZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBmaW5hbCB7CisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7
CiAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNhcHR1cmVE
ZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2VJRF07Ci0gICAgICAgIEFTU0VS
VF9VTlVTRUQodHlwZSwgIWRldmljZSB8fCAoZGV2aWNlICYmIHR5cGUgPT0gQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZTo6QXVkaW8pKTsKLSAgICAgICAgcmV0dXJuIGRldmljZSA/IEFWQXVkaW9D
YXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBlbXB0eVN0cmluZygpLCBjb25zdHJhaW50cywg
aW52YWxpZENvbnN0cmFpbnQpIDogbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIGRldmljZSA/IEFW
QXVkaW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBlbXB0eVN0cmluZygpLCBjb25zdHJh
aW50cykgOiBDYXB0dXJlU291cmNlT3JFcnJvcigpOwogICAgIH0KIH07CiAKLVJlZlB0cjxBVk1l
ZGlhQ2FwdHVyZVNvdXJjZT4gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVE
ZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVE
ZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
bmV3IEFWQXVkaW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgQVZBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwogICAgIGlm
IChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAg
ICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAg
c291cmNlID0gbnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIFN0cmluZyhyZXN1bHQudmFsdWUoKS5maXJzdCk7CiAgICAgfQogCi0gICAg
cmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShz
b3VyY2UpKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIEFWQXVk
aW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2Fw
dHVyZUZhY3RvcnkmIEFWQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKIHsKICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8QVZBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5PiBmYWN0b3J5Owog
ICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAppbmRl
eCBhODIxNTgwMTE5OGQ0YTg3YTAwMjMxNmQzNTFhZmVlMGRmMGZmNzQ1Li45NjVlYzYyMTBlY2M4
ZWIyMTVmNzY5ZDVmMGE3NmY2MzdkYjA4NjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2Uu
aApAQCAtMjMsMTIgKzIzLDEyIEBACiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgQVZW
aWRlb0NhcHR1cmVTb3VyY2VfaAotI2RlZmluZSBBVlZpZGVvQ2FwdHVyZVNvdXJjZV9oCisjcHJh
Z21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pICYmIFVTRShBVkZPVU5EQVRJT04p
CiAKICNpbmNsdWRlICJBVk1lZGlhQ2FwdHVyZVNvdXJjZS5oIgorI2luY2x1ZGUgIk9yaWVudGF0
aW9uTm90aWZlci5oIgogCiBPQkpDX0NMQVNTIENBTGF5ZXI7CiBPQkpDX0NMQVNTIEFWRnJhbWVS
YXRlUmFuZ2U7CkBAIC00MywxMSArNDMsMTEgQEAgY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3Jh
cGhpY3NDb250ZXh0OwogY2xhc3MgUGl4ZWxCdWZmZXJDb25mb3JtZXJDVjsKIAotY2xhc3MgQVZW
aWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgQVZNZWRpYUNhcHR1cmVTb3VyY2UgeworY2xhc3Mg
QVZWaWRlb0NhcHR1cmVTb3VyY2UgOiBwdWJsaWMgQVZNZWRpYUNhcHR1cmVTb3VyY2UsIHByaXZh
dGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotICAgIHN0YXRpYyBS
ZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7CisgICAg
c3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25z
dCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKLSAgICBXRUJDT1JF
X0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGF0aWMgVmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAgaW50MzJf
dCB3aWR0aCgpIGNvbnN0IHsgcmV0dXJuIG1fd2lkdGg7IH0KICAgICBpbnQzMl90IGhlaWdodCgp
IGNvbnN0IHsgcmV0dXJuIG1faGVpZ2h0OyB9CkBAIC02NiwxMiArNjYsMTcgQEAgcHJpdmF0ZToK
ICAgICBib29sIGFwcGx5RnJhbWVSYXRlKGRvdWJsZSkgZmluYWw7CiAgICAgYm9vbCBzZXRQcmVz
ZXQoTlNTdHJpbmcqKTsKIAorICAgIHZvaWQgbW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9u
Tm90aWZpZXImKSBmaW5hbDsKKwogICAgIE5TU3RyaW5nICpiZXN0U2Vzc2lvblByZXNldEZvclZp
ZGVvRGltZW5zaW9ucyhzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQpIGNvbnN0OwogICAgIGJvb2wgc3VwcG9ydHNTaXplQW5kRnJhbWVSYXRlKHN0ZDo6
b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjpvcHRpb25hbDxpbnQ+IGhlaWdodCwgc3RkOjpvcHRp
b25hbDxkb3VibGU+KSBmaW5hbDsKIAogICAgIHZvaWQgaW5pdGlhbGl6ZUNhcGFiaWxpdGllcyhS
ZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJikgZmluYWw7CiAgICAgdm9pZCBpbml0aWFs
aXplU3VwcG9ydGVkQ29uc3RyYWludHMoUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0
cmFpbnRzJikgZmluYWw7CiAKKyAgICAvLyBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciBB
UEkKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pIGZpbmFsOwor
CiAgICAgYm9vbCBzZXRGcmFtZVJhdGVDb25zdHJhaW50KGRvdWJsZSBtaW5GcmFtZVJhdGUsIGRv
dWJsZSBtYXhGcmFtZVJhdGUpOwogCiAgICAgYm9vbCB1cGRhdGVGcmFtZXJhdGUoQ01TYW1wbGVC
dWZmZXJSZWYpOwpAQCAtOTAsMTAgKzk1LDkgQEAgcHJpdmF0ZToKICAgICBGbG9hdDY0IG1fZnJh
bWVSYXRlIHsgMCB9OwogICAgIGludDMyX3QgbV93aWR0aCB7IDAgfTsKICAgICBpbnQzMl90IG1f
aGVpZ2h0IHsgMCB9OworICAgIE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uIG1fZGV2aWNlT3Jp
ZW50YXRpb24geyBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZSB9OwogfTsKIAogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKLQot
I2VuZGlmIC8vIEFWVmlkZW9DYXB0dXJlU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbSBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJj
ZS5tbQppbmRleCA4ODEzMWI4ZGIwN2NhZjdmODAzZDEzYWY1MjQ5OWFhODUwYzFkODk0Li5hY2Iw
OGQ5ODczZjZhM2M3NDEwYzM4MmNkYzUxZjc5N2RhZGVjY2MwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0K
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCkBAIC0xMDksMzAgKzEwOSwyOSBAQCBjb25zdCBPU1R5cGUgdmlkZW9DYXB0
dXJlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhQbGFuYXI7CiBjb25zdCBP
U1R5cGUgdmlkZW9DYXB0dXJlRm9ybWF0ID0ga0NWUGl4ZWxGb3JtYXRUeXBlXzQyMFlwQ2JDcjhC
aVBsYW5hckZ1bGxSYW5nZTsKICNlbmRpZgogCi1jbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZUZh
Y3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xh
c3MgQVZWaWRlb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBl
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29u
c3RyYWludCkgZmluYWwgeworICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2Fw
dHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwgewogICAgICAgICBBVkNhcHR1cmVEZXZpY2VUeXBlZGVmICpk
ZXZpY2UgPSBbZ2V0QVZDYXB0dXJlRGV2aWNlQ2xhc3MoKSBkZXZpY2VXaXRoVW5pcXVlSUQ6ZGV2
aWNlSURdOwotICAgICAgICBBU1NFUlRfVU5VU0VEKHR5cGUsICFkZXZpY2UgfHwgKHR5cGUgPT0g
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8pKTsKLSAgICAgICAgcmV0dXJuIGRldmlj
ZSA/IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjcmVhdGUoZGV2aWNlLCBlbXB0eVN0cmluZygpLCBj
b25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpIDogbnVsbHB0cjsKKyAgICAgICAgaWYgKCFk
ZXZpY2UpCisgICAgICAgICAgICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzKTsK
ICAgICB9CiB9OwogCi1SZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IEFWVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5n
JiBpbnZhbGlkQ29uc3RyYWludCkKK0NhcHR1cmVTb3VyY2VPckVycm9yIEFWVmlkZW9DYXB0dXJl
U291cmNlOjpjcmVhdGUoQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiogZGV2aWNlLCBjb25zdCBBdG9t
aWNTdHJpbmcmIGlkLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBBVlZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2Us
IGlkKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IEFWVmlkZW9DYXB0dXJlU291
cmNlKGRldmljZSwgaWQpKTsKICAgICBpZiAoY29uc3RyYWludHMpIHsKICAgICAgICAgYXV0byBy
ZXN1bHQgPSBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKTsKLSAgICAgICAg
aWYgKHJlc3VsdCkgewotICAgICAgICAgICAgaW52YWxpZENvbnN0cmFpbnQgPSByZXN1bHQudmFs
dWUoKS5maXJzdDsKLSAgICAgICAgICAgIHNvdXJjZSA9IG51bGxwdHI7Ci0gICAgICAgIH0KKyAg
ICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdC52YWx1
ZSgpLmZpcnN0KTsKICAgICB9CiAKLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0
dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSYgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQorUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVlZpZGVvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CkBAIC0x
NDcsNiArMTQ2LDMxIEBAIEFWVmlkZW9DYXB0dXJlU291cmNlOjp+QVZWaWRlb0NhcHR1cmVTb3Vy
Y2UoKQogewogfQogCit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjptb25pdG9yT3JpZW50YXRp
b24oT3JpZW50YXRpb25Ob3RpZmllciYgbm90aWZpZXIpCit7CisgICAgbm90aWZpZXIuYWRkT2Jz
ZXJ2ZXIoKnRoaXMpOworfQorCit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpvcmllbnRhdGlv
bkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIHN3aXRjaCAob3JpZW50YXRpb24pIHsK
KyAgICBjYXNlIDA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSA5MDoKKyAgICAg
ICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdo
dDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAtOTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50
YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKKyAgICAgICAgYnJlYWs7
CisgICAgY2FzZSAxODA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKKyAgICAgICAgYnJlYWs7CisgICAgZGVmYXVs
dDoKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKwogc3RhdGljIHZvaWQgdXBkYXRlU2l6ZU1p
bk1heChpbnQmIG1pbiwgaW50JiBtYXgsIGludCB2YWx1ZSkKIHsKICAgICBtaW4gPSBzdGQ6Om1p
bjxpbnQ+KG1pbiwgdmFsdWUpOwpAQCAtNDYyLDIwICs0ODYsMjIgQEAgdm9pZCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4g
c2FtcGxlQnUKICAgICAgICAgYnJlYWs7CiAgICAgfQogI2VuZGlmCisgICAgYm9vbCBzaG91bGRT
d2l0Y2hXaWR0aEFuZEhlaWdodCA9IGZhbHNlOworICAgIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgJiYgbV9kZXZpY2VPcmllbnRhdGlvbiAhPSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCisgICAgICAgIHNob3VsZFN3aXRjaFdpZHRo
QW5kSGVpZ2h0ID0gdHJ1ZTsKKyAgICBlbHNlIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6TGVmdCAmJiBtX2RldmljZU9yaWVudGF0aW9uICE9IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpMZWZ0KQorICAgICAgICBzaG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdo
dCA9IHRydWU7CiAKLSAgICBib29sIHNldHRpbmdzQ2hhbmdlZCA9IGZhbHNlOwogICAgIENNVmlk
ZW9EaW1lbnNpb25zIGRpbWVuc2lvbnMgPSBDTVZpZGVvRm9ybWF0RGVzY3JpcHRpb25HZXREaW1l
bnNpb25zKGZvcm1hdERlc2NyaXB0aW9uKTsKLSAgICBpZiAocm90YXRpb24gPT0gTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246OlJpZ2h0IHx8IHJvdGF0aW9uID09IE1lZGlhU2FtcGxlOjpWaWRl
b1JvdGF0aW9uOjpMZWZ0KQorICAgIGlmIChzaG91bGRTd2l0Y2hXaWR0aEFuZEhlaWdodCkKICAg
ICAgICAgc3RkOjpzd2FwKGRpbWVuc2lvbnMud2lkdGgsIGRpbWVuc2lvbnMuaGVpZ2h0KTsKIAog
ICAgIGlmIChkaW1lbnNpb25zLndpZHRoICE9IG1fd2lkdGggfHwgZGltZW5zaW9ucy5oZWlnaHQg
IT0gbV9oZWlnaHQpIHsKICAgICAgICAgbV93aWR0aCA9IGRpbWVuc2lvbnMud2lkdGg7CiAgICAg
ICAgIG1faGVpZ2h0ID0gZGltZW5zaW9ucy5oZWlnaHQ7Ci0gICAgICAgIHNldHRpbmdzQ2hhbmdl
ZCA9IHRydWU7Ci0gICAgfQogCi0gICAgaWYgKHNldHRpbmdzQ2hhbmdlZCkKICAgICAgICAgc2V0
dGluZ3NEaWRDaGFuZ2UoKTsKKyAgICB9CiAKICAgICB2aWRlb1NhbXBsZUF2YWlsYWJsZShNZWRp
YVNhbXBsZUFWRk9iakM6OmNyZWF0ZShtX2J1ZmZlci5nZXQoKSwgcm90YXRpb24sIFtjb25uZWN0
aW9uIGlzVmlkZW9NaXJyb3JlZF0pKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmNwcAppbmRleCA4ZjI0YzYzMDA5ZWJkYzljYzQxZTFhYmM1ZGVhMWExN2UxNGJmNzU5Li4zOTM5
Y2E2MzA5MTRlNzAwYTUxYjA1NTJkYTk2ZTM1OGQzYzJiZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00Niw0NSArNDYsMzkgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCi1jbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBDb3JlQXVkaW9DYXB0dXJl
U291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVG
YWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsK
LSAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwg
dHlwZSwgY29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KTsKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKKyAgICAgICAgcmV0
dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgY29uc3RyYWludHMp
OwogICAgIH0KIH07CiAKIGNvbnN0IFVJbnQzMiBvdXRwdXRCdXMgPSAwOwogY29uc3QgVUludDMy
IGlucHV0QnVzID0gMTsKIAotUmVmUHRyPENvcmVBdWRpb0NhcHR1cmVTb3VyY2U+IENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGlmICh0eXBlICE9IENhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAg
IFN0cmluZyBsYWJlbDsKICAgICB1aW50MzJfdCBwZXJzaXN0ZW50SUQgPSAwOwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2Vy
OjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAo
IWRldmljZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAK
ICAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwoKTsKICAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2Ut
PmRldmljZUlEKCk7CiAjZW5kaWYKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CisgICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNl
SUQsIGxhYmVsLCBwZXJzaXN0ZW50SUQpKTsKIAogICAgIGlmIChjb25zdHJhaW50cykgewogICAg
ICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMp
OwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9
IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAg
ICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJl
c3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9Ci0KLSAgICByZXR1cm4gc291cmNlOworICAgIHJl
dHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFj
dG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBDb3JlQXVk
aW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8
Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3Rv
cnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAyMzVkNWEzMTRk
YzJhYzgxMmQ3MmJmODg0OWI2ZTYxYmQ3OWJjNGRkLi4xM2Y0MTZjZTEyMDUyMzc5NmQ2Y2EyNTI0
NzA0MmI5YmMyMjk2Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUz
LDkgKzUzLDkgQEAgY2xhc3MgQ2FwdHVyZURldmljZUluZm87CiBjbGFzcyBDb3JlQXVkaW9DYXB0
dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAg
c3RhdGljIFJlZlB0cjxDb3JlQXVkaW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyosIFN0cmluZyYpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAg
V0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAg
IHZvaWQgYWRkRWNob0NhbmNlbGxhdGlvblNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsK
ICAgICB2b2lkIHJlbW92ZUVjaG9DYW5jZWxsYXRpb25Tb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291
cmNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggY2U0
ZGFiYjM4ZWJlODg4OGYzY2MwMzdmZmY1M2FmYTc0YjBiOTIzOC4uYjBmMjgzYjFkYzc0MmRkMDlh
ZjY1MWQ3NzI1ZmNhYTY3MWM4YWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZU1hYy5tbQpAQCAtODQsMTMgKzg0LDE0IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBh
bXBsaXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAg
ICB9CiB9CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBz
aG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJj
ZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxs
cHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmlu
ZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggNGQ1
MTQzZWMyOWJiMDdjMTIwZWIxMGU0MzEwNjVhMWZlODhhODZiYS4uOTU4MzdiMTFhNWM2ZDk3Zjg3
MmI2NTAwNTg4ODQxMDIwYWNhN2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLmgKQEAgLTI4LDEzICsyOCwxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZu
ZGVmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjX2gKLSNkZWZpbmUgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQog
CiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogCiB0eXBlZGVmIHN0cnVj
dCBfX0NWQnVmZmVyICpDVkJ1ZmZlclJlZjsKIHR5cGVkZWYgQ1ZCdWZmZXJSZWYgQ1ZJbWFnZUJ1
ZmZlclJlZjsKQEAgLTQzLDkgKzQzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVy
UG9vbCAqQ1ZQaXhlbEJ1ZmZlclBvb2xSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xh
c3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UgeworY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBw
dWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmll
cjo6T2JzZXJ2ZXIgewogcHVibGljOgotCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2VNYWMoKSB7IH0KIAogcHJpdmF0ZToKQEAgLTU5LDEzICs1OCwxNCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCBhcHBseVNpemUo
Y29uc3QgSW50U2l6ZSYpIGZpbmFsOwogCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50
IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAgIG11dGFibGUgUmV0YWluUHRyPENHSW1hZ2VSZWY+
IG1fcHJldmlld0ltYWdlOwogICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1f
cHJldmlld0xheWVyOwogICAgIG11dGFibGUgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVm
PiBtX2J1ZmZlclBvb2w7CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9kZXZpY2VP
cmllbnRhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQot
Ci0jZW5kaWYgLy8gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGJjNjgwYThlYWEzOGVjYzdlMjhhYzA5MjUy
MWZhZDc1M2VhZjNlNDcuLmJlNGJlMDBhZTQ5NTIwYWFlYzg2YzRjMjMxYTYzOTQ4Njg3ZTBlYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUwLDEzICs1
MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9TYW1w
bGVSYXRlID0gOTAwMDA7CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRz
ICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3Vy
Y2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsK
KyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAog
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNv
bnN0IFN0cmluZyYgbmFtZSkKQEAgLTE2MSw2ICsxNjIsMjcgQEAgYm9vbCBNb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZU1hYzo6YXBwbHlTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjphcHBseVNpemUobmV3U2l6ZSk7CiB9CiAKK3Zv
aWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3Jp
ZW50YXRpb24pCit7CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIG1fZGV2aWNlT3Jp
ZW50YXRpb24KKyAgICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSAwOgorICAgICAg
ICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7
CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgOTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRp
b24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgLTkwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246OkxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMTgwOgorICAg
ICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVw
c2lkZURvd247CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsK
KyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShN
RURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5j
cHAKaW5kZXggNmY0YmY2MTAxNTAyYzdhNDA1YWI1Y2ZiMTI3MWVjOGY1MzM3MzUyYy4uNWMyNjA1
MDI2NTU3MDg0ZGNhMTRkMTZjYWNhZDE4ZDFiOWU3ZmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJN
YWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtMTM2LDE5ICsxMzYsMjEgQEAgdm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0
cmVhbUhhbmRsZXIgY29tcGwKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBp
ZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0eSgpICYmIG1fYXVkaW9GYWN0b3J5KSB7Ci0gICAgICAg
IGlmIChhdXRvIGF1ZGlvU291cmNlID0gbV9hdWRpb0ZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhhdWRpb0RldmljZUlELCBDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFp
bnQpKQotICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNl
Tm9uTnVsbCgpKTsKKyAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0b3J5LT5j
cmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoYXVkaW9EZXZpY2VJRCwgYXVkaW9Db25zdHJhaW50cyk7
CisgICAgICAgIGlmICghIWF1ZGlvU291cmNlKQorICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFw
cGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBp
ZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPRyhNZWRpYSwg
IlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVk
aW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGludmFsaWRDb25zdHJh
aW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoIWF1ZGlvU291cmNlLmVycm9yTWVzc2Fn
ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZhaWxl
ZCB0byBhcHBseTogJXMiLCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRh
dGEoKSk7CiAjZW5kaWYKICAgICB9CiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSAm
JiBtX3ZpZGVvRmFjdG9yeSkgewotICAgICAgICBpZiAoYXV0byB2aWRlb1NvdXJjZSA9IG1fdmlk
ZW9GYWN0b3J5LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModmlkZW9EZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8sIHZpZGVv
Q29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgIHZpZGVvU291cmNl
cy5hcHBlbmQodmlkZW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gdmlk
ZW9Tb3VyY2UgPSBtX3ZpZGVvRmFjdG9yeS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKHZpZGVv
RGV2aWNlSUQsIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICBpZiAoISF2aWRlb1NvdXJjZSkK
KyAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291cmNlKCkpOwog
I2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5
KCkpCi0gICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
OjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBs
eTogJXMiLCB0aGlzLCBpbnZhbGlkQ29uc3RyYWludC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAg
aWYgKCF2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgTE9H
KE1lZGlhLCAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0o
JXApLCB2aWRlbyBjb25zdHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywgdmlkZW9T
b3VyY2UuZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0x
ODcsMTIgKzE4OSwxOCBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgICAgICBpZiAoIWNh
cHR1cmVEZXZpY2UuZW5hYmxlZCgpIHx8IGNhcHR1cmVEZXZpY2UudHlwZSgpICE9IGRldmljZVR5
cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSogZmFjdG9yeSA9IHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VHlwZTo6VmlkZW8gPyBtX3ZpZGVvRmFjdG9yeSA6IG1fYXVkaW9GYWN0b3J5OwotICAgICAgICBp
ZiAoIWZhY3RvcnkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYgbV92aWRlb0ZhY3RvcnkpCisgICAgICAgICAgICBzb3Vy
Y2VPckVycm9yID0gbV92aWRlb0ZhY3RvcnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0
dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpLCAmY29uc3RyYWludHMpOworICAgICAgICBlbHNlIGlm
ICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYmIG1fYXVkaW9GYWN0
b3J5KQorICAgICAgICAgICAgc291cmNlT3JFcnJvciA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFp
bnRzKTsKIAotICAgICAgICBpZiAoYXV0byBjYXB0dXJlU291cmNlID0gZmFjdG9yeS0+Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNhcHR1cmVEZXZpY2Uu
cGVyc2lzdGVudElkKCksIGRldmljZVR5cGUsICZjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFp
bnQpKQotICAgICAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1Jl
ZigpKTsKKyAgICAgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgICAgICAvLyBGSVhN
RTogSGFuZGxlIHRoZSBjYXNlIG9mIGludmFsaWQgY29uc3RyYWludHMgb24gbW9yZSB0aGFuIG9u
ZSBkZXZpY2UuCisgICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IFdURk1vdmUoc291cmNl
T3JFcnJvci5lcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0K
KyAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAg
IH0KIAogICAgIFZlY3RvcjxTdHJpbmc+IHNvdXJjZVVJRHM7CkBAIC0yMDcsMTIgKzIxNSwxMiBA
QCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNl
c0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgIHJldHVybiBzb3VyY2VVSURzOwogfQogCi1S
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYzo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b0NhcHR1cmVGYWN0b3J5KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVk
aW9GYWN0b3J5KCkKIHsKICAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3Rv
cnkoKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yzo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6ZmFjdG9yeSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmgKaW5kZXggMWJmNDk3ZmQ2ZDdjM2MxNjZmZGE4MmRlYTJiMTMxYjEzYzhhNDQ4NC4uZmYx
Zjg5N2JiZWRlOTlhNDQwNTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCkBAIC01NCw4ICs1NCw4IEBAIHByaXZhdGU6CiAK
ICAgICBWZWN0b3I8U3RyaW5nPiBiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiBp
bnZhbGlkQ29uc3RyYWludCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFj
dG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9y
eSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3Rvcnkq
IGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53
ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJP
d3IuY3BwCmluZGV4IDZlYzhlOGIwNTNhMTIwOTE0MmRkY2UzMzFkMzhjMGFlYTE3YmRiOGIuLjBm
NjRkZTQzN2Y0MTRhYTZiMGQxOWI4ODRlMjQ3NmU5NDhlN2ZhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck93ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApAQCAtMTAwLDcg
KzEwMCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6dmFsaWRhdGVSZXF1
ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhCiAgICAgbV9pbnZhbGlkQ29uc3RyYWlu
dHNIYW5kbGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
T3dyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcGxldGlvbkhh
bmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0Rl
dmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyop
Cit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5l
d01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1
ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyosIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKQogewogICAgIGludCB0eXBlcyA9IE9X
Ul9NRURJQV9UWVBFX1VOS05PV047CiAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFu
ZGxlciBjb21wbAogICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpCiAgICAgICAgIHR5
cGVzIHw9IE9XUl9NRURJQV9UWVBFX1ZJREVPOwogCi0gICAgbV9jb21wbGV0aW9uSGFuZGxlciA9
IGNvbXBsZXRpb25IYW5kbGVyOworICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKTsKIAogICAgIG93cl9nZXRfY2FwdHVyZV9zb3VyY2VzKHN0YXRpY19j
YXN0PE93ck1lZGlhVHlwZT4odHlwZXMpLCBtZWRpYVNvdXJjZXNBdmFpbGFibGVDYWxsYmFjaywg
dGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck93ci5oCmluZGV4IDZjZGQ3ZDVmZTBjNGE4MjgyZDQxMDM3NGVkNGY3MmM3ODFmZDliMTYu
LmIzODcwYzEyZGNiNWRkNjY3ZTRjYjMwM2U0ODA4YzAyODVjYWIyNGMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCkBAIC01Niw3ICs1
Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFs
aWRDb25zdHJhaW50c0hhbmRsZXIgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5k
bGVyIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFp
bnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5hbDsKIAot
ICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7CisgICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShO
ZXdNZWRpYVN0cmVhbUhhbmRsZXImJiwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25z
dCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIHZpZGVvQ29u
c3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGF1ZGlvQ29uc3RyYWludHMpIGZpbmFs
OwogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZp
bmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDQwNzg4ZDdlYTUzNGJmOTU3ODliMWZlZjc5NTMy
NjVlNmE0ZDlmNDguLmM0MDA1ZWRmMTg4MWQ4NWJkYTkwOTlmMjcwZTE4ZDMwNzg1NDEyZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UuY3BwCkBAIC00MSwyOSArNDEsMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUg
ewogCi1jbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJikgZmluYWwgewotICAgICAgICBpZiAodHlwZSAh
PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHJldHVybiBu
dWxscHRyOwotCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291
cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpKSB7CiAgICAgICAgICAgICBpZiAoZGV2aWNlLnBl
cnNpc3RlbnRJZCgpID09IGRldmljZUlEKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CiAg
ICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsK
ICAgICB9CiB9OwogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKLVJlZlB0
cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
KG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2UobmFtZSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29u
c3RyYWludHMoKmNvbnN0cmFpbnRzKSkKLSAgICAgICAgc291cmNlID0gbnVsbHB0cjsKKyAgICAg
ICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVT
b3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNvbnN0IFN0
cmluZyYgbmFtZSkKQEAgLTc0LDcgKzcwLDcgQEAgUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291
cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW4KIH0K
ICNlbmRpZgogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0
dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rvcnk+IGZhY3Rv
cnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggMTMzMWM3OTE4
MTQ0ZTZlOTZmYzJhZjQyNTdiZmMyZTcxZmNkOGU2Ny4uMzY0NTIyYjEzZjcwNGU5MDg5YmFmODY1
ZjliNmI5ODZkYjIzMTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9j
ay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTAgKzQyLDEwIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8TW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNv
bnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25z
dCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGljIFJlZlB0cjxN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsK
IAotICAgIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0YXRpYyBBdWRp
b0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZSgpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRl
eCBiZDc0ODg2MDYyYTEzNWZiODJkNTcyZmRhYzFjYTYxZTlhNjZiZjEwLi42OGU2NmEyNWJiMDI0
NzQzNDI2MzI5MTI0YmI4ZjNhMTFiNWI4MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNw
cApAQCAtODcsOSArODcsOSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2
YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAgIGlmIChhdWRp
b0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2
aWNlSW5mbzsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8gYXVkaW9Tb3Vy
Y2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxs
cHRyKTsKLSAgICAgICAgICAgIGlmIChhdWRpb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhh
dWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgZGV2
aWNlSW5mby5hcHBlbmQoe2F1ZGlvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNp
c3RlbnRJZCgpfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAg
ICAgIGlmICghIXNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5z
dXBwb3J0c0NvbnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkK
KyAgICAgICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJl
U291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAgICAgICAg
IH0KIAogICAgICAgICBpZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEwNyw5ICsxMDcs
OSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RD
b25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlz
VmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKICAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlk
ZW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAg
ICAgIGlmICh2aWRlb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRz
LCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQo
e3ZpZGVvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7Cisg
ICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VP
ckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50
cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAgICAgICAgICAg
ZGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Nj
b3JlKCksIGRldmljZS5wZXJzaXN0ZW50SWQoKX0pOwogICAgICAgICB9CiAKICAgICAgICAgaWYg
KGRldmljZUluZm8uaXNFbXB0eSgpKSB7CkBAIC0xMzUsMjYgKzEzNSwyNiBAQCB2b2lkIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXIgY29tcAogICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKICAgICAg
ICAgYXV0byYgYXVkaW9EZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2
aWNlcygpOwogICAgICAgICBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0RldmljZXNbMF0ucGVy
c2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lQXVk
aW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50
cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIGF1ZGlvU291cmNl
cy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3Vy
Y2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNb
MF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VP
ckVycm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJv
ci5zb3VyY2UoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0Rl
dmljZXNbMV0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVk
aW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAg
IGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAg
ICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShh
dWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBp
ZiAoISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQo
c291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIXZp
ZGVvRGV2aWNlSUQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8mIHZpZGVvRGV2aWNlcyA9IE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKTsKICAgICAgICAgaWYgKHZpZGVv
RGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzBdLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAgICAgICAg
ICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZp
Y2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAgICAgaWYgKHNvdXJj
ZSkKLSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9u
TnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWlu
dHMpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAgICAgICAgICAgICB2
aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgICAgICB9IGVs
c2UgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzFdLnBlcnNpc3RlbnRJZCgpKSB7
Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAg
ICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJj
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCksIHZp
ZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAg
ICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwog
ICAgICAgICB9CiAgICAgfQogCkBAIC0xNzQsMTIgKzE3NCwxMiBAQCBWZWN0b3I8Q2FwdHVyZURl
dmljZT4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3RyZWFtRGV2aWNl
cygpCiAgICAgcmV0dXJuIHNvdXJjZXM7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1
cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFj
dG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7CiAgICAgcmV0
dXJuICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpOwogfQogCi1SZWFsdGltZU1l
ZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJl
RmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRlb0ZhY3Rv
cnkoKQogewogICAgIHJldHVybiAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCBjZGU2NTBmYjIxZTFlZTI2NmFlNWI5Mjk1
NzIwMTE5MjVkMTliMWRlLi5lODQxNDIyMjFjYTM4MzA3OWZhNDg2NmIwYWNhYTE5ZmU1NGFhYTFl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC00NSw4ICs0NSw4IEBAIHByaXZhdGU6CiAg
ICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZpbmFsOwog
ICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogdmlkZW9Db25zdHJhaW50cykgZmluYWw7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1
ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVy
ZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5jcHAKaW5kZXggMmU2NjQyMmU4ZTJmYjljZjQ5N2I3MzAxOTQ2MmFjMGYxMDdkZjIwMy4uZWFh
ZGRlYmFjZGIxNjA1ZTdlZmFiZjk5YWIwZjhhNmIxMTJjYTA4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAK
QEAgLTQ4LDI5ICs0OCwyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSB7CitjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3RvcnkgOiBw
dWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6
Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2Fw
dHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzLCBTdHJpbmcmKSBmaW5hbCB7Ci0gICAgICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGU6OlZpZGVvKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KKyAgICBD
YXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsK
ICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlk
ZW9EZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2UucGVyc2lzdGVudElkKCkgPT0g
ZGV2aWNlSUQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKICAgICAgICAgfQotCi0gICAg
ICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIH07CiAKICNp
ZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQotUmVmUHRyPE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYg
bmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNl
T3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFt
ZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgYXV0byBzb3Vy
Y2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UobmFtZSkpOwogICAgIGlm
IChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkK
LSAgICAgICAgc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJl
dHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291
cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTgxLDcgKzc3
LDcgQEAgUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW4KIH0KICNlbmRpZgogCi1SZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3Rvcnko
KQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3Rvcnku
Z2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFs
dGltZVZpZGVvU291cmNlLmgKaW5kZXggZDc5OTg1ZTcxYWMyZGUyMDQ4Y2Y2Y2EzYmI5YmNkZDdi
NGUwOTMwNC4uYWE2MGVjN2U1ZjM4MzFjZjBjMjdmZDhmMTA3MTEzYjAwMmQyOTYwOSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UuaApAQCAtNDYsMTAgKzQ2LDEwIEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNz
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlIDogcHVibGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
IHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+
IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3Rh
dGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHN0YXRpYyBDYXB0dXJl
RmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0
b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSgpIHsgfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vz
c2lvbkNvY29hLm1tIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29y
a1Nlc3Npb25Db2NvYS5tbQppbmRleCBkMTM1YWZlZTAxMDE0MGRkMDlkZDIyODk3NDBkN2QwOGVi
NWMyMzJhLi42NGYzOWVjNDY5NWRkZjA5NzNmNmE2OWU5ZmE0NzZiNzk0NGEwNTk4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtT
ZXNzaW9uQ29jb2EubW0KQEAgLTYwNCw2ICs2MDQsNyBAQCBOZXR3b3JrU2Vzc2lvbkNvY29hOjpO
ZXR3b3JrU2Vzc2lvbkNvY29hKFdlYkNvcmU6OlNlc3Npb25JRCBzZXNzaW9uSUQsIExlZ2FjeUN1
cwogICAgIG1fc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZSA9IFtOU1VSTFNlc3Npb24gc2Vz
c2lvbldpdGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVsZWdhdGU6c3RhdGljX2Nhc3Q8
aWQ+KG1fc2Vzc2lvbldpdGhDcmVkZW50aWFsU3RvcmFnZURlbGVnYXRlLmdldCgpKSBkZWxlZ2F0
ZVF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV1dOwogCiAgICAgY29uZmlndXJhdGlv
bi5VUkxDcmVkZW50aWFsU3RvcmFnZSA9IG5pbDsKKyAgICBjb25maWd1cmF0aW9uLl9zaG91bGRT
a2lwUHJlZmVycmVkQ2xpZW50Q2VydGlmaWNhdGVMb29rdXAgPSBZRVM7CiAgICAgbV9zZXNzaW9u
V2l0aG91dENyZWRlbnRpYWxTdG9yYWdlRGVsZWdhdGUgPSBhZG9wdE5TKFtbV0tOZXR3b3JrU2Vz
c2lvbkRlbGVnYXRlIGFsbG9jXSBpbml0V2l0aE5ldHdvcmtTZXNzaW9uOip0aGlzIHdpdGhDcmVk
ZW50aWFsczpmYWxzZV0pOwogICAgIG1fc2Vzc2lvbldpdGhvdXRDcmVkZW50aWFsU3RvcmFnZSA9
IFtOU1VSTFNlc3Npb24gc2Vzc2lvbldpdGhDb25maWd1cmF0aW9uOmNvbmZpZ3VyYXRpb24gZGVs
ZWdhdGU6c3RhdGljX2Nhc3Q8aWQ+KG1fc2Vzc2lvbldpdGhvdXRDcmVkZW50aWFsU3RvcmFnZURl
bGVnYXRlLmdldCgpKSBkZWxlZ2F0ZVF1ZXVlOltOU09wZXJhdGlvblF1ZXVlIG1haW5RdWV1ZV1d
OwogICAgIExPRyhOZXR3b3JrU2Vzc2lvbiwgIkNyZWF0ZWQgTmV0d29ya1Nlc3Npb24gd2l0aCBj
b29raWVBY2NlcHRQb2xpY3kgJWx1IiwgY29uZmlndXJhdGlvbi5IVFRQQ29va2llU3RvcmFnZS5j
b29raWVBY2NlcHRQb2xpY3kpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dl
YkNvcmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCmluZGV4IGJmOGRkNzUzZjk3M2U3MjZjY2E0YzViMTU2OTNkNjY0YmFjYTIx
ZjEuLmQwN2JmM2VkZDEwNTEyMjFiOWZmMzViODhiZmQ5MDkwNjU4ZmM4OTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM0LDYgKzM0LDcg
QEAKICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8
V2ViQ29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRI
ZWFkZXJzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KIAogbmFtZXNwYWNlIFdURiB7
CkBAIC03MjIsNiArNzIzLDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZT4gewogICAgICAgICBXZWJDb3JlOjpDYXB0dXJl
RGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbwogICAgID47CiB9OwordGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlPiB7CisgICAgdXNp
bmcgdmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlLAorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmUsCisg
ICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sCisgICAgV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8KKyAgICA+OworfTsKICNlbmRpZgog
CiB0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0
aW9uOjpUeXBlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2Ev
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggODM4YWVmMTM1
ODhhNjc3NjdmMDgwODIwMzQ1NWJiNWM1MWNlOTA0ZC4uOWMzZGU3N2UyNWZjZThmMDY1MjlkMmI2
MDRlNTE1Yjc2M2UyOGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTI1
LDE0ICsxMjUsMjcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIo
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5h
bWUoKSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25z
dCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5
cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1
Y2NlZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit2b2lkIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzRGF0YSYg
Y29uc3RyYWludHNEYXRhLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnRzKQogeworICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgYXV0
byBjb25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVkaWFDb25zdHJh
aW50c0RhdGEoY29uc3RyYWludHNEYXRhKSk7Ci0gICAgYXV0byBzb3VyY2UgPSBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3RvcnkoKS0+Y3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGRldmljZUlELCB0eXBlLCBjb25z
dHJhaW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFpbnRzKTsKLSAgICBzdWNjZWVkZWQgPSAhIXNv
dXJjZTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCktPmNyZWF0ZUF1ZGlv
Q2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgY29uc3RyYWludHMucHRyKCkpOworICAgICAgICBicmVh
azsKKyAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgor
ICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xl
dG9uKCkudmlkZW9GYWN0b3J5KCktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwg
Y29uc3RyYWludHMucHRyKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOworICAgICAgICBicmVhazsKKyAgICB9CiAKLSAgICBpZiAoc291cmNlKQotICAgICAgICBt
X3Byb3hpZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMs
IHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgc3VjY2VlZGVkID0gISFzb3VyY2VPckVy
cm9yOworICAgIGlmIChzb3VyY2VPckVycm9yKQorICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBz
dGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZU9yRXJyb3Iuc291
cmNlKCkpKTsKKyAgICBlbHNlCisgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUo
c291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXJQcm94eS5oCmluZGV4IDBlNjM1MTgyZTI0M2NjNzdjMzQ4ZTA3NjZlZDNlYzVhYWRkMGYx
ODIuLjQxMzlkYjI0ZDQ3NTIwOWVjM2U3Y2QzY2JmN2JkODM0YTI3OGNiY2UgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAg
ICAgdm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNv
ZGVyJiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQg
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90
IGlkLCBjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2Nl
ZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHZvaWQgY3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBT
dHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25z
dCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5n
JiBpbnZhbGlkQ29uc3RyYWludHMpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIGNh
cGFiaWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxp
dGllcyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRl
eCA1MjdkZmE2NmE4NDZmNDdmZDA4MGQ1N2U3MTgzMzcxMjJkODFjODA4Li4xZmMwOTNlNWIzMDk2
ZjUxMGRkZThmZjRhY2U2NGZkMTQwMTNiN2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogIyBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkgewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50
cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25z
dHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykKKyAg
ICBDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0
X3QgaWQsIFN0cmluZyBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlw
ZSB0eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMp
IC0+IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCiAgICAgU3RhcnRQ
cm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cAppbmRleCBiMzFhYTE4ZTFiNjgyOTE0OTc1Nzk4ODEzOGM2ZDJmMGZlNmI0NGRjLi40ZDRmMDI2
MmZkOWIxMTgzYjgwNDM5MDk0ZTVmMzE0Y2YwNmU1NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNw
cApAQCAtMTgyLDEwICsxODIsMTAgQEAgdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5p
dGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXIKICAgICAgICAg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0
aGlzKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
Y29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3Ry
YWludHMpCitXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3Jl
OjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewogICAgIGlmICghY29uc3RyYWludHMpCi0g
ICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCiAgICAgdWludDY0
X3QgaWQgPSBuZXh0U2Vzc2lvbklEKCk7CiAgICAgTWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3Ry
YWludHNEYXRhOwpAQCAtMTk0LDI0ICsxOTQsMTMgQEAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmUK
ICAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxpZCA9IGNvbnN0cmFpbnRzLT5pc1ZhbGlkKCk7CiAg
ICAgYm9vbCBzdWNjZWVkZWQ7CiAKLSAgICBtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVz
ZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2aWNlSUQsIHR5cGUsIGNvbnN0cmFpbnRzRGF0YSks
IE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJj
ZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgaW52YWxp
ZENvbnN0cmFpbnRzKSwgMCk7Ci0KLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJj
ZVR5cGU7Ci0gICAgc3dpdGNoICh0eXBlKSB7Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpBdWRpbzoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvOwotICAgICAgICBicmVhazsKLSAgICBjYXNl
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvOgotICAgICAgICBzb3Vy
Y2VUeXBlID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87Ci0gICAg
ICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6
VW5rbm93bjoKLSAgICBkZWZhdWx0OgotICAgICAgICBzb3VyY2VUeXBlID0gV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAg
IGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZCksIHNv
dXJjZVR5cGUsIGVtcHR5U3RyaW5nKCksIGlkLCAqdGhpcykpOwotICAgIG1fc291cmNlcy5zZXQo
aWQsIHNvdXJjZSk7Ci0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdl
OworICAgIGlmICghbV9wcm9jZXNzLnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHMoaWQsIGRldmljZUlELCBzb3VyY2VUeXBlLCBjb25zdHJhaW50c0RhdGEpLCBNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSks
IDApKQorICAgICAgICByZXR1cm4gV1RGTW92ZShlcnJvck1lc3NhZ2UpOworCisgICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZCksIHNvdXJjZVR5
cGUsIGVtcHR5U3RyaW5nKCksIGlkLCAqdGhpcykpOworICAgIG1fc291cmNlcy5zZXQoaWQsIHNv
dXJjZS5jb3B5UmVmKCkpOworICAgIHJldHVybiBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJv
cihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpz
b3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCmluZGV4IDQ0NmRhOTkx
Y2E2Yzg4Yzg2MGZhNzE5NDVhZDhkNmY5ZTJlNGQ2N2YuLmE4YTkzYWJkZWU1ZThlZGM2ZDAyMTk4
YjUxMDY5NDljNWU0ODliNjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
Y29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAg
bmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBDcm9zc1Byb2Nlc3NSZWFsdGltZUF1ZGlvU291cmNl
OwogY2xhc3MgV2ViUHJvY2VzczsKIAotY2xhc3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBw
dWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQsIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwg
cHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2Ns
YXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50
LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5LCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2ViUHJvY2VzcyopOwogICAgIH5Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlcigpOwpAQCAtNTMsOCArNTMsMTAgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJQcm9j
ZXNzU3VwcGxlbWVudAogICAgIHZvaWQgaW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzJikgZmluYWw7CiAKLSAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291
cmNlOjpGYWN0b3J5OgotICAgIFJlZlB0cjxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3Qg
V2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpIGZpbmFsOworICAgIC8vIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFjdG9yaWVzCisgICAgV2ViQ29yZTo6Q2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNl
SUQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7
IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpUeXBlOjpBdWRpbywgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNlKGRldmljZUlELCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbywgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcm
IGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBXZWJD
b3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAKICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgog
ICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
JikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308470</attachid>
            <date>2017-04-27 16:16:47 -0700</date>
            <delta_ts>2017-04-27 16:22:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171284-20170427161646.patch</filename>
            <type>text/plain</type>
            <size>83933</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1NzY3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjAwMzY1MzEzOWMzOWM5
MDhlOWJiNDNjYmQyNzgzZGNjYjBmNjUxZS4uNTM4MzFiNDFjZTczNmVlODc4ZDkzZWI0ZTRhZTJh
NmM3ZTI2MjU2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE1hbnVhbGx5IHRlc3RpbmcgdGhlIGZvbGxvd2lu
ZyBjYXNlczoKKyAgICAgICAgLSBNYWM6IG5vIGNoYW5nZSBvZiBiZWhhdmlvcgorICAgICAgICAt
IGlPUzogcGFnZSBsb2FkZWQgaW4gcG9ydHJhaXQsIHZpZGVvIGlzIHBvcnRyYWl0LiBwYWdlIGxv
YWRlZCBpbiBsYW5kc2NhcGUsIHZpZGVvIGlzIGxhbmRzY2FwZQorICAgICAgICAtIGlPUzogY2hh
bmdpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBtYWtlcyB0aGUgdmlkZW8gc2FtcGxlcyB0byBi
ZSBtb3ZlZCB0byBsYW5kc2NhcGUvcG9ydHJhaXQuCisgICAgICAgIC0gU2FtZSB0ZXN0cyBhcyBh
Ym92ZSB3aXRoIHBlZXIgY29ubmVjdGlvbi4KKworICAgICAgICBNYWtpbmcgRG9jdW1lbnQgaGF2
aW5nIGFuIE9yaWVudGF0aW9uTm90aWZpZXIgdGhhdCBBVlZpZGVvQ2FwdHVyZVNvdXJjZXMgZ2V0
IHJlZ2lzdGVyZWQgdG8uCisgICAgICAgIE1ha2luZyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBhbiBP
cmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciBzbyB0aGF0IGl0IGNhbiBjaGFuZ2VzIHdpZHRo
L2hlaWdodCBpZiBuZWVkZWQuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gc3BlY2lhbGl6ZSBD
YXB0dXJlRmFjdG9yeSBpbiBWaWRlb0NhcHR1cmVGYWN0b3J5IGFuZCBBdWRpb0NhcHR1cmVGYWN0
b3J5LgorICAgICAgICBSZWZhY3RvcmluZyB0byByZXR1cm4gYSBDYXB0dXJlU291cmNlT3JFcnJv
ciBpbnN0ZWFkIG9mIHBhc3NpbmcgYW4gb3V0IHBhcmFtZXRlciBwbHVzIHJldHVybmluZyBhIFJl
ZlB0ci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b3JpZW50YXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL09yaWVudGF0aW9uTm90aWZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oLgorICAgICAg
ICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXI6OnNldE5vdGlmaWVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyOjp+T2JzZXJ2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6b3JpZW50YXRpb25D
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6OmFkZE9ic2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6OnJlbW92ZU9ic2Vy
dmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjptb25pdG9yT3JpZW50
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yOjpDYXB0dXJlU291cmNl
T3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6b3BlcmF0
b3IgYm9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6c291cmNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNl
dEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp1bnNldEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzZXRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRBdWRpb0ZhY3RvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdFZpZGVv
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjph
dWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZBdWRpb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNl
OjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjptb25pdG9yT3Jp
ZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6Om9yaWVu
dGF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
cHJvY2Vzc05ld0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6
OmNyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRBdWRpb0ZhY3Rv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdFZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFTdHJl
YW0pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVm
YXVsdFZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oOgorCiAyMDE3LTA0LTI1ICBTYWlkIEFib3UtSGFsbGF3YSAgPHNhYm91aGFsbGF3YUBhcHBs
ZS5jb20+CiAKICAgICAgICAgUmVzdHJpY3QgV2ViS2l0IGltYWdlIGZvcm1hdHMgdG8gYSBrbm93
biB3aGl0ZWxpc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyBiL1NvdXJj
ZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA4YTkwOWVkNzU5NDMwZmI4YmIwNTg5N2FmODI4NjA1
OWE1YTdkYWQzLi4yMjIxZjdkMjcxMjI2ZGM0YjFlZTVmNTg3ZjlmYzNiYjdhMGM0ZjI0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzMgQEAKKzIwMTctMDQtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBzdHJlYW1zIHNob3Vs
ZCBmb2xsb3cgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyODQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBzcGVjaWFsaXplIENhcHR1cmVGYWN0
b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1ZGlvQ2FwdHVyZUZhY3RvcnkuCisgICAg
ICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1cmVTb3VyY2VPckVycm9yIGluc3RlYWQg
b2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIGluIGFkZGl0aW9uIHRvIHJldHVybmluZyBhIFJl
ZlB0ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHA6Cisg
ICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlh
U291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6CisgICAgICAgICogVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3Vy
Y2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogRGVsZXRlZC4KKyAgICAg
ICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6CisKKzIwMTct
MDQtMjUgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVuYXV0
aGVudGljYXRlZCBDT1JTIHByZWZsaWdodCByZXF1ZXN0cyBzaG91bGQgbm90IHVzZSBjbGllbnQg
Y2VydGlmaWNhdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xNzEyOTgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EpOiBF
bnN1cmluZyB0aGF0IHNlc3Npb24gZGVkaWNhdGVkIHRvIHJlcXVlc3RzIHRoYXQgZG8gbm90IHdh
bnQgdG8gdXNlIGNyZWRlbnRpYWxzIGRvIG5vdCBsb29rIGZvciBjbGllbnQgY3JlZGVudGlhbHMu
CisKIDIwMTctMDQtMjUgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAg
ICAgIFtDb2NvYV1bV2luXSBFbmFibGUgb2YgWC1Db250ZW50LVR5cGUtT3B0aW9uczogbm9zbmlm
ZiBoZWFkZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0v
VXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFt
L1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDZlYjQxOTQxYTcyNDVhMjE2ZDcwODQ0NjQ5NTYz
ZjYwZThmOGM2NTYuLjRkMmJmYmM2NTI1MTBmYmRkY2U3Mjc0YmRjZThkNjU4OTBmOTlkNWIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVx
dWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVk
aWFSZXF1ZXN0LmNwcApAQCAtMTY3LDYgKzE2Nyw3IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6
YWxsb3coY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0Rl
CiAgICAgICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVycm9y
LCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAg
ICBwcml2YXRlU3RyZWFtLT5tb25pdG9yT3JpZW50YXRpb24oZG93bmNhc3Q8RG9jdW1lbnQ+KG1f
c2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPm9yaWVudGF0aW9uTm90aWZpZXIoKSk7CiAKICAgICAg
ICAgYXV0byBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4ZWN1dGlvbkNv
bnRleHQsIHByaXZhdGVTdHJlYW0ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGlmIChzdHJl
YW0tPmdldFRyYWNrcygpLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
V2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDFmNTViMWQ0Nzk3ZDdjZDNiNGMxMWRi
NGZhMWE5NjBkYmVmMDBjZDEuLjFjYTkzOTU2YTFiOTllMWFlNDM2NjFmMmM5ZGNlZTI4MWJhNmU5
M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKQEAgLTE3NTUsNiArMTc1NSw3IEBACiAJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAv
KiBXZWJDb3JlVGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxODE1QzFEMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBv
cnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
MTgyMDU0NzFFNTNFOThDMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3
IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk0MTgyMDU0OTFFNTNFQUIwMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0
ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi87IH07CisJCTQxODRGNTE2
MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAv
KiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Np
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1
QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNC
QiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24u
Y3BwICovOyB9OwogCQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVy
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZD
RTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87IH07CkBAIC05MzY3LDYg
KzkzNjgsNyBAQAogCQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBw
b3J0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0
U3VwcG9ydC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MjA1NDUx
RTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQk0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0
aW9uTm90aWZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBPcmllbnRhdGlv
bk5vdGlmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRB
NjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZvcm1TdWJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
ODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3Bh
dGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk3Miw2ICsyMzk3NCw3IEBACiAJ
CQkJQkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJ
CQlFMTUxM0Q1MDE2NzdGMDg4MDAxNDlGQ0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLAogCQkJ
CTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICovLAorCQkJCTQx
ODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLywKIAkJCQk0
QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovLAogCQkJCUM1Rjc2NUI0
MTRFMUQ0MTQwMDZDODk5QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCAqLywKIAkJCQkxQUY1RTRE
MjFFNTY3MzVBMDA0QTFGMDEgLyogUGFzdGVib2FyZFdyaXRlckRhdGEuY3BwICovLApAQCAtMjk1
OTcsNiArMjk2MDAsNyBAQAogCQkJCTA4MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0
TGF5b3V0RW5naW5lLmggaW4gSGVhZGVycyAqLywKIAkJCQlDMkUzOEVGRTFFODM5NkZEMDBDQTNB
REYgLyogQ1NTRm9udFN0eWxlVmFsdWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI2MTI1
NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBIZWFkZXJz
ICovLAorCQkJCTQxODRGNTE2MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0
TGF5b3V0RW5naW5lU3BhY2luZy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUz
QzAwMDc1MTg1IC8qIFNWR1RleHRNZXRyaWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1
OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAq
LywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDNhY2Q1ZTliMTc1ZTViMjllZTM0ZmI5NmM4
MjgwOTkyMjQ3NGVlMmMuLmRjYmZmYTQzMzUwNDY4YWEyZDdiNmQzZWQ0ZmZhNjAzY2QzZjFjYTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtNDMzLDYgKzQzMywxNyBAQCBIYXNoU2V0PERv
Y3VtZW50Kj4mIERvY3VtZW50OjphbGxEb2N1bWVudHMoKQogICAgIHJldHVybiBkb2N1bWVudHM7
CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50IGN1cnJlbnRPcmllbnRhdGlvbihGcmFtZSogZnJhbWUp
Cit7CisjaWYgRU5BQkxFKE9SSUVOVEFUSU9OX0VWRU5UUykKKyAgICBpZiAoZnJhbWUpCisgICAg
ICAgIHJldHVybiBmcmFtZS0+b3JpZW50YXRpb24oKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KGZyYW1lKTsKKyNlbmRpZgorICAgIHJldHVybiAwOworfQorCiBEb2N1bWVudDo6RG9jdW1lbnQo
RnJhbWUqIGZyYW1lLCBjb25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1
bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFncykKICAgICA6IENvbnRhaW5lck5vZGUoKnRoaXMsIENy
ZWF0ZURvY3VtZW50KQogICAgICwgVHJlZVNjb3BlKCp0aGlzKQpAQCAtNDgzLDYgKzQ5NCw3IEBA
IERvY3VtZW50OjpEb2N1bWVudChGcmFtZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25l
ZCBkb2N1bWVudENsYXNzZXMsIHVuc2lnCiAjZW5kaWYKICAgICAsIG1faXNTeW50aGVzaXplZChj
b25zdHJ1Y3Rpb25GbGFncyAmIFN5bnRoZXNpemVkKQogICAgICwgbV9pc05vblJlbmRlcmVkUGxh
Y2Vob2xkZXIoY29uc3RydWN0aW9uRmxhZ3MgJiBOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQorICAg
ICwgbV9vcmllbnRhdGlvbk5vdGlmaWVyKGN1cnJlbnRPcmllbnRhdGlvbihmcmFtZSkpCiB7CiAg
ICAgYWxsRG9jdW1lbnRzKCkuYWRkKHRoaXMpOwogCkBAIC02OTU0LDQgKzY5NjYsMTAgQEAgdm9p
ZCBEb2N1bWVudDo6ZGlkUmVtb3ZlSW5Eb2N1bWVudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgc2hh
ZG93Um9vdCkKICAgICBtX2luRG9jdW1lbnRTaGFkb3dSb290cy5yZW1vdmUoJnNoYWRvd1Jvb3Qp
OwogfQogCit2b2lkIERvY3VtZW50OjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9u
KQoreworICAgIGRpc3BhdGNoV2luZG93RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
b3JpZW50YXRpb25jaGFuZ2VFdmVudCwgZmFsc2UsIGZhbHNlKSk7CisgICAgbV9vcmllbnRhdGlv
bk5vdGlmaWVyLm9yaWVudGF0aW9uQ2hhbmdlZChvcmllbnRhdGlvbik7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNDgyODMxOGQ3NWYxMzYxZTMw
MjgyNTBhMTkxYjY5YzdjOWNhZTU1OS4uNGUwNjlmZDE2NjkxM2JjY2EzOGRkOTQzODJlODViMGU1
MTQ1ODU3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRl
ICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgi
CiAjaW5jbHVkZSAiTXV0YXRpb25PYnNlcnZlci5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90
aWZlci5oIgogI2luY2x1ZGUgIlBhZ2VWaXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0
Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAiUmVmZXJyZXJQb2xpY3kuaCIKQEAgLTEzMDUsNiArMTMw
Niw5IEBAIHB1YmxpYzoKIAogICAgIENvbnN0YW50UHJvcGVydHlNYXAmIGNvbnN0YW50UHJvcGVy
dGllcygpIGNvbnN0IHsgcmV0dXJuICptX2NvbnN0YW50UHJvcGVydHlNYXA7IH0KIAorICAgIHZv
aWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbik7CisgICAgT3JpZW50YXRpb25O
b3RpZmllciYgb3JpZW50YXRpb25Ob3RpZmllcigpIHsgcmV0dXJuIG1fb3JpZW50YXRpb25Ob3Rp
ZmllcjsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRo
ZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3Vt
ZW50KEZyYW1lKiwgY29uc3QgVVJMJiwgdW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywg
dW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MgPSAwKTsKQEAgLTE3NjAsNiArMTc2NCw4IEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2RpZERpc3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCB7
IGZhbHNlIH07CiAjZW5kaWYKIAorICAgIE9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlv
bk5vdGlmaWVyOworCiAgICAgc3RhdGljIGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2Fj
aGU7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCmluZGV4IDRlZDkxMjRmMjExNTVmOTUxODEwYjlh
ZDAzZjAyMTU0YWEyZWYzOTMuLjM2YTFmZTE5YjAxMmExNDU3OWFhNWYyMmIwOGQ0NTlhMzIwZDI3
ZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCkBAIC0yOTgsOSArMjk4LDEwIEBAIHZvaWQgRnJhbWU6
Om9yaWVudGF0aW9uQ2hhbmdlZCgpCiAgICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzOyBmcmFt
ZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgpLnRyYXZlcnNlTmV4dCgpKQogICAgICAgICBmcmFtZXMu
YXBwZW5kKCpmcmFtZSk7CiAKKyAgICBhdXRvIG5ld09yaWVudGF0aW9uID0gb3JpZW50YXRpb24o
KTsKICAgICBmb3IgKGF1dG8mIGZyYW1lIDogZnJhbWVzKSB7CiAgICAgICAgIGlmIChEb2N1bWVu
dCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9jdW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5k
aXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9u
Y2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxzZSkpOworICAgICAgICAgICAgZG9jdW1lbnQtPm9yaWVu
dGF0aW9uQ2hhbmdlZChuZXdPcmllbnRhdGlvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL09yaWVudGF0aW9uTm90aWZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNDQyOGY1YjYx
ZmFhODEwNmEzMTA2YzEzODU4OTFlODE2MDY3ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaApAQCAtMCwwICsxLDkxIEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3Mg
T3JpZW50YXRpb25Ob3RpZmllciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgT3JpZW50YXRpb25O
b3RpZmllcihpbnQgb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9
CisgICAgfk9yaWVudGF0aW9uTm90aWZpZXIoKTsKKworICAgIHZvaWQgb3JpZW50YXRpb25DaGFu
Z2VkKGludCBvcmllbnRhdGlvbik7CisKKyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGlj
OgorICAgICAgICB2aXJ0dWFsIH5PYnNlcnZlcigpOworICAgICAgICB2aXJ0dWFsIHZvaWQgb3Jp
ZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikgPSAwOworICAgICAgICB2b2lkIHNldE5v
dGlmaWVyKE9yaWVudGF0aW9uTm90aWZpZXIqIG5vdGlmaWVyKSB7IG1fbm90aWZpZXIgPSBub3Rp
ZmllcjsgfQorCisgICAgcHJpdmF0ZToKKyAgICAgICAgT3JpZW50YXRpb25Ob3RpZmllciogbV9u
b3RpZmllciB7IG51bGxwdHIgfTsKKyAgICB9OworCisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNl
cnZlciYpOworICAgIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICBpbnQgb3Jp
ZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CisKK3ByaXZhdGU6Cisg
ICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNlX3dyYXBwZXI8T2JzZXJ2ZXI+PiBtX29ic2VydmVyczsK
KyAgICBpbnQgbV9vcmllbnRhdGlvbjsKK307CisKK2lubGluZSBPcmllbnRhdGlvbk5vdGlmaWVy
Ojp+T3JpZW50YXRpb25Ob3RpZmllcigpCit7CisgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIg
OiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIuc2V0Tm90aWZpZXIobnVsbHB0cik7Cit9
CisKK2lubGluZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6fk9ic2VydmVyKCkKK3sK
KyAgICBpZiAobV9ub3RpZmllcikKKyAgICAgICAgbV9ub3RpZmllci0+cmVtb3ZlT2JzZXJ2ZXIo
KnRoaXMpOworfQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjpvcmllbnRhdGlv
bkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRh
dGlvbjsKKyAgICBmb3IgKE9ic2VydmVyJiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAg
ICBvYnNlcnZlci5vcmllbnRhdGlvbkNoYW5nZWQob3JpZW50YXRpb24pOworfQorCitpbmxpbmUg
dm9pZCBPcmllbnRhdGlvbk5vdGlmaWVyOjphZGRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIp
Cit7CisgICAgbV9vYnNlcnZlcnMuYXBwZW5kKG9ic2VydmVyKTsKKyAgICBvYnNlcnZlci5zZXRO
b3RpZmllcih0aGlzKTsKK30KKworaW5saW5lIHZvaWQgT3JpZW50YXRpb25Ob3RpZmllcjo6cmVt
b3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fb2JzZXJ2ZXJzLnJlbW92
ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZlcl0oYXV0byBpdGVtKSB7CisgICAgICAgIGlmICgmb2Jz
ZXJ2ZXIgIT0gJml0ZW0uZ2V0KCkpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IG9ic2VydmVyLnNldE5vdGlmaWVyKG51bGxwdHIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9KTsKK30KKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKaW5kZXggYzhmYWI2ODY4N2JkODc1Zjcx
ZjcyNzU1ZjUwOWI1ZmMxNTc3Njk3OC4uY2JiM2U1NWFhYjIyMzhmZjZlMTFiM2ViN2ZiM2Y2MzZl
MTk3YWQwNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCkBAIC0yOTgsNiArMjk4LDE0IEBAIHZvaWQg
TWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hlZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkICgp
PiYmIGZ1bmN0aW9uKQogICAgIH0pOwogfQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6bW9u
aXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKQoreworICAgIGZv
ciAoYXV0byYgdHJhY2sgOiBtX3RyYWNrU2V0LnZhbHVlcygpKSB7CisgICAgICAgIGlmICh0cmFj
ay0+c291cmNlKCkuaXNDYXB0dXJlU291cmNlKCkgJiYgdHJhY2stPnR5cGUoKSA9PSBSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbykKKyAgICAgICAgICAgIHRyYWNrLT5zb3VyY2UoKS5t
b25pdG9yT3JpZW50YXRpb24obm90aWZpZXIpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgK
aW5kZXggOWI1YWEyZTY3OGE1Njk5NTY1YTE5N2MwODA4YTA3NWEyNTYyZjU4Mi4uY2M1MWZiNmEx
MDc2MGYxNDIwODFiNjMxOWNmMTEyNzRlZWZmMjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTU2
LDYgKzU2LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW07Citj
bGFzcyBPcmllbnRhdGlvbk5vdGlmaWVyOwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBw
dWJsaWMgTWVkaWFTdHJlYW1UcmFja1ByaXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRl
ZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsKIHB1YmxpYzoKQEAgLTEwNiw2ICsxMDcsOCBAQCBwdWJs
aWM6CiAKICAgICBXZWFrUHRyPE1lZGlhU3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsg
cmV0dXJuIG1fd2Vha1B0ckZhY3RvcnkuY3JlYXRlV2Vha1B0cigpOyB9CiAKKyAgICB2b2lkIG1v
bml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJik7CisKICNpZiBVU0UoR1NUUkVB
TUVSKQogICAgIHZvaWQgc2V0VmlkZW9SZW5kZXJlcihPd3JHc3RWaWRlb1JlbmRlcmVyKiByZW5k
ZXJlciwgR3N0RWxlbWVudCogc2luaykgeyBtX2dzdFZpZGVvUmVuZGVyZXIgPSByZW5kZXJlcjsg
bV9nc3RWaWRlb1NpbmtFbGVtZW50ID0gc2luazsgfQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4g
Z2V0VmlkZW9TaW5rRWxlbWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fZ3N0VmlkZW9TaW5rRWxlbWVu
dDsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVh
bHRpbWVNZWRpYVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
UmVhbHRpbWVNZWRpYVNvdXJjZS5oCmluZGV4IDkwZTIyMmIzODI2YzBjMzU0YzRmMjFlNmViODVk
ZWYxYjc1OTJmN2MuLjJhZjYxMWZhZjk0ZjlmODI0ZTEzYmMwNjM0YWZmYTc5Y2U3M2RmMTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlLmgKQEAgLTMxLDggKzMxLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8K
IAotI2lmbmRlZiBSZWFsdGltZU1lZGlhU291cmNlX2gKLSNkZWZpbmUgUmVhbHRpbWVNZWRpYVNv
dXJjZV9oCisjcHJhZ21hIG9uY2UKIAogI2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTU4
LDkgKzU3LDEyIEBAIGNsYXNzIEF1ZGlvU3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBGbG9hdFJl
Y3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7Citj
bGFzcyBPcmllbnRhdGlvbk5vdGlmaWVyOwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFz
cyBSZWFsdGltZU1lZGlhU291cmNlU2V0dGluZ3M7CiAKK3N0cnVjdCBDYXB0dXJlU291cmNlT3JF
cnJvcjsKKwogY2xhc3MgV0VCQ09SRV9FWFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1Ymxp
YyBSZWZDb3VudGVkPFJlYWx0aW1lTWVkaWFTb3VyY2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBP
YnNlcnZlciB7CkBAIC04MywxMyArODUsMjIgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZv
aWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxlKGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3Jt
QXVkaW9EYXRhJiwgY29uc3QgQXVkaW9TdHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCAvKm51bWJl
ck9mRnJhbWVzKi8pIHsgfQogICAgIH07CiAKLSAgICBjbGFzcyBDYXB0dXJlRmFjdG9yeSB7Cisg
ICAgY2xhc3MgQXVkaW9DYXB0dXJlRmFjdG9yeSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0
dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5KCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0dWFsIENh
cHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcm
IGF1ZGlvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgICAgIAor
ICAgIHByb3RlY3RlZDoKKyAgICAgICAgQXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsK
KyAgICB9OworCisgICAgY2xhc3MgVmlkZW9DYXB0dXJlRmFjdG9yeSB7CiAgICAgcHVibGljOgot
ICAgICAgICB2aXJ0dWFsIH5DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICAgICAgdmly
dHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYp
ID0gMDsKKyAgICAgICAgdmlydHVhbCB+VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsK
KyAgICAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KikgPSAwOwogCiAgICAgcHJvdGVjdGVkOgotICAgICAgICBDYXB0dXJlRmFjdG9yeSgpID0gZGVm
YXVsdDsKKyAgICAgICAgVmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB9Owog
CiAgICAgdmlydHVhbCB+UmVhbHRpbWVNZWRpYVNvdXJjZSgpIHsgfQpAQCAtMTM1LDYgKzE0Niw4
IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCB7
IHJldHVybiBmYWxzZTsgfQogCisgICAgdmlydHVhbCB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihP
cmllbnRhdGlvbk5vdGlmaWVyJikgeyB9CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBh
ZGRPYnNlcnZlcihPYnNlcnZlciYpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlT2Jz
ZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAtMjI5LDggKzI0MiwxOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgbV9zdXBwcmVzc05vdGlmaWNhdGlvbnMgeyB0cnVlIH07CiB9OwogCitzdHJ1Y3QgQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgeworICAgIENhcHR1cmVTb3VyY2VPckVycm9yKCkgPSBkZWZhdWx0Owor
ICAgIENhcHR1cmVTb3VyY2VPckVycm9yKFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJj
ZSkgOiBjYXB0dXJlU291cmNlKFdURk1vdmUoc291cmNlKSkgeyB9CisgICAgQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoU3RyaW5nJiYgbWVzc2FnZSkgOiBlcnJvck1lc3NhZ2UoV1RGTW92ZShtZXNzYWdl
KSkgeyB9CisgICAgCisgICAgb3BlcmF0b3IgYm9vbCgpICBjb25zdCB7IHJldHVybiAhIWNhcHR1
cmVTb3VyY2U7IH0KKyAgICBSZWY8UmVhbHRpbWVNZWRpYVNvdXJjZT4gc291cmNlKCkgeyByZXR1
cm4gY2FwdHVyZVNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpOyB9CisgICAgCisgICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1cmVTb3VyY2U7CisgICAgU3RyaW5nIGVycm9yTWVzc2Fn
ZTsKK307CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJ
QV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBSZWFsdGltZU1lZGlhU291cmNlX2gKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5kZXggOTU1OTk4ZDY2NzFjZGQxNWJiMDdiYTkyMzAyNjJm
OWE3MjY2Mzc0Ni4uZjRjMmJhNjg0ODNkMTg3YzcwYjgzN2FmNGExMDk3ZDcyZDFjODQzNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKQEAgLTY2LDIzICs2NiwyMyBAQCBSZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyOjp+UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpCiB7CiB9
CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KFJlYWx0
aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQordm9pZCBSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyOjpzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBtX2F1ZGlvRmFjdG9yeSA9ICZmYWN0
b3J5OwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0
b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQordm9pZCBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlh
U291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAgIGlmIChtX2F1ZGlv
RmFjdG9yeSA9PSAmZmFjdG9yeSkKICAgICAgICAgbV9hdWRpb0ZhY3RvcnkgPSBudWxscHRyOwog
fQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeShSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlcjo6c2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAgbV92aWRlb0ZhY3RvcnkgPSAmZmFj
dG9yeTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFj
dG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKIHsKICAgICBpZiAobV92aWRl
b0ZhY3RvcnkgPT0gJmZhY3RvcnkpCiAgICAgICAgIG1fdmlkZW9GYWN0b3J5ID0gbnVsbHB0cjsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCA1MTI0MWFkOTE4MjJhMmQ3ODBiMDNm
YzFmMmMxZWNkNjM2NzE1NTc5Li4zMjFlNjNmN2NiNTU0MzQzMTY5Y2YyNWI3ZjQxMTQzYTRlOTY4
NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC02NiwxNiArNjYsMTYgQEAg
cHVibGljOgogICAgIAogICAgIHZpcnR1YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBv
cnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0ZWRDb25zdHJhaW50cygpIHsgcmV0dXJuIG1fc3VwcG9y
dGVkQ29uc3RyYWludHM7IH0KIAotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2Fw
dHVyZUZhY3RvcnkqIGRlZmF1bHRBdWRpb0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9Ci0g
ICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZp
ZGVvRmFjdG9yeSgpIHsgcmV0dXJuIG51bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRBdWRpb0ZhY3RvcnkoKSB7IHJl
dHVybiBudWxscHRyOyB9CisgICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0Nh
cHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0QXVk
aW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFjdG9yeSgpIGNvbnN0IHsg
cmV0dXJuIG1fYXVkaW9GYWN0b3J5OyB9CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRp
b0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYpOworICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
Q2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9GYWN0
b3J5OyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRmFjdG9yeShSZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsK
LSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogdmlkZW9GYWN0b3J5KCkg
Y29uc3QgeyByZXR1cm4gbV92aWRlb0ZhY3Rvcnk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5
Jik7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1bnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1l
ZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5Jik7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogdmlkZW9GYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV92
aWRlb0ZhY3Rvcnk7IH0KIAogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1
bHRBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZp
cnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1bHRWaWRlb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQpAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0ZWQ6CiAg
ICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXImIHBsYXRmb3JtQ2VudGVyKCk7CiAg
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29u
c3RyYWludHM7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogbV9h
dWRpb0ZhY3RvcnkgeyBudWxscHRyIH07Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVy
ZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIG1fYXVkaW9GYWN0b3J5IHsgbnVsbHB0ciB9Owor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0
b3J5IHsgbnVsbHB0ciB9OwogCiAgICAgQ2FwdHVyZURldmljZU1hbmFnZXIqIG1fYXVkaW9DYXB0
dXJlRGV2aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciog
bV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1
cmVTb3VyY2UuaAppbmRleCA2YzgzNjJmZThlODQ1NjExZTNmNWM4NWMxMTVhMmZlMjdiZDg3MDk1
Li43OTg4YzFlMjlhNDNmNTU4NGI0YmI1ZDA3NmNmOWQxMGEyY2M0Y2E2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3Vy
Y2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRp
b0NhcHR1cmVTb3VyY2UuaApAQCAtNDQsOSArNDQsOSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVBy
b3ZpZGVyQVZGT2JqQzsKIGNsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIEFWTWVk
aWFDYXB0dXJlU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8QVZNZWRpYUNh
cHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJik7CisgICAgc3RhdGljIENhcHR1cmVT
b3VyY2VPckVycm9yIGNyZWF0ZShBVkNhcHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcm
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMg
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVk
aW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiBwcml2YXRlOgogICAgIEFWQXVkaW9DYXB0
dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0
dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
QXVkaW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDZkYjFjNzVmMjBmY2U5NjA2OWU3MzZlMjJjNGM3
Njg0YjMxZmY0OGQuLjZlNTlkMmUyOTBlZmRmZGZiYTc3Y2Q4Yzg0MWRlYjAzMWFlYzE5YjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlv
Q2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KQEAgLTc3LDMwICs3NywyNyBAQCBTT0ZUX0xJ
TktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopCiAK
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQVZBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5
IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIEFW
QXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpB
dWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNv
dXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNv
bnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnQpIGZpbmFsIHsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqZGV2aWNl
ID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmRldmljZUlE
XTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCAhZGV2aWNlIHx8IChkZXZpY2UgJiYgdHlw
ZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbykpOwotICAgICAgICByZXR1cm4g
ZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5n
KCksIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkgOiBudWxscHRyOworICAgICAgICBy
ZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5
U3RyaW5nKCksIGNvbnN0cmFpbnRzKSA6IENhcHR1cmVTb3VyY2VPckVycm9yKCk7CiAgICAgfQog
fTsKIAotUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNlPiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBpZCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxp
ZENvbnN0cmFpbnQpCitDYXB0dXJlU291cmNlT3JFcnJvciBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5n
JiBpZCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBz
b3VyY2UgPSBhZG9wdFJlZihuZXcgQVZBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwor
ICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZp
Y2UsIGlkKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0g
c291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChyZXN1
bHQpIHsKLSAgICAgICAgICAgIGludmFsaWRDb25zdHJhaW50ID0gcmVzdWx0LnZhbHVlKCkuZmly
c3Q7Ci0gICAgICAgICAgICBzb3VyY2UgPSBudWxscHRyOwotICAgICAgICB9CisgICAgICAgIGlm
IChyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gU3RyaW5nKHJlc3VsdC52YWx1ZSgpLmZpcnN0
KTsKICAgICB9CiAKLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0
dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRp
YVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3Rv
cnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxBVkF1ZGlvQ2FwdHVyZVNvdXJjZUZh
Y3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2Fw
dHVyZVNvdXJjZS5oCmluZGV4IGE4MjE1ODAxMTk4ZDRhODdhMDAyMzE2ZDM1MWFmZWUwZGYwZmY3
NDUuLjlhNmMyNmNhMzMyM2Y5NzAzNzlhNWU0MDY3ZmUyNTM3ZTVjYzgxMjEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZp
ZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yMywxMiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAg
Ki8KIAotI2lmbmRlZiBBVlZpZGVvQ2FwdHVyZVNvdXJjZV9oCi0jZGVmaW5lIEFWVmlkZW9DYXB0
dXJlU291cmNlX2gKKyNwcmFnbWEgb25jZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYg
VVNFKEFWRk9VTkRBVElPTikKIAogI2luY2x1ZGUgIkFWTWVkaWFDYXB0dXJlU291cmNlLmgiCisj
aW5jbHVkZSAiT3JpZW50YXRpb25Ob3RpZmVyLmgiCiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9C
SkNfQ0xBU1MgQVZGcmFtZVJhdGVSYW5nZTsKQEAgLTQzLDExICs0MywxMSBAQCBjbGFzcyBGbG9h
dFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1l
ckNWOwogCi1jbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVy
ZVNvdXJjZSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2Fw
dHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKEFWQ2Fw
dHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
LCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKEFWQ2Fw
dHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
KTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgp
OworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5
KCk7CiAKICAgICBpbnQzMl90IHdpZHRoKCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQogICAg
IGludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4gbV9oZWlnaHQ7IH0KQEAgLTY2LDEyICs2
NiwxOCBAQCBwcml2YXRlOgogICAgIGJvb2wgYXBwbHlGcmFtZVJhdGUoZG91YmxlKSBmaW5hbDsK
ICAgICBib29sIHNldFByZXNldChOU1N0cmluZyopOwogCisgICAgdm9pZCBtb25pdG9yT3JpZW50
YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIGZpbmFsOworICAgIHZvaWQgY29tcHV0ZVNhbXBs
ZVJvdGF0aW9uKCk7CisKICAgICBOU1N0cmluZyAqYmVzdFNlc3Npb25QcmVzZXRGb3JWaWRlb0Rp
bWVuc2lvbnMoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVp
Z2h0KSBjb25zdDsKICAgICBib29sIHN1cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlv
bmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8
ZG91YmxlPikgZmluYWw7CiAKICAgICB2b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRp
bWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYpIGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZVN1
cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50
cyYpIGZpbmFsOwogCisgICAgLy8gT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgQVBJCisg
ICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAg
IGJvb2wgc2V0RnJhbWVSYXRlQ29uc3RyYWludChkb3VibGUgbWluRnJhbWVSYXRlLCBkb3VibGUg
bWF4RnJhbWVSYXRlKTsKIAogICAgIGJvb2wgdXBkYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVy
UmVmKTsKQEAgLTkwLDEwICs5NiwxMSBAQCBwcml2YXRlOgogICAgIEZsb2F0NjQgbV9mcmFtZVJh
dGUgeyAwIH07CiAgICAgaW50MzJfdCBtX3dpZHRoIHsgMCB9OwogICAgIGludDMyX3QgbV9oZWln
aHQgeyAwIH07CisgICAgaW50IG1fc2Vuc29yT3JpZW50YXRpb24geyAwIH07CisgICAgaW50IG1f
ZGV2aWNlT3JpZW50YXRpb24geyAwIH07CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24g
bV9zYW1wbGVSb3RhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RS
RUFNKQotCi0jZW5kaWYgLy8gQVZWaWRlb0NhcHR1cmVTb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNl
Lm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLm1tCmluZGV4IDg4MTMxYjhkYjA3Y2FmN2Y4MDNkMTNhZjUyNDk5YWE4NTBjMWQ4
OTQuLjNlZTI1YzhhOGU0MDZjMDIxNDYyYjhiMWI0MjNkMDkwMmZmMTRlOWYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNv
dXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZW
aWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTg1LDYgKzg1LDcgQEAgU09GVF9MSU5LX0NMQVNTKEFW
Rm91bmRhdGlvbiwgQVZGcmFtZVJhdGVSYW5nZSkKICNkZWZpbmUgQVZDYXB0dXJlVmlkZW9QcmV2
aWV3TGF5ZXIgZ2V0QVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXJDbGFzcygpCiAjZGVmaW5lIEFW
RnJhbWVSYXRlUmFuZ2UgZ2V0QVZGcmFtZVJhdGVSYW5nZUNsYXNzKCkKIAorU09GVF9MSU5LX1BP
SU5URVIoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZVZpZGVvLCBOU1N0cmluZyAqKQogU09GVF9M
SU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0
MTI4MHg3MjAsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5k
YXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQ5NjB4NTQwLCBOU1N0cmluZyAqKQogU09GVF9M
SU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0
NjQweDQ4MCwgTlNTdHJpbmcgKikKQEAgLTEwOSwzMCArMTEwLDI5IEBAIGNvbnN0IE9TVHlwZSB2
aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hcjsK
IGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIw
WXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOwogI2VuZGlmCiAKLWNsYXNzIEFWVmlkZW9DYXB0dXJl
U291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGlu
dmFsaWRDb25zdHJhaW50KSBmaW5hbCB7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRl
VmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5
cGVkZWYgKmRldmljZSA9IFtnZXRBVkNhcHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlx
dWVJRDpkZXZpY2VJRF07Ci0gICAgICAgIEFTU0VSVF9VTlVTRUQodHlwZSwgIWRldmljZSB8fCAo
dHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbykpOwotICAgICAgICByZXR1
cm4gZGV2aWNlID8gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3Ry
aW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkgOiBudWxscHRyOworICAgICAg
ICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBB
VlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmljZSwgZW1wdHlTdHJpbmcoKSwgY29uc3Ry
YWludHMpOwogICAgIH0KIH07CiAKLVJlZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNv
bnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
LCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRl
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNv
bnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IEFWVmlkZW9DYXB0dXJlU291cmNl
KGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0Nh
cHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAg
ICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwot
ICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJl
c3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAgc291cmNlID0gbnVsbHB0cjsKLSAgICAg
ICAgfQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUocmVz
dWx0LnZhbHVlKCkuZmlyc3QpOwogICAgIH0KIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0
dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKLVJlYWx0aW1l
TWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9y
eSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFWVmlk
ZW9DYXB0dXJlU291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQo
KTsKQEAgLTM0Niw2ICszNDYsMzkgQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6YXBwbHlT
aXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50PiB3aWR0aCwgc3RkOjoKICAgICAgICAg
YXBwbHlGcmFtZVJhdGUoZnJhbWVSYXRlLnZhbHVlKCkpOwogfQogCitzdGF0aWMgaW5saW5lIGlu
dCBzZW5zb3JPcmllbnRhdGlvbihBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uIHZpZGVvT3JpZW50
YXRpb24pCit7CisjaWYgUExBVEZPUk0oSU9TKQorICAgIHN3aXRjaCAodmlkZW9PcmllbnRhdGlv
bikgeworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRyYWl0OgorICAgICAg
ICByZXR1cm4gMTgwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRyYWl0
VXBzaWRlRG93bjoKKyAgICAgICAgcmV0dXJuIDA7CisgICAgY2FzZSBBVkNhcHR1cmVWaWRlb09y
aWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6CisgICAgICAgIHJldHVybiA5MDsKKyAgICBjYXNlIEFW
Q2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVMZWZ0OgorICAgICAgICByZXR1cm4gLTkw
OworICAgIH0KKyNlbHNlCisgICAgc3dpdGNoICh2aWRlb09yaWVudGF0aW9uKSB7CisgICAgY2Fz
ZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJhaXQ6CisgICAgICAgIHJldHVybiAwOwor
ICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKKyAg
ICAgICAgcmV0dXJuIDE4MDsKKyAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5k
c2NhcGVSaWdodDoKKyAgICAgICAgcmV0dXJuIDkwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9P
cmllbnRhdGlvbkxhbmRzY2FwZUxlZnQ6CisgICAgICAgIHJldHVybiAtOTA7CisgICAgfQorI2Vu
ZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHNlbnNvck9yaWVudGF0aW9uRnJvbVZpZGVvT3V0
cHV0KEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dFR5cGUqIHZpZGVvT3V0cHV0KQoreworICAgIEFW
Q2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBjb25uZWN0aW9uID0gW3ZpZGVvT3V0cHV0IGNvbm5lY3Rp
b25XaXRoTWVkaWFUeXBlOiBnZXRBVk1lZGlhVHlwZVZpZGVvKCldOworICAgIHJldHVybiBjb25u
ZWN0aW9uID8gc2Vuc29yT3JpZW50YXRpb24oW2Nvbm5lY3Rpb24gdmlkZW9PcmllbnRhdGlvbl0p
IDogMDsKK30KKwogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lv
bigpCiB7CiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7CkBAIC0zODUsNiArNDE4LDggQEAgdm9p
ZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiAgICAgc2V0UHJl
c2V0KG1fcGVuZGluZ1ByZXNldC5nZXQoKSk7CiAjZW5kaWYKIAorICAgIG1fc2Vuc29yT3JpZW50
YXRpb24gPSBzZW5zb3JPcmllbnRhdGlvbkZyb21WaWRlb091dHB1dChtX3ZpZGVvT3V0cHV0Lmdl
dCgpKTsKKyAgICBjb21wdXRlU2FtcGxlUm90YXRpb24oKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lvbigpCkBAIC00MTcsNiArNDUyLDQ2IEBA
IGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnVwZGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZl
clJlZiBzYW1wbGVCdWZmZXIpCiAgICAgcmV0dXJuIGZyYW1lUmF0ZSAhPSBtX2ZyYW1lUmF0ZTsK
IH0KIAordm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVu
dGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKQoreworI2lmIFBMQVRGT1JNKElPUykKKyAgICBub3Rp
Zmllci5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgb3JpZW50YXRpb25DaGFuZ2VkKG5vdGlmaWVy
Lm9yaWVudGF0aW9uKCkpOworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obm90aWZpZXIpOworI2Vu
ZGlmCit9CisKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChp
bnQgb3JpZW50YXRpb24pCit7CisgICAgQVNTRVJUKG9yaWVudGF0aW9uID09IDAgfHwgb3JpZW50
YXRpb24gPT0gOTAgfHwgb3JpZW50YXRpb24gPT0gLTkwIHx8IG9yaWVudGF0aW9uID09IDE4MCk7
CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOworICAgIGNvbXB1dGVTYW1w
bGVSb3RhdGlvbigpOworfQorCit2b2lkIEFWVmlkZW9DYXB0dXJlU291cmNlOjpjb21wdXRlU2Ft
cGxlUm90YXRpb24oKQoreworICAgIHN3aXRjaCAobV9zZW5zb3JPcmllbnRhdGlvbiAtIG1fZGV2
aWNlT3JpZW50YXRpb24pIHsKKyAgICBjYXNlIDA6CisgICAgICAgIG1fc2FtcGxlUm90YXRpb24g
PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAg
Y2FzZSAxODA6CisgICAgY2FzZSAtMTgwOgorICAgICAgICBtX3NhbXBsZVJvdGF0aW9uID0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgOTA6CisgICAgICAgIG1fc2FtcGxlUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6TGVmdDsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAtOTA6CisgICAgY2FzZSAt
MjcwOgorICAgICAgICBtX3NhbXBsZVJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246OlJpZ2h0OworICAgICAgICBicmVhazsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbV9zYW1wbGVSb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpOb25lOworICAgIH0KK30KKwogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFpblB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVm
ZmVyLCBSZXRhaW5QdHI8QVZDYXB0dXJlQ29ubmVjdGlvblR5cGU+IGNvbm5lY3Rpb24pCiB7CiAg
ICAgLy8gSWdub3JlIGZyYW1lcyBkZWxpdmVyZWQgd2hlbiB0aGUgc2Vzc2lvbiBpcyBub3QgcnVu
bmluZywgd2Ugd2FudCB0byBoYW5nIG9udG8gdGhlIGxhc3QgaW1hZ2UKQEAgLTQzMiw1MiArNTA3
LDE4IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5Q
dHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1CiAgICAgbV9idWZmZXIgPSBzYW1wbGVCdWZm
ZXI7CiAgICAgbV9sYXN0SW1hZ2UgPSBudWxscHRyOwogCi0gICAgTWVkaWFTYW1wbGU6OlZpZGVv
Um90YXRpb24gcm90YXRpb247Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgIHN3aXRjaCAoW2Nvbm5l
Y3Rpb24gdmlkZW9PcmllbnRhdGlvbl0pIHsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50
YXRpb25Qb3J0cmFpdDoKLSAgICAgICAgcm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6VXBzaWRlRG93bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRl
b09yaWVudGF0aW9uUG9ydHJhaXRVcHNpZGVEb3duOgotICAgICAgICByb3RhdGlvbiA9IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFW
Q2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVSaWdodDoKLSAgICBjYXNlIEFWQ2FwdHVy
ZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVMZWZ0OgotICAgICAgICByb3RhdGlvbiA9IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2Vs
c2UKLSAgICBzd2l0Y2ggKFtjb25uZWN0aW9uIHZpZGVvT3JpZW50YXRpb25dKSB7Ci0gICAgY2Fz
ZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJhaXQ6Ci0gICAgICAgIHJvdGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNh
c2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKLSAgICAgICAg
cm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uTGFuZHNjYXBlUmln
aHQ6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0
OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5k
c2NhcGVMZWZ0OgotICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9u
OjpMZWZ0OwotICAgICAgICBicmVhazsKLSAgICB9Ci0jZW5kaWYKLQotICAgIGJvb2wgc2V0dGlu
Z3NDaGFuZ2VkID0gZmFsc2U7CiAgICAgQ01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENN
VmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOwot
ICAgIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwg
cm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQpCisgICAgaWYgKG1f
c2FtcGxlUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQgfHwgbV9z
YW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCiAgICAg
ICAgIHN0ZDo6c3dhcChkaW1lbnNpb25zLndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAg
ICBpZiAoZGltZW5zaW9ucy53aWR0aCAhPSBtX3dpZHRoIHx8IGRpbWVuc2lvbnMuaGVpZ2h0ICE9
IG1faGVpZ2h0KSB7CiAgICAgICAgIG1fd2lkdGggPSBkaW1lbnNpb25zLndpZHRoOwogICAgICAg
ICBtX2hlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0OwotICAgICAgICBzZXR0aW5nc0NoYW5nZWQg
PSB0cnVlOwotICAgIH0KIAotICAgIGlmIChzZXR0aW5nc0NoYW5nZWQpCiAgICAgICAgIHNldHRp
bmdzRGlkQ2hhbmdlKCk7CisgICAgfQogCi0gICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFT
YW1wbGVBVkZPYmpDOjpjcmVhdGUobV9idWZmZXIuZ2V0KCksIHJvdGF0aW9uLCBbY29ubmVjdGlv
biBpc1ZpZGVvTWlycm9yZWRdKSk7CisgICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1w
bGVBVkZPYmpDOjpjcmVhdGUobV9idWZmZXIuZ2V0KCksIG1fc2FtcGxlUm90YXRpb24sIFtjb25u
ZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2Fw
dHVyZU91dHB1dFR5cGUqLCBDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVy
ZUNvbm5lY3Rpb25UeXBlKiBjYXB0dXJlQ29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0
dXJlU291cmNlLmNwcAppbmRleCA4ZjI0YzYzMDA5ZWJkYzljYzQxZTFhYmM1ZGVhMWExN2UxNGJm
NzU5Li4zOTM5Y2E2MzA5MTRlNzAwYTUxYjA1NTJkYTk2ZTM1OGQzYzJiZTgzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00Niw0NSArNDYsMzkgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBDb3JlQXVk
aW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRp
b0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQp
IGZpbmFsIHsKLSAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShk
ZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KTsKKyAgICBDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKKyAg
ICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgY29u
c3RyYWludHMpOwogICAgIH0KIH07CiAKIGNvbnN0IFVJbnQzMiBvdXRwdXRCdXMgPSAwOwogY29u
c3QgVUludDMyIGlucHV0QnVzID0gMTsKIAotUmVmUHRyPENvcmVBdWRpb0NhcHR1cmVTb3VyY2U+
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGlmICh0eXBlICE9
IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQogICAgIFN0cmluZyBsYWJlbDsKICAgICB1aW50MzJfdCBwZXJzaXN0ZW50SUQgPSAwOwog
I2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZp
Y2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsK
ICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVy
biB7IH07CiAKICAgICBsYWJlbCA9IGRldmljZS0+bGFiZWwoKTsKICAgICBwZXJzaXN0ZW50SUQg
PSBkZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVm
KG5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBsYWJlbCwgcGVyc2lzdGVudElE
KSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2UoZGV2aWNlSUQsIGxhYmVsLCBwZXJzaXN0ZW50SUQpKTsKIAogICAgIGlmIChjb25zdHJhaW50
cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29u
c3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29u
c3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBX
VEZNb3ZlKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9Ci0KLSAgICByZXR1cm4gc291cmNl
OworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQog
Ci1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5
JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0
dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAy
MzVkNWEzMTRkYzJhYzgxMmQ3MmJmODg0OWI2ZTYxYmQ3OWJjNGRkLi4xM2Y0MTZjZTEyMDUyMzc5
NmQ2Y2EyNTI0NzA0MmI5YmMyMjk2Y2UyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNl
LmgKQEAgLTUzLDkgKzUzLDkgQEAgY2xhc3MgQ2FwdHVyZURldmljZUluZm87CiBjbGFzcyBDb3Jl
QXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGlj
OgogCi0gICAgc3RhdGljIFJlZlB0cjxDb3JlQXVkaW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyosIFN0cmluZyYpOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJv
ciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyop
OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7
CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3Rvcnko
KTsKIAogICAgIHZvaWQgYWRkRWNob0NhbmNlbGxhdGlvblNvdXJjZShBdWRpb1NhbXBsZURhdGFT
b3VyY2UmKTsKICAgICB2b2lkIHJlbW92ZUVjaG9DYW5jZWxsYXRpb25Tb3VyY2UoQXVkaW9TYW1w
bGVEYXRhU291cmNlJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0K
aW5kZXggY2U0ZGFiYjM4ZWJlODg4OGYzY2MwMzdmZmY1M2FmYTc0YjBiOTIzOC4uYjBmMjgzYjFk
Yzc0MmRkMDlhZjY1MWQ3NzI1ZmNhYTY3MWM4YWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZU1hYy5tbQpAQCAtODQsMTMgKzg0LDE0IEBAIHN0YXRpYyB2b2lkIGFkZEh1
bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWlu
dDY0X3QKICAgICB9CiB9CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFk
b3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJ
WE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRz
ICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3Vy
Y2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsK
KyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAog
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNv
bnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgK
aW5kZXggNGQ1MTQzZWMyOWJiMDdjMTIwZWIxMGU0MzEwNjVhMWZlODhhODZiYS4uOTU4MzdiMTFh
NWM2ZDk3Zjg3MmI2NTAwNTg4ODQxMDIwYWNhN2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLmgKQEAgLTI4LDEzICsyOCwxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAq
LwogCi0jaWZuZGVmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjX2gKLSNkZWZpbmUgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2VNYWNfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFf
U1RSRUFNKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUuaCIKICNpbmNsdWRlICJNb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZS5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogCiB0eXBl
ZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVkJ1ZmZlclJlZjsKIHR5cGVkZWYgQ1ZCdWZmZXJSZWYg
Q1ZJbWFnZUJ1ZmZlclJlZjsKQEAgLTQzLDkgKzQzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBp
eGVsQnVmZmVyUG9vbCAqQ1ZQaXhlbEJ1ZmZlclBvb2xSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIAotY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UgeworY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMg
ZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UsIHByaXZhdGUgT3JpZW50YXRp
b25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgotCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMoKSB7IH0KIAogcHJpdmF0ZToKQEAgLTU5LDEzICs1OCwxNCBAQCBw
cml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCBh
cHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwogCisgICAgdm9pZCBvcmllbnRhdGlvbkNo
YW5nZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAgIG11dGFibGUgUmV0YWluUHRyPENH
SW1hZ2VSZWY+IG1fcHJldmlld0ltYWdlOwogICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3Jt
TGF5ZXI+IG1fcHJldmlld0xheWVyOwogICAgIG11dGFibGUgUmV0YWluUHRyPENWUGl4ZWxCdWZm
ZXJQb29sUmVmPiBtX2J1ZmZlclBvb2w7CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24g
bV9kZXZpY2VPcmllbnRhdGlvbiB7IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07
CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFf
U1RSRUFNKQotCi0jZW5kaWYgLy8gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tCmluZGV4IGJjNjgwYThlYWEzOGVjYzdl
MjhhYzA5MjUyMWZhZDc1M2VhZjNlNDcuLmJlNGJlMDBhZTQ5NTIwYWFlYzg2YzRjMjMxYTYzOTQ4
Njg3ZTBlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAg
LTUwLDEzICs1MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQg
dmlkZW9TYW1wbGVSYXRlID0gOTAwMDA7CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYobmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMobmFtZSkpOwor
ICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNv
bnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAg
ICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJu
IHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2Up
KTsKIH0KIAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTE2MSw2ICsxNjIsMjcgQEAgYm9vbCBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6YXBwbHlTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUp
CiAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjphcHBseVNpemUobmV3U2l6ZSk7
CiB9CiAKK3ZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9uQ2hhbmdl
ZChpbnQgb3JpZW50YXRpb24pCit7CisgICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIG1f
ZGV2aWNlT3JpZW50YXRpb24KKyAgICBzd2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSAw
OgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgOTA6CisgICAgICAgIG1fZGV2aWNl
T3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAg
IGJyZWFrOworICAgIGNhc2UgLTkwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2Ug
MTgwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246OlVwc2lkZURvd247CisgICAgICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAg
IHJldHVybjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8v
IEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlck1hYy5jcHAKaW5kZXggNmY0YmY2MTAxNTAyYzdhNDA1YWI1Y2ZiMTI3MWVjOGY1MzM3MzUy
Yy4uNWMyNjA1MDI2NTU3MDg0ZGNhMTRkMTZjYWNhZDE4ZDFiOWU3ZmM0YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmNwcApAQCAtMTM2LDE5ICsxMzYsMjEg
QEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbShO
ZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcGwKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7
CiAKICAgICBpZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0eSgpICYmIG1fYXVkaW9GYWN0b3J5KSB7
Ci0gICAgICAgIGlmIChhdXRvIGF1ZGlvU291cmNlID0gbV9hdWRpb0ZhY3RvcnktPmNyZWF0ZU1l
ZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhhdWRpb0RldmljZUlELCBD
YXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxp
ZENvbnN0cmFpbnQpKQotICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJj
ZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9G
YWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoYXVkaW9EZXZpY2VJRCwgYXVkaW9Db25z
dHJhaW50cyk7CisgICAgICAgIGlmICghIWF1ZGlvU291cmNlKQorICAgICAgICAgICAgYXVkaW9T
b3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRAot
ICAgICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExP
RyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFt
KCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGludmFs
aWRDb25zdHJhaW50LnV0ZjgoKS5kYXRhKCkpOworICAgICAgICBpZiAoIWF1ZGlvU291cmNlLmVy
cm9yTWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFp
bnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2Uu
dXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICB9CiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlz
RW1wdHkoKSAmJiBtX3ZpZGVvRmFjdG9yeSkgewotICAgICAgICBpZiAoYXV0byB2aWRlb1NvdXJj
ZSA9IG1fdmlkZW9GYWN0b3J5LT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHModmlkZW9EZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6Vmlk
ZW8sIHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgIHZp
ZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAg
IGF1dG8gdmlkZW9Tb3VyY2UgPSBtX3ZpZGVvRmFjdG9yeS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291
cmNlKHZpZGVvRGV2aWNlSUQsIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICBpZiAoISF2aWRl
b1NvdXJjZSkKKyAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291
cmNlKCkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWlu
dC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxl
ZCB0byBhcHBseTogJXMiLCB0aGlzLCBpbnZhbGlkQ29uc3RyYWludC51dGY4KCkuZGF0YSgpKTsK
KyAgICAgICAgaWYgKCF2aWRlb1NvdXJjZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgTE9HKE1lZGlhLCAiUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVk
aWFTdHJlYW0oJXApLCB2aWRlbyBjb25zdHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhp
cywgdmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAg
fQogCkBAIC0xODcsMTIgKzE4OSwxOCBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgICAg
ICBpZiAoIWNhcHR1cmVEZXZpY2UuZW5hYmxlZCgpIHx8IGNhcHR1cmVEZXZpY2UudHlwZSgpICE9
IGRldmljZVR5cGUpCiAgICAgICAgICAgICBjb250aW51ZTsKIAotICAgICAgICBSZWFsdGltZU1l
ZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZmFjdG9yeSA9IHR5cGUgPT0gUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZTo6VmlkZW8gPyBtX3ZpZGVvRmFjdG9yeSA6IG1fYXVkaW9GYWN0b3J5Owot
ICAgICAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYgbV92aWRlb0ZhY3RvcnkpCisgICAgICAg
ICAgICBzb3VyY2VPckVycm9yID0gbV92aWRlb0ZhY3RvcnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpLCAmY29uc3RyYWludHMpOworICAgICAg
ICBlbHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYmIG1f
YXVkaW9GYWN0b3J5KQorICAgICAgICAgICAgc291cmNlT3JFcnJvciA9IG1fYXVkaW9GYWN0b3J5
LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwg
JmNvbnN0cmFpbnRzKTsKIAotICAgICAgICBpZiAoYXV0byBjYXB0dXJlU291cmNlID0gZmFjdG9y
eS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNhcHR1
cmVEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZVR5cGUsICZjb25zdHJhaW50cywgaW52YWxp
ZENvbnN0cmFpbnQpKQotICAgICAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5kKGNhcHR1cmVTb3Vy
Y2UubGVha1JlZigpKTsKKyAgICAgICAgaWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgICAg
ICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGludmFsaWQgY29uc3RyYWludHMgb24gbW9y
ZSB0aGFuIG9uZSBkZXZpY2UuCisgICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IFdURk1v
dmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOworICAgICAgICAgICAgY29udGludWU7Cisg
ICAgICAgIH0KKyAgICAgICAgYmVzdFNvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNl
KCkpOwogICAgIH0KIAogICAgIFZlY3RvcjxTdHJpbmc+IHNvdXJjZVVJRHM7CkBAIC0yMDcsMTIg
KzIxNSwxMiBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpi
ZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgIHJldHVybiBzb3VyY2VVSURz
OwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpk
ZWZhdWx0QXVkaW9GYWN0b3J5KCkKIHsKICAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmZhY3RvcnkoKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3Rvcnkq
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVh
bHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYzo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjLmgKaW5kZXggMWJmNDk3ZmQ2ZDdjM2MxNjZmZGE4MmRlYTJiMTMxYjEzYzhh
NDQ4NC4uZmYxZjg5N2JiZWRlOTlhNDQwNTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0MyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5oCkBAIC01NCw4ICs1NCw4IEBAIHBy
aXZhdGU6CiAKICAgICBWZWN0b3I8U3RyaW5nPiBiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJh
aW50cyhSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwg
U3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7
CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1
ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVy
ZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJPd3IuY3BwCmluZGV4IDZlYzhlOGIwNTNhMTIwOTE0MmRkY2UzMzFkMzhjMGFlYTE3
YmRiOGIuLjBmNjRkZTQzN2Y0MTRhYTZiMGQxOWI4ODRlMjQ3NmU5NDhlN2ZhMjkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApA
QCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6dmFs
aWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hhCiAgICAgbV9pbnZhbGlk
Q29uc3RyYWludHNIYW5kbGVyID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyT3dyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29t
cGxldGlvbkhhbmRsZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5n
JiB2aWRlb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlh
U3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBjb25zdCBT
dHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3Qg
TWVkaWFDb25zdHJhaW50cyosIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKQogewogICAgIGludCB0
eXBlcyA9IE9XUl9NRURJQV9UWVBFX1VOS05PV047CiAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lk
IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlh
U3RyZWFtSGFuZGxlciBjb21wbAogICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpCiAg
ICAgICAgIHR5cGVzIHw9IE9XUl9NRURJQV9UWVBFX1ZJREVPOwogCi0gICAgbV9jb21wbGV0aW9u
SGFuZGxlciA9IGNvbXBsZXRpb25IYW5kbGVyOworICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKTsKIAogICAgIG93cl9nZXRfY2FwdHVyZV9zb3VyY2Vz
KHN0YXRpY19jYXN0PE93ck1lZGlhVHlwZT4odHlwZXMpLCBtZWRpYVNvdXJjZXNBdmFpbGFibGVD
YWxsYmFjaywgdGhpcyk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlck93ci5oCmluZGV4IDZjZGQ3ZDVmZTBjNGE4MjgyZDQxMDM3NGVkNGY3MmM3
ODFmZDliMTYuLmIzODcwYzEyZGNiNWRkNjY3ZTRjYjMwM2U0ODA4YzAyODVjYWIyNGMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCkBA
IC01Niw3ICs1Niw3IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3Ry
YWludHMoVmFsaWRDb25zdHJhaW50c0hhbmRsZXIgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3Ry
YWludHNIYW5kbGVyIGludmFsaWRIYW5kbGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBhdWRp
b0NvbnN0cmFpbnRzLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKSBm
aW5hbDsKIAotICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVy
LCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJ
RCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cykgZmluYWw7CisgICAgdm9pZCBjcmVhdGVNZWRp
YVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXImJiwgY29uc3QgU3RyaW5nJiBhdWRpb0Rldmlj
ZUlELCBjb25zdCBTdHJpbmcmIHZpZGVvRGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IHZpZGVvQ29uc3RyYWludHMsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGF1ZGlvQ29uc3RyYWlu
dHMpIGZpbmFsOwogCiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2
aWNlcygpIGZpbmFsOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCmluZGV4IDQwNzg4ZDdlYTUzNGJmOTU3ODli
MWZlZjc5NTMyNjVlNmE0ZDlmNDguLmM0MDA1ZWRmMTg4MWQ4NWJkYTkwOTlmMjcwZTE4ZDMwNzg1
NDEyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCkBAIC00MSwyOSArNDEsMjUgQEAKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1jbGFzcyBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJs
aWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xhc3MgTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
Q2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3Qg
U3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJikgZmluYWwgewotICAgICAgICBp
ZiAodHlwZSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbykKLSAgICAgICAgICAg
IHJldHVybiBudWxscHRyOwotCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9D
YXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpKSB7CiAgICAgICAgICAgICBpZiAo
ZGV2aWNlLnBlcnNpc3RlbnRJZCgpID09IGRldmljZUlEKQogICAgICAgICAgICAgICAgIHJldHVy
biBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBjb25zdHJh
aW50cyk7CiAgICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIHsgfTsKICAgICB9CiB9OwogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElP
UykKLVJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1
ZGlvU291cmNlKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UobmFtZSkpOwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2Ut
PmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKLSAgICAgICAgc291cmNlID0gbnVsbHB0
cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJu
IENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZU11dGVk
KGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTc0LDcgKzcwLDcgQEAgUmVmUHRyPE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3Qg
U3RyaW4KIH0KICNlbmRpZgogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYg
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6
QXVkaW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQog
ewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rv
cnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXgg
MTMzMWM3OTE4MTQ0ZTZlOTZmYzJhZjQyNTdiZmMyZTcxZmNkOGU2Ny4uMzY0NTIyYjEzZjcwNGU5
MDg5YmFmODY1ZjliNmI5ODZkYjIzMTMwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTAgKzQyLDEw
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDog
cHVibGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBS
ZWZQdHI8TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNy
ZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGlj
IFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5n
JiBuYW1lKTsKIAotICAgIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0
YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZSgpID0gZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmNwcAppbmRleCBiZDc0ODg2MDYyYTEzNWZiODJkNTcyZmRhYzFjYTYxZTlhNjZiZjEwLi42OGU2
NmEyNWJiMDI0NzQzNDI2MzI5MTI0YmI4ZjNhMTFiNWI4MmViIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmNwcApAQCAtODcsOSArODcsOSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAg
IGlmIChhdWRpb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNl
SW5mbz4gZGV2aWNlSW5mbzsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8g
YXVkaW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJl
bCgpLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmIChhdWRpb1NvdXJjZS0+c3VwcG9ydHNDb25z
dHJhaW50cyhhdWRpb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAg
ICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe2F1ZGlvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2
aWNlLnBlcnNpc3RlbnRJZCgpfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsK
KyAgICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJl
U291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50KSkKKyAgICAgICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJv
ci5jYXB0dXJlU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7
CiAgICAgICAgIH0KIAogICAgICAgICBpZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEw
Nyw5ICsxMDcsOSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0
ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAgIGlmICh2aWRlb0NvbnN0
cmFpbnRzLmlzVmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5m
bzsKICAgICAgICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBN
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsK
LSAgICAgICAgICAgIGlmICh2aWRlb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0Nv
bnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgZGV2aWNlSW5m
by5hcHBlbmQoe3ZpZGVvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJ
ZCgpfSk7CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAgICAgIGlm
IChzb3VyY2VPckVycm9yICYmIHNvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHND
b25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAg
ICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+
Zml0bmVzc1Njb3JlKCksIGRldmljZS5wZXJzaXN0ZW50SWQoKX0pOwogICAgICAgICB9CiAKICAg
ICAgICAgaWYgKGRldmljZUluZm8uaXNFbXB0eSgpKSB7CkBAIC0xMzUsMjYgKzEzNSwyNiBAQCB2
b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdN
ZWRpYVN0cmVhbUhhbmRsZXIgY29tcAogICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkp
IHsKICAgICAgICAgYXV0byYgYXVkaW9EZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6
OmF1ZGlvRGV2aWNlcygpOwogICAgICAgICBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0Rldmlj
ZXNbMF0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMF0ubGFiZWwoKSwgYXVkaW9D
b25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIGF1
ZGlvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAg
YXV0byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRp
b0RldmljZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAo
ISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291
cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0gZWxzZSBpZiAoYXVkaW9EZXZpY2VJRCA9
PSBhdWRpb0RldmljZXNbMV0ucGVyc2lzdGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291
cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMV0ubGFi
ZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAg
ICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOwor
ICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmNyZWF0ZShhdWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAg
ICAgICAgICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNl
cy5hcHBlbmQoc291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAgICAgICAgIH0KICAgICB9CiAKICAg
ICBpZiAoIXZpZGVvRGV2aWNlSUQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8mIHZpZGVvRGV2
aWNlcyA9IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2aWRlb0RldmljZXMoKTsKICAgICAgICAg
aWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzBdLnBlcnNpc3RlbnRJZCgpKSB7Ci0g
ICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
dmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAgICAg
aWYgKHNvdXJjZSkKLSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5y
ZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVv
Q29uc3RyYWludHMpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAgICAg
ICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAg
ICAgICB9IGVsc2UgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzFdLnBlcnNpc3Rl
bnRJZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwot
ICAgICAgICAgICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBw
ZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JF
cnJvciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxh
YmVsKCksIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJv
cikKKyAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291
cmNlKCkpOwogICAgICAgICB9CiAgICAgfQogCkBAIC0xNzQsMTIgKzE3NCwxMiBAQCBWZWN0b3I8
Q2FwdHVyZURldmljZT4gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3Ry
ZWFtRGV2aWNlcygpCiAgICAgcmV0dXJuIHNvdXJjZXM7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkNhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVs
dEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5
KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7
CiAgICAgcmV0dXJuICZNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpOwogfQogCi1S
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6Vmlk
ZW9DYXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRW
aWRlb0ZhY3RvcnkoKQogewogICAgIHJldHVybiAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZh
Y3RvcnkoKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAppbmRleCBjZGU2NTBmYjIxZTFlZTI2
NmFlNWI5Mjk1NzIwMTE5MjVkMTliMWRlLi5lODQxNDIyMjFjYTM4MzA3OWZhNDg2NmIwYWNhYTE5
ZmU1NGFhYTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCkBAIC00NSw4ICs0NSw4IEBAIHBy
aXZhdGU6CiAgICAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygp
IGZpbmFsOwogICAgIHZvaWQgY3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVy
LCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJ
RCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogdmlkZW9Db25zdHJhaW50cykgZmluYWw7CiAKLSAgICBSZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5
KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSog
ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZp
ZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAKaW5kZXggMmU2NjQyMmU4ZTJmYjljZjQ5N2I3MzAxOTQ2MmFjMGYxMDdk
ZjIwMy4uMDZlMmYxYTg3YmE2OTFiMzc0MzEyOWFkZmI0NGJjNDFhNjA0ZDU1ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZS5jcHAKQEAgLTQ4LDI5ICs0OCwyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNs
YXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZh
Y3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7
CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlE
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBTdHJpbmcmKSBmaW5hbCB7Ci0gICAgICAgIGlmICh0eXBlICE9IENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
Ci0KKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29u
c3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
IGZpbmFsIHsKICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2UucGVyc2lzdGVu
dElkKCkgPT0gZGV2aWNlSUQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKICAgICAgICAg
fQotCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0K
IH07CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQotUmVmUHRyPE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0
IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0
dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0
cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UobmFtZSkp
OworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZShuYW1lKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50
cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1
cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9y
RXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291
cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBu
YW1lKQpAQCAtODEsNyArNzcsNyBAQCBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVNdXRlZChjb25zdCBTdHJpbgogfQogI2VuZGlm
CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVWaWRl
b1NvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0
b3J5JiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZVZpZGVvU291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAg
ICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAppbmRleCBkNzk5ODVlNzFhYzJkZTIw
NDhjZjZjYTNiYjliY2RkN2I0ZTA5MzA0Li5hYTYwZWM3ZTVmMzgzMWNmMGMyN2ZkOGYxMDcxMTNi
MDAyZDI5NjA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCkBAIC00NiwxMCArNDYsMTAgQEAgY2xhc3MgR3JhcGhp
Y3NDb250ZXh0OwogY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0
cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICBzdGF0aWMgUmVmUHRyPE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGVNdXRlZChjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0g
ICAgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgc3RhdGljIFZpZGVvQ2Fw
dHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGltZVZpZGVv
U291cmNlKCkgeyB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNz
L2NvY29hL05ldHdvcmtTZXNzaW9uQ29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJv
Y2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCmluZGV4IGQxMzVhZmVlMDEwMTQwZGQw
OWRkMjI4OTc0MGQ3ZDA4ZWI1YzIzMmEuLjY0ZjM5ZWM0Njk1ZGRmMDk3M2Y2YTY5ZTlmYTQ3NmI3
OTQ0YTA1OTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL05ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdDIvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQpAQCAtNjA0LDYgKzYwNCw3IEBAIE5ldHdv
cmtTZXNzaW9uQ29jb2E6Ok5ldHdvcmtTZXNzaW9uQ29jb2EoV2ViQ29yZTo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgTGVnYWN5Q3VzCiAgICAgbV9zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlID0g
W05TVVJMU2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbiBkZWxl
Z2F0ZTpzdGF0aWNfY2FzdDxpZD4obV9zZXNzaW9uV2l0aENyZWRlbnRpYWxTdG9yYWdlRGVsZWdh
dGUuZ2V0KCkpIGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9uUXVldWUgbWFpblF1ZXVlXV07CiAK
ICAgICBjb25maWd1cmF0aW9uLlVSTENyZWRlbnRpYWxTdG9yYWdlID0gbmlsOworICAgIGNvbmZp
Z3VyYXRpb24uX3Nob3VsZFNraXBQcmVmZXJyZWRDbGllbnRDZXJ0aWZpY2F0ZUxvb2t1cCA9IFlF
UzsKICAgICBtX3Nlc3Npb25XaXRob3V0Q3JlZGVudGlhbFN0b3JhZ2VEZWxlZ2F0ZSA9IGFkb3B0
TlMoW1tXS05ldHdvcmtTZXNzaW9uRGVsZWdhdGUgYWxsb2NdIGluaXRXaXRoTmV0d29ya1Nlc3Np
b246KnRoaXMgd2l0aENyZWRlbnRpYWxzOmZhbHNlXSk7CiAgICAgbV9zZXNzaW9uV2l0aG91dENy
ZWRlbnRpYWxTdG9yYWdlID0gW05TVVJMU2Vzc2lvbiBzZXNzaW9uV2l0aENvbmZpZ3VyYXRpb246
Y29uZmlndXJhdGlvbiBkZWxlZ2F0ZTpzdGF0aWNfY2FzdDxpZD4obV9zZXNzaW9uV2l0aG91dENy
ZWRlbnRpYWxTdG9yYWdlRGVsZWdhdGUuZ2V0KCkpIGRlbGVnYXRlUXVldWU6W05TT3BlcmF0aW9u
UXVldWUgbWFpblF1ZXVlXV07CiAgICAgTE9HKE5ldHdvcmtTZXNzaW9uLCAiQ3JlYXRlZCBOZXR3
b3JrU2Vzc2lvbiB3aXRoIGNvb2tpZUFjY2VwdFBvbGljeSAlbHUiLCBjb25maWd1cmF0aW9uLkhU
VFBDb29raWVTdG9yYWdlLmNvb2tpZUFjY2VwdFBvbGljeSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9T
aGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggYmY4ZGQ3NTNmOTczZTcyNmNjYTRj
NWIxNTY5M2Q2NjRiYWNhMjFmMS4uZDA3YmYzZWRkMTA1MTIyMWI5ZmYzNWI4OGJmZDkwOTA2NThm
Yzg5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVudENv
ZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aApAQCAtMzQsNiArMzQsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25PcHRp
b24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1lTWVk
aWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oPgog
CiBuYW1lc3BhY2UgV1RGIHsKQEAgLTcyMiw2ICs3MjMsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1Y3Qg
RW51bVRyYWl0czxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlPiB7CiAgICAgICAg
IFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvCiAgICAgPjsKIH07Cit0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6OlJl
YWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpB
dWRpbywKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbworICAg
ID47Cit9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNw
cAppbmRleCA4MzhhZWYxMzU4OGE2Nzc2N2YwODA4MjAzNDU1YmI1YzUxY2U5MDRkLi45YzNkZTc3
ZTI1ZmNlOGYwNjUyOWQyYjYwNGU1MTViNzYzZTI4YjUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
UHJveHkuY3BwCkBAIC0xMjUsMTQgKzEyNSwyNyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJlbW92
ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6
bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFp
bnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKK3Zv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIGRldmlj
ZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5n
JiBpbnZhbGlkQ29uc3RyYWludHMpCiB7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNl
T3JFcnJvcjsKICAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6OmNy
ZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YShjb25zdHJhaW50c0RhdGEpKTsKLSAgICBhdXRvIHNv
dXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFjdG9y
eSgpLT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoZGV2
aWNlSUQsIHR5cGUsIGNvbnN0cmFpbnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOwotICAg
IHN1Y2NlZWRlZCA9ICEhc291cmNlOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2UgV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86CisgICAgICAgIHNvdXJjZU9y
RXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3Rv
cnkoKS0+Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5wdHIo
KSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZTo6VmlkZW86CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS0+Y3JlYXRlVmlkZW9DYXB0dXJl
U291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5wdHIoKSk7CisgICAgICAgIGJyZWFrOworICAg
IGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KIAotICAgIGlmIChz
b3VyY2UpCi0gICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291cmNl
UHJveHk+KGlkLCAqdGhpcywgc291cmNlLnJlbGVhc2VOb25OdWxsKCkpKTsKKyAgICBzdWNjZWVk
ZWQgPSAhIXNvdXJjZU9yRXJyb3I7CisgICAgaWYgKHNvdXJjZU9yRXJyb3IpCisgICAgICAgIG1f
cHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhpcywg
c291cmNlT3JFcnJvci5zb3VyY2UoKSkpOworICAgIGVsc2UKKyAgICAgICAgaW52YWxpZENvbnN0
cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CiB9CiAKIHZvaWQg
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
IGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggMGU2MzUxODJlMjQzY2M3N2MzNDhl
MDc2NmVkM2VjNWFhZGQwZjE4Mi4uNDEzOWRiMjRkNDc1MjA5ZWMzZTdjZDNjYmY3YmQ4MzRhMjc4
Y2JjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHByaXZh
dGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRl
Y29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNvbm5l
Y3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYpIGZp
bmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29u
c3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNE
YXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CisgICAg
dm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWlu
dDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9vbCYg
c3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CiAgICAgdm9pZCBzdGFydFBy
b2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWludDY0
X3QpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlQ2FwYWJpbGl0aWVzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
Lm1lc3NhZ2VzLmluCmluZGV4IDUyN2RmYTY2YTg0NmY0N2ZkMDgwZDU3ZTcxODMzNzEyMmQ4MWM4
MDguLjFmYzA5M2U1YjMwOTZmNTEwZGRlOGZmNGFjZTY0ZmQxNDAxM2I3YWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBACiAj
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBTdHJpbmcgZGV2aWNlSUQsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52YWxp
ZENvbnN0cmFpbnRzKQorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
RGF0YSBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJh
aW50cykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgU3RvcFByb2R1
Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAtPiAo
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJh
Y2tGb3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBmMmU4ZWNkNjAxOWMwZDA0YzRhNTQxNTQzZGU2
YjU2MmQyNTdhYjFlLi43OGYzMWNhYzQ2YTQ2NTc5MjAzODdjMmJiYzAyYjIwMTQzMTkwNmEwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zvcndh
cmRMaXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBXZWJCYWNr
Rm9yd2FyZExpc3RQcm94eTo6YWRkSXRlbUZyb21VSVByb2Nlc3ModWludDY0X3QgaXRlbUlELCBS
ZWY8SGlzdG9yeUkKIHsKICAgICAvLyBUaGlzIGl0ZW0vaXRlbUlEIHBhaXIgc2hvdWxkIG5vdCBh
bHJlYWR5IGV4aXN0IGluIG91ciBtYXBzLgogICAgIEFTU0VSVCghaGlzdG9yeUl0ZW1Ub0lETWFw
KCkuY29udGFpbnMoaXRlbS5wdHIoKSkpOwotICAgIEFTU0VSVCghaWRUb0hpc3RvcnlJdGVtTWFw
KCkuY29udGFpbnMoaXRlbUlEKSk7CisvLyAgICBBU1NFUlQoIWlkVG9IaXN0b3J5SXRlbU1hcCgp
LmNvbnRhaW5zKGl0ZW1JRCkpOwogCiAgICAgaGlzdG9yeUl0ZW1Ub0lETWFwKCkuc2V0PEl0ZW1B
bmRQYWdlSUQ+KGl0ZW0ucHRyKCksIHsgLml0ZW1JRCA9IGl0ZW1JRCwgLnBhZ2VJRCA9IHBhZ2VJ
RCB9KTsKICAgICBpZFRvSGlzdG9yeUl0ZW1NYXAoKS5zZXQoaXRlbUlELCBpdGVtLnB0cigpKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYjMxYWExOGUxYjY4MjkxNDk3NTc5ODgxMzhjNmQy
ZjBmZTZiNDRkYy4uNGQ0ZjAyNjJmZDliMTE4M2I4MDQzOTA5NGU1ZjMxNGNmMDZlNTQ1YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJl
TWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVk
aWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHZvaWQgVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1l
dGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNl
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3Ig
VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5n
JiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBl
LCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAgICBp
ZiAoIWNvbnN0cmFpbnRzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJu
IHsgfTsKIAogICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOwogICAgIE1lZGlhQ29u
c3RyYWludHNEYXRhIGNvbnN0cmFpbnRzRGF0YTsKQEAgLTE5NCwyNCArMTk0LDEzIEBAIFJlZlB0
cjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVk
aWFTb3VyY2VGb3JDYXB0dXJlCiAgICAgY29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25zdHJh
aW50cy0+aXNWYWxpZCgpOwogICAgIGJvb2wgc3VjY2VlZGVkOwogCi0gICAgbV9wcm9jZXNzLnNl
bmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRp
YVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZUlELCB0eXBl
LCBjb25zdHJhaW50c0RhdGEpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpSZXBs
eShzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cyksIDApOwotCi0gICAgUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW86Ci0gICAgICAgIHNvdXJj
ZVR5cGUgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpW
aWRlbzoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6
OlR5cGU6OlZpZGVvOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc291cmNl
VHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Ci0gICAgICAg
IGJyZWFrOwotICAgIH0KLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2UoU3Ry
aW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsK
LSAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UpOwotICAgIHJldHVybiBzb3VyY2U7CisgICAg
U3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdl
czo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0
dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2VJRCwgc291cmNlVHlwZSwgY29uc3Ry
YWludHNEYXRhKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2Vl
ZGVkLCBlcnJvck1lc3NhZ2UpLCAwKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JNZXNz
YWdlKTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5nOjpu
dW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsKKyAgICBt
X3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gV2ViQ29yZTo6
Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogdm9pZCBVc2VyTWVk
aWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIu
aCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaAppbmRleCA0NDZkYTk5MWNhNmM4OGM4NjBmYTcxOTQ1YWQ4ZDZmOWUyZTRkNjdmLi5hOGE5
M2FiZGVlNWU4ZWRjNmQwMjE5OGI1MTA2OTQ5YzVlNDg5YjY3IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysrIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
CkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ3Jvc3NQcm9jZXNz
UmVhbHRpbWVBdWRpb1NvdXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKLWNsYXNzIFVzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBD
OjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSB7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1YmxpYyBX
ZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJsaWMg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVibGlj
IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVi
bGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3MqKTsK
ICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsKQEAgLTUzLDggKzUzLDEwIEBAIHByaXZh
dGU6CiAgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQKICAgICB2b2lkIGluaXRpYWxpemUoY29u
c3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOwogCi0gICAgLy8gV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9yeToKLSAgICBSZWZQdHI8V2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENv
bnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKSBm
aW5hbDsKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGZhY3RvcmllcworICAg
IFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBj
b25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGNvbnN0cmFpbnRzKTsg
fQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNv
dXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZp
Y2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIGNvbnN0cmFp
bnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8gSVBD
OjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVj
dGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308472</attachid>
            <date>2017-04-27 16:22:03 -0700</date>
            <delta_ts>2017-04-27 16:42:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171284-20170427162202.patch</filename>
            <type>text/plain</type>
            <size>82234</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYwMjljMzZkYWY2ZTdh
MzA4NGQwYjAzY2ZhZTcwNTc2YTNhOWI4Yy4uOWFhMDQ5ODdhMWNhMGQyY2M1ZDhmYmI4NWIzOGI1
YzhkOWU5YWJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE1hbnVhbGx5IHRlc3RpbmcgdGhlIGZvbGxvd2lu
ZyBjYXNlczoKKyAgICAgICAgLSBNYWM6IG5vIGNoYW5nZSBvZiBiZWhhdmlvcgorICAgICAgICAt
IGlPUzogcGFnZSBsb2FkZWQgaW4gcG9ydHJhaXQsIHZpZGVvIGlzIHBvcnRyYWl0LiBwYWdlIGxv
YWRlZCBpbiBsYW5kc2NhcGUsIHZpZGVvIGlzIGxhbmRzY2FwZQorICAgICAgICAtIGlPUzogY2hh
bmdpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBtYWtlcyB0aGUgdmlkZW8gc2FtcGxlcyB0byBi
ZSBtb3ZlZCB0byBsYW5kc2NhcGUvcG9ydHJhaXQuCisgICAgICAgIC0gU2FtZSB0ZXN0cyBhcyBh
Ym92ZSB3aXRoIHBlZXIgY29ubmVjdGlvbi4KKworICAgICAgICBNYWtpbmcgRG9jdW1lbnQgaGF2
aW5nIGFuIE9yaWVudGF0aW9uTm90aWZpZXIgdGhhdCBBVlZpZGVvQ2FwdHVyZVNvdXJjZXMgZ2V0
IHJlZ2lzdGVyZWQgdG8uCisgICAgICAgIE1ha2luZyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBhbiBP
cmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciBzbyB0aGF0IGl0IGNhbiBjaGFuZ2VzIHdpZHRo
L2hlaWdodCBpZiBuZWVkZWQuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gc3BlY2lhbGl6ZSBD
YXB0dXJlRmFjdG9yeSBpbiBWaWRlb0NhcHR1cmVGYWN0b3J5IGFuZCBBdWRpb0NhcHR1cmVGYWN0
b3J5LgorICAgICAgICBSZWZhY3RvcmluZyB0byByZXR1cm4gYSBDYXB0dXJlU291cmNlT3JFcnJv
ciBpbnN0ZWFkIG9mIHBhc3NpbmcgYW4gb3V0IHBhcmFtZXRlciBwbHVzIHJldHVybmluZyBhIFJl
ZlB0ci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b3JpZW50YXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL09yaWVudGF0aW9uTm90aWZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oLgorICAgICAg
ICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXI6OnNldE5vdGlmaWVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyOjp+T2JzZXJ2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6b3JpZW50YXRpb25D
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6OmFkZE9ic2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6OnJlbW92ZU9ic2Vy
dmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjptb25pdG9yT3JpZW50
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yOjpDYXB0dXJlU291cmNl
T3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6b3BlcmF0
b3IgYm9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6c291cmNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNl
dEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp1bnNldEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzZXRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRBdWRpb0ZhY3RvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdFZpZGVv
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjph
dWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZBdWRpb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNl
OjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjptb25pdG9yT3Jp
ZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6Om9yaWVu
dGF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
cHJvY2Vzc05ld0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6
OmNyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRBdWRpb0ZhY3Rv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdFZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFTdHJl
YW0pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVm
YXVsdFZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oOgorCiAyMDE3LTA0LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBMYXlvdXRUZXN0IHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1ldmVudC5o
dG1sIGlzIGEgZmxha3kgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmM2Y3ZjU1MzhhMDkyZTJmZTA5YWRk
MjdhOWZmZWQyNDZmY2QzMTQxLi43NDU2YTdkOGQ4Y2M3NmE0MTE3ZTJhMDgxNjA3NzM5NzlhNjUy
NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQtMjUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBzdHJl
YW1zIHNob3VsZCBmb2xsb3cgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBzcGVjaWFsaXplIENh
cHR1cmVGYWN0b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkuCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1cmVTb3VyY2VPckVycm9y
IGluc3RlYWQgb2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIGluIGFkZGl0aW9uIHRvIHJldHVy
bmluZyBhIFJlZlB0ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6
CisKIDIwMTctMDQtMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMTM3NjQpOiBBc3luYyBkZWNvZGluZyBvZiBhbmlt
YXRlZCBpbWFnZXMgaXMgZGlzYWJsZWQgZm9yIEltYWdlRG9jdW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmlu
ZGV4IDZlYjQxOTQxYTcyNDVhMjE2ZDcwODQ0NjQ5NTYzZjYwZThmOGM2NTYuLjRkMmJmYmM2NTI1
MTBmYmRkY2U3Mjc0YmRjZThkNjU4OTBmOTlkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTY3LDYg
KzE2Nyw3IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coY29uc3QgU3RyaW5nJiBhdWRp
b0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RlCiAgICAgICAgICAgICBkZW55KE1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVycm9yLCBlbXB0eVN0cmluZygpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBwcml2YXRlU3RyZWFtLT5tb25pdG9y
T3JpZW50YXRpb24oZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkt
Pm9yaWVudGF0aW9uTm90aWZpZXIoKSk7CiAKICAgICAgICAgYXV0byBzdHJlYW0gPSBNZWRpYVN0
cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHByaXZhdGVTdHJlYW0ucmVs
ZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGlmIChzdHJlYW0tPmdldFRyYWNrcygpLmlzRW1wdHko
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDkwMTgxNjQ4ZWIyODgwYjRiNWI2MTg5OWEyZTczZDM2ZmY2ZDM5MGQuLmZiOWU3
N2Y4OTg0NjU2NWRiM2Q5MGQ4ZGU4ZmU5NmVmMzQzYTg3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NTUsNiArMTc1NSw3
IEBACiAJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFEMTM4
MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0NzFFNTNFOThDMDBENjIyMDcg
LyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0OTFF
NTNFQUIwMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRD
Q29udHJvbGxlci5jcHAgKi87IH07CisJCTQxODRGNTE2MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmll
bnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg4NUI5
MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBG
b3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4NUI5MjEx
QjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovOyB9OwogCQk0MThBMDZEMDEz
M0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZl
bnREaXNwYXRjaGVyLmggKi87IH07CkBAIC05MzY3LDYgKzkzNjgsNyBAQAogCQk0MTgxNzA3RDEz
ODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0Nv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIy
MDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4
NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPcmllbnRhdGlvbk5vdGlmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAv
KiBGb3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEw
NkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzk3Miw2ICsyMzk3NCw3IEBACiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAwODMy
ODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAxNDlG
Q0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLAogCQkJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFF
QSAvKiBOb3RJbXBsZW1lbnRlZC5oICovLAorCQkJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAv
KiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLywKIAkJCQk0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0Yg
LyogUGFzdGVib2FyZC5oICovLAogCQkJCUM1Rjc2NUI0MTRFMUQ0MTQwMDZDODk5QiAvKiBQYXN0
ZWJvYXJkU3RyYXRlZ3kuaCAqLywKIAkJCQkxQUY1RTREMjFFNTY3MzVBMDA0QTFGMDEgLyogUGFz
dGVib2FyZFdyaXRlckRhdGEuY3BwICovLApAQCAtMjk1OTcsNiArMjk2MDAsNyBAQAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMkUzOEVGRTFFODM5NkZEMDBDQTNBREYgLyogQ1NTRm9udFN0eWxlVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI2MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0
TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODRGNTE2MUVBRjA1
QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lU3BhY2luZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8qIFNWR1RleHRNZXRy
aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZH
VGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDNhY2Q1ZTliMTc1ZTViMjllZTM0ZmI5NmM4MjgwOTkyMjQ3NGVlMmMuLmRjYmZmYTQz
MzUwNDY4YWEyZDdiNmQzZWQ0ZmZhNjAzY2QzZjFjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNDMzLDYgKzQzMywxNyBAQCBIYXNoU2V0PERvY3VtZW50Kj4mIERvY3VtZW50OjphbGxE
b2N1bWVudHMoKQogICAgIHJldHVybiBkb2N1bWVudHM7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50
IGN1cnJlbnRPcmllbnRhdGlvbihGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKE9SSUVOVEFU
SU9OX0VWRU5UUykKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIHJldHVybiBmcmFtZS0+b3JpZW50
YXRpb24oKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyNlbmRpZgorICAgIHJl
dHVybiAwOworfQorCiBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwm
IHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFn
cykKICAgICA6IENvbnRhaW5lck5vZGUoKnRoaXMsIENyZWF0ZURvY3VtZW50KQogICAgICwgVHJl
ZVNjb3BlKCp0aGlzKQpAQCAtNDgzLDYgKzQ5NCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENsYXNzZXMsIHVuc2ln
CiAjZW5kaWYKICAgICAsIG1faXNTeW50aGVzaXplZChjb25zdHJ1Y3Rpb25GbGFncyAmIFN5bnRo
ZXNpemVkKQogICAgICwgbV9pc05vblJlbmRlcmVkUGxhY2Vob2xkZXIoY29uc3RydWN0aW9uRmxh
Z3MgJiBOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQorICAgICwgbV9vcmllbnRhdGlvbk5vdGlmaWVy
KGN1cnJlbnRPcmllbnRhdGlvbihmcmFtZSkpCiB7CiAgICAgYWxsRG9jdW1lbnRzKCkuYWRkKHRo
aXMpOwogCkBAIC02OTU0LDQgKzY5NjYsMTAgQEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVtb3ZlSW5E
b2N1bWVudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgc2hhZG93Um9vdCkKICAgICBtX2luRG9jdW1l
bnRTaGFkb3dSb290cy5yZW1vdmUoJnNoYWRvd1Jvb3QpOwogfQogCit2b2lkIERvY3VtZW50Ojpv
cmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIGRpc3BhdGNoV2luZG93
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwg
ZmFsc2UsIGZhbHNlKSk7CisgICAgbV9vcmllbnRhdGlvbk5vdGlmaWVyLm9yaWVudGF0aW9uQ2hh
bmdlZChvcmllbnRhdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZmQ3YmFmNmEwNTAzMDVmNjRlZTNiNTA3MTJjMDk3NGZjZWVlMThkMy4u
YWU5MzQ1NGQ2ODNmNzFiODA0Y2YxZTg3MGQzMDllZWNlNDNkOGFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNl
cnZlci5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogI2luY2x1ZGUgIlBhZ2VW
aXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAi
UmVmZXJyZXJQb2xpY3kuaCIKQEAgLTEzMDEsNiArMTMwMiw5IEBAIHB1YmxpYzoKIAogICAgIENv
bnN0YW50UHJvcGVydHlNYXAmIGNvbnN0YW50UHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuICpt
X2NvbnN0YW50UHJvcGVydHlNYXA7IH0KIAorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGlu
dCBvcmllbnRhdGlvbik7CisgICAgT3JpZW50YXRpb25Ob3RpZmllciYgb3JpZW50YXRpb25Ob3Rp
ZmllcigpIHsgcmV0dXJuIG1fb3JpZW50YXRpb25Ob3RpZmllcjsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQ
bGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwg
dW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxh
Z3MgPSAwKTsKQEAgLTE3NTUsNiArMTc1OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZERp
c3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorICAg
IE9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyOworCiAgICAgc3RhdGlj
IGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGU7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCmluZGV4IGZkZWZjZDJjZmZlMTRhMDg3YWJlMGJhOGU2YjMxZWJjZDgwZDYxYjMuLmM2YzVi
MjNkOTY0ODFjOTBjNTZhN2VhMDI5NjBlOTlhZTRhNDQ3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC0yOTYsOSArMjk2LDEwIEBAIHZvaWQgRnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdlZCgpCiAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dCgpKQogICAgICAgICBmcmFtZXMuYXBwZW5kKCpmcmFtZSk7CiAKKyAgICBh
dXRvIG5ld09yaWVudGF0aW9uID0gb3JpZW50YXRpb24oKTsKICAgICBmb3IgKGF1dG8mIGZyYW1l
IDogZnJhbWVzKSB7CiAgICAgICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9j
dW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5kaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOworICAgICAgICAgICAgZG9jdW1lbnQtPm9yaWVudGF0aW9uQ2hhbmdlZChuZXdPcmllbnRh
dGlvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9P
cmllbnRhdGlvbk5vdGlmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL09yaWVudGF0aW9u
Tm90aWZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNDQyOGY1YjYxZmFhODEwNmEzMTA2YzEzODU4OTFlODE2
MDY3ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRh
dGlvbk5vdGlmZXIuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllciB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgT3JpZW50YXRpb25Ob3RpZmllcihpbnQgb3JpZW50YXRpb24p
IHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CisgICAgfk9yaWVudGF0aW9uTm90aWZp
ZXIoKTsKKworICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbik7CisK
KyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpOworICAgICAgICB2aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmll
bnRhdGlvbikgPSAwOworICAgICAgICB2b2lkIHNldE5vdGlmaWVyKE9yaWVudGF0aW9uTm90aWZp
ZXIqIG5vdGlmaWVyKSB7IG1fbm90aWZpZXIgPSBub3RpZmllcjsgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgT3JpZW50YXRpb25Ob3RpZmllciogbV9ub3RpZmllciB7IG51bGxwdHIgfTsKKyAg
ICB9OworCisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOworICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICBpbnQgb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29yaWVudGF0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8T2JzZXJ2ZXI+PiBtX29ic2VydmVyczsKKyAgICBpbnQgbV9vcmllbnRhdGlvbjsK
K307CisKK2lubGluZSBPcmllbnRhdGlvbk5vdGlmaWVyOjp+T3JpZW50YXRpb25Ob3RpZmllcigp
Cit7CisgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAg
b2JzZXJ2ZXIuc2V0Tm90aWZpZXIobnVsbHB0cik7Cit9CisKK2lubGluZSBPcmllbnRhdGlvbk5v
dGlmaWVyOjpPYnNlcnZlcjo6fk9ic2VydmVyKCkKK3sKKyAgICBpZiAobV9ub3RpZmllcikKKyAg
ICAgICAgbV9ub3RpZmllci0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworfQorCitpbmxpbmUgdm9p
ZCBPcmllbnRhdGlvbk5vdGlmaWVyOjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9u
KQoreworICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKKyAgICBmb3IgKE9ic2VydmVy
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci5vcmllbnRhdGlvbkNo
YW5nZWQob3JpZW50YXRpb24pOworfQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVy
OjphZGRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKG9ic2VydmVyKTsKKyAgICBvYnNlcnZlci5zZXROb3RpZmllcih0aGlzKTsKK30KKworaW5s
aW5lIHZvaWQgT3JpZW50YXRpb25Ob3RpZmllcjo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9i
c2VydmVyKQoreworICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZl
cl0oYXV0byBpdGVtKSB7CisgICAgICAgIGlmICgmb2JzZXJ2ZXIgIT0gJml0ZW0uZ2V0KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKG51
bGxwdHIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKaW5kZXggYzhmYWI2ODY4N2JkODc1ZjcxZjcyNzU1ZjUwOWI1ZmMxNTc3Njk3OC4u
Y2JiM2U1NWFhYjIyMzhmZjZlMTFiM2ViN2ZiM2Y2MzZlMTk3YWQwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuY3BwCkBAIC0yOTgsNiArMjk4LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hl
ZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIH0pOwog
fQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0
aW9uTm90aWZpZXImIG5vdGlmaWVyKQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNr
U2V0LnZhbHVlcygpKSB7CisgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNDYXB0dXJlU291
cmNlKCkgJiYgdHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
bykKKyAgICAgICAgICAgIHRyYWNrLT5zb3VyY2UoKS5tb25pdG9yT3JpZW50YXRpb24obm90aWZp
ZXIpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggOWI1YWEyZTY3OGE1Njk5NTY1
YTE5N2MwODA4YTA3NWEyNTYyZjU4Mi4uY2M1MWZiNmExMDc2MGYxNDIwODFiNjMxOWNmMTEyNzRl
ZWZmMjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW07CitjbGFzcyBPcmllbnRhdGlvbk5vdGlmaWVy
OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsK
IHB1YmxpYzoKQEAgLTEwNiw2ICsxMDcsOCBAQCBwdWJsaWM6CiAKICAgICBXZWFrUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CiAKKyAgICB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRh
dGlvbk5vdGlmaWVyJik7CisKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIHZvaWQgc2V0VmlkZW9S
ZW5kZXJlcihPd3JHc3RWaWRlb1JlbmRlcmVyKiByZW5kZXJlciwgR3N0RWxlbWVudCogc2luaykg
eyBtX2dzdFZpZGVvUmVuZGVyZXIgPSByZW5kZXJlcjsgbV9nc3RWaWRlb1NpbmtFbGVtZW50ID0g
c2luazsgfQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gZ2V0VmlkZW9TaW5rRWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZ3N0VmlkZW9TaW5rRWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmlu
ZGV4IDkwZTIyMmIzODI2YzBjMzU0YzRmMjFlNmViODVkZWYxYjc1OTJmN2MuLjJhZjYxMWZhZjk0
ZjlmODI0ZTEzYmMwNjM0YWZmYTc5Y2U3M2RmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMx
LDggKzMxLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSZWFsdGltZU1lZGlh
U291cmNlX2gKLSNkZWZpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZV9oCisjcHJhZ21hIG9uY2UKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTU4LDkgKzU3LDEyIEBAIGNsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CitjbGFzcyBPcmllbnRhdGlvbk5vdGlmaWVy
OwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3M7CiAKK3N0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKKwogY2xhc3MgV0VCQ09SRV9F
WFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CkBAIC04MywxMyArODUs
MjIgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCAvKm51bWJlck9mRnJhbWVzKi8pIHsgfQogICAgIH07
CiAKLSAgICBjbGFzcyBDYXB0dXJlRmFjdG9yeSB7CisgICAgY2xhc3MgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5
KCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgICAgIAorICAgIHByb3RlY3RlZDoKKyAgICAgICAg
QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICB9OworCisgICAgY2xhc3MgVmlk
ZW9DYXB0dXJlRmFjdG9yeSB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5DYXB0dXJl
RmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICAgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpID0gMDsKKyAgICAgICAgdmlydHVhbCB+
VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiB2aWRl
b0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogCiAgICAgcHJvdGVjdGVk
OgotICAgICAgICBDYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgVmlkZW9DYXB0
dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+UmVhbHRpbWVN
ZWRpYVNvdXJjZSgpIHsgfQpAQCAtMTM1LDYgKzE0Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dmlydHVhbCB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJikgeyB9
CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAt
MjI5LDggKzI0MiwxOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zdXBwcmVzc05vdGlmaWNhdGlv
bnMgeyB0cnVlIH07CiB9OwogCitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeworICAgIENh
cHR1cmVTb3VyY2VPckVycm9yKCkgPSBkZWZhdWx0OworICAgIENhcHR1cmVTb3VyY2VPckVycm9y
KFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkgOiBjYXB0dXJlU291cmNlKFdURk1v
dmUoc291cmNlKSkgeyB9CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IoU3RyaW5nJiYgbWVzc2Fn
ZSkgOiBlcnJvck1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSkgeyB9CisgICAgCisgICAgb3BlcmF0
b3IgYm9vbCgpICBjb25zdCB7IHJldHVybiAhIWNhcHR1cmVTb3VyY2U7IH0KKyAgICBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gc291cmNlKCkgeyByZXR1cm4gY2FwdHVyZVNvdXJjZS5yZWxlYXNl
Tm9uTnVsbCgpOyB9CisgICAgCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1
cmVTb3VyY2U7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKK307CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBS
ZWFsdGltZU1lZGlhU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5k
ZXggOTU1OTk4ZDY2NzFjZGQxNWJiMDdiYTkyMzAyNjJmOWE3MjY2Mzc0Ni4uZjRjMmJhNjg0ODNk
MTg3YzcwYjgzN2FmNGExMDk3ZDcyZDFjODQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAKQEAgLTY2LDIzICs2NiwyMyBAQCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpCiB7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVG
YWN0b3J5JiBmYWN0b3J5KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRBdWRp
b0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSkKIHsKICAgICBtX2F1ZGlvRmFjdG9yeSA9ICZmYWN0b3J5OwogfQogCi12b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkNhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Ojp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0
b3J5JiBmYWN0b3J5KQogewogICAgIGlmIChtX2F1ZGlvRmFjdG9yeSA9PSAmZmFjdG9yeSkKICAg
ICAgICAgbV9hdWRpb0ZhY3RvcnkgPSBudWxscHRyOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0Vmlk
ZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3Rv
cnkpCiB7CiAgICAgbV92aWRlb0ZhY3RvcnkgPSAmZmFjdG9yeTsKIH0KIAotdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFj
dG9yeSYgZmFjdG9yeSkKIHsKICAgICBpZiAobV92aWRlb0ZhY3RvcnkgPT0gJmZhY3RvcnkpCiAg
ICAgICAgIG1fdmlkZW9GYWN0b3J5ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAppbmRleCA1MTI0MWFkOTE4MjJhMmQ3ODBiMDNmYzFmMmMxZWNkNjM2NzE1NTc5Li4zMjFl
NjNmN2NiNTU0MzQzMTY5Y2YyNWI3ZjQxMTQzYTRlOTY4NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCkBAIC02NiwxNiArNjYsMTYgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1
YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0
ZWRDb25zdHJhaW50cygpIHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7IH0KIAotICAg
IHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRBdWRp
b0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgdmlydHVhbCBSZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkqIGRlZmF1bHRBdWRpb0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmly
dHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBkZWZhdWx0Vmlk
ZW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVy
ZUZhY3RvcnkqIGF1ZGlvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9GYWN0b3J5OyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5z
ZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYp
OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9GYWN0b3J5OyB9CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFj
dG9yeSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSogdmlkZW9GYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zh
Y3Rvcnk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRmFjdG9yeShSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1bnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVG
YWN0b3J5Jik7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSog
dmlkZW9GYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0ZhY3Rvcnk7IH0KIAogICAgIHZp
cnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1bHRBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFn
ZXIqIGRlZmF1bHRWaWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gbnVsbHB0cjsg
fQpAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXImIHBsYXRmb3JtQ2VudGVyKCk7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CiAKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogbV9hdWRpb0ZhY3RvcnkgeyBudWxscHRyIH07
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5
IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3Rv
cnkqIG1fYXVkaW9GYWN0b3J5IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5IHsgbnVsbHB0ciB9OwogCiAgICAg
Q2FwdHVyZURldmljZU1hbmFnZXIqIG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciB7IG51bGxw
dHIgfTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciogbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA2YzgzNjJm
ZThlODQ1NjExZTNmNWM4NWMxMTVhMmZlMjdiZDg3MDk1Li43OTg4YzFlMjlhNDNmNTU4NGI0YmI1
ZDA3NmNmOWQxMGEyY2M0Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNDQs
OSArNDQsOSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIEFW
QXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIEFWTWVkaWFDYXB0dXJlU291cmNlIHsKIHB1Ymxp
YzoKIAotICAgIHN0YXRpYyBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNh
cHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShBVkNh
cHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3Rvcnko
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSgpOwogCiBwcml2YXRlOgogICAgIEFWQXVkaW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmlj
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCmlu
ZGV4IDZkYjFjNzVmMjBmY2U5NjA2OWU3MzZlMjJjNGM3Njg0YjMxZmY0OGQuLjZlNTlkMmUyOTBl
ZmRmZGZiYTc3Y2Q4Yzg0MWRlYjAzMWFlYzE5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3Vy
Y2UubW0KQEAgLTc3LDMwICs3NywyNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24s
IEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgQVZBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlRmFjdG9y
eSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1
YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKKyAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAg
ICAgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNs
YXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmRldmljZUlEXTsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RCh0eXBlLCAhZGV2aWNlIHx8IChkZXZpY2UgJiYgdHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpBdWRpbykpOwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlk
Q29uc3RyYWludCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzKSA6
IENhcHR1cmVTb3VyY2VPckVycm9yKCk7CiAgICAgfQogfTsKIAotUmVmUHRyPEFWTWVkaWFDYXB0
dXJlU291cmNlPiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5
cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCitDYXB0dXJlU291
cmNlT3JFcnJvciBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5
cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgQVZB
dWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkKSk7CiAgICAgaWYgKGNvbnN0
cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRz
KCpjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgICAgIGludmFs
aWRDb25zdHJhaW50ID0gcmVzdWx0LnZhbHVlKCkuZmlyc3Q7Ci0gICAgICAgICAgICBzb3VyY2Ug
PSBudWxscHRyOwotICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9CiAKLSAgICByZXR1cm4g
c291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkp
OwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFj
dG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBVkF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0
dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGE4MjE1
ODAxMTk4ZDRhODdhMDAyMzE2ZDM1MWFmZWUwZGYwZmY3NDUuLjlhNmMyNmNhMzMyM2Y5NzAzNzlh
NWU0MDY3ZmUyNTM3ZTVjYzgxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0y
MywxMiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZV9oCi0jZGVmaW5lIEFWVmlkZW9DYXB0dXJlU291cmNlX2gKKyNwcmFnbWEgb25j
ZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAogI2lu
Y2x1ZGUgIkFWTWVkaWFDYXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3Rp
ZmVyLmgiCiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1MgQVZGcmFtZVJhdGVSYW5n
ZTsKQEAgLTQzLDExICs0MywxMSBAQCBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CiBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogCi1jbGFzcyBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7CitjbGFzcyBBVlZpZGVv
Q2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmll
bnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxB
Vk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKTsKKyAgICBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBpbnQzMl90IHdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQogICAgIGludDMyX3QgaGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9oZWlnaHQ7IH0KQEAgLTY2LDEyICs2NiwxOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgYXBwbHlGcmFtZVJhdGUoZG91YmxlKSBmaW5hbDsKICAgICBib29sIHNldFByZXNldChOU1N0
cmluZyopOwogCisgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmll
ciYpIGZpbmFsOworICAgIHZvaWQgY29tcHV0ZVNhbXBsZVJvdGF0aW9uKCk7CisKICAgICBOU1N0
cmluZyAqYmVzdFNlc3Npb25QcmVzZXRGb3JWaWRlb0RpbWVuc2lvbnMoc3RkOjpvcHRpb25hbDxp
bnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0KSBjb25zdDsKICAgICBib29sIHN1
cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0
aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikgZmluYWw7CiAKICAgICB2
b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYpIGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYpIGZpbmFsOwogCisgICAgLy8gT3Jp
ZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgQVBJCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5n
ZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3Ry
YWludChkb3VibGUgbWluRnJhbWVSYXRlLCBkb3VibGUgbWF4RnJhbWVSYXRlKTsKIAogICAgIGJv
b2wgdXBkYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmKTsKQEAgLTkwLDEwICs5NiwxMSBA
QCBwcml2YXRlOgogICAgIEZsb2F0NjQgbV9mcmFtZVJhdGUgeyAwIH07CiAgICAgaW50MzJfdCBt
X3dpZHRoIHsgMCB9OwogICAgIGludDMyX3QgbV9oZWlnaHQgeyAwIH07CisgICAgaW50IG1fc2Vu
c29yT3JpZW50YXRpb24geyAwIH07CisgICAgaW50IG1fZGV2aWNlT3JpZW50YXRpb24geyAwIH07
CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gQVZWaWRl
b0NhcHR1cmVTb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDg4MTMx
YjhkYjA3Y2FmN2Y4MDNkMTNhZjUyNDk5YWE4NTBjMWQ4OTQuLjNlZTI1YzhhOGU0MDZjMDIxNDYy
YjhiMWI0MjNkMDkwMmZmMTRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAg
LTg1LDYgKzg1LDcgQEAgU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZGcmFtZVJhdGVS
YW5nZSkKICNkZWZpbmUgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXIgZ2V0QVZDYXB0dXJlVmlk
ZW9QcmV2aWV3TGF5ZXJDbGFzcygpCiAjZGVmaW5lIEFWRnJhbWVSYXRlUmFuZ2UgZ2V0QVZGcmFt
ZVJhdGVSYW5nZUNsYXNzKCkKIAorU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk1l
ZGlhVHlwZVZpZGVvLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZG
b3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MTI4MHg3MjAsIE5TU3RyaW5nICopCiBT
T0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25Q
cmVzZXQ5NjB4NTQwLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZG
b3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0NjQweDQ4MCwgTlNTdHJpbmcgKikKQEAg
LTEwOSwzMCArMTEwLDI5IEBAIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hcjsKIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1
cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdl
OwogI2VuZGlmCiAKLWNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcm
IGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBmaW5hbCB7
CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbCB7CiAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNh
cHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2VJRF07Ci0gICAgICAg
IEFTU0VSVF9VTlVTRUQodHlwZSwgIWRldmljZSB8fCAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpWaWRlbykpOwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZh
bGlkQ29uc3RyYWludCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgZW1wdHlTdHJpbmcoKSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKLVJl
ZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShB
VkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShB
VkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYobmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkp
OwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAg
ICAgICAgICAgc291cmNlID0gbnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0
KQorICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0LnZhbHVlKCkuZmlyc3QpOwogICAg
IH0KIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
KFdURk1vdmUoc291cmNlKSk7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNl
OjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiB7
CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeT4g
ZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKQEAgLTM0Niw2ICszNDYsMzkgQEAg
dm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6YXBwbHlTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50PiB3aWR0aCwgc3RkOjoKICAgICAgICAgYXBwbHlGcmFtZVJhdGUoZnJhbWVSYXRl
LnZhbHVlKCkpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBzZW5zb3JPcmllbnRhdGlvbihBVkNh
cHR1cmVWaWRlb09yaWVudGF0aW9uIHZpZGVvT3JpZW50YXRpb24pCit7CisjaWYgUExBVEZPUk0o
SU9TKQorICAgIHN3aXRjaCAodmlkZW9PcmllbnRhdGlvbikgeworICAgIGNhc2UgQVZDYXB0dXJl
VmlkZW9PcmllbnRhdGlvblBvcnRyYWl0OgorICAgICAgICByZXR1cm4gMTgwOworICAgIGNhc2Ug
QVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6
CisgICAgICAgIHJldHVybiA5MDsKKyAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25M
YW5kc2NhcGVMZWZ0OgorICAgICAgICByZXR1cm4gLTkwOworICAgIH0KKyNlbHNlCisgICAgc3dp
dGNoICh2aWRlb09yaWVudGF0aW9uKSB7CisgICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0
aW9uUG9ydHJhaXQ6CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9P
cmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKKyAgICAgICAgcmV0dXJuIDE4MDsKKyAgICBj
YXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVSaWdodDoKKyAgICAgICAgcmV0
dXJuIDkwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvbkxhbmRzY2FwZUxlZnQ6
CisgICAgICAgIHJldHVybiAtOTA7CisgICAgfQorI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUg
aW50IHNlbnNvck9yaWVudGF0aW9uRnJvbVZpZGVvT3V0cHV0KEFWQ2FwdHVyZVZpZGVvRGF0YU91
dHB1dFR5cGUqIHZpZGVvT3V0cHV0KQoreworICAgIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBj
b25uZWN0aW9uID0gW3ZpZGVvT3V0cHV0IGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOiBnZXRBVk1l
ZGlhVHlwZVZpZGVvKCldOworICAgIHJldHVybiBjb25uZWN0aW9uID8gc2Vuc29yT3JpZW50YXRp
b24oW2Nvbm5lY3Rpb24gdmlkZW9PcmllbnRhdGlvbl0pIDogMDsKK30KKwogdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgTlNFcnJvciAqZXJy
b3IgPSBuaWw7CkBAIC0zODUsNiArNDE4LDggQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiAgICAgc2V0UHJlc2V0KG1fcGVuZGluZ1ByZXNldC5nZXQo
KSk7CiAjZW5kaWYKIAorICAgIG1fc2Vuc29yT3JpZW50YXRpb24gPSBzZW5zb3JPcmllbnRhdGlv
bkZyb21WaWRlb091dHB1dChtX3ZpZGVvT3V0cHV0LmdldCgpKTsKKyAgICBjb21wdXRlU2FtcGxl
Um90YXRpb24oKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpCkBAIC00MTcsNiArNDUyLDQ2IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OnVwZGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiAgICAg
cmV0dXJuIGZyYW1lUmF0ZSAhPSBtX2ZyYW1lUmF0ZTsKIH0KIAordm9pZCBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVy
KQoreworI2lmIFBMQVRGT1JNKElPUykKKyAgICBub3RpZmllci5hZGRPYnNlcnZlcigqdGhpcyk7
CisgICAgb3JpZW50YXRpb25DaGFuZ2VkKG5vdGlmaWVyLm9yaWVudGF0aW9uKCkpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0obm90aWZpZXIpOworI2VuZGlmCit9CisKK3ZvaWQgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7CisgICAg
QVNTRVJUKG9yaWVudGF0aW9uID09IDAgfHwgb3JpZW50YXRpb24gPT0gOTAgfHwgb3JpZW50YXRp
b24gPT0gLTkwIHx8IG9yaWVudGF0aW9uID09IDE4MCk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlv
biA9IG9yaWVudGF0aW9uOworICAgIGNvbXB1dGVTYW1wbGVSb3RhdGlvbigpOworfQorCit2b2lk
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjb21wdXRlU2FtcGxlUm90YXRpb24oKQoreworICAgIHN3
aXRjaCAobV9zZW5zb3JPcmllbnRhdGlvbiAtIG1fZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICBj
YXNlIDA6CisgICAgICAgIG1fc2FtcGxlUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxODA6CisgICAgY2FzZSAtMTgw
OgorICAgICAgICBtX3NhbXBsZVJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgOTA6CisgICAgICAgIG1fc2Ft
cGxlUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSAtOTA6CisgICAgY2FzZSAtMjcwOgorICAgICAgICBtX3NhbXBsZVJv
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
bV9zYW1wbGVSb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOworICAg
IH0KK30KKwogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyLCBSZXRhaW5QdHI8QVZDYXB0dXJl
Q29ubmVjdGlvblR5cGU+IGNvbm5lY3Rpb24pCiB7CiAgICAgLy8gSWdub3JlIGZyYW1lcyBkZWxp
dmVyZWQgd2hlbiB0aGUgc2Vzc2lvbiBpcyBub3QgcnVubmluZywgd2Ugd2FudCB0byBoYW5nIG9u
dG8gdGhlIGxhc3QgaW1hZ2UKQEAgLTQzMiw1MiArNTA3LDE4IEBAIHZvaWQgQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNh
bXBsZUJ1CiAgICAgbV9idWZmZXIgPSBzYW1wbGVCdWZmZXI7CiAgICAgbV9sYXN0SW1hZ2UgPSBu
dWxscHRyOwogCi0gICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb247Ci0jaWYg
UExBVEZPUk0oSU9TKQotICAgIHN3aXRjaCAoW2Nvbm5lY3Rpb24gdmlkZW9PcmllbnRhdGlvbl0p
IHsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25Qb3J0cmFpdDoKLSAgICAgICAg
cm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJhaXRVcHNp
ZGVEb3duOgotICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpO
b25lOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25M
YW5kc2NhcGVSaWdodDoKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2Nh
cGVMZWZ0OgotICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2Vsc2UKLSAgICBzd2l0Y2ggKFtjb25uZWN0
aW9uIHZpZGVvT3JpZW50YXRpb25dKSB7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0
aW9uUG9ydHJhaXQ6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRh
dGlvblBvcnRyYWl0VXBzaWRlRG93bjoKLSAgICAgICAgcm90YXRpb24gPSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNh
cHR1cmVWaWRlb09yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6Ci0gICAgICAgIHJvdGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVMZWZ0OgotICAgICAgICByb3Rh
dGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OwotICAgICAgICBicmVhazsK
LSAgICB9Ci0jZW5kaWYKLQotICAgIGJvb2wgc2V0dGluZ3NDaGFuZ2VkID0gZmFsc2U7CiAgICAg
Q01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlmIChyb3RhdGlvbiA9PSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwgcm90YXRpb24gPT0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246OkxlZnQpCisgICAgaWYgKG1fc2FtcGxlUm90YXRpb24gPT0gTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQgfHwgbV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCiAgICAgICAgIHN0ZDo6c3dhcChkaW1lbnNpb25z
LndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAgICBpZiAoZGltZW5zaW9ucy53aWR0aCAh
PSBtX3dpZHRoIHx8IGRpbWVuc2lvbnMuaGVpZ2h0ICE9IG1faGVpZ2h0KSB7CiAgICAgICAgIG1f
d2lkdGggPSBkaW1lbnNpb25zLndpZHRoOwogICAgICAgICBtX2hlaWdodCA9IGRpbWVuc2lvbnMu
aGVpZ2h0OwotICAgICAgICBzZXR0aW5nc0NoYW5nZWQgPSB0cnVlOwotICAgIH0KIAotICAgIGlm
IChzZXR0aW5nc0NoYW5nZWQpCiAgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQog
Ci0gICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUobV9i
dWZmZXIuZ2V0KCksIHJvdGF0aW9uLCBbY29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKSk7Cisg
ICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUobV9idWZm
ZXIuZ2V0KCksIG1fc2FtcGxlUm90YXRpb24sIFtjb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0p
KTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1
dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBjYXB0dXJl
Q29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA4ZjI0
YzYzMDA5ZWJkYzljYzQxZTFhYmM1ZGVhMWExN2UxNGJmNzU5Li4zOTM5Y2E2MzA5MTRlNzAwYTUx
YjA1NTJkYTk2ZTM1OGQzYzJiZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCkBAIC00Niw0NSArNDYsMzkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6
IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1Ymxp
YzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKLSAgICAgICAgcmV0dXJu
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWlu
dHMsIGludmFsaWRDb25zdHJhaW50KTsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKKyAgICAgICAgcmV0dXJuIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAK
IGNvbnN0IFVJbnQzMiBvdXRwdXRCdXMgPSAwOwogY29uc3QgVUludDMyIGlucHV0QnVzID0gMTsK
IAotUmVmUHRyPENvcmVBdWRpb0NhcHR1cmVTb3VyY2U+IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
IHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFs
aWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQogewotICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIFN0cmluZyBsYWJlbDsK
ICAgICB1aW50MzJfdCBwZXJzaXN0ZW50SUQgPSAwOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBh
dXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5j
b3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBsYWJlbCA9IGRl
dmljZS0+bGFiZWwoKTsKICAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAj
ZW5kaWYKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291
cmNlKGRldmljZUlELCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGxhYmVsLCBwZXJz
aXN0ZW50SUQpKTsKIAogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3Vs
dCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAo
cmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgp
LmZpcnN0OwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLmZp
cnN0KTsKICAgICB9Ci0KLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAyMzVkNWEzMTRkYzJhYzgxMmQ3MmJmODg0
OWI2ZTYxYmQ3OWJjNGRkLi4xM2Y0MTZjZTEyMDUyMzc5NmQ2Y2EyNTI0NzA0MmI5YmMyMjk2Y2Uy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDkgKzUzLDkgQEAgY2xh
c3MgQ2FwdHVyZURldmljZUluZm87CiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxD
b3JlQXVkaW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYp
OworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZvaWQgYWRkRWNob0Nh
bmNlbGxhdGlvblNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKICAgICB2b2lkIHJlbW92
ZUVjaG9DYW5jZWxsYXRpb25Tb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggY2U0ZGFiYjM4ZWJlODg4OGYz
Y2MwMzdmZmY1M2FmYTc0YjBiOTIzOC4uYjBmMjgzYjFkYzc0MmRkMDlhZjY1MWQ3NzI1ZmNhYTY3
MWM4YWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQpAQCAt
ODQsMTMgKzg0LDE0IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0
IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9CiB9CiAKLVJlZlB0
cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
TWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVy
cm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggNGQ1MTQzZWMyOWJiMDdjMTIw
ZWIxMGU0MzEwNjVhMWZlODhhODZiYS4uOTU4MzdiMTFhNWM2ZDk3Zjg3MmI2NTAwNTg4ODQxMDIw
YWNhN2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTI4
LDEzICsyOCwxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjX2gKLSNkZWZpbmUgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiRm9u
dENhc2NhZGUuaCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgorI2luY2x1
ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogCiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpD
VkJ1ZmZlclJlZjsKIHR5cGVkZWYgQ1ZCdWZmZXJSZWYgQ1ZJbWFnZUJ1ZmZlclJlZjsKQEAgLTQz
LDkgKzQzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCAqQ1ZQaXhlbEJ1
ZmZlclBvb2xSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Ugewor
Y2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewog
cHVibGljOgotCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSB7IH0K
IAogcHJpdmF0ZToKQEAgLTU5LDEzICs1OCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRl
U2FtcGxlQnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYp
IGZpbmFsOwogCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSBm
aW5hbDsKKwogICAgIG11dGFibGUgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcHJldmlld0ltYWdl
OwogICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fcHJldmlld0xheWVyOwog
ICAgIG11dGFibGUgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX2J1ZmZlclBvb2w7
CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9kZXZpY2VPcmllbnRhdGlvbiB7IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLm1tCmluZGV4IGJjNjgwYThlYWEzOGVjYzdlMjhhYzA5MjUyMWZhZDc1M2VhZjNlNDcu
LmJlNGJlMDBhZTQ5NTIwYWFlYzg2YzRjMjMxYTYzOTQ4Njg3ZTBlYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUwLDEzICs1MCwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9TYW1wbGVSYXRlID0gOTAwMDA7
CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOwor
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFt
ZSkKQEAgLTE2MSw2ICsxNjIsMjcgQEAgYm9vbCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6
YXBwbHlTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmV0dXJuIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjphcHBseVNpemUobmV3U2l6ZSk7CiB9CiAKK3ZvaWQgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7Cisg
ICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIG1fZGV2aWNlT3JpZW50YXRpb24KKyAgICBz
d2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSAwOgorICAgICAgICBtX2RldmljZU9yaWVu
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgOTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgLTkwOgor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OkxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMTgwOgorICAgICAgICBtX2RldmljZU9y
aWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggNmY0YmY2
MTAxNTAyYzdhNDA1YWI1Y2ZiMTI3MWVjOGY1MzM3MzUyYy4uNWMyNjA1MDI2NTU3MDg0ZGNhMTRk
MTZjYWNhZDE4ZDFiOWU3ZmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLmNwcApAQCAtMTM2LDE5ICsxMzYsMjEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29t
cGwKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBpZiAoIWF1ZGlvRGV2aWNl
SUQuaXNFbXB0eSgpICYmIG1fYXVkaW9GYWN0b3J5KSB7Ci0gICAgICAgIGlmIChhdXRvIGF1ZGlv
U291cmNlID0gbV9hdWRpb0ZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyhhdWRpb0RldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAg
ICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAg
ICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoYXVkaW9EZXZpY2VJRCwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgIGlmICgh
IWF1ZGlvU291cmNlKQorICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJj
ZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBpZiAoIWludmFsaWRDb25z
dHJhaW50LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMg
ZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGludmFsaWRDb25zdHJhaW50LnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBpZiAoIWF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVh
dGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMi
LCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYK
ICAgICB9CiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSAmJiBtX3ZpZGVvRmFjdG9y
eSkgewotICAgICAgICBpZiAoYXV0byB2aWRlb1NvdXJjZSA9IG1fdmlkZW9GYWN0b3J5LT5jcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModmlkZW9EZXZpY2VJ
RCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8sIHZpZGVvQ29uc3RyYWludHMsIGlu
dmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9T
b3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBtX3Zp
ZGVvRmFjdG9yeS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKHZpZGVvRGV2aWNlSUQsIHZpZGVv
Q29uc3RyYWludHMpOworICAgICAgICBpZiAoISF2aWRlb1NvdXJjZSkKKyAgICAgICAgICAgIHZp
ZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291cmNlKCkpOwogI2lmICFMT0dfRElTQUJM
RUQKLSAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0
cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBp
bnZhbGlkQ29uc3RyYWludC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJj
ZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgTE9HKE1lZGlhLCAiUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0oJXApLCB2aWRlbyBjb25z
dHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywgdmlkZW9Tb3VyY2UuZXJyb3JNZXNz
YWdlLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0xODcsMTIgKzE4OSwxOCBA
QCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNl
c0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UuZW5h
YmxlZCgpIHx8IGNhcHR1cmVEZXZpY2UudHlwZSgpICE9IGRldmljZVR5cGUpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSogZmFjdG9yeSA9IHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gPyBt
X3ZpZGVvRmFjdG9yeSA6IG1fYXVkaW9GYWN0b3J5OwotICAgICAgICBpZiAoIWZhY3RvcnkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNl
T3JFcnJvcjsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
VmlkZW8gJiYgbV92aWRlb0ZhY3RvcnkpCisgICAgICAgICAgICBzb3VyY2VPckVycm9yID0gbV92
aWRlb0ZhY3RvcnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLnBlcnNp
c3RlbnRJZCgpLCAmY29uc3RyYWludHMpOworICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYmIG1fYXVkaW9GYWN0b3J5KQorICAgICAgICAg
ICAgc291cmNlT3JFcnJvciA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFpbnRzKTsKIAotICAgICAg
ICBpZiAoYXV0byBjYXB0dXJlU291cmNlID0gZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCks
IGRldmljZVR5cGUsICZjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAg
ICAgYmVzdFNvdXJjZXMuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigpKTsKKyAgICAgICAg
aWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBj
YXNlIG9mIGludmFsaWQgY29uc3RyYWludHMgb24gbW9yZSB0aGFuIG9uZSBkZXZpY2UuCisgICAg
ICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1l
c3NhZ2UpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgYmVzdFNv
dXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgIH0KIAogICAgIFZlY3Rv
cjxTdHJpbmc+IHNvdXJjZVVJRHM7CkBAIC0yMDcsMTIgKzIxNSwxMiBAQCBWZWN0b3I8U3RyaW5n
PiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25z
dHJhaW50cyhSZQogICAgIHJldHVybiBzb3VyY2VVSURzOwogfQogCi1SZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVs
dEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5
KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkKIHsK
ICAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKTsKIH0KIAotUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWM6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9D
YXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFZpZGVv
RmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggMWJm
NDk3ZmQ2ZDdjM2MxNjZmZGE4MmRlYTJiMTMxYjEzYzhhNDQ4NC4uZmYxZjg5N2JiZWRlOTlhNDQw
NTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5oCkBAIC01NCw4ICs1NCw4IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8U3Ry
aW5nPiBiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWlu
dCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1
ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0Zh
Y3RvcnkoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCmluZGV4IDZl
YzhlOGIwNTNhMTIwOTE0MmRkY2UzMzFkMzhjMGFlYTE3YmRiOGIuLjBmNjRkZTQzN2Y0MTRhYTZi
MGQxOWI4ODRlMjQ3NmU5NDhlN2ZhMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApAQCAtMTAwLDcgKzEwMCw3IEBAIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6dmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMo
VmFsaWRDb25zdHJhaW50c0hhCiAgICAgbV9pbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyID0gbnVs
bHB0cjsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyOjpjcmVhdGVNZWRp
YVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcGxldGlvbkhhbmRsZXIsIGNvbnN0IFN0
cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RldmljZUlELCBjb25zdCBN
ZWRpYUNvbnN0cmFpbnRzKiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopCit2b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFu
ZGxlciYmIGNvbXBsZXRpb25IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNv
bnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqKQogewogICAgIGludCB0eXBlcyA9IE9XUl9NRURJQV9UWVBFX1VO
S05PV047CiAKQEAgLTEwOSw3ICsxMDksNyBAQCB2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFtKE5ld01lZGlhU3RyZWFtSGFuZGxlciBjb21wbAogICAg
IGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpCiAgICAgICAgIHR5cGVzIHw9IE9XUl9NRURJ
QV9UWVBFX1ZJREVPOwogCi0gICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IGNvbXBsZXRpb25IYW5k
bGVyOworICAgIG1fY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KTsKIAogICAgIG93cl9nZXRfY2FwdHVyZV9zb3VyY2VzKHN0YXRpY19jYXN0PE93ck1lZGlhVHlw
ZT4odHlwZXMpLCBtZWRpYVNvdXJjZXNBdmFpbGFibGVDYWxsYmFjaywgdGhpcyk7CiB9CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCmluZGV4
IDZjZGQ3ZDVmZTBjNGE4MjgyZDQxMDM3NGVkNGY3MmM3ODFmZDliMTYuLmIzODcwYzEyZGNiNWRk
NjY3ZTRjYjMwM2U0ODA4YzAyODVjYWIyNGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMv
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5oCkBAIC01Niw3ICs1Niw3IEBAIHB1YmxpYzoK
IAogICAgIHZvaWQgdmFsaWRhdGVSZXF1ZXN0Q29uc3RyYWludHMoVmFsaWRDb25zdHJhaW50c0hh
bmRsZXIgdmFsaWRIYW5kbGVyLCBJbnZhbGlkQ29uc3RyYWludHNIYW5kbGVyIGludmFsaWRIYW5k
bGVyLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzJiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5hbDsKIAotICAgIHZvaWQgY3JlYXRl
TWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogdmlkZW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogYXVkaW9Db25zdHJh
aW50cykgZmluYWw7CisgICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhh
bmRsZXImJiwgY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25zdCBTdHJpbmcmIHZpZGVv
RGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIHZpZGVvQ29uc3RyYWludHMsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGF1ZGlvQ29uc3RyYWludHMpIGZpbmFsOwogCiAgICAgVmVjdG9y
PENhcHR1cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZpbmFsOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuY3BwCmluZGV4IDQwNzg4ZDdlYTUzNGJmOTU3ODliMWZlZjc5NTMyNjVlNmE0ZDlmNDguLmM0
MDA1ZWRmMTg4MWQ4NWJkYTkwOTlmMjcwZTE4ZDMwNzg1NDEyZWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3Bw
CkBAIC00MSwyOSArNDEsMjUgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Q2FwdHVyZUZhY3RvcnkgeworY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VGYWN0b3J5IDog
cHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkgewogcHVibGlj
OgotICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNh
cHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJh
aW50cywgU3RyaW5nJikgZmluYWwgewotICAgICAgICBpZiAodHlwZSAhPSBDYXB0dXJlRGV2aWNl
OjpEZXZpY2VUeXBlOjpBdWRpbykKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCisgICAg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmlu
ZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7
CiAgICAgICAgIGZvciAoYXV0byYgZGV2aWNlIDogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1
ZGlvRGV2aWNlcygpKSB7CiAgICAgICAgICAgICBpZiAoZGV2aWNlLnBlcnNpc3RlbnRJZCgpID09
IGRldmljZUlEKQogICAgICAgICAgICAgICAgIHJldHVybiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBjb25zdHJhaW50cyk7CiAgICAgICAgIH0KLQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiB9OwogCiAj
aWYgIVBMQVRGT1JNKE1BQykgJiYgIVBMQVRGT1JNKElPUykKLVJlZlB0cjxNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcm
IG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5h
bWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291
cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlKG5hbWUpKTsKKyAgICBh
dXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UobmFtZSkp
OwogICAgIGlmIChjb25zdHJhaW50cyAmJiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0
cmFpbnRzKSkKLSAgICAgICAgc291cmNlID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsK
IAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdU
Rk1vdmUoc291cmNlKSk7CiB9CiAKIFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAg
LTc0LDcgKzcwLDcgQEAgUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW4KIH0KICNlbmRpZgogCi1SZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ry
b3llZDxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJu
IGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKaW5kZXggMTMzMWM3OTE4MTQ0ZTZlOTZmYzJhZjQy
NTdiZmMyZTcxZmNkOGU2Ny4uMzY0NTIyYjEzZjcwNGU5MDg5YmFmODY1ZjliNmI5ODZkYjIzMTMw
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuaApAQCAtNDIsMTAgKzQyLDEwIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlIDogcHVibGljIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlIHsKIHB1YmxpYzoKIAotICAgIHN0YXRpYyBSZWZQdHI8TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U+IGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7Cisg
ICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25z
dCBNZWRpYUNvbnN0cmFpbnRzKik7CiAgICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZT4gY3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHN0YXRpYyBD
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIHN0YXRpYyBBdWRpb0NhcHR1cmVGYWN0b3J5
JiBmYWN0b3J5KCk7CiAKICAgICB2aXJ0dWFsIH5Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZSgpID0g
ZGVmYXVsdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAppbmRleCBiZDc0ODg2MDYyYTEz
NWZiODJkNTcyZmRhYzFjYTYxZTlhNjZiZjEwLi42OGU2NmEyNWJiMDI0NzQzNDI2MzI5MTI0YmI4
ZjNhMTFiNWI4MmViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcApAQCAtODcsOSArODcs
OSBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RD
b25zdHJhaW50cyhWYWxpZENvbnN0cmFpbnRzSAogICAgIGlmIChhdWRpb0NvbnN0cmFpbnRzLmlz
VmFsaWQoKSkgewogICAgICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKICAgICAg
ICAgZm9yIChjb25zdCBhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVk
aW9EZXZpY2VzKCkpIHsKLSAgICAgICAgICAgIGF1dG8gYXVkaW9Tb3VyY2UgPSBNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAg
ICAgIGlmIChhdWRpb1NvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyhhdWRpb0NvbnN0cmFpbnRz
LCBpbnZhbGlkQ29uc3RyYWludCkpCi0gICAgICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQo
e2F1ZGlvU291cmNlLT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7Cisg
ICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6
Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAgICAgIGlmICghIXNvdXJj
ZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFp
bnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKKyAgICAgICAgICAgICAg
ICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNz
U2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEwNyw5ICsxMDcsOSBAQCB2b2lkIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyhWYWxp
ZENvbnN0cmFpbnRzSAogICAgIGlmICh2aWRlb0NvbnN0cmFpbnRzLmlzVmFsaWQoKSkgewogICAg
ICAgICBWZWN0b3I8RGV2aWNlSW5mbz4gZGV2aWNlSW5mbzsKICAgICAgICAgZm9yIChjb25zdCBh
dXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsK
LSAgICAgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
Y3JlYXRlKGRldmljZS5sYWJlbCgpLCBudWxscHRyKTsKLSAgICAgICAgICAgIGlmICh2aWRlb1Nv
dXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3Ry
YWludCkpCi0gICAgICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBlbmQoe3ZpZGVvU291cmNlLT5m
aXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CisgICAgICAgICAgICBhdXRv
IHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5s
YWJlbCgpLCBudWxscHRyKTsKKyAgICAgICAgICAgIGlmIChzb3VyY2VPckVycm9yICYmIHNvdXJj
ZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+c3VwcG9ydHNDb25zdHJhaW50cyh2aWRlb0NvbnN0cmFp
bnRzLCBpbnZhbGlkQ29uc3RyYWludCkpCisgICAgICAgICAgICAgICAgZGV2aWNlSW5mby5hcHBl
bmQoe3NvdXJjZU9yRXJyb3IuY2FwdHVyZVNvdXJjZS0+Zml0bmVzc1Njb3JlKCksIGRldmljZS5w
ZXJzaXN0ZW50SWQoKX0pOwogICAgICAgICB9CiAKICAgICAgICAgaWYgKGRldmljZUluZm8uaXNF
bXB0eSgpKSB7CkBAIC0xMzUsMjYgKzEzNSwyNiBAQCB2b2lkIE1vY2tSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcAog
ICAgIGlmICghYXVkaW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byYgYXVkaW9E
ZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OmF1ZGlvRGV2aWNlcygpOwogICAgICAg
ICBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0RldmljZXNbMF0ucGVyc2lzdGVudElkKCkpIHsK
LSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShhdWRpb0RldmljZXNbMF0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAg
ICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNl
LnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9j
a1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMF0ubGFiZWwoKSwgYXVk
aW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAg
ICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAoYXVkaW9EZXZpY2VJRCA9PSBhdWRpb0RldmljZXNbMV0ucGVyc2lz
dGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMV0ubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7
Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5h
cHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShhdWRpb0RldmljZXNbMV0u
bGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVy
cm9yKQorICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5z
b3VyY2UoKSk7CiAgICAgICAgIH0KICAgICB9CiAKICAgICBpZiAoIXZpZGVvRGV2aWNlSUQuaXNF
bXB0eSgpKSB7CiAgICAgICAgIGF1dG8mIHZpZGVvRGV2aWNlcyA9IE1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjp2aWRlb0RldmljZXMoKTsKICAgICAgICAgaWYgKHZpZGVvRGV2aWNlSUQgPT0gdmlk
ZW9EZXZpY2VzWzBdLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAgICAgICAgICBhdXRvIHNvdXJjZSA9
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCks
IHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAgICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAg
ICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAg
ICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVh
dGUodmlkZW9EZXZpY2VzWzBdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOworICAgICAgICAg
ICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBw
ZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgICAgICB9IGVsc2UgaWYgKHZpZGVvRGV2
aWNlSUQgPT0gdmlkZW9EZXZpY2VzWzFdLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAgICAgICAgICBh
dXRvIHNvdXJjZSA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2Vz
WzFdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMpOwotICAgICAgICAgICAgaWYgKHNvdXJjZSkK
LSAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMuYXBwZW5kKHNvdXJjZS5yZWxlYXNlTm9uTnVs
bCgpKTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZpZGVv
U291cmNlOjpjcmVhdGUodmlkZW9EZXZpY2VzWzFdLmxhYmVsKCksIHZpZGVvQ29uc3RyYWludHMp
OworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvcikKKyAgICAgICAgICAgICAgICB2aWRl
b1NvdXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgICAgICB9CiAgICAg
fQogCkBAIC0xNzQsMTIgKzE3NCwxMiBAQCBWZWN0b3I8Q2FwdHVyZURldmljZT4gTW9ja1JlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmdldE1lZGlhU3RyZWFtRGV2aWNlcygpCiAgICAgcmV0dXJu
IHNvdXJjZXM7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCitSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZNb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0
dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRlb0Zh
Y3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQogewogICAgIHJl
dHVybiAmTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuaAppbmRleCBjZGU2NTBmYjIxZTFlZTI2NmFlNWI5Mjk1NzIwMTE5MjVkMTliMWRl
Li5lODQxNDIyMjFjYTM4MzA3OWZhNDg2NmIwYWNhYTE5ZmU1NGFhYTFlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCkBAIC00NSw4ICs0NSw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENhcHR1
cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRl
TWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJh
aW50cykgZmluYWw7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSog
ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNh
cHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZp
bmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1
bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIH07CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKaW5kZXggMmU2
NjQyMmU4ZTJmYjljZjQ5N2I3MzAxOTQ2MmFjMGYxMDdkZjIwMy4uMDZlMmYxYTg3YmE2OTFiMzc0
MzEyOWFkZmI0NGJjNDFhNjA0ZDU1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5jcHAKQEAgLTQ4LDI5ICs0OCwy
NSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7
CitjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJl
YWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmKSBm
aW5hbCB7Ci0gICAgICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZp
ZGVvKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgZm9yIChh
dXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6dmlkZW9EZXZpY2VzKCkpIHsK
ICAgICAgICAgICAgIGlmIChkZXZpY2UucGVyc2lzdGVudElkKCkgPT0gZGV2aWNlSUQpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNl
LmxhYmVsKCksIGNvbnN0cmFpbnRzKTsKICAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxs
cHRyOworICAgICAgICByZXR1cm4geyB9OwogICAgIH0KIH07CiAKICNpZiAhUExBVEZPUk0oTUFD
KSAmJiAhUExBVEZPUk0oSU9TKQotUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2Nr
UmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVh
bHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFD
b25zdHJhaW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihu
ZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UobmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRv
cHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShuYW1lKSk7CiAgICAgaWYgKGNvbnN0
cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAg
ICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNv
dXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsK
IH0KIAogUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtODEsNyArNzcsNyBAQCBS
ZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpj
cmVhdGVNdXRlZChjb25zdCBTdHJpbgogfQogI2VuZGlmCiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6
OkNhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6ZmFjdG9yeSgpCitSZWFs
dGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlRmFjdG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UuaAppbmRleCBkNzk5ODVlNzFhYzJkZTIwNDhjZjZjYTNiYjliY2RkN2I0ZTA5MzA0
Li5hYTYwZWM3ZTVmMzgzMWNmMGMyN2ZkOGYxMDcxMTNiMDAyZDI5NjA5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5o
CkBAIC00NiwxMCArNDYsMTAgQEAgY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3MgTW9ja1Jl
YWx0aW1lVmlkZW9Tb3VyY2UgOiBwdWJsaWMgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVi
bGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRl
KGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqKTsKICAgICBzdGF0aWMgUmVmUHRyPE1vY2tSZWFsdGltZVZpZGVvU291cmNlPiBjcmVh
dGVNdXRlZChjb25zdCBTdHJpbmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhcHR1cmVGYWN0b3J5
JiBmYWN0b3J5KCk7CisgICAgc3RhdGljIFZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsK
IAogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGltZVZpZGVvU291cmNlKCkgeyB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaCBiL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAppbmRleCAwZjU1YjhhZjVh
YjY4Yjg0NDFkMmZiNjBjY2ZjMmM1ZjI3YjdiZDdhLi45NzZkMjNjYTM2MTNjNDczZmZmYTFkMGNh
YWM3OWRiZDhhZWRmMDUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29y
ZUFyZ3VtZW50Q29kZXJzLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1
bWVudENvZGVycy5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9NZWRpYVNl
bGVjdGlvbk9wdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTmV0d29ya0xvYWRNZXRyaWNzLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9QYXltZW50SGVhZGVycy5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
UmVhbHRpbWVNZWRpYVNvdXJjZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2Nyb2xsU25hcE9mZnNl
dHNJbmZvLmg+CiAKIG5hbWVzcGFjZSBXVEYgewpAQCAtNzM0LDYgKzczNSwxNCBAQCB0ZW1wbGF0
ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU+
IHsKICAgICAgICAgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8KICAg
ICA+OwogfTsKK3RlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZT4geworICAgIHVzaW5nIHZhbHVlcyA9IEVudW1WYWx1ZXM8CisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwKKyAgICBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpOb25lLAorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OkF1ZGlvLAorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6
OlZpZGVvCisgICAgPjsKK307CiAjZW5kaWYKIAogdGVtcGxhdGU8PiBzdHJ1Y3QgRW51bVRyYWl0
czxXZWJDb3JlOjpNZWRpYVNlbGVjdGlvbk9wdGlvbjo6VHlwZT4gewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCmluZGV4IDgzOGFlZjEzNTg4YTY3NzY3ZjA4MDgyMDM0NTViYjVjNTFjZTkw
NGQuLjljM2RlNzdlMjVmY2U4ZjA2NTI5ZDJiNjA0ZTUxNWI3NjNlMjhiNTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2Fw
dHVyZU1hbmFnZXJQcm94eS5jcHAKQEAgLTEyNSwxNCArMTI1LDI3IEBAIFVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHk6On5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5KCkKICAgICBtX3By
b2Nlc3MucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1lKCkpOwogfQogCi12b2lkIFVzZXJNZWRpYUNh
cHR1cmVNYW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhD
b25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzRGF0
YSYgY29uc3RyYWludHNEYXRhLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0
cmFpbnRzKQordm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpjcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0
cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2Vl
ZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykKIHsKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBzb3VyY2VPckVycm9yOwogICAgIGF1dG8gY29uc3RyYWludHMgPSBNZWRpYUNvbnN0cmFp
bnRzSW1wbDo6Y3JlYXRlKE1lZGlhQ29uc3RyYWludHNEYXRhKGNvbnN0cmFpbnRzRGF0YSkpOwot
ICAgIGF1dG8gc291cmNlID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCku
YXVkaW9GYWN0b3J5KCktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHMucHRyKCksIGludmFsaWRDb25zdHJh
aW50cyk7Ci0gICAgc3VjY2VlZGVkID0gISFzb3VyY2U7CisgICAgc3dpdGNoICh0eXBlKSB7Cisg
ICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzoKKyAgICAg
ICAgc291cmNlT3JFcnJvciA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigp
LmF1ZGlvRmFjdG9yeSgpLT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGNvbnN0
cmFpbnRzLnB0cigpKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzoKKyAgICAgICAgc291cmNlT3JFcnJvciA9IFJlYWx0
aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLnZpZGVvRmFjdG9yeSgpLT5jcmVhdGVW
aWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGNvbnN0cmFpbnRzLnB0cigpKTsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25l
OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgYnJlYWs7CisgICAgfQog
Ci0gICAgaWYgKHNvdXJjZSkKLSAgICAgICAgbV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3Vu
aXF1ZTxTb3VyY2VQcm94eT4oaWQsICp0aGlzLCBzb3VyY2UucmVsZWFzZU5vbk51bGwoKSkpOwor
ICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlT3JFcnJvcjsKKyAgICBpZiAoc291cmNlT3JFcnJvcikK
KyAgICAgICAgbV9wcm94aWVzLnNldChpZCwgc3RkOjptYWtlX3VuaXF1ZTxTb3VyY2VQcm94eT4o
aWQsICp0aGlzLCBzb3VyY2VPckVycm9yLnNvdXJjZSgpKSk7CisgICAgZWxzZQorICAgICAgICBp
bnZhbGlkQ29uc3RyYWludHMgPSBXVEZNb3ZlKHNvdXJjZU9yRXJyb3IuZXJyb3JNZXNzYWdlKTsK
IH0KIAogdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpzdGFydFByb2R1Y2luZ0Rh
dGEodWludDY0X3QgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAppbmRleCAwZTYzNTE4MmUy
NDNjYzc3YzM0OGUwNzY2ZWQzZWM1YWFkZDBmMTgyLi40MTM5ZGIyNGQ0NzUyMDllYzNlN2NkM2Ni
ZjdiZDgzNGEyNzhjYmNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29j
b2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKQEAgLTQ5LDcgKzQ5
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29ubmVjdGlv
biYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZVN5bmNNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYsIHN0ZDo6dW5pcXVlX3B0cjxJUEM6OkVu
Y29kZXI+JikgZmluYWw7CiAKLSAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURl
dmljZVdpdGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFD
b25zdHJhaW50c0RhdGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFp
bnRzKTsKKyAgICB2b2lkIGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0Rh
dGEmLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKTsKICAgICB2
b2lkIHN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBzdG9wUHJvZHVjaW5n
RGF0YSh1aW50NjRfdCk7CiAgICAgdm9pZCBjYXBhYmlsaXRpZXModWludDY0X3QsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2VDYXBhYmlsaXRpZXMmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3Nh
Z2VzLmluIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KaW5kZXggNTI3ZGZhNjZhODQ2ZjQ3ZmQwODBkNTdlNzE4
MzM3MTIyZDgxYzgwOC4uMWZjMDkzZTViMzA5NmY1MTBkZGU4ZmY0YWNlNjRmZDE0MDEzYjdhYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4KQEAgLTIyLDcg
KzIyLDcgQEAKICMgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgogCiBtZXNzYWdlcyAt
PiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5IHsKLSAgICBDcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3QgaWQsIFN0cmluZyBkZXZpY2VJ
RCwgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBzdHJ1Y3QgV2ViQ29y
ZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+IChib29sIHN1Y2Nlc3MsIFN0
cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCisgICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBTdHJpbmcgZGV2aWNlSUQsIFdlYkNv
cmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgdHlwZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52
YWxpZENvbnN0cmFpbnRzKQogICAgIFN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAg
ICBTdG9wUHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKICAgICBDYXBhYmlsaXRpZXModWludDY0
X3QgaWQpIC0+IChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzIGNhcGFi
aWxpdGllcykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJveHkuY3BwCmluZGV4IGYyZThlY2Q2MDE5YzBkMDRj
NGE1NDE1NDNkZTZiNTYyZDI1N2FiMWUuLjc4ZjMxY2FjNDZhNDY1NzkyMDM4N2MyYmJjMDJiMjAx
NDMxOTA2YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcApAQCAtOTgsNyArOTgsNyBAQCB2
b2lkIFdlYkJhY2tGb3J3YXJkTGlzdFByb3h5OjphZGRJdGVtRnJvbVVJUHJvY2Vzcyh1aW50NjRf
dCBpdGVtSUQsIFJlZjxIaXN0b3J5SQogewogICAgIC8vIFRoaXMgaXRlbS9pdGVtSUQgcGFpciBz
aG91bGQgbm90IGFscmVhZHkgZXhpc3QgaW4gb3VyIG1hcHMuCiAgICAgQVNTRVJUKCFoaXN0b3J5
SXRlbVRvSURNYXAoKS5jb250YWlucyhpdGVtLnB0cigpKSk7Ci0gICAgQVNTRVJUKCFpZFRvSGlz
dG9yeUl0ZW1NYXAoKS5jb250YWlucyhpdGVtSUQpKTsKKy8vICAgIEFTU0VSVCghaWRUb0hpc3Rv
cnlJdGVtTWFwKCkuY29udGFpbnMoaXRlbUlEKSk7CiAKICAgICBoaXN0b3J5SXRlbVRvSURNYXAo
KS5zZXQ8SXRlbUFuZFBhZ2VJRD4oaXRlbS5wdHIoKSwgeyAuaXRlbUlEID0gaXRlbUlELCAucGFn
ZUlEID0gcGFnZUlEIH0pOwogICAgIGlkVG9IaXN0b3J5SXRlbU1hcCgpLnNldChpdGVtSUQsIGl0
ZW0ucHRyKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAppbmRleCBiMzFhYTE4ZTFiNjgyOTE0OTc1
Nzk4ODEzOGM2ZDJmMGZlNmI0NGRjLi40ZDRmMDI2MmZkOWIxMTgzYjgwNDM5MDk0ZTVmMzE0Y2Yw
NmU1NDVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2Nv
Y29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcApAQCAtMTgyLDEwICsxODIsMTAgQEAgdm9p
ZCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6aW5pdGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXIKICAgICAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6
c2luZ2xldG9uKCkuc2V0QXVkaW9GYWN0b3J5KCp0aGlzKTsKIH0KIAotUmVmUHRyPFJlYWx0aW1l
TWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVNZWRpYVNvdXJjZUZv
ckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25z
dHJhaW50cywgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCitXZWJDb3JlOjpDYXB0dXJlU291
cmNlT3JFcnJvciBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlQ2FwdHVyZVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
IHNvdXJjZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQogewogICAgIGlmICghY29uc3RyYWludHMpCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAg
ICAgICByZXR1cm4geyB9OwogCiAgICAgdWludDY0X3QgaWQgPSBuZXh0U2Vzc2lvbklEKCk7CiAg
ICAgTWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHNEYXRhOwpAQCAtMTk0LDI0ICsxOTQs
MTMgQEAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmUKICAgICBjb25zdHJhaW50c0RhdGEuaXNWYWxp
ZCA9IGNvbnN0cmFpbnRzLT5pc1ZhbGlkKCk7CiAgICAgYm9vbCBzdWNjZWVkZWQ7CiAKLSAgICBt
X3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6
OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhpZCwgZGV2
aWNlSUQsIHR5cGUsIGNvbnN0cmFpbnRzRGF0YSksIE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJl
TWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3Ry
YWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgaW52YWxpZENvbnN0cmFpbnRzKSwgMCk7Ci0KLSAgICBS
ZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHNvdXJjZVR5cGU7Ci0gICAgc3dpdGNoICh0eXBlKSB7
Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbzoKLSAg
ICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1
ZGlvOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRl
dmljZVR5cGU6OlZpZGVvOgotICAgICAgICBzb3VyY2VUeXBlID0gV2ViQ29yZTo6UmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW87Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgV2ViQ29y
ZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VW5rbm93bjoKLSAgICBkZWZhdWx0OgotICAg
ICAgICBzb3VyY2VUeXBlID0gV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9u
ZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3
IFNvdXJjZShTdHJpbmc6Om51bWJlcihpZCksIHNvdXJjZVR5cGUsIGVtcHR5U3RyaW5nKCksIGlk
LCAqdGhpcykpOwotICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZSk7Ci0gICAgcmV0dXJuIHNv
dXJjZTsKKyAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOworICAgIGlmICghbV9wcm9jZXNzLnNlbmRT
eW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZUlELCBzb3VyY2VU
eXBlLCBjb25zdHJhaW50c0RhdGEpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpS
ZXBseShzdWNjZWVkZWQsIGVycm9yTWVzc2FnZSksIDApKQorICAgICAgICByZXR1cm4gV1RGTW92
ZShlcnJvck1lc3NhZ2UpOworCisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IFNvdXJj
ZShTdHJpbmc6Om51bWJlcihpZCksIHNvdXJjZVR5cGUsIGVtcHR5U3RyaW5nKCksIGlkLCAqdGhp
cykpOworICAgIG1fc291cmNlcy5zZXQoaWQsIHNvdXJjZS5jb3B5UmVmKCkpOworICAgIHJldHVy
biBXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCiB2
b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpzb3VyY2VTdG9wcGVkKHVpbnQ2NF90IGlkKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFD
YXB0dXJlTWFuYWdlci5oCmluZGV4IDQ0NmRhOTkxY2E2Yzg4Yzg2MGZhNzE5NDVhZDhkNmY5ZTJl
NGQ2N2YuLmE4YTkzYWJkZWU1ZThlZGM2ZDAyMTk4YjUxMDY5NDljNWU0ODliNjcgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyLmgKQEAgLTQyLDcgKzQyLDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiBjbGFzcyBD
cm9zc1Byb2Nlc3NSZWFsdGltZUF1ZGlvU291cmNlOwogY2xhc3MgV2ViUHJvY2VzczsKIAotY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQs
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
IDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2
ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0
b3J5LCBwdWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFj
dG9yeSB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoV2Vi
UHJvY2VzcyopOwogICAgIH5Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlcigpOwpAQCAtNTMsOCArNTMs
MTAgQEAgcHJpdmF0ZToKICAgICAvLyBXZWJQcm9jZXNzU3VwcGxlbWVudAogICAgIHZvaWQgaW5p
dGlhbGl6ZShjb25zdCBXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJikgZmluYWw7CiAKLSAg
ICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpGYWN0b3J5OgotICAgIFJlZlB0cjxX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVE
ZXZpY2VXaXRoQ29uc3RyYWludHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6Q2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyos
IFN0cmluZyYpIGZpbmFsOworICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2UgZmFj
dG9yaWVzCisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlQXVkaW9DYXB0
dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJlU291cmNl
KGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbywgY29u
c3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlk
ZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IFdlYkNvcmU6Ok1l
ZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7IHJldHVybiBjcmVhdGVDYXB0dXJl
U291cmNlKGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
bywgY29uc3RyYWludHMpOyB9CisgICAgV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKik7CiAK
ICAgICAvLyBJUEM6Ok1lc3NhZ2VSZWNlaXZlcgogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308475</attachid>
            <date>2017-04-27 16:42:54 -0700</date>
            <delta_ts>2017-04-28 14:34:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-171284-20170427164254.patch</filename>
            <type>text/plain</type>
            <size>80493</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTAzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDYwMjljMzZkYWY2ZTdh
MzA4NGQwYjAzY2ZhZTcwNTc2YTNhOWI4Yy4uOWFhMDQ5ODdhMWNhMGQyY2M1ZDhmYmI4NWIzOGI1
YzhkOWU5YWJiNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE3LTA0LTI1ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgT25seSByZWFsbHkgYWZmZWN0cyBB
VlZpZGVvQ2FwdHVyZVNvdXJjZSBvbiBpT1MuIE1hbnVhbGx5IHRlc3RpbmcgdGhlIGZvbGxvd2lu
ZyBjYXNlczoKKyAgICAgICAgLSBNYWM6IG5vIGNoYW5nZSBvZiBiZWhhdmlvcgorICAgICAgICAt
IGlPUzogcGFnZSBsb2FkZWQgaW4gcG9ydHJhaXQsIHZpZGVvIGlzIHBvcnRyYWl0LiBwYWdlIGxv
YWRlZCBpbiBsYW5kc2NhcGUsIHZpZGVvIGlzIGxhbmRzY2FwZQorICAgICAgICAtIGlPUzogY2hh
bmdpbmcgdGhlIGRldmljZSBvcmllbnRhdGlvbiBtYWtlcyB0aGUgdmlkZW8gc2FtcGxlcyB0byBi
ZSBtb3ZlZCB0byBsYW5kc2NhcGUvcG9ydHJhaXQuCisgICAgICAgIC0gU2FtZSB0ZXN0cyBhcyBh
Ym92ZSB3aXRoIHBlZXIgY29ubmVjdGlvbi4KKworICAgICAgICBNYWtpbmcgRG9jdW1lbnQgaGF2
aW5nIGFuIE9yaWVudGF0aW9uTm90aWZpZXIgdGhhdCBBVlZpZGVvQ2FwdHVyZVNvdXJjZXMgZ2V0
IHJlZ2lzdGVyZWQgdG8uCisgICAgICAgIE1ha2luZyBBVlZpZGVvQ2FwdHVyZVNvdXJjZSBhbiBP
cmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciBzbyB0aGF0IGl0IGNhbiBjaGFuZ2VzIHdpZHRo
L2hlaWdodCBpZiBuZWVkZWQuCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gc3BlY2lhbGl6ZSBD
YXB0dXJlRmFjdG9yeSBpbiBWaWRlb0NhcHR1cmVGYWN0b3J5IGFuZCBBdWRpb0NhcHR1cmVGYWN0
b3J5LgorICAgICAgICBSZWZhY3RvcmluZyB0byByZXR1cm4gYSBDYXB0dXJlU291cmNlT3JFcnJv
ciBpbnN0ZWFkIG9mIHBhc3NpbmcgYW4gb3V0IHBhcmFtZXRlciBwbHVzIHJldHVybmluZyBhIFJl
ZlB0ci4KKworICAgICAgICAqIE1vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpVc2VyTWVkaWFSZXF1ZXN0OjphbGxvdyk6CisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGRvbS9Eb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpEb2N1bWVudDo6b3JpZW50YXRpb25DaGFuZ2Vk
KToKKyAgICAgICAgKiBkb20vRG9jdW1lbnQuaDoKKyAgICAgICAgKiBwYWdlL0ZyYW1lLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lOjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAgICAgICAq
IHBsYXRmb3JtL09yaWVudGF0aW9uTm90aWZlci5oOiBDb3BpZWQgZnJvbSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oLgorICAgICAg
ICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXI6OnNldE5vdGlmaWVyKToK
KyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyOjp+T2JzZXJ2
ZXIpOgorICAgICAgICAoV2ViQ29yZTo6T3JpZW50YXRpb25Ob3RpZmllcjo6b3JpZW50YXRpb25D
aGFuZ2VkKToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6OmFkZE9ic2Vy
dmVyKToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6OnJlbW92ZU9ic2Vy
dmVyKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6TWVkaWFTdHJlYW1Qcml2YXRlOjptb25pdG9yT3JpZW50
YXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0
ZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2Uu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yOjpDYXB0dXJlU291cmNl
T3JFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6b3BlcmF0
b3IgYm9vbCk6CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6c291cmNl
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNl
dEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyOjp1bnNldEF1ZGlvRmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzZXRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRm
b3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKFdl
YkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRBdWRpb0ZhY3RvcnkpOgor
ICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdFZpZGVv
RmFjdG9yeSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjph
dWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
QVZBdWRpb0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWQXVkaW9DYXB0dXJlU291cmNl
OjpmYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0Nh
cHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRl
b0NhcHR1cmVTb3VyY2UubW06CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpmYWN0
b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjptb25pdG9yT3Jp
ZW50YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6Om9yaWVu
dGF0aW9uQ2hhbmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
cHJvY2Vzc05ld0ZyYW1lKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDb3JlQXVkaW9DYXB0
dXJlU291cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZTo6ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW06CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjOjpvcmllbnRhdGlvbkNoYW5nZWQpOgorICAg
ICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6
OmNyZWF0ZU1lZGlhU3RyZWFtKToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXJNYWM6OmJlc3RTb3VyY2VzRm9yVHlwZUFuZENvbnN0cmFpbnRzKToKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1bHRBdWRpb0ZhY3Rv
cnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVm
YXVsdFZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0
cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFTdHJl
YW0pOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZS5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VD
ZW50ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKToKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgIChX
ZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVsdEF1ZGlvRmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVm
YXVsdFZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlci5oOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJj
ZS5oOgorCiAyMDE3LTA0LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBMYXlvdXRUZXN0IHdlYnJ0Yy9kYXRhY2hhbm5lbC9kYXRhY2hhbm5lbC1ldmVudC5o
dG1sIGlzIGEgZmxha3kgY3Jhc2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxv
ZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCBmM2Y3ZjU1MzhhMDkyZTJmZTA5YWRk
MjdhOWZmZWQyNDZmY2QzMTQxLi43NDU2YTdkOGQ4Y2M3NmE0MTE3ZTJhMDgxNjA3NzM5NzlhNjUy
NThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dl
YktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQtMjUgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBzdHJl
YW1zIHNob3VsZCBmb2xsb3cgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyODQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZWZhY3RvcmluZyB0byBzcGVjaWFsaXplIENh
cHR1cmVGYWN0b3J5IGluIFZpZGVvQ2FwdHVyZUZhY3RvcnkgYW5kIEF1ZGlvQ2FwdHVyZUZhY3Rv
cnkuCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHJldHVybiBhIENhcHR1cmVTb3VyY2VPckVycm9y
IGluc3RlYWQgb2YgcGFzc2luZyBhbiBvdXQgcGFyYW1ldGVyIGluIGFkZGl0aW9uIHRvIHJldHVy
bmluZyBhIFJlZlB0ci4KKworICAgICAgICAqIFNoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMu
aDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OmNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6CisgICAgICAg
ICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdl
cy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2Vy
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNh
cHR1cmVTb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6
Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKTogRGVsZXRl
ZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmg6
CisKIDIwMTctMDQtMjcgIFNhaWQgQWJvdS1IYWxsYXdhICA8c2Fib3VoYWxsYXdhQGFwcGxlLmNv
bT4KIAogICAgICAgICBSRUdSRVNTSU9OKHIyMTM3NjQpOiBBc3luYyBkZWNvZGluZyBvZiBhbmlt
YXRlZCBpbWFnZXMgaXMgZGlzYWJsZWQgZm9yIEltYWdlRG9jdW1lbnQKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmlu
ZGV4IDZlYjQxOTQxYTcyNDVhMjE2ZDcwODQ0NjQ5NTYzZjYwZThmOGM2NTYuLjRkMmJmYmM2NTI1
MTBmYmRkY2U3Mjc0YmRjZThkNjU4OTBmOTlkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvbWVkaWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVhbS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTY3LDYg
KzE2Nyw3IEBAIHZvaWQgVXNlck1lZGlhUmVxdWVzdDo6YWxsb3coY29uc3QgU3RyaW5nJiBhdWRp
b0RldmljZVVJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0RlCiAgICAgICAgICAgICBkZW55KE1lZGlh
QWNjZXNzRGVuaWFsUmVhc29uOjpIYXJkd2FyZUVycm9yLCBlbXB0eVN0cmluZygpKTsKICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBwcml2YXRlU3RyZWFtLT5tb25pdG9y
T3JpZW50YXRpb24oZG93bmNhc3Q8RG9jdW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCkt
Pm9yaWVudGF0aW9uTm90aWZpZXIoKSk7CiAKICAgICAgICAgYXV0byBzdHJlYW0gPSBNZWRpYVN0
cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIHByaXZhdGVTdHJlYW0ucmVs
ZWFzZU5vbk51bGwoKSk7CiAgICAgICAgIGlmIChzdHJlYW0tPmdldFRyYWNrcygpLmlzRW1wdHko
KSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCmluZGV4IDkwMTgxNjQ4ZWIyODgwYjRiNWI2MTg5OWEyZTczZDM2ZmY2ZDM5MGQuLmZiOWU3
N2Y4OTg0NjU2NWRiM2Q5MGQ4ZGU4ZmU5NmVmMzQzYTg3YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE3NTUsNiArMTc1NSw3
IEBACiAJCTQxODE1QzFGMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFEMTM4
MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0NzFFNTNFOThDMDBENjIyMDcg
LyogUlRDQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0OTFF
NTNFQUIwMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRD
Q29udHJvbGxlci5jcHAgKi87IH07CisJCTQxODRGNTE2MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmll
bnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg4NUI5
MzExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBG
b3JtU3VibWlzc2lvbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CiAJCTQxODg1Qjk0MTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4NUI5MjEx
QjZGREE2MDAzMzgzQkIgLyogRm9ybVN1Ym1pc3Npb24uY3BwICovOyB9OwogCQk0MThBMDZEMDEz
M0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MThBMDZDRTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZl
bnREaXNwYXRjaGVyLmggKi87IH07CkBAIC05MzY3LDYgKzkzNjgsNyBAQAogCQk0MTgxNzA3RDEz
ODZFREYyMDA1N0FBQTQgLyogV2ViQ29yZVRlc3RTdXBwb3J0LnhjY29uZmlnICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdlYkNvcmVUZXN0U3VwcG9ydC54Y2NvbmZpZzsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0Nv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29udHJvbGxl
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIy
MDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBSVENDb250cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4
NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8qIE9yaWVudGF0aW9uTm90aWZlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBPcmllbnRhdGlvbk5vdGlmZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVCOTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNz
aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAv
KiBGb3JtU3VibWlzc2lvbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb3JtU3VibWlzc2lvbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEw
NkNFMTMzQzA0RDUwMENEMzc5QyAvKiBFdmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRXZlbnREaXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzk3Miw2ICsyMzk3NCw3IEBACiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAwODMy
ODVGIC8qIE1JTUVUeXBlUmVnaXN0cnkuaCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAxNDlG
Q0IgLyogTm90SW1wbGVtZW50ZWQuY3BwICovLAogCQkJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFF
QSAvKiBOb3RJbXBsZW1lbnRlZC5oICovLAorCQkJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAv
KiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLywKIAkJCQk0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0Yg
LyogUGFzdGVib2FyZC5oICovLAogCQkJCUM1Rjc2NUI0MTRFMUQ0MTQwMDZDODk5QiAvKiBQYXN0
ZWJvYXJkU3RyYXRlZ3kuaCAqLywKIAkJCQkxQUY1RTREMjFFNTY3MzVBMDA0QTFGMDEgLyogUGFz
dGVib2FyZFdyaXRlckRhdGEuY3BwICovLApAQCAtMjk1OTcsNiArMjk2MDAsNyBAQAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlDMkUzOEVGRTFFODM5NkZEMDBDQTNBREYgLyogQ1NTRm9udFN0eWxlVmFsdWUu
aCBpbiBIZWFkZXJzICovLAogCQkJCTA4MEU0OTI2MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0
TGF5b3V0RW5naW5lQmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxODRGNTE2MUVBRjA1
QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MEU0OTI4MTI1NUYzQkQwMEVGQ0EyNyAvKiBTVkdUZXh0TGF5b3V0RW5naW5lU3BhY2luZy5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJMDhGMEJGQzYxMjU1QzUzQzAwMDc1MTg1IC8qIFNWR1RleHRNZXRy
aWNzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3MTE3NDQ1OTE0QkMzNEVDMDBFRTVGQzggLyogU1ZH
VGV4dE1ldHJpY3NCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CmluZGV4IDNhY2Q1ZTliMTc1ZTViMjllZTM0ZmI5NmM4MjgwOTkyMjQ3NGVlMmMuLmRjYmZmYTQz
MzUwNDY4YWEyZDdiNmQzZWQ0ZmZhNjAzY2QzZjFjYTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cApAQCAtNDMzLDYgKzQzMywxNyBAQCBIYXNoU2V0PERvY3VtZW50Kj4mIERvY3VtZW50OjphbGxE
b2N1bWVudHMoKQogICAgIHJldHVybiBkb2N1bWVudHM7CiB9CiAKK3N0YXRpYyBpbmxpbmUgaW50
IGN1cnJlbnRPcmllbnRhdGlvbihGcmFtZSogZnJhbWUpCit7CisjaWYgRU5BQkxFKE9SSUVOVEFU
SU9OX0VWRU5UUykKKyAgICBpZiAoZnJhbWUpCisgICAgICAgIHJldHVybiBmcmFtZS0+b3JpZW50
YXRpb24oKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGZyYW1lKTsKKyNlbmRpZgorICAgIHJl
dHVybiAwOworfQorCiBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBjb25zdCBVUkwm
IHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25GbGFn
cykKICAgICA6IENvbnRhaW5lck5vZGUoKnRoaXMsIENyZWF0ZURvY3VtZW50KQogICAgICwgVHJl
ZVNjb3BlKCp0aGlzKQpAQCAtNDgzLDYgKzQ5NCw3IEBAIERvY3VtZW50OjpEb2N1bWVudChGcmFt
ZSogZnJhbWUsIGNvbnN0IFVSTCYgdXJsLCB1bnNpZ25lZCBkb2N1bWVudENsYXNzZXMsIHVuc2ln
CiAjZW5kaWYKICAgICAsIG1faXNTeW50aGVzaXplZChjb25zdHJ1Y3Rpb25GbGFncyAmIFN5bnRo
ZXNpemVkKQogICAgICwgbV9pc05vblJlbmRlcmVkUGxhY2Vob2xkZXIoY29uc3RydWN0aW9uRmxh
Z3MgJiBOb25SZW5kZXJlZFBsYWNlaG9sZGVyKQorICAgICwgbV9vcmllbnRhdGlvbk5vdGlmaWVy
KGN1cnJlbnRPcmllbnRhdGlvbihmcmFtZSkpCiB7CiAgICAgYWxsRG9jdW1lbnRzKCkuYWRkKHRo
aXMpOwogCkBAIC02OTU0LDQgKzY5NjYsMTAgQEAgdm9pZCBEb2N1bWVudDo6ZGlkUmVtb3ZlSW5E
b2N1bWVudFNoYWRvd1Jvb3QoU2hhZG93Um9vdCYgc2hhZG93Um9vdCkKICAgICBtX2luRG9jdW1l
bnRTaGFkb3dSb290cy5yZW1vdmUoJnNoYWRvd1Jvb3QpOwogfQogCit2b2lkIERvY3VtZW50Ojpv
cmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKQoreworICAgIGRpc3BhdGNoV2luZG93
RXZlbnQoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCkub3JpZW50YXRpb25jaGFuZ2VFdmVudCwg
ZmFsc2UsIGZhbHNlKSk7CisgICAgbV9vcmllbnRhdGlvbk5vdGlmaWVyLm9yaWVudGF0aW9uQ2hh
bmdlZChvcmllbnRhdGlvbik7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKaW5kZXggZmQ3YmFmNmEwNTAzMDVmNjRlZTNiNTA3MTJjMDk3NGZjZWVlMThkMy4u
YWU5MzQ1NGQ2ODNmNzFiODA0Y2YxZTg3MGQzMDllZWNlNDNkOGFlZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmgKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJGcmFtZURlc3RydWN0aW9uT2JzZXJ2
ZXIuaCIKICNpbmNsdWRlICJNZWRpYVByb2R1Y2VyLmgiCiAjaW5jbHVkZSAiTXV0YXRpb25PYnNl
cnZlci5oIgorI2luY2x1ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogI2luY2x1ZGUgIlBhZ2VW
aXNpYmlsaXR5U3RhdGUuaCIKICNpbmNsdWRlICJQbGF0Zm9ybUV2ZW50LmgiCiAjaW5jbHVkZSAi
UmVmZXJyZXJQb2xpY3kuaCIKQEAgLTEzMDEsNiArMTMwMiw5IEBAIHB1YmxpYzoKIAogICAgIENv
bnN0YW50UHJvcGVydHlNYXAmIGNvbnN0YW50UHJvcGVydGllcygpIGNvbnN0IHsgcmV0dXJuICpt
X2NvbnN0YW50UHJvcGVydHlNYXA7IH0KIAorICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGlu
dCBvcmllbnRhdGlvbik7CisgICAgT3JpZW50YXRpb25Ob3RpZmllciYgb3JpZW50YXRpb25Ob3Rp
ZmllcigpIHsgcmV0dXJuIG1fb3JpZW50YXRpb25Ob3RpZmllcjsgfQorCiBwcm90ZWN0ZWQ6CiAg
ICAgZW51bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQ
bGFjZWhvbGRlciA9IDEgPDwgMSB9OwogICAgIERvY3VtZW50KEZyYW1lKiwgY29uc3QgVVJMJiwg
dW5zaWduZWQgPSBEZWZhdWx0RG9jdW1lbnRDbGFzcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxh
Z3MgPSAwKTsKQEAgLTE3NTUsNiArMTc1OSw4IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZERp
c3BhdGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCB7IGZhbHNlIH07CiAjZW5kaWYKIAorICAg
IE9yaWVudGF0aW9uTm90aWZpZXIgbV9vcmllbnRhdGlvbk5vdGlmaWVyOworCiAgICAgc3RhdGlj
IGJvb2wgaGFzRXZlckNyZWF0ZWRBbkFYT2JqZWN0Q2FjaGU7CiB9OwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUu
Y3BwCmluZGV4IGZkZWZjZDJjZmZlMTRhMDg3YWJlMGJhOGU2YjMxZWJjZDgwZDYxYjMuLmM2YzVi
MjNkOTY0ODFjOTBjNTZhN2VhMDI5NjBlOTlhZTRhNDQ3NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWUuY3Bw
CkBAIC0yOTYsOSArMjk2LDEwIEBAIHZvaWQgRnJhbWU6Om9yaWVudGF0aW9uQ2hhbmdlZCgpCiAg
ICAgZm9yIChGcmFtZSogZnJhbWUgPSB0aGlzOyBmcmFtZTsgZnJhbWUgPSBmcmFtZS0+dHJlZSgp
LnRyYXZlcnNlTmV4dCgpKQogICAgICAgICBmcmFtZXMuYXBwZW5kKCpmcmFtZSk7CiAKKyAgICBh
dXRvIG5ld09yaWVudGF0aW9uID0gb3JpZW50YXRpb24oKTsKICAgICBmb3IgKGF1dG8mIGZyYW1l
IDogZnJhbWVzKSB7CiAgICAgICAgIGlmIChEb2N1bWVudCogZG9jdW1lbnQgPSBmcmFtZS0+ZG9j
dW1lbnQoKSkKLSAgICAgICAgICAgIGRvY3VtZW50LT5kaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOworICAgICAgICAgICAgZG9jdW1lbnQtPm9yaWVudGF0aW9uQ2hhbmdlZChuZXdPcmllbnRh
dGlvbik7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9P
cmllbnRhdGlvbk5vdGlmZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL09yaWVudGF0aW9u
Tm90aWZlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYwNDQyOGY1YjYxZmFhODEwNmEzMTA2YzEzODU4OTFlODE2
MDY3ZGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRh
dGlvbk5vdGlmZXIuaApAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllciB7Citw
dWJsaWM6CisgICAgZXhwbGljaXQgT3JpZW50YXRpb25Ob3RpZmllcihpbnQgb3JpZW50YXRpb24p
IHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CisgICAgfk9yaWVudGF0aW9uTm90aWZp
ZXIoKTsKKworICAgIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbik7CisK
KyAgICBjbGFzcyBPYnNlcnZlciB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5PYnNl
cnZlcigpOworICAgICAgICB2aXJ0dWFsIHZvaWQgb3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmll
bnRhdGlvbikgPSAwOworICAgICAgICB2b2lkIHNldE5vdGlmaWVyKE9yaWVudGF0aW9uTm90aWZp
ZXIqIG5vdGlmaWVyKSB7IG1fbm90aWZpZXIgPSBub3RpZmllcjsgfQorCisgICAgcHJpdmF0ZToK
KyAgICAgICAgT3JpZW50YXRpb25Ob3RpZmllciogbV9ub3RpZmllciB7IG51bGxwdHIgfTsKKyAg
ICB9OworCisgICAgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOworICAgIHZvaWQgcmVtb3Zl
T2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICBpbnQgb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVy
biBtX29yaWVudGF0aW9uOyB9CisKK3ByaXZhdGU6CisgICAgVmVjdG9yPHN0ZDo6cmVmZXJlbmNl
X3dyYXBwZXI8T2JzZXJ2ZXI+PiBtX29ic2VydmVyczsKKyAgICBpbnQgbV9vcmllbnRhdGlvbjsK
K307CisKK2lubGluZSBPcmllbnRhdGlvbk5vdGlmaWVyOjp+T3JpZW50YXRpb25Ob3RpZmllcigp
Cit7CisgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIgOiBtX29ic2VydmVycykKKyAgICAgICAg
b2JzZXJ2ZXIuc2V0Tm90aWZpZXIobnVsbHB0cik7Cit9CisKK2lubGluZSBPcmllbnRhdGlvbk5v
dGlmaWVyOjpPYnNlcnZlcjo6fk9ic2VydmVyKCkKK3sKKyAgICBpZiAobV9ub3RpZmllcikKKyAg
ICAgICAgbV9ub3RpZmllci0+cmVtb3ZlT2JzZXJ2ZXIoKnRoaXMpOworfQorCitpbmxpbmUgdm9p
ZCBPcmllbnRhdGlvbk5vdGlmaWVyOjpvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9u
KQoreworICAgIG1fb3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjsKKyAgICBmb3IgKE9ic2VydmVy
JiBvYnNlcnZlciA6IG1fb2JzZXJ2ZXJzKQorICAgICAgICBvYnNlcnZlci5vcmllbnRhdGlvbkNo
YW5nZWQob3JpZW50YXRpb24pOworfQorCitpbmxpbmUgdm9pZCBPcmllbnRhdGlvbk5vdGlmaWVy
OjphZGRPYnNlcnZlcihPYnNlcnZlciYgb2JzZXJ2ZXIpCit7CisgICAgbV9vYnNlcnZlcnMuYXBw
ZW5kKG9ic2VydmVyKTsKKyAgICBvYnNlcnZlci5zZXROb3RpZmllcih0aGlzKTsKK30KKworaW5s
aW5lIHZvaWQgT3JpZW50YXRpb25Ob3RpZmllcjo6cmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImIG9i
c2VydmVyKQoreworICAgIG1fb2JzZXJ2ZXJzLnJlbW92ZUZpcnN0TWF0Y2hpbmcoWyZvYnNlcnZl
cl0oYXV0byBpdGVtKSB7CisgICAgICAgIGlmICgmb2JzZXJ2ZXIgIT0gJml0ZW0uZ2V0KCkpCisg
ICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAgIG9ic2VydmVyLnNldE5vdGlmaWVyKG51
bGxwdHIpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9KTsKK30KKworfQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJp
dmF0ZS5jcHAKaW5kZXggYzhmYWI2ODY4N2JkODc1ZjcxZjcyNzU1ZjUwOWI1ZmMxNTc3Njk3OC4u
Y2JiM2U1NWFhYjIyMzhmZjZlMTFiM2ViN2ZiM2Y2MzZlMTk3YWQwNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZh
dGUuY3BwCkBAIC0yOTgsNiArMjk4LDE0IEBAIHZvaWQgTWVkaWFTdHJlYW1Qcml2YXRlOjpzY2hl
ZHVsZURlZmVycmVkVGFzayhGdW5jdGlvbjx2b2lkICgpPiYmIGZ1bmN0aW9uKQogICAgIH0pOwog
fQogCit2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0
aW9uTm90aWZpZXImIG5vdGlmaWVyKQoreworICAgIGZvciAoYXV0byYgdHJhY2sgOiBtX3RyYWNr
U2V0LnZhbHVlcygpKSB7CisgICAgICAgIGlmICh0cmFjay0+c291cmNlKCkuaXNDYXB0dXJlU291
cmNlKCkgJiYgdHJhY2stPnR5cGUoKSA9PSBSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRl
bykKKyAgICAgICAgICAgIHRyYWNrLT5zb3VyY2UoKS5tb25pdG9yT3JpZW50YXRpb24obm90aWZp
ZXIpOworICAgIH0KK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5B
QkxFKE1FRElBX1NUUkVBTSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKaW5kZXggOWI1YWEyZTY3OGE1Njk5NTY1
YTE5N2MwODA4YTA3NWEyNTYyZjU4Mi4uY2M1MWZiNmExMDc2MGYxNDIwODFiNjMxOWNmMTEyNzRl
ZWZmMjgwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
TWVkaWFTdHJlYW1Qcml2YXRlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmgKQEAgLTU2LDYgKzU2LDcgQEAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgTWVkaWFTdHJlYW07CitjbGFzcyBPcmllbnRhdGlvbk5vdGlmaWVy
OwogCiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGUgOiBwdWJsaWMgTWVkaWFTdHJlYW1UcmFja1By
aXZhdGU6Ok9ic2VydmVyLCBwdWJsaWMgUmVmQ291bnRlZDxNZWRpYVN0cmVhbVByaXZhdGU+IHsK
IHB1YmxpYzoKQEAgLTEwNiw2ICsxMDcsOCBAQCBwdWJsaWM6CiAKICAgICBXZWFrUHRyPE1lZGlh
U3RyZWFtUHJpdmF0ZT4gY3JlYXRlV2Vha1B0cigpIHsgcmV0dXJuIG1fd2Vha1B0ckZhY3Rvcnku
Y3JlYXRlV2Vha1B0cigpOyB9CiAKKyAgICB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRh
dGlvbk5vdGlmaWVyJik7CisKICNpZiBVU0UoR1NUUkVBTUVSKQogICAgIHZvaWQgc2V0VmlkZW9S
ZW5kZXJlcihPd3JHc3RWaWRlb1JlbmRlcmVyKiByZW5kZXJlciwgR3N0RWxlbWVudCogc2luaykg
eyBtX2dzdFZpZGVvUmVuZGVyZXIgPSByZW5kZXJlcjsgbV9nc3RWaWRlb1NpbmtFbGVtZW50ID0g
c2luazsgfQogICAgIEdSZWZQdHI8R3N0RWxlbWVudD4gZ2V0VmlkZW9TaW5rRWxlbWVudCgpIGNv
bnN0IHsgcmV0dXJuIG1fZ3N0VmlkZW9TaW5rRWxlbWVudDsgfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCmlu
ZGV4IDkwZTIyMmIzODI2YzBjMzU0YzRmMjFlNmViODVkZWYxYjc1OTJmN2MuLjJhZjYxMWZhZjk0
ZjlmODI0ZTEzYmMwNjM0YWZmYTc5Y2U3M2RmMTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKQEAgLTMx
LDggKzMxLDcgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBSZWFsdGltZU1lZGlh
U291cmNlX2gKLSNkZWZpbmUgUmVhbHRpbWVNZWRpYVNvdXJjZV9oCisjcHJhZ21hIG9uY2UKIAog
I2lmIEVOQUJMRShNRURJQV9TVFJFQU0pCiAKQEAgLTU4LDkgKzU3LDEyIEBAIGNsYXNzIEF1ZGlv
U3RyZWFtRGVzY3JpcHRpb247CiBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRl
eHQ7CiBjbGFzcyBNZWRpYVN0cmVhbVByaXZhdGU7CitjbGFzcyBPcmllbnRhdGlvbk5vdGlmaWVy
OwogY2xhc3MgUGxhdGZvcm1BdWRpb0RhdGE7CiBjbGFzcyBSZWFsdGltZU1lZGlhU291cmNlU2V0
dGluZ3M7CiAKK3N0cnVjdCBDYXB0dXJlU291cmNlT3JFcnJvcjsKKwogY2xhc3MgV0VCQ09SRV9F
WFBPUlQgUmVhbHRpbWVNZWRpYVNvdXJjZSA6IHB1YmxpYyBSZWZDb3VudGVkPFJlYWx0aW1lTWVk
aWFTb3VyY2U+IHsKIHB1YmxpYzoKICAgICBjbGFzcyBPYnNlcnZlciB7CkBAIC04MywxMyArODUs
MjIgQEAgcHVibGljOgogICAgICAgICB2aXJ0dWFsIHZvaWQgYXVkaW9TYW1wbGVzQXZhaWxhYmxl
KGNvbnN0IE1lZGlhVGltZSYsIGNvbnN0IFBsYXRmb3JtQXVkaW9EYXRhJiwgY29uc3QgQXVkaW9T
dHJlYW1EZXNjcmlwdGlvbiYsIHNpemVfdCAvKm51bWJlck9mRnJhbWVzKi8pIHsgfQogICAgIH07
CiAKLSAgICBjbGFzcyBDYXB0dXJlRmFjdG9yeSB7CisgICAgY2xhc3MgQXVkaW9DYXB0dXJlRmFj
dG9yeSB7CisgICAgcHVibGljOgorICAgICAgICB2aXJ0dWFsIH5BdWRpb0NhcHR1cmVGYWN0b3J5
KCkgPSBkZWZhdWx0OworICAgICAgICB2aXJ0dWFsIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0
ZUF1ZGlvQ2FwdHVyZVNvdXJjZShjb25zdCBTdHJpbmcmIGF1ZGlvRGV2aWNlSUQsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHMqKSA9IDA7CisgICAgICAgIAorICAgIHByb3RlY3RlZDoKKyAgICAgICAg
QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICB9OworCisgICAgY2xhc3MgVmlk
ZW9DYXB0dXJlRmFjdG9yeSB7CiAgICAgcHVibGljOgotICAgICAgICB2aXJ0dWFsIH5DYXB0dXJl
RmFjdG9yeSgpID0gZGVmYXVsdDsKLSAgICAgICAgdmlydHVhbCBSZWZQdHI8UmVhbHRpbWVNZWRp
YVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRz
KGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpID0gMDsKKyAgICAgICAgdmlydHVhbCB+
VmlkZW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgdmlydHVhbCBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiB2aWRl
b0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKikgPSAwOwogCiAgICAgcHJvdGVjdGVk
OgotICAgICAgICBDYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKKyAgICAgICAgVmlkZW9DYXB0
dXJlRmFjdG9yeSgpID0gZGVmYXVsdDsKICAgICB9OwogCiAgICAgdmlydHVhbCB+UmVhbHRpbWVN
ZWRpYVNvdXJjZSgpIHsgfQpAQCAtMTM1LDYgKzE0Niw4IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1
YWwgYm9vbCBpc0NhcHR1cmVTb3VyY2UoKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogCisgICAg
dmlydHVhbCB2b2lkIG1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVyJikgeyB9
CisgICAgCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBhZGRPYnNlcnZlcihPYnNlcnZlciYpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKIApAQCAt
MjI5LDggKzI0MiwxOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9zdXBwcmVzc05vdGlmaWNhdGlv
bnMgeyB0cnVlIH07CiB9OwogCitzdHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgeworICAgIENh
cHR1cmVTb3VyY2VPckVycm9yKCkgPSBkZWZhdWx0OworICAgIENhcHR1cmVTb3VyY2VPckVycm9y
KFJlZjxSZWFsdGltZU1lZGlhU291cmNlPiYmIHNvdXJjZSkgOiBjYXB0dXJlU291cmNlKFdURk1v
dmUoc291cmNlKSkgeyB9CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IoU3RyaW5nJiYgbWVzc2Fn
ZSkgOiBlcnJvck1lc3NhZ2UoV1RGTW92ZShtZXNzYWdlKSkgeyB9CisgICAgCisgICAgb3BlcmF0
b3IgYm9vbCgpICBjb25zdCB7IHJldHVybiAhIWNhcHR1cmVTb3VyY2U7IH0KKyAgICBSZWY8UmVh
bHRpbWVNZWRpYVNvdXJjZT4gc291cmNlKCkgeyByZXR1cm4gY2FwdHVyZVNvdXJjZS5yZWxlYXNl
Tm9uTnVsbCgpOyB9CisgICAgCisgICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNhcHR1
cmVTb3VyY2U7CisgICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKK307CisKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCi0KLSNlbmRpZiAvLyBS
ZWFsdGltZU1lZGlhU291cmNlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKaW5k
ZXggOTU1OTk4ZDY2NzFjZGQxNWJiMDdiYTkyMzAyNjJmOWE3MjY2Mzc0Ni4uZjRjMmJhNjg0ODNk
MTg3YzcwYjgzN2FmNGExMDk3ZDcyZDFjODQzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5jcHAKQEAgLTY2LDIzICs2NiwyMyBAQCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjp+
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcigpCiB7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVG
YWN0b3J5JiBmYWN0b3J5KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRBdWRp
b0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSkKIHsKICAgICBtX2F1ZGlvRmFjdG9yeSA9ICZmYWN0b3J5OwogfQogCi12b2lkIFJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6
OkNhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQordm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Ojp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0
b3J5JiBmYWN0b3J5KQogewogICAgIGlmIChtX2F1ZGlvRmFjdG9yeSA9PSAmZmFjdG9yeSkKICAg
ICAgICAgbV9hdWRpb0ZhY3RvcnkgPSBudWxscHRyOwogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0Vmlk
ZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3Rv
cnkpCiB7CiAgICAgbV92aWRlb0ZhY3RvcnkgPSAmZmFjdG9yeTsKIH0KIAotdm9pZCBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyOjp1bnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFj
dG9yeSYgZmFjdG9yeSkKIHsKICAgICBpZiAobV92aWRlb0ZhY3RvcnkgPT0gJmZhY3RvcnkpCiAg
ICAgICAgIG1fdmlkZW9GYWN0b3J5ID0gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuaAppbmRleCA1MTI0MWFkOTE4MjJhMmQ3ODBiMDNmYzFmMmMxZWNkNjM2NzE1NTc5Li4zMjFl
NjNmN2NiNTU0MzQzMTY5Y2YyNWI3ZjQxMTQzYTRlOTY4NjIwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlci5oCkBAIC02NiwxNiArNjYsMTYgQEAgcHVibGljOgogICAgIAogICAgIHZpcnR1
YWwgY29uc3QgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENvbnN0cmFpbnRzJiBzdXBwb3J0
ZWRDb25zdHJhaW50cygpIHsgcmV0dXJuIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7IH0KIAotICAg
IHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRBdWRp
b0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9Ci0gICAgdmlydHVhbCBSZWFsdGltZU1lZGlh
U291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIHsgcmV0dXJuIG51
bGxwdHI7IH0KKyAgICB2aXJ0dWFsIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZh
Y3RvcnkqIGRlZmF1bHRBdWRpb0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9CisgICAgdmly
dHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5KiBkZWZhdWx0Vmlk
ZW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCBzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsK
LSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVy
ZUZhY3RvcnkqIGF1ZGlvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9GYWN0b3J5OyB9
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNv
dXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5z
ZXRBdWRpb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYp
OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIGF1ZGlvRmFj
dG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9GYWN0b3J5OyB9CiAKLSAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIHNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFj
dG9yeSYpOwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRp
bWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAgICBSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSogdmlkZW9GYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0Zh
Y3Rvcnk7IH0KKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZpZGVvRmFjdG9yeShSZWFsdGlt
ZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5Jik7CisgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCB1bnNldFZpZGVvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVG
YWN0b3J5Jik7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSog
dmlkZW9GYWN0b3J5KCkgY29uc3QgeyByZXR1cm4gbV92aWRlb0ZhY3Rvcnk7IH0KIAogICAgIHZp
cnR1YWwgQ2FwdHVyZURldmljZU1hbmFnZXIqIGRlZmF1bHRBdWRpb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyKCkgeyByZXR1cm4gbnVsbHB0cjsgfQogICAgIHZpcnR1YWwgQ2FwdHVyZURldmljZU1hbmFn
ZXIqIGRlZmF1bHRWaWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyKCkgeyByZXR1cm4gbnVsbHB0cjsg
fQpAQCAtOTQsOCArOTQsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIFJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXImIHBsYXRmb3JtQ2VudGVyKCk7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1
cHBvcnRlZENvbnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CiAKLSAgICBSZWFsdGlt
ZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogbV9hdWRpb0ZhY3RvcnkgeyBudWxscHRyIH07
Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5
IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3Rv
cnkqIG1fYXVkaW9GYWN0b3J5IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6
OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5IHsgbnVsbHB0ciB9OwogCiAgICAg
Q2FwdHVyZURldmljZU1hbmFnZXIqIG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciB7IG51bGxw
dHIgfTsKICAgICBDYXB0dXJlRGV2aWNlTWFuYWdlciogbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5h
Z2VyIHsgbnVsbHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA2YzgzNjJm
ZThlODQ1NjExZTNmNWM4NWMxMTVhMmZlMjdiZDg3MDk1Li43OTg4YzFlMjlhNDNmNTU4NGI0YmI1
ZDA3NmNmOWQxMGEyY2M0Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNDQs
OSArNDQsOSBAQCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIEFW
QXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIEFWTWVkaWFDYXB0dXJlU291cmNlIHsKIHB1Ymxp
YzoKIAotICAgIHN0YXRpYyBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNh
cHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
KiwgU3RyaW5nJik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShBVkNh
cHR1cmVEZXZpY2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRz
Kik7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3Rvcnko
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSgpOwogCiBwcml2YXRlOgogICAgIEFWQXVkaW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmlj
ZSosIGNvbnN0IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCmlu
ZGV4IDZkYjFjNzVmMjBmY2U5NjA2OWU3MzZlMjJjNGM3Njg0YjMxZmY0OGQuLjZlNTlkMmUyOTBl
ZmRmZGZiYTc3Y2Q4Yzg0MWRlYjAzMWFlYzE5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3Vy
Y2UubW0KQEAgLTc3LDMwICs3NywyNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24s
IEFWTWVkaWFUeXBlQXVkaW8sIE5TU3RyaW5nICopCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgQVZBdWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFT
b3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlRmFjdG9y
eSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1
YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VG
b3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENh
cHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKKyAgICBDYXB0dXJl
U291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZp
Y2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAg
ICAgQVZDYXB0dXJlRGV2aWNlVHlwZWRlZiAqZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNs
YXNzKCkgZGV2aWNlV2l0aFVuaXF1ZUlEOmRldmljZUlEXTsKLSAgICAgICAgQVNTRVJUX1VOVVNF
RCh0eXBlLCAhZGV2aWNlIHx8IChkZXZpY2UgJiYgdHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlOjpBdWRpbykpOwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlk
Q29uc3RyYWludCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzKSA6
IENhcHR1cmVTb3VyY2VPckVycm9yKCk7CiAgICAgfQogfTsKIAotUmVmUHRyPEFWTWVkaWFDYXB0
dXJlU291cmNlPiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5
cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCitDYXB0dXJlU291
cmNlT3JFcnJvciBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5
cGVkZWYqIGRldmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgQVZB
dWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRS
ZWYoKm5ldyBBVkF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkKSk7CiAgICAgaWYgKGNvbnN0
cmFpbnRzKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRz
KCpjb25zdHJhaW50cyk7Ci0gICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgICAgIGludmFs
aWRDb25zdHJhaW50ID0gcmVzdWx0LnZhbHVlKCkuZmlyc3Q7Ci0gICAgICAgICAgICBzb3VyY2Ug
PSBudWxscHRyOwotICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICBy
ZXR1cm4gU3RyaW5nKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9CiAKLSAgICByZXR1cm4g
c291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkp
OwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1
cmVTb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFj
dG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZl
ckRlc3Ryb3llZDxBVkF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0
dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGE4MjE1
ODAxMTk4ZDRhODdhMDAyMzE2ZDM1MWFmZWUwZGYwZmY3NDUuLjlhNmMyNmNhMzMyM2Y5NzAzNzlh
NWU0MDY3ZmUyNTM3ZTVjYzgxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0y
MywxMiArMjMsMTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZV9oCi0jZGVmaW5lIEFWVmlkZW9DYXB0dXJlU291cmNlX2gKKyNwcmFnbWEgb25j
ZQogCiAjaWYgRU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAogI2lu
Y2x1ZGUgIkFWTWVkaWFDYXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3Rp
ZmVyLmgiCiAKIE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1MgQVZGcmFtZVJhdGVSYW5n
ZTsKQEAgLTQzLDExICs0MywxMSBAQCBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0Nv
bnRleHQ7CiBjbGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogCi1jbGFzcyBBVlZpZGVvQ2Fw
dHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7CitjbGFzcyBBVlZpZGVv
Q2FwdHVyZVNvdXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmll
bnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxB
Vk1lZGlhQ2FwdHVyZVNvdXJjZT4gY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKTsKKyAgICBzdGF0aWMg
Q2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21p
Y1N0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JU
IHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBpbnQzMl90IHdpZHRo
KCkgY29uc3QgeyByZXR1cm4gbV93aWR0aDsgfQogICAgIGludDMyX3QgaGVpZ2h0KCkgY29uc3Qg
eyByZXR1cm4gbV9oZWlnaHQ7IH0KQEAgLTY2LDEyICs2NiwxOCBAQCBwcml2YXRlOgogICAgIGJv
b2wgYXBwbHlGcmFtZVJhdGUoZG91YmxlKSBmaW5hbDsKICAgICBib29sIHNldFByZXNldChOU1N0
cmluZyopOwogCisgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmll
ciYpIGZpbmFsOworICAgIHZvaWQgY29tcHV0ZVNhbXBsZVJvdGF0aW9uKCk7CisKICAgICBOU1N0
cmluZyAqYmVzdFNlc3Npb25QcmVzZXRGb3JWaWRlb0RpbWVuc2lvbnMoc3RkOjpvcHRpb25hbDxp
bnQ+IHdpZHRoLCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0KSBjb25zdDsKICAgICBib29sIHN1
cHBvcnRzU2l6ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0
aW9uYWw8aW50PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikgZmluYWw7CiAKICAgICB2
b2lkIGluaXRpYWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYpIGZpbmFsOwogICAgIHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0
aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYpIGZpbmFsOwogCisgICAgLy8gT3Jp
ZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgQVBJCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5n
ZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3Ry
YWludChkb3VibGUgbWluRnJhbWVSYXRlLCBkb3VibGUgbWF4RnJhbWVSYXRlKTsKIAogICAgIGJv
b2wgdXBkYXRlRnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmKTsKQEAgLTkwLDEwICs5NiwxMSBA
QCBwcml2YXRlOgogICAgIEZsb2F0NjQgbV9mcmFtZVJhdGUgeyAwIH07CiAgICAgaW50MzJfdCBt
X3dpZHRoIHsgMCB9OwogICAgIGludDMyX3QgbV9oZWlnaHQgeyAwIH07CisgICAgaW50IG1fc2Vu
c29yT3JpZW50YXRpb24geyAwIH07CisgICAgaW50IG1fZGV2aWNlT3JpZW50YXRpb24geyAwIH07
CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7IE1lZGlh
U2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gQVZWaWRl
b0NhcHR1cmVTb3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDg4MTMx
YjhkYjA3Y2FmN2Y4MDNkMTNhZjUyNDk5YWE4NTBjMWQ4OTQuLjNlZTI1YzhhOGU0MDZjMDIxNDYy
YjhiMWI0MjNkMDkwMmZmMTRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAg
LTg1LDYgKzg1LDcgQEAgU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZGcmFtZVJhdGVS
YW5nZSkKICNkZWZpbmUgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXIgZ2V0QVZDYXB0dXJlVmlk
ZW9QcmV2aWV3TGF5ZXJDbGFzcygpCiAjZGVmaW5lIEFWRnJhbWVSYXRlUmFuZ2UgZ2V0QVZGcmFt
ZVJhdGVSYW5nZUNsYXNzKCkKIAorU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk1l
ZGlhVHlwZVZpZGVvLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZG
b3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MTI4MHg3MjAsIE5TU3RyaW5nICopCiBT
T0ZUX0xJTktfUE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25Q
cmVzZXQ5NjB4NTQwLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZG
b3VuZGF0aW9uLCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0NjQweDQ4MCwgTlNTdHJpbmcgKikKQEAg
LTEwOSwzMCArMTEwLDI5IEBAIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQ
aXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOFBsYW5hcjsKIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1
cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdl
OwogI2VuZGlmCiAKLWNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcm
IGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBmaW5hbCB7
CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0
IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBm
aW5hbCB7CiAgICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNh
cHR1cmVEZXZpY2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2VJRF07Ci0gICAgICAg
IEFTU0VSVF9VTlVTRUQodHlwZSwgIWRldmljZSB8fCAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpE
ZXZpY2VUeXBlOjpWaWRlbykpOwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZh
bGlkQ29uc3RyYWludCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAg
ICAgIHJldHVybiB7IH07CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3Jl
YXRlKGRldmljZSwgZW1wdHlTdHJpbmcoKSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKLVJl
ZlB0cjxBVk1lZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShB
VkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShB
VkNhcHR1cmVEZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0g
YWRvcHRSZWYobmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRv
IHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkp
OwogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+
YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0g
ICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAg
ICAgICAgICAgc291cmNlID0gbnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0
KQorICAgICAgICAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0LnZhbHVlKCkuZmlyc3QpOwogICAg
IH0KIAotICAgIHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9y
KFdURk1vdmUoc291cmNlKSk7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNl
OjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiB7
CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeT4g
ZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKQEAgLTM0Niw2ICszNDYsMzkgQEAg
dm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6YXBwbHlTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0
aW9uYWw8aW50PiB3aWR0aCwgc3RkOjoKICAgICAgICAgYXBwbHlGcmFtZVJhdGUoZnJhbWVSYXRl
LnZhbHVlKCkpOwogfQogCitzdGF0aWMgaW5saW5lIGludCBzZW5zb3JPcmllbnRhdGlvbihBVkNh
cHR1cmVWaWRlb09yaWVudGF0aW9uIHZpZGVvT3JpZW50YXRpb24pCit7CisjaWYgUExBVEZPUk0o
SU9TKQorICAgIHN3aXRjaCAodmlkZW9PcmllbnRhdGlvbikgeworICAgIGNhc2UgQVZDYXB0dXJl
VmlkZW9PcmllbnRhdGlvblBvcnRyYWl0OgorICAgICAgICByZXR1cm4gMTgwOworICAgIGNhc2Ug
QVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKKyAgICAgICAgcmV0
dXJuIDA7CisgICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6
CisgICAgICAgIHJldHVybiA5MDsKKyAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25M
YW5kc2NhcGVMZWZ0OgorICAgICAgICByZXR1cm4gLTkwOworICAgIH0KKyNlbHNlCisgICAgc3dp
dGNoICh2aWRlb09yaWVudGF0aW9uKSB7CisgICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0
aW9uUG9ydHJhaXQ6CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9P
cmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKKyAgICAgICAgcmV0dXJuIDE4MDsKKyAgICBj
YXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVSaWdodDoKKyAgICAgICAgcmV0
dXJuIDkwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvbkxhbmRzY2FwZUxlZnQ6
CisgICAgICAgIHJldHVybiAtOTA7CisgICAgfQorI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUg
aW50IHNlbnNvck9yaWVudGF0aW9uRnJvbVZpZGVvT3V0cHV0KEFWQ2FwdHVyZVZpZGVvRGF0YU91
dHB1dFR5cGUqIHZpZGVvT3V0cHV0KQoreworICAgIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBj
b25uZWN0aW9uID0gW3ZpZGVvT3V0cHV0IGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOiBnZXRBVk1l
ZGlhVHlwZVZpZGVvKCldOworICAgIHJldHVybiBjb25uZWN0aW9uID8gc2Vuc29yT3JpZW50YXRp
b24oW2Nvbm5lY3Rpb24gdmlkZW9PcmllbnRhdGlvbl0pIDogMDsKK30KKwogdm9pZCBBVlZpZGVv
Q2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgTlNFcnJvciAqZXJy
b3IgPSBuaWw7CkBAIC0zODUsNiArNDE4LDggQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiAgICAgc2V0UHJlc2V0KG1fcGVuZGluZ1ByZXNldC5nZXQo
KSk7CiAjZW5kaWYKIAorICAgIG1fc2Vuc29yT3JpZW50YXRpb24gPSBzZW5zb3JPcmllbnRhdGlv
bkZyb21WaWRlb091dHB1dChtX3ZpZGVvT3V0cHV0LmdldCgpKTsKKyAgICBjb21wdXRlU2FtcGxl
Um90YXRpb24oKTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0
dXJlU2Vzc2lvbigpCkBAIC00MTcsNiArNDUyLDQ2IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6OnVwZGF0ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiAgICAg
cmV0dXJuIGZyYW1lUmF0ZSAhPSBtX2ZyYW1lUmF0ZTsKIH0KIAordm9pZCBBVlZpZGVvQ2FwdHVy
ZVNvdXJjZTo6bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVy
KQoreworI2lmIFBMQVRGT1JNKElPUykKKyAgICBub3RpZmllci5hZGRPYnNlcnZlcigqdGhpcyk7
CisgICAgb3JpZW50YXRpb25DaGFuZ2VkKG5vdGlmaWVyLm9yaWVudGF0aW9uKCkpOworI2Vsc2UK
KyAgICBVTlVTRURfUEFSQU0obm90aWZpZXIpOworI2VuZGlmCit9CisKK3ZvaWQgQVZWaWRlb0Nh
cHR1cmVTb3VyY2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7CisgICAg
QVNTRVJUKG9yaWVudGF0aW9uID09IDAgfHwgb3JpZW50YXRpb24gPT0gOTAgfHwgb3JpZW50YXRp
b24gPT0gLTkwIHx8IG9yaWVudGF0aW9uID09IDE4MCk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlv
biA9IG9yaWVudGF0aW9uOworICAgIGNvbXB1dGVTYW1wbGVSb3RhdGlvbigpOworfQorCit2b2lk
IEFWVmlkZW9DYXB0dXJlU291cmNlOjpjb21wdXRlU2FtcGxlUm90YXRpb24oKQoreworICAgIHN3
aXRjaCAobV9zZW5zb3JPcmllbnRhdGlvbiAtIG1fZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICBj
YXNlIDA6CisgICAgICAgIG1fc2FtcGxlUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6Tm9uZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxODA6CisgICAgY2FzZSAtMTgw
OgorICAgICAgICBtX3NhbXBsZVJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OlVwc2lkZURvd247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgOTA6CisgICAgICAgIG1fc2Ft
cGxlUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKKyAgICAgICAg
YnJlYWs7CisgICAgY2FzZSAtOTA6CisgICAgY2FzZSAtMjcwOgorICAgICAgICBtX3NhbXBsZVJv
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OworICAgICAgICBicmVh
azsKKyAgICBkZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAg
bV9zYW1wbGVSb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOworICAg
IH0KK30KKwogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFp
blB0cjxDTVNhbXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyLCBSZXRhaW5QdHI8QVZDYXB0dXJl
Q29ubmVjdGlvblR5cGU+IGNvbm5lY3Rpb24pCiB7CiAgICAgLy8gSWdub3JlIGZyYW1lcyBkZWxp
dmVyZWQgd2hlbiB0aGUgc2Vzc2lvbiBpcyBub3QgcnVubmluZywgd2Ugd2FudCB0byBoYW5nIG9u
dG8gdGhlIGxhc3QgaW1hZ2UKQEAgLTQzMiw1MiArNTA3LDE4IEBAIHZvaWQgQVZWaWRlb0NhcHR1
cmVTb3VyY2U6OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNh
bXBsZUJ1CiAgICAgbV9idWZmZXIgPSBzYW1wbGVCdWZmZXI7CiAgICAgbV9sYXN0SW1hZ2UgPSBu
dWxscHRyOwogCi0gICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb247Ci0jaWYg
UExBVEZPUk0oSU9TKQotICAgIHN3aXRjaCAoW2Nvbm5lY3Rpb24gdmlkZW9PcmllbnRhdGlvbl0p
IHsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25Qb3J0cmFpdDoKLSAgICAgICAg
cm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJhaXRVcHNp
ZGVEb3duOgotICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpO
b25lOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25M
YW5kc2NhcGVSaWdodDoKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2Nh
cGVMZWZ0OgotICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpS
aWdodDsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotI2Vsc2UKLSAgICBzd2l0Y2ggKFtjb25uZWN0
aW9uIHZpZGVvT3JpZW50YXRpb25dKSB7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0
aW9uUG9ydHJhaXQ6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRp
b246Ok5vbmU7Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRh
dGlvblBvcnRyYWl0VXBzaWRlRG93bjoKLSAgICAgICAgcm90YXRpb24gPSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNh
cHR1cmVWaWRlb09yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6Ci0gICAgICAgIHJvdGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OwotICAgICAgICBicmVhazsKLSAgICBj
YXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVMZWZ0OgotICAgICAgICByb3Rh
dGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OwotICAgICAgICBicmVhazsK
LSAgICB9Ci0jZW5kaWYKLQotICAgIGJvb2wgc2V0dGluZ3NDaGFuZ2VkID0gZmFsc2U7CiAgICAg
Q01WaWRlb0RpbWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdl
dERpbWVuc2lvbnMoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlmIChyb3RhdGlvbiA9PSBNZWRp
YVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwgcm90YXRpb24gPT0gTWVkaWFTYW1wbGU6
OlZpZGVvUm90YXRpb246OkxlZnQpCisgICAgaWYgKG1fc2FtcGxlUm90YXRpb24gPT0gTWVkaWFT
YW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQgfHwgbV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNh
bXBsZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQpCiAgICAgICAgIHN0ZDo6c3dhcChkaW1lbnNpb25z
LndpZHRoLCBkaW1lbnNpb25zLmhlaWdodCk7CiAKICAgICBpZiAoZGltZW5zaW9ucy53aWR0aCAh
PSBtX3dpZHRoIHx8IGRpbWVuc2lvbnMuaGVpZ2h0ICE9IG1faGVpZ2h0KSB7CiAgICAgICAgIG1f
d2lkdGggPSBkaW1lbnNpb25zLndpZHRoOwogICAgICAgICBtX2hlaWdodCA9IGRpbWVuc2lvbnMu
aGVpZ2h0OwotICAgICAgICBzZXR0aW5nc0NoYW5nZWQgPSB0cnVlOwotICAgIH0KIAotICAgIGlm
IChzZXR0aW5nc0NoYW5nZWQpCiAgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQog
Ci0gICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUobV9i
dWZmZXIuZ2V0KCksIHJvdGF0aW9uLCBbY29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKSk7Cisg
ICAgdmlkZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUobV9idWZm
ZXIuZ2V0KCksIG1fc2FtcGxlUm90YXRpb24sIFtjb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0p
KTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1
dFNhbXBsZUJ1ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNhbXBs
ZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBjYXB0dXJl
Q29ubmVjdGlvbikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA4ZjI0
YzYzMDA5ZWJkYzljYzQxZTFhYmM1ZGVhMWExN2UxNGJmNzU5Li4zOTM5Y2E2MzA5MTRlNzAwYTUx
YjA1NTJkYTk2ZTM1OGQzYzJiZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2Uu
Y3BwCkBAIC00Niw0NSArNDYsMzkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBD
b3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6
IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1Ymxp
YzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3Ry
YWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKLSAgICAgICAgcmV0dXJu
IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWlu
dHMsIGludmFsaWRDb25zdHJhaW50KTsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVB
dWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKKyAgICAgICAgcmV0dXJuIENvcmVBdWRpb0Nh
cHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAK
IGNvbnN0IFVJbnQzMiBvdXRwdXRCdXMgPSAwOwogY29uc3QgVUludDMyIGlucHV0QnVzID0gMTsK
IAotUmVmUHRyPENvcmVBdWRpb0NhcHR1cmVTb3VyY2U+IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
IHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFs
aWRDb25zdHJhaW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJj
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzKQogewotICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5
cGU6OkF1ZGlvKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIFN0cmluZyBsYWJlbDsK
ICAgICB1aW50MzJfdCBwZXJzaXN0ZW50SUQgPSAwOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBh
dXRvIGRldmljZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5j
b3JlQXVkaW9EZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBsYWJlbCA9IGRl
dmljZS0+bGFiZWwoKTsKICAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAj
ZW5kaWYKLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291
cmNlKGRldmljZUlELCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CisgICAgYXV0byBzb3VyY2UgPSBh
ZG9wdFJlZigqbmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGxhYmVsLCBwZXJz
aXN0ZW50SUQpKTsKIAogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3Vs
dCA9IHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAo
cmVzdWx0KSB7Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgp
LmZpcnN0OwotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAgICAg
aWYgKHJlc3VsdCkKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLmZp
cnN0KTsKICAgICB9Ci0KLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291
cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpD
YXB0dXJlRmFjdG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGlt
ZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNl
OjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlv
Q2FwdHVyZVNvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCAyMzVkNWEzMTRkYzJhYzgxMmQ3MmJmODg0
OWI2ZTYxYmQ3OWJjNGRkLi4xM2Y0MTZjZTEyMDUyMzc5NmQ2Y2EyNTI0NzA0MmI5YmMyMjk2Y2Uy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29y
ZUF1ZGlvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDkgKzUzLDkgQEAgY2xh
c3MgQ2FwdHVyZURldmljZUluZm87CiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVi
bGljIFJlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxD
b3JlQXVkaW9DYXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYp
OworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQg
c3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZvaWQgYWRkRWNob0Nh
bmNlbGxhdGlvblNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKICAgICB2b2lkIHJlbW92
ZUVjaG9DYW5jZWxsYXRpb25Tb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJik7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggY2U0ZGFiYjM4ZWJlODg4OGYz
Y2MwMzdmZmY1M2FmYTc0YjBiOTIzOC4uYjBmMjgzYjFkYzc0MmRkMDlhZjY1MWQ3NzI1ZmNhYTY3
MWM4YWM5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQpAQCAt
ODQsMTMgKzg0LDE0IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0
IGZyZXF1ZW5jeSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9CiB9CiAKLVJlZlB0
cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNl
TWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVy
cm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VN
YWM6Ok1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRp
bWVWaWRlb1NvdXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggNGQ1MTQzZWMyOWJiMDdjMTIw
ZWIxMGU0MzEwNjVhMWZlODhhODZiYS4uOTU4MzdiMTFhNWM2ZDk3Zjg3MmI2NTAwNTg4ODQxMDIw
YWNhN2YxZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTI4
LDEzICsyOCwxMyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlTWFjX2gKLSNkZWZpbmUgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaAor
I3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiRm9u
dENhc2NhZGUuaCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgorI2luY2x1
ZGUgIk9yaWVudGF0aW9uTm90aWZlci5oIgogCiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpD
VkJ1ZmZlclJlZjsKIHR5cGVkZWYgQ1ZCdWZmZXJSZWYgQ1ZJbWFnZUJ1ZmZlclJlZjsKQEAgLTQz
LDkgKzQzLDggQEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCAqQ1ZQaXhlbEJ1
ZmZlclBvb2xSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Ugewor
Y2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewog
cHVibGljOgotCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSB7IH0K
IAogcHJpdmF0ZToKQEAgLTU5LDEzICs1OCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRl
U2FtcGxlQnVmZmVyKCkgZmluYWw7CiAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYp
IGZpbmFsOwogCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSBm
aW5hbDsKKwogICAgIG11dGFibGUgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcHJldmlld0ltYWdl
OwogICAgIG11dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fcHJldmlld0xheWVyOwog
ICAgIG11dGFibGUgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX2J1ZmZlclBvb2w7
CisgICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9kZXZpY2VPcmllbnRhdGlvbiB7IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjLm1tCmluZGV4IGJjNjgwYThlYWEzOGVjYzdlMjhhYzA5MjUyMWZhZDc1M2VhZjNlNDcu
LmJlNGJlMDBhZTQ5NTIwYWFlYzg2YzRjMjMxYTYzOTQ4Njg3ZTBlYzUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUwLDEzICs1MCwxNCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9TYW1wbGVSYXRlID0gOTAwMDA7
CiAKLVJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNv
bnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6
OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0
cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlTWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQg
cmVwb3J0IGVycm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBw
bHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOwor
ICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2VNYWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFt
ZSkKQEAgLTE2MSw2ICsxNjIsMjcgQEAgYm9vbCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6
YXBwbHlTaXplKGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmV0dXJuIE1vY2tSZWFsdGlt
ZVZpZGVvU291cmNlOjphcHBseVNpemUobmV3U2l6ZSk7CiB9CiAKK3ZvaWQgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWM6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7Cisg
ICAgLy8gRklYTUU6IERvIHNvbWV0aGluZyB3aXRoIG1fZGV2aWNlT3JpZW50YXRpb24KKyAgICBz
d2l0Y2ggKG9yaWVudGF0aW9uKSB7CisgICAgY2FzZSAwOgorICAgICAgICBtX2RldmljZU9yaWVu
dGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7CisgICAgICAgIGJyZWFr
OworICAgIGNhc2UgOTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBs
ZTo6VmlkZW9Sb3RhdGlvbjo6UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgLTkwOgor
ICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246
OkxlZnQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgMTgwOgorICAgICAgICBtX2RldmljZU9y
aWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAg
ICAgIGJyZWFrOworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggNmY0YmY2
MTAxNTAyYzdhNDA1YWI1Y2ZiMTI3MWVjOGY1MzM3MzUyYy4uNWMyNjA1MDI2NTU3MDg0ZGNhMTRk
MTZjYWNhZDE4ZDFiOWU3ZmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjLmNwcApAQCAtMTM2LDE5ICsxMzYsMjEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291
cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29t
cGwKICAgICBTdHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBpZiAoIWF1ZGlvRGV2aWNl
SUQuaXNFbXB0eSgpICYmIG1fYXVkaW9GYWN0b3J5KSB7Ci0gICAgICAgIGlmIChhdXRvIGF1ZGlv
U291cmNlID0gbV9hdWRpb0ZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmlj
ZVdpdGhDb25zdHJhaW50cyhhdWRpb0RldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpBdWRpbywgYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAg
ICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAg
ICAgICAgYXV0byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoYXVkaW9EZXZpY2VJRCwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgIGlmICgh
IWF1ZGlvU291cmNlKQorICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJj
ZS5zb3VyY2UoKSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBpZiAoIWludmFsaWRDb25z
dHJhaW50LmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMg
ZmFpbGVkIHRvIGFwcGx5OiAlcyIsIHRoaXMsIGludmFsaWRDb25zdHJhaW50LnV0ZjgoKS5kYXRh
KCkpOworICAgICAgICBpZiAoIWF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCisg
ICAgICAgICAgICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVh
dGVNZWRpYVN0cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMi
LCB0aGlzLCBhdWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYK
ICAgICB9CiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSAmJiBtX3ZpZGVvRmFjdG9y
eSkgewotICAgICAgICBpZiAoYXV0byB2aWRlb1NvdXJjZSA9IG1fdmlkZW9GYWN0b3J5LT5jcmVh
dGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModmlkZW9EZXZpY2VJ
RCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8sIHZpZGVvQ29uc3RyYWludHMsIGlu
dmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9T
b3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBtX3Zp
ZGVvRmFjdG9yeS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKHZpZGVvRGV2aWNlSUQsIHZpZGVv
Q29uc3RyYWludHMpOworICAgICAgICBpZiAoISF2aWRlb1NvdXJjZSkKKyAgICAgICAgICAgIHZp
ZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291cmNlKCkpOwogI2lmICFMT0dfRElTQUJM
RUQKLSAgICAgICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkpCi0gICAgICAgICAg
ICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0
cmVhbSglcCksIHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBp
bnZhbGlkQ29uc3RyYWludC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJj
ZS5lcnJvck1lc3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgTE9HKE1lZGlhLCAiUmVhbHRp
bWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0oJXApLCB2aWRlbyBjb25z
dHJhaW50cyBmYWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywgdmlkZW9Tb3VyY2UuZXJyb3JNZXNz
YWdlLnV0ZjgoKS5kYXRhKCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0xODcsMTIgKzE4OSwxOCBA
QCBWZWN0b3I8U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNl
c0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UuZW5h
YmxlZCgpIHx8IGNhcHR1cmVEZXZpY2UudHlwZSgpICE9IGRldmljZVR5cGUpCiAgICAgICAgICAg
ICBjb250aW51ZTsKIAotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9y
eSogZmFjdG9yeSA9IHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gPyBt
X3ZpZGVvRmFjdG9yeSA6IG1fYXVkaW9GYWN0b3J5OwotICAgICAgICBpZiAoIWZhY3RvcnkpCi0g
ICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNl
T3JFcnJvcjsKKyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6
VmlkZW8gJiYgbV92aWRlb0ZhY3RvcnkpCisgICAgICAgICAgICBzb3VyY2VPckVycm9yID0gbV92
aWRlb0ZhY3RvcnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLnBlcnNp
c3RlbnRJZCgpLCAmY29uc3RyYWludHMpOworICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OkF1ZGlvICYmIG1fYXVkaW9GYWN0b3J5KQorICAgICAgICAg
ICAgc291cmNlT3JFcnJvciA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3Vy
Y2UoY2FwdHVyZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFpbnRzKTsKIAotICAgICAg
ICBpZiAoYXV0byBjYXB0dXJlU291cmNlID0gZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCks
IGRldmljZVR5cGUsICZjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAg
ICAgYmVzdFNvdXJjZXMuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigpKTsKKyAgICAgICAg
aWYgKCFzb3VyY2VPckVycm9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBj
YXNlIG9mIGludmFsaWQgY29uc3RyYWludHMgb24gbW9yZSB0aGFuIG9uZSBkZXZpY2UuCisgICAg
ICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1l
c3NhZ2UpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgYmVzdFNv
dXJjZXMuYXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgIH0KIAogICAgIFZlY3Rv
cjxTdHJpbmc+IHNvdXJjZVVJRHM7CkBAIC0yMDcsMTIgKzIxNSwxMiBAQCBWZWN0b3I8U3RyaW5n
PiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25z
dHJhaW50cyhSZQogICAgIHJldHVybiBzb3VyY2VVSURzOwogfQogCi1SZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVs
dEF1ZGlvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5
KiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkKIHsK
ICAgICByZXR1cm4gJkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKTsKIH0KIAotUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWM6OmRlZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9D
YXB0dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFZpZGVv
RmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgp
OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFj
L1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggMWJm
NDk3ZmQ2ZDdjM2MxNjZmZGE4MmRlYTJiMTMxYjEzYzhhNDQ4NC4uZmYxZjg5N2JiZWRlOTlhNDQw
NTJiNjkyY2Y1ZDhkMGFlZDEwMGQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck1hYy5oCkBAIC01NCw4ICs1NCw4IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8U3Ry
aW5nPiBiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNl
OjpUeXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWlu
dCk7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1
ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0
b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAg
IFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0Zh
Y3RvcnkoKSBmaW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCmluZGV4IDZl
YzhlOGIwNTNhMTIwOTE0MmRkY2UzMzFkMzhjMGFlYTE3YmRiOGIuLmYwMTBlNTlhMjcxOThiOTU4
N2ZlOWIzZTk0OTk1NTQyZWMyNTlmNDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9S
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcApAQCAtMTA5LDcgKzEwOSw3IEBAIHZvaWQg
UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFT
dHJlYW1IYW5kbGVyIGNvbXBsCiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSkKICAg
ICAgICAgdHlwZXMgfD0gT1dSX01FRElBX1RZUEVfVklERU87CiAKLSAgICBtX2NvbXBsZXRpb25I
YW5kbGVyID0gY29tcGxldGlvbkhhbmRsZXI7CisgICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpOwogCiAgICAgb3dyX2dldF9jYXB0dXJlX3NvdXJjZXMo
c3RhdGljX2Nhc3Q8T3dyTWVkaWFUeXBlPih0eXBlcyksIG1lZGlhU291cmNlc0F2YWlsYWJsZUNh
bGxiYWNrLCB0aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21v
Y2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggNDA3ODhkN2VhNTM0YmY5NTc4
OWIxZmVmNzk1MzI2NWU2YTRkOWY0OC4uYzQwMDVlZGYxODgxZDg1YmRhOTA5OWYyNzBlMThkMzA3
ODU0MTJlZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQxLDI5ICs0MSwyNSBAQAogCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKLWNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSA6IHB1
YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVk
aW9DYXB0dXJlRmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3Vy
Y2U+IGNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25z
dCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0
IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmKSBmaW5hbCB7Ci0gICAgICAg
IGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvKQotICAgICAgICAg
ICAgcmV0dXJuIG51bGxwdHI7Ci0KKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRp
b0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJh
aW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBN
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlm
IChkZXZpY2UucGVyc2lzdGVudElkKCkgPT0gZGV2aWNlSUQpCiAgICAgICAgICAgICAgICAgcmV0
dXJuIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIGNvbnN0
cmFpbnRzKTsKICAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICBy
ZXR1cm4geyB9OwogICAgIH0KIH07CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0o
SU9TKQotUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1Nv
dXJjZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1l
QXVkaW9Tb3VyY2UobmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZShuYW1lKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJj
ZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxs
cHRyOworICAgICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1
cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogUmVmUHRyPE1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0
ZWQoY29uc3QgU3RyaW5nJiBuYW1lKQpAQCAtNzQsNyArNzAsNyBAQCBSZWZQdHI8TW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U+IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVNdXRlZChjb25z
dCBTdHJpbgogfQogI2VuZGlmCiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5
JiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNl
OjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgp
CiB7CiAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFj
dG9yeT4gZmFjdG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRl
eCAxMzMxYzc5MTgxNDRlNmU5NmZjMmFmNDI1N2JmYzJlNzFmY2Q4ZTY3Li4zNjQ1MjJiMTNmNzA0
ZTkwODliYWY4NjVmOWI2Yjk4NmRiMjMxMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC00MiwxMCArNDIs
MTAgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2Ug
OiBwdWJsaWMgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGlj
IFJlZlB0cjxNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
Y3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICBzdGF0
aWMgUmVmUHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBjcmVhdGVNdXRlZChjb25zdCBTdHJp
bmcmIG5hbWUpOwogCi0gICAgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAg
c3RhdGljIEF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZpcnR1YWwgfk1v
Y2tSZWFsdGltZUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXIuY3BwCmluZGV4IGJkNzQ4ODYwNjJhMTM1ZmI4MmQ1NzJmZGFjMWNhNjFlOWE2NmJmMTAuLjY4
ZTY2YTI1YmIwMjQ3NDM0MjYzMjkxMjRiYjhmM2ExMWI1YjgyZWIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXIuY3BwCkBAIC04Nyw5ICs4Nyw5IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3Vy
Y2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNICiAg
ICAgaWYgKGF1ZGlvQ29uc3RyYWludHMuaXNWYWxpZCgpKSB7CiAgICAgICAgIFZlY3RvcjxEZXZp
Y2VJbmZvPiBkZXZpY2VJbmZvOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlOjphdWRpb0RldmljZXMoKSkgewotICAgICAgICAgICAgYXV0
byBhdWRpb1NvdXJjZSA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxh
YmVsKCksIG51bGxwdHIpOwotICAgICAgICAgICAgaWYgKGF1ZGlvU291cmNlLT5zdXBwb3J0c0Nv
bnN0cmFpbnRzKGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAg
ICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7YXVkaW9Tb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBk
ZXZpY2UucGVyc2lzdGVudElkKCl9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9
IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIp
OworICAgICAgICAgICAgaWYgKCEhc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1
cmVTb3VyY2UtPnN1cHBvcnRzQ29uc3RyYWludHMoYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENv
bnN0cmFpbnQpKQorICAgICAgICAgICAgICAgIGRldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVy
cm9yLmNhcHR1cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UucGVyc2lzdGVudElkKCl9
KTsKICAgICAgICAgfQogCiAgICAgICAgIGlmIChkZXZpY2VJbmZvLmlzRW1wdHkoKSkgewpAQCAt
MTA3LDkgKzEwNyw5IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlk
YXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNICiAgICAgaWYgKHZpZGVvQ29u
c3RyYWludHMuaXNWYWxpZCgpKSB7CiAgICAgICAgIFZlY3RvcjxEZXZpY2VJbmZvPiBkZXZpY2VJ
bmZvOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjp2aWRlb0RldmljZXMoKSkgewotICAgICAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9
IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIp
OwotICAgICAgICAgICAgaWYgKHZpZGVvU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHZpZGVv
Q29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgICAgICBkZXZpY2VJ
bmZvLmFwcGVuZCh7dmlkZW9Tb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UucGVyc2lzdGVu
dElkKCl9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOworICAgICAgICAgICAg
aWYgKHNvdXJjZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0
c0NvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKKyAgICAg
ICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNl
LT5maXRuZXNzU2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAgICAgICAgIH0KIAog
ICAgICAgICBpZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEzNSwyNiArMTM1LDI2IEBA
IHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmNyZWF0ZU1lZGlhU3RyZWFtKE5l
d01lZGlhU3RyZWFtSGFuZGxlciBjb21wCiAgICAgaWYgKCFhdWRpb0RldmljZUlELmlzRW1wdHko
KSkgewogICAgICAgICBhdXRvJiBhdWRpb0RldmljZXMgPSBNb2NrUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6YXVkaW9EZXZpY2VzKCk7CiAgICAgICAgIGlmIChhdWRpb0RldmljZUlEID09IGF1ZGlvRGV2
aWNlc1swXS5wZXJzaXN0ZW50SWQoKSkgewotICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBNb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1swXS5sYWJlbCgpLCBhdWRp
b0NvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIGlmIChzb3VyY2UpCi0gICAgICAgICAgICAgICAg
YXVkaW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAg
ICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1
ZGlvRGV2aWNlc1swXS5sYWJlbCgpLCBhdWRpb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgIGlm
ICghIXNvdXJjZU9yRXJyb3IpCisgICAgICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChz
b3VyY2VPckVycm9yLnNvdXJjZSgpKTsKICAgICAgICAgfSBlbHNlIGlmIChhdWRpb0RldmljZUlE
ID09IGF1ZGlvRGV2aWNlc1sxXS5wZXJzaXN0ZW50SWQoKSkgewotICAgICAgICAgICAgYXV0byBz
b3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1sxXS5s
YWJlbCgpLCBhdWRpb0NvbnN0cmFpbnRzKTsKLSAgICAgICAgICAgIGlmIChzb3VyY2UpCi0gICAg
ICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChzb3VyY2UucmVsZWFzZU5vbk51bGwoKSk7
CisgICAgICAgICAgICBhdXRvIHNvdXJjZU9yRXJyb3IgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJj
ZTo6Y3JlYXRlKGF1ZGlvRGV2aWNlc1sxXS5sYWJlbCgpLCBhdWRpb0NvbnN0cmFpbnRzKTsKKyAg
ICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJyb3IpCisgICAgICAgICAgICAgICAgYXVkaW9Tb3Vy
Y2VzLmFwcGVuZChzb3VyY2VPckVycm9yLnNvdXJjZSgpKTsKICAgICAgICAgfQogICAgIH0KIAog
ICAgIGlmICghdmlkZW9EZXZpY2VJRC5pc0VtcHR5KCkpIHsKICAgICAgICAgYXV0byYgdmlkZW9E
ZXZpY2VzID0gTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNlcygpOwogICAgICAg
ICBpZiAodmlkZW9EZXZpY2VJRCA9PSB2aWRlb0RldmljZXNbMF0ucGVyc2lzdGVudElkKCkpIHsK
LSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZSh2aWRlb0RldmljZXNbMF0ubGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAg
ICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQoc291cmNl
LnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VPckVycm9yID0gTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSh2aWRlb0RldmljZXNbMF0ubGFiZWwoKSwgdmlk
ZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAg
ICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5zb3VyY2UoKSk7CiAg
ICAgICAgIH0gZWxzZSBpZiAodmlkZW9EZXZpY2VJRCA9PSB2aWRlb0RldmljZXNbMV0ucGVyc2lz
dGVudElkKCkpIHsKLSAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U6OmNyZWF0ZSh2aWRlb0RldmljZXNbMV0ubGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7
Ci0gICAgICAgICAgICBpZiAoc291cmNlKQotICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5h
cHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAgYXV0byBzb3VyY2VP
ckVycm9yID0gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSh2aWRlb0RldmljZXNbMV0u
bGFiZWwoKSwgdmlkZW9Db25zdHJhaW50cyk7CisgICAgICAgICAgICBpZiAoISFzb3VyY2VPckVy
cm9yKQorICAgICAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJvci5z
b3VyY2UoKSk7CiAgICAgICAgIH0KICAgICB9CiAKQEAgLTE3NCwxMiArMTc0LDEyIEBAIFZlY3Rv
cjxDYXB0dXJlRGV2aWNlPiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Z2V0TWVkaWFT
dHJlYW1EZXZpY2VzKCkKICAgICByZXR1cm4gc291cmNlczsKIH0KIAotUmVhbHRpbWVNZWRpYVNv
dXJjZTo6Q2FwdHVyZUZhY3RvcnkqIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZh
dWx0QXVkaW9GYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3Rv
cnkqIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkK
IHsKICAgICByZXR1cm4gJk1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpmYWN0b3J5KCk7CiB9CiAK
LVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpW
aWRlb0NhcHR1cmVGYWN0b3J5KiBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6ZGVmYXVs
dFZpZGVvRmFjdG9yeSgpCiB7CiAgICAgcmV0dXJuICZNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6
ZmFjdG9yeSgpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9N
b2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCmluZGV4IGNkZTY1MGZiMjFlMWVl
MjY2YWU1YjkyOTU3MjAxMTkyNWQxOWIxZGUuLmU4NDE0MjIyMWNhMzgzMDc5ZmE0ODY2YjBhY2Fh
MTlmZTU0YWFhMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKQEAgLTQ1LDggKzQ1LDggQEAg
cHJpdmF0ZToKICAgICBWZWN0b3I8Q2FwdHVyZURldmljZT4gZ2V0TWVkaWFTdHJlYW1EZXZpY2Vz
KCkgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRs
ZXIsIGNvbnN0IFN0cmluZyYgYXVkaW9EZXZpY2VJRCwgY29uc3QgU3RyaW5nJiB2aWRlb0Rldmlj
ZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBhdWRpb0NvbnN0cmFpbnRzLCBjb25zdCBNZWRp
YUNvbnN0cmFpbnRzKiB2aWRlb0NvbnN0cmFpbnRzKSBmaW5hbDsKIAotICAgIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgZmluYWw7Ci0g
ICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3Rv
cnkoKSBmaW5hbDsKKyAgICBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5
KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6
VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgpIGZpbmFsOwogfTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVW
aWRlb1NvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZVZpZGVvU291cmNlLmNwcAppbmRleCAyZTY2NDIyZThlMmZiOWNmNDk3YjczMDE5NDYyYWMwZjEw
N2RmMjAzLi4wNmUyZjFhODdiYTY5MWIzNzQzMTI5YWRmYjQ0YmM0MWE2MDRkNTVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVv
U291cmNlLmNwcApAQCAtNDgsMjkgKzQ4LDI1IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAot
Y2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVk
aWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5IHsKK2NsYXNzIE1vY2tSZWFsdGltZVZpZGVvU291cmNl
RmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5
IHsKIHB1YmxpYzoKLSAgICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNl
SUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogY29uc3RyYWludHMsIFN0cmluZyYpIGZpbmFsIHsKLSAgICAgICAgaWYgKHR5cGUgIT0gQ2Fw
dHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8pCi0gICAgICAgICAgICByZXR1cm4gbnVsbHB0
cjsKLQorICAgIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50
cykgZmluYWwgewogICAgICAgICBmb3IgKGF1dG8mIGRldmljZSA6IE1vY2tSZWFsdGltZU1lZGlh
U291cmNlOjp2aWRlb0RldmljZXMoKSkgewogICAgICAgICAgICAgaWYgKGRldmljZS5wZXJzaXN0
ZW50SWQoKSA9PSBkZXZpY2VJRCkKICAgICAgICAgICAgICAgICByZXR1cm4gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShkZXZpY2UubGFiZWwoKSwgY29uc3RyYWludHMpOwogICAgICAg
ICB9Ci0KLSAgICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAgICAg
fQogfTsKIAogI2lmICFQTEFURk9STShNQUMpICYmICFQTEFURk9STShJT1MpCi1SZWZQdHI8TW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29u
c3QgU3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKK0Nh
cHR1cmVTb3VyY2VPckVycm9yIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZShuYW1l
KSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigqbmV3IE1vY2tSZWFsdGltZVZpZGVvU291
cmNlKG5hbWUpKTsKICAgICBpZiAoY29uc3RyYWludHMgJiYgc291cmNlLT5hcHBseUNvbnN0cmFp
bnRzKCpjb25zdHJhaW50cykpCi0gICAgICAgIHNvdXJjZSA9IG51bGxwdHI7CisgICAgICAgIHJl
dHVybiB7IH07CiAKLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNl
T3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCiBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2U+IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGVNdXRlZChjb25zdCBTdHJpbmcm
IG5hbWUpCkBAIC04MSw3ICs3Nyw3IEBAIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4g
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZU11dGVkKGNvbnN0IFN0cmluCiB9CiAjZW5k
aWYKIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlOjpmYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZh
Y3RvcnkmIE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpmYWN0b3J5KCkKIHsKICAgICBzdGF0aWMg
TmV2ZXJEZXN0cm95ZWQ8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5PiBmYWN0b3J5Owog
ICAgIHJldHVybiBmYWN0b3J5LmdldCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCmluZGV4IGQ3OTk4NWU3MWFjMmRl
MjA0OGNmNmNhM2JiOWJjZGQ3YjRlMDkzMDQuLmFhNjBlYzdlNWYzODMxY2YwYzI3ZmQ4ZjEwNzEx
M2IwMDJkMjk2MDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2Nr
L01vY2tSZWFsdGltZVZpZGVvU291cmNlLmgKQEAgLTQ2LDEwICs0NiwxMCBAQCBjbGFzcyBHcmFw
aGljc0NvbnRleHQ7CiBjbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSA6IHB1YmxpYyBNb2Nr
UmVhbHRpbWVNZWRpYVNvdXJjZSB7CiBwdWJsaWM6CiAKLSAgICBzdGF0aWMgUmVmUHRyPE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiwgY29uc3QgTWVkaWFDb25z
dHJhaW50cyopOworICAgIHN0YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3Qg
U3RyaW5nJiwgY29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogICAgIHN0YXRpYyBSZWZQdHI8TW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZU11dGVkKGNvbnN0IFN0cmluZyYgbmFtZSk7CiAK
LSAgICBzdGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKKyAgICBzdGF0aWMgVmlkZW9D
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2UoKSB7IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNv
cmVBcmd1bWVudENvZGVycy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCmluZGV4IDBmNTViOGFmNWFiNjhiODQ0MWQyZmI2MGNjZmMyYzVmMjdiN2JkN2Eu
Ljk3NmQyM2NhMzYxM2M0NzNmZmZhMWQwY2FhYzc5ZGJkOGFlZGYwNTAgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2RlcnMuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKQEAgLTM1LDYgKzM1LDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL01lZGlhU2VsZWN0aW9uT3B0aW9uLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9OZXR3b3JrTG9hZE1ldHJpY3MuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1BheW1lbnRIZWFk
ZXJzLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZWFsdGltZU1lZGlhU291cmNlLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaD4KIAogbmFtZXNwYWNlIFdURiB7CkBA
IC03MzQsNiArNzM1LDE0IEBAIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29yZTo6
Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZT4gewogICAgICAgICBXZWJDb3JlOjpDYXB0dXJlRGV2
aWNlOjpEZXZpY2VUeXBlOjpWaWRlbwogICAgID47CiB9OwordGVtcGxhdGU8PiBzdHJ1Y3QgRW51
bVRyYWl0czxXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlPiB7CisgICAgdXNpbmcg
dmFsdWVzID0gRW51bVZhbHVlczwKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpU
eXBlLAorICAgIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmUsCisgICAg
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sCisgICAgV2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8KKyAgICA+OworfTsKICNlbmRpZgogCiB0
ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6Ok1lZGlhU2VsZWN0aW9uT3B0aW9u
OjpUeXBlPiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAKaW5kZXggODM4YWVmMTM1ODhh
Njc3NjdmMDgwODIwMzQ1NWJiNWM1MWNlOTA0ZC4uOWMzZGU3N2UyNWZjZThmMDY1MjlkMmI2MDRl
NTE1Yjc2M2UyOGI1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29h
L1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcApAQCAtMTI1LDE0
ICsxMjUsMjcgQEAgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6flVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyUHJveHkoKQogICAgIG1fcHJvY2Vzcy5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVz
c2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUo
KSk7CiB9CiAKLXZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFT
b3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBT
dHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1Y2Nl
ZWRlZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCit2b2lkIFVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyh1aW50NjRfdCBpZCwgY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRp
bWVNZWRpYVNvdXJjZTo6VHlwZSB0eXBlLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzRGF0YSYgY29u
c3RyYWludHNEYXRhLCBib29sJiBzdWNjZWVkZWQsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRz
KQogeworICAgIENhcHR1cmVTb3VyY2VPckVycm9yIHNvdXJjZU9yRXJyb3I7CiAgICAgYXV0byBj
b25zdHJhaW50cyA9IE1lZGlhQ29uc3RyYWludHNJbXBsOjpjcmVhdGUoTWVkaWFDb25zdHJhaW50
c0RhdGEoY29uc3RyYWludHNEYXRhKSk7Ci0gICAgYXV0byBzb3VyY2UgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0ZhY3RvcnkoKS0+Y3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGRldmljZUlELCB0eXBlLCBjb25zdHJh
aW50cy5wdHIoKSwgaW52YWxpZENvbnN0cmFpbnRzKTsKLSAgICBzdWNjZWVkZWQgPSAhIXNvdXJj
ZTsKKyAgICBzd2l0Y2ggKHR5cGUpIHsKKyAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvOgorICAgICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRp
YVNvdXJjZUNlbnRlcjo6c2luZ2xldG9uKCkuYXVkaW9GYWN0b3J5KCktPmNyZWF0ZUF1ZGlvQ2Fw
dHVyZVNvdXJjZShkZXZpY2VJRCwgY29uc3RyYWludHMucHRyKCkpOworICAgICAgICBicmVhazsK
KyAgICBjYXNlIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvOgorICAg
ICAgICBzb3VyY2VPckVycm9yID0gUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2luZ2xldG9u
KCkudmlkZW9GYWN0b3J5KCktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShkZXZpY2VJRCwgY29u
c3RyYWludHMucHRyKCkpOworICAgICAgICBicmVhazsKKyAgICBjYXNlIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OworICAgICAgICBicmVhazsKKyAgICB9CiAKLSAgICBpZiAoc291cmNlKQotICAgICAgICBtX3By
b3hpZXMuc2V0KGlkLCBzdGQ6Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNv
dXJjZS5yZWxlYXNlTm9uTnVsbCgpKSk7CisgICAgc3VjY2VlZGVkID0gISFzb3VyY2VPckVycm9y
OworICAgIGlmIChzb3VyY2VPckVycm9yKQorICAgICAgICBtX3Byb3hpZXMuc2V0KGlkLCBzdGQ6
Om1ha2VfdW5pcXVlPFNvdXJjZVByb3h5PihpZCwgKnRoaXMsIHNvdXJjZU9yRXJyb3Iuc291cmNl
KCkpKTsKKyAgICBlbHNlCisgICAgICAgIGludmFsaWRDb25zdHJhaW50cyA9IFdURk1vdmUoc291
cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwogfQogCiB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHk6OnN0YXJ0UHJvZHVjaW5nRGF0YSh1aW50NjRfdCBpZCkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXJQcm94eS5oCmluZGV4IDBlNjM1MTgyZTI0M2NjNzdjMzQ4ZTA3NjZlZDNlYzVhYWRkMGYxODIu
LjQxMzlkYjI0ZDQ3NTIwOWVjM2U3Y2QzY2JmN2JkODM0YTI3OGNiY2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHkuaApAQCAtNDksNyArNDksNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVj
ZWl2ZU1lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVyJikgZmluYWw7CiAgICAg
dm9pZCBkaWRSZWNlaXZlU3luY01lc3NhZ2UoSVBDOjpDb25uZWN0aW9uJiwgSVBDOjpEZWNvZGVy
Jiwgc3RkOjp1bmlxdWVfcHRyPElQQzo6RW5jb2Rlcj4mKSBmaW5hbDsKIAotICAgIHZvaWQgY3Jl
YXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlk
LCBjb25zdCBTdHJpbmcmIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VU
eXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRl
ZCwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludHMpOworICAgIHZvaWQgY3JlYXRlTWVkaWFTb3Vy
Y2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBTdHJp
bmcmIGRldmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSYsIGJvb2wmIHN1Y2NlZWRlZCwgU3RyaW5nJiBp
bnZhbGlkQ29uc3RyYWludHMpOwogICAgIHZvaWQgc3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2NF90
KTsKICAgICB2b2lkIHN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90KTsKICAgICB2b2lkIGNhcGFi
aWxpdGllcyh1aW50NjRfdCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGll
cyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRp
YUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1
MjdkZmE2NmE4NDZmNDdmZDA4MGQ1N2U3MTgzMzcxMjJkODFjODA4Li4xZmMwOTNlNWIzMDk2ZjUx
MGRkZThmZjRhY2U2NGZkMTQwMTNiN2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbgorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eS5tZXNzYWdlcy5pbgpAQCAtMjIsNyArMjIsNyBAQAogIyBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCiAKIG1lc3NhZ2VzIC0+IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkg
ewotICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyh1
aW50NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZp
Y2VUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJh
aW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25zdHJhaW50cykKKyAgICBD
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModWludDY0X3Qg
aWQsIFN0cmluZyBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSB0
eXBlLCBzdHJ1Y3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50c0RhdGEgY29uc3RyYWludHMpIC0+
IChib29sIHN1Y2Nlc3MsIFN0cmluZyBpbnZhbGlkQ29uc3RyYWludHMpCiAgICAgU3RhcnRQcm9k
dWNpbmdEYXRhKHVpbnQ2NF90IGlkKQogICAgIFN0b3BQcm9kdWNpbmdEYXRhKHVpbnQ2NF90IGlk
KQogICAgIENhcGFiaWxpdGllcyh1aW50NjRfdCBpZCkgLT4gKFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2VDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5j
cHAKaW5kZXggZjJlOGVjZDYwMTljMGQwNGM0YTU0MTU0M2RlNmI1NjJkMjU3YWIxZS4uNzhmMzFj
YWM0NmE0NjU3OTIwMzg3YzJiYmMwMmIyMDE0MzE5MDZhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0ZvcndhcmRMaXN0UHJv
eHkuY3BwCkBAIC05OCw3ICs5OCw3IEBAIHZvaWQgV2ViQmFja0ZvcndhcmRMaXN0UHJveHk6OmFk
ZEl0ZW1Gcm9tVUlQcm9jZXNzKHVpbnQ2NF90IGl0ZW1JRCwgUmVmPEhpc3RvcnlJCiB7CiAgICAg
Ly8gVGhpcyBpdGVtL2l0ZW1JRCBwYWlyIHNob3VsZCBub3QgYWxyZWFkeSBleGlzdCBpbiBvdXIg
bWFwcy4KICAgICBBU1NFUlQoIWhpc3RvcnlJdGVtVG9JRE1hcCgpLmNvbnRhaW5zKGl0ZW0ucHRy
KCkpKTsKLSAgICBBU1NFUlQoIWlkVG9IaXN0b3J5SXRlbU1hcCgpLmNvbnRhaW5zKGl0ZW1JRCkp
OworLy8gICAgQVNTRVJUKCFpZFRvSGlzdG9yeUl0ZW1NYXAoKS5jb250YWlucyhpdGVtSUQpKTsK
IAogICAgIGhpc3RvcnlJdGVtVG9JRE1hcCgpLnNldDxJdGVtQW5kUGFnZUlEPihpdGVtLnB0cigp
LCB7IC5pdGVtSUQgPSBpdGVtSUQsIC5wYWdlSUQgPSBwYWdlSUQgfSk7CiAgICAgaWRUb0hpc3Rv
cnlJdGVtTWFwKCkuc2V0KGl0ZW1JRCwgaXRlbS5wdHIoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CmluZGV4IGIzMWFhMThlMWI2ODI5MTQ5NzU3OTg4MTM4YzZkMmYwZmU2YjQ0ZGMuLjRkNGYwMjYy
ZmQ5YjExODNiODA0MzkwOTRlNWYzMTRjZjA2ZTU0NWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuY3Bw
CkBAIC0xODIsMTAgKzE4MiwxMCBAQCB2b2lkIFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjppbml0
aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBhcgogICAgICAgICBS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5zZXRBdWRpb0ZhY3RvcnkoKnRo
aXMpOwogfQogCi1SZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhj
b25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50cykKK1dlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIFVzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyOjpjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNlVHlwZSwgY29uc3QgV2ViQ29yZTo6TWVk
aWFDb25zdHJhaW50cyogY29uc3RyYWludHMpCiB7CiAgICAgaWYgKCFjb25zdHJhaW50cykKLSAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICB1aW50NjRf
dCBpZCA9IG5leHRTZXNzaW9uSUQoKTsKICAgICBNZWRpYUNvbnN0cmFpbnRzRGF0YSBjb25zdHJh
aW50c0RhdGE7CkBAIC0xOTQsMjQgKzE5NCwxMyBAQCBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJj
ZT4gVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZQog
ICAgIGNvbnN0cmFpbnRzRGF0YS5pc1ZhbGlkID0gY29uc3RyYWludHMtPmlzVmFsaWQoKTsKICAg
ICBib29sIHN1Y2NlZWRlZDsKIAotICAgIG1fcHJvY2Vzcy5zZW5kU3luYyhNZXNzYWdlczo6VXNl
ck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHNEYXRhKSwg
TWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNl
Rm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3VjY2VlZGVkLCBpbnZhbGlk
Q29uc3RyYWludHMpLCAwKTsKLQotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUgc291cmNl
VHlwZTsKLSAgICBzd2l0Y2ggKHR5cGUpIHsKLSAgICBjYXNlIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGU6OkF1ZGlvOgotICAgICAgICBzb3VyY2VUeXBlID0gV2ViQ29yZTo6UmVh
bHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW87Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2Ug
V2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW86Ci0gICAgICAgIHNvdXJj
ZVR5cGUgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbzsKLSAgICAg
ICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpV
bmtub3duOgotICAgIGRlZmF1bHQ6Ci0gICAgICAgIHNvdXJjZVR5cGUgPSBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlOjpOb25lOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAg
YXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291
cmNlVHlwZSwgZW1wdHlTdHJpbmcoKSwgaWQsICp0aGlzKSk7Ci0gICAgbV9zb3VyY2VzLnNldChp
ZCwgc291cmNlKTsKLSAgICByZXR1cm4gc291cmNlOworICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7
CisgICAgaWYgKCFtX3Byb2Nlc3Muc2VuZFN5bmMoTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVN
YW5hZ2VyUHJveHk6OkNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJh
aW50cyhpZCwgZGV2aWNlSUQsIHNvdXJjZVR5cGUsIGNvbnN0cmFpbnRzRGF0YSksIE1lc3NhZ2Vz
OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1
cmVEZXZpY2VXaXRoQ29uc3RyYWludHM6OlJlcGx5KHN1Y2NlZWRlZCwgZXJyb3JNZXNzYWdlKSwg
MCkpCisgICAgICAgIHJldHVybiBXVEZNb3ZlKGVycm9yTWVzc2FnZSk7CisKKyAgICBhdXRvIHNv
dXJjZSA9IGFkb3B0UmVmKCpuZXcgU291cmNlKFN0cmluZzo6bnVtYmVyKGlkKSwgc291cmNlVHlw
ZSwgZW1wdHlTdHJpbmcoKSwgaWQsICp0aGlzKSk7CisgICAgbV9zb3VyY2VzLnNldChpZCwgc291
cmNlLmNvcHlSZWYoKSk7CisgICAgcmV0dXJuIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9y
KFdURk1vdmUoc291cmNlKSk7CiB9CiAKIHZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OnNv
dXJjZVN0b3BwZWQodWludDY0X3QgaWQpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9X
ZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKaW5kZXggNDQ2ZGE5OTFj
YTZjODhjODYwZmE3MTk0NWFkOGQ2ZjllMmU0ZDY3Zi4uYThhOTNhYmRlZTVlOGVkYzZkMDIxOThi
NTEwNjk0OWM1ZTQ4OWI2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9j
b2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIuaApAQCAtNDIsNyArNDIsNyBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIGNsYXNzIENyb3NzUHJvY2Vzc1JlYWx0aW1lQXVkaW9Tb3VyY2U7
CiBjbGFzcyBXZWJQcm9jZXNzOwogCi1jbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1
YmxpYyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBw
dWJsaWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xh
c3MgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIgOiBwdWJsaWMgV2ViUHJvY2Vzc1N1cHBsZW1lbnQs
IHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciwgcHVibGljIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnksIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1l
ZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKICAgICBleHBsaWNpdCBV
c2VyTWVkaWFDYXB0dXJlTWFuYWdlcihXZWJQcm9jZXNzKik7CiAgICAgflVzZXJNZWRpYUNhcHR1
cmVNYW5hZ2VyKCk7CkBAIC01Myw4ICs1MywxMCBAQCBwcml2YXRlOgogICAgIC8vIFdlYlByb2Nl
c3NTdXBwbGVtZW50CiAgICAgdm9pZCBpbml0aWFsaXplKGNvbnN0IFdlYlByb2Nlc3NDcmVhdGlv
blBhcmFtZXRlcnMmKSBmaW5hbDsKIAotICAgIC8vIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkZhY3Rvcnk6Ci0gICAgUmVmUHRyPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U+IGNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJp
bmcmIGRldmljZUlELCBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlLCBjb25zdCBX
ZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5nJikgZmluYWw7CisgICAgLy8gV2ViQ29y
ZTo6UmVhbHRpbWVNZWRpYVNvdXJjZSBmYWN0b3JpZXMKKyAgICBXZWJDb3JlOjpDYXB0dXJlU291
cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJ
RCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsg
cmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGU6OkF1ZGlvLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3JlOjpDYXB0
dXJlU291cmNlT3JFcnJvciBjcmVhdGVWaWRlb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBk
ZXZpY2VJRCwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZp
bmFsIHsgcmV0dXJuIGNyZWF0ZUNhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0
aW1lTWVkaWFTb3VyY2U6OlR5cGU6OlZpZGVvLCBjb25zdHJhaW50cyk7IH0KKyAgICBXZWJDb3Jl
OjpDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVDYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNv
cmU6Ok1lZGlhQ29uc3RyYWludHMqKTsKIAogICAgIC8vIElQQzo6TWVzc2FnZVJlY2VpdmVyCiAg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXIm
KSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>308597</attachid>
            <date>2017-04-28 14:34:38 -0700</date>
            <delta_ts>2017-04-28 16:26:35 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-171284-20170428143437.patch</filename>
            <type>text/plain</type>
            <size>79946</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjE1OTQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTlhZmQ4ZjVlZWY0MTEx
NWU4ZjhlOWMzNDc4YjQ1NDlhZDUyZjVlYy4uNDc1MzMwYjIxODllYTM3Y2NiOGI2ZWY2MDQ5MGFh
ZTMyZGQxNjVhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk4IEBACisyMDE3LTA0LTI4ICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBnZXRVc2VyTWVkaWEgdmlk
ZW8gc3RyZWFtcyBzaG91bGQgZm9sbG93IGRldmljZSBvcmllbnRhdGlvbgorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTcxMjg0CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgRXJpYyBDYXJsc29uLgorCisgICAgICAgIE9ubHkgcmVhbGx5IGFmZmVjdHMgQVZW
aWRlb0NhcHR1cmVTb3VyY2Ugb24gaU9TLiBNYW51YWxseSB0ZXN0aW5nIHRoZSBmb2xsb3dpbmcg
Y2FzZXM6CisgICAgICAgIC0gTWFjOiBubyBjaGFuZ2Ugb2YgYmVoYXZpb3IKKyAgICAgICAgLSBp
T1M6IHBhZ2UgbG9hZGVkIGluIHBvcnRyYWl0LCB2aWRlbyBpcyBwb3J0cmFpdC4gcGFnZSBsb2Fk
ZWQgaW4gbGFuZHNjYXBlLCB2aWRlbyBpcyBsYW5kc2NhcGUKKyAgICAgICAgLSBpT1M6IGNoYW5n
aW5nIHRoZSBkZXZpY2Ugb3JpZW50YXRpb24gbWFrZXMgdGhlIHZpZGVvIHNhbXBsZXMgdG8gYmUg
bW92ZWQgdG8gbGFuZHNjYXBlL3BvcnRyYWl0LgorICAgICAgICAtIFNhbWUgdGVzdHMgYXMgYWJv
dmUgd2l0aCBwZWVyIGNvbm5lY3Rpb24uCisKKyAgICAgICAgTWFraW5nIERvY3VtZW50IGhhdmlu
ZyBhbiBPcmllbnRhdGlvbk5vdGlmaWVyIHRoYXQgQVZWaWRlb0NhcHR1cmVTb3VyY2VzIGdldCBy
ZWdpc3RlcmVkIHRvLgorICAgICAgICBNYWtpbmcgQVZWaWRlb0NhcHR1cmVTb3VyY2UgYW4gT3Jp
ZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgc28gdGhhdCBpdCBjYW4gY2hhbmdlcyB3aWR0aC9o
ZWlnaHQgaWYgbmVlZGVkLgorCisgICAgICAgIFJlZmFjdG9yaW5nIHRvIHNwZWNpYWxpemUgQ2Fw
dHVyZUZhY3RvcnkgaW4gVmlkZW9DYXB0dXJlRmFjdG9yeSBhbmQgQXVkaW9DYXB0dXJlRmFjdG9y
eS4KKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gcmV0dXJuIGEgQ2FwdHVyZVNvdXJjZU9yRXJyb3Ig
aW5zdGVhZCBvZiBwYXNzaW5nIGFuIG91dCBwYXJhbWV0ZXIgcGx1cyByZXR1cm5pbmcgYSBSZWZQ
dHIuCisKKyAgICAgICAgKiBNb2R1bGVzL21lZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6VXNlck1lZGlhUmVxdWVzdDo6YWxsb3cpOgorICAgICAgICAq
IFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBkb20vRG9jdW1l
bnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6Om9yaWVudGF0aW9uQ2hhbmdlZCk6
CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogcGFnZS9GcmFtZS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpGcmFtZTo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAgICAgKiBw
bGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaDogQ29waWVkIGZyb20gU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaC4KKyAgICAgICAg
KFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6Ok9ic2VydmVyOjpzZXROb3RpZmllcik6Cisg
ICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjpPYnNlcnZlcjo6fk9ic2VydmVy
KToKKyAgICAgICAgKFdlYkNvcmU6Ok9yaWVudGF0aW9uTm90aWZpZXI6Om9yaWVudGF0aW9uQ2hh
bmdlZCk6CisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjphZGRPYnNlcnZl
cik6CisgICAgICAgIChXZWJDb3JlOjpPcmllbnRhdGlvbk5vdGlmaWVyOjpyZW1vdmVPYnNlcnZl
cik6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6Ok1lZGlhU3RyZWFtUHJpdmF0ZTo6bW9uaXRvck9yaWVudGF0
aW9uKToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmg6
CisgICAgICAgIChXZWJDb3JlOjpDYXB0dXJlU291cmNlT3JFcnJvcjo6Q2FwdHVyZVNvdXJjZU9y
RXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3I6Om9wZXJhdG9y
IGJvb2wpOgorICAgICAgICAoV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3I6OnNvdXJjZSk6
CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzZXRB
dWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRl
cjo6dW5zZXRBdWRpb0ZhY3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlcjo6c2V0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0VmlkZW9GYWN0b3J5KToKKyAgICAgICAgKiBwbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZhdWx0QXVkaW9GYWN0b3J5KToKKyAg
ICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRWaWRlb0Zh
Y3RvcnkpOgorICAgICAgICAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6YXVk
aW9GYWN0b3J5KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnZpZGVvRmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVk
aW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FW
QXVkaW9DYXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZBdWRpb0NhcHR1cmVT
b3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6
ZmFjdG9yeSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0
dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWVmlkZW9D
YXB0dXJlU291cmNlLm1tOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9y
eSk6CisgICAgICAgIChXZWJDb3JlOjpBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6bW9uaXRvck9yaWVu
dGF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OkFWVmlkZW9DYXB0dXJlU291cmNlOjpvcmllbnRh
dGlvbkNoYW5nZWQpOgorICAgICAgICAoV2ViQ29yZTo6QVZWaWRlb0NhcHR1cmVTb3VyY2U6OnBy
b2Nlc3NOZXdGcmFtZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVB
dWRpb0NhcHR1cmVTb3VyY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q29yZUF1ZGlvQ2FwdHVy
ZVNvdXJjZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkNvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Db3JlQXVk
aW9DYXB0dXJlU291cmNlLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01v
Y2tSZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0
aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6b3JpZW50YXRpb25DaGFuZ2VkKToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpj
cmVhdGVNZWRpYVN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyk6CisgICAgICAgIChX
ZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRlZmF1
bHRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFs
dGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmg6CisgICAgICAgICogcGxhdGZvcm0vbWVkaWFzdHJl
YW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyT3dyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3I6OmNyZWF0ZU1lZGlhU3RyZWFt
KToKKyAgICAgICAgKiBwbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVud2VicnRjL1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXJPd3IuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZUF1ZGlvU291
cmNlOjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6
OmZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2Vu
dGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
Ojp2YWxpZGF0ZVJlcXVlc3RDb25zdHJhaW50cyk6CisgICAgICAgIChXZWJDb3JlOjpNb2NrUmVh
bHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFTdHJlYW0pOgorICAgICAgICAoV2Vi
Q29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRBdWRpb0ZhY3Rvcnkp
OgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1
bHRWaWRlb0ZhY3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaDoKKyAgICAgICAgKiBwbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZp
ZGVvU291cmNlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZh
Y3RvcnkpOgorICAgICAgICAqIHBsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2Uu
aDoKKwogMjAxNy0wNC0yOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAg
ICAgIFJhbmdlLmdldENsaWVudFJlY3RzKCkgLyBnZXRCb3VuZGluZ0NsaWVudFJlY3QoKSBzaG91
bGQgcmV0dXJuIERPTVJlY3QgdHlwZXMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwppbmRleCA1NWY1NWI5YTU3MmIxM2E5ZmUx
ZTdmODhhZjU5MjljNWM1NTdhODk4Li5hY2I5ODNhNmE1ZjhlNWMyMWE2MGJiNDY1NDUyYWI4YWVm
YjEyYWE5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTctMDQtMjggIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIGdldFVzZXJNZWRpYSB2aWRlbyBz
dHJlYW1zIHNob3VsZCBmb2xsb3cgZGV2aWNlIG9yaWVudGF0aW9uCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzEyODQKKworICAgICAgICBSZXZpZXdl
ZCBieSBFcmljIENhcmxzb24uCisKKyAgICAgICAgUmVmYWN0b3JpbmcgdG8gc3BlY2lhbGl6ZSBD
YXB0dXJlRmFjdG9yeSBpbiBWaWRlb0NhcHR1cmVGYWN0b3J5IGFuZCBBdWRpb0NhcHR1cmVGYWN0
b3J5LgorICAgICAgICBSZWZhY3RvcmluZyB0byByZXR1cm4gYSBDYXB0dXJlU291cmNlT3JFcnJv
ciBpbnN0ZWFkIG9mIHBhc3NpbmcgYW4gb3V0IHBhcmFtZXRlciBpbiBhZGRpdGlvbiB0byByZXR1
cm5pbmcgYSBSZWZQdHIuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJz
Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJv
eHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Ojpj
cmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMpOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkubWVzc2Fn
ZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyOjpjcmVhdGVD
YXB0dXJlU291cmNlKToKKyAgICAgICAgKFdlYktpdDo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6
OmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyk6IERlbGV0
ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlci5o
OgorCiAyMDE3LTA0LTI4ICBCcmFkeSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBTdGFydCBvZiBzdXBwb3J0IGZvciBtdWx0aXBsZSBXZWJzaXRlRGF0YVN0b3JlL1Nlc3Np
b25JRHMgcGVyIHByb2Nlc3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVk
aWFzdHJlYW0vVXNlck1lZGlhUmVxdWVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL21l
ZGlhc3RyZWFtL1VzZXJNZWRpYVJlcXVlc3QuY3BwCmluZGV4IDZlYjQxOTQxYTcyNDVhMjE2ZDcw
ODQ0NjQ5NTYzZjYwZThmOGM2NTYuLjRkMmJmYmM2NTI1MTBmYmRkY2U3Mjc0YmRjZThkNjU4OTBm
OTlkNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvbWVkaWFzdHJlYW0vVXNl
ck1lZGlhUmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9tZWRpYXN0cmVh
bS9Vc2VyTWVkaWFSZXF1ZXN0LmNwcApAQCAtMTY3LDYgKzE2Nyw3IEBAIHZvaWQgVXNlck1lZGlh
UmVxdWVzdDo6YWxsb3coY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZVVJRCwgY29uc3QgU3RyaW5n
JiB2aWRlb0RlCiAgICAgICAgICAgICBkZW55KE1lZGlhQWNjZXNzRGVuaWFsUmVhc29uOjpIYXJk
d2FyZUVycm9yLCBlbXB0eVN0cmluZygpKTsKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
fQorICAgICAgICBwcml2YXRlU3RyZWFtLT5tb25pdG9yT3JpZW50YXRpb24oZG93bmNhc3Q8RG9j
dW1lbnQ+KG1fc2NyaXB0RXhlY3V0aW9uQ29udGV4dCktPm9yaWVudGF0aW9uTm90aWZpZXIoKSk7
CiAKICAgICAgICAgYXV0byBzdHJlYW0gPSBNZWRpYVN0cmVhbTo6Y3JlYXRlKCptX3NjcmlwdEV4
ZWN1dGlvbkNvbnRleHQsIHByaXZhdGVTdHJlYW0ucmVsZWFzZU5vbk51bGwoKSk7CiAgICAgICAg
IGlmIChzdHJlYW0tPmdldFRyYWNrcygpLmlzRW1wdHkoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGExZjk2YzU2YjNiNDMz
ODAwM2FkNTI0ODhiNTA4NzJkZjA3MWNkY2IuLmQ5M2M0MGQ0NTczMDRmMjQwODYyMzlhODZlNTMx
MWIxMjJjZDViNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTE3NTMsNiArMTc1Myw3IEBACiAJCTQxODE1QzFGMTM4MzE5ODMw
MDU3QUFBNCAvKiBXZWJDb3JlVGVzdFN1cHBvcnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODE1QzFEMTM4MzE5ODMwMDU3QUFBNCAvKiBXZWJDb3Jl
VGVzdFN1cHBvcnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQk0MTgyMDU0NzFFNTNFOThDMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE4MjA1NDUxRTUzQzhD
RDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTgyMDU0OTFFNTNFQUIwMDBENjIyMDcgLyogUlRDQ29u
dHJvbGxlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAgKi87IH07CisJ
CTQxODRGNTE2MUVBRjA1QTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxODRGNTE1MUVBRjA1OTgw
MEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTg4NUI5MzExQjZGREE2MDAzMzgzQkIgLyogRm9y
bVN1Ym1pc3Npb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxODg1QjkxMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxODg1Qjk0MTFCNkZE
QTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTg4NUI5MjExQjZGREE2MDAzMzgzQkIgLyogRm9ybVN1
Ym1pc3Npb24uY3BwICovOyB9OwogCQk0MThBMDZEMDEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnRE
aXNwYXRjaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MThBMDZDRTEzM0MwNEQ1MDBDRDM3OUMgLyogRXZlbnREaXNwYXRjaGVyLmggKi87IH07CkBA
IC05MzcyLDYgKzkzNzMsNyBAQAogCQk0MTgxNzA3RDEzODZFREYyMDA1N0FBQTQgLyogV2ViQ29y
ZVRlc3RTdXBwb3J0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IFdl
YkNvcmVUZXN0U3VwcG9ydC54Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDE4MjA1NDUxRTUzQzhDRDAwRDYyMjA3IC8qIFJUQ0NvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gUlRDQ29udHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQk0MTgyMDU0ODFFNTNFQUFEMDBENjIyMDcgLyogUlRDQ29udHJvbGxlci5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBSVENDb250cm9sbGVyLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDE4NEY1MTUxRUFGMDU5ODAwRjE4QkYwIC8q
IE9yaWVudGF0aW9uTm90aWZlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBP
cmllbnRhdGlvbk5vdGlmZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDE4ODVC
OTExMUI2RkRBNjAwMzM4M0JCIC8qIEZvcm1TdWJtaXNzaW9uLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZvcm1TdWJtaXNzaW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxODg1QjkyMTFCNkZEQTYwMDMzODNCQiAvKiBGb3JtU3VibWlzc2lvbi5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBGb3JtU3VibWlzc2lvbi5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxOEEwNkNFMTMzQzA0RDUwMENEMzc5QyAvKiBF
dmVudERpc3BhdGNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRXZlbnRE
aXNwYXRjaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzk5MSw2ICsyMzk5
Myw3IEBACiAJCQkJQkM3NzJDNEQwQzRFQjMwNDAwODMyODVGIC8qIE1JTUVUeXBlUmVnaXN0cnku
aCAqLywKIAkJCQlFMTUxM0Q1MDE2NzdGMDg4MDAxNDlGQ0IgLyogTm90SW1wbGVtZW50ZWQuY3Bw
ICovLAogCQkJCTk4RUIxRjk0MTMxM0ZFMDUwMEQwRTFFQSAvKiBOb3RJbXBsZW1lbnRlZC5oICov
LAorCQkJCTQxODRGNTE1MUVBRjA1OTgwMEYxOEJGMCAvKiBPcmllbnRhdGlvbk5vdGlmZXIuaCAq
LywKIAkJCQk0QjI3MDhDNTBBRjE5RUU0MDA2NTEyN0YgLyogUGFzdGVib2FyZC5oICovLAogCQkJ
CUM1Rjc2NUI0MTRFMUQ0MTQwMDZDODk5QiAvKiBQYXN0ZWJvYXJkU3RyYXRlZ3kuaCAqLywKIAkJ
CQkxQUY1RTREMjFFNTY3MzVBMDA0QTFGMDEgLyogUGFzdGVib2FyZFdyaXRlckRhdGEuY3BwICov
LApAQCAtMjk2MjYsNiArMjk2MjksNyBAQAogCQkJCTA4MTA5M0RDMTI1NUYwRTcwMEVEOUQyOSAv
KiBTVkdUZXh0TGF5b3V0QXR0cmlidXRlc0J1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA4
MTY2OERBMTI1NjAzRDUwMDZGMjVERSAvKiBTVkdUZXh0TGF5b3V0RW5naW5lLmggaW4gSGVhZGVy
cyAqLywKIAkJCQkwODBFNDkyNjEyNTVGM0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2lu
ZUJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTg0RjUxNjFFQUYwNUE4MDBGMThCRjAg
LyogT3JpZW50YXRpb25Ob3RpZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkwODBFNDkyODEyNTVG
M0JEMDBFRkNBMjcgLyogU1ZHVGV4dExheW91dEVuZ2luZVNwYWNpbmcuaCBpbiBIZWFkZXJzICov
LAogCQkJCTA4RjBCRkM2MTI1NUM1M0MwMDA3NTE4NSAvKiBTVkdUZXh0TWV0cmljcy5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJNzExNzQ0NTkxNEJDMzRFQzAwRUU1RkM4IC8qIFNWR1RleHRNZXRyaWNz
QnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBhNGVh
ZDJmMjU2OGJhMWNkYTI2MTRiOTViZTEzMWVjMzAwM2VmY2E4Li44ZWVjODU0ODZhNjdkMjA3OWEz
MDdkYjNmMGZkMjNkMjdlNGYwYmUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTQzMyw2
ICs0MzMsMTcgQEAgSGFzaFNldDxEb2N1bWVudCo+JiBEb2N1bWVudDo6YWxsRG9jdW1lbnRzKCkK
ICAgICByZXR1cm4gZG9jdW1lbnRzOwogfQogCitzdGF0aWMgaW5saW5lIGludCBjdXJyZW50T3Jp
ZW50YXRpb24oRnJhbWUqIGZyYW1lKQoreworI2lmIEVOQUJMRShPUklFTlRBVElPTl9FVkVOVFMp
CisgICAgaWYgKGZyYW1lKQorICAgICAgICByZXR1cm4gZnJhbWUtPm9yaWVudGF0aW9uKCk7Cisj
ZWxzZQorICAgIFVOVVNFRF9QQVJBTShmcmFtZSk7CisjZW5kaWYKKyAgICByZXR1cm4gMDsKK30K
KwogRG9jdW1lbnQ6OkRvY3VtZW50KEZyYW1lKiBmcmFtZSwgY29uc3QgVVJMJiB1cmwsIHVuc2ln
bmVkIGRvY3VtZW50Q2xhc3NlcywgdW5zaWduZWQgY29uc3RydWN0aW9uRmxhZ3MpCiAgICAgOiBD
b250YWluZXJOb2RlKCp0aGlzLCBDcmVhdGVEb2N1bWVudCkKICAgICAsIFRyZWVTY29wZSgqdGhp
cykKQEAgLTQ4Myw2ICs0OTQsNyBAQCBEb2N1bWVudDo6RG9jdW1lbnQoRnJhbWUqIGZyYW1lLCBj
b25zdCBVUkwmIHVybCwgdW5zaWduZWQgZG9jdW1lbnRDbGFzc2VzLCB1bnNpZwogI2VuZGlmCiAg
ICAgLCBtX2lzU3ludGhlc2l6ZWQoY29uc3RydWN0aW9uRmxhZ3MgJiBTeW50aGVzaXplZCkKICAg
ICAsIG1faXNOb25SZW5kZXJlZFBsYWNlaG9sZGVyKGNvbnN0cnVjdGlvbkZsYWdzICYgTm9uUmVu
ZGVyZWRQbGFjZWhvbGRlcikKKyAgICAsIG1fb3JpZW50YXRpb25Ob3RpZmllcihjdXJyZW50T3Jp
ZW50YXRpb24oZnJhbWUpKQogewogICAgIGFsbERvY3VtZW50cygpLmFkZCh0aGlzKTsKIApAQCAt
Njk1NCw0ICs2OTY2LDEwIEBAIHZvaWQgRG9jdW1lbnQ6OmRpZFJlbW92ZUluRG9jdW1lbnRTaGFk
b3dSb290KFNoYWRvd1Jvb3QmIHNoYWRvd1Jvb3QpCiAgICAgbV9pbkRvY3VtZW50U2hhZG93Um9v
dHMucmVtb3ZlKCZzaGFkb3dSb290KTsKIH0KIAordm9pZCBEb2N1bWVudDo6b3JpZW50YXRpb25D
aGFuZ2VkKGludCBvcmllbnRhdGlvbikKK3sKKyAgICBkaXNwYXRjaFdpbmRvd0V2ZW50KEV2ZW50
OjpjcmVhdGUoZXZlbnROYW1lcygpLm9yaWVudGF0aW9uY2hhbmdlRXZlbnQsIGZhbHNlLCBmYWxz
ZSkpOworICAgIG1fb3JpZW50YXRpb25Ob3RpZmllci5vcmllbnRhdGlvbkNoYW5nZWQob3JpZW50
YXRpb24pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IGZiMmQ5N2ZkMGU0ODRmNjU4MDgyOWY4YmZiOWI2OWYzZWJhY2UwZjIuLjM5OGU1MzlkN2Iw
NDMzZjI0MDI4ODczMmZjMGQ3YTJhMGYzODNiM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0z
OCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVEZXN0cnVjdGlvbk9ic2VydmVyLmgiCiAjaW5j
bHVkZSAiTWVkaWFQcm9kdWNlci5oIgogI2luY2x1ZGUgIk11dGF0aW9uT2JzZXJ2ZXIuaCIKKyNp
bmNsdWRlICJPcmllbnRhdGlvbk5vdGlmZXIuaCIKICNpbmNsdWRlICJQYWdlVmlzaWJpbGl0eVN0
YXRlLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1FdmVudC5oIgogI2luY2x1ZGUgIlJlZmVycmVyUG9s
aWN5LmgiCkBAIC0xMzAzLDYgKzEzMDQsOSBAQCBwdWJsaWM6CiAKICAgICBDb25zdGFudFByb3Bl
cnR5TWFwJiBjb25zdGFudFByb3BlcnRpZXMoKSBjb25zdCB7IHJldHVybiAqbV9jb25zdGFudFBy
b3BlcnR5TWFwOyB9CiAKKyAgICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRp
b24pOworICAgIE9yaWVudGF0aW9uTm90aWZpZXImIG9yaWVudGF0aW9uTm90aWZpZXIoKSB7IHJl
dHVybiBtX29yaWVudGF0aW9uTm90aWZpZXI7IH0KKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29u
c3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIg
PSAxIDw8IDEgfTsKICAgICBEb2N1bWVudChGcmFtZSosIGNvbnN0IFVSTCYsIHVuc2lnbmVkID0g
RGVmYXVsdERvY3VtZW50Q2xhc3MsIHVuc2lnbmVkIGNvbnN0cnVjdGlvbkZsYWdzID0gMCk7CkBA
IC0xNzU4LDYgKzE3NjIsOCBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9kaWREaXNwYXRjaFZpZXdw
b3J0UHJvcGVydGllc0NoYW5nZWQgeyBmYWxzZSB9OwogI2VuZGlmCiAKKyAgICBPcmllbnRhdGlv
bk5vdGlmaWVyIG1fb3JpZW50YXRpb25Ob3RpZmllcjsKKwogICAgIHN0YXRpYyBib29sIGhhc0V2
ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hlOwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcAppbmRleCBm
ZGVmY2QyY2ZmZTE0YTA4N2FiZTBiYThlNmIzMWViY2Q4MGQ2MWIzLi5jNmM1YjIzZDk2NDgxYzkw
YzU2YTdlYTAyOTYwZTk5YWU0YTQ0Nzc1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lLmNwcApAQCAtMjk2LDkg
KzI5NiwxMCBAQCB2b2lkIEZyYW1lOjpvcmllbnRhdGlvbkNoYW5nZWQoKQogICAgIGZvciAoRnJh
bWUqIGZyYW1lID0gdGhpczsgZnJhbWU7IGZyYW1lID0gZnJhbWUtPnRyZWUoKS50cmF2ZXJzZU5l
eHQoKSkKICAgICAgICAgZnJhbWVzLmFwcGVuZCgqZnJhbWUpOwogCisgICAgYXV0byBuZXdPcmll
bnRhdGlvbiA9IG9yaWVudGF0aW9uKCk7CiAgICAgZm9yIChhdXRvJiBmcmFtZSA6IGZyYW1lcykg
ewogICAgICAgICBpZiAoRG9jdW1lbnQqIGRvY3VtZW50ID0gZnJhbWUtPmRvY3VtZW50KCkpCi0g
ICAgICAgICAgICBkb2N1bWVudC0+ZGlzcGF0Y2hXaW5kb3dFdmVudChFdmVudDo6Y3JlYXRlKGV2
ZW50TmFtZXMoKS5vcmllbnRhdGlvbmNoYW5nZUV2ZW50LCBmYWxzZSwgZmFsc2UpKTsKKyAgICAg
ICAgICAgIGRvY3VtZW50LT5vcmllbnRhdGlvbkNoYW5nZWQobmV3T3JpZW50YXRpb24pOwogICAg
IH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vT3JpZW50YXRpb25O
b3RpZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9PcmllbnRhdGlvbk5vdGlmZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mMDQ0MjhmNWI2MWZhYTgxMDZhMzEwNmMxMzg1ODkxZTgxNjA2N2RiCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vT3JpZW50YXRpb25Ob3RpZmVy
LmgKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIE9yaWVudGF0aW9uTm90aWZpZXIgeworcHVibGljOgorICAg
IGV4cGxpY2l0IE9yaWVudGF0aW9uTm90aWZpZXIoaW50IG9yaWVudGF0aW9uKSB7IG1fb3JpZW50
YXRpb24gPSBvcmllbnRhdGlvbjsgfQorICAgIH5PcmllbnRhdGlvbk5vdGlmaWVyKCk7CisKKyAg
ICB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pOworCisgICAgY2xhc3Mg
T2JzZXJ2ZXIgeworICAgIHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+T2JzZXJ2ZXIoKTsKKyAg
ICAgICAgdmlydHVhbCB2b2lkIG9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pID0g
MDsKKyAgICAgICAgdm9pZCBzZXROb3RpZmllcihPcmllbnRhdGlvbk5vdGlmaWVyKiBub3RpZmll
cikgeyBtX25vdGlmaWVyID0gbm90aWZpZXI7IH0KKworICAgIHByaXZhdGU6CisgICAgICAgIE9y
aWVudGF0aW9uTm90aWZpZXIqIG1fbm90aWZpZXIgeyBudWxscHRyIH07CisgICAgfTsKKworICAg
IHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKKyAgICB2b2lkIHJlbW92ZU9ic2VydmVyKE9i
c2VydmVyJik7CisgICAgaW50IG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRh
dGlvbjsgfQorCitwcml2YXRlOgorICAgIFZlY3RvcjxzdGQ6OnJlZmVyZW5jZV93cmFwcGVyPE9i
c2VydmVyPj4gbV9vYnNlcnZlcnM7CisgICAgaW50IG1fb3JpZW50YXRpb247Cit9OworCitpbmxp
bmUgT3JpZW50YXRpb25Ob3RpZmllcjo6fk9yaWVudGF0aW9uTm90aWZpZXIoKQoreworICAgIGZv
ciAoT2JzZXJ2ZXImIG9ic2VydmVyIDogbV9vYnNlcnZlcnMpCisgICAgICAgIG9ic2VydmVyLnNl
dE5vdGlmaWVyKG51bGxwdHIpOworfQorCitpbmxpbmUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2Jz
ZXJ2ZXI6On5PYnNlcnZlcigpCit7CisgICAgaWYgKG1fbm90aWZpZXIpCisgICAgICAgIG1fbm90
aWZpZXItPnJlbW92ZU9ic2VydmVyKCp0aGlzKTsKK30KKworaW5saW5lIHZvaWQgT3JpZW50YXRp
b25Ob3RpZmllcjo6b3JpZW50YXRpb25DaGFuZ2VkKGludCBvcmllbnRhdGlvbikKK3sKKyAgICBt
X29yaWVudGF0aW9uID0gb3JpZW50YXRpb247CisgICAgZm9yIChPYnNlcnZlciYgb2JzZXJ2ZXIg
OiBtX29ic2VydmVycykKKyAgICAgICAgb2JzZXJ2ZXIub3JpZW50YXRpb25DaGFuZ2VkKG9yaWVu
dGF0aW9uKTsKK30KKworaW5saW5lIHZvaWQgT3JpZW50YXRpb25Ob3RpZmllcjo6YWRkT2JzZXJ2
ZXIoT2JzZXJ2ZXImIG9ic2VydmVyKQoreworICAgIG1fb2JzZXJ2ZXJzLmFwcGVuZChvYnNlcnZl
cik7CisgICAgb2JzZXJ2ZXIuc2V0Tm90aWZpZXIodGhpcyk7Cit9CisKK2lubGluZSB2b2lkIE9y
aWVudGF0aW9uTm90aWZpZXI6OnJlbW92ZU9ic2VydmVyKE9ic2VydmVyJiBvYnNlcnZlcikKK3sK
KyAgICBtX29ic2VydmVycy5yZW1vdmVGaXJzdE1hdGNoaW5nKFsmb2JzZXJ2ZXJdKGF1dG8gaXRl
bSkgeworICAgICAgICBpZiAoJm9ic2VydmVyICE9ICZpdGVtLmdldCgpKQorICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOworICAgICAgICBvYnNlcnZlci5zZXROb3RpZmllcihudWxscHRyKTsKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7Cit9CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9NZWRpYVN0cmVhbVByaXZhdGUuY3BwCmlu
ZGV4IGM4ZmFiNjg2ODdiZDg3NWY3MWY3Mjc1NWY1MDliNWZjMTU3NzY5NzguLmNiYjNlNTVhYWIy
MjM4ZmY2ZTExYjNlYjdmYjNmNjM2ZTE5N2FkMDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFtUHJpdmF0ZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vTWVkaWFTdHJlYW1Qcml2YXRlLmNwcApAQCAt
Mjk4LDYgKzI5OCwxNCBAQCB2b2lkIE1lZGlhU3RyZWFtUHJpdmF0ZTo6c2NoZWR1bGVEZWZlcnJl
ZFRhc2soRnVuY3Rpb248dm9pZCAoKT4mJiBmdW5jdGlvbikKICAgICB9KTsKIH0KIAordm9pZCBN
ZWRpYVN0cmVhbVByaXZhdGU6Om1vbml0b3JPcmllbnRhdGlvbihPcmllbnRhdGlvbk5vdGlmaWVy
JiBub3RpZmllcikKK3sKKyAgICBmb3IgKGF1dG8mIHRyYWNrIDogbV90cmFja1NldC52YWx1ZXMo
KSkgeworICAgICAgICBpZiAodHJhY2stPnNvdXJjZSgpLmlzQ2FwdHVyZVNvdXJjZSgpICYmIHRy
YWNrLT50eXBlKCkgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8pCisgICAgICAg
ICAgICB0cmFjay0+c291cmNlKCkubW9uaXRvck9yaWVudGF0aW9uKG5vdGlmaWVyKTsKKyAgICB9
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9T
VFJFQU0pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9N
ZWRpYVN0cmVhbVByaXZhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFt
L01lZGlhU3RyZWFtUHJpdmF0ZS5oCmluZGV4IDRlOTgwZjk5ZWVjNDkwOGUzMDkyM2RhMDBlN2Ni
YzkyNTM0M2Y3YWYuLmFkMWQ1MDEwOWVkNWJhNTc5ODk5ZjJjNWVlYWViYzgzOTRkYWFjNzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlhU3RyZWFt
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL01lZGlh
U3RyZWFtUHJpdmF0ZS5oCkBAIC01Niw2ICs1Niw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IGNsYXNzIE1lZGlhU3RyZWFtOworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsKIAogY2xhc3Mg
TWVkaWFTdHJlYW1Qcml2YXRlIDogcHVibGljIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlOjpPYnNl
cnZlciwgcHVibGljIFJlZkNvdW50ZWQ8TWVkaWFTdHJlYW1Qcml2YXRlPiB7CiBwdWJsaWM6CkBA
IC0xMDYsNiArMTA3LDggQEAgcHVibGljOgogCiAgICAgV2Vha1B0cjxNZWRpYVN0cmVhbVByaXZh
dGU+IGNyZWF0ZVdlYWtQdHIoKSB7IHJldHVybiBtX3dlYWtQdHJGYWN0b3J5LmNyZWF0ZVdlYWtQ
dHIoKTsgfQogCisgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmll
ciYpOworCiAjaWYgVVNFKEdTVFJFQU1FUikKICAgICB2b2lkIHNldFZpZGVvUmVuZGVyZXIoT3dy
R3N0VmlkZW9SZW5kZXJlciogcmVuZGVyZXIsIEdzdEVsZW1lbnQqIHNpbmspIHsgbV9nc3RWaWRl
b1JlbmRlcmVyID0gcmVuZGVyZXI7IG1fZ3N0VmlkZW9TaW5rRWxlbWVudCA9IHNpbms7IH0KICAg
ICBHUmVmUHRyPEdzdEVsZW1lbnQ+IGdldFZpZGVvU2lua0VsZW1lbnQoKSBjb25zdCB7IHJldHVy
biBtX2dzdFZpZGVvU2lua0VsZW1lbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2UuaAppbmRleCA5MGUyMjJi
MzgyNmMwYzM1NGM0ZjIxZTZlYjg1ZGVmMWI3NTkyZjdjLi4yYWY2MTFmYWY5NGY5ZjgyNGUxM2Jj
MDYzNGFmZmE3OWNlNzNkZjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
ZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZS5oCkBAIC0zMSw4ICszMSw3IEBA
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCiAKLSNpZm5kZWYgUmVhbHRpbWVNZWRpYVNvdXJjZV9oCi0j
ZGVmaW5lIFJlYWx0aW1lTWVkaWFTb3VyY2VfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUo
TUVESUFfU1RSRUFNKQogCkBAIC01OCw5ICs1NywxMiBAQCBjbGFzcyBBdWRpb1N0cmVhbURlc2Ny
aXB0aW9uOwogY2xhc3MgRmxvYXRSZWN0OwogY2xhc3MgR3JhcGhpY3NDb250ZXh0OwogY2xhc3Mg
TWVkaWFTdHJlYW1Qcml2YXRlOworY2xhc3MgT3JpZW50YXRpb25Ob3RpZmllcjsKIGNsYXNzIFBs
YXRmb3JtQXVkaW9EYXRhOwogY2xhc3MgUmVhbHRpbWVNZWRpYVNvdXJjZVNldHRpbmdzOwogCitz
dHJ1Y3QgQ2FwdHVyZVNvdXJjZU9yRXJyb3I7CisKIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFJlYWx0
aW1lTWVkaWFTb3VyY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxSZWFsdGltZU1lZGlhU291cmNlPiB7
CiBwdWJsaWM6CiAgICAgY2xhc3MgT2JzZXJ2ZXIgewpAQCAtODMsMTMgKzg1LDIyIEBAIHB1Ymxp
YzoKICAgICAgICAgdmlydHVhbCB2b2lkIGF1ZGlvU2FtcGxlc0F2YWlsYWJsZShjb25zdCBNZWRp
YVRpbWUmLCBjb25zdCBQbGF0Zm9ybUF1ZGlvRGF0YSYsIGNvbnN0IEF1ZGlvU3RyZWFtRGVzY3Jp
cHRpb24mLCBzaXplX3QgLypudW1iZXJPZkZyYW1lcyovKSB7IH0KICAgICB9OwogCi0gICAgY2xh
c3MgQ2FwdHVyZUZhY3RvcnkgeworICAgIGNsYXNzIEF1ZGlvQ2FwdHVyZUZhY3RvcnkgeworICAg
IHB1YmxpYzoKKyAgICAgICAgdmlydHVhbCB+QXVkaW9DYXB0dXJlRmFjdG9yeSgpID0gZGVmYXVs
dDsKKyAgICAgICAgdmlydHVhbCBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBhdWRpb0RldmljZUlELCBjb25zdCBNZWRpYUNvbnN0cmFp
bnRzKikgPSAwOworICAgICAgICAKKyAgICBwcm90ZWN0ZWQ6CisgICAgICAgIEF1ZGlvQ2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgfTsKKworICAgIGNsYXNzIFZpZGVvQ2FwdHVyZUZh
Y3RvcnkgewogICAgIHB1YmxpYzoKLSAgICAgICAgdmlydHVhbCB+Q2FwdHVyZUZhY3RvcnkoKSA9
IGRlZmF1bHQ7Ci0gICAgICAgIHZpcnR1YWwgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJp
bmcmIGF1ZGlvRGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqLCBTdHJpbmcmKSA9IDA7CisgICAgICAgIHZpcnR1YWwgflZpZGVvQ2FwdHVy
ZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgICAgIHZpcnR1YWwgQ2FwdHVyZVNvdXJjZU9yRXJy
b3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopID0gMDsKIAogICAgIHByb3RlY3RlZDoKLSAgICAgICAg
Q2FwdHVyZUZhY3RvcnkoKSA9IGRlZmF1bHQ7CisgICAgICAgIFZpZGVvQ2FwdHVyZUZhY3Rvcnko
KSA9IGRlZmF1bHQ7CiAgICAgfTsKIAogICAgIHZpcnR1YWwgflJlYWx0aW1lTWVkaWFTb3VyY2Uo
KSB7IH0KQEAgLTEzNSw2ICsxNDYsOCBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgaXND
YXB0dXJlU291cmNlKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAorICAgIHZpcnR1YWwgdm9p
ZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIHsgfQorICAgIAogICAg
IFdFQkNPUkVfRVhQT1JUIHZvaWQgYWRkT2JzZXJ2ZXIoT2JzZXJ2ZXImKTsKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIHJlbW92ZU9ic2VydmVyKE9ic2VydmVyJik7CiAKQEAgLTIyOSw4ICsyNDIs
MTggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc3VwcHJlc3NOb3RpZmljYXRpb25zIHsgdHJ1ZSB9
OwogfTsKIAorc3RydWN0IENhcHR1cmVTb3VyY2VPckVycm9yIHsKKyAgICBDYXB0dXJlU291cmNl
T3JFcnJvcigpID0gZGVmYXVsdDsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvcihSZWY8UmVhbHRp
bWVNZWRpYVNvdXJjZT4mJiBzb3VyY2UpIDogY2FwdHVyZVNvdXJjZShXVEZNb3ZlKHNvdXJjZSkp
IHsgfQorICAgIENhcHR1cmVTb3VyY2VPckVycm9yKFN0cmluZyYmIG1lc3NhZ2UpIDogZXJyb3JN
ZXNzYWdlKFdURk1vdmUobWVzc2FnZSkpIHsgfQorICAgIAorICAgIG9wZXJhdG9yIGJvb2woKSAg
Y29uc3QgeyByZXR1cm4gISFjYXB0dXJlU291cmNlOyB9CisgICAgUmVmPFJlYWx0aW1lTWVkaWFT
b3VyY2U+IHNvdXJjZSgpIHsgcmV0dXJuIGNhcHR1cmVTb3VyY2UucmVsZWFzZU5vbk51bGwoKTsg
fQorICAgIAorICAgIFJlZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBjYXB0dXJlU291cmNlOwor
ICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Cit9OworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gUmVhbHRpbWVNZWRp
YVNvdXJjZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmluZGV4IDdiZWQ5OWNm
YzdmOWU1Yjc2MTY1ODg3ZWJhYzI0YjY4N2E5NzU5MDAuLmI5ZDNkNDc3OTYwNjJiZWVkNDFiZDlh
MjdhNGExYWM0YzU3MjAyODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCkBA
IC02NywyMyArNjcsMjMgQEAgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6flJlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIoKQogewogfQogCi12b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgZmFj
dG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6c2V0QXVkaW9GYWN0b3J5KFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkpCiB7CiAgICAg
bV9hdWRpb0ZhY3RvcnkgPSAmZmFjdG9yeTsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyOjp1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFj
dG9yeSYgZmFjdG9yeSkKK3ZvaWQgUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6dW5zZXRBdWRp
b0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSkKIHsKICAgICBpZiAobV9hdWRpb0ZhY3RvcnkgPT0gJmZhY3RvcnkpCiAgICAgICAgIG1fYXVk
aW9GYWN0b3J5ID0gbnVsbHB0cjsKIH0KIAotdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
OjpzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmIGZh
Y3RvcnkpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNldFZpZGVvRmFjdG9yeShS
ZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KQogewogICAg
IG1fdmlkZW9GYWN0b3J5ID0gJmZhY3Rvcnk7CiB9CiAKLXZvaWQgUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlcjo6dW5zZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZh
Y3RvcnkmIGZhY3RvcnkpCit2b2lkIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnVuc2V0Vmlk
ZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkmIGZhY3Rv
cnkpCiB7CiAgICAgaWYgKG1fdmlkZW9GYWN0b3J5ID09ICZmYWN0b3J5KQogICAgICAgICBtX3Zp
ZGVvRmFjdG9yeSA9IG51bGxwdHI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmgKaW5kZXgg
MWIwN2E4ODgyNzRmZjVjYzQwZWM3OTQ3OTg0OGEyNjYzZmFhOWUxNi4uN2JjN2Q4ZWI2NjQwNWM4
NTljMTA3YjdmODI0MmY1MjkzM2VjZTBiZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlci5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
aApAQCAtNjYsMTYgKzY2LDE2IEBAIHB1YmxpYzoKICAgICAKICAgICB2aXJ0dWFsIGNvbnN0IFJl
YWx0aW1lTWVkaWFTb3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYgc3VwcG9ydGVkQ29uc3RyYWlu
dHMoKSB7IHJldHVybiBtX3N1cHBvcnRlZENvbnN0cmFpbnRzOyB9CiAKLSAgICB2aXJ0dWFsIFJl
YWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZhdWx0QXVkaW9GYWN0b3J5KCkg
eyByZXR1cm4gbnVsbHB0cjsgfQotICAgIHZpcnR1YWwgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2Fw
dHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSB7IHJldHVybiBudWxscHRyOyB9Cisg
ICAgdmlydHVhbCBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBkZWZh
dWx0QXVkaW9GYWN0b3J5KCkgeyByZXR1cm4gbnVsbHB0cjsgfQorICAgIHZpcnR1YWwgUmVhbHRp
bWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdFZpZGVvRmFjdG9yeSgp
IHsgcmV0dXJuIG51bGxwdHI7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9G
YWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB1bnNldEF1ZGlvRmFjdG9yeShSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0
dXJlRmFjdG9yeSYpOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBh
dWRpb0ZhY3RvcnkoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvRmFjdG9yeTsgfQorICAgIFdFQkNP
UkVfRVhQT1JUIHZvaWQgc2V0QXVkaW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlv
Q2FwdHVyZUZhY3RvcnkmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0QXVkaW9GYWN0
b3J5KFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkmKTsKKyAgICBSZWFs
dGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBhdWRpb0ZhY3RvcnkoKSBjb25z
dCB7IHJldHVybiBtX2F1ZGlvRmFjdG9yeTsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBz
ZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkmKTsKLSAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVuc2V0VmlkZW9GYWN0b3J5KFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OkNhcHR1cmVGYWN0b3J5Jik7Ci0gICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZh
Y3RvcnkqIHZpZGVvRmFjdG9yeSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5OyB9Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWaWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJj
ZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdW5zZXRW
aWRlb0ZhY3RvcnkoUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYpOwor
ICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIHZpZGVvRmFjdG9y
eSgpIGNvbnN0IHsgcmV0dXJuIG1fdmlkZW9GYWN0b3J5OyB9CiAKICAgICB2aXJ0dWFsIENhcHR1
cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0QXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0
dXJuIG51bGxwdHI7IH0KICAgICB2aXJ0dWFsIENhcHR1cmVEZXZpY2VNYW5hZ2VyKiBkZWZhdWx0
VmlkZW9DYXB0dXJlRGV2aWNlTWFuYWdlcigpIHsgcmV0dXJuIG51bGxwdHI7IH0KQEAgLTEwMyw4
ICsxMDMsOCBAQCBwcm90ZWN0ZWQ6CiAgICAgc3RhdGljIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXImIHBsYXRmb3JtQ2VudGVyKCk7CiAgICAgUmVhbHRpbWVNZWRpYVNvdXJjZVN1cHBvcnRlZENv
bnN0cmFpbnRzIG1fc3VwcG9ydGVkQ29uc3RyYWludHM7CiAKLSAgICBSZWFsdGltZU1lZGlhU291
cmNlOjpDYXB0dXJlRmFjdG9yeSogbV9hdWRpb0ZhY3RvcnkgeyBudWxscHRyIH07Ci0gICAgUmVh
bHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5IHsgbnVsbHB0
ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkF1ZGlvQ2FwdHVyZUZhY3RvcnkqIG1fYXVk
aW9GYWN0b3J5IHsgbnVsbHB0ciB9OworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2Fw
dHVyZUZhY3RvcnkqIG1fdmlkZW9GYWN0b3J5IHsgbnVsbHB0ciB9OwogCiAgICAgQ2FwdHVyZURl
dmljZU1hbmFnZXIqIG1fYXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlciB7IG51bGxwdHIgfTsKICAg
ICBDYXB0dXJlRGV2aWNlTWFuYWdlciogbV92aWRlb0NhcHR1cmVEZXZpY2VNYW5hZ2VyIHsgbnVs
bHB0ciB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRp
YXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAppbmRleCA2YzgzNjJmZThlODQ1NjEx
ZTNmNWM4NWMxMTVhMmZlMjdiZDg3MDk1Li43OTg4YzFlMjlhNDNmNTU4NGI0YmI1ZDA3NmNmOWQx
MGEyY2M0Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UuaApAQCAtNDQsOSArNDQsOSBA
QCBjbGFzcyBXZWJBdWRpb1NvdXJjZVByb3ZpZGVyQVZGT2JqQzsKIGNsYXNzIEFWQXVkaW9DYXB0
dXJlU291cmNlIDogcHVibGljIEFWTWVkaWFDYXB0dXJlU291cmNlIHsKIHB1YmxpYzoKIAotICAg
IHN0YXRpYyBSZWZQdHI8QVZNZWRpYUNhcHR1cmVTb3VyY2U+IGNyZWF0ZShBVkNhcHR1cmVEZXZp
Y2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiwgU3RyaW5n
Jik7CisgICAgc3RhdGljIENhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZShBVkNhcHR1cmVEZXZp
Y2UqLCBjb25zdCBBdG9taWNTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CiAKLSAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgQXVkaW9DYXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOwogCiBw
cml2YXRlOgogICAgIEFWQXVkaW9DYXB0dXJlU291cmNlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0
IEF0b21pY1N0cmluZyYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vbWVkaWFzdHJlYW0vbWFjL0FWQXVkaW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDZkYjFj
NzVmMjBmY2U5NjA2OWU3MzZlMjJjNGM3Njg0YjMxZmY0OGQuLjZlNTlkMmUyOTBlZmRmZGZiYTc3
Y2Q4Yzg0MWRlYjAzMWFlYzE5YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21lZGlhc3RyZWFtL21hYy9BVkF1ZGlvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZBdWRpb0NhcHR1cmVTb3VyY2UubW0KQEAg
LTc3LDMwICs3NywyNyBAQCBTT0ZUX0xJTktfUE9JTlRFUihBVkZvdW5kYXRpb24sIEFWTWVkaWFU
eXBlQXVkaW8sIE5TU3RyaW5nICopCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQVZB
dWRpb0NhcHR1cmVTb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNh
cHR1cmVGYWN0b3J5IHsKK2NsYXNzIEFWQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1Ymxp
YyBSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAg
ICBSZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKKyAgICBDYXB0dXJlU291cmNlT3JF
cnJvciBjcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29u
c3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgQVZDYXB0
dXJlRGV2aWNlVHlwZWRlZiAqZGV2aWNlID0gW2dldEFWQ2FwdHVyZURldmljZUNsYXNzKCkgZGV2
aWNlV2l0aFVuaXF1ZUlEOmRldmljZUlEXTsKLSAgICAgICAgQVNTRVJUX1VOVVNFRCh0eXBlLCAh
ZGV2aWNlIHx8IChkZXZpY2UgJiYgdHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpB
dWRpbykpOwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVTb3VyY2U6OmNy
ZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3RyYWlu
dCkgOiBudWxscHRyOworICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzKSA6IENhcHR1cmVT
b3VyY2VPckVycm9yKCk7CiAgICAgfQogfTsKIAotUmVmUHRyPEFWTWVkaWFDYXB0dXJlU291cmNl
PiBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRl
dmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMsIFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnQpCitDYXB0dXJlU291cmNlT3JFcnJv
ciBBVkF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKEFWQ2FwdHVyZURldmljZVR5cGVkZWYqIGRl
dmljZSwgY29uc3QgQXRvbWljU3RyaW5nJiBpZCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpCiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgQVZBdWRpb0NhcHR1
cmVTb3VyY2UoZGV2aWNlLCBpZCkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBB
VkF1ZGlvQ2FwdHVyZVNvdXJjZShkZXZpY2UsIGlkKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzKSB7
CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gc291cmNlLT5hcHBseUNvbnN0cmFpbnRzKCpjb25zdHJh
aW50cyk7Ci0gICAgICAgIGlmIChyZXN1bHQpIHsKLSAgICAgICAgICAgIGludmFsaWRDb25zdHJh
aW50ID0gcmVzdWx0LnZhbHVlKCkuZmlyc3Q7Ci0gICAgICAgICAgICBzb3VyY2UgPSBudWxscHRy
OwotICAgICAgICB9CisgICAgICAgIGlmIChyZXN1bHQpCisgICAgICAgICAgICByZXR1cm4gU3Ry
aW5nKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAgICB9CiAKLSAgICByZXR1cm4gc291cmNlOwor
ICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJvcihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1S
ZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSYgQVZBdWRpb0NhcHR1cmVTb3VyY2U6
OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSYgQVZB
dWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3ll
ZDxBVkF1ZGlvQ2FwdHVyZVNvdXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3Rv
cnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVh
bS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCmluZGV4IGE4MjE1ODAxMTk4ZDRh
ODdhMDAyMzE2ZDM1MWFmZWUwZGYwZmY3NDUuLjlhNmMyNmNhMzMyM2Y5NzAzNzlhNWU0MDY3ZmUy
NTM3ZTVjYzgxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL21lZGlhc3RyZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5oCkBAIC0yMywxMiArMjMs
MTIgQEAKICAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAgKi8KIAotI2lmbmRlZiBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZV9oCi0jZGVmaW5lIEFWVmlkZW9DYXB0dXJlU291cmNlX2gKKyNwcmFnbWEgb25jZQogCiAjaWYg
RU5BQkxFKE1FRElBX1NUUkVBTSkgJiYgVVNFKEFWRk9VTkRBVElPTikKIAogI2luY2x1ZGUgIkFW
TWVkaWFDYXB0dXJlU291cmNlLmgiCisjaW5jbHVkZSAiT3JpZW50YXRpb25Ob3RpZmVyLmgiCiAK
IE9CSkNfQ0xBU1MgQ0FMYXllcjsKIE9CSkNfQ0xBU1MgQVZGcmFtZVJhdGVSYW5nZTsKQEAgLTQz
LDExICs0MywxMSBAQCBjbGFzcyBGbG9hdFJlY3Q7CiBjbGFzcyBHcmFwaGljc0NvbnRleHQ7CiBj
bGFzcyBQaXhlbEJ1ZmZlckNvbmZvcm1lckNWOwogCi1jbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJj
ZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNv
dXJjZSA6IHB1YmxpYyBBVk1lZGlhQ2FwdHVyZVNvdXJjZSwgcHJpdmF0ZSBPcmllbnRhdGlvbk5v
dGlmaWVyOjpPYnNlcnZlciB7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFJlZlB0cjxBVk1lZGlhQ2Fw
dHVyZVNvdXJjZT4gY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcmKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNv
dXJjZU9yRXJyb3IgY3JlYXRlKEFWQ2FwdHVyZURldmljZSosIGNvbnN0IEF0b21pY1N0cmluZyYs
IGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKIAotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBD
YXB0dXJlRmFjdG9yeSYgZmFjdG9yeSgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBWaWRl
b0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICBpbnQzMl90IHdpZHRoKCkgY29uc3Qg
eyByZXR1cm4gbV93aWR0aDsgfQogICAgIGludDMyX3QgaGVpZ2h0KCkgY29uc3QgeyByZXR1cm4g
bV9oZWlnaHQ7IH0KQEAgLTY2LDEyICs2NiwxOCBAQCBwcml2YXRlOgogICAgIGJvb2wgYXBwbHlG
cmFtZVJhdGUoZG91YmxlKSBmaW5hbDsKICAgICBib29sIHNldFByZXNldChOU1N0cmluZyopOwog
CisgICAgdm9pZCBtb25pdG9yT3JpZW50YXRpb24oT3JpZW50YXRpb25Ob3RpZmllciYpIGZpbmFs
OworICAgIHZvaWQgY29tcHV0ZVNhbXBsZVJvdGF0aW9uKCk7CisKICAgICBOU1N0cmluZyAqYmVz
dFNlc3Npb25QcmVzZXRGb3JWaWRlb0RpbWVuc2lvbnMoc3RkOjpvcHRpb25hbDxpbnQ+IHdpZHRo
LCBzdGQ6Om9wdGlvbmFsPGludD4gaGVpZ2h0KSBjb25zdDsKICAgICBib29sIHN1cHBvcnRzU2l6
ZUFuZEZyYW1lUmF0ZShzdGQ6Om9wdGlvbmFsPGludD4gd2lkdGgsIHN0ZDo6b3B0aW9uYWw8aW50
PiBoZWlnaHQsIHN0ZDo6b3B0aW9uYWw8ZG91YmxlPikgZmluYWw7CiAKICAgICB2b2lkIGluaXRp
YWxpemVDYXBhYmlsaXRpZXMoUmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyYpIGZpbmFs
OwogICAgIHZvaWQgaW5pdGlhbGl6ZVN1cHBvcnRlZENvbnN0cmFpbnRzKFJlYWx0aW1lTWVkaWFT
b3VyY2VTdXBwb3J0ZWRDb25zdHJhaW50cyYpIGZpbmFsOwogCisgICAgLy8gT3JpZW50YXRpb25O
b3RpZmllcjo6T2JzZXJ2ZXIgQVBJCisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9y
aWVudGF0aW9uKSBmaW5hbDsKKwogICAgIGJvb2wgc2V0RnJhbWVSYXRlQ29uc3RyYWludChkb3Vi
bGUgbWluRnJhbWVSYXRlLCBkb3VibGUgbWF4RnJhbWVSYXRlKTsKIAogICAgIGJvb2wgdXBkYXRl
RnJhbWVyYXRlKENNU2FtcGxlQnVmZmVyUmVmKTsKQEAgLTkwLDEwICs5NiwxMSBAQCBwcml2YXRl
OgogICAgIEZsb2F0NjQgbV9mcmFtZVJhdGUgeyAwIH07CiAgICAgaW50MzJfdCBtX3dpZHRoIHsg
MCB9OwogICAgIGludDMyX3QgbV9oZWlnaHQgeyAwIH07CisgICAgaW50IG1fc2Vuc29yT3JpZW50
YXRpb24geyAwIH07CisgICAgaW50IG1fZGV2aWNlT3JpZW50YXRpb24geyAwIH07CisgICAgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9zYW1wbGVSb3RhdGlvbiB7IE1lZGlhU2FtcGxlOjpW
aWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNl
bmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gQVZWaWRlb0NhcHR1cmVT
b3VyY2VfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0v
bWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL0FWVmlkZW9DYXB0dXJlU291cmNlLm1tCmluZGV4IDg4MTMxYjhkYjA3Y2Fm
N2Y4MDNkMTNhZjUyNDk5YWE4NTBjMWQ4OTQuLjNlZTI1YzhhOGU0MDZjMDIxNDYyYjhiMWI0MjNk
MDkwMmZmMTRlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9BVlZpZGVvQ2FwdHVyZVNvdXJjZS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQVZWaWRlb0NhcHR1cmVTb3VyY2UubW0KQEAgLTg1LDYgKzg1
LDcgQEAgU09GVF9MSU5LX0NMQVNTKEFWRm91bmRhdGlvbiwgQVZGcmFtZVJhdGVSYW5nZSkKICNk
ZWZpbmUgQVZDYXB0dXJlVmlkZW9QcmV2aWV3TGF5ZXIgZ2V0QVZDYXB0dXJlVmlkZW9QcmV2aWV3
TGF5ZXJDbGFzcygpCiAjZGVmaW5lIEFWRnJhbWVSYXRlUmFuZ2UgZ2V0QVZGcmFtZVJhdGVSYW5n
ZUNsYXNzKCkKIAorU09GVF9MSU5LX1BPSU5URVIoQVZGb3VuZGF0aW9uLCBBVk1lZGlhVHlwZVZp
ZGVvLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9u
LCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0MTI4MHg3MjAsIE5TU3RyaW5nICopCiBTT0ZUX0xJTktf
UE9JTlRFUl9PUFRJT05BTChBVkZvdW5kYXRpb24sIEFWQ2FwdHVyZVNlc3Npb25QcmVzZXQ5NjB4
NTQwLCBOU1N0cmluZyAqKQogU09GVF9MSU5LX1BPSU5URVJfT1BUSU9OQUwoQVZGb3VuZGF0aW9u
LCBBVkNhcHR1cmVTZXNzaW9uUHJlc2V0NjQweDQ4MCwgTlNTdHJpbmcgKikKQEAgLTEwOSwzMCAr
MTEwLDI5IEBAIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQgPSBrQ1ZQaXhlbEZvcm1h
dFR5cGVfNDIwWXBDYkNyOFBsYW5hcjsKIGNvbnN0IE9TVHlwZSB2aWRlb0NhcHR1cmVGb3JtYXQg
PSBrQ1ZQaXhlbEZvcm1hdFR5cGVfNDIwWXBDYkNyOEJpUGxhbmFyRnVsbFJhbmdlOwogI2VuZGlm
CiAKLWNsYXNzIEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1l
ZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBBVlZpZGVvQ2FwdHVyZVNvdXJjZUZh
Y3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSB7
CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0ZU1lZGlhU291
cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcmIGRldmljZUlE
LCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMq
IGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KSBmaW5hbCB7CisgICAgQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYg
ZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAg
ICAgICAgIEFWQ2FwdHVyZURldmljZVR5cGVkZWYgKmRldmljZSA9IFtnZXRBVkNhcHR1cmVEZXZp
Y2VDbGFzcygpIGRldmljZVdpdGhVbmlxdWVJRDpkZXZpY2VJRF07Ci0gICAgICAgIEFTU0VSVF9V
TlVTRUQodHlwZSwgIWRldmljZSB8fCAodHlwZSA9PSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpWaWRlbykpOwotICAgICAgICByZXR1cm4gZGV2aWNlID8gQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OmNyZWF0ZShkZXZpY2UsIGVtcHR5U3RyaW5nKCksIGNvbnN0cmFpbnRzLCBpbnZhbGlkQ29uc3Ry
YWludCkgOiBudWxscHRyOworICAgICAgICBpZiAoIWRldmljZSkKKyAgICAgICAgICAgIHJldHVy
biB7IH07CisgICAgICAgIHJldHVybiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRlKGRldmlj
ZSwgZW1wdHlTdHJpbmcoKSwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKLVJlZlB0cjxBVk1l
ZGlhQ2FwdHVyZVNvdXJjZT4gQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVE
ZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50KQorQ2Fw
dHVyZVNvdXJjZU9yRXJyb3IgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShBVkNhcHR1cmVE
ZXZpY2VUeXBlZGVmKiBkZXZpY2UsIGNvbnN0IEF0b21pY1N0cmluZyYgaWQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYo
bmV3IEFWVmlkZW9DYXB0dXJlU291cmNlKGRldmljZSwgaWQpKTsKKyAgICBhdXRvIHNvdXJjZSA9
IGFkb3B0UmVmKCpuZXcgQVZWaWRlb0NhcHR1cmVTb3VyY2UoZGV2aWNlLCBpZCkpOwogICAgIGlm
IChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJjZS0+YXBwbHlDb25z
dHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7Ci0gICAgICAgICAg
ICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0OwotICAgICAgICAgICAg
c291cmNlID0gbnVsbHB0cjsKLSAgICAgICAgfQorICAgICAgICBpZiAocmVzdWx0KQorICAgICAg
ICAgICAgcmV0dXJuIFdURk1vdmUocmVzdWx0LnZhbHVlKCkuZmlyc3QpOwogICAgIH0KIAotICAg
IHJldHVybiBzb3VyY2U7CisgICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUo
c291cmNlKSk7CiB9CiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpWaWRlb0Nh
cHR1cmVGYWN0b3J5JiBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAgc3Rh
dGljIE5ldmVyRGVzdHJveWVkPEFWVmlkZW9DYXB0dXJlU291cmNlRmFjdG9yeT4gZmFjdG9yeTsK
ICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKQEAgLTM0Niw2ICszNDYsMzkgQEAgdm9pZCBBVlZp
ZGVvQ2FwdHVyZVNvdXJjZTo6YXBwbHlTaXplQW5kRnJhbWVSYXRlKHN0ZDo6b3B0aW9uYWw8aW50
PiB3aWR0aCwgc3RkOjoKICAgICAgICAgYXBwbHlGcmFtZVJhdGUoZnJhbWVSYXRlLnZhbHVlKCkp
OwogfQogCitzdGF0aWMgaW5saW5lIGludCBzZW5zb3JPcmllbnRhdGlvbihBVkNhcHR1cmVWaWRl
b09yaWVudGF0aW9uIHZpZGVvT3JpZW50YXRpb24pCit7CisjaWYgUExBVEZPUk0oSU9TKQorICAg
IHN3aXRjaCAodmlkZW9PcmllbnRhdGlvbikgeworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9Pcmll
bnRhdGlvblBvcnRyYWl0OgorICAgICAgICByZXR1cm4gMTgwOworICAgIGNhc2UgQVZDYXB0dXJl
VmlkZW9PcmllbnRhdGlvblBvcnRyYWl0VXBzaWRlRG93bjoKKyAgICAgICAgcmV0dXJuIDA7Cisg
ICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6CisgICAgICAg
IHJldHVybiA5MDsKKyAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVM
ZWZ0OgorICAgICAgICByZXR1cm4gLTkwOworICAgIH0KKyNlbHNlCisgICAgc3dpdGNoICh2aWRl
b09yaWVudGF0aW9uKSB7CisgICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJh
aXQ6CisgICAgICAgIHJldHVybiAwOworICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlv
blBvcnRyYWl0VXBzaWRlRG93bjoKKyAgICAgICAgcmV0dXJuIDE4MDsKKyAgICBjYXNlIEFWQ2Fw
dHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVSaWdodDoKKyAgICAgICAgcmV0dXJuIDkwOwor
ICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvbkxhbmRzY2FwZUxlZnQ6CisgICAgICAg
IHJldHVybiAtOTA7CisgICAgfQorI2VuZGlmCit9CisKK3N0YXRpYyBpbmxpbmUgaW50IHNlbnNv
ck9yaWVudGF0aW9uRnJvbVZpZGVvT3V0cHV0KEFWQ2FwdHVyZVZpZGVvRGF0YU91dHB1dFR5cGUq
IHZpZGVvT3V0cHV0KQoreworICAgIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBjb25uZWN0aW9u
ID0gW3ZpZGVvT3V0cHV0IGNvbm5lY3Rpb25XaXRoTWVkaWFUeXBlOiBnZXRBVk1lZGlhVHlwZVZp
ZGVvKCldOworICAgIHJldHVybiBjb25uZWN0aW9uID8gc2Vuc29yT3JpZW50YXRpb24oW2Nvbm5l
Y3Rpb24gdmlkZW9PcmllbnRhdGlvbl0pIDogMDsKK30KKwogdm9pZCBBVlZpZGVvQ2FwdHVyZVNv
dXJjZTo6c2V0dXBDYXB0dXJlU2Vzc2lvbigpCiB7CiAgICAgTlNFcnJvciAqZXJyb3IgPSBuaWw7
CkBAIC0zODUsNiArNDE4LDggQEAgdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2V0dXBDYXB0
dXJlU2Vzc2lvbigpCiAgICAgc2V0UHJlc2V0KG1fcGVuZGluZ1ByZXNldC5nZXQoKSk7CiAjZW5k
aWYKIAorICAgIG1fc2Vuc29yT3JpZW50YXRpb24gPSBzZW5zb3JPcmllbnRhdGlvbkZyb21WaWRl
b091dHB1dChtX3ZpZGVvT3V0cHV0LmdldCgpKTsKKyAgICBjb21wdXRlU2FtcGxlUm90YXRpb24o
KTsKIH0KIAogdm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6c2h1dGRvd25DYXB0dXJlU2Vzc2lv
bigpCkBAIC00MTcsNiArNDUyLDQ2IEBAIGJvb2wgQVZWaWRlb0NhcHR1cmVTb3VyY2U6OnVwZGF0
ZUZyYW1lcmF0ZShDTVNhbXBsZUJ1ZmZlclJlZiBzYW1wbGVCdWZmZXIpCiAgICAgcmV0dXJuIGZy
YW1lUmF0ZSAhPSBtX2ZyYW1lUmF0ZTsKIH0KIAordm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6
bW9uaXRvck9yaWVudGF0aW9uKE9yaWVudGF0aW9uTm90aWZpZXImIG5vdGlmaWVyKQoreworI2lm
IFBMQVRGT1JNKElPUykKKyAgICBub3RpZmllci5hZGRPYnNlcnZlcigqdGhpcyk7CisgICAgb3Jp
ZW50YXRpb25DaGFuZ2VkKG5vdGlmaWVyLm9yaWVudGF0aW9uKCkpOworI2Vsc2UKKyAgICBVTlVT
RURfUEFSQU0obm90aWZpZXIpOworI2VuZGlmCit9CisKK3ZvaWQgQVZWaWRlb0NhcHR1cmVTb3Vy
Y2U6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7CisgICAgQVNTRVJUKG9y
aWVudGF0aW9uID09IDAgfHwgb3JpZW50YXRpb24gPT0gOTAgfHwgb3JpZW50YXRpb24gPT0gLTkw
IHx8IG9yaWVudGF0aW9uID09IDE4MCk7CisgICAgbV9kZXZpY2VPcmllbnRhdGlvbiA9IG9yaWVu
dGF0aW9uOworICAgIGNvbXB1dGVTYW1wbGVSb3RhdGlvbigpOworfQorCit2b2lkIEFWVmlkZW9D
YXB0dXJlU291cmNlOjpjb21wdXRlU2FtcGxlUm90YXRpb24oKQoreworICAgIHN3aXRjaCAobV9z
ZW5zb3JPcmllbnRhdGlvbiAtIG1fZGV2aWNlT3JpZW50YXRpb24pIHsKKyAgICBjYXNlIDA6Cisg
ICAgICAgIG1fc2FtcGxlUm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6Tm9u
ZTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSAxODA6CisgICAgY2FzZSAtMTgwOgorICAgICAg
ICBtX3NhbXBsZVJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURv
d247CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgOTA6CisgICAgICAgIG1fc2FtcGxlUm90YXRp
b24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6TGVmdDsKKyAgICAgICAgYnJlYWs7Cisg
ICAgY2FzZSAtOTA6CisgICAgY2FzZSAtMjcwOgorICAgICAgICBtX3NhbXBsZVJvdGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OworICAgICAgICBicmVhazsKKyAgICBk
ZWZhdWx0OgorICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgbV9zYW1wbGVS
b3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOworICAgIH0KK30KKwog
dm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6cHJvY2Vzc05ld0ZyYW1lKFJldGFpblB0cjxDTVNh
bXBsZUJ1ZmZlclJlZj4gc2FtcGxlQnVmZmVyLCBSZXRhaW5QdHI8QVZDYXB0dXJlQ29ubmVjdGlv
blR5cGU+IGNvbm5lY3Rpb24pCiB7CiAgICAgLy8gSWdub3JlIGZyYW1lcyBkZWxpdmVyZWQgd2hl
biB0aGUgc2Vzc2lvbiBpcyBub3QgcnVubmluZywgd2Ugd2FudCB0byBoYW5nIG9udG8gdGhlIGxh
c3QgaW1hZ2UKQEAgLTQzMiw1MiArNTA3LDE4IEBAIHZvaWQgQVZWaWRlb0NhcHR1cmVTb3VyY2U6
OnByb2Nlc3NOZXdGcmFtZShSZXRhaW5QdHI8Q01TYW1wbGVCdWZmZXJSZWY+IHNhbXBsZUJ1CiAg
ICAgbV9idWZmZXIgPSBzYW1wbGVCdWZmZXI7CiAgICAgbV9sYXN0SW1hZ2UgPSBudWxscHRyOwog
Ci0gICAgTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb24gcm90YXRpb247Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgIHN3aXRjaCAoW2Nvbm5lY3Rpb24gdmlkZW9PcmllbnRhdGlvbl0pIHsKLSAgICBj
YXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25Qb3J0cmFpdDoKLSAgICAgICAgcm90YXRpb24g
PSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3RhdGlvbjo6VXBzaWRlRG93bjsKLSAgICAgICAgYnJlYWs7
Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJhaXRVcHNpZGVEb3duOgot
ICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpOb25lOwotICAg
ICAgICBicmVhazsKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVS
aWdodDoKLSAgICBjYXNlIEFWQ2FwdHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVMZWZ0Ogot
ICAgICAgICByb3RhdGlvbiA9IE1lZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpSaWdodDsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgfQotI2Vsc2UKLSAgICBzd2l0Y2ggKFtjb25uZWN0aW9uIHZpZGVv
T3JpZW50YXRpb25dKSB7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRlb09yaWVudGF0aW9uUG9ydHJh
aXQ6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7
Ci0gICAgICAgIGJyZWFrOwotICAgIGNhc2UgQVZDYXB0dXJlVmlkZW9PcmllbnRhdGlvblBvcnRy
YWl0VXBzaWRlRG93bjoKLSAgICAgICAgcm90YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9Sb3Rh
dGlvbjo6VXBzaWRlRG93bjsKLSAgICAgICAgYnJlYWs7Ci0gICAgY2FzZSBBVkNhcHR1cmVWaWRl
b09yaWVudGF0aW9uTGFuZHNjYXBlUmlnaHQ6Ci0gICAgICAgIHJvdGF0aW9uID0gTWVkaWFTYW1w
bGU6OlZpZGVvUm90YXRpb246OlJpZ2h0OwotICAgICAgICBicmVhazsKLSAgICBjYXNlIEFWQ2Fw
dHVyZVZpZGVvT3JpZW50YXRpb25MYW5kc2NhcGVMZWZ0OgotICAgICAgICByb3RhdGlvbiA9IE1l
ZGlhU2FtcGxlOjpWaWRlb1JvdGF0aW9uOjpMZWZ0OwotICAgICAgICBicmVhazsKLSAgICB9Ci0j
ZW5kaWYKLQotICAgIGJvb2wgc2V0dGluZ3NDaGFuZ2VkID0gZmFsc2U7CiAgICAgQ01WaWRlb0Rp
bWVuc2lvbnMgZGltZW5zaW9ucyA9IENNVmlkZW9Gb3JtYXREZXNjcmlwdGlvbkdldERpbWVuc2lv
bnMoZm9ybWF0RGVzY3JpcHRpb24pOwotICAgIGlmIChyb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6
VmlkZW9Sb3RhdGlvbjo6UmlnaHQgfHwgcm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZpZGVvUm90
YXRpb246OkxlZnQpCisgICAgaWYgKG1fc2FtcGxlUm90YXRpb24gPT0gTWVkaWFTYW1wbGU6OlZp
ZGVvUm90YXRpb246OkxlZnQgfHwgbV9zYW1wbGVSb3RhdGlvbiA9PSBNZWRpYVNhbXBsZTo6Vmlk
ZW9Sb3RhdGlvbjo6UmlnaHQpCiAgICAgICAgIHN0ZDo6c3dhcChkaW1lbnNpb25zLndpZHRoLCBk
aW1lbnNpb25zLmhlaWdodCk7CiAKICAgICBpZiAoZGltZW5zaW9ucy53aWR0aCAhPSBtX3dpZHRo
IHx8IGRpbWVuc2lvbnMuaGVpZ2h0ICE9IG1faGVpZ2h0KSB7CiAgICAgICAgIG1fd2lkdGggPSBk
aW1lbnNpb25zLndpZHRoOwogICAgICAgICBtX2hlaWdodCA9IGRpbWVuc2lvbnMuaGVpZ2h0Owot
ICAgICAgICBzZXR0aW5nc0NoYW5nZWQgPSB0cnVlOwotICAgIH0KIAotICAgIGlmIChzZXR0aW5n
c0NoYW5nZWQpCiAgICAgICAgIHNldHRpbmdzRGlkQ2hhbmdlKCk7CisgICAgfQogCi0gICAgdmlk
ZW9TYW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUobV9idWZmZXIuZ2V0
KCksIHJvdGF0aW9uLCBbY29ubmVjdGlvbiBpc1ZpZGVvTWlycm9yZWRdKSk7CisgICAgdmlkZW9T
YW1wbGVBdmFpbGFibGUoTWVkaWFTYW1wbGVBVkZPYmpDOjpjcmVhdGUobV9idWZmZXIuZ2V0KCks
IG1fc2FtcGxlUm90YXRpb24sIFtjb25uZWN0aW9uIGlzVmlkZW9NaXJyb3JlZF0pKTsKIH0KIAog
dm9pZCBBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6Y2FwdHVyZU91dHB1dERpZE91dHB1dFNhbXBsZUJ1
ZmZlckZyb21Db25uZWN0aW9uKEFWQ2FwdHVyZU91dHB1dFR5cGUqLCBDTVNhbXBsZUJ1ZmZlclJl
ZiBzYW1wbGVCdWZmZXIsIEFWQ2FwdHVyZUNvbm5lY3Rpb25UeXBlKiBjYXB0dXJlQ29ubmVjdGlv
bikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9D
b3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL21hYy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmNwcAppbmRleCA4ZjI0YzYzMDA5ZWJk
YzljYzQxZTFhYmM1ZGVhMWExN2UxNGJmNzU5Li4zOTM5Y2E2MzA5MTRlNzAwYTUxYjA1NTJkYTk2
ZTM1OGQzYzJiZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0
cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRpb0NhcHR1cmVTb3VyY2UuY3BwCkBAIC00
Niw0NSArNDYsMzkgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBDb3JlQXVkaW9D
YXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSB7CitjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlRmFjdG9yeSA6IHB1YmxpYyBS
ZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5IHsKIHB1YmxpYzoKLSAgICBS
ZWZQdHI8UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZpY2U6
OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMsIFN0
cmluZyYgaW52YWxpZENvbnN0cmFpbnQpIGZpbmFsIHsKLSAgICAgICAgcmV0dXJuIENvcmVBdWRp
b0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShkZXZpY2VJRCwgdHlwZSwgY29uc3RyYWludHMsIGludmFs
aWRDb25zdHJhaW50KTsKKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1
cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyog
Y29uc3RyYWludHMpIGZpbmFsIHsKKyAgICAgICAgcmV0dXJuIENvcmVBdWRpb0NhcHR1cmVTb3Vy
Y2U6OmNyZWF0ZShkZXZpY2VJRCwgY29uc3RyYWludHMpOwogICAgIH0KIH07CiAKIGNvbnN0IFVJ
bnQzMiBvdXRwdXRCdXMgPSAwOwogY29uc3QgVUludDMyIGlucHV0QnVzID0gMTsKIAotUmVmUHRy
PENvcmVBdWRpb0NhcHR1cmVTb3VyY2U+IENvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNv
bnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmIGludmFsaWRDb25zdHJh
aW50KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFp
bnRzKQogewotICAgIGlmICh0eXBlICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlv
KQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLQogICAgIFN0cmluZyBsYWJlbDsKICAgICB1aW50
MzJfdCBwZXJzaXN0ZW50SUQgPSAwOwogI2lmIFBMQVRGT1JNKE1BQykKICAgICBhdXRvIGRldmlj
ZSA9IENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5jb3JlQXVkaW9E
ZXZpY2VXaXRoVUlEKGRldmljZUlEKTsKICAgICBpZiAoIWRldmljZSkKLSAgICAgICAgcmV0dXJu
IG51bGxwdHI7CisgICAgICAgIHJldHVybiB7IH07CiAKICAgICBsYWJlbCA9IGRldmljZS0+bGFi
ZWwoKTsKICAgICBwZXJzaXN0ZW50SUQgPSBkZXZpY2UtPmRldmljZUlEKCk7CiAjZW5kaWYKLSAg
ICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBDb3JlQXVkaW9DYXB0dXJlU291cmNlKGRldmlj
ZUlELCBsYWJlbCwgcGVyc2lzdGVudElEKSk7CisgICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZigq
bmV3IENvcmVBdWRpb0NhcHR1cmVTb3VyY2UoZGV2aWNlSUQsIGxhYmVsLCBwZXJzaXN0ZW50SUQp
KTsKIAogICAgIGlmIChjb25zdHJhaW50cykgewogICAgICAgICBhdXRvIHJlc3VsdCA9IHNvdXJj
ZS0+YXBwbHlDb25zdHJhaW50cygqY29uc3RyYWludHMpOwotICAgICAgICBpZiAocmVzdWx0KSB7
Ci0gICAgICAgICAgICBpbnZhbGlkQ29uc3RyYWludCA9IHJlc3VsdC52YWx1ZSgpLmZpcnN0Owot
ICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgICAgIH0KKyAgICAgICAgaWYgKHJlc3Vs
dCkKKyAgICAgICAgICAgIHJldHVybiBXVEZNb3ZlKHJlc3VsdC52YWx1ZSgpLmZpcnN0KTsKICAg
ICB9Ci0KLSAgICByZXR1cm4gc291cmNlOworICAgIHJldHVybiBDYXB0dXJlU291cmNlT3JFcnJv
cihXVEZNb3ZlKHNvdXJjZSkpOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFj
dG9yeSYgQ29yZUF1ZGlvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291
cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5JiBDb3JlQXVkaW9DYXB0dXJlU291cmNlOjpmYWN0b3J5
KCkKIHsKICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Q29yZUF1ZGlvQ2FwdHVyZVNvdXJjZUZh
Y3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2FwdHVyZVNv
dXJjZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL0NvcmVBdWRp
b0NhcHR1cmVTb3VyY2UuaAppbmRleCAyMzVkNWEzMTRkYzJhYzgxMmQ3MmJmODg0OWI2ZTYxYmQ3
OWJjNGRkLi4xM2Y0MTZjZTEyMDUyMzc5NmQ2Y2EyNTI0NzA0MmI5YmMyMjk2Y2UyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvQ29yZUF1ZGlvQ2Fw
dHVyZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21h
Yy9Db3JlQXVkaW9DYXB0dXJlU291cmNlLmgKQEAgLTUzLDkgKzUzLDkgQEAgY2xhc3MgQ2FwdHVy
ZURldmljZUluZm87CiBjbGFzcyBDb3JlQXVkaW9DYXB0dXJlU291cmNlIDogcHVibGljIFJlYWx0
aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxDb3JlQXVkaW9D
YXB0dXJlU291cmNlPiBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmlj
ZTo6RGV2aWNlVHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyosIFN0cmluZyYpOworICAgIHN0
YXRpYyBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGUoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwg
Y29uc3QgTWVkaWFDb25zdHJhaW50cyopOwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIENh
cHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEF1ZGlv
Q2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZvaWQgYWRkRWNob0NhbmNlbGxhdGlv
blNvdXJjZShBdWRpb1NhbXBsZURhdGFTb3VyY2UmKTsKICAgICB2b2lkIHJlbW92ZUVjaG9DYW5j
ZWxsYXRpb25Tb3VyY2UoQXVkaW9TYW1wbGVEYXRhU291cmNlJik7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VNYWMubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2VNYWMubW0KaW5kZXggY2U0ZGFiYjM4ZWJlODg4OGYzY2MwMzdmZmY1
M2FmYTc0YjBiOTIzOC4uYjBmMjgzYjFkYzc0MmRkMDlhZjY1MWQ3NzI1ZmNhYTY3MWM4YWM5NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21l
ZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZU1hYy5tbQpAQCAtODQsMTMgKzg0
LDE0IEBAIHN0YXRpYyB2b2lkIGFkZEh1bShmbG9hdCBhbXBsaXR1ZGUsIGZsb2F0IGZyZXF1ZW5j
eSwgZmxvYXQgc2FtcGxlUmF0ZSwgdWludDY0X3QKICAgICB9CiB9CiAKLVJlZlB0cjxNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZT4gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBT
dHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJp
bmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1
dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlTWFjKG5hbWUp
KTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVycm9yIG1lc3Nh
Z2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJhaW50cygqY29u
c3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICByZXR1cm4geyB9
OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJjZU9yRXJyb3Io
V1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2VNYWM6Ok1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZU1hYy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLmgKaW5kZXggNGQ1MTQzZWMyOWJiMDdjMTIwZWIxMGU0MzEw
NjVhMWZlODhhODZiYS4uOTU4MzdiMTFhNWM2ZDk3Zjg3MmI2NTAwNTg4ODQxMDIwYWNhN2YxZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tS
ZWFsdGltZVZpZGVvU291cmNlTWFjLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLmgKQEAgLTI4LDEzICsyOCwx
MyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwogCi0jaWZuZGVmIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlTWFjX2gKLSNkZWZpbmUgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWNfaAorI3ByYWdtYSBv
bmNlCiAKICNpZiBFTkFCTEUoTUVESUFfU1RSRUFNKQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGUu
aCIKICNpbmNsdWRlICJNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oIgorI2luY2x1ZGUgIk9yaWVu
dGF0aW9uTm90aWZlci5oIgogCiB0eXBlZGVmIHN0cnVjdCBfX0NWQnVmZmVyICpDVkJ1ZmZlclJl
ZjsKIHR5cGVkZWYgQ1ZCdWZmZXJSZWYgQ1ZJbWFnZUJ1ZmZlclJlZjsKQEAgLTQzLDkgKzQzLDgg
QEAgdHlwZWRlZiBzdHJ1Y3QgX19DVlBpeGVsQnVmZmVyUG9vbCAqQ1ZQaXhlbEJ1ZmZlclBvb2xS
ZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UgeworY2xhc3MgTW9j
a1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMgZmluYWwgOiBwdWJsaWMgTW9ja1JlYWx0aW1lVmlkZW9T
b3VyY2UsIHByaXZhdGUgT3JpZW50YXRpb25Ob3RpZmllcjo6T2JzZXJ2ZXIgewogcHVibGljOgot
CiAgICAgdmlydHVhbCB+TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VNYWMoKSB7IH0KIAogcHJpdmF0
ZToKQEAgLTU5LDEzICs1OCwxNCBAQCBwcml2YXRlOgogICAgIHZvaWQgdXBkYXRlU2FtcGxlQnVm
ZmVyKCkgZmluYWw7CiAgICAgYm9vbCBhcHBseVNpemUoY29uc3QgSW50U2l6ZSYpIGZpbmFsOwog
CisgICAgdm9pZCBvcmllbnRhdGlvbkNoYW5nZWQoaW50IG9yaWVudGF0aW9uKSBmaW5hbDsKKwog
ICAgIG11dGFibGUgUmV0YWluUHRyPENHSW1hZ2VSZWY+IG1fcHJldmlld0ltYWdlOwogICAgIG11
dGFibGUgUmV0YWluUHRyPFBsYXRmb3JtTGF5ZXI+IG1fcHJldmlld0xheWVyOwogICAgIG11dGFi
bGUgUmV0YWluUHRyPENWUGl4ZWxCdWZmZXJQb29sUmVmPiBtX2J1ZmZlclBvb2w7CisgICAgTWVk
aWFTYW1wbGU6OlZpZGVvUm90YXRpb24gbV9kZXZpY2VPcmllbnRhdGlvbiB7IE1lZGlhU2FtcGxl
OjpWaWRlb1JvdGF0aW9uOjpOb25lIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAK
ICNlbmRpZiAvLyBFTkFCTEUoTUVESUFfU1RSRUFNKQotCi0jZW5kaWYgLy8gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWNfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVk
aWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL01vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjLm1t
CmluZGV4IGJjNjgwYThlYWEzOGVjYzdlMjhhYzA5MjUyMWZhZDc1M2VhZjNlNDcuLmJlNGJlMDBh
ZTQ5NTIwYWFlYzg2YzRjMjMxYTYzOTQ4Njg3ZTBlYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYy5t
bQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvTW9ja1JlYWx0
aW1lVmlkZW9Tb3VyY2VNYWMubW0KQEAgLTUwLDEzICs1MCwxNCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIHN0YXRpYyBjb25zdCBpbnQgdmlkZW9TYW1wbGVSYXRlID0gOTAwMDA7CiAKLVJlZlB0
cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0
ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRz
KQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNyZWF0ZShj
b25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqIGNvbnN0cmFpbnRzKQog
ewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
TWFjKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpuZXcgTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2VNYWMobmFtZSkpOworICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVwb3J0IGVy
cm9yIG1lc3NhZ2VzCiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlDb25zdHJh
aW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVyZVNvdXJj
ZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VN
YWM6Ok1vY2tSZWFsdGltZVZpZGVvU291cmNlTWFjKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTE2
MSw2ICsxNjIsMjcgQEAgYm9vbCBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZU1hYzo6YXBwbHlTaXpl
KGNvbnN0IEludFNpemUmIG5ld1NpemUpCiAgICAgcmV0dXJuIE1vY2tSZWFsdGltZVZpZGVvU291
cmNlOjphcHBseVNpemUobmV3U2l6ZSk7CiB9CiAKK3ZvaWQgTW9ja1JlYWx0aW1lVmlkZW9Tb3Vy
Y2VNYWM6Om9yaWVudGF0aW9uQ2hhbmdlZChpbnQgb3JpZW50YXRpb24pCit7CisgICAgLy8gRklY
TUU6IERvIHNvbWV0aGluZyB3aXRoIG1fZGV2aWNlT3JpZW50YXRpb24KKyAgICBzd2l0Y2ggKG9y
aWVudGF0aW9uKSB7CisgICAgY2FzZSAwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9uID0g
TWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246Ok5vbmU7CisgICAgICAgIGJyZWFrOworICAgIGNh
c2UgOTA6CisgICAgICAgIG1fZGV2aWNlT3JpZW50YXRpb24gPSBNZWRpYVNhbXBsZTo6VmlkZW9S
b3RhdGlvbjo6UmlnaHQ7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgLTkwOgorICAgICAgICBt
X2RldmljZU9yaWVudGF0aW9uID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OkxlZnQ7Cisg
ICAgICAgIGJyZWFrOworICAgIGNhc2UgMTgwOgorICAgICAgICBtX2RldmljZU9yaWVudGF0aW9u
ID0gTWVkaWFTYW1wbGU6OlZpZGVvUm90YXRpb246OlVwc2lkZURvd247CisgICAgICAgIGJyZWFr
OworICAgIGRlZmF1bHQ6CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShNRURJQV9TVFJFQU0pCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9t
YWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYy5jcHAKaW5kZXggNmY0YmY2MTAxNTAyYzdh
NDA1YWI1Y2ZiMTI3MWVjOGY1MzM3MzUyYy4uNWMyNjA1MDI2NTU3MDg0ZGNhMTRkMTZjYWNhZDE4
ZDFiOWU3ZmM0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJl
YW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFj
LmNwcApAQCAtMTM2LDE5ICsxMzYsMjEgQEAgdm9pZCBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVy
TWFjOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVhbUhhbmRsZXIgY29tcGwKICAgICBT
dHJpbmcgaW52YWxpZENvbnN0cmFpbnQ7CiAKICAgICBpZiAoIWF1ZGlvRGV2aWNlSUQuaXNFbXB0
eSgpICYmIG1fYXVkaW9GYWN0b3J5KSB7Ci0gICAgICAgIGlmIChhdXRvIGF1ZGlvU291cmNlID0g
bV9hdWRpb0ZhY3RvcnktPmNyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25z
dHJhaW50cyhhdWRpb0RldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpBdWRpbywg
YXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAgICAgYXVkaW9T
b3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5yZWxlYXNlTm9uTnVsbCgpKTsKKyAgICAgICAgYXV0
byBhdWRpb1NvdXJjZSA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2Uo
YXVkaW9EZXZpY2VJRCwgYXVkaW9Db25zdHJhaW50cyk7CisgICAgICAgIGlmICghIWF1ZGlvU291
cmNlKQorICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChhdWRpb1NvdXJjZS5zb3VyY2Uo
KSk7CiAjaWYgIUxPR19ESVNBQkxFRAotICAgICAgICBpZiAoIWludmFsaWRDb25zdHJhaW50Lmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIExPRyhNZWRpYSwgIlJlYWx0aW1lTWVkaWFTb3VyY2VDZW50
ZXJNYWM6OmNyZWF0ZU1lZGlhU3RyZWFtKCVwKSwgYXVkaW8gY29uc3RyYWludHMgZmFpbGVkIHRv
IGFwcGx5OiAlcyIsIHRoaXMsIGludmFsaWRDb25zdHJhaW50LnV0ZjgoKS5kYXRhKCkpOworICAg
ICAgICBpZiAoIWF1ZGlvU291cmNlLmVycm9yTWVzc2FnZS5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBMT0coTWVkaWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0
cmVhbSglcCksIGF1ZGlvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBh
dWRpb1NvdXJjZS5lcnJvck1lc3NhZ2UudXRmOCgpLmRhdGEoKSk7CiAjZW5kaWYKICAgICB9CiAg
ICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSAmJiBtX3ZpZGVvRmFjdG9yeSkgewotICAg
ICAgICBpZiAoYXV0byB2aWRlb1NvdXJjZSA9IG1fdmlkZW9GYWN0b3J5LT5jcmVhdGVNZWRpYVNv
dXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHModmlkZW9EZXZpY2VJRCwgQ2FwdHVy
ZURldmljZTo6RGV2aWNlVHlwZTo6VmlkZW8sIHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25z
dHJhaW50KSkKLSAgICAgICAgICAgIHZpZGVvU291cmNlcy5hcHBlbmQodmlkZW9Tb3VyY2UucmVs
ZWFzZU5vbk51bGwoKSk7CisgICAgICAgIGF1dG8gdmlkZW9Tb3VyY2UgPSBtX3ZpZGVvRmFjdG9y
eS0+Y3JlYXRlVmlkZW9DYXB0dXJlU291cmNlKHZpZGVvRGV2aWNlSUQsIHZpZGVvQ29uc3RyYWlu
dHMpOworICAgICAgICBpZiAoISF2aWRlb1NvdXJjZSkKKyAgICAgICAgICAgIHZpZGVvU291cmNl
cy5hcHBlbmQodmlkZW9Tb3VyY2Uuc291cmNlKCkpOwogI2lmICFMT0dfRElTQUJMRUQKLSAgICAg
ICAgaWYgKCFpbnZhbGlkQ29uc3RyYWludC5pc0VtcHR5KCkpCi0gICAgICAgICAgICBMT0coTWVk
aWEsICJSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpjcmVhdGVNZWRpYVN0cmVhbSglcCks
IHZpZGVvIGNvbnN0cmFpbnRzIGZhaWxlZCB0byBhcHBseTogJXMiLCB0aGlzLCBpbnZhbGlkQ29u
c3RyYWludC51dGY4KCkuZGF0YSgpKTsKKyAgICAgICAgaWYgKCF2aWRlb1NvdXJjZS5lcnJvck1l
c3NhZ2UuaXNFbXB0eSgpKQorICAgICAgICAgICAgTE9HKE1lZGlhLCAiUmVhbHRpbWVNZWRpYVNv
dXJjZUNlbnRlck1hYzo6Y3JlYXRlTWVkaWFTdHJlYW0oJXApLCB2aWRlbyBjb25zdHJhaW50cyBm
YWlsZWQgdG8gYXBwbHk6ICVzIiwgdGhpcywgdmlkZW9Tb3VyY2UuZXJyb3JNZXNzYWdlLnV0Zjgo
KS5kYXRhKCkpOwogI2VuZGlmCiAgICAgfQogCkBAIC0xODcsMTIgKzE4OSwxOCBAQCBWZWN0b3I8
U3RyaW5nPiBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVB
bmRDb25zdHJhaW50cyhSZQogICAgICAgICBpZiAoIWNhcHR1cmVEZXZpY2UuZW5hYmxlZCgpIHx8
IGNhcHR1cmVEZXZpY2UudHlwZSgpICE9IGRldmljZVR5cGUpCiAgICAgICAgICAgICBjb250aW51
ZTsKIAotICAgICAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZmFjdG9y
eSA9IHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gPyBtX3ZpZGVvRmFj
dG9yeSA6IG1fYXVkaW9GYWN0b3J5OwotICAgICAgICBpZiAoIWZhY3RvcnkpCi0gICAgICAgICAg
ICBjb250aW51ZTsKKyAgICAgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291cmNlT3JFcnJvcjsK
KyAgICAgICAgaWYgKHR5cGUgPT0gUmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8gJiYg
bV92aWRlb0ZhY3RvcnkpCisgICAgICAgICAgICBzb3VyY2VPckVycm9yID0gbV92aWRlb0ZhY3Rv
cnktPmNyZWF0ZVZpZGVvQ2FwdHVyZVNvdXJjZShjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgp
LCAmY29uc3RyYWludHMpOworICAgICAgICBlbHNlIGlmICh0eXBlID09IFJlYWx0aW1lTWVkaWFT
b3VyY2U6OlR5cGU6OkF1ZGlvICYmIG1fYXVkaW9GYWN0b3J5KQorICAgICAgICAgICAgc291cmNl
T3JFcnJvciA9IG1fYXVkaW9GYWN0b3J5LT5jcmVhdGVBdWRpb0NhcHR1cmVTb3VyY2UoY2FwdHVy
ZURldmljZS5wZXJzaXN0ZW50SWQoKSwgJmNvbnN0cmFpbnRzKTsKIAotICAgICAgICBpZiAoYXV0
byBjYXB0dXJlU291cmNlID0gZmFjdG9yeS0+Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2
aWNlV2l0aENvbnN0cmFpbnRzKGNhcHR1cmVEZXZpY2UucGVyc2lzdGVudElkKCksIGRldmljZVR5
cGUsICZjb25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQpKQotICAgICAgICAgICAgYmVzdFNv
dXJjZXMuYXBwZW5kKGNhcHR1cmVTb3VyY2UubGVha1JlZigpKTsKKyAgICAgICAgaWYgKCFzb3Vy
Y2VPckVycm9yKSB7CisgICAgICAgICAgICAvLyBGSVhNRTogSGFuZGxlIHRoZSBjYXNlIG9mIGlu
dmFsaWQgY29uc3RyYWludHMgb24gbW9yZSB0aGFuIG9uZSBkZXZpY2UuCisgICAgICAgICAgICBp
bnZhbGlkQ29uc3RyYWludCA9IFdURk1vdmUoc291cmNlT3JFcnJvci5lcnJvck1lc3NhZ2UpOwor
ICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKyAgICAgICAgYmVzdFNvdXJjZXMuYXBw
ZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgIH0KIAogICAgIFZlY3RvcjxTdHJpbmc+
IHNvdXJjZVVJRHM7CkBAIC0yMDcsMTIgKzIxNSwxMiBAQCBWZWN0b3I8U3RyaW5nPiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjOjpiZXN0U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhS
ZQogICAgIHJldHVybiBzb3VyY2VVSURzOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0
dXJlRmFjdG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdEF1ZGlvRmFj
dG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0NhcHR1cmVGYWN0b3J5KiBSZWFsdGlt
ZU1lZGlhU291cmNlQ2VudGVyTWFjOjpkZWZhdWx0QXVkaW9GYWN0b3J5KCkKIHsKICAgICByZXR1
cm4gJkNvcmVBdWRpb0NhcHR1cmVTb3VyY2U6OmZhY3RvcnkoKTsKIH0KIAotUmVhbHRpbWVNZWRp
YVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkqIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWM6OmRl
ZmF1bHRWaWRlb0ZhY3RvcnkoKQorUmVhbHRpbWVNZWRpYVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFj
dG9yeSogUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1hYzo6ZGVmYXVsdFZpZGVvRmFjdG9yeSgp
CiB7CiAgICAgcmV0dXJuICZBVlZpZGVvQ2FwdHVyZVNvdXJjZTo6ZmFjdG9yeSgpOwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vbWFjL1JlYWx0aW1l
TWVkaWFTb3VyY2VDZW50ZXJNYWMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlhc3Ry
ZWFtL21hYy9SZWFsdGltZU1lZGlhU291cmNlQ2VudGVyTWFjLmgKaW5kZXggMWJmNDk3ZmQ2ZDdj
M2MxNjZmZGE4MmRlYTJiMTMxYjEzYzhhNDQ4NC4uZmYxZjg5N2JiZWRlOTlhNDQwNTJiNjkyY2Y1
ZDhkMGFlZDEwMGQ0MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFz
dHJlYW0vbWFjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJNYWMuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9tYWMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck1h
Yy5oCkBAIC01NCw4ICs1NCw4IEBAIHByaXZhdGU6CiAKICAgICBWZWN0b3I8U3RyaW5nPiBiZXN0
U291cmNlc0ZvclR5cGVBbmRDb25zdHJhaW50cyhSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlLCBj
b25zdCBNZWRpYUNvbnN0cmFpbnRzJiwgU3RyaW5nJiBpbnZhbGlkQ29uc3RyYWludCk7CiAKLSAg
ICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9y
eSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5KiBkZWZh
dWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9D
YXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOworICAgIFJlYWx0aW1l
TWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1bHRWaWRlb0ZhY3RvcnkoKSBm
aW5hbDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21lZGlhc3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJj
ZUNlbnRlck93ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tZWRpYXN0cmVhbS9vcGVu
d2VicnRjL1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJPd3IuY3BwCmluZGV4IGRiYzMyZTUzYTMy
NzBhOWYyNDc1MTE4M2ZhYjRhZWEwODVjZjgyYTguLjI1MGIyOTYxMzBmMTBjMWI4ODM5YmI2MmVm
YmY4YzljZTBlMDRlMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21lZGlh
c3RyZWFtL29wZW53ZWJydGMvUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlck93ci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbWVkaWFzdHJlYW0vb3BlbndlYnJ0Yy9SZWFsdGltZU1l
ZGlhU291cmNlQ2VudGVyT3dyLmNwcApAQCAtMTA4LDcgKzEwOCw3IEBAIHZvaWQgUmVhbHRpbWVN
ZWRpYVNvdXJjZUNlbnRlck93cjo6Y3JlYXRlTWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5k
bGVyIGNvbXBsCiAgICAgaWYgKCF2aWRlb0RldmljZUlELmlzRW1wdHkoKSkKICAgICAgICAgdHlw
ZXMgfD0gT1dSX01FRElBX1RZUEVfVklERU87CiAKLSAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0g
Y29tcGxldGlvbkhhbmRsZXI7CisgICAgbV9jb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpOwogCiAgICAgb3dyX2dldF9jYXB0dXJlX3NvdXJjZXMoc3RhdGljX2Nh
c3Q8T3dyTWVkaWFUeXBlPih0eXBlcyksIG1lZGlhU291cmNlc0F2YWlsYWJsZUNhbGxiYWNrLCB0
aGlzKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2Nr
UmVhbHRpbWVBdWRpb1NvdXJjZS5jcHAKaW5kZXggMmFlYjNkNGRkODBkZjUxYWNjMDQ5Y2M1OTkx
ZWRmZjU2ODk5NGU5NS4uZTAxNDg1MjNlZGJmZTQ3MWQ0MzY2NDdkNjc5MmUyYTk1YWE1OTU4NSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRp
bWVBdWRpb1NvdXJjZS5jcHAKQEAgLTQxLDI5ICs0MSwyNSBAQAogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKLWNsYXNzIE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeSA6IHB1YmxpYyBSZWFs
dGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBNb2NrUmVhbHRpbWVBdWRp
b1NvdXJjZUZhY3RvcnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJl
RmFjdG9yeSB7CiBwdWJsaWM6Ci0gICAgUmVmUHRyPFJlYWx0aW1lTWVkaWFTb3VyY2U+IGNyZWF0
ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50cyhjb25zdCBTdHJpbmcm
IGRldmljZUlELCBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlIHR5cGUsIGNvbnN0IE1lZGlhQ29u
c3RyYWludHMqIGNvbnN0cmFpbnRzLCBTdHJpbmcmKSBmaW5hbCB7Ci0gICAgICAgIGlmICh0eXBl
ICE9IENhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OkF1ZGlvKQotICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7Ci0KKyAgICBDYXB0dXJlU291cmNlT3JFcnJvciBjcmVhdGVBdWRpb0NhcHR1cmVT
b3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29u
c3RyYWludHMpIGZpbmFsIHsKICAgICAgICAgZm9yIChhdXRvJiBkZXZpY2UgOiBNb2NrUmVhbHRp
bWVNZWRpYVNvdXJjZTo6YXVkaW9EZXZpY2VzKCkpIHsKICAgICAgICAgICAgIGlmIChkZXZpY2Uu
cGVyc2lzdGVudElkKCkgPT0gZGV2aWNlSUQpCiAgICAgICAgICAgICAgICAgcmV0dXJuIE1vY2tS
ZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIGNvbnN0cmFpbnRzKTsK
ICAgICAgICAgfQotCi0gICAgICAgIHJldHVybiBudWxscHRyOworICAgICAgICByZXR1cm4geyB9
OwogICAgIH0KIH07CiAKICNpZiAhUExBVEZPUk0oTUFDKSAmJiAhUExBVEZPUk0oSU9TKQotUmVm
UHRyPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3Jl
YXRlKGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWlu
dHMpCitDYXB0dXJlU291cmNlT3JFcnJvciBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KGNvbnN0IFN0cmluZyYgbmFtZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMp
CiB7Ci0gICAgYXV0byBzb3VyY2UgPSBhZG9wdFJlZihuZXcgTW9ja1JlYWx0aW1lQXVkaW9Tb3Vy
Y2UobmFtZSkpOworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBNb2NrUmVhbHRpbWVB
dWRpb1NvdXJjZShuYW1lKSk7CiAgICAgaWYgKGNvbnN0cmFpbnRzICYmIHNvdXJjZS0+YXBwbHlD
b25zdHJhaW50cygqY29uc3RyYWludHMpKQotICAgICAgICBzb3VyY2UgPSBudWxscHRyOworICAg
ICAgICByZXR1cm4geyB9OwogCi0gICAgcmV0dXJuIHNvdXJjZTsKKyAgICByZXR1cm4gQ2FwdHVy
ZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogUmVmUHRyPE1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlPiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRlTXV0ZWQoY29uc3Qg
U3RyaW5nJiBuYW1lKQpAQCAtNzQsNyArNzAsNyBAQCBSZWZQdHI8TW9ja1JlYWx0aW1lQXVkaW9T
b3VyY2U+IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGVNdXRlZChjb25zdCBTdHJpbgog
fQogI2VuZGlmCiAKLVJlYWx0aW1lTWVkaWFTb3VyY2U6OkNhcHR1cmVGYWN0b3J5JiBNb2NrUmVh
bHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpCitSZWFsdGltZU1lZGlhU291cmNlOjpBdWRpb0Nh
cHR1cmVGYWN0b3J5JiBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6ZmFjdG9yeSgpCiB7CiAgICAg
c3RhdGljIE5ldmVyRGVzdHJveWVkPE1vY2tSZWFsdGltZUF1ZGlvU291cmNlRmFjdG9yeT4gZmFj
dG9yeTsKICAgICByZXR1cm4gZmFjdG9yeS5nZXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UuaAppbmRleCAxMzMxYzc5
MTgxNDRlNmU5NmZjMmFmNDI1N2JmYzJlNzFmY2Q4ZTY3Li4zNjQ1MjJiMTNmNzA0ZTkwODliYWY4
NjVmOWI2Yjk4NmRiMjMxMzA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9t
b2NrL01vY2tSZWFsdGltZUF1ZGlvU291cmNlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vbW9jay9Nb2NrUmVhbHRpbWVBdWRpb1NvdXJjZS5oCkBAIC00MiwxMCArNDIsMTAgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2UgOiBwdWJsaWMg
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2UgewogcHVibGljOgogCi0gICAgc3RhdGljIFJlZlB0cjxN
b2NrUmVhbHRpbWVBdWRpb1NvdXJjZT4gY3JlYXRlKGNvbnN0IFN0cmluZyYsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqKTsKKyAgICBzdGF0aWMgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3JlYXRlKGNv
bnN0IFN0cmluZyYsIGNvbnN0IE1lZGlhQ29uc3RyYWludHMqKTsKICAgICBzdGF0aWMgUmVmUHRy
PE1vY2tSZWFsdGltZUF1ZGlvU291cmNlPiBjcmVhdGVNdXRlZChjb25zdCBTdHJpbmcmIG5hbWUp
OwogCi0gICAgc3RhdGljIENhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CisgICAgc3RhdGljIEF1
ZGlvQ2FwdHVyZUZhY3RvcnkmIGZhY3RvcnkoKTsKIAogICAgIHZpcnR1YWwgfk1vY2tSZWFsdGlt
ZUF1ZGlvU291cmNlKCkgPSBkZWZhdWx0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCmlu
ZGV4IDEyOTgzNDg5NDViNTFlMjM5MmJhNDVkOWM4YzBmODkwZjY5MTJmOWYuLjVkZmJiYTAwYmRh
ZjZkYzVmYzI4ODYzMThmNWJjMzlmMDc0YWVlOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXIu
Y3BwCkBAIC04Niw5ICs4Niw5IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6
OnZhbGlkYXRlUmVxdWVzdENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNICiAgICAgaWYgKGF1
ZGlvQ29uc3RyYWludHMuaXNWYWxpZCgpKSB7CiAgICAgICAgIFZlY3RvcjxEZXZpY2VJbmZvPiBk
ZXZpY2VJbmZvOwogICAgICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1vY2tSZWFsdGlt
ZU1lZGlhU291cmNlOjphdWRpb0RldmljZXMoKSkgewotICAgICAgICAgICAgYXV0byBhdWRpb1Nv
dXJjZSA9IE1vY2tSZWFsdGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51
bGxwdHIpOwotICAgICAgICAgICAgaWYgKGF1ZGlvU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRz
KGF1ZGlvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgICAgICBk
ZXZpY2VJbmZvLmFwcGVuZCh7YXVkaW9Tb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UucGVy
c2lzdGVudElkKCl9KTsKKyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFs
dGltZUF1ZGlvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOworICAgICAg
ICAgICAgaWYgKCEhc291cmNlT3JFcnJvciAmJiBzb3VyY2VPckVycm9yLmNhcHR1cmVTb3VyY2Ut
PnN1cHBvcnRzQ29uc3RyYWludHMoYXVkaW9Db25zdHJhaW50cywgaW52YWxpZENvbnN0cmFpbnQp
KQorICAgICAgICAgICAgICAgIGRldmljZUluZm8uYXBwZW5kKHtzb3VyY2VPckVycm9yLmNhcHR1
cmVTb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UucGVyc2lzdGVudElkKCl9KTsKICAgICAg
ICAgfQogCiAgICAgICAgIGlmIChkZXZpY2VJbmZvLmlzRW1wdHkoKSkgewpAQCAtMTA2LDkgKzEw
Niw5IEBAIHZvaWQgTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnZhbGlkYXRlUmVxdWVz
dENvbnN0cmFpbnRzKFZhbGlkQ29uc3RyYWludHNICiAgICAgaWYgKHZpZGVvQ29uc3RyYWludHMu
aXNWYWxpZCgpKSB7CiAgICAgICAgIFZlY3RvcjxEZXZpY2VJbmZvPiBkZXZpY2VJbmZvOwogICAg
ICAgICBmb3IgKGNvbnN0IGF1dG8mIGRldmljZSA6IE1vY2tSZWFsdGltZU1lZGlhU291cmNlOjp2
aWRlb0RldmljZXMoKSkgewotICAgICAgICAgICAgYXV0byB2aWRlb1NvdXJjZSA9IE1vY2tSZWFs
dGltZVZpZGVvU291cmNlOjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOwotICAgICAg
ICAgICAgaWYgKHZpZGVvU291cmNlLT5zdXBwb3J0c0NvbnN0cmFpbnRzKHZpZGVvQ29uc3RyYWlu
dHMsIGludmFsaWRDb25zdHJhaW50KSkKLSAgICAgICAgICAgICAgICBkZXZpY2VJbmZvLmFwcGVu
ZCh7dmlkZW9Tb3VyY2UtPmZpdG5lc3NTY29yZSgpLCBkZXZpY2UucGVyc2lzdGVudElkKCl9KTsK
KyAgICAgICAgICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNl
OjpjcmVhdGUoZGV2aWNlLmxhYmVsKCksIG51bGxwdHIpOworICAgICAgICAgICAgaWYgKHNvdXJj
ZU9yRXJyb3IgJiYgc291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5zdXBwb3J0c0NvbnN0cmFp
bnRzKHZpZGVvQ29uc3RyYWludHMsIGludmFsaWRDb25zdHJhaW50KSkKKyAgICAgICAgICAgICAg
ICBkZXZpY2VJbmZvLmFwcGVuZCh7c291cmNlT3JFcnJvci5jYXB0dXJlU291cmNlLT5maXRuZXNz
U2NvcmUoKSwgZGV2aWNlLnBlcnNpc3RlbnRJZCgpfSk7CiAgICAgICAgIH0KIAogICAgICAgICBp
ZiAoZGV2aWNlSW5mby5pc0VtcHR5KCkpIHsKQEAgLTEzNyw5ICsxMzcsOSBAQCB2b2lkIE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpjcmVhdGVNZWRpYVN0cmVhbShOZXdNZWRpYVN0cmVh
bUhhbmRsZXIgY29tcAogICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAgICAgICAgICAgICBp
ZiAoYXVkaW9EZXZpY2VJRCA9PSBjYXB0dXJlRGV2aWNlLnBlcnNpc3RlbnRJZCgpKSB7Ci0gICAg
ICAgICAgICAgICAgYXV0byBzb3VyY2UgPSBNb2NrUmVhbHRpbWVBdWRpb1NvdXJjZTo6Y3JlYXRl
KGNhcHR1cmVEZXZpY2UubGFiZWwoKSwgYXVkaW9Db25zdHJhaW50cyk7Ci0gICAgICAgICAgICAg
ICAgaWYgKHNvdXJjZSkKLSAgICAgICAgICAgICAgICAgICAgYXVkaW9Tb3VyY2VzLmFwcGVuZChz
b3VyY2UucmVsZWFzZU5vbk51bGwoKSk7CisgICAgICAgICAgICAgICAgYXV0byBzb3VyY2VPckVy
cm9yID0gTW9ja1JlYWx0aW1lQXVkaW9Tb3VyY2U6OmNyZWF0ZShjYXB0dXJlRGV2aWNlLmxhYmVs
KCksIGF1ZGlvQ29uc3RyYWludHMpOworICAgICAgICAgICAgICAgIGlmICghIXNvdXJjZU9yRXJy
b3IpCisgICAgICAgICAgICAgICAgICAgIGF1ZGlvU291cmNlcy5hcHBlbmQoc291cmNlT3JFcnJv
ci5zb3VyY2UoKSk7CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CkBAIC0xNTAsOSAr
MTUwLDkgQEAgdm9pZCBNb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNlbnRlcjo6Y3JlYXRlTWVkaWFT
dHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyIGNvbXAKICAgICAgICAgICAgICAgICBjb250aW51
ZTsKIAogICAgICAgICAgICAgaWYgKHZpZGVvRGV2aWNlSUQgPT0gY2FwdHVyZURldmljZS5wZXJz
aXN0ZW50SWQoKSkgewotICAgICAgICAgICAgICAgIGF1dG8gc291cmNlID0gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShjYXB0dXJlRGV2aWNlLmxhYmVsKCksIHZpZGVvQ29uc3RyYWlu
dHMpOwotICAgICAgICAgICAgICAgIGlmIChzb3VyY2UpCi0gICAgICAgICAgICAgICAgICAgIHZp
ZGVvU291cmNlcy5hcHBlbmQoc291cmNlLnJlbGVhc2VOb25OdWxsKCkpOworICAgICAgICAgICAg
ICAgIGF1dG8gc291cmNlT3JFcnJvciA9IE1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpjcmVhdGUo
Y2FwdHVyZURldmljZS5sYWJlbCgpLCB2aWRlb0NvbnN0cmFpbnRzKTsKKyAgICAgICAgICAgICAg
ICBpZiAoISFzb3VyY2VPckVycm9yKQorICAgICAgICAgICAgICAgICAgICB2aWRlb1NvdXJjZXMu
YXBwZW5kKHNvdXJjZU9yRXJyb3Iuc291cmNlKCkpOwogICAgICAgICAgICAgfQogICAgICAgICB9
CiAgICAgfQpAQCAtMTg0LDEyICsxODQsMTIgQEAgVmVjdG9yPENhcHR1cmVEZXZpY2U+IE1vY2tS
ZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpnZXRNZWRpYVN0cmVhbURldmljZXMoKQogICAgIHJl
dHVybiBzb3VyY2VzOwogfQogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSog
TW9ja1JlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OmRlZmF1bHRBdWRpb0ZhY3RvcnkoKQorUmVh
bHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogTW9ja1JlYWx0aW1lTWVkaWFT
b3VyY2VDZW50ZXI6OmRlZmF1bHRBdWRpb0ZhY3RvcnkoKQogewogICAgIHJldHVybiAmTW9ja1Jl
YWx0aW1lQXVkaW9Tb3VyY2U6OmZhY3RvcnkoKTsKIH0KIAotUmVhbHRpbWVNZWRpYVNvdXJjZTo6
Q2FwdHVyZUZhY3RvcnkqIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZhdWx0Vmlk
ZW9GYWN0b3J5KCkKK1JlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIE1v
Y2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpkZWZhdWx0VmlkZW9GYWN0b3J5KCkKIHsKICAg
ICByZXR1cm4gJk1vY2tSZWFsdGltZVZpZGVvU291cmNlOjpmYWN0b3J5KCk7CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlhU291cmNl
Q2VudGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyLmgKaW5kZXggYmIyZGUwMWNiOWYyNDU5NDE5OWNjZTM2MzBhODdiYjE3NGM0
ZWRjMS4uYjAwOGY3MDUyYTE5ZWFhYzZlZWIxYjExOTYzMzhjYTZmNWU5NjIxOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVNZWRpYVNvdXJjZUNl
bnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lTWVk
aWFTb3VyY2VDZW50ZXIuaApAQCAtMjQsOCArMjQsNyBAQAogICogT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KICAqLwog
Ci0jaWZuZGVmIE1vY2tSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyX2gKLSNkZWZpbmUgTW9ja1Jl
YWx0aW1lTWVkaWFTb3VyY2VDZW50ZXJfaAorI3ByYWdtYSBvbmNlCiAKICNpZiBFTkFCTEUoTUVE
SUFfU1RSRUFNKQogCkBAIC00NSw4ICs0NCw4IEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPENhcHR1
cmVEZXZpY2U+IGdldE1lZGlhU3RyZWFtRGV2aWNlcygpIGZpbmFsOwogICAgIHZvaWQgY3JlYXRl
TWVkaWFTdHJlYW0oTmV3TWVkaWFTdHJlYW1IYW5kbGVyLCBjb25zdCBTdHJpbmcmIGF1ZGlvRGV2
aWNlSUQsIGNvbnN0IFN0cmluZyYgdmlkZW9EZXZpY2VJRCwgY29uc3QgTWVkaWFDb25zdHJhaW50
cyogYXVkaW9Db25zdHJhaW50cywgY29uc3QgTWVkaWFDb25zdHJhaW50cyogdmlkZW9Db25zdHJh
aW50cykgZmluYWw7CiAKLSAgICBSZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJlRmFjdG9yeSog
ZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZpbmFsOwotICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OkNh
cHR1cmVGYWN0b3J5KiBkZWZhdWx0VmlkZW9GYWN0b3J5KCkgZmluYWw7CisgICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSogZGVmYXVsdEF1ZGlvRmFjdG9yeSgpIGZp
bmFsOworICAgIFJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkqIGRlZmF1
bHRWaWRlb0ZhY3RvcnkoKSBmaW5hbDsKIAogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldERldmlj
ZUVuYWJsZWQoY29uc3QgU3RyaW5nJiBwZXJzaXN0ZW50SUQsIGJvb2wpIGZpbmFsOwogfTsKQEAg
LTU0LDUgKzUzLDMgQEAgcHJpdmF0ZToKIH0KIAogI2VuZGlmIC8vIE1vY2tSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyX2gKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCmluZGV4IDZhNjA3NGE1MzQw
ZThlNjY4ODczOTFkY2RiYjM1Mjk3NDhkMGZhY2YuLmJkMjg3NDYwNjUwOTE5MjRmNTJmYWM1ZTYw
NzE1NTNiMDE3Y2U2NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL21vY2sv
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuY3BwCkBAIC00OCwyOSArNDgsMjUgQEAKIAog
bmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZUZhY3Rv
cnkgOiBwdWJsaWMgUmVhbHRpbWVNZWRpYVNvdXJjZTo6Q2FwdHVyZUZhY3RvcnkgeworY2xhc3Mg
TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2VGYWN0b3J5IDogcHVibGljIFJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlZpZGVvQ2FwdHVyZUZhY3RvcnkgewogcHVibGljOgotICAgIFJlZlB0cjxSZWFsdGltZU1l
ZGlhU291cmNlPiBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHMoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgQ2FwdHVyZURldmljZTo6RGV2aWNlVHlwZSB0eXBl
LCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cywgU3RyaW5nJikgZmluYWwgewot
ICAgICAgICBpZiAodHlwZSAhPSBDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlOjpWaWRlbykKLSAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotCisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3IgY3Jl
YXRlVmlkZW9DYXB0dXJlU291cmNlKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIGNvbnN0IE1lZGlh
Q29uc3RyYWludHMqIGNvbnN0cmFpbnRzKSBmaW5hbCB7CiAgICAgICAgIGZvciAoYXV0byYgZGV2
aWNlIDogTW9ja1JlYWx0aW1lTWVkaWFTb3VyY2U6OnZpZGVvRGV2aWNlcygpKSB7CiAgICAgICAg
ICAgICBpZiAoZGV2aWNlLnBlcnNpc3RlbnRJZCgpID09IGRldmljZUlEKQogICAgICAgICAgICAg
ICAgIHJldHVybiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlKGRldmljZS5sYWJlbCgp
LCBjb25zdHJhaW50cyk7CiAgICAgICAgIH0KLQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAg
ICAgICAgcmV0dXJuIHsgfTsKICAgICB9CiB9OwogCiAjaWYgIVBMQVRGT1JNKE1BQykgJiYgIVBM
QVRGT1JNKElPUykKLVJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1l
VmlkZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3Ry
YWludHMqIGNvbnN0cmFpbnRzKQorQ2FwdHVyZVNvdXJjZU9yRXJyb3IgTW9ja1JlYWx0aW1lVmlk
ZW9Tb3VyY2U6OmNyZWF0ZShjb25zdCBTdHJpbmcmIG5hbWUsIGNvbnN0IE1lZGlhQ29uc3RyYWlu
dHMqIGNvbnN0cmFpbnRzKQogewotICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYobmV3IE1vY2tS
ZWFsdGltZVZpZGVvU291cmNlKG5hbWUpKTsKKyAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKCpu
ZXcgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UobmFtZSkpOwogICAgIGlmIChjb25zdHJhaW50cyAm
JiBzb3VyY2UtPmFwcGx5Q29uc3RyYWludHMoKmNvbnN0cmFpbnRzKSkKLSAgICAgICAgc291cmNl
ID0gbnVsbHB0cjsKKyAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIHJldHVybiBzb3VyY2U7Cisg
ICAgcmV0dXJuIENhcHR1cmVTb3VyY2VPckVycm9yKFdURk1vdmUoc291cmNlKSk7CiB9CiAKIFJl
ZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmNy
ZWF0ZU11dGVkKGNvbnN0IFN0cmluZyYgbmFtZSkKQEAgLTgxLDcgKzc3LDcgQEAgUmVmUHRyPE1v
Y2tSZWFsdGltZVZpZGVvU291cmNlPiBNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZTo6Y3JlYXRlTXV0
ZWQoY29uc3QgU3RyaW4KIH0KICNlbmRpZgogCi1SZWFsdGltZU1lZGlhU291cmNlOjpDYXB0dXJl
RmFjdG9yeSYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZhY3RvcnkoKQorUmVhbHRpbWVNZWRp
YVNvdXJjZTo6VmlkZW9DYXB0dXJlRmFjdG9yeSYgTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U6OmZh
Y3RvcnkoKQogewogICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxNb2NrUmVhbHRpbWVWaWRlb1Nv
dXJjZUZhY3Rvcnk+IGZhY3Rvcnk7CiAgICAgcmV0dXJuIGZhY3RvcnkuZ2V0KCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9tb2NrL01vY2tSZWFsdGltZVZpZGVvU291cmNl
LmgKaW5kZXggZDc5OTg1ZTcxYWMyZGUyMDQ4Y2Y2Y2EzYmI5YmNkZDdiNGUwOTMwNC4uYWE2MGVj
N2U1ZjM4MzFjZjBjMjdmZDhmMTA3MTEzYjAwMmQyOTYwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vbW9jay9Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL21vY2svTW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2UuaApAQCAtNDYs
MTAgKzQ2LDEwIEBAIGNsYXNzIEdyYXBoaWNzQ29udGV4dDsKIGNsYXNzIE1vY2tSZWFsdGltZVZp
ZGVvU291cmNlIDogcHVibGljIE1vY2tSZWFsdGltZU1lZGlhU291cmNlIHsKIHB1YmxpYzoKIAot
ICAgIHN0YXRpYyBSZWZQdHI8TW9ja1JlYWx0aW1lVmlkZW9Tb3VyY2U+IGNyZWF0ZShjb25zdCBT
dHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7CisgICAgc3RhdGljIENhcHR1cmVTb3Vy
Y2VPckVycm9yIGNyZWF0ZShjb25zdCBTdHJpbmcmLCBjb25zdCBNZWRpYUNvbnN0cmFpbnRzKik7
CiAgICAgc3RhdGljIFJlZlB0cjxNb2NrUmVhbHRpbWVWaWRlb1NvdXJjZT4gY3JlYXRlTXV0ZWQo
Y29uc3QgU3RyaW5nJiBuYW1lKTsKIAotICAgIHN0YXRpYyBDYXB0dXJlRmFjdG9yeSYgZmFjdG9y
eSgpOworICAgIHN0YXRpYyBWaWRlb0NhcHR1cmVGYWN0b3J5JiBmYWN0b3J5KCk7CiAKICAgICB2
aXJ0dWFsIH5Nb2NrUmVhbHRpbWVWaWRlb1NvdXJjZSgpIHsgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmggYi9Tb3VyY2UvV2ViS2l0
Mi9TaGFyZWQvV2ViQ29yZUFyZ3VtZW50Q29kZXJzLmgKaW5kZXggNzgyNDIwZGZlODhjZmQwZTk0
Y2NlZDU1NDIyOGNkMjE5NTExNDBhMC4uOGVjNjFkMzlmNDAyZDAyZTdmNzI4NmFlOGUxZWRmNDEw
YWVjZTdiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYkNvcmVBcmd1bWVu
dENvZGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJDb3JlQXJndW1lbnRDb2Rl
cnMuaApAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvTWVkaWFTZWxlY3Rpb25P
cHRpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL05ldHdvcmtMb2FkTWV0cmljcy5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvUGF5bWVudEhlYWRlcnMuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1JlYWx0aW1l
TWVkaWFTb3VyY2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5o
PgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTcyOSw2ICs3MzAsMTQgQEAgdGVtcGxhdGU8PiBzdHJ1
Y3QgRW51bVRyYWl0czxXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBlPiB7CiAgICAg
ICAgIFdlYkNvcmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGU6OlZpZGVvCiAgICAgPjsKIH07
Cit0ZW1wbGF0ZTw+IHN0cnVjdCBFbnVtVHJhaXRzPFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU+IHsKKyAgICB1c2luZyB2YWx1ZXMgPSBFbnVtVmFsdWVzPAorICAgIFdlYkNvcmU6
OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGUsCisgICAgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6Tm9uZSwKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBl
OjpBdWRpbywKKyAgICBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpWaWRlbwor
ICAgID47Cit9OwogI2VuZGlmCiAKIHRlbXBsYXRlPD4gc3RydWN0IEVudW1UcmFpdHM8V2ViQ29y
ZTo6TWVkaWFTZWxlY3Rpb25PcHRpb246OlR5cGU+IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5
LmNwcAppbmRleCA4MzhhZWYxMzU4OGE2Nzc2N2YwODA4MjAzNDU1YmI1YzUxY2U5MDRkLi45YzNk
ZTc3ZTI1ZmNlOGYwNjUyOWQyYjYwNGU1MTViNzYzZTI4YjUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5h
Z2VyUHJveHkuY3BwCkBAIC0xMjUsMTQgKzEyNSwyNyBAQCBVc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Ojp+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSgpCiAgICAgbV9wcm9jZXNzLnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94
eTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpKTsKIH0KIAotdm9pZCBVc2VyTWVkaWFDYXB0dXJlTWFu
YWdlclByb3h5OjpjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWlu
dHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVE
ZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50c0RhdGEmIGNvbnN0
cmFpbnRzRGF0YSwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cykK
K3ZvaWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBjb25zdCBTdHJpbmcmIGRl
dmljZUlELCBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIGNvbnN0IE1l
ZGlhQ29uc3RyYWludHNEYXRhJiBjb25zdHJhaW50c0RhdGEsIGJvb2wmIHN1Y2NlZWRlZCwgU3Ry
aW5nJiBpbnZhbGlkQ29uc3RyYWludHMpCiB7CisgICAgQ2FwdHVyZVNvdXJjZU9yRXJyb3Igc291
cmNlT3JFcnJvcjsKICAgICBhdXRvIGNvbnN0cmFpbnRzID0gTWVkaWFDb25zdHJhaW50c0ltcGw6
OmNyZWF0ZShNZWRpYUNvbnN0cmFpbnRzRGF0YShjb25zdHJhaW50c0RhdGEpKTsKLSAgICBhdXRv
IHNvdXJjZSA9IFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRvbigpLmF1ZGlvRmFj
dG9yeSgpLT5jcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
ZGV2aWNlSUQsIHR5cGUsIGNvbnN0cmFpbnRzLnB0cigpLCBpbnZhbGlkQ29uc3RyYWludHMpOwot
ICAgIHN1Y2NlZWRlZCA9ICEhc291cmNlOworICAgIHN3aXRjaCAodHlwZSkgeworICAgIGNhc2Ug
V2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW86CisgICAgICAgIHNvdXJj
ZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlhU291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS5hdWRpb0Zh
Y3RvcnkoKS0+Y3JlYXRlQXVkaW9DYXB0dXJlU291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5w
dHIoKSk7CisgICAgICAgIGJyZWFrOworICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZTo6VmlkZW86CisgICAgICAgIHNvdXJjZU9yRXJyb3IgPSBSZWFsdGltZU1lZGlh
U291cmNlQ2VudGVyOjpzaW5nbGV0b24oKS52aWRlb0ZhY3RvcnkoKS0+Y3JlYXRlVmlkZW9DYXB0
dXJlU291cmNlKGRldmljZUlELCBjb25zdHJhaW50cy5wdHIoKSk7CisgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6Tm9uZToKKyAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIGJyZWFrOworICAgIH0KIAotICAgIGlm
IChzb3VyY2UpCi0gICAgICAgIG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291
cmNlUHJveHk+KGlkLCAqdGhpcywgc291cmNlLnJlbGVhc2VOb25OdWxsKCkpKTsKKyAgICBzdWNj
ZWVkZWQgPSAhIXNvdXJjZU9yRXJyb3I7CisgICAgaWYgKHNvdXJjZU9yRXJyb3IpCisgICAgICAg
IG1fcHJveGllcy5zZXQoaWQsIHN0ZDo6bWFrZV91bmlxdWU8U291cmNlUHJveHk+KGlkLCAqdGhp
cywgc291cmNlT3JFcnJvci5zb3VyY2UoKSkpOworICAgIGVsc2UKKyAgICAgICAgaW52YWxpZENv
bnN0cmFpbnRzID0gV1RGTW92ZShzb3VyY2VPckVycm9yLmVycm9yTWVzc2FnZSk7CiB9CiAKIHZv
aWQgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6c3RhcnRQcm9kdWNpbmdEYXRhKHVpbnQ2
NF90IGlkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2Nv
YS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5LmgKaW5kZXggMGU2MzUxODJlMjQzY2M3N2Mz
NDhlMDc2NmVkM2VjNWFhZGQwZjE4Mi4uNDEzOWRiMjRkNDc1MjA5ZWMzZTdjZDNjYmY3YmQ4MzRh
Mjc4Y2JjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0NvY29hL1VzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
Q29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5oCkBAIC00OSw3ICs0OSw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6
OkRlY29kZXImKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVTeW5jTWVzc2FnZShJUEM6OkNv
bm5lY3Rpb24mLCBJUEM6OkRlY29kZXImLCBzdGQ6OnVuaXF1ZV9wdHI8SVBDOjpFbmNvZGVyPiYp
IGZpbmFsOwogCi0gICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRo
Q29uc3RyYWludHModWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6
OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWlu
dHNEYXRhJiwgYm9vbCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7Cisg
ICAgdm9pZCBjcmVhdGVNZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMo
dWludDY0X3QgaWQsIGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OlJlYWx0aW1lTWVk
aWFTb3VyY2U6OlR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHNEYXRhJiwgYm9v
bCYgc3VjY2VlZGVkLCBTdHJpbmcmIGludmFsaWRDb25zdHJhaW50cyk7CiAgICAgdm9pZCBzdGFy
dFByb2R1Y2luZ0RhdGEodWludDY0X3QpOwogICAgIHZvaWQgc3RvcFByb2R1Y2luZ0RhdGEodWlu
dDY0X3QpOwogICAgIHZvaWQgY2FwYWJpbGl0aWVzKHVpbnQ2NF90LCBXZWJDb3JlOjpSZWFsdGlt
ZU1lZGlhU291cmNlQ2FwYWJpbGl0aWVzJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQ29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluCmluZGV4IDUyN2RmYTY2YTg0NmY0N2ZkMDgwZDU3ZTcxODMzNzEyMmQ4
MWM4MDguLjFmYzA5M2U1YjMwOTZmNTEwZGRlOGZmNGFjZTY0ZmQxNDAxM2I3YWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Db2NvYS9V
c2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yMiw3ICsyMiw3IEBA
CiAjIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KIAogbWVzc2FnZXMgLT4gVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXJQcm94eSB7Ci0gICAgQ3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKHVpbnQ2NF90IGlkLCBTdHJpbmcgZGV2aWNlSUQsIFdlYkNv
cmU6OkNhcHR1cmVEZXZpY2U6OkRldmljZVR5cGUgdHlwZSwgc3RydWN0IFdlYkNvcmU6Ok1lZGlh
Q29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzKSAtPiAoYm9vbCBzdWNjZXNzLCBTdHJpbmcgaW52
YWxpZENvbnN0cmFpbnRzKQorICAgIENyZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdp
dGhDb25zdHJhaW50cyh1aW50NjRfdCBpZCwgU3RyaW5nIGRldmljZUlELCBXZWJDb3JlOjpSZWFs
dGltZU1lZGlhU291cmNlOjpUeXBlIHR5cGUsIHN0cnVjdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFp
bnRzRGF0YSBjb25zdHJhaW50cykgLT4gKGJvb2wgc3VjY2VzcywgU3RyaW5nIGludmFsaWRDb25z
dHJhaW50cykKICAgICBTdGFydFByb2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgU3RvcFBy
b2R1Y2luZ0RhdGEodWludDY0X3QgaWQpCiAgICAgQ2FwYWJpbGl0aWVzKHVpbnQ2NF90IGlkKSAt
PiAoV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZUNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dl
YkJhY2tGb3J3YXJkTGlzdFByb3h5LmNwcAppbmRleCBmMmU4ZWNkNjAxOWMwZDA0YzRhNTQxNTQz
ZGU2YjU2MmQyNTdhYjFlLi43OGYzMWNhYzQ2YTQ2NTc5MjAzODdjMmJiYzAyYjIwMTQzMTkwNmEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViQmFja0Zv
cndhcmRMaXN0UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJCYWNrRm9yd2FyZExpc3RQcm94eS5jcHAKQEAgLTk4LDcgKzk4LDcgQEAgdm9pZCBXZWJC
YWNrRm9yd2FyZExpc3RQcm94eTo6YWRkSXRlbUZyb21VSVByb2Nlc3ModWludDY0X3QgaXRlbUlE
LCBSZWY8SGlzdG9yeUkKIHsKICAgICAvLyBUaGlzIGl0ZW0vaXRlbUlEIHBhaXIgc2hvdWxkIG5v
dCBhbHJlYWR5IGV4aXN0IGluIG91ciBtYXBzLgogICAgIEFTU0VSVCghaGlzdG9yeUl0ZW1Ub0lE
TWFwKCkuY29udGFpbnMoaXRlbS5wdHIoKSkpOwotICAgIEFTU0VSVCghaWRUb0hpc3RvcnlJdGVt
TWFwKCkuY29udGFpbnMoaXRlbUlEKSk7CisvLyAgICBBU1NFUlQoIWlkVG9IaXN0b3J5SXRlbU1h
cCgpLmNvbnRhaW5zKGl0ZW1JRCkpOwogCiAgICAgaGlzdG9yeUl0ZW1Ub0lETWFwKCkuc2V0PEl0
ZW1BbmRQYWdlSUQ+KGl0ZW0ucHRyKCksIHsgLml0ZW1JRCA9IGl0ZW1JRCwgLnBhZ2VJRCA9IHBh
Z2VJRCB9KTsKICAgICBpZFRvSGlzdG9yeUl0ZW1NYXAoKS5zZXQoaXRlbUlELCBpdGVtLnB0cigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlh
Q2FwdHVyZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKaW5kZXggYjMxYWExOGUxYjY4MjkxNDk3NTc5ODgxMzhj
NmQyZjBmZTZiNDRkYy4uNGQ0ZjAyNjJmZDliMTE4M2I4MDQzOTA5NGU1ZjMxNGNmMDZlNTQ1YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0
dXJlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlci5jcHAKQEAgLTE4MiwxMCArMTgyLDEwIEBAIHZvaWQgVXNlck1l
ZGlhQ2FwdHVyZU1hbmFnZXI6OmluaXRpYWxpemUoY29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFy
YW1ldGVycyYgcGFyCiAgICAgICAgIFJlYWx0aW1lTWVkaWFTb3VyY2VDZW50ZXI6OnNpbmdsZXRv
bigpLnNldEF1ZGlvRmFjdG9yeSgqdGhpcyk7CiB9CiAKLVJlZlB0cjxSZWFsdGltZU1lZGlhU291
cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJl
RGV2aWNlV2l0aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIENhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUgdHlwZSwgY29uc3QgTWVkaWFDb25zdHJhaW50cyogY29uc3RyYWludHMs
IFN0cmluZyYgaW52YWxpZENvbnN0cmFpbnRzKQorV2ViQ29yZTo6Q2FwdHVyZVNvdXJjZU9yRXJy
b3IgVXNlck1lZGlhQ2FwdHVyZU1hbmFnZXI6OmNyZWF0ZUNhcHR1cmVTb3VyY2UoY29uc3QgU3Ry
aW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VU
eXBlLCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRzKiBjb25zdHJhaW50cykKIHsKICAg
ICBpZiAoIWNvbnN0cmFpbnRzKQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICAgICAgcmV0
dXJuIHsgfTsKIAogICAgIHVpbnQ2NF90IGlkID0gbmV4dFNlc3Npb25JRCgpOwogICAgIE1lZGlh
Q29uc3RyYWludHNEYXRhIGNvbnN0cmFpbnRzRGF0YTsKQEAgLTE5NCwyNCArMTk0LDEzIEBAIFJl
ZlB0cjxSZWFsdGltZU1lZGlhU291cmNlPiBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlcjo6Y3JlYXRl
TWVkaWFTb3VyY2VGb3JDYXB0dXJlCiAgICAgY29uc3RyYWludHNEYXRhLmlzVmFsaWQgPSBjb25z
dHJhaW50cy0+aXNWYWxpZCgpOwogICAgIGJvb2wgc3VjY2VlZGVkOwogCi0gICAgbV9wcm9jZXNz
LnNlbmRTeW5jKE1lc3NhZ2VzOjpVc2VyTWVkaWFDYXB0dXJlTWFuYWdlclByb3h5OjpDcmVhdGVN
ZWRpYVNvdXJjZUZvckNhcHR1cmVEZXZpY2VXaXRoQ29uc3RyYWludHMoaWQsIGRldmljZUlELCB0
eXBlLCBjb25zdHJhaW50c0RhdGEpLCBNZXNzYWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQ
cm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzOjpS
ZXBseShzdWNjZWVkZWQsIGludmFsaWRDb25zdHJhaW50cyksIDApOwotCi0gICAgUmVhbHRpbWVN
ZWRpYVNvdXJjZTo6VHlwZSBzb3VyY2VUeXBlOwotICAgIHN3aXRjaCAodHlwZSkgewotICAgIGNh
c2UgV2ViQ29yZTo6Q2FwdHVyZURldmljZTo6RGV2aWNlVHlwZTo6QXVkaW86Ci0gICAgICAgIHNv
dXJjZVR5cGUgPSBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlOjpUeXBlOjpBdWRpbzsKLSAg
ICAgICAgYnJlYWs7Ci0gICAgY2FzZSBXZWJDb3JlOjpDYXB0dXJlRGV2aWNlOjpEZXZpY2VUeXBl
OjpWaWRlbzoKLSAgICAgICAgc291cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3Vy
Y2U6OlR5cGU6OlZpZGVvOwotICAgICAgICBicmVhazsKLSAgICBjYXNlIFdlYkNvcmU6OkNhcHR1
cmVEZXZpY2U6OkRldmljZVR5cGU6OlVua25vd246Ci0gICAgZGVmYXVsdDoKLSAgICAgICAgc291
cmNlVHlwZSA9IFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlR5cGU6Ok5vbmU7Ci0gICAg
ICAgIGJyZWFrOwotICAgIH0KLSAgICBhdXRvIHNvdXJjZSA9IGFkb3B0UmVmKG5ldyBTb3VyY2Uo
U3RyaW5nOjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMp
KTsKLSAgICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UpOwotICAgIHJldHVybiBzb3VyY2U7Cisg
ICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKKyAgICBpZiAoIW1fcHJvY2Vzcy5zZW5kU3luYyhNZXNz
YWdlczo6VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXJQcm94eTo6Q3JlYXRlTWVkaWFTb3VyY2VGb3JD
YXB0dXJlRGV2aWNlV2l0aENvbnN0cmFpbnRzKGlkLCBkZXZpY2VJRCwgc291cmNlVHlwZSwgY29u
c3RyYWludHNEYXRhKSwgTWVzc2FnZXM6OlVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyUHJveHk6OkNy
ZWF0ZU1lZGlhU291cmNlRm9yQ2FwdHVyZURldmljZVdpdGhDb25zdHJhaW50czo6UmVwbHkoc3Vj
Y2VlZGVkLCBlcnJvck1lc3NhZ2UpLCAwKSkKKyAgICAgICAgcmV0dXJuIFdURk1vdmUoZXJyb3JN
ZXNzYWdlKTsKKworICAgIGF1dG8gc291cmNlID0gYWRvcHRSZWYoKm5ldyBTb3VyY2UoU3RyaW5n
OjpudW1iZXIoaWQpLCBzb3VyY2VUeXBlLCBlbXB0eVN0cmluZygpLCBpZCwgKnRoaXMpKTsKKyAg
ICBtX3NvdXJjZXMuc2V0KGlkLCBzb3VyY2UuY29weVJlZigpKTsKKyAgICByZXR1cm4gV2ViQ29y
ZTo6Q2FwdHVyZVNvdXJjZU9yRXJyb3IoV1RGTW92ZShzb3VyY2UpKTsKIH0KIAogdm9pZCBVc2Vy
TWVkaWFDYXB0dXJlTWFuYWdlcjo6c291cmNlU3RvcHBlZCh1aW50NjRfdCBpZCkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvY29jb2EvVXNlck1lZGlhQ2FwdHVyZU1h
bmFnZXIuaAppbmRleCA0NDZkYTk5MWNhNmM4OGM4NjBmYTcxOTQ1YWQ4ZDZmOWUyZTRkNjdmLi5h
OGE5M2FiZGVlNWU4ZWRjNmQwMjE5OGI1MTA2OTQ5YzVlNDg5YjY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9XZWJQcm9jZXNzL2NvY29hL1VzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9jb2NvYS9Vc2VyTWVkaWFDYXB0dXJlTWFuYWdl
ci5oCkBAIC00Miw3ICs0Miw3IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogY2xhc3MgQ3Jvc3NQcm9j
ZXNzUmVhbHRpbWVBdWRpb1NvdXJjZTsKIGNsYXNzIFdlYlByb2Nlc3M7CiAKLWNsYXNzIFVzZXJN
ZWRpYUNhcHR1cmVNYW5hZ2VyIDogcHVibGljIFdlYlByb2Nlc3NTdXBwbGVtZW50LCBwdWJsaWMg
SVBDOjpNZXNzYWdlUmVjZWl2ZXIsIHB1YmxpYyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNl
OjpDYXB0dXJlRmFjdG9yeSB7CitjbGFzcyBVc2VyTWVkaWFDYXB0dXJlTWFuYWdlciA6IHB1Ymxp
YyBXZWJQcm9jZXNzU3VwcGxlbWVudCwgcHVibGljIElQQzo6TWVzc2FnZVJlY2VpdmVyLCBwdWJs
aWMgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6QXVkaW9DYXB0dXJlRmFjdG9yeSwgcHVi
bGljIFdlYkNvcmU6OlJlYWx0aW1lTWVkaWFTb3VyY2U6OlZpZGVvQ2FwdHVyZUZhY3Rvcnkgewog
cHVibGljOgogICAgIGV4cGxpY2l0IFVzZXJNZWRpYUNhcHR1cmVNYW5hZ2VyKFdlYlByb2Nlc3Mq
KTsKICAgICB+VXNlck1lZGlhQ2FwdHVyZU1hbmFnZXIoKTsKQEAgLTUzLDggKzUzLDEwIEBAIHBy
aXZhdGU6CiAgICAgLy8gV2ViUHJvY2Vzc1N1cHBsZW1lbnQKICAgICB2b2lkIGluaXRpYWxpemUo
Y29uc3QgV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYpIGZpbmFsOwogCi0gICAgLy8gV2Vi
Q29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6RmFjdG9yeToKLSAgICBSZWZQdHI8V2ViQ29yZTo6
UmVhbHRpbWVNZWRpYVNvdXJjZT4gY3JlYXRlTWVkaWFTb3VyY2VGb3JDYXB0dXJlRGV2aWNlV2l0
aENvbnN0cmFpbnRzKGNvbnN0IFN0cmluZyYgZGV2aWNlSUQsIFdlYkNvcmU6OkNhcHR1cmVEZXZp
Y2U6OkRldmljZVR5cGUsIGNvbnN0IFdlYkNvcmU6Ok1lZGlhQ29uc3RyYWludHMqLCBTdHJpbmcm
KSBmaW5hbDsKKyAgICAvLyBXZWJDb3JlOjpSZWFsdGltZU1lZGlhU291cmNlIGZhY3Rvcmllcwor
ICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUF1ZGlvQ2FwdHVyZVNvdXJj
ZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0cmFpbnRz
KiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShkZXZpY2VJ
RCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6QXVkaW8sIGNvbnN0cmFpbnRz
KTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZVZpZGVvQ2FwdHVy
ZVNvdXJjZShjb25zdCBTdHJpbmcmIGRldmljZUlELCBjb25zdCBXZWJDb3JlOjpNZWRpYUNvbnN0
cmFpbnRzKiBjb25zdHJhaW50cykgZmluYWwgeyByZXR1cm4gY3JlYXRlQ2FwdHVyZVNvdXJjZShk
ZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNvdXJjZTo6VHlwZTo6VmlkZW8sIGNvbnN0
cmFpbnRzKTsgfQorICAgIFdlYkNvcmU6OkNhcHR1cmVTb3VyY2VPckVycm9yIGNyZWF0ZUNhcHR1
cmVTb3VyY2UoY29uc3QgU3RyaW5nJiBkZXZpY2VJRCwgV2ViQ29yZTo6UmVhbHRpbWVNZWRpYVNv
dXJjZTo6VHlwZSwgY29uc3QgV2ViQ29yZTo6TWVkaWFDb25zdHJhaW50cyopOwogCiAgICAgLy8g
SVBDOjpNZXNzYWdlUmVjZWl2ZXIKICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKElQQzo6Q29u
bmVjdGlvbiYsIElQQzo6RGVjb2RlciYpIGZpbmFsOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>