<?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>209859</bug_id>
          
          <creation_ts>2020-04-01 08:21:25 -0700</creation_ts>
          <short_desc>[WebXR] Test IDLs and stubs</short_desc>
          <delta_ts>2020-08-18 20:42:26 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/23031</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=215637</see_also>
          <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>
          <dependson>210738</dependson>
    
    <dependson>210788</dependson>
          <blocked>208988</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Sergio Villar Senin">svillar</assigned_to>
          <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1636499</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-01 08:21:25 -0700</bug_when>
    <thetext>[WebXR] Test IDLs and stubs</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1636545</commentid>
    <comment_count>1</comment_count>
      <attachid>395179</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-01 09:54:32 -0700</bug_when>
    <thetext>Created attachment 395179
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637275</commentid>
    <comment_count>2</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-03 01:34:41 -0700</bug_when>
    <thetext>Ping reviewers</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1637283</commentid>
    <comment_count>3</comment_count>
      <attachid>395179</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-03 01:56:04 -0700</bug_when>
    <thetext>Comment on attachment 395179
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        navigator.xr.test.

Is navigator.xr.test something we want to expose to the web? Should we add a dedicated flag for this fake test API?
Another approach would be to use WebDriver: When WebDriver is enabled, we use fake devices, accessed using the regular navigator.xr API.
This would allow using real XR APIs fuelled by fake devices.

If the goal is passing WPT tests as part of WTR, another option is to move these to WebCoreTestSupport.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1638189</commentid>
    <comment_count>4</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-06 11:14:37 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #3)
&gt; Comment on attachment 395179 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395179&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        navigator.xr.test.
&gt; 
&gt; Is navigator.xr.test something we want to expose to the web? Should we add a
&gt; dedicated flag for this fake test API?
&gt; Another approach would be to use WebDriver: When WebDriver is enabled, we
&gt; use fake devices, accessed using the regular navigator.xr API.
&gt; This would allow using real XR APIs fuelled by fake devices.

That&apos;s a good point. Actually xr.test should not be exposed to the web at all, it&apos;s just there for testing. The thing about using WebDriver is that all the WPT tests are using this testing API, so we wouldn&apos;t be able to use them. It isn&apos;t indeed mandatory, but as they&apos;re already there I think we should use them, wouln&apos;t we?

It seems a good idea anyway to try that at some point. I&apos;ll eventually ask you more details about those fake devices when using WebDriver.

&gt; If the goal is passing WPT tests as part of WTR, another option is to move
&gt; these to WebCoreTestSupport.

OK, I&apos;ll check that path.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639393</commentid>
    <comment_count>5</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-08 17:39:23 -0700</bug_when>
    <thetext>Youenn, I&apos;ve tried moving the new testing interfaces to WebCore/testing. I moved them all but WebXRSystemWebXRTest.idl which is the one adding a partial interface to WebXRSystem. That&apos;s why I think that cannot be moved, at least I was not able to do that.

In any case I think we still have to use a dedicated flag for that testing API, otherwise I see no way not to expose it at runtime when WebXR is enabled. BTW is is possible to add multiple flags in &quot;EnabledAtRuntime&quot;? I know in &quot;Conditional&quot; it&apos;s possible but haven&apos;t seen the same for EnabledAtRuntime. Another possibility could be to have dependencies between flags but not sure that is supported. Something like WebXREnabled -&gt; WebXREnabledTestAPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639655</commentid>
    <comment_count>6</comment_count>
      <attachid>395954</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-09 08:25:51 -0700</bug_when>
    <thetext>Created attachment 395954
Patch

Moved most of the API to WebCore/testing. I also added a new runtime flag in order not to expose the WebXR testing API at will even if WebXR is enabled</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641361</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-14 07:26:43 -0700</bug_when>
    <thetext>I am unsure of the goal of this .test accessor.

If the goal is to run WTR on WPT imported tests, I think we could have an internals.xrTest getter and we could set xr.test = internals.xrTest in testharnessreport.js for instance, or use WPT platform-specific files to populate xr.test.

If the goal is to actually run WPT tests in Safari, then I guess it might be fine to add such a property behind its own flag but I am not sure this is worth it.
Are other browsers on board with this approach? Are they/Do they plan shipping xr.test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641494</commentid>
    <comment_count>8</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-14 12:22:20 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #7)
&gt; I am unsure of the goal of this .test accessor.
&gt; 
&gt; If the goal is to run WTR on WPT imported tests, I think we could have an
&gt; internals.xrTest getter and we could set xr.test = internals.xrTest in
&gt; testharnessreport.js for instance, or use WPT platform-specific files to
&gt; populate xr.test.
&gt; 
&gt; If the goal is to actually run WPT tests in Safari, then I guess it might be
&gt; fine to add such a property behind its own flag but I am not sure this is
&gt; worth it.
&gt; Are other browsers on board with this approach? Are they/Do they plan
&gt; shipping xr.test?

Currently there are two implementations, Chrome&apos;s and Servo&apos;s. In the case of Chrome they use platform specific files in WPT to populate xr.test and then use mojo interfaces to talk to the xr services.

In the case of Servo they implement the test API IDLs as any other web standard similar to what I&apos;ve done here.

WRT the goal, from the WebXR development POV it should be enough to be able to run WTR on WPT imported tests, after all what I want those tests for is to ensure that I&apos;m implementing the API correctly and that I don&apos;t regress. However I think it&apos;s good PR for WebKit browsers (like Safari) to have good figures in wpt.fyi. That said I&apos;m fine with any solution, I&apos;d like to land any of the two soon, so that it does not block further developments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641641</commentid>
    <comment_count>9</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-04-14 18:45:16 -0700</bug_when>
    <thetext>Seems weird that they (FF) expose xr.test to the Web!

How about for now we go with Youenn&apos;s suggestion to put it in Internals and map navigator.xr.test = internals.xrtest in the global script? Is that ok with you?

Then we can decide whether or not to expose it publicly in Safari and other WebKit browsers. It would be kind of easy to put it behind a flag for Safari.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641642</commentid>
    <comment_count>10</comment_count>
      <attachid>395954</attachid>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-04-14 18:47:26 -0700</bug_when>
    <thetext>Comment on attachment 395954
Patch

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

&gt; Source/WebCore/CMakeLists.txt:162
&gt; +    &quot;${WEBCORE_DIR}/testing&quot;

I don&apos;t have a strong opinion, but i wonder if this should be under Modules/webxr/testing ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641643</commentid>
    <comment_count>11</comment_count>
    <who name="Dean Jackson">dino</who>
    <bug_when>2020-04-14 18:49:15 -0700</bug_when>
    <thetext>Hopefully Youenn will give a thumbs up in Europe time. But it looks ok to me!

Since you have a Runtime flag, adding an &quot;internal&quot; webkit feature to expose xr.test publicly is easy. I&apos;d still start with checking that we can do it via Internals first (even though that would require modifying our WPT wrapper).

Thanks Sergio!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641732</commentid>
    <comment_count>12</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-15 03:02:43 -0700</bug_when>
    <thetext>(In reply to Dean Jackson from comment #9)
&gt; Seems weird that they (FF) expose xr.test to the Web!

Note that I don&apos;t have enough knowledge about Servo to know whether they finally expose that API to the web. I guess they most likely have a similar mechanism to our runtime flags to do that.

&gt; How about for now we go with Youenn&apos;s suggestion to put it in Internals and
&gt; map navigator.xr.test = internals.xrtest in the global script? Is that ok
&gt; with you?

OK I can try that.
 
&gt; Then we can decide whether or not to expose it publicly in Safari and other
&gt; WebKit browsers. It would be kind of easy to put it behind a flag for Safari.

Fair enough let&apos;s do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641735</commentid>
    <comment_count>13</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-15 03:37:24 -0700</bug_when>
    <thetext>LGTM too with that approach.

Elsewhere in the code, we use mock instead of fake, see Source/WebCore/platform/mock/ and Source/WebCore/platform/testing for instance.

If this is not raised already, we might want to file an issue to the XR WG to propose an approach similar to fake camera/microphone and getUserMedia.
Sergio, let me know if you want to do it.

For getUserMedia, Safari (and Chrome through command line option) is using a mock camera instead of the real one based on a global switch (WebDriver, Developer menu, preference). From the point of view of the test, navigator.mediaDevices.getUserMedia remains the same.
To control what cameras/microphones can do, the idea is to add some WebDriver APIs (add camera, remove camera...), that would probably be similar to what the XR test spec is defining.

WTR could provide the same set of controls through testRunner or internals.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641744</commentid>
    <comment_count>14</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-15 05:33:07 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #13)
&gt; LGTM too with that approach.
&gt; 
&gt; Elsewhere in the code, we use mock instead of fake, see
&gt; Source/WebCore/platform/mock/ and Source/WebCore/platform/testing for
&gt; instance.
&gt; 
&gt; If this is not raised already, we might want to file an issue to the XR WG
&gt; to propose an approach similar to fake camera/microphone and getUserMedia.
&gt; Sergio, let me know if you want to do it.

Not sure what you want to propose to the WG. Is it just about naming (Fake-&gt;Mock) or are you talking about completely change the approach and use WebDriver APIs to do testing?

If it&apos;s just about naming then it might be doable (bikeshedding risks as usual but shrug) but if we&apos;re talking about completely changing the approach I don&apos;t think it&apos;s very practical because there are already 2 working implementations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641746</commentid>
    <comment_count>15</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-15 05:38:30 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #14)
&gt; (In reply to youenn fablet from comment #13)
&gt; &gt; LGTM too with that approach.
&gt; &gt; 
&gt; &gt; Elsewhere in the code, we use mock instead of fake, see
&gt; &gt; Source/WebCore/platform/mock/ and Source/WebCore/platform/testing for
&gt; &gt; instance.
&gt; &gt; 
&gt; &gt; If this is not raised already, we might want to file an issue to the XR WG
&gt; &gt; to propose an approach similar to fake camera/microphone and getUserMedia.
&gt; &gt; Sergio, let me know if you want to do it.
&gt; 
&gt; Not sure what you want to propose to the WG. Is it just about naming
&gt; (Fake-&gt;Mock) or are you talking about completely change the approach and use
&gt; WebDriver APIs to do testing?

I am talking about something like a WebDriver API.
If that has been considered, I would be interested to know why this was not deemed appropriate.

About Fake -&gt; Mock, given the spec talks about Fake, agreed we should stick with this in the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641761</commentid>
    <comment_count>16</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-15 06:31:47 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #15)
&gt; (In reply to Sergio Villar Senin from comment #14)
&gt; &gt; (In reply to youenn fablet from comment #13)
&gt; &gt; &gt; LGTM too with that approach.
&gt; &gt; &gt; 
&gt; &gt; &gt; Elsewhere in the code, we use mock instead of fake, see
&gt; &gt; &gt; Source/WebCore/platform/mock/ and Source/WebCore/platform/testing for
&gt; &gt; &gt; instance.
&gt; &gt; &gt; 
&gt; &gt; &gt; If this is not raised already, we might want to file an issue to the XR WG
&gt; &gt; &gt; to propose an approach similar to fake camera/microphone and getUserMedia.
&gt; &gt; &gt; Sergio, let me know if you want to do it.
&gt; &gt; 
&gt; &gt; Not sure what you want to propose to the WG. Is it just about naming
&gt; &gt; (Fake-&gt;Mock) or are you talking about completely change the approach and use
&gt; &gt; WebDriver APIs to do testing?
&gt; 
&gt; I am talking about something like a WebDriver API.
&gt; If that has been considered, I would be interested to know why this was not
&gt; deemed appropriate.

Ah in this case I think you&apos;d better to it, mainly because I completely lack the context that lead to using WebDriver to mock media devices. You could very likely give insightful details I am not aware off. New issues can be filled in here: https://github.com/immersive-web/webxr-test-api/issues/
 
&gt; About Fake -&gt; Mock, given the spec talks about Fake, agreed we should stick
&gt; with this in the implementation.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641850</commentid>
    <comment_count>17</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-15 10:11:21 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #15)
&gt; (In reply to Sergio Villar Senin from comment #14)
&gt; &gt; (In reply to youenn fablet from comment #13)
&gt; &gt; &gt; LGTM too with that approach.
&gt; &gt; &gt; 
&gt; &gt; &gt; Elsewhere in the code, we use mock instead of fake, see
&gt; &gt; &gt; Source/WebCore/platform/mock/ and Source/WebCore/platform/testing for
&gt; &gt; &gt; instance.
&gt; &gt; &gt; 
&gt; &gt; &gt; If this is not raised already, we might want to file an issue to the XR WG
&gt; &gt; &gt; to propose an approach similar to fake camera/microphone and getUserMedia.
&gt; &gt; &gt; Sergio, let me know if you want to do it.
&gt; &gt; 
&gt; &gt; Not sure what you want to propose to the WG. Is it just about naming
&gt; &gt; (Fake-&gt;Mock) or are you talking about completely change the approach and use
&gt; &gt; WebDriver APIs to do testing?
&gt; 
&gt; I am talking about something like a WebDriver API.
&gt; If that has been considered, I would be interested to know why this was not
&gt; deemed appropriate.

Youenn I&apos;ve just found out this https://github.com/immersive-web/webxr-test-api/issues/9</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642243</commentid>
    <comment_count>18</comment_count>
      <attachid>396646</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-16 07:12:20 -0700</bug_when>
    <thetext>Created attachment 396646
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642248</commentid>
    <comment_count>19</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-16 07:33:25 -0700</bug_when>
    <thetext>Summary of the changes:

1- Moved WebXRTest to Internals
2- Map xr.test to internals.xrtest in webxr_utils.js in web-platform-tests/webxr/resources/webxr_utils.js
3- Remove the WebXRSystemWebXRTest (no longer needed as we don&apos;t need a partial interface anymore)
4- Remove the WebXRTest runtime flag (enough with the current WebXR one as internals is only available for testing)

I&apos;d have to land the wpt change but it shouldn&apos;t be controversial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642256</commentid>
    <comment_count>20</comment_count>
      <attachid>396646</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-04-16 07:59:25 -0700</bug_when>
    <thetext>Comment on attachment 396646
Patch

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

&gt; Source/WebCore/testing/FakeXRButtonStateInit.idl:26
&gt; +// Bcause the primary button is always guaranteed to be present, and other buttons

s/Bcause/Because/

&gt; Source/WebCore/testing/WebFakeXRDevice.cpp:36
&gt; +void WebFakeXRDevice::setViews(Vector&lt;FakeXRViewInit&gt;) { }

add some CRLF here and below. in other files as well.

&gt; Source/WebCore/testing/WebFakeXRDevice.h:44
&gt; +void setViews(Vector&lt;FakeXRViewInit&gt;);

Indentation.
Ditto below.

&gt; Source/WebCore/testing/WebXRTest.idl:44
&gt; +  Promise&lt;void&gt; disconnectAllDevices();

two spaces vs four spaces below.

&gt; LayoutTests/imported/w3c/web-platform-tests/webxr/resources/webxr_util.js:21
&gt; +    }

Maybe add a comment this is dedicated to WebKit/WebKit test runner.
Ideally, we should isolate that code in a vendor specific file but since there is already Chromium specific code...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642399</commentid>
    <comment_count>21</comment_count>
      <attachid>396688</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-16 12:40:26 -0700</bug_when>
    <thetext>Created attachment 396688
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642409</commentid>
    <comment_count>22</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-16 12:56:33 -0700</bug_when>
    <thetext>The PR for the wpt code in https://github.com/web-platform-tests/wpt/pull/23031</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642611</commentid>
    <comment_count>23</comment_count>
      <attachid>396748</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-17 02:10:47 -0700</bug_when>
    <thetext>Created attachment 396748
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643628</commentid>
    <comment_count>24</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-20 13:59:13 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #22)
&gt; The PR for the wpt code in
&gt; https://github.com/web-platform-tests/wpt/pull/23031

This landed today, so I&apos;ll import it from WPT repo into trunk and then remove it from this patch. After this, the patch will be ready to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643861</commentid>
    <comment_count>25</comment_count>
      <attachid>397078</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-21 07:07:22 -0700</bug_when>
    <thetext>Created attachment 397078
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643899</commentid>
    <comment_count>26</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-21 09:30:41 -0700</bug_when>
    <thetext>Committed r260432: &lt;https://trac.webkit.org/changeset/260432&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643901</commentid>
    <comment_count>27</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-21 09:31:14 -0700</bug_when>
    <thetext>&lt;rdar://problem/62113053&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643916</commentid>
    <comment_count>28</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-21 10:20:33 -0700</bug_when>
    <thetext>Reverted r260432 for reason:

Broke WPE build

Committed r260436: &lt;https://trac.webkit.org/changeset/260436&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1643979</commentid>
    <comment_count>29</comment_count>
      <attachid>397108</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-21 13:17:38 -0700</bug_when>
    <thetext>Created attachment 397108
Patch for landing v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1644255</commentid>
    <comment_count>30</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2020-04-22 03:19:40 -0700</bug_when>
    <thetext>Committed r260505: &lt;https://trac.webkit.org/changeset/260505&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395179</attachid>
            <date>2020-04-01 09:54:32 -0700</date>
            <delta_ts>2020-04-09 08:25:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209859-20200401185430.patch</filename>
            <type>text/plain</type>
            <size>85125</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU4OTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDM5ODY1ZDNjYTQ1M2Jk
YmZiYjMzNWQ5MTM2ZTAyN2VjM2MwMjZkMC4uZmExM2M3OGU4YmZhMTc3MDYwZDk1ZDQ4OThhMzhh
OTk0ZTEzNjAzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDgzIEBACisyMDIwLTA0LTAxICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViWFIgdGVzdGluZyBpcyBoYXJkIGFzIGl0IG1pZ2h0IGludm9sdmUgaW50
ZXJhY3Rpb24gd2l0aCBhY3R1YWwKKyAgICAgICAgZGV2aWNlcy4gVGhhdCdzIHdoeSB0aGUgV2Vi
WFIgdGVzdGluZworICAgICAgICBBUEkgKGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8v
d2VieHItdGVzdC1hcGkvKSB3YXMKKyAgICAgICAgcHJvcG9zZWQuIEluIGZhY3QsIGFsbCB0aGUg
Y3VycmVudCBXZWJYUiB0ZXN0cyBmcm9tCisgICAgICAgIHdlYi1wbGF0Zm9ybS10ZXN0cyBhcmUg
dXNpbmcgdGhhdCB0ZXN0aW5nIEFQSS4gVGhpcyBuZXcgdGVzdGluZworICAgICAgICBBUEkgc3Vw
cGxlbWVudHMgbmF2aWdhdG9yLnhyIGFuZCBpcyBhY2Nlc3NlZCB0aHJvdWdoCisgICAgICAgIG5h
dmlnYXRvci54ci50ZXN0LgorCisgICAgICAgIFdlJ3JlIGFkZGluZyB0aGUgcmVxdWlyZWQgSURM
cyBhbmQgdmVyeSBiYXNpYyAobW9zdGx5IGVtcHR5KQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMg
Zm9yIHRlc3RpbmcgbWV0aG9kcy4gV2UncmUgYWRkaW5nIHRlc3RpbmcKKyAgICAgICAgaW5mcmFz
dHJ1Y3R1cmUsIGFkZGluZyB0ZXN0cyBtYWtlIG5vIHNlbnNlIGZvciB0aGlzIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9GYWtlWFJCb3VuZHNQb2ludC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL0Zha2VYUkJvdW5kc1BvaW50LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9GYWtlWFJCdXR0b25TdGF0ZUluaXQuaDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9GYWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL0Zha2VYUklucHV0U291cmNlSW5pdC5oOiBBZGRlZC4KKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnhyL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmg6IEFkZGVk
LgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbDog
QWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9GYWtlWFJWaWV3SW5pdC5oOiBBZGRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL0Zha2VYUlZpZXdJbml0LmlkbDogQWRkZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJ4ci9XZWJGYWtlWFJEZXZpY2UuY3BwOiBBZGRlZC4KKyAgICAgICAg
KFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2V0Vmlld3MpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViRmFrZVhSRGV2aWNlOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VY
UkRldmljZTo6c2V0Vmlld2VyT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRl
dmljZTo6Y2xlYXJWaWV3ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2
aWNlOjpzaW11bGF0ZVZpc2liaWxpdHlDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFr
ZVhSRGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtl
WFJEZXZpY2U6OnNldEZsb29yT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRl
dmljZTo6Y2xlYXJGbG9vck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZp
Y2U6OnNpbXVsYXRlUmVzZXRQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmlj
ZTo6c2ltdWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24pOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViRmFrZVhSRGV2aWNlLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2Vi
RmFrZVhSRGV2aWNlLmlkbDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VY
UklucHV0Q29udHJvbGxlcjo6c2V0SGFuZGVkbmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJG
YWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFRhcmdldFJheU1vZGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldEdyaXBPcmlnaW4pOgorICAgICAgICAo
V2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpjbGVhckdyaXBPcmlnaW4pOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQb2ludGVyT3JpZ2lu
KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6ZGlzY29ubmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnJlY29ubmVj
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnN0YXJ0U2Vs
ZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6ZW5k
U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6
c2ltdWxhdGVTZWxlY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyOjpzZXRTdXBwb3J0ZWRCdXR0b25zKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklu
cHV0Q29udHJvbGxlcjo6dXBkYXRlQnV0dG9uU3RhdGUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
eHIvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmg6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMv
d2VieHIvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbDogQWRkZWQuCisgICAgICAgICogTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlN5c3Rl
bTo6dGVzdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oOgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRlc3QuaDogQWRkZWQuCisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdlYlhSVGVzdC5pZGw6IEFkZGVkLgor
ICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJUZXN0LmNwcDogQWRkZWQuCisgICAgICAgIChX
ZWJDb3JlOjpXZWJYUlRlc3Q6OnNpbXVsYXRlRGV2aWNlQ29ubmVjdGlvbiBjb25zdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUlRlc3Q6OnNpbXVsYXRlVXNlckFjdGl2YXRpb24pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpkaXNjb25uZWN0QWxsRGV2aWNlcyk6CisgICAgICAgICog
TW9kdWxlcy93ZWJ4ci9XZWJYUlRlc3QuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJY
UlRlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlRlc3QuaWRsOiBB
ZGRlZC4KKyAgICAgICAgKiBNb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oOgorICAgICAgICAq
IE1vZHVsZXMvd2VieHIvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaDogQWRkZWQu
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlv
bi5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmg6
CisgICAgICAgICogU291cmNlcy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4KKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAgICAgICAqIGJpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDogQWRkZWQgc29tZSBuZXcgbWFjcm9zLgorCiAyMDIw
LTAzLTI1ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgYnVpbGQgZml4IGZvciBHVEsuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4
IDkxMjIzMDE3OGMxZDJhMzkzNWIyMDlhNzk5YTc3MzU5YmU3N2Q0NTUuLmNlMGY3NmNjODJiNzc2
NTNhYWQ0OTgwMDEzODRhZDYyYmIxNDU3NDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMTgy
LDcgKzExODIsMTQgQEAgZW5kaWYgKCkKIAogaWYgKEVOQUJMRV9XRUJYUikKICAgICBsaXN0KEFQ
UEVORCBXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCisgICAgICAgIE1vZHVsZXMvd2VieHIvRmFr
ZVhSQm91bmRzUG9pbnQuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvRmFrZVhSQnV0dG9uU3Rh
dGVJbml0LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL0Zha2VYUklucHV0U291cmNlSW5pdC5p
ZGwKKyAgICAgICAgTW9kdWxlcy93ZWJ4ci9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCisg
ICAgICAgIE1vZHVsZXMvd2VieHIvRmFrZVhSVmlld0luaXQuaWRsCiAgICAgICAgIE1vZHVsZXMv
d2VieHIvTmF2aWdhdG9yV2ViWFIuaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViRmFrZVhS
RGV2aWNlLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYkZha2VYUklucHV0Q29udHJvbGxl
ci5pZGwKICAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5p
ZGwKICAgICAgICAgTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmlkbAogICAgICAgICBNb2R1bGVz
L3dlYnhyL1dlYlhSSW5wdXRTb3VyY2UuaWRsCkBAIC0xMTk0LDYgKzEyMDEsOCBAQCBpZiAoRU5B
QkxFX1dFQlhSKQogICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwKICAgICAg
ICAgTW9kdWxlcy93ZWJ4ci9XZWJYUlNwYWNlLmlkbAogICAgICAgICBNb2R1bGVzL3dlYnhyL1dl
YlhSU3lzdGVtLmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtV2ViWFJUZXN0
LmlkbAorICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSVGVzdC5pZGwKICAgICAgICAgTW9kdWxl
cy93ZWJ4ci9XZWJYUlZpZXcuaWRsCiAgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3ZXJQ
b3NlLmlkbAogICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsCkBAIC0xMjEw
LDYgKzEyMTksNyBAQCBpZiAoRU5BQkxFX1dFQlhSKQogICAgICAgICBNb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkV2ZW50LmlkbAogICAgICAgICBNb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQuaWRs
CiAgICAgICAgIE1vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwKKyAgICAgICAgTW9kdWxl
cy93ZWJ4ci9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwKICAgICAgICAgTW9k
dWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaWRsCiAgICAgICAgIE1vZHVsZXMvd2VieHIvWFJW
aXNpYmlsaXR5U3RhdGUuaWRsCiAgICAgICAgIE1vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5p
dC5pZGwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IDRlOTI1NjhmMDcyMjkxNmFl
YTkyODU4NmM2NDk3NjMyODcwNWZlOTUuLjExYmI1NjVhNzNhYjBjMjYxMGE3YjljNGNhYTYzNWEx
MTNiZDI5NTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UK
KysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtNDYxLDcgKzQ2MSwx
NCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYmdwdS9X
b3JrZXJOYXZpZ2F0b3JHUFUuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2Vic29ja2V0
cy9DbG9zZUV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnNvY2tldHMvV2Vi
U29ja2V0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL0Zha2VYUkJvdW5kc1Bv
aW50LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL0Zha2VYUkJ1dHRvblN0YXRl
SW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9GYWtlWFJJbnB1dFNvdXJj
ZUluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvRmFrZVhSUmlnaWRUcmFu
c2Zvcm1Jbml0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL0Zha2VYUlZpZXdJ
bml0LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmlk
bCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYkZha2VYUkRldmljZS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJGcmFtZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUklucHV0U291cmNlQXJyYXkuaWRsIFwK
QEAgLTQ3Myw2ICs0ODAsOCBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9N
b2R1bGVzL3dlYnhyL1dlYlhSU2Vzc2lvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93
ZWJ4ci9XZWJYUlNwYWNlLmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhS
U3lzdGVtLmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtV2Vi
WFJUZXN0LmlkbCBcCisgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1dlYlhSVGVzdC5pZGwg
XAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaWRsIFwKICAg
ICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbCBcCiAgICAgJChXZWJDb3Jl
KS9Nb2R1bGVzL3dlYnhyL1dlYlhSVmlld3BvcnQuaWRsIFwKQEAgLTQ4OSw2ICs0OTgsNyBAQCBK
U19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lv
bkV2ZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dlYnhyL1hSU2Vzc2lvbkluaXQu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJTZXNzaW9uTW9kZS5pZGwgXAor
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5j
dGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUu
aWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJWaXNpYmlsaXR5U3RhdGUuaWRs
IFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvWFJXZWJHTExheWVySW5pdC5pZGwgXApA
QCAtMTg3MSw0ICsxODgxLDMgQEAgJChXZWJDb3JlX0JVSUxUSU5TX1dSQVBQRVJTX1BBVFRFUk5T
KSA6ICQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTKSBXZWJDb3JlX0JVSUwKIGFsbCA6ICQobm90
ZGlyICQoV2ViQ29yZV9CVUlMVElOU19TT1VSQ0VTOiUuanM9JUJ1aWx0aW5zLmgpKSAkKFdlYkNv
cmVfQlVJTFRJTlNfV1JBUFBFUlMpCiAKICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSQm91bmRzUG9pbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSQm91bmRzUG9pbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZDcwNzI4NjgyMzFlYjI5Mzk0MTcxMmFlNDMwZmNhOGZiNDUwNjQzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9GYWtlWFJCb3VuZHNQb2lu
dC5oCkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZha2VYUkJvdW5k
c1BvaW50IHsKKyAgICBkb3VibGUgeDsKKyAgICBkb3VibGUgejsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSQm91bmRzUG9pbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9GYWtlWFJCb3VuZHNQb2ludC5pZGwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTli
ODUwYjU2MzAzZjZiYWVlY2U1MzIwMmJlMWYwODcxYjhlNTRiMQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSQm91bmRzUG9pbnQuaWRsCkBAIC0w
LDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIs
CisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSQm91bmRzUG9pbnQg
eworICBkb3VibGUgeDsgZG91YmxlIHo7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9GYWtlWFJCdXR0b25TdGF0ZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVkOThlZDhk
YzQwNTZmZTNjODA2ZGY2ODFjZDIyNWQwZTkyYjA2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmgKQEAgLTAsMCAr
MSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikK
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRmFrZVhSQnV0dG9uU3RhdGVJbml0IHsK
KyAgICBlbnVtIGNsYXNzIFR5cGUgeworICAgICAgICBHcmlwLAorICAgICAgICBUb3VjaHBhZCwK
KyAgICAgICAgVGh1bWJzdGljaywKKyAgICAgICAgT3B0aW9uYWxCdXR0b24sCisgICAgICAgIE9w
dGlvbmFsVGh1bWJzdGljaworICAgIH07CisKKyAgICBUeXBlIGJ1dHRvblR5cGU7CisgICAgYm9v
bCBwcmVzc2VkOworICAgIGJvb2wgdG91Y2hlZDsKKyAgICBmbG9hdCBwcmVzc2VkVmFsdWU7Cisg
ICAgZmxvYXQgeFZhbHVlIHsgMC4wIH07CisgICAgZmxvYXQgeVZhbHVlIHsgMC4wIH07Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL0Zha2VYUkJ1dHRvblN0YXRlSW5p
dC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL0Zha2VYUkJ1dHRvblN0YXRlSW5p
dC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZjM0YTZjYmI5NzZiY2NmZGE2OGM4Y2FmYmJkY2RhZDU4Y2E1ZWY3
MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhS
QnV0dG9uU3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDU2IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIEJj
YXVzZSB0aGUgcHJpbWFyeSBidXR0b24gaXMgYWx3YXlzIGd1YXJhbnRlZWQgdG8gYmUgcHJlc2Vu
dCwgYW5kIG90aGVyIGJ1dHRvbnMKKy8vIHNob3VsZCBmdWxmaWxsIHRoZSByb2xlIG9mIHZhbGlk
YXRpbmcgYW55IHN0YXRlIGZyb20gRmFrZVhSQnV0dG9uU3RhdGVJbml0CisvLyB0aGUgcHJpbWFy
eSBidXR0b24gaXMgbm90IHByZXNlbnQgaW4gdGhpcyBlbnVtLgorWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGVudW0gRmFrZVhSQnV0dG9u
VHlwZSB7CisgICJncmlwIiwKKyAgInRvdWNocGFkIiwKKyAgInRodW1ic3RpY2siLAorICAvLyBS
ZXByZXNlbnRzIGEgYnV0dG9uIHdob3NlIHBvc2l0aW9uIGlzIG5vdCBzcGVjaWZpZWQgYnkgdGhl
IHhyLXN0YW5kYXJkIG1hcHBpbmcuCisgIC8vIFNob3VsZCBhcHBlYXIgYXQgb25lIHBhc3QgdGhl
IGxhc3QgcmVzZXJ2ZWQgYnV0dG9uIGluZGV4LgorICAib3B0aW9uYWwtYnV0dG9uIiwKKyAgLy8g
UmVwcmVzZW50cyBhIHRodW1ic3RpY2sgd2hvc2UgcG9zaXRpb24gaXMgbm90IHNwZWNpZmllZCBi
eSB0aGUgeHItc3RhbmRhcmQgbWFwcGluZy4KKyAgLy8gU2hvdWxkIGFwcGVhciBhdCB0d28gcGFz
dCB0aGUgbGFzdCByZXNlcnZlZCBidXR0b24gaW5kZXguCisgICJvcHRpb25hbC10aHVtYnN0aWNr
IgorfTsKKworLy8gVXNlZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9mIG9wdGlvbmFsbHkgc3VwcG9y
dGVkIGJ1dHRvbnMuCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJCdXR0b25TdGF0ZUluaXQgeworICByZXF1
aXJlZCBGYWtlWFJCdXR0b25UeXBlIGJ1dHRvblR5cGU7CisgIHJlcXVpcmVkIGJvb2xlYW4gcHJl
c3NlZDsKKyAgcmVxdWlyZWQgYm9vbGVhbiB0b3VjaGVkOworICByZXF1aXJlZCBmbG9hdCBwcmVz
c2VkVmFsdWU7CisgIC8vIHggYW5kIHkgdmFsdWUgYXJlIGlnbm9yZWQgaWYgdGhlIEZha2VYUkJ1
dHRvblR5cGUgaXMgbm90IHRvdWNocGFkLCB0aHVtYnN0aWNrLCBvciBvcHRpb25hbC10aHVtYnN0
aWNrCisgIGZsb2F0IHhWYWx1ZSA9IDAuMDsKKyAgZmxvYXQgeVZhbHVlID0gMC4wOworfTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSSW5wdXRTb3VyY2VJ
bml0LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL0Zha2VYUklucHV0U291cmNlSW5p
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjNDJhNGIzMTAwMTgyYjMwZTM0MzFlZjBhNDhkOWUxNjI4OTg0MGEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL0Zha2VYUklu
cHV0U291cmNlSW5pdC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJCdXR0b25TdGF0ZUlu
aXQuaCIKKyNpbmNsdWRlICJGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCIKKyNpbmNsdWRlICJY
UkV5ZS5oIgorI2luY2x1ZGUgIlhSSGFuZGVkbmVzcy5oIgorI2luY2x1ZGUgIlhSVGFyZ2V0UmF5
TW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgRmFrZVhSSW5wdXRTb3VyY2VJbml0IHsKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVk
bmVzczsKKyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZTsKKyAgICBGYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQgcG9pbnRlck9yaWdpbjsKKyAgICBWZWN0b3I8U3RyaW5nPiBwcm9maWxl
czsKKyAgICBib29sIHNlbGVjdGlvblN0YXJ0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgc2VsZWN0
aW9uQ2xpY2tlZCB7IGZhbHNlIH07CisgICAgVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4g
c3VwcG9ydGVkQnV0dG9uczsKKyAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9yaWdp
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSSW5wdXRT
b3VyY2VJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSSW5wdXRT
b3VyY2VJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YzJlZWQ3MDVkMWU5YWI0ZmNjYzVlOThkZGRkMGI5
ZDZkNzUyZGRkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIs
CitdIGRpY3Rpb25hcnkgRmFrZVhSSW5wdXRTb3VyY2VJbml0IHsKKyAgcmVxdWlyZWQgWFJIYW5k
ZWRuZXNzIGhhbmRlZG5lc3M7CisgIHJlcXVpcmVkIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlN
b2RlOworICByZXF1aXJlZCBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgcG9pbnRlck9yaWdpbjsK
KyAgcmVxdWlyZWQgc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm9maWxlczsKKyAgLy8gd2FzIHRoZSBw
cmltYXJ5IGFjdGlvbiBwcmVzc2VkIHdoZW4gdGhpcyB3YXMgY29ubmVjdGVkPworICBib29sZWFu
IHNlbGVjdGlvblN0YXJ0ZWQgPSBmYWxzZTsKKyAgLy8gc2hvdWxkIHRoaXMgaW5wdXQgc291cmNl
IHNlbmQgYSBzZWxlY3QgaW1tZWRpYXRlbHkgdXBvbiBjb25uZWN0aW9uPworICBib29sZWFuIHNl
bGVjdGlvbkNsaWNrZWQgPSBmYWxzZTsKKyAgLy8gSW5pdGlhbCBidXR0b24gc3RhdGUgZm9yIGFu
eSBidXR0b25zIGJleW9uZCB0aGUgcHJpbWFyeSB0aGF0IGFyZSBzdXBwb3J0ZWQuCisgIC8vIElm
IGVtcHR5LCBvbmx5IHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBzdXBwb3J0ZWQuCisgIC8vIE5vdGUg
dGhhdCBpZiBhbnkgRmFrZVhSQnV0dG9uVHlwZSBpcyByZXBlYXRlZCB0aGUgYmVoYXZpb3IgaXMg
dW5kZWZpbmVkLgorICBzZXF1ZW5jZTxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+IHN1cHBvcnRlZEJ1
dHRvbnM7CisgIC8vIElmIG5vdCBzZXQgdGhlIGNvbnRyb2xsZXIgaXMgYXNzdW1lZCB0byBub3Qg
YmUgdHJhY2tlZC4KKyAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGdyaXBPcmlnaW47Cit9Owpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmggYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE3MTgz
MjkzODJiYjAxZTQ0ZWZkYjM1M2M1NWQ5NWM1N2ZiYjAyYWMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB7CisgICAgVmVjdG9yPGZsb2F0PiBw
b3NpdGlvbjsKKyAgICBWZWN0b3I8ZmxvYXQ+IG9yaWVudGF0aW9uOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRs
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmI3Nzc1M2QwYjNkZmMxZjg2NjE0ZTkwODM0M2I4ZTc4NWEzNzhiN2EKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL0Zha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdC5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworIAorLy8gaHR0
cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jeHJyaWdpZHRyYW5zZm9ybQorWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRp
Y3Rpb25hcnkgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHsKKyAgLy8gbXVzdCBoYXZlIHRocmVl
IGVsZW1lbnRzCisgIHJlcXVpcmVkIHNlcXVlbmNlPGZsb2F0PiBwb3NpdGlvbjsKKyAgLy8gbXVz
dCBoYXZlIGZvdXIgZWxlbWVudHMKKyAgcmVxdWlyZWQgc2VxdWVuY2U8ZmxvYXQ+IG9yaWVudGF0
aW9uOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhS
Vmlld0luaXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvRmFrZVhSVmlld0luaXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi42ZjU3MDE4ZTg4YWYzYzYxYjBmMDc3OTA3YzhjMTBhNzBlNjU3YmRlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9GYWtlWFJWaWV3
SW5pdC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCIK
KyNpbmNsdWRlICJYUkV5ZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitzdHJ1Y3QgRmFrZVhSVmlld0luaXQgeworICAgIHN0cnVjdCBEZXZpY2VS
ZXNvbHV0aW9uIHsKKyAgICAgICAgaW50IHdpZHRoOworICAgICAgICBpbnQgaGVpZ2h0OworICAg
IH07CisgICAgc3RydWN0IEZpZWxkT2ZWaWV3SW5pdCB7CisgICAgICAgIGZsb2F0IHVwRGVncmVl
czsKKyAgICAgICAgZmxvYXQgZG93bkRlZ3JlZXM7CisgICAgICAgIGZsb2F0IGxlZnREZWdyZWVz
OworICAgICAgICBmbG9hdCByaWdodERlZ3JlZXM7CisgICAgfTsKKworICAgIFhSRXllIGV5ZTsK
KyAgICBWZWN0b3I8ZmxvYXQ+IHByb2plY3Rpb25NYXRyaXg7CisgICAgRGV2aWNlUmVzb2x1dGlv
biByZXNvbHV0aW9uOworICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB2aWV3T2Zmc2V0Owor
ICAgIEZpZWxkT2ZWaWV3SW5pdCBmaWVsZE9mVmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvRmFrZVhSVmlld0luaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9GYWtlWFJWaWV3SW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTA5ZWJhMzE0YzI4Yzc4
YmI4MzZkYTY3NTM2NWQxN2MxZDBiNmYzMwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvRmFrZVhSVmlld0luaXQuaWRsCkBAIC0wLDAgKzEsNjcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworLy8gVGhpcyByZXByZXNlbnRzIHRoZSBuYXRpdmUgcmVzb2x1dGlvbiBvZiB0
aGUgZGV2aWNlLCBidXQgbWF5IG5vdCByZWZsZWN0IHRoZSB2aWV3cG9ydCBleHBvc2VkIHRvIHRo
ZSBwYWdlLgorLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jeHJ2aWV3
cG9ydAorWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
WFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRGV2aWNlUmVzb2x1dGlvbiB7CisgICAgcmVxdWlyZWQg
bG9uZyB3aWR0aDsKKyAgICByZXF1aXJlZCBsb25nIGhlaWdodDsKK307CisKKy8vIEEgc2V0IG9m
IDQgYW5nbGVzIHdoaWNoIGRlc2NyaWJlIHRoZSB2aWV3IGZyb20gYSBjZW50ZXIgcG9pbnQsIHVu
aXRzIGFyZSBkZWdyZWVzLgorWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRmllbGRPZlZpZXdJbml0IHsKKyAg
cmVxdWlyZWQgZmxvYXQgdXBEZWdyZWVzOworICByZXF1aXJlZCBmbG9hdCBkb3duRGVncmVlczsK
KyAgcmVxdWlyZWQgZmxvYXQgbGVmdERlZ3JlZXM7CisgIHJlcXVpcmVkIGZsb2F0IHJpZ2h0RGVn
cmVlczsKK307CisKKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3hy
dmlldworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
WFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSVmlld0luaXQgeworICByZXF1aXJlZCBYUkV5ZSBleWU7
CisgIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3ZpZXctcHJvamVj
dGlvbi1tYXRyaXgKKyAgcmVxdWlyZWQgc2VxdWVuY2U8ZmxvYXQ+IHByb2plY3Rpb25NYXRyaXg7
CisgIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI2RvbS14cndlYmds
bGF5ZXItZ2V0dmlld3BvcnQKKyAgcmVxdWlyZWQgRmFrZVhSRGV2aWNlUmVzb2x1dGlvbiByZXNv
bHV0aW9uOworICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN2aWV3
LW9mZnNldAorICAvLyBUaGlzIGlzIHRoZSBvcmlnaW4gb2YgdGhlIHZpZXcgaW4gdGhlIHZpZXdl
ciBzcGFjZS4gSW4gb3RoZXIgd29yZHMsIHRoaXMgaXMKKyAgLy8gYSB0cmFuc2Zvcm0gZnJvbSB0
aGUgdmlldyBzcGFjZSB0byB0aGUgdmlld2VyIHNwYWNlLgorICByZXF1aXJlZCBGYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQgdmlld09mZnNldDsKKyAgLy8gVGhpcyBpcyBhbiBvcHRpb25hbCBtZWFu
cyBvZiBzcGVjaWZ5aW5nIGEgZGVjb21wb3NlZCBmb3JtIG9mIHRoZSBwcm9qZWN0aW9uCisgIC8v
IG1hdHJpeC4gIElmIHNwZWNpZmllZCwgdGhlIHByb2plY3Rpb25NYXRyaXggc2hvdWxkIGJlIGln
bm9yZWQuCisgIC8vIEFueSB0ZXN0IHRoYXQgd2lzaGVzIHRvIHRlc3QgY2xpcCBwbGFuZXMgb3Ig
c2ltaWxhciBmZWF0dXJlcyB0aGF0IHdvdWxkIHJlcXVpcmUKKyAgLy8gZGVjb21wb3NpbmcvcmVj
b21wb3NpbmcgdGhlIHByb2plY3Rpb25NYXRyaXggc2hvdWxkIHVzZSB0aGlzIGluc3RlYWQgb2YK
KyAgLy8gdGhlIHByb2plY3Rpb24gbWF0cml4LgorICBGYWtlWFJGaWVsZE9mVmlld0luaXQgZmll
bGRPZlZpZXc7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9X
ZWJGYWtlWFJEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJGYWtl
WFJEZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM3Mjc1ZGI2NzhjYmJjNWU0NzdhNTNkZDFlMTI5ZmFj
MjMzNWM3NGIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYkZha2VYUkRldmljZS5jcHAKQEAgLTAsMCArMSw3MCBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5j
bHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSRGV2aWNlLmgiCisKKyNpZiBFTkFC
TEUoV0VCWFIpCisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUg
IldlYkZha2VYUklucHV0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dl
YkZha2VYUkRldmljZTo6fldlYkZha2VYUkRldmljZSgpID0gZGVmYXVsdDsKKwordm9pZCBXZWJG
YWtlWFJEZXZpY2U6OnNldFZpZXdzKFZlY3RvcjxGYWtlWFJWaWV3SW5pdD4pIHsgfQorCit2b2lk
IFdlYkZha2VYUkRldmljZTo6ZGlzY29ubmVjdChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBw
cm9taXNlKQoreworICAgIHByb21pc2UucmVzb2x2ZSgpOworfQorCit2b2lkIFdlYkZha2VYUkRl
dmljZTo6c2V0Vmlld2VyT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJv
b2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyAgICBV
TlVTRURfUEFSQU0oZW11bGF0ZWRQb3NpdGlvbik7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNl
OjpjbGVhclZpZXdlck9yaWdpbigpIHsgfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2ltdWxh
dGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRlKSB7IH0KKwordm9pZCBXZWJGYWtl
WFJEZXZpY2U6OnNldEJvdW5kc0dlb21ldHJ5KFZlY3RvcjxGYWtlWFJCb3VuZHNQb2ludD4pIHsg
fQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFu
c2Zvcm1Jbml0KSB7IH0KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OmNsZWFyRmxvb3JPcmlnaW4o
KSB7IH0KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlUmVzZXRQb3NlKCkgeyB9CisK
K1dlYkZha2VYUklucHV0Q29udHJvbGxlciBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5wdXRT
b3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCkKK3sKKyAgICByZXR1cm4gV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYkZha2VYUkRldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY5MjRiNDk2N2UzMzYzNjI2NGQ0MWNmZmI5
N2ZlYjUzYjdlMTkxNTUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYkZha2VYUkRldmljZS5oCkBAIC0wLDAgKzEsNjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJCb3Vu
ZHNQb2ludC5oIgorI2luY2x1ZGUgIkZha2VYUklucHV0U291cmNlSW5pdC5oIgorI2luY2x1ZGUg
IkZha2VYUlZpZXdJbml0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNp
bmNsdWRlICJXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJYUlZpc2liaWxp
dHlTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1Zl
Y3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkZha2VYUkRldmljZSA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYkZha2VYUkRldmljZT4geworcHVibGljOgordmlydHVhbCB+
V2ViRmFrZVhSRGV2aWNlKCk7CisKK3ZvaWQgc2V0Vmlld3MoVmVjdG9yPEZha2VYUlZpZXdJbml0
Pik7CisKK3ZvaWQgZGlzY29ubmVjdChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKK3Zv
aWQgc2V0Vmlld2VyT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJvb2wg
ZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKwordm9pZCBjbGVhclZpZXdlck9yaWdpbigpOwor
Cit2b2lkIHNpbXVsYXRlVmlzaWJpbGl0eUNoYW5nZShYUlZpc2liaWxpdHlTdGF0ZSk7CisKK3Zv
aWQgc2V0Qm91bmRzR2VvbWV0cnkoVmVjdG9yPEZha2VYUkJvdW5kc1BvaW50PiBib3VuZHNDb29k
aW5hdGVzKTsKKwordm9pZCBzZXRGbG9vck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQp
OworCit2b2lkIGNsZWFyRmxvb3JPcmlnaW4oKTsKKwordm9pZCBzaW11bGF0ZVJlc2V0UG9zZSgp
OworCitXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgc2ltdWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rp
b24oRmFrZVhSSW5wdXRTb3VyY2VJbml0KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViRmFrZVhSRGV2aWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvV2ViRmFrZVhSRGV2aWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YjA5MDdjOGY5ZDg1M2EzZWQz
NjhiM2M4MDQ4NmE2MzNhMjNjNGM4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJGYWtlWFJEZXZpY2UuaWRsCkBAIC0wLDAgKzEsNjEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9
V0VCWFIsCisgICAgSW50ZXJmYWNlTmFtZT1GYWtlWFJEZXZpY2UKK10gaW50ZXJmYWNlIFdlYkZh
a2VYUkRldmljZSB7CisgIC8vIFNldHMgdGhlIHZhbHVlcyB0byBiZSB1c2VkIGZvciBzdWJzZXF1
ZW50CisgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNrcy4KKyAgdm9pZCBzZXRW
aWV3cyhzZXF1ZW5jZTxGYWtlWFJWaWV3SW5pdD4gdmlld3MpOworCisgIC8vIGJlaGF2ZXMgYXMg
aWYgZGV2aWNlIHdhcyBkaXNjb25uZWN0ZWQKKyAgUHJvbWlzZTx2b2lkPiBkaXNjb25uZWN0KCk7
CisKKyAgLy8gU2V0cyB0aGUgb3JpZ2luIG9mIHRoZSB2aWV3ZXIKKyAgdm9pZCBzZXRWaWV3ZXJP
cmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IG9yaWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBl
bXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCisgIC8vIElmIGFuIG9yaWdpbiBpcyBub3Qgc3Bl
Y2lmaWVkLCB0aGVuIHRoZSBkZXZpY2UgaXMgYXNzdW1lZCB0byBub3QgYmUgdHJhY2tpbmcsIGVt
dWxhdGVkUG9zaXRpb24gc2hvdWxkCisgIC8vIGJlIGFzc3VtZWQgZm9yIGNhc2VzIHdoZXJlIHRo
ZSBVQSBtdXN0IGFsd2F5cyBwcm92aWRlIGEgcG9zZS4KKyAgdm9pZCBjbGVhclZpZXdlck9yaWdp
bigpOworCisgIC8vIFNpbXVsYXRlcyBkZXZpY2VzIGZvY3VzaW5nIGFuZCBibHVycmluZyBzZXNz
aW9ucy4KKyAgdm9pZCBzaW11bGF0ZVZpc2liaWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUg
dmlzaWJpbGl0eVN0YXRlKTsKKworICB2b2lkIHNldEJvdW5kc0dlb21ldHJ5KHNlcXVlbmNlPEZh
a2VYUkJvdW5kc1BvaW50PiBib3VuZHNDb29kaW5hdGVzKTsKKyAgLy8gU2V0cyB0aGUgbmF0aXZl
IG9yaWdpbiBvZiB0aGUgcGh5c2ljYWwgZmxvb3IKKyAgdm9pZCBzZXRGbG9vck9yaWdpbihGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQgZmxvb3JPcmlnaW4pOworCisgIC8vIEluZGljYXRlcyB0aGF0
IHRoZSBkZXZpY2UgY2FuIG5vIGxvbmdlciBpZGVudGlmeSB0aGUgbG9jYXRpb24gb2YgdGhlIHBo
eXNpY2FsIGZsb29yLgorICB2b2lkIGNsZWFyRmxvb3JPcmlnaW4oKTsKKworICAvLyBVc2VkIHRv
IHNpbXVsYXRlIGEgbWFqb3IgY2hhbmdlIGluIHRyYWNraW5nIGFuZCB0aGF0IGEgcmVzZXQgcG9z
ZSBldmVudCBzaG91bGQgYmUgZmlyZWQKKyAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1
Yi5pby93ZWJ4ci8jZXZlbnQtdHlwZXMKKyAgdm9pZCBzaW11bGF0ZVJlc2V0UG9zZSgpOworCisg
IC8vIFVzZWQgdG8gY29ubmVjdCBhbmQgc2VuZCBpbnB1dCBldmVudHMKKyAgV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyIHNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291
cmNlSW5pdCBpbnB1dFNvdXJjZSk7Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViRmFrZVhSSW5wdXRDb250
cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTEzZThjNzIzZmZkZWE0YzA0M2M4OThjNDgwYTQ0
MWU2NmJjZGU5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsNzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZha2VYUklucHV0Q29udHJv
bGxlci5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dl
YkZha2VYUklucHV0Q29udHJvbGxlcjo6fldlYkZha2VYUklucHV0Q29udHJvbGxlcigpID0gZGVm
YXVsdDsKKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldEhhbmRlZG5lc3MoWFJI
YW5kZWRuZXNzKSB7IH0KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFRhcmdl
dFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlKSB7IH0KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXI6OnNldFByb2ZpbGVzKFZlY3RvcjxTdHJpbmc+KSB7IH0KKwordm9pZCBXZWJGYWtlWFJJ
bnB1dENvbnRyb2xsZXI6OnNldEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGdy
aXBPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oZ3Jp
cE9yaWdpbik7CisgICAgVU5VU0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lk
IFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6Y2xlYXJHcmlwT3JpZ2luKCkgeyB9CisKK3ZvaWQg
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQb2ludGVyT3JpZ2luKEZha2VYUlJpZ2lkVHJh
bnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24pCit7CisgICAg
VU5VU0VEX1BBUkFNKHBvaW50ZXJPcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShlbXVsYXRlZFBv
c2l0aW9uKTsKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmRpc2Nvbm5lY3Qo
KSB7IH0KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnJlY29ubmVjdCgpIHsgfQor
Cit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c3RhcnRTZWxlY3Rpb24oKSB7IH0KKwor
dm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmVuZFNlbGVjdGlvbigpIHsgfQorCit2b2lk
IFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2ltdWxhdGVTZWxlY3QoKSB7IH0KKwordm9pZCBX
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFN1cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VY
UkJ1dHRvblN0YXRlSW5pdD4pIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6
dXBkYXRlQnV0dG9uU3RhdGUoRmFrZVhSQnV0dG9uU3RhdGVJbml0KSB7IH0KKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMmZiYjlmMTY3M2FmMWFmOTUxZTQzYTczNzQwOGE5N2Y0MDc2MTZlOAotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyLmgKQEAgLTAsMCArMSw3MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkZha2VYUkJ1dHRvblN0YXRlSW5pdC5o
IgorI2luY2x1ZGUgIkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oIgorI2luY2x1ZGUgIlhSSGFu
ZGVkbmVzcy5oIgorI2luY2x1ZGUgIlhSVGFyZ2V0UmF5TW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9S
ZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK2NsYXNzIFdlYkZha2VYUklucHV0Q29udHJvbGxlciA6IHB1YmxpYyBSZWZDb3VudGVk
PFdlYkZha2VYUklucHV0Q29udHJvbGxlcj4geworcHVibGljOgordmlydHVhbCB+V2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyKCk7CisKK3ZvaWQgc2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3MpOwor
Cit2b2lkIHNldFRhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlKTsKKwordm9pZCBzZXRQcm9m
aWxlcyhWZWN0b3I8U3RyaW5nPik7CisKK3ZvaWQgc2V0R3JpcE9yaWdpbihGYWtlWFJSaWdpZFRy
YW5zZm9ybUluaXQgZ3JpcE9yaWdpbiwgYm9vbCBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOwor
Cit2b2lkIGNsZWFyR3JpcE9yaWdpbigpOworCit2b2lkIHNldFBvaW50ZXJPcmlnaW4oRmFrZVhS
UmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbiA9
IGZhbHNlKTsKKwordm9pZCBkaXNjb25uZWN0KCk7CisKK3ZvaWQgcmVjb25uZWN0KCk7CisKK3Zv
aWQgc3RhcnRTZWxlY3Rpb24oKTsKKwordm9pZCBlbmRTZWxlY3Rpb24oKTsKKwordm9pZCBzaW11
bGF0ZVNlbGVjdCgpOworCit2b2lkIHNldFN1cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1
dHRvblN0YXRlSW5pdD4pOworCit2b2lkIHVwZGF0ZUJ1dHRvblN0YXRlKEZha2VYUkJ1dHRvblN0
YXRlSW5pdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYkZh
a2VYUklucHV0Q29udHJvbGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWMzOTEyZTMyMjk2YWQwMDcw
ZjY0NGE5ODI1ZTRkNDY5NzE1NGM5ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbApAQCAtMCwwICsxLDc1
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorICAgIEludGVyZmFjZU5hbWU9RmFrZVhSSW5wdXRDb250cm9sbGVy
CitdIGludGVyZmFjZSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgeworICAvLyBJbmRpY2F0ZXMg
dGhhdCB0aGUgaGFuZGVkbmVzcyBvZiB0aGUgZGV2aWNlIGhhcyBjaGFuZ2VkLgorICB2b2lkIHNl
dEhhbmRlZG5lc3MoWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3MpOworCisgIC8vIEluZGljYXRlcyB0
aGF0IHRoZSB0YXJnZXQgcmF5IG1vZGUgb2YgdGhlIGRldmljZSBoYXMgY2hhbmdlZC4KKyAgdm9p
ZCBzZXRUYXJnZXRSYXlNb2RlKFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKTsKKworICAv
LyBJbmRpY2F0ZXMgdGhhdCB0aGUgbGlzdCBvZiBwcm9maWxlcyByZXByZXNlbnRpbmcgdGhlIGRl
dmljZSBoYXMgY2hhbmdlZC4KKyAgdm9pZCBzZXRQcm9maWxlcyhzZXF1ZW5jZTxET01TdHJpbmc+
IHByb2ZpbGVzKTsKKworICAvLyBTZXRzIG9yIGNsZWFycyB0aGUgcG9zaXRpb24gb2YgdGhlIGNv
bnRyb2xsZXIuICBJZiBub3Qgc2V0LCB0aGUgY29udHJvbGxlciBpcyBhc3N1bWVkIHRvCisgIC8v
IG5vdCBiZSB0cmFja2VkLgorICB2b2lkIHNldEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0IGdyaXBPcmlnaW4sIG9wdGlvbmFsIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlvbiA9IGZh
bHNlKTsKKyAgdm9pZCBjbGVhckdyaXBPcmlnaW4oKTsKKworICAvLyBTZXRzIHRoZSBwb2ludGVy
IG9yaWdpbiBmb3IgdGhlIGNvbnRyb2xsZXIuCisgIHZvaWQgc2V0UG9pbnRlck9yaWdpbihGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQgcG9pbnRlck9yaWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBlbXVs
YXRlZFBvc2l0aW9uID0gZmFsc2UpOworCisgIC8vIFRlbXBvcmFyaWx5IGRpc2Nvbm5lY3QgdGhl
IGlucHV0IGRldmljZQorICB2b2lkIGRpc2Nvbm5lY3QoKTsKKworICAvLyBSZWNvbm5lY3QgYSBk
aXNjb25uZWN0ZWQgaW5wdXQgZGV2aWNlCisgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAgLy8gU3Rh
cnQgYSBzZWxlY3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhlIHByaW1hcnkgaW5w
dXQKKyAgLy8gSWYgYSBnYW1lcGFkIGlzIHN1cHBvcnRlZCwgc2hvdWxkIHVwZGF0ZSB0aGUgc3Rh
dGUgb2YgdGhlIHByaW1hcnkgYnV0dG9uIGFjY29yZGluZ2x5LgorICB2b2lkIHN0YXJ0U2VsZWN0
aW9uKCk7CisKKyAgLy8gRW5kIHNlbGVjdGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0
aGUgcHJpbWFyeSBpbnB1dAorICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBzaG91bGQg
dXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHkuCisgIHZv
aWQgZW5kU2VsZWN0aW9uKCk7CisKKyAgLy8gU2ltdWxhdGVzIGEgc3RhcnQvZW5kU2VsZWN0aW9u
IGZvciB0aGUgY3VycmVudCBmcmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgIC8vIElmIGEg
Z2FtZXBhZCBpcyBzdXBwb3J0ZWQsIHNob3VsZCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZSBwcmlt
YXJ5IGJ1dHRvbiBhY2NvcmRpbmdseS4KKyAgdm9pZCBzaW11bGF0ZVNlbGVjdCgpOworCisgIC8v
IFVwZGF0ZXMgdGhlIHNldCBvZiBzdXBwb3J0ZWQgYnV0dG9ucywgaW5jbHVkaW5nIGFueSBpbml0
aWFsIHN0YXRlLgorICAvLyBOb3RlIHRoYXQgdGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBnZW5l
cmFsbHkgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZQorICAvLyBidXR0b25zLCBhcyB0
aGUgVUEgbWF5IHRyZWF0IHRoaXMgYXMgcmUtY3JlYXRpbmcgdGhlIEdhbWVwYWQuCisgIC8vIE5v
dGUgdGhhdCBpZiBhbnkgRmFrZVhSQnV0dG9uVHlwZSBpcyByZXBlYXRlZCB0aGUgYmVoYXZpb3Ig
aXMgdW5kZWZpbmVkLgorICB2b2lkIHNldFN1cHBvcnRlZEJ1dHRvbnMoc2VxdWVuY2U8RmFrZVhS
QnV0dG9uU3RhdGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zKTsKKworICAvLyBVc2VkIHRvIHVwZGF0
ZSB0aGUgc3RhdGUgb2YgYSBidXR0b24gY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgaW5wdXQg
c291cmNlCisgIC8vIFdpbGwgbm90IGFkZCBzdXBwb3J0IGZvciB0aGF0IGJ1dHRvbiBpZiBpdCBp
cyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC4KKyAgdm9pZCB1cGRhdGVCdXR0b25TdGF0ZShGYWtl
WFJCdXR0b25TdGF0ZUluaXQgYnV0dG9uU3RhdGUpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKaW5kZXggM2FjNGQ1MjgwMzQ0ZWE0MzYxMTM4NGUy
NjFhNWZmZGFmMmMxMzEwYy4uNTBmZDY1NjE5YzNmN2ZhMjdiYTJkMTU1Y2ZjYzZjZWNiYjQ1MTdl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAKQEAg
LTg3LDYgKzg3LDE0IEBAIHZvaWQgV2ViWFJTeXN0ZW06OnN0b3AoKQogewogfQogCitXZWJYUlRl
c3QmIFdlYlhSU3lzdGVtOjp0ZXN0KCkgY29uc3QKK3sKKyAgICBpZiAoIW1fdGVzdCkKKyAgICAg
ICAgbV90ZXN0ID0gV2ViWFJUZXN0OjpjcmVhdGUoKTsKKworICAgIHJldHVybiAqbV90ZXN0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKaW5kZXggZTlhYjE1ZDdh
ZWE0NDVkMTMzMmZjMjEyYTQ1Njg0NWRjZWQ5Y2VlMS4uZTM5NDllMGE0YjIzN2ZmMjFiYTU5M2Ix
ZDk0MTMzNmFmOTZiYTgxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
eXN0ZW0uaApAQCAtMzAsNiArMzAsNyBAQAogI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkV2ZW50VGFyZ2V0LmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQu
aCIKKyNpbmNsdWRlICJXZWJYUlRlc3QuaCIKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAj
aW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CkBA
IC01NSw2ICs1Niw4IEBAIHB1YmxpYzoKICAgICB2b2lkIGlzU2Vzc2lvblN1cHBvcnRlZChYUlNl
c3Npb25Nb2RlLCBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlJiYpOwogICAgIHZvaWQgcmVxdWVz
dFNlc3Npb24oWFJTZXNzaW9uTW9kZSwgY29uc3QgWFJTZXNzaW9uSW5pdCYsIFJlcXVlc3RTZXNz
aW9uUHJvbWlzZSYmKTsKIAorICAgIFdlYlhSVGVzdCYgdGVzdCgpIGNvbnN0OworCiBwcm90ZWN0
ZWQ6CiAgICAgV2ViWFJTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwogCkBAIC02Nyw2
ICs3MCw5IEBAIHByb3RlY3RlZDoKICAgICAvLyBBY3RpdmVET01PYmplY3QKICAgICBjb25zdCBj
aGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3Qgb3ZlcnJpZGU7CiAgICAgdm9pZCBzdG9w
KCkgb3ZlcnJpZGU7CisKK3ByaXZhdGU6CisgICAgbXV0YWJsZSBSZWZQdHI8V2ViWFJUZXN0PiBt
X3Rlc3Q7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtV2ViWFJUZXN0LmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtV2ViWFJUZXN0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWIw
YTdmYmRiMTE0Y2YyYTNmMzAwNmU3Zjg4YTg5NjM0OGVmYWE4ZAotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRlc3QuaApAQCAt
MCwwICsxLDQzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdF
QlhSKQorCisjaW5jbHVkZSAiV2ViWFJTeXN0ZW0uaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitjbGFzcyBXZWJYUlRlc3Q7CisKK2NsYXNzIFdlYlhSU3lzdGVtV2ViWFJUZXN0IGZpbmFsIHsK
K3B1YmxpYzoKKyAgICBzdGF0aWMgV2ViWFJUZXN0JiB0ZXN0KFdlYlhSU3lzdGVtJiBzeXN0ZW0p
IHsgcmV0dXJuIHN5c3RlbS50ZXN0KCk7IH0KK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRlc3QuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdlYlhSVGVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODBiZTNmMzQx
ZTk5ZTA1ZGZiNzEyMWI1YzMwMzVmZDI1OGM2MTE1ZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRlc3QuaWRsCkBAIC0wLDAg
KzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gcGFydGlhbCBpbnRlcmZhY2UgV2ViWFJTeXN0ZW0gewor
ICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2ViWFJUZXN0IHRlc3Q7Cit9Owpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJUZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
V2ViWFJUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNTc0Mjg1ZmVjNDRhYjIzYWI2ZmJkNjc4M2QxOGJj
ZWU3ZTM5YmMzCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4
ci9XZWJYUlRlc3QuY3BwCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUg
ImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSVGVzdC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK1dlYlhSVGVzdDo6fldlYlhSVGVzdCgpID0gZGVmYXVs
dDsKKwordm9pZCBXZWJYUlRlc3Q6OnNpbXVsYXRlRGV2aWNlQ29ubmVjdGlvbihGYWtlWFJEZXZp
Y2VJbml0LCBXZWJGYWtlWFJEZXZpY2VQcm9taXNlJiYpIGNvbnN0IHsgfQorCit2b2lkIFdlYlhS
VGVzdDo6c2ltdWxhdGVVc2VyQWN0aXZhdGlvbihYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5j
dGlvbiYpIHsgfQorCit2b2lkIFdlYlhSVGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMoRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+JiYpIHsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnhyL1dlYlhSVGVzdC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlRl
c3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4xNThlMjJlYjVlMzBmNjJjMjJmNGNmMWIwODM2MWEwMDI5Njc4YTgy
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlRl
c3QuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNs
dWRlICJXZWJGYWtlWFJEZXZpY2UuaCIKKyNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCisjaW5j
bHVkZSAiWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaCIKKyNpbmNsdWRlIDx3dGYv
UmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSVGVzdCA6
IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSVGVzdD4geworcHVibGljOgorICAgIHN0cnVjdCBGYWtl
WFJEZXZpY2VJbml0IHsKKyAgICAgICAgYm9vbCBzdXBwb3J0c0ltbWVyc2l2ZSB7IGZhbHNlIH07
CisgICAgICAgIFZlY3RvcjxYUlNlc3Npb25Nb2RlPiBzdXBwb3J0ZWRNb2RlczsKKyAgICAgICAg
VmVjdG9yPEZha2VYUlZpZXdJbml0PiB2aWV3czsKKworICAgICAgICBWZWN0b3I8U3RyaW5nPiBz
dXBwb3J0ZWRGZWF0dXJlczsKKworICAgICAgICBWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+IGJv
dW5kc0Nvb2RpbmF0ZXM7CisKKyAgICAgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGZsb29y
T3JpZ2luOworICAgICAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgdmlld2VyT3JpZ2luOwor
ICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFdlYlhSVGVzdD4gY3JlYXRlKCkgeyByZXR1cm4gYWRv
cHRSZWYoKm5ldyBXZWJYUlRlc3QoKSk7IH0KKyAgICB2aXJ0dWFsIH5XZWJYUlRlc3QoKTsKKwor
ICAgIHVzaW5nIFdlYkZha2VYUkRldmljZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPFdlYkZha2VYUkRldmljZT4+OworICAgIHZvaWQgc2ltdWxhdGVEZXZpY2VDb25u
ZWN0aW9uKEZha2VYUkRldmljZUluaXQsIFdlYkZha2VYUkRldmljZVByb21pc2UmJikgY29uc3Q7
CisKKyAgICAvLyBTaW11bGF0ZXMgYSB1c2VyIGFjdGl2YXRpb24gKGFrYSB1c2VyIGdlc3R1cmUp
IGZvciB0aGUgY3VycmVudCBzY29wZS4KKyAgICAvLyBUaGUgYWN0aXZhdGlvbiBpcyBvbmx5IGd1
YXJhbnRlZWQgdG8gYmUgdmFsaWQgaW4gdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGFuZCBvbmx5IGFw
cGxpZXMgdG8gV2ViWFIKKyAgICAvLyBEZXZpY2UgQVBJIG1ldGhvZHMuCisgICAgdm9pZCBzaW11
bGF0ZVVzZXJBY3RpdmF0aW9uKFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uJik7CisK
KyAgICAvLyBEaXNjb25uZWN0IGFsbCBmYWtlIGRldmljZXMKKyAgICB2b2lkIGRpc2Nvbm5lY3RB
bGxEZXZpY2VzKERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJUZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvV2ViWFJUZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMTQ4NTA1MzUwZTkzODNiMzhm
MjNiOGVlZWNjZDgzMzZjZmFhMzczCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJ4ci9XZWJYUlRlc3QuaWRsCkBAIC0wLDAgKzEsNzkgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8g
CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhS
LAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJUZXN0CitdIGludGVy
ZmFjZSBXZWJYUlRlc3QgeworICAvLyBTaW11bGF0ZXMgY29ubmVjdGluZyBhIGRldmljZSB0byB0
aGUgc3lzdGVtLgorICAvLyBVc2VkIHRvIGluc3RhbnRpYXRlIGEgZmFrZSBkZXZpY2UgZm9yIHVz
ZSBpbiB0ZXN0cy4KKyAgUHJvbWlzZTxXZWJGYWtlWFJEZXZpY2U+IHNpbXVsYXRlRGV2aWNlQ29u
bmVjdGlvbihGYWtlWFJEZXZpY2VJbml0IGluaXQpOworCisgIC8vIFNpbXVsYXRlcyBhIHVzZXIg
YWN0aXZhdGlvbiAoYWthIHVzZXIgZ2VzdHVyZSkgZm9yIHRoZSBjdXJyZW50IHNjb3BlLgorICAv
LyBUaGUgYWN0aXZhdGlvbiBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgaW4gdGhlIHBy
b3ZpZGVkIGZ1bmN0aW9uIGFuZCBvbmx5IGFwcGxpZXMgdG8gV2ViWFIKKyAgLy8gRGV2aWNlIEFQ
SSBtZXRob2RzLgorICB2b2lkIHNpbXVsYXRlVXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJB
Y3RpdmF0aW9uRnVuY3Rpb24gZik7CisKKyAgLy8gRGlzY29ubmVjdCBhbGwgZmFrZSBkZXZpY2Vz
CisgIFByb21pc2U8dm9pZD4gZGlzY29ubmVjdEFsbERldmljZXMoKTsKK307CisKK1sKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9u
YXJ5IEZha2VYUkRldmljZUluaXQgeworICAgIC8vIERlcHJlY2F0ZWQgLSB1c2UgYHN1cHBvcnRl
ZE1vZGVzYCBpbnN0ZWFkLgorICAgIHJlcXVpcmVkIGJvb2xlYW4gc3VwcG9ydHNJbW1lcnNpdmU7
CisgICAgLy8gU2VxdWVuY2Ugb2YgbW9kZXMgdGhhdCBzaG91bGQgYmUgc3VwcG9ydGVkIGJ5IHRo
aXMgZGV2aWNlLgorICAgIHNlcXVlbmNlPFhSU2Vzc2lvbk1vZGU+IHN1cHBvcnRlZE1vZGVzOwor
ICAgIHJlcXVpcmVkIHNlcXVlbmNlPEZha2VYUlZpZXdJbml0PiB2aWV3czsKKworICAgIC8vIGh0
dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI2ZlYXR1cmUtbmFtZQorICAgIC8v
IFRoZSBsaXN0IG9mIGZlYXR1cmUgbmFtZXMgdGhhdCB0aGlzIGRldmljZSBzdXBwb3J0cy4KKyAg
ICAvLyBBbnkgcmVxdWVzdHMgZm9yIGZlYXR1cmVzIG5vdCBpbiB0aGlzIGxpc3Qgc2hvdWxkIGJl
IHJlamVjdGVkLCB3aXRoIHRoZSBleGNlcHRpb24gb2YgdGhvc2UKKyAgICAvLyB0aGF0IGFyZSBn
dWFyYW50ZWVkIHJlZ2FyZGxlc3Mgb2YgZGV2aWNlIGF2YWlsYWJpbGl0eSAoZS5nLiAndmlld2Vy
JykuCisgICAgLy8gSWYgbm90IHNwZWNpZmllZC9lbXB0eSwgdGhlIGRldmljZSBzdXBwb3J0cyBu
byBmZWF0dXJlcy4KKyAgICAvLyBOT1RFOiBUaGlzIGlzIG1lYW50IHRvIGVtdWxhdGUgaGFyZHdh
cmUgc3VwcG9ydCwgbm90IHdoZXRoZXIgYSBmZWF0dXJlIGlzCisgICAgLy8gY3VycmVudGx5IGF2
YWlsYWJsZSAoZS5nLiBib3VuZHMgbm90IGJlaW5nIHRyYWNrZWQgcGVyIGJlbG93KQorICAgIHNl
cXVlbmNlPERPTVN0cmluZz4gc3VwcG9ydGVkRmVhdHVyZXM7CisKKyAgICAvLyBUaGUgYm91bmRz
IGNvb3JkaW5hdGVzLiBJZiBlbXB0eSwgbm8gYm91bmRlZCByZWZlcmVuY2Ugc3BhY2UgaXMgY3Vy
cmVudGx5IHRyYWNrZWQuCisgICAgLy8gSWYgbm90LCBtdXN0IGhhdmUgYXQgbGVhc3QgdGhyZWUg
ZWxlbWVudHMuCisgICAgc2VxdWVuY2U8RmFrZVhSQm91bmRzUG9pbnQ+IGJvdW5kc0Nvb2RpbmF0
ZXM7CisKKyAgICAvLyBBIHRyYW5zZm9ybSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBwaHlzaWNhbCBw
b3NpdGlvbiBvZiB0aGUgdXNlcidzIGZsb29yLgorICAgIC8vIElmIG5vdCBzZXQsIGluZGljYXRl
cyB0aGF0IHRoZSBkZXZpY2UgY2Fubm90IGlkZW50aWZ5IHRoZSBwaHlzaWNhbCBmbG9vci4KKyAg
ICBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZmxvb3JPcmlnaW47CisKKyAgICAvLyBuYXRpdmUg
b3JpZ2luIG9mIHRoZSB2aWV3ZXIKKyAgICAvLyBJZiBub3Qgc2V0LCB0aGUgZGV2aWNlIGlzIGN1
cnJlbnRseSBhc3N1bWVkIHRvIG5vdCBiZSB0cmFja2luZywgYW5kIHhyRnJhbWUuZ2V0Vmlld2Vy
UG9zZSBzaG91bGQKKyAgICAvLyBub3QgcmV0dXJuIGEgcG9zZS4KKyAgICAvLworICAgIC8vIFRo
aXMgc2V0cyB0aGUgdmlld2VyIG9yaWdpbiAqc2hvcnRseSBhZnRlciogaW5pdGlhbGl6YXRpb247
IHNpbmNlIHRoZSB2aWV3ZXIgb3JpZ2luIGF0IGluaXRpYWxpemF0aW9uCisgICAgLy8gaXMgdXNl
ZCB0byBwcm92aWRlIGEgcmVmZXJlbmNlIG9yaWdpbiBmb3IgYWxsIG1hdHJpY2VzLgorICAgIEZh
a2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB2aWV3ZXJPcmlnaW47Cit9OwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKaW5kZXggOTMzMzAzNGQwY2Q0OWFjOGRlZTkw
MmEwODE2NDQ4MDQzNzhjYmMyYy4uYTEyNzA1YWM4OWYwNTEwZmZlOTc5ZDBmMWMxNDM4ZDcxNzUz
ODExNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5l
c3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oCkBA
IC0zMiw3ICszMiw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVudW0gY2xhc3MgWFJIYW5kZWRu
ZXNzIHsKICAgICBOb25lLAogICAgIExlZnQsCi0gICAgUmlnaHQsCisgICAgUmlnaHQKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iZjNiODcxYzI2MTIzYzgxMjBiZjc2OTZmZmJkMzk4YTNiYjhhODI1Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNpbXVsYXRlVXNlckFj
dGl2YXRpb25GdW5jdGlvbi5oCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdt
YSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFj
ay5oIgorI2luY2x1ZGUgIkNhbGxiYWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJYUkZyYW1lOworCitjbGFz
cyBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFhS
U2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNr
IHsKK3B1YmxpYzoKKyAgICB1c2luZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJh
Y2s7CisKKyAgICB2aXJ0dWFsIENhbGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEpTQzo6
SlNWYWx1ZSkgPSAwOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8g
RU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9Y
UlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnhyL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ODBlNWU1YmYzNmY5NzE0NjRlMmZmMzE1ZTRjYWVlMmQ1MjAwZjNkCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlNpbXVsYXRlVXNlckFjdGl2YXRp
b25GdW5jdGlvbi5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Ug
QVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04KKyAqIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIKK10gY2FsbGJhY2sg
WFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gPSB2b2lkIChhbnkuLi4gYXJndW1lbnRz
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlN
b2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCmlu
ZGV4IDFmY2E0NGU0NTFiOTdjNTYwMjZlMTQ1YjUyMjMzMWY4MTY1YmFlN2YuLjRlMmQyZmZiOGVj
MzM1NTZkMWQwYTY3YjZmNjZkZDhlOWE4M2M1ZjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiBlbnVtIGNsYXNzIFhSVGFyZ2V0UmF5TW9kZSB7CiAgICAgR2F6ZSwKICAgICBU
cmFja2VkUG9pbnRlciwKLSAgICBTY3JlZW4sCisgICAgU2NyZWVuCiB9OwogCiB9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1Nv
dXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IGNkMWM3YTIyZDdhNDM3ZmYxMzdkZDRhOTM3
N2YxYTE4YzRlZmY2ZGMuLjkwNjJjYjgxYjRmZTBlNzY0NzA4YWE5YjBiNmU3YmQwNDVmZTQ3NmYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CkBAIC00MTQsNiArNDE0LDggQEAgTW9kdWxlcy93ZWJncHUvV29ya2Vy
TmF2aWdhdG9yR1BVLmNwcAogI2lmIEVOQUJMRV9XRUJYUgogCiBNb2R1bGVzL3dlYnhyL05hdmln
YXRvcldlYlhSLmNwcCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViRmFrZVhSRGV2aWNlLmNw
cCBAbm8tdW5pZnkKK01vZHVsZXMvd2VieHIvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcCBA
bm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwIEBu
by11bmlmeQogTW9kdWxlcy93ZWJ4ci9XZWJYUkZyYW1lLmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMv
d2VieHIvV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCBAbm8tdW5pZnkKQEAgLTQyNSw2ICs0Mjcs
NyBAQCBNb2R1bGVzL3dlYnhyL1dlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwIEBuby11bmlmeQogTW9k
dWxlcy93ZWJ4ci9XZWJYUlNlc3Npb24uY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9XZWJY
UlNwYWNlLmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uY3BwIEBuby11
bmlmeQorTW9kdWxlcy93ZWJ4ci9XZWJYUlRlc3QuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4
ci9XZWJYUlZpZXcuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2Uu
Y3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmNwcCBAbm8tdW5pZnkK
QEAgLTM1NTQsNiArMzU1NywxNyBAQCBKU1hTTFRQcm9jZXNzb3IuY3BwCiAKICNpZiBFTkFCTEVf
V0VCWFIKIAorSlNGYWtlWFJCb3VuZHNQb2ludC5jcHAKK0pTRmFrZVhSQnV0dG9uU3RhdGVJbml0
LmNwcAorSlNGYWtlWFJJbnB1dFNvdXJjZUluaXQuY3BwCitKU0Zha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdC5jcHAKK0pTRmFrZVhSVmlld0luaXQuY3BwCitKU1dlYkZha2VYUkRldmljZS5jcHAKK0pT
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcAorSlNXZWJYUlRlc3QuY3BwCitKU1dlYlhSU3lz
dGVtV2ViWFJUZXN0LmNwcAorSlNYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5jcHAK
KwogSlNXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKIEpTWFJFbnZpcm9ubWVudEJsZW5k
TW9kZS5jcHAKIEpTWFJFeWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggOWY5ZWQ3MzMwYTg3ZjgwMGMyYmY4ZTA5ZjU1MDgz
OGQ4ZDYwMTZiOS4uNWI1OWM3NTMxMGM0NjYyZmI2NzlhMzc4NjllYzZiOGRhZTBjZjI1MyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTUxMzAsNiArMTUxMzAsNDUgQEAKIAkJRTE4QzM1NDIxRjcxOTcwMTAwRkY2MzJEIC8qIFdl
YkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5tbTsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzQxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6
ZWRDcnlwdG9LZXlXcmFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM2
MThBQUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFw
TWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4MzI0MzRGMTU3MDA0
MTZBOTkgLyogV2ViWFJUZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlRlc3Qu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4NTI0MzRGMTU4MDA0MTZB
OTkgLyogV2ViRmFrZVhSRGV2aWNlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IFdlYkZha2VYUkRldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4
NjI0MzRGMTU4MDA0MTZBOTkgLyogV2ViWFJWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJYUlZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4NzI0
MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJWaWV3cG9ydC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5
MDg4MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUkZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJYUkZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkw
ODkyNDM0RjE1QTAwNDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA4QTI0MzRGMTVBMDA0MTZBOTkgLyogRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4QjI0MzRGMTVCMDA0MTZBOTkg
LyogV2ViWFJUZXN0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSVGVz
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4QzI0MzRGMTVDMDA0MTZB
OTkgLyogV2ViRmFrZVhSRGV2aWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJGYWtl
WFJEZXZpY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4RDI0MzRG
MTVDMDA0MTZBOTkgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4RTI0MzRGMTVEMDA0MTZBOTkgLyogV2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MDhGMjQzNEYxNUQwMDQxNkE5OSAvKiBXZWJYUldlYkdMTGF5ZXIuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSV2ViR0xMYXllci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOTQ5MDkwMjQzNEYxNUUwMDQxNkE5OSAvKiBYUlNpbXVsYXRlVXNlckFj
dGl2YXRpb25GdW5jdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNp
bXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA5MTI0MzRGMTVFMDA0MTZBOTkgLyogV2ViRmFrZVhSRGV2aWNlLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZha2VYUkRldmljZS5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDkyMjQzNEYxNUYwMDQxNkE5OSAvKiBX
ZWJYUlRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJU
ZXN0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTMyNDM0RjE2MDAw
NDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTE5NDkwOTQyNDM0RjE2MDAwNDE2QTk5IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDk1MjQzNEYxNjEwMDQxNkE5
OSAvKiBXZWJYUldlYkdMTGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViWFJXZWJHTExheWVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDk2
MjQzNEYxNjEwMDQxNkE5OSAvKiBGYWtlWFJWaWV3SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGYWtlWFJWaWV3SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA5NzI0MzRGMTYyMDA0MTZBOTkgLyogRmFrZVhSQnV0dG9uU3RhdGVJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUkJ1dHRvblN0YXRlSW5pdC5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5ODI0MzRGMTYyMDA0MTZBOTkg
LyogV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJS
aWdpZFRyYW5zZm9ybS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDk5
MjQzNEYxNjMwMDQxNkE5OSAvKiBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IEZha2VYUklucHV0U291cmNlSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOTQ5MDlBMjQzNEYxNjQwMDQxNkE5OSAvKiBXZWJYUlN5c3RlbS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJTeXN0ZW0uaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMTk0OTA5QjI0MzRGMTY0MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW1XZWJY
UlRlc3QuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSU3lzdGVtV2ViWFJUZXN0Lmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOUMyNDM0RjE2NTAwNDE2QTk5
IC8qIFdlYlhSVmlld2VyUG9zZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJWaWV3
ZXJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOUQyNDM0RjE2
NTAwNDE2QTk5IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOUUyNDM0RjE2NjAwNDE2QTk5IC8qIFdlYlhSU2Vzc2lv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJTZXNzaW9uLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOUYyNDM0RjE2NzAwNDE2QTk5IC8qIEZha2VYUkJv
dW5kc1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUkJvdW5k
c1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEEwMjQzNEYxNjcw
MDQxNkE5OSAvKiBGYWtlWFJWaWV3SW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFr
ZVhSVmlld0luaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTBBMTI0
MzRGMTY4MDA0MTZBOTkgLyogV2ViWFJQb3NlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBX
ZWJYUlBvc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTBBMjI0MzRG
MTY4MDA0MTZBOTkgLyogV2ViWFJTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
WFJTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEEzMjQzNEYx
NjkwMDQxNkE5OSAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOTQ5MEE0MjQzNEYxNjkwMDQxNkE5OSAvKiBXZWJYUlJlbmRlclN0YXRl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlJlbmRlclN0YXRlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwQTUyNDM0RjE2QTAwNDE2QTk5IC8qIFhSU2lt
dWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBY
UlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxOTQ5MEE2MjQzNEYxNkIwMDQxNkE5OSAvKiBXZWJYUlJlZmVyZW5jZVNwYWNl
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlJlZmVyZW5jZVNwYWNlLmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwQTcyNDM0RjE2QjAwNDE2QTk5IC8qIEZh
a2VYUkJvdW5kc1BvaW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGYWtlWFJCb3VuZHNQ
b2ludC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEE4MjQzNEYxNkMw
MDQxNkE5OSAvKiBGYWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IEZha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MEE5MjQzNEYxNkMwMDQxNkE5OSAvKiBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSSW5wdXRTb3VyY2VJbml0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEFBMjQzNEYxNkQwMDQxNkE5OSAv
KiBXZWJYUlN5c3RlbVdlYlhSVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXZWJYUlN5c3RlbVdlYlhSVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUUxOUFDM0U2MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEy
MjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3Jp
dGhtU0hBMjI0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRTcxODI0
REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTI3MTc4LDM4ICsyNzIxNyw3NSBAQAogCQlFMUVFOEFDNjI0MTJCMTZG
MDBFNzk0RDYgLyogd2VieHIgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVu
ID0gKAorCQkJCUUxOTQ5MDlGMjQzNEYxNjcwMDQxNkE5OSAvKiBGYWtlWFJCb3VuZHNQb2ludC5o
ICovLAorCQkJCUUxOTQ5MEE3MjQzNEYxNkIwMDQxNkE5OSAvKiBGYWtlWFJCb3VuZHNQb2ludC5p
ZGwgKi8sCisJCQkJRTE5NDkwOTcyNDM0RjE2MjAwNDE2QTk5IC8qIEZha2VYUkJ1dHRvblN0YXRl
SW5pdC5oICovLAorCQkJCUUxOTQ5MEE4MjQzNEYxNkMwMDQxNkE5OSAvKiBGYWtlWFJCdXR0b25T
dGF0ZUluaXQuaWRsICovLAorCQkJCUUxOTQ5MEE5MjQzNEYxNkMwMDQxNkE5OSAvKiBGYWtlWFJJ
bnB1dFNvdXJjZUluaXQuaCAqLywKKwkJCQlFMTk0OTA5OTI0MzRGMTYzMDA0MTZBOTkgLyogRmFr
ZVhSSW5wdXRTb3VyY2VJbml0LmlkbCAqLywKKwkJCQlFMTk0OTA5RDI0MzRGMTY1MDA0MTZBOTkg
LyogRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmggKi8sCisJCQkJRTE5NDkwOEEyNDM0RjE1QTAw
NDE2QTk5IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgKi8sCisJCQkJRTE5NDkwOTYy
NDM0RjE2MTAwNDE2QTk5IC8qIEZha2VYUlZpZXdJbml0LmggKi8sCisJCQkJRTE5NDkwQTAyNDM0
RjE2NzAwNDE2QTk5IC8qIEZha2VYUlZpZXdJbml0LmlkbCAqLywKIAkJCQlFMUVFOEFGMTI0MTJC
MTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuY3BwICovLAogCQkJCUUxRUU4QUNBMjQxMkIx
NzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5oICovLAogCQkJCUUxRUU4QjBFMjQxMkIxNzAw
MEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5pZGwgKi8sCisJCQkJRTE5NDkwOTEyNDM0RjE1RTAw
NDE2QTk5IC8qIFdlYkZha2VYUkRldmljZS5jcHAgKi8sCisJCQkJRTE5NDkwODUyNDM0RjE1ODAw
NDE2QTk5IC8qIFdlYkZha2VYUkRldmljZS5oICovLAorCQkJCUUxOTQ5MDhDMjQzNEYxNUMwMDQx
NkE5OSAvKiBXZWJGYWtlWFJEZXZpY2UuaWRsICovLAorCQkJCUUxOTQ5MDhFMjQzNEYxNUQwMDQx
NkE5OSAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwICovLAorCQkJCUUxOTQ5MDhEMjQz
NEYxNUMwMDQxNkE5OSAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCAqLywKKwkJCQlFMTk0
OTBBMzI0MzRGMTY5MDA0MTZBOTkgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCAqLywK
IAkJCQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuY3BwICovLAogCQkJCUUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxOTQ5MDk0MjQzNEYxNjAwMDQxNkE5OSAvKiBXZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThBRjAyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSRnJhbWUuY3BwICovLAogCQkJCUUxRUU4QUUzMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUkZyYW1lLmggKi8sCisJCQkJRTE5NDkwODgyNDM0RjE1OTAwNDE2QTk5IC8qIFdlYlhS
RnJhbWUuaWRsICovLAogCQkJCUUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0
U291cmNlLmNwcCAqLywKIAkJCQlFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1
dFNvdXJjZS5oICovLAorCQkJCUUxOTQ5MDg5MjQzNEYxNUEwMDQxNkE5OSAvKiBXZWJYUklucHV0
U291cmNlLmlkbCAqLywKIAkJCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1
dFNvdXJjZUFycmF5LmNwcCAqLywKIAkJCQlFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJJbnB1dFNvdXJjZUFycmF5LmggKi8sCisJCQkJRTE5NDkwOTMyNDM0RjE2MDAwNDE2QTk5IC8q
IFdlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwgKi8sCiAJCQkJRTFFRThBRTUyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8sCiAJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUG9zZS5oICovLAorCQkJCUUxOTQ5MEExMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJYUlBv
c2UuaWRsICovLAogCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5j
ZVNwYWNlLmNwcCAqLywKIAkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZl
cmVuY2VTcGFjZS5oICovLAorCQkJCUUxOTQ5MEE2MjQzNEYxNkIwMDQxNkE5OSAvKiBXZWJYUlJl
ZmVyZW5jZVNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJSZW5kZXJTdGF0ZS5jcHAgKi8sCiAJCQkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSUmVuZGVyU3RhdGUuaCAqLywKKwkJCQlFMTk0OTBBNDI0MzRGMTY5MDA0MTZBOTkgLyogV2Vi
WFJSZW5kZXJTdGF0ZS5pZGwgKi8sCiAJCQkJRTFFRThBQ0QyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSUmlnaWRUcmFuc2Zvcm0uY3BwICovLAogCQkJCUUxRUU4QjA2MjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi8sCisJCQkJRTE5NDkwOTgyNDM0RjE2MjAwNDE2QTk5
IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsICovLAogCQkJCUUxRUU4QjBGMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwICovLAogCQkJCUUxRUU4QjExMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlNlc3Npb24uaCAqLywKKwkJCQlFMTk0OTA5RTI0MzRGMTY2MDA0MTZBOTkgLyog
V2ViWFJTZXNzaW9uLmlkbCAqLywKIAkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJTcGFjZS5jcHAgKi8sCiAJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3Bh
Y2UuaCAqLywKKwkJCQlFMTk0OTBBMjI0MzRGMTY4MDA0MTZBOTkgLyogV2ViWFJTcGFjZS5pZGwg
Ki8sCiAJCQkJRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNwcCAqLywK
IAkJCQlFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCAqLywKKwkJCQlF
MTk0OTA5QTI0MzRGMTY0MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW0uaWRsICovLAorCQkJCUUxOTQ5
MEFBMjQzNEYxNkQwMDQxNkE5OSAvKiBXZWJYUlN5c3RlbVdlYlhSVGVzdC5oICovLAorCQkJCUUx
OTQ5MDlCMjQzNEYxNjQwMDQxNkE5OSAvKiBXZWJYUlN5c3RlbVdlYlhSVGVzdC5pZGwgKi8sCisJ
CQkJRTE5NDkwOTIyNDM0RjE1RjAwNDE2QTk5IC8qIFdlYlhSVGVzdC5jcHAgKi8sCisJCQkJRTE5
NDkwOEIyNDM0RjE1QjAwNDE2QTk5IC8qIFdlYlhSVGVzdC5oICovLAorCQkJCUUxOTQ5MDgzMjQz
NEYxNTcwMDQxNkE5OSAvKiBXZWJYUlRlc3QuaWRsICovLAogCQkJCUUxRUU4QjEyMjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovLAogCQkJCUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlZpZXcuaCAqLywKKwkJCQlFMTk0OTA4NjI0MzRGMTU4MDA0MTZBOTkgLyogV2Vi
WFJWaWV3LmlkbCAqLywKIAkJCQlFMUVFOEIwQjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3
ZXJQb3NlLmNwcCAqLywKIAkJCQlFMUVFOEFDNzI0MTJCMTZGMDBFNzk0RDYgLyogV2ViWFJWaWV3
ZXJQb3NlLmggKi8sCisJCQkJRTE5NDkwOUMyNDM0RjE2NTAwNDE2QTk5IC8qIFdlYlhSVmlld2Vy
UG9zZS5pZGwgKi8sCiAJCQkJRTFFRThBRUIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3Bv
cnQuY3BwICovLAogCQkJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0
LmggKi8sCisJCQkJRTE5NDkwODcyNDM0RjE1OTAwNDE2QTk5IC8qIFdlYlhSVmlld3BvcnQuaWRs
ICovLAogCQkJCUUxRUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUldlYkdMTGF5ZXIuY3Bw
ICovLAorCQkJCUUxOTQ5MDk1MjQzNEYxNjEwMDQxNkE5OSAvKiBXZWJYUldlYkdMTGF5ZXIuaCAq
LywKKwkJCQlFMTk0OTA4RjI0MzRGMTVEMDA0MTZBOTkgLyogV2ViWFJXZWJHTExheWVyLmlkbCAq
LywKIAkJCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3VuZGVkUmVmZXJlbmNlU3Bh
Y2UuaWRsICovLAogCQkJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50
QmxlbmRNb2RlLmggKi8sCiAJCQkJRTFFRThBREEyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJv
bm1lbnRCbGVuZE1vZGUuaWRsICovLApAQCAtMjcyNDcsNiArMjczMjMsOCBAQAogCQkJCUUxRUU4
QUQ3MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNlc3Npb25Jbml0LmlkbCAqLywKIAkJCQlFMUVFOEFG
RTI0MTJCMTcwMDBFNzk0RDYgLyogWFJTZXNzaW9uTW9kZS5oICovLAogCQkJCUUxRUU4QUM4MjQx
MkIxNkYwMEU3OTRENiAvKiBYUlNlc3Npb25Nb2RlLmlkbCAqLywKKwkJCQlFMTk0OTA5MDI0MzRG
MTVFMDA0MTZBOTkgLyogWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaCAqLywKKwkJ
CQlFMTk0OTBBNTI0MzRGMTZBMDA0MTZBOTkgLyogWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24uaWRsICovLAogCQkJCUUxRUU4QUQ0MjQxMkIxNzAwMEU3OTRENiAvKiBYUlNwYWNlLmlk
bCAqLywKIAkJCQlFMUVFOEIwMjI0MTJCMTcwMDBFNzk0RDYgLyogWFJTeXN0ZW0uaWRsICovLAog
CQkJCUUxRUU4QUVBMjQxMkIxNzAwMEU3OTRENiAvKiBYUlRhcmdldFJheU1vZGUuaCAqLywKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRl
eCAxODgyYTllZmZlMjQwYzQ1OWJkNWQzNDI2MTdhMGNkOTMzYzJkODg5Li5jN2MwY2VjYjE0M2Vm
NzA0YjcwNTI5ZDI0Y2M0ODk2NWNjMzJhN2VkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC03NSw2ICs3NSw4IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKICAgICBtYWNybyhFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCkgXAogICAg
IG1hY3JvKEV4dGVuZGFibGVFdmVudCkgXAogICAgIG1hY3JvKEV4dGVuZGFibGVNZXNzYWdlRXZl
bnQpIFwKKyAgICBtYWNybyhGYWtlWFJEZXZpY2UpIFwKKyAgICBtYWNybyhGYWtlWFJJbnB1dENv
bnRyb2xsZXIpIFwKICAgICBtYWNybyhGZXRjaEV2ZW50KSBcCiAgICAgbWFjcm8oRmlsZVN5c3Rl
bSkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW1EaXJlY3RvcnlFbnRyeSkgXApAQCAtMjUwLDYgKzI1
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhYUlNlc3Npb25FdmVudCkgXAog
ICAgIG1hY3JvKFhSU3BhY2UpIFwKICAgICBtYWNybyhYUlN5c3RlbSkgXAorICAgIG1hY3JvKFhS
VGVzdCkgXAogICAgIG1hY3JvKFhSVmlldykgXAogICAgIG1hY3JvKFhSVmlld2VyUG9zZSkgXAog
ICAgIG1hY3JvKFhSVmlld3BvcnQpIFwK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395954</attachid>
            <date>2020-04-09 08:25:51 -0700</date>
            <delta_ts>2020-04-14 18:47:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209859-20200409172546.patch</filename>
            <type>text/plain</type>
            <size>86885</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUwODM2ZmM5MDI4ODMz
NTkyMWE1NWFjYzI3NzFjOGRmOTAzZmVjNC4uMGExNDFiNjFiMDliNDE0MzVhODI4MWQyZTA2ZmQ1
NTIwMDliMmM5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg4IEBACisyMDIwLTA0LTA5ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViWFIgdGVzdGluZyBpcyBoYXJkIGFzIGl0IG1pZ2h0IGludm9sdmUgaW50
ZXJhY3Rpb24gd2l0aCBhY3R1YWwKKyAgICAgICAgZGV2aWNlcy4gVGhhdCdzIHdoeSB0aGUgV2Vi
WFIgdGVzdGluZworICAgICAgICBBUEkgKGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8v
d2VieHItdGVzdC1hcGkvKSB3YXMKKyAgICAgICAgcHJvcG9zZWQuIEluIGZhY3QsIGFsbCB0aGUg
Y3VycmVudCBXZWJYUiB0ZXN0cyBmcm9tCisgICAgICAgIHdlYi1wbGF0Zm9ybS10ZXN0cyBhcmUg
dXNpbmcgdGhhdCB0ZXN0aW5nIEFQSS4gVGhpcyBuZXcgdGVzdGluZworICAgICAgICBBUEkgc3Vw
cGxlbWVudHMgbmF2aWdhdG9yLnhyIGFuZCBpcyBhY2Nlc3NlZCB0aHJvdWdoCisgICAgICAgIG5h
dmlnYXRvci54ci50ZXN0LgorCisgICAgICAgIFdlJ3JlIGFkZGluZyB0aGUgcmVxdWlyZWQgSURM
cyBhbmQgdmVyeSBiYXNpYyAobW9zdGx5IGVtcHR5KQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMg
Zm9yIHRlc3RpbmcgbWV0aG9kcy4gV2UncmUgYWRkaW5nIHRlc3RpbmcKKyAgICAgICAgaW5mcmFz
dHJ1Y3R1cmUsIGFkZGluZyB0ZXN0cyBtYWtlIG5vIHNlbnNlIGZvciB0aGlzIGNoYW5nZS4KKwor
ICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6
CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXZWJYUlN5c3RlbTo6dGVzdCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9X
ZWJYUlN5c3RlbS5oOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRl
c3QuaDogQWRkZWQuCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdlYlhSVGVz
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaDoKKyAgICAgICAgKiBTb3Vy
Y2VzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oOiBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCisgICAgICAgICogcGFnZS9SdW50aW1l
RW5hYmxlZEZlYXR1cmVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNldFdlYlhSVGVzdEVuYWJsZWQpOiBOZXcgcnVudGltZQorICAgICAgICBmbGFnIGZv
ciBXZWJYUlRlc3QgQVBJLiBDYW4gYmUgc2V0IHRvIHRydWUgb25seSB3aGVuIEVuYWJsZVdlYlhS
IGlzIHRydWUuCisgICAgICAgICogcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg6CisgICAg
ICAgIChXZWJDb3JlOjpSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjp3ZWJYUlRlc3RFbmFibGVkIGNv
bnN0KToKKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUkJvdW5kc1BvaW50Lmg6IEFkZGVkLgorICAg
ICAgICAqIHRlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5n
L0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFr
ZVhSSW5wdXRTb3VyY2VJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSSW5w
dXRTb3VyY2VJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJSaWdpZFRy
YW5zZm9ybUluaXQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlZpZXdJbml0Lmg6
IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSVmlld0luaXQuaWRsOiBBZGRlZC4KKyAg
ICAgICAgKiB0ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzZXRWaWV3cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJG
YWtlWFJEZXZpY2U6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2
aWNlOjpzZXRWaWV3ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNl
OjpjbGVhclZpZXdlck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6
OnNpbXVsYXRlVmlzaWJpbGl0eUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJE
ZXZpY2U6OnNldEJvdW5kc0dlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRl
dmljZTo6c2V0Rmxvb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNl
OjpjbGVhckZsb29yT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6
c2ltdWxhdGVSZXNldFBvc2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpz
aW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbik6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtl
WFJEZXZpY2UuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHA6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRI
YW5kZWRuZXNzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6
c2V0VGFyZ2V0UmF5TW9kZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXI6OnNldFByb2ZpbGVzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29u
dHJvbGxlcjo6c2V0R3JpcE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXI6OmNsZWFyR3JpcE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXI6OnNldFBvaW50ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6cmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c3RhcnRTZWxlY3Rpb24pOgorICAgICAgICAoV2Vi
Q29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjplbmRTZWxlY3Rpb24pOgorICAgICAgICAo
V2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVjdCk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFN1cHBvcnRlZEJ1dHRv
bnMpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRhdGVC
dXR0b25TdGF0ZSk6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIu
aDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRs
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpzaW11bGF0ZURldmljZUNvbm5lY3Rpb24gY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlhSVGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMpOgorICAgICAg
ICAqIHRlc3RpbmcvV2ViWFJUZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJU
ZXN0OjpjcmVhdGUpOgorICAgICAgICAqIHRlc3RpbmcvV2ViWFJUZXN0LmlkbDogQWRkZWQuCisg
ICAgICAgICogdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oOiBBZGRl
ZC4KKyAgICAgICAgKiB0ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlk
bDogQWRkZWQuCisKIDIwMjAtMDQtMDggIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29t
PgogCiAgICAgICAgIEVuYWJsZSB0aGUgdXNlIG9mIFhDQnVpbGQgYnkgZGVmYXVsdCBpbiBBcHBs
ZSBidWlsZHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0IGIvU291
cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggOTEyMjMwMTc4YzFkMmEzOTM1YjIwOWE3
OTlhNzczNTliZTc3ZDQ1NS4uY2U5MzllYzk4NDhmYTQ1ODVlODRkZmZjMzI3YTM5NjQxMWNkZGE0
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKKysrIGIvU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTE1OSw2ICsxNTksNyBAQCBzZXQoV2ViQ29yZV9Q
UklWQVRFX0lOQ0xVREVfRElSRUNUT1JJRVMKICAgICAiJHtXRUJDT1JFX0RJUn0vc3ZnL2dyYXBo
aWNzIgogICAgICIke1dFQkNPUkVfRElSfS9zdmcvZ3JhcGhpY3MvZmlsdGVycyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vc3ZnL3Byb3BlcnRpZXMiCisgICAgIiR7V0VCQ09SRV9ESVJ9L3Rlc3Rpbmci
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3dlYnNvY2tldHMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3dv
cmtlcnMiCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3dvcmtlcnMvc2VydmljZSIKQEAgLTExOTQsNiAr
MTE5NSw3IEBAIGlmIChFTkFCTEVfV0VCWFIpCiAgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJT
ZXNzaW9uLmlkbAogICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSU3BhY2UuaWRsCiAgICAgICAg
IE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaWRsCisgICAgICAgIE1vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW1XZWJYUlRlc3QuaWRsCiAgICAgICAgIE1vZHVsZXMvd2VieHIvV2ViWFJWaWV3Lmlk
bAogICAgICAgICBNb2R1bGVzL3dlYnhyL1dlYlhSVmlld2VyUG9zZS5pZGwKICAgICAgICAgTW9k
dWxlcy93ZWJ4ci9XZWJYUlZpZXdwb3J0LmlkbApAQCAtMTY1Niw2ICsxNjU4LDI1IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwCiApCiAKKworaWYgKEVOQUJMRV9XRUJYUikKKyAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQm91
bmRzUG9pbnQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbAor
ICAgICAgICB0ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwKKyAgICAgICAgdGVzdGlu
Zy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSVmll
d0luaXQuaWRsCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbAorICAgICAgICB0
ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKKyAgICAgICAgdGVzdGluZy9XZWJY
UlRlc3QuaWRsCisgICAgICAgIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rp
b24uaWRsCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VT
CisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAorICAgICAgICB0ZXN0aW5nL1dl
YlhSVGVzdC5jcHAKKyAgICApCitlbmRpZiAoKQorCiAjIE1vZHVsZXMgdGhhdCB0aGUgYmluZGlu
Z3MgZ2VuZXJhdG9yIHNjcmlwdHMgbWF5IHVzZQogc2V0KFNDUklQVFNfUkVTT0xWRV9TVVBQTEVN
RU5UQUwKICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGU5MjU2OGYwNzIyOTE2YWVhOTI4NTg2
YzY0OTc2MzI4NzA1ZmU5NS4uZDQ4MWJmNjQxNzIyOTFlMDYyNGQ0ZjY2NmQ5Y2M1MGUxYjMyOTY3
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9T
b3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC00NzMsNiArNDczLDcgQEAgSlNf
QklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlNlc3Np
b24uaWRsIFwKICAgICAkKFdlYkNvcmUpL01vZHVsZXMvd2VieHIvV2ViWFJTcGFjZS5pZGwgXAog
ICAgICQoV2ViQ29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5pZGwgXAorICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdlYlhSVGVzdC5pZGwgXAogICAgICQoV2Vi
Q29yZSkvTW9kdWxlcy93ZWJ4ci9XZWJYUlZpZXdlclBvc2UuaWRsIFwKICAgICAkKFdlYkNvcmUp
L01vZHVsZXMvd2VieHIvV2ViWFJWaWV3LmlkbCBcCiAgICAgJChXZWJDb3JlKS9Nb2R1bGVzL3dl
YnhyL1dlYlhSVmlld3BvcnQuaWRsIFwKQEAgLTExMTgsNiArMTExOSwxNSBAQCBKU19CSU5ESU5H
X0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL01vY2tXZWJBdXRoZW50aWNhdGlvbkNv
bmZpZ3VyYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvU2VydmljZVdvcmtlcklu
dGVybmFscy5pZGwgXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9UeXBlQ29udmVyc2lvbnMuaWRs
IFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbCBcCisgICAgJChXZWJD
b3JlKS90ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkv
dGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rl
c3RpbmcvRmFrZVhSVmlld0luaXQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29u
dHJvbGxlci5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9XZWJYUlRlc3QuaWRsIFwKKyAg
ICAkKFdlYkNvcmUpL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRs
IFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvQWJzdHJhY3RXb3JrZXIuaWRsIFwKICAgICAkKFdl
YkNvcmUpL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2NvcGUuaWRsIFwKICAgICAkKFdl
YkNvcmUpL3dvcmtlcnMvV29ya2VyLmlkbCBcCkBAIC0xODcxLDQgKzE4ODEsMyBAQCAkKFdlYkNv
cmVfQlVJTFRJTlNfV1JBUFBFUlNfUEFUVEVSTlMpIDogJChXZWJDb3JlX0JVSUxUSU5TX1NPVVJD
RVMpIFdlYkNvcmVfQlVJTAogYWxsIDogJChub3RkaXIgJChXZWJDb3JlX0JVSUxUSU5TX1NPVVJD
RVM6JS5qcz0lQnVpbHRpbnMuaCkpICQoV2ViQ29yZV9CVUlMVElOU19XUkFQUEVSUykKIAogIyAt
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhy
L1dlYlhSU3lzdGVtLmNwcAppbmRleCAzYWM0ZDUyODAzNDRlYTQzNjExMzg0ZTI2MWE1ZmZkYWYy
YzEzMTBjLi41MGZkNjU2MTljM2Y3ZmEyN2JhMmQxNTVjZmNjNmNlY2JiNDUxN2U1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmNwcApAQCAtODcsNiArODcs
MTQgQEAgdm9pZCBXZWJYUlN5c3RlbTo6c3RvcCgpCiB7CiB9CiAKK1dlYlhSVGVzdCYgV2ViWFJT
eXN0ZW06OnRlc3QoKSBjb25zdAoreworICAgIGlmICghbV90ZXN0KQorICAgICAgICBtX3Rlc3Qg
PSBXZWJYUlRlc3Q6OmNyZWF0ZSgpOworCisgICAgcmV0dXJuICptX3Rlc3Q7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaAppbmRleCBlOWFiMTVkN2FlYTQ0NWQxMzMy
ZmMyMTJhNDU2ODQ1ZGNlZDljZWUxLi45NTkwNjNmZTFjNmM1N2VlY2QxZGNjNjRlNDhkYWM0Y2Vm
MDUzYWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lz
dGVtLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCkBA
IC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQWN0aXZlRE9NT2JqZWN0LmgiCiAjaW5jbHVkZSAi
RXZlbnRUYXJnZXQuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1
ZGUgIldlYlhSVGVzdC5oIgogI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKICNpbmNsdWRlIDx3
dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KQEAgLTQ3LDcgKzQ4
LDcgQEAgcHVibGljOgogICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViWFJTZXNzaW9uPj47CiAKICAgICBzdGF0aWMgUmVm
PFdlYlhSU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotICAgIHZpcnR1
YWwgfldlYlhSU3lzdGVtKCk7CisgICAgfldlYlhSU3lzdGVtKCk7CiAKICAgICB1c2luZyBSZWZD
b3VudGVkPFdlYlhSU3lzdGVtPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTeXN0
ZW0+OjpkZXJlZjsKQEAgLTU1LDYgKzU2LDggQEAgcHVibGljOgogICAgIHZvaWQgaXNTZXNzaW9u
U3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUsIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UmJik7CiAg
ICAgdm9pZCByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlLCBjb25zdCBYUlNlc3Npb25Jbml0
JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYpOwogCisgICAgV2ViWFJUZXN0JiB0ZXN0KCkgY29u
c3Q7CisKIHByb3RlY3RlZDoKICAgICBXZWJYUlN5c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0
Jik7CiAKQEAgLTY3LDYgKzcwLDkgQEAgcHJvdGVjdGVkOgogICAgIC8vIEFjdGl2ZURPTU9iamVj
dAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVycmlkZTsK
ICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBtdXRhYmxlIFJlZlB0
cjxXZWJYUlRlc3Q+IG1fdGVzdDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRlc3Qu
aCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW1XZWJYUlRlc3QuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5lYjBhN2ZiZGIxMTRjZjJhM2YzMDA2ZTdmODhhODk2MzQ4ZWZhYThkCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdl
YlhSVGVzdC5oCkBAIC0wLDAgKzEsNDMgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSVGVzdDsKKworY2xhc3MgV2ViWFJTeXN0ZW1XZWJY
UlRlc3QgZmluYWwgeworcHVibGljOgorICAgIHN0YXRpYyBXZWJYUlRlc3QmIHRlc3QoV2ViWFJT
eXN0ZW0mIHN5c3RlbSkgeyByZXR1cm4gc3lzdGVtLnRlc3QoKTsgfQorfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdlYlhSVGVzdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtV2ViWFJUZXN0LmlkbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lMjkzNDU5ZjBiY2RhNjQ1ZTQzNWQ1M2E0MDk5YzFlYjRlYjRkMTYxCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbVdlYlhSVGVz
dC5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUlRlc3QsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIKK10gcGFydGlhbCBpbnRlcmZh
Y2UgV2ViWFJTeXN0ZW0geworICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgV2Vi
WFJUZXN0IHRlc3Q7Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oCmluZGV4IDkzMzMwMzRkMGNkNDlhYzhk
ZWU5MDJhMDgxNjQ0ODA0Mzc4Y2JjMmMuLmExMjcwNWFjODlmMDUxMGZmZTk3OWQwZjFjMTQzOGQ3
MTc1MzgxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5k
ZWRuZXNzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3Mu
aApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIFhSSGFu
ZGVkbmVzcyB7CiAgICAgTm9uZSwKICAgICBMZWZ0LAotICAgIFJpZ2h0LAorICAgIFJpZ2h0CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJ4ci9YUlRhcmdldFJheU1vZGUuaAppbmRleCAxZmNhNDRlNDUxYjk3YzU2MDI2ZTE0NWI1MjIz
MzFmODE2NWJhZTdmLi40ZTJkMmZmYjhlYzMzNTU2ZDFkMGE2N2I2ZjY2ZGQ4ZTlhODNjNWY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKQEAg
LTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogZW51bSBjbGFzcyBYUlRhcmdldFJh
eU1vZGUgewogICAgIEdhemUsCiAgICAgVHJhY2tlZFBvaW50ZXIsCi0gICAgU2NyZWVuLAorICAg
IFNjcmVlbgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCBi
MjcwNTBkNjJkMjkzOWI2YmNkNTMwYzNhMTk0Y2E3MGI5ZDY1ODU3Li5lNDhiZmU5MDZlYmVkMDA0
NGUzN2Q0ODk1ZmIwZjc3N2ZhNDNiNzIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDM0LDYgKzQzNCwx
MCBAQCBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlm
eQogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVuaWZ5CiAKK3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmNwcCBAbm8tdW5pZnkKK3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVy
LmNwcCBAbm8tdW5pZnkKK3Rlc3RpbmcvV2ViWFJUZXN0LmNwcCBAbm8tdW5pZnkKKwogI2VuZGlm
CiAKIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RDYWNoZS5jcHAKQEAgLTM1NTUsNiArMzU1OSwxNiBA
QCBKU1hTTFRQcm9jZXNzb3IuY3BwCiAKICNpZiBFTkFCTEVfV0VCWFIKIAorSlNGYWtlWFJCb3Vu
ZHNQb2ludC5jcHAKK0pTRmFrZVhSQnV0dG9uU3RhdGVJbml0LmNwcAorSlNGYWtlWFJJbnB1dFNv
dXJjZUluaXQuY3BwCitKU0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5jcHAKK0pTRmFrZVhSVmll
d0luaXQuY3BwCitKU1dlYkZha2VYUkRldmljZS5jcHAKK0pTV2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyLmNwcAorSlNXZWJYUlRlc3QuY3BwCitKU1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0
aW9uLmNwcAorCiBKU1dlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmNwcAogSlNYUkVudmlyb25t
ZW50QmxlbmRNb2RlLmNwcAogSlNYUkV5ZS5jcHAKQEAgLTM1NzgsNiArMzU5Miw3IEBAIEpTWFJT
ZXNzaW9uSW5pdC5jcHAKIEpTWFJTZXNzaW9uTW9kZS5jcHAKIEpTV2ViWFJTcGFjZS5jcHAKIEpT
V2ViWFJTeXN0ZW0uY3BwCitKU1dlYlhSU3lzdGVtV2ViWFJUZXN0LmNwcAogSlNYUlRhcmdldFJh
eU1vZGUuY3BwCiBKU1dlYlhSVmlldy5jcHAKIEpTV2ViWFJWaWV3ZXJQb3NlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU5
NzllYzMyNmU1YmVhMGM1NTJkMjVkZmMzMzM0MWY1MDU1Y2U0YTEuLmY1OTU3M2M0MGEyNzA4NTEy
NmEyY2RlNjVkMDZjMDgwNjllNzlkNTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MTQyLDggKzE1MTQyLDQ3IEBACiAJCUUx
ODUzNjgyMUY0RTQ3MjcwMEZFMDkxQiAvKiBXZWJBcmNoaXZlUmVzb3VyY2VGcm9tTlNBdHRyaWJ1
dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291cmNlRnJv
bU5TQXR0cmlidXRlZFN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4
QzM1NDExRjcxOTZDRDAwRkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFu
ZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJjZUhhbmRs
ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4QzM1NDIxRjcxOTcwMTAwRkY2
MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5tbSAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5tbTsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzREMyNDNGNzFDQjAwOTI0N0Q2IC8qIEZh
a2VYUklucHV0U291cmNlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSSW5w
dXRTb3VyY2VJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzREQy
NDNGNzFDQzAwOTI0N0Q2IC8qIFdlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNERTI0M0Y3MUNEMDA5MjQ3RDYg
LyogRmFrZVhSQnV0dG9uU3RhdGVJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEZha2VYUkJ1dHRvblN0YXRlSW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMThEODNERjI0M0Y3MUNEMDA5MjQ3RDYgLyogRmFrZVhSVmlld0luaXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSVmlld0luaXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTAyNDNGNzFDRTAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJYUlRlc3QuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFMTI0M0Y3MUNFMDA5MjQ3RDYgLyogV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThE
ODNFMjI0M0Y3MUNGMDA5MjQ3RDYgLyogRmFrZVhSVmlld0luaXQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEZha2VYUlZpZXdJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTE4RDgzRTMyNDNGNzFDRjAwOTI0N0Q2IC8qIEZha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTQyNDNGNzFEMDAwOTI0N0Q2IC8qIEZha2VY
UkJvdW5kc1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUkJv
dW5kc1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U1MjQzRjcx
RDEwMDkyNDdENiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U2MjQzRjcxRDEwMDkyNDdENiAvKiBGYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZha2VYUlJpZ2lkVHJh
bnNmb3JtSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U3MjQz
RjcxRDIwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYkZha2VYUkRldmljZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
OEQ4M0U4MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJYUlRlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gV2ViWFJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxOEQ4M0U5MjQzRjcxRDMwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmFrZVhSRGV2aWNlLmNwcDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUEyNDNGNzFENDAwOTI0N0Q2IC8qIEZha2VY
UklucHV0U291cmNlSW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYWtl
WFJJbnB1dFNvdXJjZUluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgz
RUIyNDNGNzFENTAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViWFJUZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUMy
NDNGNzFENTAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1
bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0VEMjQzRjcxRDYw
MDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gV2ViRmFrZVhSRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
OEQ4M0VFMjQzRjcxRDcwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0VGMjQzRjcxRDcwMDkyNDdENiAv
KiBGYWtlWFJCb3VuZHNQb2ludC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSQm91
bmRzUG9pbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNGMDI0M0Y3
MUQ4MDA5MjQ3RDYgLyogWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzQxOEFBRjEyQzAwNzczRTU5IC8q
IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUUxOERGMzM2MThBQUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1h
Yy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRD
cnlwdG9LZXlXcmFwTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4
NjI0MzRGMTU4MDA0MTZBOTkgLyogV2ViWFJWaWV3LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJYUlZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4NzI0
MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJWaWV3cG9ydC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5
MDg4MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUkZyYW1lLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJYUkZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkw
ODkyNDM0RjE1QTAwNDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2UuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA4RjI0MzRGMTVEMDA0MTZBOTkgLyogV2ViWFJXZWJHTExheWVyLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUldlYkdMTGF5ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMTk0OTA5MzI0MzRGMTYwMDA0MTZBOTkgLyogV2ViWFJJbnB1dFNvdXJj
ZUFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUklucHV0U291cmNlQXJyYXku
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5NDI0MzRGMTYwMDA0MTZB
OTkgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE5NDkwOTUyNDM0RjE2MTAwNDE2QTk5IC8qIFdlYlhSV2ViR0xMYXllci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUldlYkdMTGF5ZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTgyNDM0RjE2MjAwNDE2QTk5IC8qIFdlYlhS
UmlnaWRUcmFuc2Zvcm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSUmlnaWRUcmFu
c2Zvcm0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5QTI0MzRGMTY0
MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhS
U3lzdGVtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOUIyNDM0RjE2
NDAwNDE2QTk5IC8qIFdlYlhSU3lzdGVtV2ViWFJUZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJYUlN5c3RlbVdlYlhSVGVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MDlDMjQzNEYxNjUwMDQxNkE5OSAvKiBXZWJYUlZpZXdlclBvc2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSVmlld2VyUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOTQ5MDlFMjQzNEYxNjYwMDQxNkE5OSAvKiBXZWJYUlNlc3Npb24uaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSU2Vzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxOTQ5MEExMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJYUlBvc2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOTQ5MEEyMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJYUlNwYWNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTE5NDkwQTQyNDM0RjE2OTAwNDE2QTk5IC8qIFdlYlhSUmVuZGVyU3RhdGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSUmVuZGVyU3RhdGUuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTBBNjI0MzRGMTZCMDA0MTZBOTkgLyogV2ViWFJS
ZWZlcmVuY2VTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJSZWZlcmVuY2VT
cGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEFBMjQzNEYxNkQw
MDQxNkE5OSAvKiBXZWJYUlN5c3RlbVdlYlhSVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBXZWJYUlN5c3RlbVdlYlhSVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0U2MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdv
cml0aG1TSEEyMjQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5
cHRvQWxnb3JpdGhtU0hBMjI0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5
QUMzRTcxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzE2LDYgKzE4MzU1LDE2IEBACiAJCQljaGlsZHJl
biA9ICgKIAkJCQlBMTc2M0YzQjFFMjA1MUFCMDAxRDU4REUgLyogY29jb2EgKi8sCiAJCQkJNDE4
MTVDMUIxMzgzMTk2MzAwNTdBQUE0IC8qIGpzICovLAorCQkJCUUxOEQ4M0U0MjQzRjcxRDAwMDky
NDdENiAvKiBGYWtlWFJCb3VuZHNQb2ludC5oICovLAorCQkJCUUxOEQ4M0VGMjQzRjcxRDcwMDky
NDdENiAvKiBGYWtlWFJCb3VuZHNQb2ludC5pZGwgKi8sCisJCQkJRTE4RDgzREUyNDNGNzFDRDAw
OTI0N0Q2IC8qIEZha2VYUkJ1dHRvblN0YXRlSW5pdC5oICovLAorCQkJCUUxOEQ4M0UzMjQzRjcx
Q0YwMDkyNDdENiAvKiBGYWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsICovLAorCQkJCUUxOEQ4M0VB
MjQzRjcxRDQwMDkyNDdENiAvKiBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCAqLywKKwkJCQlFMThE
ODNEQzI0M0Y3MUNCMDA5MjQ3RDYgLyogRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbCAqLywKKwkJ
CQlFMThEODNFNTI0M0Y3MUQxMDA5MjQ3RDYgLyogRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmgg
Ki8sCisJCQkJRTE4RDgzRTYyNDNGNzFEMTAwOTI0N0Q2IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdC5pZGwgKi8sCisJCQkJRTE4RDgzREYyNDNGNzFDRDAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJ
bml0LmggKi8sCisJCQkJRTE4RDgzRTIyNDNGNzFDRjAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0
LmlkbCAqLywKIAkJCQk1MTcxNEVBOTFDRjY1ODk5MDA0NzIzQzQgLyogR0NPYnNlcnZhdGlvbi5j
cHAgKi8sCiAJCQkJNTE3MTRFQUExQ0Y2NTg5OTAwNDcyM0M0IC8qIEdDT2JzZXJ2YXRpb24uaCAq
LywKIAkJCQk1MTcxNEVBQjFDRjY1ODk5MDA0NzIzQzQgLyogR0NPYnNlcnZhdGlvbi5pZGwgKi8s
CkBAIC0xODM4MCw2ICsxODQyOSwxNyBAQAogCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAv
KiBUeXBlQ29udmVyc2lvbnMuaCAqLywKIAkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyog
VHlwZUNvbnZlcnNpb25zLmlkbCAqLywKIAkJCQlFMUJBNjcxOTE3NDJCRUY0MDBDMjAyNTEgLyog
V2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHAgKi8sCisJCQkJRTE4RDgzRTkyNDNGNzFEMzAwOTI0
N0Q2IC8qIFdlYkZha2VYUkRldmljZS5jcHAgKi8sCisJCQkJRTE4RDgzRUQyNDNGNzFENjAwOTI0
N0Q2IC8qIFdlYkZha2VYUkRldmljZS5oICovLAorCQkJCUUxOEQ4M0U3MjQzRjcxRDIwMDkyNDdE
NiAvKiBXZWJGYWtlWFJEZXZpY2UuaWRsICovLAorCQkJCUUxOEQ4M0REMjQzRjcxQ0MwMDkyNDdE
NiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwICovLAorCQkJCUUxOEQ4M0VFMjQzRjcx
RDcwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCAqLywKKwkJCQlFMThEODNF
MTI0M0Y3MUNFMDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCAqLywKKwkJ
CQlFMThEODNFMDI0M0Y3MUNFMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmNwcCAqLywKKwkJCQlFMThE
ODNFODI0M0Y3MUQyMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmggKi8sCisJCQkJRTE4RDgzRUIyNDNG
NzFENTAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5pZGwgKi8sCisJCQkJRTE4RDgzRUMyNDNGNzFENTAw
OTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmggKi8sCisJCQkJRTE4
RDgzRjAyNDNGNzFEODAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9u
LmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7CkBAIC0yNzIwNiwzMyArMjcyNjYsNTEgQEAKIAkJCQlFMUVFOEIwRTI0MTJCMTcwMDBF
Nzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaWRsICovLAogCQkJCUUxRUU4QUQzMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8sCiAJCQkJRTFFRThBRDEy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggKi8sCisJCQkJ
RTE5NDkwOTQyNDM0RjE2MDAwNDE2QTk5IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlk
bCAqLywKIAkJCQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8s
CiAJCQkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCAqLywKKwkJCQlF
MTk0OTA4ODI0MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJGcmFtZS5pZGwgKi8sCiAJCQkJRTFFRThC
MEQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuY3BwICovLAogCQkJCUUxRUU4
QjE3MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggKi8sCisJCQkJRTE5NDkw
ODkyNDM0RjE1QTAwNDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2UuaWRsICovLAogCQkJCUUxRUU4
QUU2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuY3BwICovLAogCQkJ
CUUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCAqLywK
KwkJCQlFMTk0OTA5MzI0MzRGMTYwMDA0MTZBOTkgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5Lmlk
bCAqLywKIAkJCQlFMUVFOEFFNTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmNwcCAqLywK
IAkJCQlFMUVFOEFFMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggKi8sCisJCQkJRTE5
NDkwQTEyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSUG9zZS5pZGwgKi8sCiAJCQkJRTFFRThBRDIy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwICovLAogCQkJCUUxRUU4
QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmggKi8sCisJCQkJRTE5
NDkwQTYyNDM0RjE2QjAwNDE2QTk5IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaWRsICovLAogCQkJ
CUUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmNwcCAqLywKIAkJ
CQlFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5oICovLAorCQkJ
CUUxOTQ5MEE0MjQzNEYxNjkwMDQxNkE5OSAvKiBXZWJYUlJlbmRlclN0YXRlLmlkbCAqLywKIAkJ
CQlFMUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8s
CiAJCQkJRTFFRThCMDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCAq
LywKKwkJCQlFMTk0OTA5ODI0MzRGMTYyMDA0MTZBOTkgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5p
ZGwgKi8sCiAJCQkJRTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5jcHAg
Ki8sCiAJCQkJRTFFRThCMTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5oICovLAor
CQkJCUUxOTQ5MDlFMjQzNEYxNjYwMDQxNkE5OSAvKiBXZWJYUlNlc3Npb24uaWRsICovLAogCQkJ
CUUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLywKIAkJCQlFMUVF
OEFDRjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oICovLAorCQkJCUUxOTQ5MEEyMjQz
NEYxNjgwMDQxNkE5OSAvKiBXZWJYUlNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEFFODI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwICovLAogCQkJCUUxRUU4QUUyMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUlN5c3RlbS5oICovLAorCQkJCUUxOTQ5MDlBMjQzNEYxNjQwMDQxNkE5OSAv
KiBXZWJYUlN5c3RlbS5pZGwgKi8sCisJCQkJRTE5NDkwQUEyNDM0RjE2RDAwNDE2QTk5IC8qIFdl
YlhSU3lzdGVtV2ViWFJUZXN0LmggKi8sCisJCQkJRTE5NDkwOUIyNDM0RjE2NDAwNDE2QTk5IC8q
IFdlYlhSU3lzdGVtV2ViWFJUZXN0LmlkbCAqLywKIAkJCQlFMUVFOEIxMjI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJWaWV3LmNwcCAqLywKIAkJCQlFMUVFOEFFMDI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJWaWV3LmggKi8sCisJCQkJRTE5NDkwODYyNDM0RjE1ODAwNDE2QTk5IC8qIFdlYlhSVmll
dy5pZGwgKi8sCiAJCQkJRTFFRThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9z
ZS5jcHAgKi8sCiAJCQkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8qIFdlYlhSVmlld2VyUG9z
ZS5oICovLAorCQkJCUUxOTQ5MDlDMjQzNEYxNjUwMDQxNkE5OSAvKiBXZWJYUlZpZXdlclBvc2Uu
aWRsICovLAogCQkJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmNw
cCAqLywKIAkJCQlFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5oICov
LAorCQkJCUUxOTQ5MDg3MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUlZpZXdwb3J0LmlkbCAqLywK
IAkJCQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJXZWJHTExheWVyLmNwcCAqLywK
KwkJCQlFMTk0OTA5NTI0MzRGMTYxMDA0MTZBOTkgLyogV2ViWFJXZWJHTExheWVyLmggKi8sCisJ
CQkJRTE5NDkwOEYyNDM0RjE1RDAwNDE2QTk5IC8qIFdlYlhSV2ViR0xMYXllci5pZGwgKi8sCiAJ
CQkJRTFFRThBRjcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlk
bCAqLywKIAkJCQlFMUVFOEIwNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5k
TW9kZS5oICovLAogCQkJCUUxRUU4QURBMjQxMkIxNzAwMEU3OTRENiAvKiBYUkVudmlyb25tZW50
QmxlbmRNb2RlLmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAppbmRleCBjNjIwNWM1ZjZlNmIxNmQ4Mjc2MWE0NTVmNWY5ZjA1Mjgw
MDRlODg4Li5mMDZlNDIyY2M2ZGE2Zjk1Y2FkOTk0ZTZjNTg5MmY0ZGZjYzAwNmY1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC03
NSw2ICs3NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhFbnRlclBpY3R1cmVJ
blBpY3R1cmVFdmVudCkgXAogICAgIG1hY3JvKEV4dGVuZGFibGVFdmVudCkgXAogICAgIG1hY3Jv
KEV4dGVuZGFibGVNZXNzYWdlRXZlbnQpIFwKKyAgICBtYWNybyhGYWtlWFJEZXZpY2UpIFwKKyAg
ICBtYWNybyhGYWtlWFJJbnB1dENvbnRyb2xsZXIpIFwKICAgICBtYWNybyhGZXRjaEV2ZW50KSBc
CiAgICAgbWFjcm8oRmlsZVN5c3RlbSkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW1EaXJlY3RvcnlF
bnRyeSkgXApAQCAtMjUwLDYgKzI1Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNy
byhYUlNlc3Npb25FdmVudCkgXAogICAgIG1hY3JvKFhSU3BhY2UpIFwKICAgICBtYWNybyhYUlN5
c3RlbSkgXAorICAgIG1hY3JvKFhSVGVzdCkgXAogICAgIG1hY3JvKFhSVmlldykgXAogICAgIG1h
Y3JvKFhSVmlld2VyUG9zZSkgXAogICAgIG1hY3JvKFhSVmlld3BvcnQpIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1J1bnRpbWVFbmFibGVkRmVhdHVyZXMuY3BwCmluZGV4IDY0YjUxZjY1Zjg2
MzJlMGM5MDM4YmI0M2IyOTk1MDU2OTNlNDI4M2MuLjMwZDNkZGJjNWFlNjc4NTYyYTE4YTc3YWNm
ZThkY2Q2ZjYzZTMzOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVu
YWJsZWRGZWF0dXJlcy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxl
ZEZlYXR1cmVzLmNwcApAQCAtNjYsNCArNjYsMTIgQEAgYm9vbCBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjp0b3VjaEV2ZW50c0VuYWJsZWQoKSBjb25zdAogfQogI2VuZGlmCiAKKyNpZiBFTkFCTEUo
V0VCWFIpCit2b2lkIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNldFdlYlhSVGVzdEVuYWJsZWQo
Ym9vbCBpc0VuYWJsZWQpCit7CisgICAgUkVMRUFTRV9BU1NFUlRfV0lUSF9NRVNTQUdFKG1fd2Vi
WFJFbmFibGVkIHx8ICFpc0VuYWJsZWQsICJXZWJYUiBkZXZpY2UgQVBJIG11c3QgYmUgZW5hYmxl
ZCB0byB1c2UgdGhlIFdlYlhSIFRlc3QgQVBJIik7CisgICAgbV93ZWJYUlRlc3RFbmFibGVkID0g
aXNFbmFibGVkOworfQorI2VuZGlmCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oIGIvU291cmNl
L1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgKaW5kZXggMWVlMGQyNzcxNTc1
MTEyYWRiODYwMjRkOTBjMThjMDZjYWI2NjkzYi4uN2IwOWI2ZmZmODZlZWE0NTZmNWY5YTJlZWIy
MTkwZWZmOGE5Y2Y1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5h
YmxlZEZlYXR1cmVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SdW50aW1lRW5hYmxlZEZl
YXR1cmVzLmgKQEAgLTE0MSw2ICsxNDEsOSBAQCBwdWJsaWM6CiAjaWYgRU5BQkxFKFdFQlhSKQog
ICAgIHZvaWQgc2V0V2ViWFJFbmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fd2ViWFJFbmFibGVk
ID0gaXNFbmFibGVkOyB9CiAgICAgYm9vbCB3ZWJYUkVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBt
X3dlYlhSRW5hYmxlZDsgfQorCisgICAgdm9pZCBzZXRXZWJYUlRlc3RFbmFibGVkKGJvb2wpOwor
ICAgIGJvb2wgd2ViWFJUZXN0RW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fd2ViWFJUZXN0RW5h
YmxlZDsgfTsKICNlbmRpZgogCiAgICAgdm9pZCBzZXRBY2Nlc3NpYmlsaXR5T2JqZWN0TW9kZWxF
bmFibGVkKGJvb2wgaXNFbmFibGVkKSB7IG1fYWNjZXNzaWJpbGl0eU9iamVjdE1vZGVsRW5hYmxl
ZCA9IGlzRW5hYmxlZDsgfQpAQCAtNDUzLDYgKzQ1Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2luc3BlY3RvckFkZGl0aW9uc0VuYWJsZWQgeyBmYWxzZSB9OwogI2lmIEVOQUJMRShXRUJYUikK
ICAgICBib29sIG1fd2ViWFJFbmFibGVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fd2ViWFJUZXN0
RW5hYmxlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIG1fYWNjZXNzaWJpbGl0eU9iamVj
dE1vZGVsRW5hYmxlZCB7IGZhbHNlIH07CiAgICAgYm9vbCBtX2FyaWFSZWZsZWN0aW9uRW5hYmxl
ZCB7IHRydWUgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91
bmRzUG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi4yZDcwNzI4NjgyMzFlYjI5Mzk0MTcxMmFlNDMwZmNhOGZiNDUwNjQzCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5o
CkBAIC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICog
YXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFC
TEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZha2VYUkJvdW5kc1Bv
aW50IHsKKyAgICBkb3VibGUgeDsKKyAgICBkb3VibGUgejsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9GYWtlWFJCb3VuZHNQb2ludC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYWY3OTU1ZDZiYzdmNDBkYjNi
NDkzYzQ1NDQwODQzYTQ3ZTNlODIzYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFJUZXN0LAorICAgIENvbmRpdGlvbmFs
PVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkJvdW5kc1BvaW50IHsKKyAgZG91YmxlIHg7IGRv
dWJsZSB6OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0
dG9uU3RhdGVJbml0LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRl
SW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVlZDk4ZWQ4ZGM0MDU2ZmUzYzgwNmRmNjgxY2QyMjVkMGU5MmIw
NjgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRv
blN0YXRlSW5pdC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNl
CisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZh
a2VYUkJ1dHRvblN0YXRlSW5pdCB7CisgICAgZW51bSBjbGFzcyBUeXBlIHsKKyAgICAgICAgR3Jp
cCwKKyAgICAgICAgVG91Y2hwYWQsCisgICAgICAgIFRodW1ic3RpY2ssCisgICAgICAgIE9wdGlv
bmFsQnV0dG9uLAorICAgICAgICBPcHRpb25hbFRodW1ic3RpY2sKKyAgICB9OworCisgICAgVHlw
ZSBidXR0b25UeXBlOworICAgIGJvb2wgcHJlc3NlZDsKKyAgICBib29sIHRvdWNoZWQ7CisgICAg
ZmxvYXQgcHJlc3NlZFZhbHVlOworICAgIGZsb2F0IHhWYWx1ZSB7IDAuMCB9OworICAgIGZsb2F0
IHlWYWx1ZSB7IDAuMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtl
WFJCdXR0b25TdGF0ZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0
b25TdGF0ZUluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYmNmMDBiYjliOTMyNzI0NjZjZDgyMDg0NzE2
OTRhOGM4NjM3YTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zh
a2VYUkJ1dHRvblN0YXRlSW5pdC5pZGwKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisv
LyBCY2F1c2UgdGhlIHByaW1hcnkgYnV0dG9uIGlzIGFsd2F5cyBndWFyYW50ZWVkIHRvIGJlIHBy
ZXNlbnQsIGFuZCBvdGhlciBidXR0b25zCisvLyBzaG91bGQgZnVsZmlsbCB0aGUgcm9sZSBvZiB2
YWxpZGF0aW5nIGFueSBzdGF0ZSBmcm9tIEZha2VYUkJ1dHRvblN0YXRlSW5pdAorLy8gdGhlIHBy
aW1hcnkgYnV0dG9uIGlzIG5vdCBwcmVzZW50IGluIHRoaXMgZW51bS4KK1sKKyAgICBFbmFibGVk
QXRSdW50aW1lPVdlYlhSVGVzdCwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZW51bSBGYWtl
WFJCdXR0b25UeXBlIHsKKyAgImdyaXAiLAorICAidG91Y2hwYWQiLAorICAidGh1bWJzdGljayIs
CisgIC8vIFJlcHJlc2VudHMgYSBidXR0b24gd2hvc2UgcG9zaXRpb24gaXMgbm90IHNwZWNpZmll
ZCBieSB0aGUgeHItc3RhbmRhcmQgbWFwcGluZy4KKyAgLy8gU2hvdWxkIGFwcGVhciBhdCBvbmUg
cGFzdCB0aGUgbGFzdCByZXNlcnZlZCBidXR0b24gaW5kZXguCisgICJvcHRpb25hbC1idXR0b24i
LAorICAvLyBSZXByZXNlbnRzIGEgdGh1bWJzdGljayB3aG9zZSBwb3NpdGlvbiBpcyBub3Qgc3Bl
Y2lmaWVkIGJ5IHRoZSB4ci1zdGFuZGFyZCBtYXBwaW5nLgorICAvLyBTaG91bGQgYXBwZWFyIGF0
IHR3byBwYXN0IHRoZSBsYXN0IHJlc2VydmVkIGJ1dHRvbiBpbmRleC4KKyAgIm9wdGlvbmFsLXRo
dW1ic3RpY2siCit9OworCisvLyBVc2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2Ygb3B0aW9uYWxs
eSBzdXBwb3J0ZWQgYnV0dG9ucy4KK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSVGVzdCwK
KyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJCdXR0b25TdGF0ZUlu
aXQgeworICByZXF1aXJlZCBGYWtlWFJCdXR0b25UeXBlIGJ1dHRvblR5cGU7CisgIHJlcXVpcmVk
IGJvb2xlYW4gcHJlc3NlZDsKKyAgcmVxdWlyZWQgYm9vbGVhbiB0b3VjaGVkOworICByZXF1aXJl
ZCBmbG9hdCBwcmVzc2VkVmFsdWU7CisgIC8vIHggYW5kIHkgdmFsdWUgYXJlIGlnbm9yZWQgaWYg
dGhlIEZha2VYUkJ1dHRvblR5cGUgaXMgbm90IHRvdWNocGFkLCB0aHVtYnN0aWNrLCBvciBvcHRp
b25hbC10aHVtYnN0aWNrCisgIGZsb2F0IHhWYWx1ZSA9IDAuMDsKKyAgZmxvYXQgeVZhbHVlID0g
MC4wOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRT
b3VyY2VJbml0LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5p
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmVjNDJhNGIzMTAwMTgyYjMwZTM0MzFlZjBhNDhkOWUxNjI4OTg0MGEK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklucHV0U291
cmNlSW5pdC5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJCdXR0b25TdGF0ZUluaXQuaCIK
KyNpbmNsdWRlICJGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCIKKyNpbmNsdWRlICJYUkV5ZS5o
IgorI2luY2x1ZGUgIlhSSGFuZGVkbmVzcy5oIgorI2luY2x1ZGUgIlhSVGFyZ2V0UmF5TW9kZS5o
IgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgRmFrZVhSSW5wdXRTb3VyY2VJbml0IHsKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzczsK
KyAgICBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZTsKKyAgICBGYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQgcG9pbnRlck9yaWdpbjsKKyAgICBWZWN0b3I8U3RyaW5nPiBwcm9maWxlczsKKyAg
ICBib29sIHNlbGVjdGlvblN0YXJ0ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgc2VsZWN0aW9uQ2xp
Y2tlZCB7IGZhbHNlIH07CisgICAgVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4gc3VwcG9y
dGVkQnV0dG9uczsKKyAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9yaWdpbjsKK307
CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjk2NmRlOGIxZjMwOGI0NDM2YmUxM2Y4NDI4MzA2MWRhZTdkN2I2Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQu
aWRsCkBAIC0wLDAgKzEsNDQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFJUZXN0LAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VY
UklucHV0U291cmNlSW5pdCB7CisgIHJlcXVpcmVkIFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNzOwor
ICByZXF1aXJlZCBYUlRhcmdldFJheU1vZGUgdGFyZ2V0UmF5TW9kZTsKKyAgcmVxdWlyZWQgRmFr
ZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW47CisgIHJlcXVpcmVkIHNlcXVlbmNl
PERPTVN0cmluZz4gcHJvZmlsZXM7CisgIC8vIHdhcyB0aGUgcHJpbWFyeSBhY3Rpb24gcHJlc3Nl
ZCB3aGVuIHRoaXMgd2FzIGNvbm5lY3RlZD8KKyAgYm9vbGVhbiBzZWxlY3Rpb25TdGFydGVkID0g
ZmFsc2U7CisgIC8vIHNob3VsZCB0aGlzIGlucHV0IHNvdXJjZSBzZW5kIGEgc2VsZWN0IGltbWVk
aWF0ZWx5IHVwb24gY29ubmVjdGlvbj8KKyAgYm9vbGVhbiBzZWxlY3Rpb25DbGlja2VkID0gZmFs
c2U7CisgIC8vIEluaXRpYWwgYnV0dG9uIHN0YXRlIGZvciBhbnkgYnV0dG9ucyBiZXlvbmQgdGhl
IHByaW1hcnkgdGhhdCBhcmUgc3VwcG9ydGVkLgorICAvLyBJZiBlbXB0eSwgb25seSB0aGUgcHJp
bWFyeSBidXR0b24gaXMgc3VwcG9ydGVkLgorICAvLyBOb3RlIHRoYXQgaWYgYW55IEZha2VYUkJ1
dHRvblR5cGUgaXMgcmVwZWF0ZWQgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKyAgc2VxdWVu
Y2U8RmFrZVhSQnV0dG9uU3RhdGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zOworICAvLyBJZiBub3Qg
c2V0IHRoZSBjb250cm9sbGVyIGlzIGFzc3VtZWQgdG8gbm90IGJlIHRyYWNrZWQuCisgIEZha2VY
UlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlwT3JpZ2luOworfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJh
bnNmb3JtSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9y
bUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5hNzE4MzI5MzgyYmIwMWU0NGVmZGIzNTNjNTVkOTVjNTdmYmIw
MmFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgewor
ICAgIFZlY3RvcjxmbG9hdD4gcG9zaXRpb247CisgICAgVmVjdG9yPGZsb2F0PiBvcmllbnRhdGlv
bjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1J
bml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40Yzk3ZDVlY2RiZjgwOTg0N2Q5NmMxNjk4ODNhMzJlNGE2M2Ri
MmQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKyAKKy8vIGh0
dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3hycmlnaWR0cmFuc2Zvcm0KK1sK
KyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSVGVzdCwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwK
K10gZGljdGlvbmFyeSBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgeworICAvLyBtdXN0IGhhdmUg
dGhyZWUgZWxlbWVudHMKKyAgcmVxdWlyZWQgc2VxdWVuY2U8ZmxvYXQ+IHBvc2l0aW9uOworICAv
LyBtdXN0IGhhdmUgZm91ciBlbGVtZW50cworICByZXF1aXJlZCBzZXF1ZW5jZTxmbG9hdD4gb3Jp
ZW50YXRpb247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJW
aWV3SW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjZmNTcwMThlODhhZjNjNjFiMGYwNzc5MDdjOGMxMGE3MGU2NTdiZGUKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmgKQEAgLTAs
MCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJY
UikKKworI2luY2x1ZGUgIkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oIgorI2luY2x1ZGUgIlhS
RXllLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3N0cnVjdCBGYWtlWFJWaWV3SW5pdCB7CisgICAgc3RydWN0IERldmljZVJlc29sdXRpb24gewor
ICAgICAgICBpbnQgd2lkdGg7CisgICAgICAgIGludCBoZWlnaHQ7CisgICAgfTsKKyAgICBzdHJ1
Y3QgRmllbGRPZlZpZXdJbml0IHsKKyAgICAgICAgZmxvYXQgdXBEZWdyZWVzOworICAgICAgICBm
bG9hdCBkb3duRGVncmVlczsKKyAgICAgICAgZmxvYXQgbGVmdERlZ3JlZXM7CisgICAgICAgIGZs
b2F0IHJpZ2h0RGVncmVlczsKKyAgICB9OworCisgICAgWFJFeWUgZXllOworICAgIFZlY3Rvcjxm
bG9hdD4gcHJvamVjdGlvbk1hdHJpeDsKKyAgICBEZXZpY2VSZXNvbHV0aW9uIHJlc29sdXRpb247
CisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHZpZXdPZmZzZXQ7CisgICAgRmllbGRPZlZp
ZXdJbml0IGZpZWxkT2ZWaWV3OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9G
YWtlWFJWaWV3SW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi40ZmFhZmNiNzcyMzMzM2Q2MzYzM2Q3NTlkYjEyMjIwMGIxYzZhOWFm
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5p
dC5pZGwKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUaGlzIHJlcHJlc2VudHMg
dGhlIG5hdGl2ZSByZXNvbHV0aW9uIG9mIHRoZSBkZXZpY2UsIGJ1dCBtYXkgbm90IHJlZmxlY3Qg
dGhlIHZpZXdwb3J0IGV4cG9zZWQgdG8gdGhlIHBhZ2UuCisvLyBodHRwczovL2ltbWVyc2l2ZS13
ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cnZpZXdwb3J0CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUlRlc3QsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRGV2
aWNlUmVzb2x1dGlvbiB7CisgICAgcmVxdWlyZWQgbG9uZyB3aWR0aDsKKyAgICByZXF1aXJlZCBs
b25nIGhlaWdodDsKK307CisKKy8vIEEgc2V0IG9mIDQgYW5nbGVzIHdoaWNoIGRlc2NyaWJlIHRo
ZSB2aWV3IGZyb20gYSBjZW50ZXIgcG9pbnQsIHVuaXRzIGFyZSBkZWdyZWVzLgorWworICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViWFJUZXN0LAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0
aW9uYXJ5IEZha2VYUkZpZWxkT2ZWaWV3SW5pdCB7CisgIHJlcXVpcmVkIGZsb2F0IHVwRGVncmVl
czsKKyAgcmVxdWlyZWQgZmxvYXQgZG93bkRlZ3JlZXM7CisgIHJlcXVpcmVkIGZsb2F0IGxlZnRE
ZWdyZWVzOworICByZXF1aXJlZCBmbG9hdCByaWdodERlZ3JlZXM7Cit9OworCisvLyBodHRwczov
L2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cnZpZXcKK1sKKyAgICBFbmFibGVkQXRS
dW50aW1lPVdlYlhSVGVzdCwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBG
YWtlWFJWaWV3SW5pdCB7CisgIHJlcXVpcmVkIFhSRXllIGV5ZTsKKyAgLy8gaHR0cHM6Ly9pbW1l
cnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jdmlldy1wcm9qZWN0aW9uLW1hdHJpeAorICByZXF1
aXJlZCBzZXF1ZW5jZTxmbG9hdD4gcHJvamVjdGlvbk1hdHJpeDsKKyAgLy8gaHR0cHM6Ly9pbW1l
cnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhyd2ViZ2xsYXllci1nZXR2aWV3cG9ydAor
ICByZXF1aXJlZCBGYWtlWFJEZXZpY2VSZXNvbHV0aW9uIHJlc29sdXRpb247CisgIC8vIGh0dHBz
Oi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3ZpZXctb2Zmc2V0CisgIC8vIFRoaXMg
aXMgdGhlIG9yaWdpbiBvZiB0aGUgdmlldyBpbiB0aGUgdmlld2VyIHNwYWNlLiBJbiBvdGhlciB3
b3JkcywgdGhpcyBpcworICAvLyBhIHRyYW5zZm9ybSBmcm9tIHRoZSB2aWV3IHNwYWNlIHRvIHRo
ZSB2aWV3ZXIgc3BhY2UuCisgIHJlcXVpcmVkIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB2aWV3
T2Zmc2V0OworICAvLyBUaGlzIGlzIGFuIG9wdGlvbmFsIG1lYW5zIG9mIHNwZWNpZnlpbmcgYSBk
ZWNvbXBvc2VkIGZvcm0gb2YgdGhlIHByb2plY3Rpb24KKyAgLy8gbWF0cml4LiAgSWYgc3BlY2lm
aWVkLCB0aGUgcHJvamVjdGlvbk1hdHJpeCBzaG91bGQgYmUgaWdub3JlZC4KKyAgLy8gQW55IHRl
c3QgdGhhdCB3aXNoZXMgdG8gdGVzdCBjbGlwIHBsYW5lcyBvciBzaW1pbGFyIGZlYXR1cmVzIHRo
YXQgd291bGQgcmVxdWlyZQorICAvLyBkZWNvbXBvc2luZy9yZWNvbXBvc2luZyB0aGUgcHJvamVj
dGlvbk1hdHJpeCBzaG91bGQgdXNlIHRoaXMgaW5zdGVhZCBvZgorICAvLyB0aGUgcHJvamVjdGlv
biBtYXRyaXguCisgIEZha2VYUkZpZWxkT2ZWaWV3SW5pdCBmaWVsZE9mVmlldzsKK307CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmNhNTEz
MWZmOGUwZWJiNTgwMzk3M2U5YzZlOTQ4MDYwMjEzNjFmYgotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcApAQCAtMCwwICsxLDY4IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJGYWtlWFJE
ZXZpY2UuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURl
ZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgiCisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNldFZpZXdzKFZlY3RvcjxG
YWtlWFJWaWV3SW5pdD4pIHsgfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6ZGlzY29ubmVjdChE
T01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAgIHByb21pc2UucmVzb2x2
ZSgpOworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Vmlld2VyT3JpZ2luKEZha2VYUlJp
Z2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBV
TlVTRURfUEFSQU0ob3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oZW11bGF0ZWRQb3NpdGlvbik7
Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpjbGVhclZpZXdlck9yaWdpbigpIHsgfQorCit2
b2lkIFdlYkZha2VYUkRldmljZTo6c2ltdWxhdGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0
eVN0YXRlKSB7IH0KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNldEJvdW5kc0dlb21ldHJ5KFZl
Y3RvcjxGYWtlWFJCb3VuZHNQb2ludD4pIHsgfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0
Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0KSB7IH0KKwordm9pZCBXZWJGYWtl
WFJEZXZpY2U6OmNsZWFyRmxvb3JPcmlnaW4oKSB7IH0KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6
OnNpbXVsYXRlUmVzZXRQb3NlKCkgeyB9CisKK1dlYkZha2VYUklucHV0Q29udHJvbGxlciBXZWJG
YWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291
cmNlSW5pdCkKK3sKKyAgICByZXR1cm4gV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyKCk7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMjNkZTY5NzZi
ZjU4MDVlYWRlNGMzM2JlNjg1M2I4ZjM1NmY4ZjYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oCkBAIC0wLDAgKzEsNjcgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJG
YWtlWFJCb3VuZHNQb2ludC5oIgorI2luY2x1ZGUgIkZha2VYUklucHV0U291cmNlSW5pdC5oIgor
I2luY2x1ZGUgIkZha2VYUlZpZXdJbml0LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJy
ZWQuaCIKKyNpbmNsdWRlICJXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJY
UlZpc2liaWxpdHlTdGF0ZS5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkZha2VY
UkRldmljZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYkZha2VYUkRldmljZT4geworcHVibGljOgor
Cit2b2lkIHNldFZpZXdzKFZlY3RvcjxGYWtlWFJWaWV3SW5pdD4pOworCit2b2lkIGRpc2Nvbm5l
Y3QoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworCit2b2lkIHNldFZpZXdlck9yaWdpbihG
YWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgb3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24gPSBm
YWxzZSk7CisKK3ZvaWQgY2xlYXJWaWV3ZXJPcmlnaW4oKTsKKwordm9pZCBzaW11bGF0ZVZpc2li
aWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUpOworCit2b2lkIHNldEJvdW5kc0dlb21ldHJ5
KFZlY3RvcjxGYWtlWFJCb3VuZHNQb2ludD4gYm91bmRzQ29vcmRpbmF0ZXMpOworCit2b2lkIHNl
dEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCk7CisKK3ZvaWQgY2xlYXJGbG9v
ck9yaWdpbigpOworCit2b2lkIHNpbXVsYXRlUmVzZXRQb3NlKCk7CisKK1dlYkZha2VYUklucHV0
Q29udHJvbGxlciBzaW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJj
ZUluaXQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZp
Y2UuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE5NThjNTliYzkwYTFhOWQ5ZjU4ZjI1YTQyNGVhOTI2OTQxNzU1ODgKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5pZGwKQEAg
LTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UlRlc3QsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgSW50ZXJmYWNlTmFtZT1GYWtlWFJE
ZXZpY2UsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIFdlYkZh
a2VYUkRldmljZSB7CisgIC8vIFNldHMgdGhlIHZhbHVlcyB0byBiZSB1c2VkIGZvciBzdWJzZXF1
ZW50CisgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSgpIGNhbGxiYWNrcy4KKyAgdm9pZCBzZXRW
aWV3cyhzZXF1ZW5jZTxGYWtlWFJWaWV3SW5pdD4gdmlld3MpOworCisgIC8vIGJlaGF2ZXMgYXMg
aWYgZGV2aWNlIHdhcyBkaXNjb25uZWN0ZWQKKyAgUHJvbWlzZTx2b2lkPiBkaXNjb25uZWN0KCk7
CisKKyAgLy8gU2V0cyB0aGUgb3JpZ2luIG9mIHRoZSB2aWV3ZXIKKyAgdm9pZCBzZXRWaWV3ZXJP
cmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IG9yaWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBl
bXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCisgIC8vIElmIGFuIG9yaWdpbiBpcyBub3Qgc3Bl
Y2lmaWVkLCB0aGVuIHRoZSBkZXZpY2UgaXMgYXNzdW1lZCB0byBub3QgYmUgdHJhY2tpbmcsIGVt
dWxhdGVkUG9zaXRpb24gc2hvdWxkCisgIC8vIGJlIGFzc3VtZWQgZm9yIGNhc2VzIHdoZXJlIHRo
ZSBVQSBtdXN0IGFsd2F5cyBwcm92aWRlIGEgcG9zZS4KKyAgdm9pZCBjbGVhclZpZXdlck9yaWdp
bigpOworCisgIC8vIFNpbXVsYXRlcyBkZXZpY2VzIGZvY3VzaW5nIGFuZCBibHVycmluZyBzZXNz
aW9ucy4KKyAgdm9pZCBzaW11bGF0ZVZpc2liaWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUg
dmlzaWJpbGl0eVN0YXRlKTsKKworICB2b2lkIHNldEJvdW5kc0dlb21ldHJ5KHNlcXVlbmNlPEZh
a2VYUkJvdW5kc1BvaW50PiBib3VuZHNDb29yZGluYXRlcyk7CisgIC8vIFNldHMgdGhlIG5hdGl2
ZSBvcmlnaW4gb2YgdGhlIHBoeXNpY2FsIGZsb29yCisgIHZvaWQgc2V0Rmxvb3JPcmlnaW4oRmFr
ZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGZsb29yT3JpZ2luKTsKKworICAvLyBJbmRpY2F0ZXMgdGhh
dCB0aGUgZGV2aWNlIGNhbiBubyBsb25nZXIgaWRlbnRpZnkgdGhlIGxvY2F0aW9uIG9mIHRoZSBw
aHlzaWNhbCBmbG9vci4KKyAgdm9pZCBjbGVhckZsb29yT3JpZ2luKCk7CisKKyAgLy8gVXNlZCB0
byBzaW11bGF0ZSBhIG1ham9yIGNoYW5nZSBpbiB0cmFja2luZyBhbmQgdGhhdCBhIHJlc2V0IHBv
c2UgZXZlbnQgc2hvdWxkIGJlIGZpcmVkCisgIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRo
dWIuaW8vd2VieHIvI2V2ZW50LXR5cGVzCisgIHZvaWQgc2ltdWxhdGVSZXNldFBvc2UoKTsKKwor
ICAvLyBVc2VkIHRvIGNvbm5lY3QgYW5kIHNlbmQgaW5wdXQgZXZlbnRzCisgIFdlYkZha2VYUklu
cHV0Q29udHJvbGxlciBzaW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNv
dXJjZUluaXQgaW5wdXRTb3VyY2UpOworfTsKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxl
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5j
cHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uOTNjYjkzOTU4NzJkYmNiNjlkNDJjMGZhYjg4YzEzNzcwYjU1MWY2Mgot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyLmNwcApAQCAtMCwwICsxLDY5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCIKKworI2lmIEVO
QUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFdlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6c2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3MpIHsgfQorCit2b2lkIFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcjo6c2V0VGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1vZGUpIHsg
fQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0UHJvZmlsZXMoVmVjdG9yPFN0
cmluZz4pIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0R3JpcE9yaWdp
bihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9yaWdpbiwgYm9vbCBlbXVsYXRlZFBvc2l0
aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShncmlwT3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0o
ZW11bGF0ZWRQb3NpdGlvbik7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpj
bGVhckdyaXBPcmlnaW4oKSB7IH0KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNl
dFBvaW50ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJv
b2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0ocG9pbnRlck9yaWdpbik7
CisgICAgVU5VU0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lkIFdlYkZha2VY
UklucHV0Q29udHJvbGxlcjo6ZGlzY29ubmVjdCgpIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6cmVjb25uZWN0KCkgeyB9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyOjpzdGFydFNlbGVjdGlvbigpIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxl
cjo6ZW5kU2VsZWN0aW9uKCkgeyB9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpz
aW11bGF0ZVNlbGVjdCgpIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0
U3VwcG9ydGVkQnV0dG9ucyhWZWN0b3I8RmFrZVhSQnV0dG9uU3RhdGVJbml0PikgeyB9CisKK3Zv
aWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0
b25TdGF0ZUluaXQpIHsgfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VY
UklucHV0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDdkZTk2MzUwNDZiYWJlYjM3N2QwY2RkM2I0MDVl
MmQ4YzA2ZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJG
YWtlWFJJbnB1dENvbnRyb2xsZXIuaApAQCAtMCwwICsxLDcxIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNw
cmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhSQnV0dG9u
U3RhdGVJbml0LmgiCisjaW5jbHVkZSAiRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgiCisjaW5j
bHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5j
bHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVz
cGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyPiB7CitwdWJsaWM6CisKK3ZvaWQg
c2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3MpOworCit2b2lkIHNldFRhcmdldFJheU1vZGUoWFJU
YXJnZXRSYXlNb2RlKTsKKwordm9pZCBzZXRQcm9maWxlcyhWZWN0b3I8U3RyaW5nPik7CisKK3Zv
aWQgc2V0R3JpcE9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9yaWdpbiwgYm9v
bCBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCit2b2lkIGNsZWFyR3JpcE9yaWdpbigpOwor
Cit2b2lkIHNldFBvaW50ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJP
cmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKwordm9pZCBkaXNjb25uZWN0
KCk7CisKK3ZvaWQgcmVjb25uZWN0KCk7CisKK3ZvaWQgc3RhcnRTZWxlY3Rpb24oKTsKKwordm9p
ZCBlbmRTZWxlY3Rpb24oKTsKKwordm9pZCBzaW11bGF0ZVNlbGVjdCgpOworCit2b2lkIHNldFN1
cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4pOworCit2b2lkIHVw
ZGF0ZUJ1dHRvblN0YXRlKEZha2VYUkJ1dHRvblN0YXRlSW5pdCk7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTgzY2EzMzZjZWVhNjQ4YWFmNDM5ZjI5OGI2MjY1NWIwYTNhYjhmYwotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbApA
QCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFy
ZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4g
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGlu
IGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92
aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9W
SURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJ
QUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VT
OyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQ
VElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBU
SEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJ
QklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSVGVzdCwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9RmFrZVhSSW5wdXRDb250cm9sbGVyCitdIGludGVy
ZmFjZSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgeworICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUg
aGFuZGVkbmVzcyBvZiB0aGUgZGV2aWNlIGhhcyBjaGFuZ2VkLgorICB2b2lkIHNldEhhbmRlZG5l
c3MoWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3MpOworCisgIC8vIEluZGljYXRlcyB0aGF0IHRoZSB0
YXJnZXQgcmF5IG1vZGUgb2YgdGhlIGRldmljZSBoYXMgY2hhbmdlZC4KKyAgdm9pZCBzZXRUYXJn
ZXRSYXlNb2RlKFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKTsKKworICAvLyBJbmRpY2F0
ZXMgdGhhdCB0aGUgbGlzdCBvZiBwcm9maWxlcyByZXByZXNlbnRpbmcgdGhlIGRldmljZSBoYXMg
Y2hhbmdlZC4KKyAgdm9pZCBzZXRQcm9maWxlcyhzZXF1ZW5jZTxET01TdHJpbmc+IHByb2ZpbGVz
KTsKKworICAvLyBTZXRzIG9yIGNsZWFycyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2xsZXIu
ICBJZiBub3Qgc2V0LCB0aGUgY29udHJvbGxlciBpcyBhc3N1bWVkIHRvCisgIC8vIG5vdCBiZSB0
cmFja2VkLgorICB2b2lkIHNldEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGdy
aXBPcmlnaW4sIG9wdGlvbmFsIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKyAg
dm9pZCBjbGVhckdyaXBPcmlnaW4oKTsKKworICAvLyBTZXRzIHRoZSBwb2ludGVyIG9yaWdpbiBm
b3IgdGhlIGNvbnRyb2xsZXIuCisgIHZvaWQgc2V0UG9pbnRlck9yaWdpbihGYWtlWFJSaWdpZFRy
YW5zZm9ybUluaXQgcG9pbnRlck9yaWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBlbXVsYXRlZFBvc2l0
aW9uID0gZmFsc2UpOworCisgIC8vIFRlbXBvcmFyaWx5IGRpc2Nvbm5lY3QgdGhlIGlucHV0IGRl
dmljZQorICB2b2lkIGRpc2Nvbm5lY3QoKTsKKworICAvLyBSZWNvbm5lY3QgYSBkaXNjb25uZWN0
ZWQgaW5wdXQgZGV2aWNlCisgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAgLy8gU3RhcnQgYSBzZWxl
Y3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhlIHByaW1hcnkgaW5wdXQKKyAgLy8g
SWYgYSBnYW1lcGFkIGlzIHN1cHBvcnRlZCwgc2hvdWxkIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhl
IHByaW1hcnkgYnV0dG9uIGFjY29yZGluZ2x5LgorICB2b2lkIHN0YXJ0U2VsZWN0aW9uKCk7CisK
KyAgLy8gRW5kIHNlbGVjdGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUgcHJpbWFy
eSBpbnB1dAorICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBzaG91bGQgdXBkYXRlIHRo
ZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHkuCisgIHZvaWQgZW5kU2Vs
ZWN0aW9uKCk7CisKKyAgLy8gU2ltdWxhdGVzIGEgc3RhcnQvZW5kU2VsZWN0aW9uIGZvciB0aGUg
Y3VycmVudCBmcmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgIC8vIElmIGEgZ2FtZXBhZCBp
cyBzdXBwb3J0ZWQsIHNob3VsZCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGJ1dHRv
biBhY2NvcmRpbmdseS4KKyAgdm9pZCBzaW11bGF0ZVNlbGVjdCgpOworCisgIC8vIFVwZGF0ZXMg
dGhlIHNldCBvZiBzdXBwb3J0ZWQgYnV0dG9ucywgaW5jbHVkaW5nIGFueSBpbml0aWFsIHN0YXRl
LgorICAvLyBOb3RlIHRoYXQgdGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBiZSBnZW5lcmFsbHkgdXNl
ZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZQorICAvLyBidXR0b25zLCBhcyB0aGUgVUEgbWF5
IHRyZWF0IHRoaXMgYXMgcmUtY3JlYXRpbmcgdGhlIEdhbWVwYWQuCisgIC8vIE5vdGUgdGhhdCBp
ZiBhbnkgRmFrZVhSQnV0dG9uVHlwZSBpcyByZXBlYXRlZCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZp
bmVkLgorICB2b2lkIHNldFN1cHBvcnRlZEJ1dHRvbnMoc2VxdWVuY2U8RmFrZVhSQnV0dG9uU3Rh
dGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zKTsKKworICAvLyBVc2VkIHRvIHVwZGF0ZSB0aGUgc3Rh
dGUgb2YgYSBidXR0b24gY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgaW5wdXQgc291cmNlCisg
IC8vIFdpbGwgbm90IGFkZCBzdXBwb3J0IGZvciB0aGF0IGJ1dHRvbiBpZiBpdCBpcyBub3QgY3Vy
cmVudGx5IHN1cHBvcnRlZC4KKyAgdm9pZCB1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25T
dGF0ZUluaXQgYnV0dG9uU3RhdGUpOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViWFJUZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmNw
cApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kNzMyYTg1ZGJiZWMwOTNlZDQ0NmNhZDE3MDNkMWYzZGQ4NTk4OTcwCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuY3BwCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIldlYlhSVGVzdC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3ZvaWQgV2ViWFJUZXN0OjpzaW11bGF0ZURldmljZUNvbm5lY3Rpb24oRmFrZVhSRGV2
aWNlSW5pdCwgV2ViRmFrZVhSRGV2aWNlUHJvbWlzZSYmKSBjb25zdCB7IH0KKwordm9pZCBXZWJY
UlRlc3Q6OnNpbXVsYXRlVXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24mKSB7IH0KKwordm9pZCBXZWJYUlRlc3Q6OmRpc2Nvbm5lY3RBbGxEZXZpY2VzKERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKSB7IH0KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJYUlRlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMTYxNGVkNzliYzQ3MjI2MGVhYzlmYThkNzc0Y2U5MjJkZDQ5YjczMQotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmgKQEAgLTAsMCArMSw3
MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKwor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSRGV2
aWNlLmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uTW9kZS5oIgorI2luY2x1ZGUgIlhSU2ltdWxhdGVV
c2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNW
YWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3Vu
dGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJUZXN0IDogcHVibGlj
IFJlZkNvdW50ZWQ8V2ViWFJUZXN0PiB7CitwdWJsaWM6CisgICAgc3RydWN0IEZha2VYUkRldmlj
ZUluaXQgeworICAgICAgICBib29sIHN1cHBvcnRzSW1tZXJzaXZlIHsgZmFsc2UgfTsKKyAgICAg
ICAgT3B0aW9uYWw8VmVjdG9yPFhSU2Vzc2lvbk1vZGU+PiBzdXBwb3J0ZWRNb2RlczsKKyAgICAg
ICAgVmVjdG9yPEZha2VYUlZpZXdJbml0PiB2aWV3czsKKworICAgICAgICBPcHRpb25hbDxWZWN0
b3I8SlNDOjpKU1ZhbHVlPj4gc3VwcG9ydGVkRmVhdHVyZXM7CisKKyAgICAgICAgT3B0aW9uYWw8
VmVjdG9yPEZha2VYUkJvdW5kc1BvaW50Pj4gYm91bmRzQ29vcmRpbmF0ZXM7CisKKyAgICAgICAg
T3B0aW9uYWw8RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0PiBmbG9vck9yaWdpbjsKKyAgICAgICAg
T3B0aW9uYWw8RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0PiB2aWV3ZXJPcmlnaW47CisgICAgfTsK
KworICAgIHN0YXRpYyBSZWY8V2ViWFJUZXN0PiBjcmVhdGUoKSB7IHJldHVybiBhZG9wdFJlZigq
bmV3IFdlYlhSVGVzdCgpKTsgfQorCisgICAgdXNpbmcgV2ViRmFrZVhSRGV2aWNlUHJvbWlzZSA9
IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViRmFrZVhSRGV2aWNlPj47CisgICAg
dm9pZCBzaW11bGF0ZURldmljZUNvbm5lY3Rpb24oRmFrZVhSRGV2aWNlSW5pdCwgV2ViRmFrZVhS
RGV2aWNlUHJvbWlzZSYmKSBjb25zdDsKKworICAgIC8vIFNpbXVsYXRlcyBhIHVzZXIgYWN0aXZh
dGlvbiAoYWthIHVzZXIgZ2VzdHVyZSkgZm9yIHRoZSBjdXJyZW50IHNjb3BlLgorICAgIC8vIFRo
ZSBhY3RpdmF0aW9uIGlzIG9ubHkgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCBpbiB0aGUgcHJvdmlk
ZWQgZnVuY3Rpb24gYW5kIG9ubHkgYXBwbGllcyB0byBXZWJYUgorICAgIC8vIERldmljZSBBUEkg
bWV0aG9kcy4KKyAgICB2b2lkIHNpbXVsYXRlVXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJB
Y3RpdmF0aW9uRnVuY3Rpb24mKTsKKworICAgIC8vIERpc2Nvbm5lY3QgYWxsIGZha2UgZGV2aWNl
cworICAgIHZvaWQgZGlzY29ubmVjdEFsbERldmljZXMoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+
JiYpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjI5YTMzZGE1
Nzc5ZDBkODJiM2Y1OWQ2NWU5ZGIzZTRmMmU5M2Y0OGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5pZGwKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLyAKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFJUZXN0LAorICAgIENvbmRpdGlv
bmFsPVdFQlhSLAorICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAor
ICAgIEV4cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJUZXN0LAorICAgIEltcGxl
bWVudGF0aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFjZSBXZWJYUlRlc3QgeworICAvLyBTaW11
bGF0ZXMgY29ubmVjdGluZyBhIGRldmljZSB0byB0aGUgc3lzdGVtLgorICAvLyBVc2VkIHRvIGlu
c3RhbnRpYXRlIGEgZmFrZSBkZXZpY2UgZm9yIHVzZSBpbiB0ZXN0cy4KKyAgUHJvbWlzZTxXZWJG
YWtlWFJEZXZpY2U+IHNpbXVsYXRlRGV2aWNlQ29ubmVjdGlvbihGYWtlWFJEZXZpY2VJbml0IGlu
aXQpOworCisgIC8vIFNpbXVsYXRlcyBhIHVzZXIgYWN0aXZhdGlvbiAoYWthIHVzZXIgZ2VzdHVy
ZSkgZm9yIHRoZSBjdXJyZW50IHNjb3BlLgorICAvLyBUaGUgYWN0aXZhdGlvbiBpcyBvbmx5IGd1
YXJhbnRlZWQgdG8gYmUgdmFsaWQgaW4gdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGFuZCBvbmx5IGFw
cGxpZXMgdG8gV2ViWFIKKyAgLy8gRGV2aWNlIEFQSSBtZXRob2RzLgorICB2b2lkIHNpbXVsYXRl
VXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gZik7CisKKyAg
Ly8gRGlzY29ubmVjdCBhbGwgZmFrZSBkZXZpY2VzCisgIFByb21pc2U8dm9pZD4gZGlzY29ubmVj
dEFsbERldmljZXMoKTsKK307CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSVGVzdCwK
KyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJEZXZpY2VJbml0IHsK
KyAgICAvLyBEZXByZWNhdGVkIC0gdXNlIGBzdXBwb3J0ZWRNb2Rlc2AgaW5zdGVhZC4KKyAgICBy
ZXF1aXJlZCBib29sZWFuIHN1cHBvcnRzSW1tZXJzaXZlOworICAgIC8vIFNlcXVlbmNlIG9mIG1v
ZGVzIHRoYXQgc2hvdWxkIGJlIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZS4KKyAgICBzZXF1ZW5j
ZTxYUlNlc3Npb25Nb2RlPiBzdXBwb3J0ZWRNb2RlczsKKyAgICByZXF1aXJlZCBzZXF1ZW5jZTxG
YWtlWFJWaWV3SW5pdD4gdmlld3M7CisKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0
aHViLmlvL3dlYnhyLyNmZWF0dXJlLW5hbWUKKyAgICAvLyBUaGUgbGlzdCBvZiBmZWF0dXJlIG5h
bWVzIHRoYXQgdGhpcyBkZXZpY2Ugc3VwcG9ydHMuCisgICAgLy8gQW55IHJlcXVlc3RzIGZvciBm
ZWF0dXJlcyBub3QgaW4gdGhpcyBsaXN0IHNob3VsZCBiZSByZWplY3RlZCwgd2l0aCB0aGUgZXhj
ZXB0aW9uIG9mIHRob3NlCisgICAgLy8gdGhhdCBhcmUgZ3VhcmFudGVlZCByZWdhcmRsZXNzIG9m
IGRldmljZSBhdmFpbGFiaWxpdHkgKGUuZy4gJ3ZpZXdlcicpLgorICAgIC8vIElmIG5vdCBzcGVj
aWZpZWQvZW1wdHksIHRoZSBkZXZpY2Ugc3VwcG9ydHMgbm8gZmVhdHVyZXMuCisgICAgLy8gTk9U
RTogVGhpcyBpcyBtZWFudCB0byBlbXVsYXRlIGhhcmR3YXJlIHN1cHBvcnQsIG5vdCB3aGV0aGVy
IGEgZmVhdHVyZSBpcworICAgIC8vIGN1cnJlbnRseSBhdmFpbGFibGUgKGUuZy4gYm91bmRzIG5v
dCBiZWluZyB0cmFja2VkIHBlciBiZWxvdykKKyAgICBzZXF1ZW5jZTxhbnk+IHN1cHBvcnRlZEZl
YXR1cmVzOworCisgICAgLy8gVGhlIGJvdW5kcyBjb29yZGluYXRlcy4gSWYgZW1wdHksIG5vIGJv
dW5kZWQgcmVmZXJlbmNlIHNwYWNlIGlzIGN1cnJlbnRseSB0cmFja2VkLgorICAgIC8vIElmIG5v
dCwgbXVzdCBoYXZlIGF0IGxlYXN0IHRocmVlIGVsZW1lbnRzLgorICAgIHNlcXVlbmNlPEZha2VY
UkJvdW5kc1BvaW50PiBib3VuZHNDb29yZGluYXRlczsKKworICAgIC8vIEEgdHJhbnNmb3JtIHVz
ZWQgdG8gaWRlbnRpZnkgdGhlIHBoeXNpY2FsIHBvc2l0aW9uIG9mIHRoZSB1c2VyJ3MgZmxvb3Iu
CisgICAgLy8gSWYgbm90IHNldCwgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBjYW5ub3QgaWRl
bnRpZnkgdGhlIHBoeXNpY2FsIGZsb29yLgorICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBm
bG9vck9yaWdpbjsKKworICAgIC8vIG5hdGl2ZSBvcmlnaW4gb2YgdGhlIHZpZXdlcgorICAgIC8v
IElmIG5vdCBzZXQsIHRoZSBkZXZpY2UgaXMgY3VycmVudGx5IGFzc3VtZWQgdG8gbm90IGJlIHRy
YWNraW5nLCBhbmQgeHJGcmFtZS5nZXRWaWV3ZXJQb3NlIHNob3VsZAorICAgIC8vIG5vdCByZXR1
cm4gYSBwb3NlLgorICAgIC8vCisgICAgLy8gVGhpcyBzZXRzIHRoZSB2aWV3ZXIgb3JpZ2luICpz
aG9ydGx5IGFmdGVyKiBpbml0aWFsaXphdGlvbjsgc2luY2UgdGhlIHZpZXdlciBvcmlnaW4gYXQg
aW5pdGlhbGl6YXRpb24KKyAgICAvLyBpcyB1c2VkIHRvIHByb3ZpZGUgYSByZWZlcmVuY2Ugb3Jp
Z2luIGZvciBhbGwgbWF0cmljZXMuCisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHZpZXdl
ck9yaWdpbjsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxh
dGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2lt
dWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzYjg3MWMyNjEyM2M4
MTIwYmY3Njk2ZmZiZDM5OGEzYmI4YTgyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSAiQWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3Vs
dC5oIgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2ViWFJGcmFtZTsKKworY2xhc3MgWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24gOiBwdWJsaWMgUmVmQ291bnRlZDxYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlv
bj4sIHB1YmxpYyBBY3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0aXZl
RE9NQ2FsbGJhY2s6OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBDYWxsYmFja1Jl
c3VsdDx2b2lkPiBoYW5kbGVFdmVudChKU0M6OkpTVmFsdWUpID0gMDsKK307CisKK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRs
IGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlv
bi5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uNWViZjk1OWYwNGUzOTA0OWNhMDViNWNiN2IyMWRjOTkzZWE4ZDJm
YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVz
ZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICog
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFN
QUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisg
KiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkg
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
K1sKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSVGVz
dAorXSBjYWxsYmFjayBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiA9IHZvaWQgKGFu
eS4uLiBhcmd1bWVudHMpOwo=
</data>
<flag name="review"
          id="411376"
          type_id="1"
          status="+"
          setter="dino"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396646</attachid>
            <date>2020-04-16 07:12:20 -0700</date>
            <delta_ts>2020-04-16 07:59:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209859-20200416161219.patch</filename>
            <type>text/plain</type>
            <size>84755</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmIzMzk4MDdlOWVlZDgx
NmQzMGYwMzZjOTk2YTFhMWQwY2Q1OGI5NS4uMTBkMWU1MGQ5MjAwYzZiYmY1MjQxNWEyMThlMTg0
MDYyNDNlZjhhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIwLTA0LTE2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViWFIgdGVzdGluZyBpcyBoYXJkIGFzIGl0IG1pZ2h0IGludm9sdmUgaW50
ZXJhY3Rpb24gd2l0aCBhY3R1YWwKKyAgICAgICAgZGV2aWNlcy4gVGhhdCdzIHdoeSB0aGUgV2Vi
WFIgdGVzdGluZworICAgICAgICBBUEkgKGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8v
d2VieHItdGVzdC1hcGkvKSB3YXMKKyAgICAgICAgcHJvcG9zZWQuIEluIGZhY3QsIGFsbCB0aGUg
Y3VycmVudCBXZWJYUiB0ZXN0cyBmcm9tCisgICAgICAgIHdlYi1wbGF0Zm9ybS10ZXN0cyBhcmUg
dXNpbmcgdGhhdCB0ZXN0aW5nIEFQSS4gVGhpcyBuZXcgdGVzdGluZworICAgICAgICBBUEkgc3Vw
cGxlbWVudHMgbmF2aWdhdG9yLnhyIGFuZCBpcyBhY2Nlc3NlZCB0aHJvdWdoCisgICAgICAgIG5h
dmlnYXRvci54ci50ZXN0LgorCisgICAgICAgIEluIG9yZGVyIG5vdCB0byBleHBvc2UgdGhlIEFQ
SSB0byB0aGUgd2ViIHdlJ3JlIGFkZGluZyB0aGUgWFJUZXN0CisgICAgICAgIGludGVyZmFjZSB0
byBJbnRlcm5hbHMgaW5zdGVhZC4gVGhlIG1hcHBpbmcgZnJvbSBpbnRlcm5hbHMueHJUZXN0IHRv
CisgICAgICAgIG5hdmlnYXRvci54ci50ZXN0IGhhcHBlbnMgaW4gdGhlIFdQVCBjb2RlLgorCisg
ICAgICAgIFdlJ3JlIGFkZGluZyB0aGUgcmVxdWlyZWQgSURMcyBhbmQgdmVyeSBiYXNpYyAobW9z
dGx5IGVtcHR5KQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgZm9yIHRlc3RpbmcgbWV0aG9kcy4g
V2UncmUgYWRkaW5nIHRlc3RpbmcKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUsIGFkZGluZyB0ZXN0
cyBtYWtlIG5vIHNlbnNlIGZvciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oOiBFeHBvcnQgQVBJIHRvIGJlIHVzZWQgaW4gdGVzdGluZyBj
b2RlLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJU
YXJnZXRSYXlNb2RlLmg6CisgICAgICAgICogU291cmNlcy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDogQWRkZWQgc29tZSBuZXcg
bWFjcm9zLgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAqIHRlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGlu
Zy9GYWtlWFJCb3VuZHNQb2ludC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhS
QnV0dG9uU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSQnV0dG9u
U3RhdGVJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJj
ZUluaXQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5o
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGw6
IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSVmlld0luaXQuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6eHJUZXN0KTog
QWRkZWQgV2ViWFJUZXN0IHRvIEludGVybmFscy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5n
L1dlYkZha2VYUkRldmljZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhS
RGV2aWNlOjpzZXRWaWV3cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OmRp
c2Nvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzZXRWaWV3ZXJP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpjbGVhclZpZXdlck9y
aWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlVmlzaWJp
bGl0eUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNldEJvdW5k
c0dlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2V0Rmxvb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpjbGVhckZsb29yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2ltdWxhdGVSZXNldFBv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291
cmNlQ29ubmVjdGlvbik6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaDogQWRk
ZWQuCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRIYW5kZWRuZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0VGFyZ2V0UmF5TW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFByb2Zp
bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0R3Jp
cE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmNs
ZWFyR3JpcE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xs
ZXI6OnNldFBvaW50ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6cmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6c3RhcnRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyOjplbmRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFN1cHBvcnRlZEJ1dHRvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRhdGVCdXR0b25TdGF0ZSk6Cisg
ICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJUZXN0OjpzaW11bGF0ZURldmljZUNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJUZXN0OjpzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSVGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMpOgorICAgICAgICAqIHRlc3RpbmcvV2Vi
WFJUZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpjcmVhdGUpOgor
ICAgICAgICAqIHRlc3RpbmcvV2ViWFJUZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGlu
Zy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbDogRGl0dG8uCisKIDIw
MjAtMDQtMTQgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAgICAgICBB
ZGQgV0FSTl9VTlVTRURfUkVUVVJOIHRvIGRlY29kZSBtZXRob2RzIGluIFNvdXJjZS9XZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJD
b3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IDkxMjIzMDE3OGMxZDJhMzkzNWIyMDlhNzk5YTc3MzU5
YmU3N2Q0NTUuLjUwZTRhOWQ1YTA1MzI1MTgyYmUwOTU1YmEzMWZhYmE0NWI0ZWIxMzEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3Jl
L0NNYWtlTGlzdHMudHh0CkBAIC0xNTksNiArMTU5LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9J
TkNMVURFX0RJUkVDVE9SSUVTCiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcyIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vc3ZnL2dyYXBoaWNzL2ZpbHRlcnMiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3N2Zy9wcm9wZXJ0aWVzIgorICAgICIke1dFQkNPUkVfRElSfS90ZXN0aW5nIgogICAgICIk
e1dFQkNPUkVfRElSfS93ZWJzb2NrZXRzIgogICAgICIke1dFQkNPUkVfRElSfS93b3JrZXJzIgog
ICAgICIke1dFQkNPUkVfRElSfS93b3JrZXJzL3NlcnZpY2UiCkBAIC0xNjU2LDYgKzE2NTcsMjUg
QEAgbGlzdChBUFBFTkQgV2ViQ29yZVRlc3RTdXBwb3J0X1NPVVJDRVMKICAgICB0ZXN0aW5nL2pz
L1dlYkNvcmVUZXN0U3VwcG9ydC5jcHAKICkKIAorCitpZiAoRU5BQkxFX1dFQlhSKQorICAgIGxp
c3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9JRExfRklMRVMKKyAgICAgICAgdGVzdGluZy9G
YWtlWFJCb3VuZHNQb2ludC5pZGwKKyAgICAgICAgdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0ZUlu
aXQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbAorICAgICAg
ICB0ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwKKyAgICAgICAgdGVzdGluZy9G
YWtlWFJWaWV3SW5pdC5pZGwKKyAgICAgICAgdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsCisg
ICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbAorICAgICAgICB0ZXN0
aW5nL1dlYlhSVGVzdC5pZGwKKyAgICAgICAgdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRp
b25GdW5jdGlvbi5pZGwKKyAgICApCisgICAgbGlzdChBUFBFTkQgV2ViQ29yZVRlc3RTdXBwb3J0
X1NPVVJDRVMKKyAgICAgICAgdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCisgICAgICAgIHRl
c3RpbmcvV2ViWFJUZXN0LmNwcAorICAgICkKK2VuZGlmICgpCisKICMgTW9kdWxlcyB0aGF0IHRo
ZSBiaW5kaW5ncyBnZW5lcmF0b3Igc2NyaXB0cyBtYXkgdXNlCiBzZXQoU0NSSVBUU19SRVNPTFZF
X1NVUFBMRU1FTlRBTAogICAgICR7V0VCQ09SRV9ESVJ9L2JpbmRpbmdzL3NjcmlwdHMvSURMUGFy
c2VyLnBtCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA0ZTkyNTY4ZjA3MjI5MTZh
ZWE5Mjg1ODZjNjQ5NzYzMjg3MDVmZTk1Li40NDY5YTViOThhZTRkMTFmM2I5MmQ1MWQwZWZkZWJl
YzNhZjBkOWMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtl
CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTExMTgsNiArMTEx
OCwxNSBAQCBKU19CSU5ESU5HX0lETFMgPSBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL01vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rlc3Rp
bmcvU2VydmljZVdvcmtlckludGVybmFscy5pZGwgXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9U
eXBlQ29udmVyc2lvbnMuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSQm91bmRz
UG9pbnQuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0
LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwg
XAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5n
L1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9X
ZWJYUlRlc3QuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3Rp
dmF0aW9uRnVuY3Rpb24uaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvQWJzdHJhY3RXb3Jr
ZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvRGVkaWNhdGVkV29ya2VyR2xvYmFsU2Nv
cGUuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvV29ya2VyLmlkbCBcCkBAIC0xODcxLDQg
KzE4ODAsMyBAQCAkKFdlYkNvcmVfQlVJTFRJTlNfV1JBUFBFUlNfUEFUVEVSTlMpIDogJChXZWJD
b3JlX0JVSUxUSU5TX1NPVVJDRVMpIFdlYkNvcmVfQlVJTAogYWxsIDogJChub3RkaXIgJChXZWJD
b3JlX0JVSUxUSU5TX1NPVVJDRVM6JS5qcz0lQnVpbHRpbnMuaCkpICQoV2ViQ29yZV9CVUlMVElO
U19XUkFQUEVSUykKIAogIyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCmluZGV4IGZmMzRlNGU1OWYzOWM4
OWRiMmE5MmE0MTYwYjg4MDNlZTA3ZjQyZGIuLjIzYzYwYzVjODJlOWUyMDY1YTViYjc4MzE5Yzc4
NDI2MGFkM2Q5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2
aWdhdG9yV2ViWFIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRv
cldlYlhSLmgKQEAgLTM5LDExICszOSwxMSBAQCBjbGFzcyBXZWJYUlN5c3RlbTsKIGNsYXNzIE5h
dmlnYXRvcldlYlhSIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8TmF2aWdhdG9yPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdlYlhSU3lzdGVt
JiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2aWdhdG9yJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFdlYlhSU3lzdGVtJiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2
aWdhdG9yJik7CiAKLXByaXZhdGU6Ci0gICAgc3RhdGljIE5hdmlnYXRvcldlYlhSJiBmcm9tKE5h
dmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJv
bShOYXZpZ2F0b3ImKTsKIAorcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViWFJTeXN0ZW0+IG1feHI7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lz
dGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKaW5kZXgg
ZTlhYjE1ZDdhZWE0NDVkMTMzMmZjMjEyYTQ1Njg0NWRjZWQ5Y2VlMS4uMjIwNjM4MjJlZTUxMzU5
ZThlZmEyMTIyMDk3MmIwOWYyYWUyNDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJTeXN0ZW0uaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlhSU2Vzc2lvbk1v
ZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQwLDE0ICs0MSwxNCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3Mg
V2ViWFJTZXNzaW9uOwogc3RydWN0IFhSU2Vzc2lvbkluaXQ7CiAKLWNsYXNzIFdlYlhSU3lzdGVt
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBXZWJYUlN5
c3RlbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxXZWJYUlN5c3RlbT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2Vi
WFJTeXN0ZW0pOwogcHVibGljOgogICAgIHVzaW5nIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CiAgICAgdXNpbmcgUmVxdWVzdFNlc3Np
b25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJYUlNlc3Npb24+
PjsKIAogICAgIHN0YXRpYyBSZWY8V2ViWFJTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V2ViWFJTeXN0ZW0oKTsKKyAgICB+V2ViWFJTeXN0ZW0o
KTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+OjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDxXZWJYUlN5c3RlbT46OmRlcmVmOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvWFJIYW5kZWRuZXNzLmgKaW5kZXggOTMzMzAzNGQwY2Q0OWFjOGRlZTkwMmEwODE2NDQ4
MDQzNzhjYmMyYy4uYTEyNzA1YWM4OWYwNTEwZmZlOTc5ZDBmMWMxNDM4ZDcxNzUzODExNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oCkBAIC0zMiw3ICsz
Miw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGVudW0gY2xhc3MgWFJIYW5kZWRuZXNzIHsKICAg
ICBOb25lLAogICAgIExlZnQsCi0gICAgUmlnaHQsCisgICAgUmlnaHQKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIv
WFJUYXJnZXRSYXlNb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0
UmF5TW9kZS5oCmluZGV4IDFmY2E0NGU0NTFiOTdjNTYwMjZlMTQ1YjUyMjMzMWY4MTY1YmFlN2Yu
LjRlMmQyZmZiOGVjMzM1NTZkMWQwYTY3YjZmNjZkZDhlOWE4M2M1ZjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaApAQCAtMzIsNyArMzIsNyBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIFhSVGFyZ2V0UmF5TW9kZSB7CiAgICAg
R2F6ZSwKICAgICBUcmFja2VkUG9pbnRlciwKLSAgICBTY3JlZW4sCisgICAgU2NyZWVuCiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CmluZGV4IDc0MmE2NWZmNDdiYmEz
NGUxNTkyYzhhYmU0ZmVkZDhlNDM0MjFjNDEuLjhhMWNjYjUyNzkzNWM5ZWY5ZTM5YTM0MjMxMzg2
MmYwZWRiNGQ2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CisrKyBi
L1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC00MzQsNiArNDM0LDEwIEBAIE1vZHVsZXMv
d2VieHIvWFJJbnB1dFNvdXJjZXNDaGFuZ2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVzL3dl
YnhyL1hSUmVmZXJlbmNlU3BhY2VFdmVudC5jcHAgQG5vLXVuaWZ5CiBNb2R1bGVzL3dlYnhyL1hS
U2Vzc2lvbkV2ZW50LmNwcCBAbm8tdW5pZnkKIAordGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3Bw
IEBuby11bmlmeQordGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwIEBuby11bmlm
eQordGVzdGluZy9XZWJYUlRlc3QuY3BwIEBuby11bmlmeQorCiAjZW5kaWYKIAogYWNjZXNzaWJp
bGl0eS9BWE9iamVjdENhY2hlLmNwcApAQCAtMzU1Niw2ICszNTYwLDE2IEBAIEpTWFNMVFByb2Nl
c3Nvci5jcHAKIAogI2lmIEVOQUJMRV9XRUJYUgogCitKU0Zha2VYUkJvdW5kc1BvaW50LmNwcAor
SlNGYWtlWFJCdXR0b25TdGF0ZUluaXQuY3BwCitKU0Zha2VYUklucHV0U291cmNlSW5pdC5jcHAK
K0pTRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmNwcAorSlNGYWtlWFJWaWV3SW5pdC5jcHAKK0pT
V2ViRmFrZVhSRGV2aWNlLmNwcAorSlNXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwCitKU1dl
YlhSVGVzdC5jcHAKK0pTWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uY3BwCisKIEpT
V2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuY3BwCiBKU1hSRW52aXJvbm1lbnRCbGVuZE1vZGUu
Y3BwCiBKU1hSRXllLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCmluZGV4IDk5N2Y3YmU1MmI5NjdkMThmYTY3MDcwMmEwZjk3MGFkODI4
ZDVkYTguLjc5MGEyODE1ZTFmNmRkYzE1YzE3YjU3NGYyNmZmMmVlNzg1NzViNGUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1
MTQ0LDggKzE1MTQ0LDQ1IEBACiAJCUUxODUzNjgyMUY0RTQ3MjcwMEZFMDkxQiAvKiBXZWJBcmNo
aXZlUmVzb3VyY2VGcm9tTlNBdHRyaWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRo
ID0gV2ViQXJjaGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4QzM1NDExRjcxOTZDRDAwRkY2MzJEIC8qIFdlYkFyY2hp
dmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBcmNoaXZl
UmVzb3VyY2VXZWJSZXNvdXJjZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJRTE4QzM1NDIxRjcxOTcwMTAwRkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291
cmNlSGFuZGxlci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkFyY2hpdmVSZXNvdXJjZVdl
YlJlc291cmNlSGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgz
REMyNDNGNzFDQjAwOTI0N0Q2IC8qIEZha2VYUklucHV0U291cmNlSW5pdC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTE4RDgzREQyNDNGNzFDQzAwOTI0N0Q2IC8qIFdlYkZha2VYUklucHV0
Q29udHJvbGxlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJG
YWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MThEODNERTI0M0Y3MUNEMDA5MjQ3RDYgLyogRmFrZVhSQnV0dG9uU3RhdGVJbml0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUkJ1dHRvblN0YXRlSW5pdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNERjI0M0Y3MUNEMDA5MjQ3RDYgLyogRmFr
ZVhSVmlld0luaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSVmll
d0luaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTAyNDNGNzFDRTAw
OTI0N0Q2IC8qIFdlYlhSVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJYUlRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNF
MTI0M0Y3MUNFMDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMThEODNFMjI0M0Y3MUNGMDA5MjQ3RDYgLyogRmFrZVhSVmll
d0luaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZha2VYUlZpZXdJbml0LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTMyNDNGNzFDRjAwOTI0N0Q2IC8qIEZh
a2VYUkJ1dHRvblN0YXRlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSQnV0
dG9uU3RhdGVJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTQy
NDNGNzFEMDAwOTI0N0Q2IC8qIEZha2VYUkJvdW5kc1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEZha2VYUkJvdW5kc1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxOEQ4M0U1MjQzRjcxRDEwMDkyNDdENiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9y
bUluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSUmlnaWRUcmFu
c2Zvcm1Jbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U2MjQzRjcx
RDEwMDkyNDdENiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOEQ4M0U3MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkZha2VYUkRldmljZS5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U4MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJYUlRl
c3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJUZXN0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U5MjQzRjcxRDMwMDkyNDdENiAvKiBXZWJG
YWtlWFJEZXZpY2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2Vi
RmFrZVhSRGV2aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUEy
NDNGNzFENDAwOTI0N0Q2IC8qIEZha2VYUklucHV0U291cmNlSW5pdC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUIyNDNGNzFENTAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJUZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUMyNDNGNzFENTAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2Vy
QWN0aXZhdGlvbkZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhS
U2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxOEQ4M0VEMjQzRjcxRDYwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmFrZVhSRGV2aWNlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0VFMjQzRjcxRDcwMDkyNDdENiAvKiBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
OEQ4M0VGMjQzRjcxRDcwMDkyNDdENiAvKiBGYWtlWFJCb3VuZHNQb2ludC5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gRmFrZVhSQm91bmRzUG9pbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMThEODNGMDI0M0Y3MUQ4MDA5MjQ3RDYgLyogWFJTaW11bGF0ZVVzZXJBY3Rp
dmF0aW9uRnVuY3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2ltdWxhdGVVc2Vy
QWN0aXZhdGlvbkZ1bmN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4
REYzMzQxOEFBRjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM2MThBQUYxNEQwMDc3M0U1OSAvKiBT
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9i
amNwcDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTk0OTA4NjI0MzRGMTU4MDA0MTZBOTkgLyogV2ViWFJWaWV3Lmlk
bCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMTk0OTA4NzI0MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJWaWV3cG9ydC5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDg4MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUkZyYW1l
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUkZyYW1lLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwODkyNDM0RjE1QTAwNDE2QTk5IC8qIFdlYlhSSW5wdXRT
b3VyY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSSW5wdXRTb3VyY2UuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4RjI0MzRGMTVEMDA0MTZBOTkgLyog
V2ViWFJXZWJHTExheWVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUldlYkdMTGF5
ZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5MzI0MzRGMTYwMDA0
MTZBOTkgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBXZWJYUklucHV0U291cmNlQXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMTk0OTA5NDI0MzRGMTYwMDA0MTZBOTkgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlk
bDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTUyNDM0RjE2MTAwNDE2QTk5
IC8qIFdlYlhSV2ViR0xMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
ZWJYUldlYkdMTGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTgy
NDM0RjE2MjAwNDE2QTk5IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMTk0OTA5QTI0MzRGMTY0MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW0uaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSU3lzdGVtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE5NDkwOUMyNDM0RjE2NTAwNDE2QTk5IC8qIFdlYlhSVmlld2VyUG9zZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJWaWV3ZXJQb3NlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOUUyNDM0RjE2NjAwNDE2QTk5IC8qIFdlYlhSU2Vzc2lv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJTZXNzaW9uLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwQTEyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSUG9z
ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJQb3NlLmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwQTIyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSU3BhY2Uu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTk0OTBBNDI0MzRGMTY5MDA0MTZBOTkgLyogV2ViWFJSZW5kZXJT
dGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJSZW5kZXJTdGF0ZS5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEE2MjQzNEYxNkIwMDQxNkE5OSAvKiBX
ZWJYUlJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlJlZmVy
ZW5jZVNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5NzI3MTUxODIw
NTQ5RTAwNTkyRDUxIC8qIENyeXB0b0tleVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gQ3J5cHRvS2V5VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlF
MTlBQzNFNjE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVNIQTIyNC5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0U3MTgyNERDNzkwMDM0OTQy
NiAvKiBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gQ3J5cHRvQWxnb3JpdGhtU0hBMjI0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CkBAIC0xODMxOSw2ICsxODM1NiwxNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTE3NjNGM0Ix
RTIwNTFBQjAwMUQ1OERFIC8qIGNvY29hICovLAogCQkJCTQxODE1QzFCMTM4MzE5NjMwMDU3QUFB
NCAvKiBqcyAqLywKKwkJCQlFMThEODNFNDI0M0Y3MUQwMDA5MjQ3RDYgLyogRmFrZVhSQm91bmRz
UG9pbnQuaCAqLywKKwkJCQlFMThEODNFRjI0M0Y3MUQ3MDA5MjQ3RDYgLyogRmFrZVhSQm91bmRz
UG9pbnQuaWRsICovLAorCQkJCUUxOEQ4M0RFMjQzRjcxQ0QwMDkyNDdENiAvKiBGYWtlWFJCdXR0
b25TdGF0ZUluaXQuaCAqLywKKwkJCQlFMThEODNFMzI0M0Y3MUNGMDA5MjQ3RDYgLyogRmFrZVhS
QnV0dG9uU3RhdGVJbml0LmlkbCAqLywKKwkJCQlFMThEODNFQTI0M0Y3MUQ0MDA5MjQ3RDYgLyog
RmFrZVhSSW5wdXRTb3VyY2VJbml0LmggKi8sCisJCQkJRTE4RDgzREMyNDNGNzFDQjAwOTI0N0Q2
IC8qIEZha2VYUklucHV0U291cmNlSW5pdC5pZGwgKi8sCisJCQkJRTE4RDgzRTUyNDNGNzFEMTAw
OTI0N0Q2IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oICovLAorCQkJCUUxOEQ4M0U2MjQz
RjcxRDEwMDkyNDdENiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsICovLAorCQkJCUUx
OEQ4M0RGMjQzRjcxQ0QwMDkyNDdENiAvKiBGYWtlWFJWaWV3SW5pdC5oICovLAorCQkJCUUxOEQ4
M0UyMjQzRjcxQ0YwMDkyNDdENiAvKiBGYWtlWFJWaWV3SW5pdC5pZGwgKi8sCiAJCQkJNTE3MTRF
QTkxQ0Y2NTg5OTAwNDcyM0M0IC8qIEdDT2JzZXJ2YXRpb24uY3BwICovLAogCQkJCTUxNzE0RUFB
MUNGNjU4OTkwMDQ3MjNDNCAvKiBHQ09ic2VydmF0aW9uLmggKi8sCiAJCQkJNTE3MTRFQUIxQ0Y2
NTg5OTAwNDcyM0M0IC8qIEdDT2JzZXJ2YXRpb24uaWRsICovLApAQCAtMTgzODMsNiArMTg0MzAs
MTcgQEAKIAkJCQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmgg
Ki8sCiAJCQkJRUIwODFDRDkxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5pZGwg
Ki8sCiAJCQkJRTFCQTY3MTkxNzQyQkVGNDAwQzIwMjUxIC8qIFdlYkNvcmVUZXN0U2hpbUxpYnJh
cnkuY3BwICovLAorCQkJCUUxOEQ4M0U5MjQzRjcxRDMwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZp
Y2UuY3BwICovLAorCQkJCUUxOEQ4M0VEMjQzRjcxRDYwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZp
Y2UuaCAqLywKKwkJCQlFMThEODNFNzI0M0Y3MUQyMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNl
LmlkbCAqLywKKwkJCQlFMThEODNERDI0M0Y3MUNDMDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyLmNwcCAqLywKKwkJCQlFMThEODNFRTI0M0Y3MUQ3MDA5MjQ3RDYgLyogV2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyLmggKi8sCisJCQkJRTE4RDgzRTEyNDNGNzFDRTAwOTI0N0Q2IC8q
IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwgKi8sCisJCQkJRTE4RDgzRTAyNDNGNzFDRTAw
OTI0N0Q2IC8qIFdlYlhSVGVzdC5jcHAgKi8sCisJCQkJRTE4RDgzRTgyNDNGNzFEMjAwOTI0N0Q2
IC8qIFdlYlhSVGVzdC5oICovLAorCQkJCUUxOEQ4M0VCMjQzRjcxRDUwMDkyNDdENiAvKiBXZWJY
UlRlc3QuaWRsICovLAorCQkJCUUxOEQ4M0VDMjQzRjcxRDUwMDkyNDdENiAvKiBYUlNpbXVsYXRl
VXNlckFjdGl2YXRpb25GdW5jdGlvbi5oICovLAorCQkJCUUxOEQ4M0YwMjQzRjcxRDgwMDkyNDdE
NiAvKiBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwgKi8sCiAJCQkpOwogCQkJ
cGF0aCA9IHRlc3Rpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjcyMTUsMzMg
KzI3MjczLDQ5IEBACiAJCQkJRTFFRThCMEUyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldl
YlhSLmlkbCAqLywKIAkJCQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVk
UmVmZXJlbmNlU3BhY2UuY3BwICovLAogCQkJCUUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxOTQ5MDk0MjQzNEYxNjAwMDQx
NkE5OSAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThBRjAy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuY3BwICovLAogCQkJCUUxRUU4QUUzMjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUkZyYW1lLmggKi8sCisJCQkJRTE5NDkwODgyNDM0RjE1OTAwNDE2
QTk5IC8qIFdlYlhSRnJhbWUuaWRsICovLAogCQkJCUUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUklucHV0U291cmNlLmNwcCAqLywKIAkJCQlFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJJbnB1dFNvdXJjZS5oICovLAorCQkJCUUxOTQ5MDg5MjQzNEYxNUEwMDQxNkE5OSAv
KiBXZWJYUklucHV0U291cmNlLmlkbCAqLywKIAkJCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmNwcCAqLywKIAkJCQlFMUVFOEFERDI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmggKi8sCisJCQkJRTE5NDkwOTMyNDM0RjE2
MDAwNDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwgKi8sCiAJCQkJRTFFRThBRTUy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8sCiAJCQkJRTFFRThBRTEyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSUG9zZS5oICovLAorCQkJCUUxOTQ5MEExMjQzNEYxNjgwMDQxNkE5
OSAvKiBXZWJYUlBvc2UuaWRsICovLAogCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlJlZmVyZW5jZVNwYWNlLmNwcCAqLywKIAkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxOTQ5MEE2MjQzNEYxNkIwMDQxNkE5
OSAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEFDRTI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5jcHAgKi8sCiAJCQkJRTFFRThBRDUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSUmVuZGVyU3RhdGUuaCAqLywKKwkJCQlFMTk0OTBBNDI0MzRGMTY5MDA0
MTZBOTkgLyogV2ViWFJSZW5kZXJTdGF0ZS5pZGwgKi8sCiAJCQkJRTFFRThBQ0QyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwICovLAogCQkJCUUxRUU4QjA2MjQxMkIx
NzAwMEU3OTRENiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi8sCisJCQkJRTE5NDkwOTgyNDM0
RjE2MjAwNDE2QTk5IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsICovLAogCQkJCUUxRUU4QjBG
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwICovLAogCQkJCUUxRUU4QjExMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlNlc3Npb24uaCAqLywKKwkJCQlFMTk0OTA5RTI0MzRGMTY2
MDA0MTZBOTkgLyogV2ViWFJTZXNzaW9uLmlkbCAqLywKIAkJCQlFMUVFOEFGODI0MTJCMTcwMDBF
Nzk0RDYgLyogV2ViWFJTcGFjZS5jcHAgKi8sCiAJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSU3BhY2UuaCAqLywKKwkJCQlFMTk0OTBBMjI0MzRGMTY4MDA0MTZBOTkgLyogV2Vi
WFJTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lz
dGVtLmNwcCAqLywKIAkJCQlFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0u
aCAqLywKKwkJCQlFMTk0OTA5QTI0MzRGMTY0MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW0uaWRsICov
LAogCQkJCUUxRUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovLAogCQkJ
CUUxRUU4QUUwMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLywKKwkJCQlFMTk0OTA4
NjI0MzRGMTU4MDA0MTZBOTkgLyogV2ViWFJWaWV3LmlkbCAqLywKIAkJCQlFMUVFOEIwQjI0MTJC
MTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCAqLywKIAkJCQlFMUVFOEFDNzI0MTJC
MTZGMDBFNzk0RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi8sCisJCQkJRTE5NDkwOUMyNDM0RjE2
NTAwNDE2QTk5IC8qIFdlYlhSVmlld2VyUG9zZS5pZGwgKi8sCiAJCQkJRTFFRThBRUIyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuY3BwICovLAogCQkJCUUxRUU4QUY0MjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUlZpZXdwb3J0LmggKi8sCisJCQkJRTE5NDkwODcyNDM0RjE1OTAwNDE2
QTk5IC8qIFdlYlhSVmlld3BvcnQuaWRsICovLAogCQkJCUUxRUU4QUQ4MjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUldlYkdMTGF5ZXIuY3BwICovLAorCQkJCUUxOTQ5MDk1MjQzNEYxNjEwMDQxNkE5
OSAvKiBXZWJYUldlYkdMTGF5ZXIuaCAqLywKKwkJCQlFMTk0OTA4RjI0MzRGMTVEMDA0MTZBOTkg
LyogV2ViWFJXZWJHTExheWVyLmlkbCAqLywKIAkJCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYg
LyogWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovLAogCQkJCUUxRUU4QjA1MjQxMkIxNzAw
MEU3OTRENiAvKiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi8sCiAJCQkJRTFFRThBREEyNDEy
QjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsICovLApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGM2MjA1
YzVmNmU2YjE2ZDgyNzYxYTQ1NWY1ZjlmMDUyODAwNGU4ODguLmYwNmU0MjJjYzZkYTZmOTVjYWQ5
OTRlNmM1ODkyZjRkZmNjMDA2ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKQEAgLTc1LDYgKzc1LDggQEAgbmFtZXNwYWNlIFdlYkNv
cmUgewogICAgIG1hY3JvKEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50KSBcCiAgICAgbWFjcm8o
RXh0ZW5kYWJsZUV2ZW50KSBcCiAgICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCkgXAor
ICAgIG1hY3JvKEZha2VYUkRldmljZSkgXAorICAgIG1hY3JvKEZha2VYUklucHV0Q29udHJvbGxl
cikgXAogICAgIG1hY3JvKEZldGNoRXZlbnQpIFwKICAgICBtYWNybyhGaWxlU3lzdGVtKSBcCiAg
ICAgbWFjcm8oRmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KSBcCkBAIC0yNTAsNiArMjUyLDcgQEAg
bmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKFhSU2Vzc2lvbkV2ZW50KSBcCiAgICAgbWFj
cm8oWFJTcGFjZSkgXAogICAgIG1hY3JvKFhSU3lzdGVtKSBcCisgICAgbWFjcm8oWFJUZXN0KSBc
CiAgICAgbWFjcm8oWFJWaWV3KSBcCiAgICAgbWFjcm8oWFJWaWV3ZXJQb3NlKSBcCiAgICAgbWFj
cm8oWFJWaWV3cG9ydCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtl
WFJCb3VuZHNQb2ludC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2lu
dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjJkNzA3Mjg2ODIzMWViMjkzOTQxNzEyYWU0MzBmY2E4ZmI0NTA2NDMK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJvdW5kc1Bv
aW50LmgKQEAgLTAsMCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRmFrZVhSQm91
bmRzUG9pbnQgeworICAgIGRvdWJsZSB4OworICAgIGRvdWJsZSB6OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5pZGwgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL0Zha2VYUkJvdW5kc1BvaW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOWI4NTBiNTYzMDNm
NmJhZWVjZTUzMjAyYmUxZjA4NzFiOGU1NGIxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25h
bD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJCb3VuZHNQb2ludCB7CisgIGRvdWJsZSB4OyBk
b3VibGUgejsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1
dHRvblN0YXRlSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0
ZUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi41ZWQ5OGVkOGRjNDA1NmZlM2M4MDZkZjY4MWNkMjI1ZDBlOTJi
MDY4Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0
b25TdGF0ZUluaXQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBG
YWtlWFJCdXR0b25TdGF0ZUluaXQgeworICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgIEdy
aXAsCisgICAgICAgIFRvdWNocGFkLAorICAgICAgICBUaHVtYnN0aWNrLAorICAgICAgICBPcHRp
b25hbEJ1dHRvbiwKKyAgICAgICAgT3B0aW9uYWxUaHVtYnN0aWNrCisgICAgfTsKKworICAgIFR5
cGUgYnV0dG9uVHlwZTsKKyAgICBib29sIHByZXNzZWQ7CisgICAgYm9vbCB0b3VjaGVkOworICAg
IGZsb2F0IHByZXNzZWRWYWx1ZTsKKyAgICBmbG9hdCB4VmFsdWUgeyAwLjAgfTsKKyAgICBmbG9h
dCB5VmFsdWUgeyAwLjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFr
ZVhSQnV0dG9uU3RhdGVJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0
dG9uU3RhdGVJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMzRhNmNiYjk3NmJjY2ZkYTY4YzhjYWZiYmRj
ZGFkNThjYTVlZjcyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9G
YWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
Ly8gQmNhdXNlIHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBhbHdheXMgZ3VhcmFudGVlZCB0byBiZSBw
cmVzZW50LCBhbmQgb3RoZXIgYnV0dG9ucworLy8gc2hvdWxkIGZ1bGZpbGwgdGhlIHJvbGUgb2Yg
dmFsaWRhdGluZyBhbnkgc3RhdGUgZnJvbSBGYWtlWFJCdXR0b25TdGF0ZUluaXQKKy8vIHRoZSBw
cmltYXJ5IGJ1dHRvbiBpcyBub3QgcHJlc2VudCBpbiB0aGlzIGVudW0uCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZW51bSBGYWtlWFJC
dXR0b25UeXBlIHsKKyAgImdyaXAiLAorICAidG91Y2hwYWQiLAorICAidGh1bWJzdGljayIsCisg
IC8vIFJlcHJlc2VudHMgYSBidXR0b24gd2hvc2UgcG9zaXRpb24gaXMgbm90IHNwZWNpZmllZCBi
eSB0aGUgeHItc3RhbmRhcmQgbWFwcGluZy4KKyAgLy8gU2hvdWxkIGFwcGVhciBhdCBvbmUgcGFz
dCB0aGUgbGFzdCByZXNlcnZlZCBidXR0b24gaW5kZXguCisgICJvcHRpb25hbC1idXR0b24iLAor
ICAvLyBSZXByZXNlbnRzIGEgdGh1bWJzdGljayB3aG9zZSBwb3NpdGlvbiBpcyBub3Qgc3BlY2lm
aWVkIGJ5IHRoZSB4ci1zdGFuZGFyZCBtYXBwaW5nLgorICAvLyBTaG91bGQgYXBwZWFyIGF0IHR3
byBwYXN0IHRoZSBsYXN0IHJlc2VydmVkIGJ1dHRvbiBpbmRleC4KKyAgIm9wdGlvbmFsLXRodW1i
c3RpY2siCit9OworCisvLyBVc2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2Ygb3B0aW9uYWxseSBz
dXBwb3J0ZWQgYnV0dG9ucy4KK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkJ1dHRvblN0YXRlSW5pdCB7Cisg
IHJlcXVpcmVkIEZha2VYUkJ1dHRvblR5cGUgYnV0dG9uVHlwZTsKKyAgcmVxdWlyZWQgYm9vbGVh
biBwcmVzc2VkOworICByZXF1aXJlZCBib29sZWFuIHRvdWNoZWQ7CisgIHJlcXVpcmVkIGZsb2F0
IHByZXNzZWRWYWx1ZTsKKyAgLy8geCBhbmQgeSB2YWx1ZSBhcmUgaWdub3JlZCBpZiB0aGUgRmFr
ZVhSQnV0dG9uVHlwZSBpcyBub3QgdG91Y2hwYWQsIHRodW1ic3RpY2ssIG9yIG9wdGlvbmFsLXRo
dW1ic3RpY2sKKyAgZmxvYXQgeFZhbHVlID0gMC4wOworICBmbG9hdCB5VmFsdWUgPSAwLjA7Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUlu
aXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZWM0MmE0YjMxMDAxODJiMzBlMzQzMWVmMGE0OGQ5ZTE2Mjg5ODQwYQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVO
QUJMRShXRUJYUikKKworI2luY2x1ZGUgIkZha2VYUkJ1dHRvblN0YXRlSW5pdC5oIgorI2luY2x1
ZGUgIkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oIgorI2luY2x1ZGUgIlhSRXllLmgiCisjaW5j
bHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5j
bHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtl
WFJJbnB1dFNvdXJjZUluaXQgeworICAgIFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIFhS
VGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlOworICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5p
dCBwb2ludGVyT3JpZ2luOworICAgIFZlY3RvcjxTdHJpbmc+IHByb2ZpbGVzOworICAgIGJvb2wg
c2VsZWN0aW9uU3RhcnRlZCB7IGZhbHNlIH07CisgICAgYm9vbCBzZWxlY3Rpb25DbGlja2VkIHsg
ZmFsc2UgfTsKKyAgICBWZWN0b3I8RmFrZVhSQnV0dG9uU3RhdGVJbml0PiBzdXBwb3J0ZWRCdXR0
b25zOworICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlwT3JpZ2luOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjRjMmVlZDcwNWQxZTlhYjRmY2NjNWU5OGRkZGQwYjlkNmQ3NTJkZGQKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwKQEAg
LTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJJbnB1dFNvdXJj
ZUluaXQgeworICByZXF1aXJlZCBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzczsKKyAgcmVxdWlyZWQg
WFJUYXJnZXRSYXlNb2RlIHRhcmdldFJheU1vZGU7CisgIHJlcXVpcmVkIEZha2VYUlJpZ2lkVHJh
bnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luOworICByZXF1aXJlZCBzZXF1ZW5jZTxET01TdHJpbmc+
IHByb2ZpbGVzOworICAvLyB3YXMgdGhlIHByaW1hcnkgYWN0aW9uIHByZXNzZWQgd2hlbiB0aGlz
IHdhcyBjb25uZWN0ZWQ/CisgIGJvb2xlYW4gc2VsZWN0aW9uU3RhcnRlZCA9IGZhbHNlOworICAv
LyBzaG91bGQgdGhpcyBpbnB1dCBzb3VyY2Ugc2VuZCBhIHNlbGVjdCBpbW1lZGlhdGVseSB1cG9u
IGNvbm5lY3Rpb24/CisgIGJvb2xlYW4gc2VsZWN0aW9uQ2xpY2tlZCA9IGZhbHNlOworICAvLyBJ
bml0aWFsIGJ1dHRvbiBzdGF0ZSBmb3IgYW55IGJ1dHRvbnMgYmV5b25kIHRoZSBwcmltYXJ5IHRo
YXQgYXJlIHN1cHBvcnRlZC4KKyAgLy8gSWYgZW1wdHksIG9ubHkgdGhlIHByaW1hcnkgYnV0dG9u
IGlzIHN1cHBvcnRlZC4KKyAgLy8gTm90ZSB0aGF0IGlmIGFueSBGYWtlWFJCdXR0b25UeXBlIGlz
IHJlcGVhdGVkIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCisgIHNlcXVlbmNlPEZha2VYUkJ1
dHRvblN0YXRlSW5pdD4gc3VwcG9ydGVkQnV0dG9uczsKKyAgLy8gSWYgbm90IHNldCB0aGUgY29u
dHJvbGxlciBpcyBhc3N1bWVkIHRvIG5vdCBiZSB0cmFja2VkLgorICBGYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQgZ3JpcE9yaWdpbjsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTcxODMyOTM4MmJiMDFlNDRlZmRiMzUzYzU1ZDk1YzU3ZmJiMDJhYwotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1J
bml0LmgKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lm
IEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitzdHJ1Y3QgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHsKKyAgICBWZWN0b3I8
ZmxvYXQ+IHBvc2l0aW9uOworICAgIFZlY3RvcjxmbG9hdD4gb3JpZW50YXRpb247Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjc3NzUzZDBiM2RmYzFmODY2MTRlOTA4MzQzYjhlNzg1YTM3OGI3YQotLS0gL2Rl
di9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1J
bml0LmlkbApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisgCisvLyBodHRwczovL2ltbWVy
c2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cnJpZ2lkdHJhbnNmb3JtCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBG
YWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgeworICAvLyBtdXN0IGhhdmUgdGhyZWUgZWxlbWVudHMK
KyAgcmVxdWlyZWQgc2VxdWVuY2U8ZmxvYXQ+IHBvc2l0aW9uOworICAvLyBtdXN0IGhhdmUgZm91
ciBlbGVtZW50cworICByZXF1aXJlZCBzZXF1ZW5jZTxmbG9hdD4gb3JpZW50YXRpb247Cit9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZmNTcwMThl
ODhhZjNjNjFiMGYwNzc5MDdjOGMxMGE3MGU2NTdiZGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmgKQEAgLTAsMCArMSw1NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUg
IkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oIgorI2luY2x1ZGUgIlhSRXllLmgiCisjaW5jbHVk
ZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtlWFJW
aWV3SW5pdCB7CisgICAgc3RydWN0IERldmljZVJlc29sdXRpb24geworICAgICAgICBpbnQgd2lk
dGg7CisgICAgICAgIGludCBoZWlnaHQ7CisgICAgfTsKKyAgICBzdHJ1Y3QgRmllbGRPZlZpZXdJ
bml0IHsKKyAgICAgICAgZmxvYXQgdXBEZWdyZWVzOworICAgICAgICBmbG9hdCBkb3duRGVncmVl
czsKKyAgICAgICAgZmxvYXQgbGVmdERlZ3JlZXM7CisgICAgICAgIGZsb2F0IHJpZ2h0RGVncmVl
czsKKyAgICB9OworCisgICAgWFJFeWUgZXllOworICAgIFZlY3RvcjxmbG9hdD4gcHJvamVjdGlv
bk1hdHJpeDsKKyAgICBEZXZpY2VSZXNvbHV0aW9uIHJlc29sdXRpb247CisgICAgRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0IHZpZXdPZmZzZXQ7CisgICAgRmllbGRPZlZpZXdJbml0IGZpZWxkT2ZW
aWV3OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5p
ZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMDllYmEzMTRjMjhjNzhiYjgzNmRhNjc1MzY1ZDE3YzFkMGI2ZjMzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5pZGwKQEAgLTAsMCAr
MSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUaGlzIHJlcHJlc2VudHMgdGhlIG5hdGl2ZSByZXNv
bHV0aW9uIG9mIHRoZSBkZXZpY2UsIGJ1dCBtYXkgbm90IHJlZmxlY3QgdGhlIHZpZXdwb3J0IGV4
cG9zZWQgdG8gdGhlIHBhZ2UuCisvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dl
YnhyLyN4cnZpZXdwb3J0CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJEZXZpY2VSZXNvbHV0aW9uIHsKKyAg
ICByZXF1aXJlZCBsb25nIHdpZHRoOworICAgIHJlcXVpcmVkIGxvbmcgaGVpZ2h0OworfTsKKwor
Ly8gQSBzZXQgb2YgNCBhbmdsZXMgd2hpY2ggZGVzY3JpYmUgdGhlIHZpZXcgZnJvbSBhIGNlbnRl
ciBwb2ludCwgdW5pdHMgYXJlIGRlZ3JlZXMuCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJY
UiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJGaWVsZE9mVmll
d0luaXQgeworICByZXF1aXJlZCBmbG9hdCB1cERlZ3JlZXM7CisgIHJlcXVpcmVkIGZsb2F0IGRv
d25EZWdyZWVzOworICByZXF1aXJlZCBmbG9hdCBsZWZ0RGVncmVlczsKKyAgcmVxdWlyZWQgZmxv
YXQgcmlnaHREZWdyZWVzOworfTsKKworLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5p
by93ZWJ4ci8jeHJ2aWV3CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25k
aXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJWaWV3SW5pdCB7CisgIHJlcXVpcmVk
IFhSRXllIGV5ZTsKKyAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8j
dmlldy1wcm9qZWN0aW9uLW1hdHJpeAorICByZXF1aXJlZCBzZXF1ZW5jZTxmbG9hdD4gcHJvamVj
dGlvbk1hdHJpeDsKKyAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8j
ZG9tLXhyd2ViZ2xsYXllci1nZXR2aWV3cG9ydAorICByZXF1aXJlZCBGYWtlWFJEZXZpY2VSZXNv
bHV0aW9uIHJlc29sdXRpb247CisgIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8v
d2VieHIvI3ZpZXctb2Zmc2V0CisgIC8vIFRoaXMgaXMgdGhlIG9yaWdpbiBvZiB0aGUgdmlldyBp
biB0aGUgdmlld2VyIHNwYWNlLiBJbiBvdGhlciB3b3JkcywgdGhpcyBpcworICAvLyBhIHRyYW5z
Zm9ybSBmcm9tIHRoZSB2aWV3IHNwYWNlIHRvIHRoZSB2aWV3ZXIgc3BhY2UuCisgIHJlcXVpcmVk
IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB2aWV3T2Zmc2V0OworICAvLyBUaGlzIGlzIGFuIG9w
dGlvbmFsIG1lYW5zIG9mIHNwZWNpZnlpbmcgYSBkZWNvbXBvc2VkIGZvcm0gb2YgdGhlIHByb2pl
Y3Rpb24KKyAgLy8gbWF0cml4LiAgSWYgc3BlY2lmaWVkLCB0aGUgcHJvamVjdGlvbk1hdHJpeCBz
aG91bGQgYmUgaWdub3JlZC4KKyAgLy8gQW55IHRlc3QgdGhhdCB3aXNoZXMgdG8gdGVzdCBjbGlw
IHBsYW5lcyBvciBzaW1pbGFyIGZlYXR1cmVzIHRoYXQgd291bGQgcmVxdWlyZQorICAvLyBkZWNv
bXBvc2luZy9yZWNvbXBvc2luZyB0aGUgcHJvamVjdGlvbk1hdHJpeCBzaG91bGQgdXNlIHRoaXMg
aW5zdGVhZCBvZgorICAvLyB0aGUgcHJvamVjdGlvbiBtYXRyaXguCisgIEZha2VYUkZpZWxkT2ZW
aWV3SW5pdCBmaWVsZE9mVmlldzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAK
aW5kZXggZTc4MWYzNzRmMjk1MDllNTU1OTM5OWM4MThmNTFkMzdjZGM5OTlhYi4uYjYxY2FlNzI0
NDI5NzM2NGIyN2Y4NDljZDAxYmEwNjM4OTViNGFkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcApAQCAtMzA4LDYgKzMwOCwxMiBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGlu
YXRvci5oIgogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCWFIpCisjaW5jbHVkZSAiTmF2aWdhdG9y
V2ViWFIuaCIKKyNpbmNsdWRlICJXZWJYUlN5c3RlbS5oIgorI2luY2x1ZGUgIldlYlhSVGVzdC5o
IgorI2VuZGlmCisKICNpZiBQTEFURk9STShNQUMpICYmIFVTRShMSUJXRUJSVEMpCiAjaW5jbHVk
ZSA8d2VicnRjL3Nkay9XZWJLaXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaD4KICNlbmRpZgpA
QCAtNTU1OSw0ICs1NTY1LDI3IEBAIGJvb2wgSW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxl
cih1bnNpZ25lZCBpZGVudGlmaWVyKQogICAgIHJldHVybiBtX3NsZWVwRGlzYWJsZXJzLnJlbW92
ZShpZGVudGlmaWVyKTsKIH0KIAorI2lmIEVOQUJMRShXRUJYUikKKworRXhjZXB0aW9uT3I8UmVm
UHRyPFdlYlhSVGVzdD4+IEludGVybmFsczo6eHJUZXN0KCkKK3sKKyAgICBpZiAoIW1feHJUZXN0
KSB7CisgICAgICAgIGlmICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgp
LT5kb21XaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNj
ZXNzRXJyb3IgfTsKKworICAgICAgICBhdXRvKiBuYXZpZ2F0b3IgPSBjb250ZXh0RG9jdW1lbnQo
KS0+ZG9tV2luZG93KCktPm9wdGlvbmFsTmF2aWdhdG9yKCk7CisgICAgICAgIGlmICghbmF2aWdh
dG9yKQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9
OworCisgICAgICAgIGF1dG8mIG5hdmlnYXRvclhSID0gTmF2aWdhdG9yV2ViWFI6OmZyb20oKm5h
dmlnYXRvcik7CisgICAgICAgIGF1dG8mIHhyU3lzdGVtID0gbmF2aWdhdG9yWFIueHIoKnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSwgKm5hdmlnYXRvcik7CisKKyAgICAgICAgbV94clRlc3QgPSBX
ZWJYUlRlc3Q6OmNyZWF0ZShtYWtlV2Vha1B0cigmeHJTeXN0ZW0pKTsKKyAgICB9CisgICAgcmV0
dXJuIG1feHJUZXN0LmdldCgpOworfQorCisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCBlZGVhYmFjYWU3YzFiNTM5ZmMw
MzUyZjM3OTVkOGMxY2M3YWY2ZTEwLi4zZjYxNzIzODQzNzBiZTU1ZTk1MmZiOTc0ZTAyMDEyMjQ4
Yzg3YjA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTExNiw2ICsxMTYsMTAg
QEAgY2xhc3MgVGV4dFRyYWNrQ3VlR2VuZXJpYzsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiAjZW5k
aWYKIAorI2lmIEVOQUJMRShXRUJYUikKK2NsYXNzIFdlYlhSVGVzdDsKKyNlbmRpZgorCiB0ZW1w
bGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIHN0cnVj
dCBNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwpAQCAtOTYzLDYgKzk2NywxMCBA
QCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY3JlYXRlU2xlZXBEaXNhYmxlcihjb25zdCBTdHJpbmcm
IHJlYXNvbiwgYm9vbCBkaXNwbGF5KTsKICAgICBib29sIGRlc3Ryb3lTbGVlcERpc2FibGVyKHVu
c2lnbmVkIGlkZW50aWZpZXIpOwogCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIEV4Y2VwdGlvbk9y
PFJlZlB0cjxXZWJYUlRlc3Q+PiB4clRlc3QoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4
cGxpY2l0IEludGVybmFscyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1l
bnQoKSBjb25zdDsKQEAgLTk4Nyw2ICs5OTUsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q2Fj
aGVTdG9yYWdlQ29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogCiAgICAgSGFz
aE1hcDx1bnNpZ25lZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBt
X3NsZWVwRGlzYWJsZXJzOworCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIFJlZlB0cjxXZWJYUlRl
c3Q+IG1feHJUZXN0OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKaW5kZXggNDMxOTUyZTk2NWY3ZTE4YzRmNWI1NzUz
YWZiNTI4NDc3NGIyNmQzZS4uYzgzOGQ4NWRlZjE0MTZkYTUxZDYxOTlmZmU2ZDdlZWU5NWZiMmQy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtODYzLDQgKzg2Myw2IEBA
IGVudW0gQ29tcG9zaXRpbmdQb2xpY3kgewogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVTbGVl
cERpc2FibGVyKERPTVN0cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7CiAgICAgYm9vbGVh
biBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworCisgICAg
W0NvbmRpdGlvbmFsPVdFQlhSLCBNYXlUaHJvd0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRl
IFdlYlhSVGVzdCB4clRlc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJGYWtlWFJEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJE
ZXZpY2UuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJjYTUxMzFmZjhlMGViYjU4MDM5NzNlOWM2ZTk0ODA2MDIx
MzYxZmIKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VY
UkRldmljZS5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29u
ZmlnLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSRGV2aWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIp
CisKKyNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIldlYkZha2VY
UklucHV0Q29udHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViRmFr
ZVhSRGV2aWNlOjpzZXRWaWV3cyhWZWN0b3I8RmFrZVhSVmlld0luaXQ+KSB7IH0KKwordm9pZCBX
ZWJGYWtlWFJEZXZpY2U6OmRpc2Nvbm5lY3QoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJv
bWlzZSkKK3sKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKK30KKwordm9pZCBXZWJGYWtlWFJEZXZp
Y2U6OnNldFZpZXdlck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgb3JpZ2luLCBib29s
IGVtdWxhdGVkUG9zaXRpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKG9yaWdpbik7CisgICAgVU5V
U0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6
Y2xlYXJWaWV3ZXJPcmlnaW4oKSB7IH0KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRl
VmlzaWJpbGl0eUNoYW5nZShYUlZpc2liaWxpdHlTdGF0ZSkgeyB9CisKK3ZvaWQgV2ViRmFrZVhS
RGV2aWNlOjpzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+KSB7IH0K
Kwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNm
b3JtSW5pdCkgeyB9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpjbGVhckZsb29yT3JpZ2luKCkg
eyB9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVJlc2V0UG9zZSgpIHsgfQorCitX
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291
cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpCit7CisgICAgcmV0dXJuIFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYkZha2VYUkRldmljZS5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZp
Y2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kMTIzZGU2OTc2YmY1ODA1ZWFkZTRjMzNiZTY4NTNiOGYzNTZmOGY2
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZp
Y2UuaApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhSQm91bmRzUG9pbnQuaCIKKyNpbmNsdWRl
ICJGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCIKKyNpbmNsdWRlICJGYWtlWFJWaWV3SW5pdC5oIgor
I2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiWFJWaXNpYmlsaXR5U3RhdGUuaCIKKyNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNl
IFdlYkNvcmUgeworCitjbGFzcyBXZWJGYWtlWFJEZXZpY2UgOiBwdWJsaWMgUmVmQ291bnRlZDxX
ZWJGYWtlWFJEZXZpY2U+IHsKK3B1YmxpYzoKKwordm9pZCBzZXRWaWV3cyhWZWN0b3I8RmFrZVhS
Vmlld0luaXQ+KTsKKwordm9pZCBkaXNjb25uZWN0KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKKwordm9pZCBzZXRWaWV3ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IG9yaWdp
biwgYm9vbCBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCit2b2lkIGNsZWFyVmlld2VyT3Jp
Z2luKCk7CisKK3ZvaWQgc2ltdWxhdGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRl
KTsKKwordm9pZCBzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+IGJv
dW5kc0Nvb3JkaW5hdGVzKTsKKwordm9pZCBzZXRGbG9vck9yaWdpbihGYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQpOworCit2b2lkIGNsZWFyRmxvb3JPcmlnaW4oKTsKKwordm9pZCBzaW11bGF0ZVJl
c2V0UG9zZSgpOworCitXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgc2ltdWxhdGVJbnB1dFNvdXJj
ZUNvbm5lY3Rpb24oRmFrZVhSSW5wdXRTb3VyY2VJbml0KTsKK307CisKK30gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViRmFrZVhSRGV2aWNlLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NGE3MzZmNmYwY2U2NzlhY2UzNTc0
YzhjMmY2NWU2ZTJkOGM2NTlhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisg
ICAgSW50ZXJmYWNlTmFtZT1GYWtlWFJEZXZpY2UsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZU
YWJsZSwKK10gaW50ZXJmYWNlIFdlYkZha2VYUkRldmljZSB7CisgIC8vIFNldHMgdGhlIHZhbHVl
cyB0byBiZSB1c2VkIGZvciBzdWJzZXF1ZW50CisgIC8vIHJlcXVlc3RBbmltYXRpb25GcmFtZSgp
IGNhbGxiYWNrcy4KKyAgdm9pZCBzZXRWaWV3cyhzZXF1ZW5jZTxGYWtlWFJWaWV3SW5pdD4gdmll
d3MpOworCisgIC8vIGJlaGF2ZXMgYXMgaWYgZGV2aWNlIHdhcyBkaXNjb25uZWN0ZWQKKyAgUHJv
bWlzZTx2b2lkPiBkaXNjb25uZWN0KCk7CisKKyAgLy8gU2V0cyB0aGUgb3JpZ2luIG9mIHRoZSB2
aWV3ZXIKKyAgdm9pZCBzZXRWaWV3ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IG9y
aWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCisgIC8v
IElmIGFuIG9yaWdpbiBpcyBub3Qgc3BlY2lmaWVkLCB0aGVuIHRoZSBkZXZpY2UgaXMgYXNzdW1l
ZCB0byBub3QgYmUgdHJhY2tpbmcsIGVtdWxhdGVkUG9zaXRpb24gc2hvdWxkCisgIC8vIGJlIGFz
c3VtZWQgZm9yIGNhc2VzIHdoZXJlIHRoZSBVQSBtdXN0IGFsd2F5cyBwcm92aWRlIGEgcG9zZS4K
KyAgdm9pZCBjbGVhclZpZXdlck9yaWdpbigpOworCisgIC8vIFNpbXVsYXRlcyBkZXZpY2VzIGZv
Y3VzaW5nIGFuZCBibHVycmluZyBzZXNzaW9ucy4KKyAgdm9pZCBzaW11bGF0ZVZpc2liaWxpdHlD
aGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUgdmlzaWJpbGl0eVN0YXRlKTsKKworICB2b2lkIHNldEJv
dW5kc0dlb21ldHJ5KHNlcXVlbmNlPEZha2VYUkJvdW5kc1BvaW50PiBib3VuZHNDb29yZGluYXRl
cyk7CisgIC8vIFNldHMgdGhlIG5hdGl2ZSBvcmlnaW4gb2YgdGhlIHBoeXNpY2FsIGZsb29yCisg
IHZvaWQgc2V0Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGZsb29yT3JpZ2lu
KTsKKworICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGNhbiBubyBsb25nZXIgaWRlbnRp
ZnkgdGhlIGxvY2F0aW9uIG9mIHRoZSBwaHlzaWNhbCBmbG9vci4KKyAgdm9pZCBjbGVhckZsb29y
T3JpZ2luKCk7CisKKyAgLy8gVXNlZCB0byBzaW11bGF0ZSBhIG1ham9yIGNoYW5nZSBpbiB0cmFj
a2luZyBhbmQgdGhhdCBhIHJlc2V0IHBvc2UgZXZlbnQgc2hvdWxkIGJlIGZpcmVkCisgIC8vIGh0
dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI2V2ZW50LXR5cGVzCisgIHZvaWQg
c2ltdWxhdGVSZXNldFBvc2UoKTsKKworICAvLyBVc2VkIHRvIGNvbm5lY3QgYW5kIHNlbmQgaW5w
dXQgZXZlbnRzCisgIFdlYkZha2VYUklucHV0Q29udHJvbGxlciBzaW11bGF0ZUlucHV0U291cmNl
Q29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQgaW5wdXRTb3VyY2UpOworfTsKXCBObyBu
ZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dl
YkZha2VYUklucHV0Q29udHJvbGxlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTNjYjkzOTU4NzJkYmNiNjlk
NDJjMGZhYjg4YzEzNzcwYjU1MWY2MgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcApAQCAtMCwwICsxLDY5IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUg
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0SGFuZGVkbmVzcyhYUkhhbmRl
ZG5lc3MpIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0VGFyZ2V0UmF5
TW9kZShYUlRhcmdldFJheU1vZGUpIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxl
cjo6c2V0UHJvZmlsZXMoVmVjdG9yPFN0cmluZz4pIHsgfQorCit2b2lkIFdlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6c2V0R3JpcE9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9y
aWdpbiwgYm9vbCBlbXVsYXRlZFBvc2l0aW9uKQoreworICAgIFVOVVNFRF9QQVJBTShncmlwT3Jp
Z2luKTsKKyAgICBVTlVTRURfUEFSQU0oZW11bGF0ZWRQb3NpdGlvbik7Cit9CisKK3ZvaWQgV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyOjpjbGVhckdyaXBPcmlnaW4oKSB7IH0KKwordm9pZCBXZWJG
YWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFBvaW50ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVT
RURfUEFSQU0ocG9pbnRlck9yaWdpbik7CisgICAgVU5VU0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRp
b24pOworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6ZGlzY29ubmVjdCgpIHsg
fQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6cmVjb25uZWN0KCkgeyB9CisKK3Zv
aWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzdGFydFNlbGVjdGlvbigpIHsgfQorCit2b2lk
IFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6ZW5kU2VsZWN0aW9uKCkgeyB9CisKK3ZvaWQgV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVjdCgpIHsgfQorCit2b2lkIFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcjo6c2V0U3VwcG9ydGVkQnV0dG9ucyhWZWN0b3I8RmFrZVhSQnV0
dG9uU3RhdGVJbml0PikgeyB9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRh
dGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQpIHsgfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iNDdkZTk2
MzUwNDZiYWJlYjM3N2QwY2RkM2I0MDVlMmQ4YzA2ZWU3Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaApAQCAtMCwwICsx
LDcxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQor
CisjaW5jbHVkZSAiRmFrZVhSQnV0dG9uU3RhdGVJbml0LmgiCisjaW5jbHVkZSAiRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0LmgiCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAi
WFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyPiB7CitwdWJsaWM6CisKK3ZvaWQgc2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3MpOworCit2
b2lkIHNldFRhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlKTsKKwordm9pZCBzZXRQcm9maWxl
cyhWZWN0b3I8U3RyaW5nPik7CisKK3ZvaWQgc2V0R3JpcE9yaWdpbihGYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQgZ3JpcE9yaWdpbiwgYm9vbCBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCit2
b2lkIGNsZWFyR3JpcE9yaWdpbigpOworCit2b2lkIHNldFBvaW50ZXJPcmlnaW4oRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbiA9IGZh
bHNlKTsKKwordm9pZCBkaXNjb25uZWN0KCk7CisKK3ZvaWQgcmVjb25uZWN0KCk7CisKK3ZvaWQg
c3RhcnRTZWxlY3Rpb24oKTsKKwordm9pZCBlbmRTZWxlY3Rpb24oKTsKKwordm9pZCBzaW11bGF0
ZVNlbGVjdCgpOworCit2b2lkIHNldFN1cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRv
blN0YXRlSW5pdD4pOworCit2b2lkIHVwZGF0ZUJ1dHRvblN0YXRlKEZha2VYUkJ1dHRvblN0YXRl
SW5pdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0
Q29udHJvbGxlci5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29u
dHJvbGxlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjhlMWFkNTdmMGMzNzM5ZmI5YWU0NzE2NmYwZmRmYjlj
MGNkNDMzNAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyLmlkbApAQCAtMCwwICsxLDc2IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgor
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sK
KyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAg
IEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAgSW50ZXJmYWNlTmFtZT1GYWtlWFJJbnB1
dENvbnRyb2xsZXIKK10gaW50ZXJmYWNlIFdlYkZha2VYUklucHV0Q29udHJvbGxlciB7CisgIC8v
IEluZGljYXRlcyB0aGF0IHRoZSBoYW5kZWRuZXNzIG9mIHRoZSBkZXZpY2UgaGFzIGNoYW5nZWQu
CisgIHZvaWQgc2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3MgaGFuZGVkbmVzcyk7CisKKyAgLy8g
SW5kaWNhdGVzIHRoYXQgdGhlIHRhcmdldCByYXkgbW9kZSBvZiB0aGUgZGV2aWNlIGhhcyBjaGFu
Z2VkLgorICB2b2lkIHNldFRhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlIHRhcmdldFJheU1v
ZGUpOworCisgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBsaXN0IG9mIHByb2ZpbGVzIHJlcHJlc2Vu
dGluZyB0aGUgZGV2aWNlIGhhcyBjaGFuZ2VkLgorICB2b2lkIHNldFByb2ZpbGVzKHNlcXVlbmNl
PERPTVN0cmluZz4gcHJvZmlsZXMpOworCisgIC8vIFNldHMgb3IgY2xlYXJzIHRoZSBwb3NpdGlv
biBvZiB0aGUgY29udHJvbGxlci4gIElmIG5vdCBzZXQsIHRoZSBjb250cm9sbGVyIGlzIGFzc3Vt
ZWQgdG8KKyAgLy8gbm90IGJlIHRyYWNrZWQuCisgIHZvaWQgc2V0R3JpcE9yaWdpbihGYWtlWFJS
aWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9yaWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBlbXVsYXRlZFBv
c2l0aW9uID0gZmFsc2UpOworICB2b2lkIGNsZWFyR3JpcE9yaWdpbigpOworCisgIC8vIFNldHMg
dGhlIHBvaW50ZXIgb3JpZ2luIGZvciB0aGUgY29udHJvbGxlci4KKyAgdm9pZCBzZXRQb2ludGVy
T3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luLCBvcHRpb25hbCBi
b29sZWFuIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisKKyAgLy8gVGVtcG9yYXJpbHkgZGlz
Y29ubmVjdCB0aGUgaW5wdXQgZGV2aWNlCisgIHZvaWQgZGlzY29ubmVjdCgpOworCisgIC8vIFJl
Y29ubmVjdCBhIGRpc2Nvbm5lY3RlZCBpbnB1dCBkZXZpY2UKKyAgdm9pZCByZWNvbm5lY3QoKTsK
KworICAvLyBTdGFydCBhIHNlbGVjdGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUg
cHJpbWFyeSBpbnB1dAorICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBzaG91bGQgdXBk
YXRlIHRoZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHkuCisgIHZvaWQg
c3RhcnRTZWxlY3Rpb24oKTsKKworICAvLyBFbmQgc2VsZWN0aW9uIGZvciB0aGUgY3VycmVudCBm
cmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgIC8vIElmIGEgZ2FtZXBhZCBpcyBzdXBwb3J0
ZWQsIHNob3VsZCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGJ1dHRvbiBhY2NvcmRp
bmdseS4KKyAgdm9pZCBlbmRTZWxlY3Rpb24oKTsKKworICAvLyBTaW11bGF0ZXMgYSBzdGFydC9l
bmRTZWxlY3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhlIHByaW1hcnkgaW5wdXQK
KyAgLy8gSWYgYSBnYW1lcGFkIGlzIHN1cHBvcnRlZCwgc2hvdWxkIHVwZGF0ZSB0aGUgc3RhdGUg
b2YgdGhlIHByaW1hcnkgYnV0dG9uIGFjY29yZGluZ2x5LgorICB2b2lkIHNpbXVsYXRlU2VsZWN0
KCk7CisKKyAgLy8gVXBkYXRlcyB0aGUgc2V0IG9mIHN1cHBvcnRlZCBidXR0b25zLCBpbmNsdWRp
bmcgYW55IGluaXRpYWwgc3RhdGUuCisgIC8vIE5vdGUgdGhhdCB0aGlzIG1ldGhvZCBzaG91bGQg
bm90IGJlIGdlbmVyYWxseSB1c2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlCisgIC8vIGJ1
dHRvbnMsIGFzIHRoZSBVQSBtYXkgdHJlYXQgdGhpcyBhcyByZS1jcmVhdGluZyB0aGUgR2FtZXBh
ZC4KKyAgLy8gTm90ZSB0aGF0IGlmIGFueSBGYWtlWFJCdXR0b25UeXBlIGlzIHJlcGVhdGVkIHRo
ZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCisgIHZvaWQgc2V0U3VwcG9ydGVkQnV0dG9ucyhzZXF1
ZW5jZTxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+IHN1cHBvcnRlZEJ1dHRvbnMpOworCisgIC8vIFVz
ZWQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBvZiBhIGJ1dHRvbiBjdXJyZW50bHkgc3VwcG9ydGVkIGJ5
IHRoZSBpbnB1dCBzb3VyY2UKKyAgLy8gV2lsbCBub3QgYWRkIHN1cHBvcnQgZm9yIHRoYXQgYnV0
dG9uIGlmIGl0IGlzIG5vdCBjdXJyZW50bHkgc3VwcG9ydGVkLgorICB2b2lkIHVwZGF0ZUJ1dHRv
blN0YXRlKEZha2VYUkJ1dHRvblN0YXRlSW5pdCBidXR0b25TdGF0ZSk7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9XZWJYUlRlc3QuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3MzJhODVkYmJlYzA5M2VkNDQ2Y2Fk
MTcwM2QxZjNkZDg1OTg5NzAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL1dlYlhSVGVzdC5jcHAKQEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViWFJUZXN0LmgiCisKKyNpZiBFTkFCTEUoV0VCWFIp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBXZWJYUlRlc3Q6OnNpbXVsYXRlRGV2aWNl
Q29ubmVjdGlvbihGYWtlWFJEZXZpY2VJbml0LCBXZWJGYWtlWFJEZXZpY2VQcm9taXNlJiYpIGNv
bnN0IHsgfQorCit2b2lkIFdlYlhSVGVzdDo6c2ltdWxhdGVVc2VyQWN0aXZhdGlvbihYUlNpbXVs
YXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiYpIHsgfQorCit2b2lkIFdlYlhSVGVzdDo6ZGlzY29u
bmVjdEFsbERldmljZXMoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpIHsgfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJYUlRlc3QuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzgzZjM3NWUxODRkZDMxYWU3MmYwMWE5ZTU1ZTIw
NjE2MzRjYTcxCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJY
UlRlc3QuaApAQCAtMCwwICsxLDc5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNp
bmNsdWRlICJXZWJGYWtlWFJEZXZpY2UuaCIKKyNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCisj
aW5jbHVkZSAiWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaCIKKyNpbmNsdWRlIDxK
YXZhU2NyaXB0Q29yZS9KU0NKU1ZhbHVlLmg+CisjaW5jbHVkZSA8d3RmL09wdGlvbmFsLmg+Cisj
aW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFz
cyBXZWJYUlN5c3RlbTsKKworY2xhc3MgV2ViWFJUZXN0IDogcHVibGljIFJlZkNvdW50ZWQ8V2Vi
WFJUZXN0PiB7CitwdWJsaWM6CisgICAgc3RydWN0IEZha2VYUkRldmljZUluaXQgeworICAgICAg
ICBib29sIHN1cHBvcnRzSW1tZXJzaXZlIHsgZmFsc2UgfTsKKyAgICAgICAgT3B0aW9uYWw8VmVj
dG9yPFhSU2Vzc2lvbk1vZGU+PiBzdXBwb3J0ZWRNb2RlczsKKyAgICAgICAgVmVjdG9yPEZha2VY
UlZpZXdJbml0PiB2aWV3czsKKworICAgICAgICBPcHRpb25hbDxWZWN0b3I8SlNDOjpKU1ZhbHVl
Pj4gc3VwcG9ydGVkRmVhdHVyZXM7CisKKyAgICAgICAgT3B0aW9uYWw8VmVjdG9yPEZha2VYUkJv
dW5kc1BvaW50Pj4gYm91bmRzQ29vcmRpbmF0ZXM7CisKKyAgICAgICAgT3B0aW9uYWw8RmFrZVhS
UmlnaWRUcmFuc2Zvcm1Jbml0PiBmbG9vck9yaWdpbjsKKyAgICAgICAgT3B0aW9uYWw8RmFrZVhS
UmlnaWRUcmFuc2Zvcm1Jbml0PiB2aWV3ZXJPcmlnaW47CisgICAgfTsKKworICAgIHN0YXRpYyBS
ZWY8V2ViWFJUZXN0PiBjcmVhdGUoV2Vha1B0cjxXZWJYUlN5c3RlbT4mJiBzeXN0ZW0pIHsgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgV2ViWFJUZXN0KFdURk1vdmUoc3lzdGVtKSkpOyB9CisKKyAgICB1
c2luZyBXZWJGYWtlWFJEZXZpY2VQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxXZWJGYWtlWFJEZXZpY2U+PjsKKyAgICB2b2lkIHNpbXVsYXRlRGV2aWNlQ29ubmVjdGlv
bihGYWtlWFJEZXZpY2VJbml0LCBXZWJGYWtlWFJEZXZpY2VQcm9taXNlJiYpIGNvbnN0OworCisg
ICAgLy8gU2ltdWxhdGVzIGEgdXNlciBhY3RpdmF0aW9uIChha2EgdXNlciBnZXN0dXJlKSBmb3Ig
dGhlIGN1cnJlbnQgc2NvcGUuCisgICAgLy8gVGhlIGFjdGl2YXRpb24gaXMgb25seSBndWFyYW50
ZWVkIHRvIGJlIHZhbGlkIGluIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBhbmQgb25seSBhcHBsaWVz
IHRvIFdlYlhSCisgICAgLy8gRGV2aWNlIEFQSSBtZXRob2RzLgorICAgIHZvaWQgc2ltdWxhdGVV
c2VyQWN0aXZhdGlvbihYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiYpOworCisgICAg
Ly8gRGlzY29ubmVjdCBhbGwgZmFrZSBkZXZpY2VzCisgICAgdm9pZCBkaXNjb25uZWN0QWxsRGV2
aWNlcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CisKK3ByaXZhdGU6CisgICAgV2ViWFJU
ZXN0KFdlYWtQdHI8V2ViWFJTeXN0ZW0+JiYgc3lzdGVtKQorICAgICAgICA6IG1fY29udGV4dChX
VEZNb3ZlKHN5c3RlbSkpIHsgfQorCisgICAgV2Vha1B0cjxXZWJYUlN5c3RlbT4gbV9jb250ZXh0
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmY2OThjOWU2YjBh
MzRlYjIwMTk4YmVhN2NjOTNmNTdjZTk3NmQ2ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5pZGwKQEAgLTAsMCArMSw4MSBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LyAKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VC
WFIsCisgICAgRXhwb3J0TWFjcm89V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQsCisgICAgRXhw
b3NlZD1XaW5kb3csCisgICAgSW50ZXJmYWNlTmFtZT1YUlRlc3QsCisgICAgSW1wbGVtZW50YXRp
b25MYWNrc1ZUYWJsZSwKK10gaW50ZXJmYWNlIFdlYlhSVGVzdCB7CisgIC8vIFNpbXVsYXRlcyBj
b25uZWN0aW5nIGEgZGV2aWNlIHRvIHRoZSBzeXN0ZW0uCisgIC8vIFVzZWQgdG8gaW5zdGFudGlh
dGUgYSBmYWtlIGRldmljZSBmb3IgdXNlIGluIHRlc3RzLgorICBQcm9taXNlPFdlYkZha2VYUkRl
dmljZT4gc2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uKEZha2VYUkRldmljZUluaXQgaW5pdCk7CisK
KyAgLy8gU2ltdWxhdGVzIGEgdXNlciBhY3RpdmF0aW9uIChha2EgdXNlciBnZXN0dXJlKSBmb3Ig
dGhlIGN1cnJlbnQgc2NvcGUuCisgIC8vIFRoZSBhY3RpdmF0aW9uIGlzIG9ubHkgZ3VhcmFudGVl
ZCB0byBiZSB2YWxpZCBpbiB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gYW5kIG9ubHkgYXBwbGllcyB0
byBXZWJYUgorICAvLyBEZXZpY2UgQVBJIG1ldGhvZHMuCisgIHZvaWQgc2ltdWxhdGVVc2VyQWN0
aXZhdGlvbihYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiBmKTsKKworICAvLyBEaXNj
b25uZWN0IGFsbCBmYWtlIGRldmljZXMKKyAgUHJvbWlzZTx2b2lkPiBkaXNjb25uZWN0QWxsRGV2
aWNlcygpOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRGV2aWNlSW5pdCB7CisgICAgLy8gRGVw
cmVjYXRlZCAtIHVzZSBgc3VwcG9ydGVkTW9kZXNgIGluc3RlYWQuCisgICAgcmVxdWlyZWQgYm9v
bGVhbiBzdXBwb3J0c0ltbWVyc2l2ZTsKKyAgICAvLyBTZXF1ZW5jZSBvZiBtb2RlcyB0aGF0IHNo
b3VsZCBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBkZXZpY2UuCisgICAgc2VxdWVuY2U8WFJTZXNzaW9u
TW9kZT4gc3VwcG9ydGVkTW9kZXM7CisgICAgcmVxdWlyZWQgc2VxdWVuY2U8RmFrZVhSVmlld0lu
aXQ+IHZpZXdzOworCisgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4
ci8jZmVhdHVyZS1uYW1lCisgICAgLy8gVGhlIGxpc3Qgb2YgZmVhdHVyZSBuYW1lcyB0aGF0IHRo
aXMgZGV2aWNlIHN1cHBvcnRzLgorICAgIC8vIEFueSByZXF1ZXN0cyBmb3IgZmVhdHVyZXMgbm90
IGluIHRoaXMgbGlzdCBzaG91bGQgYmUgcmVqZWN0ZWQsIHdpdGggdGhlIGV4Y2VwdGlvbiBvZiB0
aG9zZQorICAgIC8vIHRoYXQgYXJlIGd1YXJhbnRlZWQgcmVnYXJkbGVzcyBvZiBkZXZpY2UgYXZh
aWxhYmlsaXR5IChlLmcuICd2aWV3ZXInKS4KKyAgICAvLyBJZiBub3Qgc3BlY2lmaWVkL2VtcHR5
LCB0aGUgZGV2aWNlIHN1cHBvcnRzIG5vIGZlYXR1cmVzLgorICAgIC8vIE5PVEU6IFRoaXMgaXMg
bWVhbnQgdG8gZW11bGF0ZSBoYXJkd2FyZSBzdXBwb3J0LCBub3Qgd2hldGhlciBhIGZlYXR1cmUg
aXMKKyAgICAvLyBjdXJyZW50bHkgYXZhaWxhYmxlIChlLmcuIGJvdW5kcyBub3QgYmVpbmcgdHJh
Y2tlZCBwZXIgYmVsb3cpCisgICAgc2VxdWVuY2U8YW55PiBzdXBwb3J0ZWRGZWF0dXJlczsKKwor
ICAgIC8vIFRoZSBib3VuZHMgY29vcmRpbmF0ZXMuIElmIGVtcHR5LCBubyBib3VuZGVkIHJlZmVy
ZW5jZSBzcGFjZSBpcyBjdXJyZW50bHkgdHJhY2tlZC4KKyAgICAvLyBJZiBub3QsIG11c3QgaGF2
ZSBhdCBsZWFzdCB0aHJlZSBlbGVtZW50cy4KKyAgICBzZXF1ZW5jZTxGYWtlWFJCb3VuZHNQb2lu
dD4gYm91bmRzQ29vcmRpbmF0ZXM7CisKKyAgICAvLyBBIHRyYW5zZm9ybSB1c2VkIHRvIGlkZW50
aWZ5IHRoZSBwaHlzaWNhbCBwb3NpdGlvbiBvZiB0aGUgdXNlcidzIGZsb29yLgorICAgIC8vIElm
IG5vdCBzZXQsIGluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgY2Fubm90IGlkZW50aWZ5IHRoZSBw
aHlzaWNhbCBmbG9vci4KKyAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZmxvb3JPcmlnaW47
CisKKyAgICAvLyBuYXRpdmUgb3JpZ2luIG9mIHRoZSB2aWV3ZXIKKyAgICAvLyBJZiBub3Qgc2V0
LCB0aGUgZGV2aWNlIGlzIGN1cnJlbnRseSBhc3N1bWVkIHRvIG5vdCBiZSB0cmFja2luZywgYW5k
IHhyRnJhbWUuZ2V0Vmlld2VyUG9zZSBzaG91bGQKKyAgICAvLyBub3QgcmV0dXJuIGEgcG9zZS4K
KyAgICAvLworICAgIC8vIFRoaXMgc2V0cyB0aGUgdmlld2VyIG9yaWdpbiAqc2hvcnRseSBhZnRl
ciogaW5pdGlhbGl6YXRpb247IHNpbmNlIHRoZSB2aWV3ZXIgb3JpZ2luIGF0IGluaXRpYWxpemF0
aW9uCisgICAgLy8gaXMgdXNlZCB0byBwcm92aWRlIGEgcmVmZXJlbmNlIG9yaWdpbiBmb3IgYWxs
IG1hdHJpY2VzLgorICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB2aWV3ZXJPcmlnaW47Cit9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2
YXRpb25GdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFj
dGl2YXRpb25GdW5jdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmM2I4NzFjMjYxMjNjODEyMGJmNzY5NmZm
YmQzOThhM2JiOGE4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmgKQEAgLTAsMCArMSw0NyBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1
bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJp
YnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBB
TkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBM
SUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElN
UExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFS
VElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQ
TEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFV
RU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUg
IkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiQ2FsbGJhY2tSZXN1bHQuaCIKKyNpbmNs
dWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdl
YlhSRnJhbWU7CisKK2NsYXNzIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uIDogcHVi
bGljIFJlZkNvdW50ZWQ8WFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24+LCBwdWJsaWMg
QWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHVzaW5nIEFjdGl2ZURPTUNhbGxiYWNr
OjpBY3RpdmVET01DYWxsYmFjazsKKworICAgIHZpcnR1YWwgQ2FsbGJhY2tSZXN1bHQ8dm9pZD4g
aGFuZGxlRXZlbnQoSlNDOjpKU1ZhbHVlKSA9IDA7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbCBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjQyZTIyYmEzNmMyYzhjNmVlNzE5NGFlYmFjYmIzYjgzYWZhN2YxMDAKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uLmlkbApAQCAtMCwwICsxLDI4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAg
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTgorICogQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUgorXSBjYWxsYmFjayBY
UlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiA9IHZvaWQgKGFueS4uLiBhcmd1bWVudHMp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMDllZTUzNmVmNTA3ZTgwZmY5OTg5
MTkyN2E1NTQ1ODU0YTVkN2MzMC4uNjZmOWVlNWIxZTI0NmUxYWVlNzliOGY0ZTk3YzQ0NjI4NTY1
Zjk5ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIw
MjAtMDQtMTYgIFNlcmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW1dlYlhSXSBUZXN0IElETHMgYW5kIHN0dWJzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDk4NTkKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9yZXNv
dXJjZXMvd2VieHJfdXRpbC5qczoKKyAgICAgICAgKHhyX3Byb21pc2VfdGVzdCk6IE1hcCBuYXZp
Z2F0b3IueHIudGVzdCA9IGludGVybmFscy54cnRlc3QuCisKIDIwMjAtMDQtMTQgIEFudHRpIEtv
aXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtDU1MgU2VsZWN0b3JzXSBTZWxl
Y3RvcnMgTGV2ZWwgNCBzcGVjaWZpY2l0eSBjYWxjdWxhdGlvbiBmb3IgcHNldWRvIGNsYXNzZXMK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VieHIvcmVzb3VyY2VzL3dlYnhyX3V0aWwuanMgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzCmluZGV4IDcy
YTIxYzBmZjI5ZTI2NmM5NTA1MWUyNzgwZjU5NGQ0NGRhMDY1NmIuLmMzM2YxODg3Y2JkZmQyZDFi
N2E3ZjkxMDdlYTkwMjc5MTMxNmMxYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvcmVzb3VyY2VzL3dlYnhyX3V0aWwuanMKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9yZXNv
dXJjZXMvd2VieHJfdXRpbC5qcwpAQCAtMTUsNiArMTUsMTAgQEAgZnVuY3Rpb24geHJfcHJvbWlz
ZV90ZXN0KG5hbWUsIGZ1bmMsIHByb3BlcnRpZXMpIHsKICAgICAgIC8vIENocm9tZSBzZXR1cAog
ICAgICAgYXdhaXQgbG9hZENocm9taXVtUmVzb3VyY2VzOwogICAgIH0KKyAgICBpZiAoc2VsZi5p
bnRlcm5hbHMgJiYgaW50ZXJuYWxzLnhyVGVzdCAmJiBuYXZpZ2F0b3IueHIpIHsKKyAgICAgIC8v
IFdlYktpdCBzZXR1cAorICAgICAgbmF2aWdhdG9yLnhyLnRlc3QgPSBpbnRlcm5hbHMueHJUZXN0
OworICAgIH0KIAogICAgIC8vIEVuc3VyZSB0aGF0IGFueSBkZXZpY2VzIGFyZSBkaXNjb25uZWN0
ZWQgd2hlbiBkb25lLiBJZiB0aGlzIHdlcmUgZG9uZSBpbgogICAgIC8vIGEgLnRoZW4oKSBmb3Ig
dGhlIHN1Y2Nlc3MgY2FzZSwgYSB0ZXN0IHRoYXQgZXhwZWN0ZWQgZmFpbHVyZSB3b3VsZAo=
</data>
<flag name="review"
          id="412056"
          type_id="1"
          status="+"
          setter="youennf"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396688</attachid>
            <date>2020-04-16 12:40:26 -0700</date>
            <delta_ts>2020-04-17 01:59:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-209859-20200416214023.patch</filename>
            <type>text/plain</type>
            <size>85331</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTM0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTI2MmZkYTVlYTZiOGRm
YmE0NDNkMDBiYzg4ZGQxOTVkYzVjMTIyZC4uNTgwZTgxNzU5ZDY3Njc5YTkyNjZlMGZmYWI5NzJi
NTI0M2NiZjc3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg5IEBACisyMDIwLTA0LTE2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViWFIgdGVzdGluZyBpcyBoYXJkIGFzIGl0IG1pZ2h0IGludm9sdmUgaW50
ZXJhY3Rpb24gd2l0aCBhY3R1YWwKKyAgICAgICAgZGV2aWNlcy4gVGhhdCdzIHdoeSB0aGUgV2Vi
WFIgdGVzdGluZworICAgICAgICBBUEkgKGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8v
d2VieHItdGVzdC1hcGkvKSB3YXMKKyAgICAgICAgcHJvcG9zZWQuIEluIGZhY3QsIGFsbCB0aGUg
Y3VycmVudCBXZWJYUiB0ZXN0cyBmcm9tCisgICAgICAgIHdlYi1wbGF0Zm9ybS10ZXN0cyBhcmUg
dXNpbmcgdGhhdCB0ZXN0aW5nIEFQSS4gVGhpcyBuZXcgdGVzdGluZworICAgICAgICBBUEkgc3Vw
cGxlbWVudHMgbmF2aWdhdG9yLnhyIGFuZCBpcyBhY2Nlc3NlZCB0aHJvdWdoCisgICAgICAgIG5h
dmlnYXRvci54ci50ZXN0LgorCisgICAgICAgIEluIG9yZGVyIG5vdCB0byBleHBvc2UgdGhlIEFQ
SSB0byB0aGUgd2ViIHdlJ3JlIGFkZGluZyB0aGUgWFJUZXN0CisgICAgICAgIGludGVyZmFjZSB0
byBJbnRlcm5hbHMgaW5zdGVhZC4gVGhlIG1hcHBpbmcgZnJvbSBpbnRlcm5hbHMueHJUZXN0IHRv
CisgICAgICAgIG5hdmlnYXRvci54ci50ZXN0IGhhcHBlbnMgaW4gdGhlIFdQVCBjb2RlLgorCisg
ICAgICAgIFdlJ3JlIGFkZGluZyB0aGUgcmVxdWlyZWQgSURMcyBhbmQgdmVyeSBiYXNpYyAobW9z
dGx5IGVtcHR5KQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgZm9yIHRlc3RpbmcgbWV0aG9kcy4g
V2UncmUgYWRkaW5nIHRlc3RpbmcKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUsIGFkZGluZyB0ZXN0
cyBtYWtlIG5vIHNlbnNlIGZvciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1ha2U6CisgICAgICAgICogTW9kdWxlcy93
ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oOiBFeHBvcnQgQVBJIHRvIGJlIHVzZWQgaW4gdGVzdGluZyBj
b2RlLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2ViWFJTeXN0ZW0uaDoKKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1hSSGFuZGVkbmVzcy5oOgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvWFJU
YXJnZXRSYXlNb2RlLmg6CisgICAgICAgICogU291cmNlcy50eHQ6IEFkZGVkIG5ldyBmaWxlcy4K
KyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgorICAg
ICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDogQWRkZWQgc29tZSBuZXcg
bWFjcm9zLgorICAgICAgICAqIHBhZ2UvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oOgorICAgICAg
ICAqIHRlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGlu
Zy9GYWtlWFJCb3VuZHNQb2ludC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhS
QnV0dG9uU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSQnV0dG9u
U3RhdGVJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJj
ZUluaXQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQu
aWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5o
OiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGw6
IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSVmlld0luaXQuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3Rp
bmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkludGVybmFsczo6eHJUZXN0KTog
QWRkZWQgV2ViWFJUZXN0IHRvIEludGVybmFscy4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFs
cy5oOgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmlkbDoKKyAgICAgICAgKiB0ZXN0aW5n
L1dlYkZha2VYUkRldmljZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhS
RGV2aWNlOjpzZXRWaWV3cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OmRp
c2Nvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzZXRWaWV3ZXJP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpjbGVhclZpZXdlck9y
aWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlVmlzaWJp
bGl0eUNoYW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNldEJvdW5k
c0dlb21ldHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2V0Rmxvb3JP
cmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpjbGVhckZsb29yT3Jp
Z2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2ltdWxhdGVSZXNldFBv
c2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291
cmNlQ29ubmVjdGlvbik6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaDogQWRk
ZWQuCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAg
ICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRIYW5kZWRuZXNzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0VGFyZ2V0UmF5TW9k
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFByb2Zp
bGVzKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0R3Jp
cE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmNs
ZWFyR3JpcE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xs
ZXI6OnNldFBvaW50ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6cmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6c3RhcnRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyOjplbmRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFN1cHBvcnRlZEJ1dHRvbnMpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRhdGVCdXR0b25TdGF0ZSk6Cisg
ICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJUZXN0OjpzaW11bGF0ZURldmljZUNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViWFJUZXN0OjpzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYlhSVGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMpOgorICAgICAgICAqIHRlc3RpbmcvV2Vi
WFJUZXN0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpjcmVhdGUpOgor
ICAgICAgICAqIHRlc3RpbmcvV2ViWFJUZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGlu
Zy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbDogRGl0dG8uCisKIDIw
MjAtMDQtMTUgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHVEs0XSBGaXggdXNlIG9mIGd0ayBpbml0IGZ1bmN0aW9ucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3Rz
LnR4dAppbmRleCA5MTIyMzAxNzhjMWQyYTM5MzViMjA5YTc5OWE3NzM1OWJlNzdkNDU1Li41MGU0
YTlkNWEwNTMyNTE4MmJlMDk1NWJhMzFmYWJhNDViNGViMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4
dApAQCAtMTU5LDYgKzE1OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5DTFVERV9ESVJFQ1RP
UklFUwogICAgICIke1dFQkNPUkVfRElSfS9zdmcvZ3JhcGhpY3MiCiAgICAgIiR7V0VCQ09SRV9E
SVJ9L3N2Zy9ncmFwaGljcy9maWx0ZXJzIgogICAgICIke1dFQkNPUkVfRElSfS9zdmcvcHJvcGVy
dGllcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vdGVzdGluZyIKICAgICAiJHtXRUJDT1JFX0RJUn0v
d2Vic29ja2V0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vd29ya2VycyIKICAgICAiJHtXRUJDT1JF
X0RJUn0vd29ya2Vycy9zZXJ2aWNlIgpAQCAtMTY1Niw2ICsxNjU3LDI1IEBAIGxpc3QoQVBQRU5E
IFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVzdGluZy9qcy9XZWJDb3JlVGVzdFN1
cHBvcnQuY3BwCiApCiAKKworaWYgKEVOQUJMRV9XRUJYUikKKyAgICBsaXN0KEFQUEVORCBXZWJD
b3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQm91bmRzUG9p
bnQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbAorICAgICAg
ICB0ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwKKyAgICAgICAgdGVzdGluZy9GYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSVmlld0luaXQu
aWRsCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbAorICAgICAgICB0ZXN0aW5n
L1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKKyAgICAgICAgdGVzdGluZy9XZWJYUlRlc3Qu
aWRsCisgICAgICAgIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRs
CisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCisgICAg
ICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAorICAgICAgICB0ZXN0aW5nL1dlYlhSVGVz
dC5jcHAKKyAgICApCitlbmRpZiAoKQorCiAjIE1vZHVsZXMgdGhhdCB0aGUgYmluZGluZ3MgZ2Vu
ZXJhdG9yIHNjcmlwdHMgbWF5IHVzZQogc2V0KFNDUklQVFNfUkVTT0xWRV9TVVBQTEVNRU5UQUwK
ICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJDb3Jl
L0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGU5MjU2OGYwNzIyOTE2YWVhOTI4NTg2YzY0OTc2
MzI4NzA1ZmU5NS4uNDQ2OWE1Yjk4YWU0ZDExZjNiOTJkNTFkMGVmZGViZWMzYWYwZDljMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMTE4LDYgKzExMTgsMTUgQEAgSlNfQklO
RElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9Nb2NrV2ViQXV0aGVudGljYXRp
b25Db25maWd1cmF0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL1NlcnZpY2VXb3Jr
ZXJJbnRlcm5hbHMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvVHlwZUNvbnZlcnNpb25z
LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUkJvdW5kc1BvaW50LmlkbCBcCisg
ICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGwgXAorICAgICQo
V2ViQ29yZSkvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbCBcCisgICAgJChXZWJDb3Jl
KS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL1dl
YkZha2VYUkRldmljZS5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9XZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvV2ViWFJUZXN0LmlkbCBc
CisgICAgJChXZWJDb3JlKS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9u
LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL0Fic3RyYWN0V29ya2VyLmlkbCBcCiAgICAg
JChXZWJDb3JlKS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3BlLmlkbCBcCiAgICAg
JChXZWJDb3JlKS93b3JrZXJzL1dvcmtlci5pZGwgXApAQCAtMTg3MSw0ICsxODgwLDMgQEAgJChX
ZWJDb3JlX0JVSUxUSU5TX1dSQVBQRVJTX1BBVFRFUk5TKSA6ICQoV2ViQ29yZV9CVUlMVElOU19T
T1VSQ0VTKSBXZWJDb3JlX0JVSUwKIGFsbCA6ICQobm90ZGlyICQoV2ViQ29yZV9CVUlMVElOU19T
T1VSQ0VTOiUuanM9JUJ1aWx0aW5zLmgpKSAkKFdlYkNvcmVfQlVJTFRJTlNfV1JBUFBFUlMpCiAK
ICMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2VieHIvTmF2aWdhdG9yV2ViWFIuaAppbmRleCBmZjM0ZTRlNTlmMzljODlkYjJhOTJhNDE2MGI4
ODAzZWUwN2Y0MmRiLi4yM2M2MGM1YzgyZTllMjA2NWE1YmI3ODMxOWM3ODQyNjBhZDNkOWM1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCkBAIC0z
OSwxMSArMzksMTEgQEAgY2xhc3MgV2ViWFJTeXN0ZW07CiBjbGFzcyBOYXZpZ2F0b3JXZWJYUiBm
aW5hbCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewogICAgIFdURl9NQUtFX0ZBU1Rf
QUxMT0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBXZWJYUlN5c3RlbSYgeHIoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBX
ZWJYUlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOwogCi1w
cml2YXRlOgotICAgIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3ImKTsKKyAg
ICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgTmF2aWdhdG9yV2ViWFImIGZyb20oTmF2aWdhdG9yJik7
CiAKK3ByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlhSU3lzdGVtPiBtX3hyOwogfTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCmluZGV4IGU5YWIxNWQ3YWVhNDQ1
ZDEzMzJmYzIxMmE0NTY4NDVkY2VkOWNlZTEuLjIyMDYzODIyZWU1MTM1OWU4ZWZhMjEyMjA5NzJi
MDlmMmFlMjQxNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVt
LmgKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAjaW5jbHVk
ZSA8d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVk
ZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCwxNCArNDEs
MTQgQEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFdlYlhSU2Vzc2lvbjsK
IHN0cnVjdCBYUlNlc3Npb25Jbml0OwogCi1jbGFzcyBXZWJYUlN5c3RlbSBmaW5hbCA6IHB1Ymxp
YyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgV2ViWFJTeXN0ZW0gZmluYWwgOiBw
dWJsaWMgUmVmQ291bnRlZDxXZWJYUlN5c3RlbT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxp
bmVEYXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2Vi
WFJTeXN0ZW0+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU3lzdGVtKTsKIHB1
YmxpYzoKICAgICB1c2luZyBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlID0gRE9NUHJvbWlzZURl
ZmVycmVkPElETEJvb2xlYW4+OwogICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViWFJTZXNzaW9uPj47CiAKICAgICBzdGF0
aWMgUmVmPFdlYlhSU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotICAg
IHZpcnR1YWwgfldlYlhSU3lzdGVtKCk7CisgICAgfldlYlhSU3lzdGVtKCk7CiAKICAgICB1c2lu
ZyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2Vi
WFJTeXN0ZW0+OjpkZXJlZjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvWFJIYW5kZWRuZXNzLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSSGFuZGVk
bmVzcy5oCmluZGV4IDkzMzMwMzRkMGNkNDlhYzhkZWU5MDJhMDgxNjQ0ODA0Mzc4Y2JjMmMuLmEx
MjcwNWFjODlmMDUxMGZmZTk3OWQwZjFjMTQzOGQ3MTc1MzgxMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvWFJIYW5kZWRuZXNzLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9YUkhhbmRlZG5lc3MuaApAQCAtMzIsNyArMzIsNyBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiBlbnVtIGNsYXNzIFhSSGFuZGVkbmVzcyB7CiAgICAgTm9uZSwKICAgICBM
ZWZ0LAotICAgIFJpZ2h0LAorICAgIFJpZ2h0CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9k
ZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9YUlRhcmdldFJheU1vZGUuaAppbmRl
eCAxZmNhNDRlNDUxYjk3YzU2MDI2ZTE0NWI1MjIzMzFmODE2NWJhZTdmLi40ZTJkMmZmYjhlYzMz
NTU2ZDFkMGE2N2I2ZjY2ZGQ4ZTlhODNjNWY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnhyL1hSVGFyZ2V0UmF5TW9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvWFJUYXJnZXRSYXlNb2RlLmgKQEAgLTMyLDcgKzMyLDcgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogZW51bSBjbGFzcyBYUlRhcmdldFJheU1vZGUgewogICAgIEdhemUsCiAgICAgVHJh
Y2tlZFBvaW50ZXIsCi0gICAgU2NyZWVuLAorICAgIFNjcmVlbgogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3NDJhNjVmZjQ3YmJhMzRlMTU5MmM4YWJlNGZl
ZGQ4ZTQzNDIxYzQxLi44YTFjY2I1Mjc5MzVjOWVmOWUzOWEzNDIzMTM4NjJmMGVkYjRkNmU0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Tb3VyY2VzLnR4dApAQCAtNDM0LDYgKzQzNCwxMCBAQCBNb2R1bGVzL3dlYnhyL1hSSW5wdXRT
b3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5j
ZVNwYWNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9kdWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5j
cHAgQG5vLXVuaWZ5CiAKK3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcCBAbm8tdW5pZnkKK3Rl
c3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcCBAbm8tdW5pZnkKK3Rlc3RpbmcvV2Vi
WFJUZXN0LmNwcCBAbm8tdW5pZnkKKwogI2VuZGlmCiAKIGFjY2Vzc2liaWxpdHkvQVhPYmplY3RD
YWNoZS5jcHAKQEAgLTM1NTYsNiArMzU2MCwxNiBAQCBKU1hTTFRQcm9jZXNzb3IuY3BwCiAKICNp
ZiBFTkFCTEVfV0VCWFIKIAorSlNGYWtlWFJCb3VuZHNQb2ludC5jcHAKK0pTRmFrZVhSQnV0dG9u
U3RhdGVJbml0LmNwcAorSlNGYWtlWFJJbnB1dFNvdXJjZUluaXQuY3BwCitKU0Zha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdC5jcHAKK0pTRmFrZVhSVmlld0luaXQuY3BwCitKU1dlYkZha2VYUkRldmlj
ZS5jcHAKK0pTV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcAorSlNXZWJYUlRlc3QuY3BwCitK
U1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmNwcAorCiBKU1dlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmNwcAogSlNYUkVudmlyb25tZW50QmxlbmRNb2RlLmNwcAogSlNYUkV5ZS5j
cHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agppbmRleCBhNWNlNThiNWFiOGM2OWI3ZjIyZDgyZGE2NGQyNDZhMzE3OTFmMWQyLi41OTg3NjQy
NTM3YjE5Y2Q4MGEzZTA3YTUzODVkMjE1ZWM5NTJlYzQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNTE0NCw4ICsxNTE0NCw0
NSBAQAogCQlFMTg1MzY4MjFGNEU0NzI3MDBGRTA5MUIgLyogV2ViQXJjaGl2ZVJlc291cmNlRnJv
bU5TQXR0cmlidXRlZFN0cmluZy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkFyY2hpdmVS
ZXNvdXJjZUZyb21OU0F0dHJpYnV0ZWRTdHJpbmcubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxOEMzNTQxMUY3MTk2Q0QwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJS
ZXNvdXJjZUhhbmRsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291cmNlV2ViUmVz
b3VyY2VIYW5kbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOEMzNTQyMUY3
MTk3MDEwMEZGNjMyRCAvKiBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJjZUhhbmRsZXIubW0g
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBcmNoaXZlUmVzb3VyY2VXZWJSZXNvdXJjZUhhbmRs
ZXIubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0RDMjQzRjcxQ0IwMDky
NDdENiAvKiBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZha2VYUklucHV0U291cmNlSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxOEQ4M0REMjQzRjcxQ0MwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmFrZVhSSW5wdXRDb250
cm9sbGVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzREUyNDNGNzFD
RDAwOTI0N0Q2IC8qIEZha2VYUkJ1dHRvblN0YXRlSW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBGYWtlWFJCdXR0b25TdGF0ZUluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTE4RDgzREYyNDNGNzFDRDAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUlZpZXdJbml0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0UwMjQzRjcxQ0UwMDkyNDdENiAvKiBXZWJY
UlRlc3QuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViWFJUZXN0
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTEyNDNGNzFDRTAwOTI0
N0Q2IC8qIFdlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTE4RDgzRTIyNDNGNzFDRjAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0LmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBGYWtlWFJWaWV3SW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOEQ4M0UzMjQzRjcxQ0YwMDkyNDdENiAvKiBGYWtlWFJCdXR0b25TdGF0
ZUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZha2VYUkJ1dHRvblN0YXRlSW5pdC5p
ZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U0MjQzRjcxRDAwMDkyNDdE
NiAvKiBGYWtlWFJCb3VuZHNQb2ludC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBGYWtlWFJCb3VuZHNQb2ludC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThE
ODNFNTI0M0Y3MUQxMDA5MjQ3RDYgLyogRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFNjI0M0Y3MUQxMDA5MjQ3RDYgLyog
RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MThEODNFNzI0M0Y3MUQyMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJGYWtlWFJEZXZpY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMThEODNFODI0M0Y3MUQyMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSVGVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMThEODNFOTI0M0Y3MUQzMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZha2VYUkRldmljZS5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0VBMjQzRjcxRDQwMDkyNDdE
NiAvKiBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gRmFrZVhSSW5wdXRTb3VyY2VJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOEQ4M0VCMjQzRjcxRDUwMDkyNDdENiAvKiBXZWJYUlRlc3QuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYlhSVGVzdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxOEQ4M0VDMjQzRjcxRDUwMDkyNDdENiAvKiBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5j
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBYUlNpbXVsYXRlVXNlckFj
dGl2YXRpb25GdW5jdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNF
RDI0M0Y3MUQ2MDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFdlYkZha2VYUkRldmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMThEODNFRTI0M0Y3MUQ3MDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkZha2VYUklucHV0Q29u
dHJvbGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFRjI0M0Y3MUQ3
MDA5MjQ3RDYgLyogRmFrZVhSQm91bmRzUG9pbnQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZha2VYUkJvdW5kc1BvaW50LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4
RDgzRjAyNDNGNzFEODAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9u
LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5j
dGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM0MThBQUYxMkMw
MDc3M0U1OSAvKiBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBTZXJpYWxpemVkQ3J5cHRvS2V5V3JhcC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlFMThERjMzNjE4QUFGMTREMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0
b0tleVdyYXBNYWMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBT
ZXJpYWxpemVkQ3J5cHRvS2V5V3JhcE1hYy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTE5NDkwODYyNDM0RjE1ODAwNDE2QTk5IC8qIFdlYlhSVmlldy5pZGwgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gV2ViWFJWaWV3LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTE5NDkwODcyNDM0RjE1OTAwNDE2QTk5IC8qIFdlYlhSVmlld3BvcnQuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYlhSVmlld3BvcnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA4ODI0MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJGcmFtZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViWFJGcmFtZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MDg5MjQzNEYxNUEwMDQxNkE5OSAvKiBXZWJYUklucHV0U291cmNlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUklucHV0U291cmNlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOEYyNDM0RjE1RDAwNDE2QTk5IC8qIFdlYlhSV2ViR0xMYXll
ci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJXZWJHTExheWVyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTMyNDM0RjE2MDAwNDE2QTk5IC8qIFdlYlhS
SW5wdXRTb3VyY2VBcnJheS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJJbnB1dFNv
dXJjZUFycmF5LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTQyNDM0
RjE2MDAwNDE2QTk5IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDk1MjQzNEYxNjEwMDQxNkE5OSAvKiBXZWJYUldlYkdM
TGF5ZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJXZWJHTExheWVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDk4MjQzNEYxNjIwMDQxNkE5
OSAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJY
UlJpZ2lkVHJhbnNmb3JtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkw
OUEyNDM0RjE2NDAwNDE2QTk5IC8qIFdlYlhSU3lzdGVtLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBXZWJYUlN5c3RlbS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5
MDlDMjQzNEYxNjUwMDQxNkE5OSAvKiBXZWJYUlZpZXdlclBvc2UuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlhSVmlld2VyUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MDlFMjQzNEYxNjYwMDQxNkE5OSAvKiBXZWJYUlNlc3Npb24uaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYlhSU2Vzc2lvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxOTQ5MEExMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJYUlBvc2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYlhSUG9zZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MEEyMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJYUlNwYWNlLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJYUlNwYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJRTE5NDkwQTQyNDM0RjE2OTAwNDE2QTk5IC8qIFdlYlhSUmVuZGVyU3RhdGUuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSUmVuZGVyU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMTk0OTBBNjI0MzRGMTZCMDA0MTZBOTkgLyogV2ViWFJSZWZlcmVuY2VT
cGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJSZWZlcmVuY2VTcGFjZS5pZGw7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOTcyNzE1MTgyMDU0OUUwMDU5MkQ1MSAv
KiBDcnlwdG9LZXlUeXBlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0
b0tleVR5cGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRTYxODI0REM3
OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNFNzE4MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxn
b3JpdGhtU0hBMjI0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENyeXB0b0Fs
Z29yaXRobVNIQTIyNC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTgzMTksNiAr
MTgzNTYsMTYgQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUExNzYzRjNCMUUyMDUxQUIwMDFENThE
RSAvKiBjb2NvYSAqLywKIAkJCQk0MTgxNUMxQjEzODMxOTYzMDA1N0FBQTQgLyoganMgKi8sCisJ
CQkJRTE4RDgzRTQyNDNGNzFEMDAwOTI0N0Q2IC8qIEZha2VYUkJvdW5kc1BvaW50LmggKi8sCisJ
CQkJRTE4RDgzRUYyNDNGNzFENzAwOTI0N0Q2IC8qIEZha2VYUkJvdW5kc1BvaW50LmlkbCAqLywK
KwkJCQlFMThEODNERTI0M0Y3MUNEMDA5MjQ3RDYgLyogRmFrZVhSQnV0dG9uU3RhdGVJbml0Lmgg
Ki8sCisJCQkJRTE4RDgzRTMyNDNGNzFDRjAwOTI0N0Q2IC8qIEZha2VYUkJ1dHRvblN0YXRlSW5p
dC5pZGwgKi8sCisJCQkJRTE4RDgzRUEyNDNGNzFENDAwOTI0N0Q2IC8qIEZha2VYUklucHV0U291
cmNlSW5pdC5oICovLAorCQkJCUUxOEQ4M0RDMjQzRjcxQ0IwMDkyNDdENiAvKiBGYWtlWFJJbnB1
dFNvdXJjZUluaXQuaWRsICovLAorCQkJCUUxOEQ4M0U1MjQzRjcxRDEwMDkyNDdENiAvKiBGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQuaCAqLywKKwkJCQlFMThEODNFNjI0M0Y3MUQxMDA5MjQ3RDYg
LyogRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbCAqLywKKwkJCQlFMThEODNERjI0M0Y3MUNE
MDA5MjQ3RDYgLyogRmFrZVhSVmlld0luaXQuaCAqLywKKwkJCQlFMThEODNFMjI0M0Y3MUNGMDA5
MjQ3RDYgLyogRmFrZVhSVmlld0luaXQuaWRsICovLAogCQkJCTUxNzE0RUE5MUNGNjU4OTkwMDQ3
MjNDNCAvKiBHQ09ic2VydmF0aW9uLmNwcCAqLywKIAkJCQk1MTcxNEVBQTFDRjY1ODk5MDA0NzIz
QzQgLyogR0NPYnNlcnZhdGlvbi5oICovLAogCQkJCTUxNzE0RUFCMUNGNjU4OTkwMDQ3MjNDNCAv
KiBHQ09ic2VydmF0aW9uLmlkbCAqLywKQEAgLTE4MzgzLDYgKzE4NDMwLDE3IEBACiAJCQkJRUIw
ODFDRDgxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5oICovLAogCQkJCUVCMDgx
Q0Q5MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaWRsICovLAogCQkJCUUxQkE2
NzE5MTc0MkJFRjQwMEMyMDI1MSAvKiBXZWJDb3JlVGVzdFNoaW1MaWJyYXJ5LmNwcCAqLywKKwkJ
CQlFMThEODNFOTI0M0Y3MUQzMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmNwcCAqLywKKwkJ
CQlFMThEODNFRDI0M0Y3MUQ2MDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmggKi8sCisJCQkJ
RTE4RDgzRTcyNDNGNzFEMjAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmljZS5pZGwgKi8sCisJCQkJ
RTE4RDgzREQyNDNGNzFDQzAwOTI0N0Q2IC8qIFdlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHAg
Ki8sCisJCQkJRTE4RDgzRUUyNDNGNzFENzAwOTI0N0Q2IC8qIFdlYkZha2VYUklucHV0Q29udHJv
bGxlci5oICovLAorCQkJCUUxOEQ4M0UxMjQzRjcxQ0UwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuaWRsICovLAorCQkJCUUxOEQ4M0UwMjQzRjcxQ0UwMDkyNDdENiAvKiBXZWJY
UlRlc3QuY3BwICovLAorCQkJCUUxOEQ4M0U4MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJYUlRlc3Qu
aCAqLywKKwkJCQlFMThEODNFQjI0M0Y3MUQ1MDA5MjQ3RDYgLyogV2ViWFJUZXN0LmlkbCAqLywK
KwkJCQlFMThEODNFQzI0M0Y3MUQ1MDA5MjQ3RDYgLyogWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9u
RnVuY3Rpb24uaCAqLywKKwkJCQlFMThEODNGMDI0M0Y3MUQ4MDA5MjQ3RDYgLyogWFJTaW11bGF0
ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsICovLAogCQkJKTsKIAkJCXBhdGggPSB0ZXN0aW5n
OwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTI3MjE1LDMzICsyNzI3Myw0OSBAQAog
CQkJCUUxRUU4QjBFMjQxMkIxNzAwMEU3OTRENiAvKiBOYXZpZ2F0b3JXZWJYUi5pZGwgKi8sCiAJ
CQkJRTFFRThBRDMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNl
LmNwcCAqLywKIAkJCQlFMUVFOEFEMTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVkUmVm
ZXJlbmNlU3BhY2UuaCAqLywKKwkJCQlFMTk0OTA5NDI0MzRGMTYwMDA0MTZBOTkgLyogV2ViWFJC
b3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovLAogCQkJCUUxRUU4QUYwMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUkZyYW1lLmNwcCAqLywKIAkJCQlFMUVFOEFFMzI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJGcmFtZS5oICovLAorCQkJCUUxOTQ5MDg4MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUkZy
YW1lLmlkbCAqLywKIAkJCQlFMUVFOEIwRDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJbnB1dFNv
dXJjZS5jcHAgKi8sCiAJCQkJRTFFRThCMTcyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRT
b3VyY2UuaCAqLywKKwkJCQlFMTk0OTA4OTI0MzRGMTVBMDA0MTZBOTkgLyogV2ViWFJJbnB1dFNv
dXJjZS5pZGwgKi8sCiAJCQkJRTFFRThBRTYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRT
b3VyY2VBcnJheS5jcHAgKi8sCiAJCQkJRTFFRThBREQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
SW5wdXRTb3VyY2VBcnJheS5oICovLAorCQkJCUUxOTQ5MDkzMjQzNEYxNjAwMDQxNkE5OSAvKiBX
ZWJYUklucHV0U291cmNlQXJyYXkuaWRsICovLAogCQkJCUUxRUU4QUU1MjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlBvc2UuY3BwICovLAogCQkJCUUxRUU4QUUxMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlBvc2UuaCAqLywKKwkJCQlFMTk0OTBBMTI0MzRGMTY4MDA0MTZBOTkgLyogV2ViWFJQb3Nl
LmlkbCAqLywKIAkJCQlFMUVFOEFEMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZWZlcmVuY2VT
cGFjZS5jcHAgKi8sCiAJCQkJRTFFRThCMTQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJl
bmNlU3BhY2UuaCAqLywKKwkJCQlFMTk0OTBBNjI0MzRGMTZCMDA0MTZBOTkgLyogV2ViWFJSZWZl
cmVuY2VTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThBQ0UyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
UmVuZGVyU3RhdGUuY3BwICovLAogCQkJCUUxRUU4QUQ1MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlJlbmRlclN0YXRlLmggKi8sCisJCQkJRTE5NDkwQTQyNDM0RjE2OTAwNDE2QTk5IC8qIFdlYlhS
UmVuZGVyU3RhdGUuaWRsICovLAogCQkJCUUxRUU4QUNEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlJpZ2lkVHJhbnNmb3JtLmNwcCAqLywKIAkJCQlFMUVFOEIwNjI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJSaWdpZFRyYW5zZm9ybS5oICovLAorCQkJCUUxOTQ5MDk4MjQzNEYxNjIwMDQxNkE5OSAv
KiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmlkbCAqLywKIAkJCQlFMUVFOEIwRjI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJTZXNzaW9uLmNwcCAqLywKIAkJCQlFMUVFOEIxMTI0MTJCMTcwMDBFNzk0RDYg
LyogV2ViWFJTZXNzaW9uLmggKi8sCisJCQkJRTE5NDkwOUUyNDM0RjE2NjAwNDE2QTk5IC8qIFdl
YlhSU2Vzc2lvbi5pZGwgKi8sCiAJCQkJRTFFRThBRjgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
U3BhY2UuY3BwICovLAogCQkJCUUxRUU4QUNGMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNl
LmggKi8sCisJCQkJRTE5NDkwQTIyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSU3BhY2UuaWRsICov
LAogCQkJCUUxRUU4QUU4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5jcHAgKi8sCiAJ
CQkJRTFFRThBRTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmggKi8sCisJCQkJRTE5
NDkwOUEyNDM0RjE2NDAwNDE2QTk5IC8qIFdlYlhSU3lzdGVtLmlkbCAqLywKIAkJCQlFMUVFOEIx
MjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3LmNwcCAqLywKIAkJCQlFMUVFOEFFMDI0MTJC
MTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3LmggKi8sCisJCQkJRTE5NDkwODYyNDM0RjE1ODAwNDE2
QTk5IC8qIFdlYlhSVmlldy5pZGwgKi8sCiAJCQkJRTFFRThCMEIyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSVmlld2VyUG9zZS5jcHAgKi8sCiAJCQkJRTFFRThBQzcyNDEyQjE2RjAwRTc5NEQ2IC8q
IFdlYlhSVmlld2VyUG9zZS5oICovLAorCQkJCUUxOTQ5MDlDMjQzNEYxNjUwMDQxNkE5OSAvKiBX
ZWJYUlZpZXdlclBvc2UuaWRsICovLAogCQkJCUUxRUU4QUVCMjQxMkIxNzAwMEU3OTRENiAvKiBX
ZWJYUlZpZXdwb3J0LmNwcCAqLywKIAkJCQlFMUVFOEFGNDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJWaWV3cG9ydC5oICovLAorCQkJCUUxOTQ5MDg3MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUlZp
ZXdwb3J0LmlkbCAqLywKIAkJCQlFMUVFOEFEODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJXZWJH
TExheWVyLmNwcCAqLywKKwkJCQlFMTk0OTA5NTI0MzRGMTYxMDA0MTZBOTkgLyogV2ViWFJXZWJH
TExheWVyLmggKi8sCisJCQkJRTE5NDkwOEYyNDM0RjE1RDAwNDE2QTk5IC8qIFdlYlhSV2ViR0xM
YXllci5pZGwgKi8sCiAJCQkJRTFFRThBRjcyNDEyQjE3MDAwRTc5NEQ2IC8qIFhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEIwNTI0MTJCMTcwMDBFNzk0RDYgLyogWFJF
bnZpcm9ubWVudEJsZW5kTW9kZS5oICovLAogCQkJCUUxRUU4QURBMjQxMkIxNzAwMEU3OTRENiAv
KiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmlkbCAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBjNjIwNWM1ZjZlNmIxNmQ4Mjc2
MWE0NTVmNWY5ZjA1MjgwMDRlODg4Li5mMDZlNDIyY2M2ZGE2Zjk1Y2FkOTk0ZTZjNTg5MmY0ZGZj
YzAwNmY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0
aW5OYW1lcy5oCkBAIC03NSw2ICs3NSw4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNy
byhFbnRlclBpY3R1cmVJblBpY3R1cmVFdmVudCkgXAogICAgIG1hY3JvKEV4dGVuZGFibGVFdmVu
dCkgXAogICAgIG1hY3JvKEV4dGVuZGFibGVNZXNzYWdlRXZlbnQpIFwKKyAgICBtYWNybyhGYWtl
WFJEZXZpY2UpIFwKKyAgICBtYWNybyhGYWtlWFJJbnB1dENvbnRyb2xsZXIpIFwKICAgICBtYWNy
byhGZXRjaEV2ZW50KSBcCiAgICAgbWFjcm8oRmlsZVN5c3RlbSkgXAogICAgIG1hY3JvKEZpbGVT
eXN0ZW1EaXJlY3RvcnlFbnRyeSkgXApAQCAtMjUwLDYgKzI1Miw3IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKICAgICBtYWNybyhYUlNlc3Npb25FdmVudCkgXAogICAgIG1hY3JvKFhSU3BhY2UpIFwK
ICAgICBtYWNybyhYUlN5c3RlbSkgXAorICAgIG1hY3JvKFhSVGVzdCkgXAogICAgIG1hY3JvKFhS
VmlldykgXAogICAgIG1hY3JvKFhSVmlld2VyUG9zZSkgXAogICAgIG1hY3JvKFhSVmlld3BvcnQp
IFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4yZDcwNzI4NjgyMzFlYjI5Mzk0MTcxMmFlNDMwZmNhOGZiNDUwNjQzCi0tLSAvZGV2L251bGwK
KysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5oCkBAIC0wLDAg
KzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIp
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZha2VYUkJvdW5kc1BvaW50IHsKKyAg
ICBkb3VibGUgeDsKKyAgICBkb3VibGUgejsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtl
WFJCb3VuZHNQb2ludC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDIxMzVhMGFkNzhmNDZiMjA3MTJkZGI4NjIx
YWZhYzllODU0MTc2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
RmFrZVhSQm91bmRzUG9pbnQuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworWwor
ICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRp
Y3Rpb25hcnkgRmFrZVhSQm91bmRzUG9pbnQgeworICAgIGRvdWJsZSB4OyBkb3VibGUgejsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5p
dC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0ZUluaXQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41ZWQ5OGVkOGRjNDA1NmZlM2M4MDZkZjY4MWNkMjI1ZDBlOTJiMDY4Ci0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0ZUluaXQu
aApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtlWFJCdXR0b25T
dGF0ZUluaXQgeworICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgIEdyaXAsCisgICAgICAg
IFRvdWNocGFkLAorICAgICAgICBUaHVtYnN0aWNrLAorICAgICAgICBPcHRpb25hbEJ1dHRvbiwK
KyAgICAgICAgT3B0aW9uYWxUaHVtYnN0aWNrCisgICAgfTsKKworICAgIFR5cGUgYnV0dG9uVHlw
ZTsKKyAgICBib29sIHByZXNzZWQ7CisgICAgYm9vbCB0b3VjaGVkOworICAgIGZsb2F0IHByZXNz
ZWRWYWx1ZTsKKyAgICBmbG9hdCB4VmFsdWUgeyAwLjAgfTsKKyAgICBmbG9hdCB5VmFsdWUgeyAw
LjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3Rh
dGVJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0
LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4zODBkMzU5NWFjOTBmN2RiYWFlNGMxMjI4NTVhZDJmNDRiYmMzOTE3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25T
dGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gQmVjYXVzZSB0
aGUgcHJpbWFyeSBidXR0b24gaXMgYWx3YXlzIGd1YXJhbnRlZWQgdG8gYmUgcHJlc2VudCwgYW5k
IG90aGVyIGJ1dHRvbnMKKy8vIHNob3VsZCBmdWxmaWxsIHRoZSByb2xlIG9mIHZhbGlkYXRpbmcg
YW55IHN0YXRlIGZyb20gRmFrZVhSQnV0dG9uU3RhdGVJbml0CisvLyB0aGUgcHJpbWFyeSBidXR0
b24gaXMgbm90IHByZXNlbnQgaW4gdGhpcyBlbnVtLgorWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9
V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGVudW0gRmFrZVhSQnV0dG9uVHlwZSB7
CisgICAgImdyaXAiLAorICAgICJ0b3VjaHBhZCIsCisgICAgInRodW1ic3RpY2siLAorICAgIC8v
IFJlcHJlc2VudHMgYSBidXR0b24gd2hvc2UgcG9zaXRpb24gaXMgbm90IHNwZWNpZmllZCBieSB0
aGUgeHItc3RhbmRhcmQgbWFwcGluZy4KKyAgICAvLyBTaG91bGQgYXBwZWFyIGF0IG9uZSBwYXN0
IHRoZSBsYXN0IHJlc2VydmVkIGJ1dHRvbiBpbmRleC4KKyAgICAib3B0aW9uYWwtYnV0dG9uIiwK
KyAgICAvLyBSZXByZXNlbnRzIGEgdGh1bWJzdGljayB3aG9zZSBwb3NpdGlvbiBpcyBub3Qgc3Bl
Y2lmaWVkIGJ5IHRoZSB4ci1zdGFuZGFyZCBtYXBwaW5nLgorICAgIC8vIFNob3VsZCBhcHBlYXIg
YXQgdHdvIHBhc3QgdGhlIGxhc3QgcmVzZXJ2ZWQgYnV0dG9uIGluZGV4LgorICAgICJvcHRpb25h
bC10aHVtYnN0aWNrIgorfTsKKworLy8gVXNlZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9mIG9wdGlv
bmFsbHkgc3VwcG9ydGVkIGJ1dHRvbnMuCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJCdXR0b25TdGF0ZUlu
aXQgeworICAgIHJlcXVpcmVkIEZha2VYUkJ1dHRvblR5cGUgYnV0dG9uVHlwZTsKKyAgICByZXF1
aXJlZCBib29sZWFuIHByZXNzZWQ7CisgICAgcmVxdWlyZWQgYm9vbGVhbiB0b3VjaGVkOworICAg
IHJlcXVpcmVkIGZsb2F0IHByZXNzZWRWYWx1ZTsKKyAgICAvLyB4IGFuZCB5IHZhbHVlIGFyZSBp
Z25vcmVkIGlmIHRoZSBGYWtlWFJCdXR0b25UeXBlIGlzIG5vdCB0b3VjaHBhZCwgdGh1bWJzdGlj
aywgb3Igb3B0aW9uYWwtdGh1bWJzdGljaworICAgIGZsb2F0IHhWYWx1ZSA9IDAuMDsKKyAgICBm
bG9hdCB5VmFsdWUgPSAwLjA7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhS
SW5wdXRTb3VyY2VJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM0MmE0YjMxMDAxODJiMzBlMzQzMWVmMGE0
OGQ5ZTE2Mjg5ODQwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
RmFrZVhSSW5wdXRTb3VyY2VJbml0LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkZha2VYUkJ1dHRv
blN0YXRlSW5pdC5oIgorI2luY2x1ZGUgIkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oIgorI2lu
Y2x1ZGUgIlhSRXllLmgiCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJU
YXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3N0cnVjdCBGYWtlWFJJbnB1dFNvdXJjZUluaXQgeworICAgIFhSSGFuZGVkbmVz
cyBoYW5kZWRuZXNzOworICAgIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlOworICAgIEZh
a2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luOworICAgIFZlY3RvcjxTdHJpbmc+
IHByb2ZpbGVzOworICAgIGJvb2wgc2VsZWN0aW9uU3RhcnRlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBzZWxlY3Rpb25DbGlja2VkIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8RmFrZVhSQnV0dG9uU3Rh
dGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zOworICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBn
cmlwT3JpZ2luOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5B
QkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1
dFNvdXJjZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJj
ZUluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZjhlOTE2MGVhMTQ4MGE5YjQwNmMxOGMxNjZkNzU2MTE5
OWUxMDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklu
cHV0U291cmNlSW5pdC5pZGwKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlv
bmFyeSBGYWtlWFJJbnB1dFNvdXJjZUluaXQgeworICAgIHJlcXVpcmVkIFhSSGFuZGVkbmVzcyBo
YW5kZWRuZXNzOworICAgIHJlcXVpcmVkIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlOwor
ICAgIHJlcXVpcmVkIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luOworICAg
IHJlcXVpcmVkIHNlcXVlbmNlPERPTVN0cmluZz4gcHJvZmlsZXM7CisgICAgLy8gd2FzIHRoZSBw
cmltYXJ5IGFjdGlvbiBwcmVzc2VkIHdoZW4gdGhpcyB3YXMgY29ubmVjdGVkPworICAgIGJvb2xl
YW4gc2VsZWN0aW9uU3RhcnRlZCA9IGZhbHNlOworICAgIC8vIHNob3VsZCB0aGlzIGlucHV0IHNv
dXJjZSBzZW5kIGEgc2VsZWN0IGltbWVkaWF0ZWx5IHVwb24gY29ubmVjdGlvbj8KKyAgICBib29s
ZWFuIHNlbGVjdGlvbkNsaWNrZWQgPSBmYWxzZTsKKyAgICAvLyBJbml0aWFsIGJ1dHRvbiBzdGF0
ZSBmb3IgYW55IGJ1dHRvbnMgYmV5b25kIHRoZSBwcmltYXJ5IHRoYXQgYXJlIHN1cHBvcnRlZC4K
KyAgICAvLyBJZiBlbXB0eSwgb25seSB0aGUgcHJpbWFyeSBidXR0b24gaXMgc3VwcG9ydGVkLgor
ICAgIC8vIE5vdGUgdGhhdCBpZiBhbnkgRmFrZVhSQnV0dG9uVHlwZSBpcyByZXBlYXRlZCB0aGUg
YmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorICAgIHNlcXVlbmNlPEZha2VYUkJ1dHRvblN0YXRlSW5p
dD4gc3VwcG9ydGVkQnV0dG9uczsKKyAgICAvLyBJZiBub3Qgc2V0IHRoZSBjb250cm9sbGVyIGlz
IGFzc3VtZWQgdG8gbm90IGJlIHRyYWNrZWQuCisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0
IGdyaXBPcmlnaW47Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmE3MTgzMjkzODJiYjAxZTQ0ZWZkYjM1M2M1NWQ5NWM1N2ZiYjAyYWMKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oCkBA
IC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
Kworc3RydWN0IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB7CisgICAgVmVjdG9yPGZsb2F0PiBw
b3NpdGlvbjsKKyAgICBWZWN0b3I8ZmxvYXQ+IG9yaWVudGF0aW9uOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmFjMmM3NTExZmRhNTMwMGYwZjhhNmM1YWI1ZWM4MjY5OTY5YzI1MzkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwK
QEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIu
Z2l0aHViLmlvL3dlYnhyLyN4cnJpZ2lkdHJhbnNmb3JtCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQgeworICAgIC8vIG11c3QgaGF2ZSB0aHJlZSBlbGVtZW50cworICAgIHJl
cXVpcmVkIHNlcXVlbmNlPGZsb2F0PiBwb3NpdGlvbjsKKyAgICAvLyBtdXN0IGhhdmUgZm91ciBl
bGVtZW50cworICAgIHJlcXVpcmVkIHNlcXVlbmNlPGZsb2F0PiBvcmllbnRhdGlvbjsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY1NzAxOGU4
OGFmM2M2MWIwZjA3NzkwN2M4YzEwYTcwZTY1N2JkZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaApAQCAtMCwwICsxLDU3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAi
RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgiCisjaW5jbHVkZSAiWFJFeWUuaCIKKyNpbmNsdWRl
IDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZha2VYUlZp
ZXdJbml0IHsKKyAgICBzdHJ1Y3QgRGV2aWNlUmVzb2x1dGlvbiB7CisgICAgICAgIGludCB3aWR0
aDsKKyAgICAgICAgaW50IGhlaWdodDsKKyAgICB9OworICAgIHN0cnVjdCBGaWVsZE9mVmlld0lu
aXQgeworICAgICAgICBmbG9hdCB1cERlZ3JlZXM7CisgICAgICAgIGZsb2F0IGRvd25EZWdyZWVz
OworICAgICAgICBmbG9hdCBsZWZ0RGVncmVlczsKKyAgICAgICAgZmxvYXQgcmlnaHREZWdyZWVz
OworICAgIH07CisKKyAgICBYUkV5ZSBleWU7CisgICAgVmVjdG9yPGZsb2F0PiBwcm9qZWN0aW9u
TWF0cml4OworICAgIERldmljZVJlc29sdXRpb24gcmVzb2x1dGlvbjsKKyAgICBGYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQgdmlld09mZnNldDsKKyAgICBGaWVsZE9mVmlld0luaXQgZmllbGRPZlZp
ZXc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
WFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0Lmlk
bCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaWRsCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjM4NGE2NTI5MmIwZDJkZDkyNzBjYjZkNTdlZGI1OTI3YzQwNDFjM2IKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbApAQCAtMCwwICsx
LDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKy8vIFRoaXMgcmVwcmVzZW50cyB0aGUgbmF0aXZlIHJlc29s
dXRpb24gb2YgdGhlIGRldmljZSwgYnV0IG1heSBub3QgcmVmbGVjdCB0aGUgdmlld3BvcnQgZXhw
b3NlZCB0byB0aGUgcGFnZS4KKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2Vi
eHIvI3hydmlld3BvcnQKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRp
dGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkRldmljZVJlc29sdXRpb24geworICAg
IHJlcXVpcmVkIGxvbmcgd2lkdGg7CisgICAgcmVxdWlyZWQgbG9uZyBoZWlnaHQ7Cit9OworCisv
LyBBIHNldCBvZiA0IGFuZ2xlcyB3aGljaCBkZXNjcmliZSB0aGUgdmlldyBmcm9tIGEgY2VudGVy
IHBvaW50LCB1bml0cyBhcmUgZGVncmVlcy4KK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhS
LAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkZpZWxkT2ZWaWV3
SW5pdCB7CisgICAgcmVxdWlyZWQgZmxvYXQgdXBEZWdyZWVzOworICAgIHJlcXVpcmVkIGZsb2F0
IGRvd25EZWdyZWVzOworICAgIHJlcXVpcmVkIGZsb2F0IGxlZnREZWdyZWVzOworICAgIHJlcXVp
cmVkIGZsb2F0IHJpZ2h0RGVncmVlczsKK307CisKKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5n
aXRodWIuaW8vd2VieHIvI3hydmlldworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisg
ICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSVmlld0luaXQgeworICAg
IHJlcXVpcmVkIFhSRXllIGV5ZTsKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHVi
LmlvL3dlYnhyLyN2aWV3LXByb2plY3Rpb24tbWF0cml4CisgICAgcmVxdWlyZWQgc2VxdWVuY2U8
ZmxvYXQ+IHByb2plY3Rpb25NYXRyaXg7CisgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdp
dGh1Yi5pby93ZWJ4ci8jZG9tLXhyd2ViZ2xsYXllci1nZXR2aWV3cG9ydAorICAgIHJlcXVpcmVk
IEZha2VYUkRldmljZVJlc29sdXRpb24gcmVzb2x1dGlvbjsKKyAgICAvLyBodHRwczovL2ltbWVy
c2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN2aWV3LW9mZnNldAorICAgIC8vIFRoaXMgaXMgdGhl
IG9yaWdpbiBvZiB0aGUgdmlldyBpbiB0aGUgdmlld2VyIHNwYWNlLiBJbiBvdGhlciB3b3Jkcywg
dGhpcyBpcworICAgIC8vIGEgdHJhbnNmb3JtIGZyb20gdGhlIHZpZXcgc3BhY2UgdG8gdGhlIHZp
ZXdlciBzcGFjZS4KKyAgICByZXF1aXJlZCBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgdmlld09m
ZnNldDsKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGlvbmFsIG1lYW5zIG9mIHNwZWNpZnlpbmcgYSBk
ZWNvbXBvc2VkIGZvcm0gb2YgdGhlIHByb2plY3Rpb24KKyAgICAvLyBtYXRyaXguICBJZiBzcGVj
aWZpZWQsIHRoZSBwcm9qZWN0aW9uTWF0cml4IHNob3VsZCBiZSBpZ25vcmVkLgorICAgIC8vIEFu
eSB0ZXN0IHRoYXQgd2lzaGVzIHRvIHRlc3QgY2xpcCBwbGFuZXMgb3Igc2ltaWxhciBmZWF0dXJl
cyB0aGF0IHdvdWxkIHJlcXVpcmUKKyAgICAvLyBkZWNvbXBvc2luZy9yZWNvbXBvc2luZyB0aGUg
cHJvamVjdGlvbk1hdHJpeCBzaG91bGQgdXNlIHRoaXMgaW5zdGVhZCBvZgorICAgIC8vIHRoZSBw
cm9qZWN0aW9uIG1hdHJpeC4KKyAgICBGYWtlWFJGaWVsZE9mVmlld0luaXQgZmllbGRPZlZpZXc7
Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IGU3ODFmMzc0ZjI5NTA5
ZTU1NTkzOTljODE4ZjUxZDM3Y2RjOTk5YWIuLjU5YmM4MGQ0M2Q3MGU5OWU3MjMwYWIzODAwZDY3
N2EyZGYzMjVmM2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAgLTMwOCw2
ICszMDgsMTIgQEAKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNlbmRpZgogCisj
aWYgRU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIk5hdmlnYXRvcldlYlhSLmgiCisjaW5jbHVkZSAi
V2ViWFJTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJYUlRlc3QuaCIKKyNlbmRpZgorCiAjaWYgUExB
VEZPUk0oTUFDKSAmJiBVU0UoTElCV0VCUlRDKQogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsvV2ViS2l0
L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg+CiAjZW5kaWYKQEAgLTU1NTksNCArNTU2NSwzMCBA
QCBib29sIEludGVybmFsczo6ZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgaWRlbnRpZmll
cikKICAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5yZW1vdmUoaWRlbnRpZmllcik7CiB9CiAK
KyNpZiBFTkFCTEUoV0VCWFIpCisKK0V4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRlc3Q+PiBJbnRl
cm5hbHM6OnhyVGVzdCgpCit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFy
ZWRGZWF0dXJlcygpLndlYlhSRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsg
SW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICBpZiAoIW1feHJUZXN0KSB7CisgICAgICAgIGlm
ICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgpLT5kb21XaW5kb3coKSkK
KyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKwor
ICAgICAgICBhdXRvKiBuYXZpZ2F0b3IgPSBjb250ZXh0RG9jdW1lbnQoKS0+ZG9tV2luZG93KCkt
Pm9wdGlvbmFsTmF2aWdhdG9yKCk7CisgICAgICAgIGlmICghbmF2aWdhdG9yKQorICAgICAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgICAgIGF1
dG8mIG5hdmlnYXRvclhSID0gTmF2aWdhdG9yV2ViWFI6OmZyb20oKm5hdmlnYXRvcik7CisgICAg
ICAgIGF1dG8mIHhyU3lzdGVtID0gbmF2aWdhdG9yWFIueHIoKnNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQoKSwgKm5hdmlnYXRvcik7CisKKyAgICAgICAgbV94clRlc3QgPSBXZWJYUlRlc3Q6OmNyZWF0
ZShtYWtlV2Vha1B0cigmeHJTeXN0ZW0pKTsKKyAgICB9CisgICAgcmV0dXJuIG1feHJUZXN0Lmdl
dCgpOworfQorCisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9JbnRlcm5hbHMuaAppbmRleCBlZGVhYmFjYWU3YzFiNTM5ZmMwMzUyZjM3OTVkOGMxY2M3
YWY2ZTEwLi4zZjYxNzIzODQzNzBiZTU1ZTk1MmZiOTc0ZTAyMDEyMjQ4Yzg3YjA4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTExNiw2ICsxMTYsMTAgQEAgY2xhc3MgVGV4dFRy
YWNrQ3VlR2VuZXJpYzsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiAjZW5kaWYKIAorI2lmIEVOQUJM
RShXRUJYUikKK2NsYXNzIFdlYlhSVGVzdDsKKyNlbmRpZgorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
RExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIHN0cnVjdCBNb2NrV2ViQXV0aGVu
dGljYXRpb25Db25maWd1cmF0aW9uOwpAQCAtOTYzLDYgKzk2NywxMCBAQCBwdWJsaWM6CiAgICAg
dW5zaWduZWQgY3JlYXRlU2xlZXBEaXNhYmxlcihjb25zdCBTdHJpbmcmIHJlYXNvbiwgYm9vbCBk
aXNwbGF5KTsKICAgICBib29sIGRlc3Ryb3lTbGVlcERpc2FibGVyKHVuc2lnbmVkIGlkZW50aWZp
ZXIpOwogCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIEV4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRl
c3Q+PiB4clRlc3QoKTsKKyNlbmRpZgorCiBwcml2YXRlOgogICAgIGV4cGxpY2l0IEludGVybmFs
cyhEb2N1bWVudCYpOwogICAgIERvY3VtZW50KiBjb250ZXh0RG9jdW1lbnQoKSBjb25zdDsKQEAg
LTk4Nyw2ICs5OTUsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q2FjaGVTdG9yYWdlQ29ubmVj
dGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1bnNpZ25lZCwg
c3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlzYWJsZXJz
OworCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJUZXN0Owor
I2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0lu
dGVybmFscy5pZGwKaW5kZXggNDMxOTUyZTk2NWY3ZTE4YzRmNWI1NzUzYWZiNTI4NDc3NGIyNmQz
ZS4uYzgzOGQ4NWRlZjE0MTZkYTUxZDYxOTlmZmU2ZDdlZWU5NWZiMmQyOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtODYzLDQgKzg2Myw2IEBAIGVudW0gQ29tcG9zaXRp
bmdQb2xpY3kgewogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVTbGVlcERpc2FibGVyKERPTVN0
cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7CiAgICAgYm9vbGVhbiBkZXN0cm95U2xlZXBE
aXNhYmxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworCisgICAgW0NvbmRpdGlvbmFsPVdF
QlhSLCBNYXlUaHJvd0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSVGVzdCB4clRl
c3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZp
Y2UuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmU3YmFkMjJhZmRhNTRiZjhiMDhhNTQzMjc3ZTFhMmE4YTZjZjQ0YjcKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAKQEAg
LTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViRmFrZVhSRGV2aWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJK
U0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIldlYkZha2VYUklucHV0Q29udHJvbGxl
ci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzZXRW
aWV3cyhWZWN0b3I8RmFrZVhSVmlld0luaXQ+KQoreworfQorCit2b2lkIFdlYkZha2VYUkRldmlj
ZTo6ZGlzY29ubmVjdChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQoreworICAg
IHByb21pc2UucmVzb2x2ZSgpOworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Vmlld2Vy
T3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3Np
dGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyAgICBVTlVTRURfUEFSQU0oZW11
bGF0ZWRQb3NpdGlvbik7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpjbGVhclZpZXdlck9y
aWdpbigpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVZpc2liaWxpdHlD
aGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpz
ZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+KQoreworfQorCit2b2lk
IFdlYkZha2VYUkRldmljZTo6c2V0Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0
KQoreworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6Y2xlYXJGbG9vck9yaWdpbigpCit7Cit9
CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVJlc2V0UG9zZSgpCit7Cit9CisKK1dl
YkZha2VYUklucHV0Q29udHJvbGxlciBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5wdXRTb3Vy
Y2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCkKK3sKKyAgICByZXR1cm4gV2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmlj
ZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmUyMDAzMGUzODQ2ODlhNTM5NmU4N2VmYmY4MjJhZmUzZDY3ZGI0YzkK
LS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmlj
ZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJCb3VuZHNQb2ludC5oIgorI2luY2x1ZGUg
IkZha2VYUklucHV0U291cmNlSW5pdC5oIgorI2luY2x1ZGUgIkZha2VYUlZpZXdJbml0LmgiCisj
aW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYkZha2VYUkRldmljZSA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YkZha2VYUkRldmljZT4geworcHVibGljOgorICAgIHZvaWQgc2V0Vmlld3MoVmVjdG9yPEZha2VY
UlZpZXdJbml0Pik7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3QoRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYpOworCisgICAgdm9pZCBzZXRWaWV3ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1J
bml0IG9yaWdpbiwgYm9vbCBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCisgICAgdm9pZCBj
bGVhclZpZXdlck9yaWdpbigpOworCisgICAgdm9pZCBzaW11bGF0ZVZpc2liaWxpdHlDaGFuZ2Uo
WFJWaXNpYmlsaXR5U3RhdGUpOworCisgICAgdm9pZCBzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8
RmFrZVhSQm91bmRzUG9pbnQ+IGJvdW5kc0Nvb3JkaW5hdGVzKTsKKworICAgIHZvaWQgc2V0Rmxv
b3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0KTsKKworICAgIHZvaWQgY2xlYXJGbG9v
ck9yaWdpbigpOworCisgICAgdm9pZCBzaW11bGF0ZVJlc2V0UG9zZSgpOworCisgICAgV2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyIHNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0aW9uKEZha2VYUklu
cHV0U291cmNlSW5pdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAv
LyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZh
a2VYUkRldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5p
ZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uODRhNzM2ZjZmMGNlNjc5YWNlMzU3NGM4YzJmNjVlNmUyZDhjNjU5YQot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNl
LmlkbApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBT
LkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEludGVyZmFjZU5hbWU9RmFr
ZVhSRGV2aWNlLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFjZSBX
ZWJGYWtlWFJEZXZpY2UgeworICAvLyBTZXRzIHRoZSB2YWx1ZXMgdG8gYmUgdXNlZCBmb3Igc3Vi
c2VxdWVudAorICAvLyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFja3MuCisgIHZvaWQg
c2V0Vmlld3Moc2VxdWVuY2U8RmFrZVhSVmlld0luaXQ+IHZpZXdzKTsKKworICAvLyBiZWhhdmVz
IGFzIGlmIGRldmljZSB3YXMgZGlzY29ubmVjdGVkCisgIFByb21pc2U8dm9pZD4gZGlzY29ubmVj
dCgpOworCisgIC8vIFNldHMgdGhlIG9yaWdpbiBvZiB0aGUgdmlld2VyCisgIHZvaWQgc2V0Vmll
d2VyT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIG9wdGlvbmFsIGJvb2xl
YW4gZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKworICAvLyBJZiBhbiBvcmlnaW4gaXMgbm90
IHNwZWNpZmllZCwgdGhlbiB0aGUgZGV2aWNlIGlzIGFzc3VtZWQgdG8gbm90IGJlIHRyYWNraW5n
LCBlbXVsYXRlZFBvc2l0aW9uIHNob3VsZAorICAvLyBiZSBhc3N1bWVkIGZvciBjYXNlcyB3aGVy
ZSB0aGUgVUEgbXVzdCBhbHdheXMgcHJvdmlkZSBhIHBvc2UuCisgIHZvaWQgY2xlYXJWaWV3ZXJP
cmlnaW4oKTsKKworICAvLyBTaW11bGF0ZXMgZGV2aWNlcyBmb2N1c2luZyBhbmQgYmx1cnJpbmcg
c2Vzc2lvbnMuCisgIHZvaWQgc2ltdWxhdGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0
YXRlIHZpc2liaWxpdHlTdGF0ZSk7CisKKyAgdm9pZCBzZXRCb3VuZHNHZW9tZXRyeShzZXF1ZW5j
ZTxGYWtlWFJCb3VuZHNQb2ludD4gYm91bmRzQ29vcmRpbmF0ZXMpOworICAvLyBTZXRzIHRoZSBu
YXRpdmUgb3JpZ2luIG9mIHRoZSBwaHlzaWNhbCBmbG9vcgorICB2b2lkIHNldEZsb29yT3JpZ2lu
KEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBmbG9vck9yaWdpbik7CisKKyAgLy8gSW5kaWNhdGVz
IHRoYXQgdGhlIGRldmljZSBjYW4gbm8gbG9uZ2VyIGlkZW50aWZ5IHRoZSBsb2NhdGlvbiBvZiB0
aGUgcGh5c2ljYWwgZmxvb3IuCisgIHZvaWQgY2xlYXJGbG9vck9yaWdpbigpOworCisgIC8vIFVz
ZWQgdG8gc2ltdWxhdGUgYSBtYWpvciBjaGFuZ2UgaW4gdHJhY2tpbmcgYW5kIHRoYXQgYSByZXNl
dCBwb3NlIGV2ZW50IHNob3VsZCBiZSBmaXJlZAorICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIu
Z2l0aHViLmlvL3dlYnhyLyNldmVudC10eXBlcworICB2b2lkIHNpbXVsYXRlUmVzZXRQb3NlKCk7
CisKKyAgLy8gVXNlZCB0byBjb25uZWN0IGFuZCBzZW5kIGlucHV0IGV2ZW50cworICBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIgc2ltdWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24oRmFrZVhSSW5w
dXRTb3VyY2VJbml0IGlucHV0U291cmNlKTsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmls
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xs
ZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjc5MGM5ODcwYmI0OGM1MWNlODU1YTVhZTJmYjJhMzY3MWNhNzE2
YjAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklu
cHV0Q29udHJvbGxlci5jcHAKQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVk
ZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgiCisKKyNp
ZiBFTkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBXZWJGYWtlWFJJ
bnB1dENvbnRyb2xsZXI6OnNldEhhbmRlZG5lc3MoWFJIYW5kZWRuZXNzKQoreworfQorCit2b2lk
IFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0VGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1v
ZGUpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQcm9maWxlcyhW
ZWN0b3I8U3RyaW5nPikKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNl
dEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGdyaXBPcmlnaW4sIGJvb2wgZW11
bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0oZ3JpcE9yaWdpbik7CisgICAgVU5V
U0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29u
dHJvbGxlcjo6Y2xlYXJHcmlwT3JpZ2luKCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENv
bnRyb2xsZXI6OnNldFBvaW50ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50
ZXJPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0ocG9p
bnRlck9yaWdpbik7CisgICAgVU5VU0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2
b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6ZGlzY29ubmVjdCgpCit7Cit9CisKK3ZvaWQg
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpyZWNvbm5lY3QoKQoreworfQorCit2b2lkIFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcjo6c3RhcnRTZWxlY3Rpb24oKQoreworfQorCit2b2lkIFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcjo6ZW5kU2VsZWN0aW9uKCkKK3sKK30KKwordm9pZCBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXI6OnNpbXVsYXRlU2VsZWN0KCkKK3sKK30KKwordm9pZCBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXI6OnNldFN1cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRv
blN0YXRlSW5pdD4pCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRh
dGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQpCit7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFhYjE5
Y2ZhMDBjNTNmNGEyNWRlOTc3ZDFkMGQyMmJkOWQyN2FkMGYKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oCkBAIC0wLDAg
KzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIp
CisKKyNpbmNsdWRlICJGYWtlWFJCdXR0b25TdGF0ZUluaXQuaCIKKyNpbmNsdWRlICJGYWtlWFJS
aWdpZFRyYW5zZm9ybUluaXQuaCIKKyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNsdWRl
ICJYUlRhcmdldFJheU1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXI+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldEhhbmRlZG5lc3MoWFJIYW5kZWRuZXNzKTsK
KworICAgIHZvaWQgc2V0VGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1vZGUpOworCisgICAgdm9p
ZCBzZXRQcm9maWxlcyhWZWN0b3I8U3RyaW5nPik7CisKKyAgICB2b2lkIHNldEdyaXBPcmlnaW4o
RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGdyaXBPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlv
biA9IGZhbHNlKTsKKworICAgIHZvaWQgY2xlYXJHcmlwT3JpZ2luKCk7CisKKyAgICB2b2lkIHNl
dFBvaW50ZXJPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJv
b2wgZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKworICAgIHZvaWQgZGlzY29ubmVjdCgpOwor
CisgICAgdm9pZCByZWNvbm5lY3QoKTsKKworICAgIHZvaWQgc3RhcnRTZWxlY3Rpb24oKTsKKwor
ICAgIHZvaWQgZW5kU2VsZWN0aW9uKCk7CisKKyAgICB2b2lkIHNpbXVsYXRlU2VsZWN0KCk7CisK
KyAgICB2b2lkIHNldFN1cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5p
dD4pOworCisgICAgdm9pZCB1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQp
OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xs
ZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmY4ZTFhZDU3ZjBjMzczOWZiOWFlNDcxNjZmMGZkZmI5YzBjZDQz
MzQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklu
cHV0Q29udHJvbGxlci5pZGwKQEAgLTAsMCArMSw3NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykg
MjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIu
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9T
RSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVU
RSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFks
IE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcg
SU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBJbXBs
ZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9RmFrZVhSSW5wdXRDb250
cm9sbGVyCitdIGludGVyZmFjZSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgeworICAvLyBJbmRp
Y2F0ZXMgdGhhdCB0aGUgaGFuZGVkbmVzcyBvZiB0aGUgZGV2aWNlIGhhcyBjaGFuZ2VkLgorICB2
b2lkIHNldEhhbmRlZG5lc3MoWFJIYW5kZWRuZXNzIGhhbmRlZG5lc3MpOworCisgIC8vIEluZGlj
YXRlcyB0aGF0IHRoZSB0YXJnZXQgcmF5IG1vZGUgb2YgdGhlIGRldmljZSBoYXMgY2hhbmdlZC4K
KyAgdm9pZCBzZXRUYXJnZXRSYXlNb2RlKFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKTsK
KworICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgbGlzdCBvZiBwcm9maWxlcyByZXByZXNlbnRpbmcg
dGhlIGRldmljZSBoYXMgY2hhbmdlZC4KKyAgdm9pZCBzZXRQcm9maWxlcyhzZXF1ZW5jZTxET01T
dHJpbmc+IHByb2ZpbGVzKTsKKworICAvLyBTZXRzIG9yIGNsZWFycyB0aGUgcG9zaXRpb24gb2Yg
dGhlIGNvbnRyb2xsZXIuICBJZiBub3Qgc2V0LCB0aGUgY29udHJvbGxlciBpcyBhc3N1bWVkIHRv
CisgIC8vIG5vdCBiZSB0cmFja2VkLgorICB2b2lkIHNldEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRU
cmFuc2Zvcm1Jbml0IGdyaXBPcmlnaW4sIG9wdGlvbmFsIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlv
biA9IGZhbHNlKTsKKyAgdm9pZCBjbGVhckdyaXBPcmlnaW4oKTsKKworICAvLyBTZXRzIHRoZSBw
b2ludGVyIG9yaWdpbiBmb3IgdGhlIGNvbnRyb2xsZXIuCisgIHZvaWQgc2V0UG9pbnRlck9yaWdp
bihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgcG9pbnRlck9yaWdpbiwgb3B0aW9uYWwgYm9vbGVh
biBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOworCisgIC8vIFRlbXBvcmFyaWx5IGRpc2Nvbm5l
Y3QgdGhlIGlucHV0IGRldmljZQorICB2b2lkIGRpc2Nvbm5lY3QoKTsKKworICAvLyBSZWNvbm5l
Y3QgYSBkaXNjb25uZWN0ZWQgaW5wdXQgZGV2aWNlCisgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAg
Ly8gU3RhcnQgYSBzZWxlY3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhlIHByaW1h
cnkgaW5wdXQKKyAgLy8gSWYgYSBnYW1lcGFkIGlzIHN1cHBvcnRlZCwgc2hvdWxkIHVwZGF0ZSB0
aGUgc3RhdGUgb2YgdGhlIHByaW1hcnkgYnV0dG9uIGFjY29yZGluZ2x5LgorICB2b2lkIHN0YXJ0
U2VsZWN0aW9uKCk7CisKKyAgLy8gRW5kIHNlbGVjdGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUg
d2l0aCB0aGUgcHJpbWFyeSBpbnB1dAorICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBz
aG91bGQgdXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHku
CisgIHZvaWQgZW5kU2VsZWN0aW9uKCk7CisKKyAgLy8gU2ltdWxhdGVzIGEgc3RhcnQvZW5kU2Vs
ZWN0aW9uIGZvciB0aGUgY3VycmVudCBmcmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgIC8v
IElmIGEgZ2FtZXBhZCBpcyBzdXBwb3J0ZWQsIHNob3VsZCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRo
ZSBwcmltYXJ5IGJ1dHRvbiBhY2NvcmRpbmdseS4KKyAgdm9pZCBzaW11bGF0ZVNlbGVjdCgpOwor
CisgIC8vIFVwZGF0ZXMgdGhlIHNldCBvZiBzdXBwb3J0ZWQgYnV0dG9ucywgaW5jbHVkaW5nIGFu
eSBpbml0aWFsIHN0YXRlLgorICAvLyBOb3RlIHRoYXQgdGhpcyBtZXRob2Qgc2hvdWxkIG5vdCBi
ZSBnZW5lcmFsbHkgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZQorICAvLyBidXR0b25z
LCBhcyB0aGUgVUEgbWF5IHRyZWF0IHRoaXMgYXMgcmUtY3JlYXRpbmcgdGhlIEdhbWVwYWQuCisg
IC8vIE5vdGUgdGhhdCBpZiBhbnkgRmFrZVhSQnV0dG9uVHlwZSBpcyByZXBlYXRlZCB0aGUgYmVo
YXZpb3IgaXMgdW5kZWZpbmVkLgorICB2b2lkIHNldFN1cHBvcnRlZEJ1dHRvbnMoc2VxdWVuY2U8
RmFrZVhSQnV0dG9uU3RhdGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zKTsKKworICAvLyBVc2VkIHRv
IHVwZGF0ZSB0aGUgc3RhdGUgb2YgYSBidXR0b24gY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUg
aW5wdXQgc291cmNlCisgIC8vIFdpbGwgbm90IGFkZCBzdXBwb3J0IGZvciB0aGF0IGJ1dHRvbiBp
ZiBpdCBpcyBub3QgY3VycmVudGx5IHN1cHBvcnRlZC4KKyAgdm9pZCB1cGRhdGVCdXR0b25TdGF0
ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQgYnV0dG9uU3RhdGUpOworfTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViWFJUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2MyYWI0ZTQyOGNkZWEyOGNlNmI5MDIxMTAz
NjE0NTllYWEwNTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9X
ZWJYUlRlc3QuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNv
bmZpZy5oIgorI2luY2x1ZGUgIldlYlhSVGVzdC5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViWFJUZXN0OjpzaW11bGF0ZURldmljZUNvbm5l
Y3Rpb24oRmFrZVhSRGV2aWNlSW5pdCwgV2ViRmFrZVhSRGV2aWNlUHJvbWlzZSYmKSBjb25zdAor
eworfQorCit2b2lkIFdlYlhSVGVzdDo6c2ltdWxhdGVVc2VyQWN0aXZhdGlvbihYUlNpbXVsYXRl
VXNlckFjdGl2YXRpb25GdW5jdGlvbiYpCit7Cit9CisKK3ZvaWQgV2ViWFJUZXN0OjpkaXNjb25u
ZWN0QWxsRGV2aWNlcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJikKK3sKK30KKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViWFJUZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDM4M2YzNzVlMTg0ZGQzMWFlNzJmMDFhOWU1NWUy
MDYxNjM0Y2E3MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
WFJUZXN0LmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2Fs
aWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZp
Y2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRp
b25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11
c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9m
IGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJp
YnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRl
cmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdB
UkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElT
JycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JT
CisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBP
UiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisg
KiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQg
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAq
IFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKwor
I2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisj
aW5jbHVkZSAiV2ViRmFrZVhSRGV2aWNlLmgiCisjaW5jbHVkZSAiWFJTZXNzaW9uTW9kZS5oIgor
I2luY2x1ZGUgIlhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmgiCisjaW5jbHVkZSA8
SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgorI2luY2x1ZGUgPHd0Zi9PcHRpb25hbC5oPgor
I2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgV2ViWFJTeXN0ZW07CisKK2NsYXNzIFdlYlhSVGVzdCA6IHB1YmxpYyBSZWZDb3VudGVkPFdl
YlhSVGVzdD4geworcHVibGljOgorICAgIHN0cnVjdCBGYWtlWFJEZXZpY2VJbml0IHsKKyAgICAg
ICAgYm9vbCBzdXBwb3J0c0ltbWVyc2l2ZSB7IGZhbHNlIH07CisgICAgICAgIE9wdGlvbmFsPFZl
Y3RvcjxYUlNlc3Npb25Nb2RlPj4gc3VwcG9ydGVkTW9kZXM7CisgICAgICAgIFZlY3RvcjxGYWtl
WFJWaWV3SW5pdD4gdmlld3M7CisKKyAgICAgICAgT3B0aW9uYWw8VmVjdG9yPEpTQzo6SlNWYWx1
ZT4+IHN1cHBvcnRlZEZlYXR1cmVzOworCisgICAgICAgIE9wdGlvbmFsPFZlY3RvcjxGYWtlWFJC
b3VuZHNQb2ludD4+IGJvdW5kc0Nvb3JkaW5hdGVzOworCisgICAgICAgIE9wdGlvbmFsPEZha2VY
UlJpZ2lkVHJhbnNmb3JtSW5pdD4gZmxvb3JPcmlnaW47CisgICAgICAgIE9wdGlvbmFsPEZha2VY
UlJpZ2lkVHJhbnNmb3JtSW5pdD4gdmlld2VyT3JpZ2luOworICAgIH07CisKKyAgICBzdGF0aWMg
UmVmPFdlYlhSVGVzdD4gY3JlYXRlKFdlYWtQdHI8V2ViWFJTeXN0ZW0+JiYgc3lzdGVtKSB7IHJl
dHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVGVzdChXVEZNb3ZlKHN5c3RlbSkpKTsgfQorCisgICAg
dXNpbmcgV2ViRmFrZVhSRGV2aWNlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8V2ViRmFrZVhSRGV2aWNlPj47CisgICAgdm9pZCBzaW11bGF0ZURldmljZUNvbm5lY3Rp
b24oRmFrZVhSRGV2aWNlSW5pdCwgV2ViRmFrZVhSRGV2aWNlUHJvbWlzZSYmKSBjb25zdDsKKwor
ICAgIC8vIFNpbXVsYXRlcyBhIHVzZXIgYWN0aXZhdGlvbiAoYWthIHVzZXIgZ2VzdHVyZSkgZm9y
IHRoZSBjdXJyZW50IHNjb3BlLgorICAgIC8vIFRoZSBhY3RpdmF0aW9uIGlzIG9ubHkgZ3VhcmFu
dGVlZCB0byBiZSB2YWxpZCBpbiB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gYW5kIG9ubHkgYXBwbGll
cyB0byBXZWJYUgorICAgIC8vIERldmljZSBBUEkgbWV0aG9kcy4KKyAgICB2b2lkIHNpbXVsYXRl
VXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24mKTsKKworICAg
IC8vIERpc2Nvbm5lY3QgYWxsIGZha2UgZGV2aWNlcworICAgIHZvaWQgZGlzY29ubmVjdEFsbERl
dmljZXMoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYpOworCitwcml2YXRlOgorICAgIFdlYlhS
VGVzdChXZWFrUHRyPFdlYlhSU3lzdGVtPiYmIHN5c3RlbSkKKyAgICAgICAgOiBtX2NvbnRleHQo
V1RGTW92ZShzeXN0ZW0pKSB7IH0KKworICAgIFdlYWtQdHI8V2ViWFJTeXN0ZW0+IG1fY29udGV4
dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJY
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjJhNTYzODkz
NjFiZWEyZGIzMmI4MTVlZmJiZDJjNDk2NjZlNDQwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaWRsCkBAIC0wLDAgKzEsODEgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8gCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdF
QlhSLAorICAgIEV4cG9ydE1hY3JvPVdFQkNPUkVfVEVTVFNVUFBPUlRfRVhQT1JULAorICAgIEV4
cG9zZWQ9V2luZG93LAorICAgIEludGVyZmFjZU5hbWU9WFJUZXN0LAorICAgIEltcGxlbWVudGF0
aW9uTGFja3NWVGFibGUsCitdIGludGVyZmFjZSBXZWJYUlRlc3QgeworICAgIC8vIFNpbXVsYXRl
cyBjb25uZWN0aW5nIGEgZGV2aWNlIHRvIHRoZSBzeXN0ZW0uCisgICAgLy8gVXNlZCB0byBpbnN0
YW50aWF0ZSBhIGZha2UgZGV2aWNlIGZvciB1c2UgaW4gdGVzdHMuCisgICAgUHJvbWlzZTxXZWJG
YWtlWFJEZXZpY2U+IHNpbXVsYXRlRGV2aWNlQ29ubmVjdGlvbihGYWtlWFJEZXZpY2VJbml0IGlu
aXQpOworCisgICAgLy8gU2ltdWxhdGVzIGEgdXNlciBhY3RpdmF0aW9uIChha2EgdXNlciBnZXN0
dXJlKSBmb3IgdGhlIGN1cnJlbnQgc2NvcGUuCisgICAgLy8gVGhlIGFjdGl2YXRpb24gaXMgb25s
eSBndWFyYW50ZWVkIHRvIGJlIHZhbGlkIGluIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBhbmQgb25s
eSBhcHBsaWVzIHRvIFdlYlhSCisgICAgLy8gRGV2aWNlIEFQSSBtZXRob2RzLgorICAgIHZvaWQg
c2ltdWxhdGVVc2VyQWN0aXZhdGlvbihYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiBm
KTsKKworICAgIC8vIERpc2Nvbm5lY3QgYWxsIGZha2UgZGV2aWNlcworICAgIFByb21pc2U8dm9p
ZD4gZGlzY29ubmVjdEFsbERldmljZXMoKTsKK307CisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkRldmlj
ZUluaXQgeworICAgIC8vIERlcHJlY2F0ZWQgLSB1c2UgYHN1cHBvcnRlZE1vZGVzYCBpbnN0ZWFk
LgorICAgIHJlcXVpcmVkIGJvb2xlYW4gc3VwcG9ydHNJbW1lcnNpdmU7CisgICAgLy8gU2VxdWVu
Y2Ugb2YgbW9kZXMgdGhhdCBzaG91bGQgYmUgc3VwcG9ydGVkIGJ5IHRoaXMgZGV2aWNlLgorICAg
IHNlcXVlbmNlPFhSU2Vzc2lvbk1vZGU+IHN1cHBvcnRlZE1vZGVzOworICAgIHJlcXVpcmVkIHNl
cXVlbmNlPEZha2VYUlZpZXdJbml0PiB2aWV3czsKKworICAgIC8vIGh0dHBzOi8vaW1tZXJzaXZl
LXdlYi5naXRodWIuaW8vd2VieHIvI2ZlYXR1cmUtbmFtZQorICAgIC8vIFRoZSBsaXN0IG9mIGZl
YXR1cmUgbmFtZXMgdGhhdCB0aGlzIGRldmljZSBzdXBwb3J0cy4KKyAgICAvLyBBbnkgcmVxdWVz
dHMgZm9yIGZlYXR1cmVzIG5vdCBpbiB0aGlzIGxpc3Qgc2hvdWxkIGJlIHJlamVjdGVkLCB3aXRo
IHRoZSBleGNlcHRpb24gb2YgdGhvc2UKKyAgICAvLyB0aGF0IGFyZSBndWFyYW50ZWVkIHJlZ2Fy
ZGxlc3Mgb2YgZGV2aWNlIGF2YWlsYWJpbGl0eSAoZS5nLiAndmlld2VyJykuCisgICAgLy8gSWYg
bm90IHNwZWNpZmllZC9lbXB0eSwgdGhlIGRldmljZSBzdXBwb3J0cyBubyBmZWF0dXJlcy4KKyAg
ICAvLyBOT1RFOiBUaGlzIGlzIG1lYW50IHRvIGVtdWxhdGUgaGFyZHdhcmUgc3VwcG9ydCwgbm90
IHdoZXRoZXIgYSBmZWF0dXJlIGlzCisgICAgLy8gY3VycmVudGx5IGF2YWlsYWJsZSAoZS5nLiBi
b3VuZHMgbm90IGJlaW5nIHRyYWNrZWQgcGVyIGJlbG93KQorICAgIHNlcXVlbmNlPGFueT4gc3Vw
cG9ydGVkRmVhdHVyZXM7CisKKyAgICAvLyBUaGUgYm91bmRzIGNvb3JkaW5hdGVzLiBJZiBlbXB0
eSwgbm8gYm91bmRlZCByZWZlcmVuY2Ugc3BhY2UgaXMgY3VycmVudGx5IHRyYWNrZWQuCisgICAg
Ly8gSWYgbm90LCBtdXN0IGhhdmUgYXQgbGVhc3QgdGhyZWUgZWxlbWVudHMuCisgICAgc2VxdWVu
Y2U8RmFrZVhSQm91bmRzUG9pbnQ+IGJvdW5kc0Nvb3JkaW5hdGVzOworCisgICAgLy8gQSB0cmFu
c2Zvcm0gdXNlZCB0byBpZGVudGlmeSB0aGUgcGh5c2ljYWwgcG9zaXRpb24gb2YgdGhlIHVzZXIn
cyBmbG9vci4KKyAgICAvLyBJZiBub3Qgc2V0LCBpbmRpY2F0ZXMgdGhhdCB0aGUgZGV2aWNlIGNh
bm5vdCBpZGVudGlmeSB0aGUgcGh5c2ljYWwgZmxvb3IuCisgICAgRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0IGZsb29yT3JpZ2luOworCisgICAgLy8gbmF0aXZlIG9yaWdpbiBvZiB0aGUgdmlld2Vy
CisgICAgLy8gSWYgbm90IHNldCwgdGhlIGRldmljZSBpcyBjdXJyZW50bHkgYXNzdW1lZCB0byBu
b3QgYmUgdHJhY2tpbmcsIGFuZCB4ckZyYW1lLmdldFZpZXdlclBvc2Ugc2hvdWxkCisgICAgLy8g
bm90IHJldHVybiBhIHBvc2UuCisgICAgLy8KKyAgICAvLyBUaGlzIHNldHMgdGhlIHZpZXdlciBv
cmlnaW4gKnNob3J0bHkgYWZ0ZXIqIGluaXRpYWxpemF0aW9uOyBzaW5jZSB0aGUgdmlld2VyIG9y
aWdpbiBhdCBpbml0aWFsaXphdGlvbgorICAgIC8vIGlzIHVzZWQgdG8gcHJvdmlkZSBhIHJlZmVy
ZW5jZSBvcmlnaW4gZm9yIGFsbCBtYXRyaWNlcy4KKyAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUlu
aXQgdmlld2VyT3JpZ2luOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
WFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iZjNiODcx
YzI2MTIzYzgxMjBiZjc2OTZmZmJkMzk4YTNiYjhhODI1Ci0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oCkBA
IC0wLDAgKzEsNDcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKKyNpbmNsdWRlICJBY3RpdmVET01DYWxsYmFjay5oIgorI2luY2x1ZGUgIkNhbGxi
YWNrUmVzdWx0LmgiCisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KKworbmFtZXNwYWNlIFdl
YkNvcmUgeworCitjbGFzcyBXZWJYUkZyYW1lOworCitjbGFzcyBYUlNpbXVsYXRlVXNlckFjdGl2
YXRpb25GdW5jdGlvbiA6IHB1YmxpYyBSZWZDb3VudGVkPFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uPiwgcHVibGljIEFjdGl2ZURPTUNhbGxiYWNrIHsKK3B1YmxpYzoKKyAgICB1c2lu
ZyBBY3RpdmVET01DYWxsYmFjazo6QWN0aXZlRE9NQ2FsbGJhY2s7CisKKyAgICB2aXJ0dWFsIENh
bGxiYWNrUmVzdWx0PHZvaWQ+IGhhbmRsZUV2ZW50KEpTQzo6SlNWYWx1ZSkgPSAwOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5j
dGlvbi5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MmUyMmJhMzZjMmM4YzZlZTcxOTRhZWJhY2JiM2I4
M2FmYTdmMTAwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9YUlNp
bXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwKQEAgLTAsMCArMSwyOCBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRv
Y3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0
cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMu
IEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJyBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04KKyAqIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUworICogU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworWworICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEVuYWJsZWRBdFJ1bnRpbWU9
V2ViWFIKK10gY2FsbGJhY2sgWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gPSB2b2lk
IChhbnkuLi4gYXJndW1lbnRzKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDI0
NzA0ODJlZjY0ZWY4YTc5MDYyYjAwMDg2MmIwMDNlYmIwNjU2OTQuLmEzMzhhODE3ZTY4ZTliY2Qy
ZWVjYzcwZmNiMmRiZDYwN2E5MGQ3MTAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTE2ICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxh
ckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0gVGVzdCBJRExzIGFuZCBzdHVicworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VieHIvcmVzb3VyY2VzL3dlYnhyX3V0aWwuanM6CisgICAgICAgICh4cl9wcm9t
aXNlX3Rlc3QpOiBNYXAgbmF2aWdhdG9yLnhyLnRlc3QgPSBpbnRlcm5hbHMueHJ0ZXN0LgorCiAy
MDIwLTA0LTE0ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZXN5bmMgZmVhdHVyZXBvbGljeS5qcyB0byBmaXggV1BUIG1lZGlhY2FwdHVyZS1zdHJlYW1zL01l
ZGlhU3RyZWFtLWRlZmF1bHQtZmVhdHVyZS1wb2xpY3kuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9yZXNvdXJj
ZXMvd2VieHJfdXRpbC5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VieHIvcmVzb3VyY2VzL3dlYnhyX3V0aWwuanMKaW5kZXggNzJhMjFjMGZmMjllMjY2
Yzk1MDUxZTI3ODBmNTk0ZDQ0ZGEwNjU2Yi4uZWQ1YzQ5OGJjNzcxMzJmM2Y0NzY3Zjc2ODVhZWU5
MDQ2MDE1ZWVlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5qcworKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91
dGlsLmpzCkBAIC0xNSw2ICsxNSwxMiBAQCBmdW5jdGlvbiB4cl9wcm9taXNlX3Rlc3QobmFtZSwg
ZnVuYywgcHJvcGVydGllcykgewogICAgICAgLy8gQ2hyb21lIHNldHVwCiAgICAgICBhd2FpdCBs
b2FkQ2hyb21pdW1SZXNvdXJjZXM7CiAgICAgfQorICAgIGlmIChzZWxmLmludGVybmFscyAmJiBp
bnRlcm5hbHMueHJUZXN0ICYmIG5hdmlnYXRvci54cikgeworICAgICAgLy8gV2ViS2l0IHNldHVw
LiBUaGUgaW50ZXJuYWxzIG9iamVjdCBpcyB1c2VkIGJ5IHRoZSBXZWJLaXQgdGVzdCBydW5uZXIK
KyAgICAgIC8vIHRvIHByb3ZpZGUgSlMgYWNjZXNzIHRvIGludGVybmFsIEFQSXMuIEluIHRoaXMg
Y2FzZSBpdCdzIHVzZWQgdG8KKyAgICAgIC8vIGVuc3VyZSB0aGF0IFhSVGVzdCBpcyBvbmx5IGV4
cG9zZWQgdG8gd3B0IHRlc3RzLgorICAgICAgbmF2aWdhdG9yLnhyLnRlc3QgPSBpbnRlcm5hbHMu
eHJUZXN0OworICAgIH0KIAogICAgIC8vIEVuc3VyZSB0aGF0IGFueSBkZXZpY2VzIGFyZSBkaXNj
b25uZWN0ZWQgd2hlbiBkb25lLiBJZiB0aGlzIHdlcmUgZG9uZSBpbgogICAgIC8vIGEgLnRoZW4o
KSBmb3IgdGhlIHN1Y2Nlc3MgY2FzZSwgYSB0ZXN0IHRoYXQgZXhwZWN0ZWQgZmFpbHVyZSB3b3Vs
ZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396748</attachid>
            <date>2020-04-17 02:10:47 -0700</date>
            <delta_ts>2020-04-21 07:03:32 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209859-20200417111045.patch</filename>
            <type>text/plain</type>
            <size>84278</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWVhZjUxNDg3NDZmMTgz
MGJjMmY5Njc1OTMzNWM5MjZlZDc5YmJhZi4uMzY5NDljYjI0NjZlZWU4Y2ZhOGU1M2M1Zjc5YjMz
ZGExNjZmOTFiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDIwLTA0LTE2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViWFIgdGVzdGluZyBpcyBoYXJkIGFzIGl0IG1pZ2h0IGludm9sdmUgaW50
ZXJhY3Rpb24gd2l0aCBhY3R1YWwKKyAgICAgICAgZGV2aWNlcy4gVGhhdCdzIHdoeSB0aGUgV2Vi
WFIgdGVzdGluZworICAgICAgICBBUEkgKGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8v
d2VieHItdGVzdC1hcGkvKSB3YXMKKyAgICAgICAgcHJvcG9zZWQuIEluIGZhY3QsIGFsbCB0aGUg
Y3VycmVudCBXZWJYUiB0ZXN0cyBmcm9tCisgICAgICAgIHdlYi1wbGF0Zm9ybS10ZXN0cyBhcmUg
dXNpbmcgdGhhdCB0ZXN0aW5nIEFQSS4gVGhpcyBuZXcgdGVzdGluZworICAgICAgICBBUEkgc3Vw
cGxlbWVudHMgbmF2aWdhdG9yLnhyIGFuZCBpcyBhY2Nlc3NlZCB0aHJvdWdoCisgICAgICAgIG5h
dmlnYXRvci54ci50ZXN0LgorCisgICAgICAgIEluIG9yZGVyIG5vdCB0byBleHBvc2UgdGhlIEFQ
SSB0byB0aGUgd2ViIHdlJ3JlIGFkZGluZyB0aGUgWFJUZXN0CisgICAgICAgIGludGVyZmFjZSB0
byBJbnRlcm5hbHMgaW5zdGVhZC4gVGhlIG1hcHBpbmcgZnJvbSBpbnRlcm5hbHMueHJUZXN0IHRv
CisgICAgICAgIG5hdmlnYXRvci54ci50ZXN0IGhhcHBlbnMgaW4gdGhlIFdQVCBjb2RlLgorCisg
ICAgICAgIFdlJ3JlIGFkZGluZyB0aGUgcmVxdWlyZWQgSURMcyBhbmQgdmVyeSBiYXNpYyAobW9z
dGx5IGVtcHR5KQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMgZm9yIHRlc3RpbmcgbWV0aG9kcy4g
V2UncmUgYWRkaW5nIHRlc3RpbmcKKyAgICAgICAgaW5mcmFzdHJ1Y3R1cmUsIGFkZGluZyB0ZXN0
cyBtYWtlIG5vIHNlbnNlIGZvciB0aGlzIGNoYW5nZS4KKworICAgICAgICAqIENNYWtlTGlzdHMu
dHh0OiBBZGRlZCBuZXcgZmlsZXMuCisgICAgICAgICogRGVyaXZlZFNvdXJjZXMubWFrZTogRGl0
dG8uCisgICAgICAgICogTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oOiBFeHBvcnQgQVBJ
IHRvIGJlIHVzZWQgaW4gdGVzdGluZyBjb2RlLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvV2Vi
WFJTeXN0ZW0uaDogRXhwb3J0IDo6ZnJvbSBhbmQgOjp4ciBtZXRob2RzLgorICAgICAgICAqIFNv
dXJjZXMudHh0OiBBZGRlZCBuZXcgZmlsZXMuCisgICAgICAgICogV2ViQ29yZS54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qOiBEaXR0by4KKyAgICAgICAgKiBiaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmg6IEFkZGVkIHNvbWUgbmV3IG1hY3Jvcy4KKyAgICAgICAgKiB0ZXN0aW5nL0Zh
a2VYUkJvdW5kc1BvaW50Lmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSQm91bmRz
UG9pbnQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5p
dC5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGw6
IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0Lmg6IEFkZGVk
LgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbDogQWRkZWQuCisg
ICAgICAgICogdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaDogQWRkZWQuCisgICAg
ICAgICogdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsOiBBZGRlZC4KKyAgICAg
ICAgKiB0ZXN0aW5nL0Zha2VYUlZpZXdJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIHRlc3Rpbmcv
RmFrZVhSVmlld0luaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0ludGVybmFscy5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbnRlcm5hbHM6OnhyVGVzdCk6IEFkZGVkIFdlYlhSVGVz
dCB0byBJbnRlcm5hbHMuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaDogQWRkZWQgeHJU
ZXN0KCkgYWNjZXNzb3IuCisgICAgICAgICogdGVzdGluZy9JbnRlcm5hbHMuaWRsOiBBZGRlZCB4
clRlc3QgYXR0cmlidXRlLgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcDog
QWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNldFZpZXdzKToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6ZGlzY29ubmVjdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNldFZpZXdlck9yaWdpbik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJGYWtlWFJEZXZpY2U6OmNsZWFyVmlld2VyT3JpZ2luKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkZha2VYUkRldmljZTo6c2ltdWxhdGVWaXNpYmlsaXR5Q2hhbmdlKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2V0Qm91bmRzR2VvbWV0cnkpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzZXRGbG9vck9yaWdpbik6CisgICAgICAgIChXZWJD
b3JlOjpXZWJGYWtlWFJEZXZpY2U6OmNsZWFyRmxvb3JPcmlnaW4pOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVJlc2V0UG9zZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0aW9uKToKKyAgICAg
ICAgKiB0ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5n
L1dlYkZha2VYUkRldmljZS5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhS
SW5wdXRDb250cm9sbGVyLmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJ
bnB1dENvbnRyb2xsZXI6OnNldEhhbmRlZG5lc3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyOjpzZXRUYXJnZXRSYXlNb2RlKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0UHJvZmlsZXMpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRHcmlwT3JpZ2luKToKKyAgICAgICAgKFdl
YkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6Y2xlYXJHcmlwT3JpZ2luKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0UG9pbnRlck9yaWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmRpc2Nvbm5lY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpyZWNvbm5lY3Qp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzdGFydFNlbGVj
dGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmVuZFNl
bGVjdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNp
bXVsYXRlU2VsZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxl
cjo6c2V0U3VwcG9ydGVkQnV0dG9ucyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXI6OnVwZGF0ZUJ1dHRvblN0YXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZh
a2VYUklucHV0Q29udHJvbGxlci5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZha2VY
UklucHV0Q29udHJvbGxlci5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvV2ViWFJUZXN0
LmNwcDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJYUlRlc3Q6OnNpbXVsYXRlRGV2aWNl
Q29ubmVjdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJYUlRlc3Q6OnNpbXVsYXRl
VXNlckFjdGl2YXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpkaXNjb25uZWN0
QWxsRGV2aWNlcyk6CisgICAgICAgICogdGVzdGluZy9XZWJYUlRlc3QuaDogQWRkZWQuCisgICAg
ICAgIChXZWJDb3JlOjpXZWJYUlRlc3Q6OmNyZWF0ZSk6CisgICAgICAgICogdGVzdGluZy9XZWJY
UlRlc3QuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZh
dGlvbkZ1bmN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJB
Y3RpdmF0aW9uRnVuY3Rpb24uaWRsOiBEaXR0by4KKwogMjAyMC0wNC0xNyAgWW91ZW5uIEZhYmxl
dCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgTWFrZSB1c2Ugb2YgV2Vha0hhc2hTZXQg
Zm9yIE1lZGlhU3RyZWFtVHJhY2tQcml2YXRlIGFuZCBSZWFsdGltZU1lZGlhU291cmNlIG9ic2Vy
dmVycwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCA5MTIyMzAxNzhjMWQyYTM5MzViMjA5YTc5OWE3
NzM1OWJlNzdkNDU1Li41MGU0YTlkNWEwNTMyNTE4MmJlMDk1NWJhMzFmYWJhNDViNGViMTMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTU5LDYgKzE1OSw3IEBAIHNldChXZWJDb3JlX1BSSVZB
VEVfSU5DTFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9zdmcvZ3JhcGhpY3Mi
CiAgICAgIiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcy9maWx0ZXJzIgogICAgICIke1dFQkNP
UkVfRElSfS9zdmcvcHJvcGVydGllcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vdGVzdGluZyIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vd2Vic29ja2V0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vd29ya2Vy
cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vd29ya2Vycy9zZXJ2aWNlIgpAQCAtMTY1Niw2ICsxNjU3
LDI1IEBAIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVzdGlu
Zy9qcy9XZWJDb3JlVGVzdFN1cHBvcnQuY3BwCiApCiAKKworaWYgKEVOQUJMRV9XRUJYUikKKyAg
ICBsaXN0KEFQUEVORCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCisgICAgICAgIHRlc3Rp
bmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQnV0dG9uU3Rh
dGVJbml0LmlkbAorICAgICAgICB0ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwKKyAg
ICAgICAgdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCisgICAgICAgIHRlc3Rp
bmcvRmFrZVhSVmlld0luaXQuaWRsCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlk
bAorICAgICAgICB0ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKKyAgICAgICAg
dGVzdGluZy9XZWJYUlRlc3QuaWRsCisgICAgICAgIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3Rp
dmF0aW9uRnVuY3Rpb24uaWRsCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3Vw
cG9ydF9TT1VSQ0VTCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAorICAgICAg
ICB0ZXN0aW5nL1dlYlhSVGVzdC5jcHAKKyAgICApCitlbmRpZiAoKQorCiAjIE1vZHVsZXMgdGhh
dCB0aGUgYmluZGluZ3MgZ2VuZXJhdG9yIHNjcmlwdHMgbWF5IHVzZQogc2V0KFNDUklQVFNfUkVT
T0xWRV9TVVBQTEVNRU5UQUwKICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lE
TFBhcnNlci5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFr
ZSBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggNGU5MjU2OGYwNzIy
OTE2YWVhOTI4NTg2YzY0OTc2MzI4NzA1ZmU5NS4uMTQyZmRjMTAzMTJlM2Q1MDI0YzkxOTgyYTI5
MjVlYjI2NTJkODVmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMTE4LDYg
KzExMTgsMTUgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9N
b2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS90
ZXN0aW5nL1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rlc3Rp
bmcvVHlwZUNvbnZlcnNpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUkJv
dW5kc1BvaW50LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRl
SW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQu
aWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmlk
bCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbCBcCisgICAgJChX
ZWJDb3JlKS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVz
dGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3Rp
bmcvV2ViWFJUZXN0LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL1hSU2ltdWxhdGVVc2Vy
QWN0aXZhdGlvbkZ1bmN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL0Fic3RyYWN0
V29ya2VyLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2Jh
bFNjb3BlLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL1dvcmtlci5pZGwgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCmluZGV4IGZmMzRlNGU1
OWYzOWM4OWRiMmE5MmE0MTYwYjg4MDNlZTA3ZjQyZGIuLjIzYzYwYzVjODJlOWUyMDY1YTViYjc4
MzE5Yzc4NDI2MGFkM2Q5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvTmF2aWdhdG9yV2ViWFIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05h
dmlnYXRvcldlYlhSLmgKQEAgLTM5LDExICszOSwxMSBAQCBjbGFzcyBXZWJYUlN5c3RlbTsKIGNs
YXNzIE5hdmlnYXRvcldlYlhSIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8TmF2aWdhdG9yPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdlYlhS
U3lzdGVtJiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2aWdhdG9yJik7CisgICAgV0VC
Q09SRV9FWFBPUlQgc3RhdGljIFdlYlhSU3lzdGVtJiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgTmF2aWdhdG9yJik7CiAKLXByaXZhdGU6Ci0gICAgc3RhdGljIE5hdmlnYXRvcldlYlhSJiBm
cm9tKE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOYXZpZ2F0b3JXZWJY
UiYgZnJvbShOYXZpZ2F0b3ImKTsKIAorcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViWFJTeXN0ZW0+
IG1feHI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dl
YlhSU3lzdGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgK
aW5kZXggZTlhYjE1ZDdhZWE0NDVkMTMzMmZjMjEyYTQ1Njg0NWRjZWQ5Y2VlMS4uMjIwNjM4MjJl
ZTUxMzU5ZThlZmEyMTIyMDk3MmIwOWYyYWUyNDE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2VieHIvV2ViWFJTeXN0ZW0uaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlhSU2Vz
c2lvbk1vZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKQEAgLTQwLDE0ICs0MSwxNCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Y2xhc3MgV2ViWFJTZXNzaW9uOwogc3RydWN0IFhSU2Vzc2lvbkluaXQ7CiAKLWNsYXNzIFdlYlhS
U3lzdGVtIGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZl
bnRUYXJnZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBX
ZWJYUlN5c3RlbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPiwgcHVibGlj
IEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1Ymxp
YyBDYW5NYWtlV2Vha1B0cjxXZWJYUlN5c3RlbT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FU
RUQoV2ViWFJTeXN0ZW0pOwogcHVibGljOgogICAgIHVzaW5nIElzU2Vzc2lvblN1cHBvcnRlZFBy
b21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CiAgICAgdXNpbmcgUmVxdWVz
dFNlc3Npb25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJYUlNl
c3Npb24+PjsKIAogICAgIHN0YXRpYyBSZWY8V2ViWFJTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V2ViWFJTeXN0ZW0oKTsKKyAgICB+V2ViWFJT
eXN0ZW0oKTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+OjpyZWY7CiAgICAg
dXNpbmcgUmVmQ291bnRlZDxXZWJYUlN5c3RlbT46OmRlcmVmOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCAy
NDhjNWNlZTllZjQxNGFkNmJiNzVlMDM3NTAwZmRlOTZlZmU2ZDJlLi4yN2Q5NGI5YmMxM2I5MDVm
NzNmYWZkNDc5NWY0YzE0NTk1YjMzMWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3Vy
Y2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtNDM0LDYgKzQzNCwx
MCBAQCBNb2R1bGVzL3dlYnhyL1hSSW5wdXRTb3VyY2VzQ2hhbmdlRXZlbnQuY3BwIEBuby11bmlm
eQogTW9kdWxlcy93ZWJ4ci9YUlJlZmVyZW5jZVNwYWNlRXZlbnQuY3BwIEBuby11bmlmeQogTW9k
dWxlcy93ZWJ4ci9YUlNlc3Npb25FdmVudC5jcHAgQG5vLXVuaWZ5CiAKK3Rlc3RpbmcvV2ViRmFr
ZVhSRGV2aWNlLmNwcCBAbm8tdW5pZnkKK3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVy
LmNwcCBAbm8tdW5pZnkKK3Rlc3RpbmcvV2ViWFJUZXN0LmNwcCBAbm8tdW5pZnkKKwogI2VuZGlm
CiAKIGFjY2Vzc2liaWxpdHkvQVhMb2dnZXIuY3BwCkBAIC0zNTU3LDYgKzM1NjEsMTYgQEAgSlNY
U0xUUHJvY2Vzc29yLmNwcAogCiAjaWYgRU5BQkxFX1dFQlhSCiAKK0pTRmFrZVhSQm91bmRzUG9p
bnQuY3BwCitKU0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5jcHAKK0pTRmFrZVhSSW5wdXRTb3VyY2VJ
bml0LmNwcAorSlNGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuY3BwCitKU0Zha2VYUlZpZXdJbml0
LmNwcAorSlNXZWJGYWtlWFJEZXZpY2UuY3BwCitKU1dlYkZha2VYUklucHV0Q29udHJvbGxlci5j
cHAKK0pTV2ViWFJUZXN0LmNwcAorSlNYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5j
cHAKKwogSlNXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAKIEpTWFJFbnZpcm9ubWVudEJs
ZW5kTW9kZS5jcHAKIEpTWFJFeWUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzYwMTEzMDIyOTZkMjA5ZjQzZDdmZGVjYmQy
ZjFlMDBlZDAzZWQ3Ny4uOTNmYTI0YmFiMmU3MjdlMGU1MjBlZDk3MDNmODhjODE3ZTNjYTExZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agpAQCAtMTUxNDgsOCArMTUxNDgsNDUgQEAKIAkJRTE4NTM2ODIxRjRFNDcyNzAwRkUwOTFCIC8q
IFdlYkFyY2hpdmVSZXNvdXJjZUZyb21OU0F0dHJpYnV0ZWRTdHJpbmcubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpj
cHA7IHBhdGggPSBXZWJBcmNoaXZlUmVzb3VyY2VGcm9tTlNBdHRyaWJ1dGVkU3RyaW5nLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMThDMzU0MTFGNzE5NkNEMDBGRjYzMkQgLyog
V2ViQXJjaGl2ZVJlc291cmNlV2ViUmVzb3VyY2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlFMThDMzU0MjFGNzE5NzAxMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNl
V2ViUmVzb3VyY2VIYW5kbGVyLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJjaGl2ZVJl
c291cmNlV2ViUmVzb3VyY2VIYW5kbGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMThEODNEQzI0M0Y3MUNCMDA5MjQ3RDYgLyogRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNERDI0M0Y3MUNDMDA5MjQ3RDYgLyogV2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxOEQ4M0RFMjQzRjcxQ0QwMDkyNDdENiAvKiBGYWtlWFJCdXR0b25TdGF0ZUluaXQu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSQnV0dG9uU3RhdGVJbml0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0RGMjQzRjcxQ0QwMDkyNDdE
NiAvKiBGYWtlWFJWaWV3SW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBG
YWtlWFJWaWV3SW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFMDI0
M0Y3MUNFMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlhSVGVzdC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxOEQ4M0UxMjQzRjcxQ0UwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0UyMjQzRjcxQ0YwMDkyNDdENiAvKiBG
YWtlWFJWaWV3SW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSVmlld0luaXQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFMzI0M0Y3MUNGMDA5MjQ3
RDYgLyogRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBG
YWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MThEODNFNDI0M0Y3MUQwMDA5MjQ3RDYgLyogRmFrZVhSQm91bmRzUG9pbnQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSQm91bmRzUG9pbnQuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTUyNDNGNzFEMTAwOTI0N0Q2IC8qIEZha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYWtlWFJS
aWdpZFRyYW5zZm9ybUluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgz
RTYyNDNGNzFEMTAwOTI0N0Q2IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTcyNDNGNzFEMjAwOTI0N0Q2IC8qIFdlYkZha2VY
UkRldmljZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViRmFrZVhSRGV2aWNlLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTgyNDNGNzFEMjAwOTI0N0Q2IC8q
IFdlYlhSVGVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlRlc3Qu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTkyNDNGNzFEMzAwOTI0N0Q2
IC8qIFdlYkZha2VYUkRldmljZS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBXZWJGYWtlWFJEZXZpY2UuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MThEODNFQTI0M0Y3MUQ0MDA5MjQ3RDYgLyogRmFrZVhSSW5wdXRTb3VyY2VJbml0LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUklucHV0U291cmNlSW5pdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFQjI0M0Y3MUQ1MDA5MjQ3RDYgLyogV2Vi
WFJUZXN0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlRlc3QuaWRsOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFQzI0M0Y3MUQ1MDA5MjQ3RDYgLyogWFJTaW11
bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUQyNDNGNzFENjAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmlj
ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGYWtlWFJEZXZpY2UuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUUyNDNGNzFENzAwOTI0N0Q2IC8q
IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTE4RDgzRUYyNDNGNzFENzAwOTI0N0Q2IC8qIEZha2VYUkJvdW5kc1BvaW50LmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGYWtlWFJCb3VuZHNQb2ludC5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0YwMjQzRjcxRDgwMDkyNDdENiAvKiBYUlNpbXVsYXRl
VXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTaW11
bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlFMThERjMzNDE4QUFGMTJDMDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdy
YXAuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzYxOEFBRjE0RDAwNzcz
RTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW07IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDg2MjQzNEYxNTgwMDQxNkE5OSAvKiBXZWJY
UlZpZXcuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSVmlldy5pZGw7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDg3MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUlZp
ZXdwb3J0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlZpZXdwb3J0LmlkbDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwODgyNDM0RjE1OTAwNDE2QTk5IC8qIFdl
YlhSRnJhbWUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSRnJhbWUuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4OTI0MzRGMTVBMDA0MTZBOTkgLyogV2Vi
WFJJbnB1dFNvdXJjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJJbnB1dFNvdXJj
ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDhGMjQzNEYxNUQwMDQx
NkE5OSAvKiBXZWJYUldlYkdMTGF5ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhS
V2ViR0xMYXllci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDkzMjQz
NEYxNjAwMDQxNkE5OSAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxOTQ5MDk0MjQzNEYxNjAwMDQxNkE5OSAvKiBXZWJYUkJvdW5kZWRSZWZlcmVu
Y2VTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5NTI0MzRGMTYx
MDA0MTZBOTkgLyogV2ViWFJXZWJHTExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFdlYlhSV2ViR0xMYXllci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MTk0OTA5ODI0MzRGMTYyMDA0MTZBOTkgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxOTQ5MDlBMjQzNEYxNjQwMDQxNkE5OSAvKiBXZWJYUlN5c3RlbS5p
ZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJTeXN0ZW0uaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMTk0OTA5QzI0MzRGMTY1MDA0MTZBOTkgLyogV2ViWFJWaWV3ZXJQ
b3NlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlZpZXdlclBvc2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5RTI0MzRGMTY2MDA0MTZBOTkgLyogV2Vi
WFJTZXNzaW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlNlc3Npb24uaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTBBMTI0MzRGMTY4MDA0MTZBOTkgLyog
V2ViWFJQb3NlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlBvc2UuaWRsOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTBBMjI0MzRGMTY4MDA0MTZBOTkgLyogV2Vi
WFJTcGFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJTcGFjZS5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEE0MjQzNEYxNjkwMDQxNkE5OSAvKiBXZWJY
UlJlbmRlclN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlJlbmRlclN0YXRl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwQTYyNDM0RjE2QjAwNDE2
QTk5IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdl
YlhSUmVmZXJlbmNlU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTk3
MjcxNTE4MjA1NDlFMDA1OTJENTEgLyogQ3J5cHRvS2V5VHlwZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDcnlwdG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUUxOUFDM0U2MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEyMjQu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGht
U0hBMjI0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRTcxODI0REM3
OTAwMzQ5NDI2IC8qIENyeXB0b0FsZ29yaXRobVNIQTIyNC5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBDcnlwdG9BbGdvcml0aG1TSEEyMjQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKQEAgLTE4MzI1LDYgKzE4MzYyLDE2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlB
MTc2M0YzQjFFMjA1MUFCMDAxRDU4REUgLyogY29jb2EgKi8sCiAJCQkJNDE4MTVDMUIxMzgzMTk2
MzAwNTdBQUE0IC8qIGpzICovLAorCQkJCUUxOEQ4M0U0MjQzRjcxRDAwMDkyNDdENiAvKiBGYWtl
WFJCb3VuZHNQb2ludC5oICovLAorCQkJCUUxOEQ4M0VGMjQzRjcxRDcwMDkyNDdENiAvKiBGYWtl
WFJCb3VuZHNQb2ludC5pZGwgKi8sCisJCQkJRTE4RDgzREUyNDNGNzFDRDAwOTI0N0Q2IC8qIEZh
a2VYUkJ1dHRvblN0YXRlSW5pdC5oICovLAorCQkJCUUxOEQ4M0UzMjQzRjcxQ0YwMDkyNDdENiAv
KiBGYWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsICovLAorCQkJCUUxOEQ4M0VBMjQzRjcxRDQwMDky
NDdENiAvKiBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCAqLywKKwkJCQlFMThEODNEQzI0M0Y3MUNC
MDA5MjQ3RDYgLyogRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbCAqLywKKwkJCQlFMThEODNFNTI0
M0Y3MUQxMDA5MjQ3RDYgLyogRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmggKi8sCisJCQkJRTE4
RDgzRTYyNDNGNzFEMTAwOTI0N0Q2IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgKi8s
CisJCQkJRTE4RDgzREYyNDNGNzFDRDAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0LmggKi8sCisJ
CQkJRTE4RDgzRTIyNDNGNzFDRjAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0LmlkbCAqLywKIAkJ
CQk1MTcxNEVBOTFDRjY1ODk5MDA0NzIzQzQgLyogR0NPYnNlcnZhdGlvbi5jcHAgKi8sCiAJCQkJ
NTE3MTRFQUExQ0Y2NTg5OTAwNDcyM0M0IC8qIEdDT2JzZXJ2YXRpb24uaCAqLywKIAkJCQk1MTcx
NEVBQjFDRjY1ODk5MDA0NzIzQzQgLyogR0NPYnNlcnZhdGlvbi5pZGwgKi8sCkBAIC0xODM4OSw2
ICsxODQzNiwxNyBAQAogCQkJCUVCMDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVy
c2lvbnMuaCAqLywKIAkJCQlFQjA4MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNp
b25zLmlkbCAqLywKIAkJCQlFMUJBNjcxOTE3NDJCRUY0MDBDMjAyNTEgLyogV2ViQ29yZVRlc3RT
aGltTGlicmFyeS5jcHAgKi8sCisJCQkJRTE4RDgzRTkyNDNGNzFEMzAwOTI0N0Q2IC8qIFdlYkZh
a2VYUkRldmljZS5jcHAgKi8sCisJCQkJRTE4RDgzRUQyNDNGNzFENjAwOTI0N0Q2IC8qIFdlYkZh
a2VYUkRldmljZS5oICovLAorCQkJCUUxOEQ4M0U3MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJGYWtl
WFJEZXZpY2UuaWRsICovLAorCQkJCUUxOEQ4M0REMjQzRjcxQ0MwMDkyNDdENiAvKiBXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuY3BwICovLAorCQkJCUUxOEQ4M0VFMjQzRjcxRDcwMDkyNDdENiAv
KiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCAqLywKKwkJCQlFMThEODNFMTI0M0Y3MUNFMDA5
MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCAqLywKKwkJCQlFMThEODNFMDI0
M0Y3MUNFMDA5MjQ3RDYgLyogV2ViWFJUZXN0LmNwcCAqLywKKwkJCQlFMThEODNFODI0M0Y3MUQy
MDA5MjQ3RDYgLyogV2ViWFJUZXN0LmggKi8sCisJCQkJRTE4RDgzRUIyNDNGNzFENTAwOTI0N0Q2
IC8qIFdlYlhSVGVzdC5pZGwgKi8sCisJCQkJRTE4RDgzRUMyNDNGNzFENTAwOTI0N0Q2IC8qIFhS
U2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmggKi8sCisJCQkJRTE4RDgzRjAyNDNGNzFE
ODAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbCAqLywKIAkJ
CSk7CiAJCQlwYXRoID0gdGVzdGluZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0y
NzIyMiwzMyArMjcyODAsNDkgQEAKIAkJCQlFMUVFOEIwRTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2
aWdhdG9yV2ViWFIuaWRsICovLAogCQkJCUUxRUU4QUQzMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5jcHAgKi8sCiAJCQkJRTFFRThBRDEyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmggKi8sCisJCQkJRTE5NDkwOTQyNDM0
RjE2MDAwNDE2QTk5IC8qIFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLywKIAkJCQlF
MUVFOEFGMDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8sCiAJCQkJRTFFRThB
RTMyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSRnJhbWUuaCAqLywKKwkJCQlFMTk0OTA4ODI0MzRG
MTU5MDA0MTZBOTkgLyogV2ViWFJGcmFtZS5pZGwgKi8sCiAJCQkJRTFFRThCMEQyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSSW5wdXRTb3VyY2UuY3BwICovLAogCQkJCUUxRUU4QjE3MjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlLmggKi8sCisJCQkJRTE5NDkwODkyNDM0RjE1QTAw
NDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2UuaWRsICovLAogCQkJCUUxRUU4QUU2MjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuY3BwICovLAogCQkJCUUxRUU4QUREMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0U291cmNlQXJyYXkuaCAqLywKKwkJCQlFMTk0OTA5
MzI0MzRGMTYwMDA0MTZBOTkgLyogV2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbCAqLywKIAkJCQlF
MUVFOEFFNTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmNwcCAqLywKIAkJCQlFMUVFOEFF
MTI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJQb3NlLmggKi8sCisJCQkJRTE5NDkwQTEyNDM0RjE2
ODAwNDE2QTk5IC8qIFdlYlhSUG9zZS5pZGwgKi8sCiAJCQkJRTFFRThBRDIyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuY3BwICovLAogCQkJCUUxRUU4QjE0MjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUlJlZmVyZW5jZVNwYWNlLmggKi8sCisJCQkJRTE5NDkwQTYyNDM0RjE2
QjAwNDE2QTk5IC8qIFdlYlhSUmVmZXJlbmNlU3BhY2UuaWRsICovLAogCQkJCUUxRUU4QUNFMjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlbmRlclN0YXRlLmNwcCAqLywKIAkJCQlFMUVFOEFENTI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSZW5kZXJTdGF0ZS5oICovLAorCQkJCUUxOTQ5MEE0MjQz
NEYxNjkwMDQxNkE5OSAvKiBXZWJYUlJlbmRlclN0YXRlLmlkbCAqLywKIAkJCQlFMUVFOEFDRDI0
MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8sCiAJCQkJRTFFRThC
MDYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCAqLywKKwkJCQlFMTk0
OTA5ODI0MzRGMTYyMDA0MTZBOTkgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8sCiAJCQkJ
RTFFRThCMEYyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5jcHAgKi8sCiAJCQkJRTFF
RThCMTEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU2Vzc2lvbi5oICovLAorCQkJCUUxOTQ5MDlF
MjQzNEYxNjYwMDQxNkE5OSAvKiBXZWJYUlNlc3Npb24uaWRsICovLAogCQkJCUUxRUU4QUY4MjQx
MkIxNzAwMEU3OTRENiAvKiBXZWJYUlNwYWNlLmNwcCAqLywKIAkJCQlFMUVFOEFDRjI0MTJCMTcw
MDBFNzk0RDYgLyogV2ViWFJTcGFjZS5oICovLAorCQkJCUUxOTQ5MEEyMjQzNEYxNjgwMDQxNkE5
OSAvKiBXZWJYUlNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJTeXN0ZW0uY3BwICovLAogCQkJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlN5c3RlbS5oICovLAorCQkJCUUxOTQ5MDlBMjQzNEYxNjQwMDQxNkE5OSAvKiBXZWJYUlN5c3Rl
bS5pZGwgKi8sCiAJCQkJRTFFRThCMTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAg
Ki8sCiAJCQkJRTFFRThBRTAyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5oICovLAorCQkJ
CUUxOTQ5MDg2MjQzNEYxNTgwMDQxNkE5OSAvKiBXZWJYUlZpZXcuaWRsICovLAogCQkJCUUxRUU4
QjBCMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuY3BwICovLAogCQkJCUUxRUU4
QUM3MjQxMkIxNkYwMEU3OTRENiAvKiBXZWJYUlZpZXdlclBvc2UuaCAqLywKKwkJCQlFMTk0OTA5
QzI0MzRGMTY1MDA0MTZBOTkgLyogV2ViWFJWaWV3ZXJQb3NlLmlkbCAqLywKIAkJCQlFMUVFOEFF
QjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJWaWV3cG9ydC5jcHAgKi8sCiAJCQkJRTFFRThBRjQy
NDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlld3BvcnQuaCAqLywKKwkJCQlFMTk0OTA4NzI0MzRG
MTU5MDA0MTZBOTkgLyogV2ViWFJWaWV3cG9ydC5pZGwgKi8sCiAJCQkJRTFFRThBRDgyNDEyQjE3
MDAwRTc5NEQ2IC8qIFdlYlhSV2ViR0xMYXllci5jcHAgKi8sCisJCQkJRTE5NDkwOTUyNDM0RjE2
MTAwNDE2QTk5IC8qIFdlYlhSV2ViR0xMYXllci5oICovLAorCQkJCUUxOTQ5MDhGMjQzNEYxNUQw
MDQxNkE5OSAvKiBXZWJYUldlYkdMTGF5ZXIuaWRsICovLAogCQkJCUUxRUU4QUY3MjQxMkIxNzAw
MEU3OTRENiAvKiBYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThCMDUy
NDEyQjE3MDAwRTc5NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaCAqLywKIAkJCQlFMUVF
OEFEQTI0MTJCMTcwMDBFNzk0RDYgLyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwgKi8sCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVz
LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5k
ZXggYzYyMDVjNWY2ZTZiMTZkODI3NjFhNDU1ZjVmOWYwNTI4MDA0ZTg4OC4uZjA2ZTQyMmNjNmRh
NmY5NWNhZDk5NGU2YzU4OTJmNGRmY2MwMDZmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtNzUsNiArNzUsOCBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQpIFwKICAg
ICBtYWNybyhFeHRlbmRhYmxlRXZlbnQpIFwKICAgICBtYWNybyhFeHRlbmRhYmxlTWVzc2FnZUV2
ZW50KSBcCisgICAgbWFjcm8oRmFrZVhSRGV2aWNlKSBcCisgICAgbWFjcm8oRmFrZVhSSW5wdXRD
b250cm9sbGVyKSBcCiAgICAgbWFjcm8oRmV0Y2hFdmVudCkgXAogICAgIG1hY3JvKEZpbGVTeXN0
ZW0pIFwKICAgICBtYWNybyhGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnkpIFwKQEAgLTI1MCw2ICsy
NTIsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFjcm8oWFJTZXNzaW9uRXZlbnQpIFwK
ICAgICBtYWNybyhYUlNwYWNlKSBcCiAgICAgbWFjcm8oWFJTeXN0ZW0pIFwKKyAgICBtYWNybyhY
UlRlc3QpIFwKICAgICBtYWNybyhYUlZpZXcpIFwKICAgICBtYWNybyhYUlZpZXdlclBvc2UpIFwK
ICAgICBtYWNybyhYUlZpZXdwb3J0KSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0Zha2VYUkJvdW5kc1BvaW50LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJv
dW5kc1BvaW50LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMmQ3MDcyODY4MjMxZWIyOTM5NDE3MTJhZTQzMGZjYThm
YjQ1MDY0MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhS
Qm91bmRzUG9pbnQuaApAQCAtMCwwICsxLDM5IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBG
YWtlWFJCb3VuZHNQb2ludCB7CisgICAgZG91YmxlIHg7CisgICAgZG91YmxlIHo7Cit9OworCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJvdW5kc1BvaW50LmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyMTM1
YTBhZDc4ZjQ2YjIwNzEyZGRiODYyMWFmYWM5ZTg1NDE3NmMKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJvdW5kc1BvaW50LmlkbApAQCAtMCwwICsxLDMx
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENv
bmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkJvdW5kc1BvaW50IHsKKyAgICBk
b3VibGUgeDsgZG91YmxlIHo7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9GYWtlWFJCdXR0b25TdGF0ZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhS
QnV0dG9uU3RhdGVJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWVkOThlZDhkYzQwNTZmZTNjODA2ZGY2ODFj
ZDIyNWQwZTkyYjA2OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
RmFrZVhSQnV0dG9uU3RhdGVJbml0LmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgRmFrZVhSQnV0dG9uU3RhdGVJbml0IHsKKyAgICBlbnVtIGNsYXNzIFR5cGUgewor
ICAgICAgICBHcmlwLAorICAgICAgICBUb3VjaHBhZCwKKyAgICAgICAgVGh1bWJzdGljaywKKyAg
ICAgICAgT3B0aW9uYWxCdXR0b24sCisgICAgICAgIE9wdGlvbmFsVGh1bWJzdGljaworICAgIH07
CisKKyAgICBUeXBlIGJ1dHRvblR5cGU7CisgICAgYm9vbCBwcmVzc2VkOworICAgIGJvb2wgdG91
Y2hlZDsKKyAgICBmbG9hdCBwcmVzc2VkVmFsdWU7CisgICAgZmxvYXQgeFZhbHVlIHsgMC4wIH07
CisgICAgZmxvYXQgeVZhbHVlIHsgMC4wIH07Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzgwZDM1OTVhYzkwZjdkYmFh
ZTRjMTIyODU1YWQyZjQ0YmJjMzkxNwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbApAQCAtMCwwICsxLDU2IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKy8vIEJlY2F1c2UgdGhlIHByaW1hcnkgYnV0dG9uIGlzIGFsd2F5cyBndWFyYW50
ZWVkIHRvIGJlIHByZXNlbnQsIGFuZCBvdGhlciBidXR0b25zCisvLyBzaG91bGQgZnVsZmlsbCB0
aGUgcm9sZSBvZiB2YWxpZGF0aW5nIGFueSBzdGF0ZSBmcm9tIEZha2VYUkJ1dHRvblN0YXRlSW5p
dAorLy8gdGhlIHByaW1hcnkgYnV0dG9uIGlzIG5vdCBwcmVzZW50IGluIHRoaXMgZW51bS4KK1sK
KyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBl
bnVtIEZha2VYUkJ1dHRvblR5cGUgeworICAgICJncmlwIiwKKyAgICAidG91Y2hwYWQiLAorICAg
ICJ0aHVtYnN0aWNrIiwKKyAgICAvLyBSZXByZXNlbnRzIGEgYnV0dG9uIHdob3NlIHBvc2l0aW9u
IGlzIG5vdCBzcGVjaWZpZWQgYnkgdGhlIHhyLXN0YW5kYXJkIG1hcHBpbmcuCisgICAgLy8gU2hv
dWxkIGFwcGVhciBhdCBvbmUgcGFzdCB0aGUgbGFzdCByZXNlcnZlZCBidXR0b24gaW5kZXguCisg
ICAgIm9wdGlvbmFsLWJ1dHRvbiIsCisgICAgLy8gUmVwcmVzZW50cyBhIHRodW1ic3RpY2sgd2hv
c2UgcG9zaXRpb24gaXMgbm90IHNwZWNpZmllZCBieSB0aGUgeHItc3RhbmRhcmQgbWFwcGluZy4K
KyAgICAvLyBTaG91bGQgYXBwZWFyIGF0IHR3byBwYXN0IHRoZSBsYXN0IHJlc2VydmVkIGJ1dHRv
biBpbmRleC4KKyAgICAib3B0aW9uYWwtdGh1bWJzdGljayIKK307CisKKy8vIFVzZWQgdG8gdXBk
YXRlIHRoZSBzdGF0ZSBvZiBvcHRpb25hbGx5IHN1cHBvcnRlZCBidXR0b25zLgorWworICAgIEVu
YWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25h
cnkgRmFrZVhSQnV0dG9uU3RhdGVJbml0IHsKKyAgICByZXF1aXJlZCBGYWtlWFJCdXR0b25UeXBl
IGJ1dHRvblR5cGU7CisgICAgcmVxdWlyZWQgYm9vbGVhbiBwcmVzc2VkOworICAgIHJlcXVpcmVk
IGJvb2xlYW4gdG91Y2hlZDsKKyAgICByZXF1aXJlZCBmbG9hdCBwcmVzc2VkVmFsdWU7CisgICAg
Ly8geCBhbmQgeSB2YWx1ZSBhcmUgaWdub3JlZCBpZiB0aGUgRmFrZVhSQnV0dG9uVHlwZSBpcyBu
b3QgdG91Y2hwYWQsIHRodW1ic3RpY2ssIG9yIG9wdGlvbmFsLXRodW1ic3RpY2sKKyAgICBmbG9h
dCB4VmFsdWUgPSAwLjA7CisgICAgZmxvYXQgeVZhbHVlID0gMC4wOworfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmggYi9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVjNDJh
NGIzMTAwMTgyYjMwZTM0MzFlZjBhNDhkOWUxNjI4OTg0MGEKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5oCkBAIC0wLDAgKzEs
NTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmlu
YXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRl
ZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAq
IDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUg
Zm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
ICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGgg
dGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQ
UExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJF
U1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywK
KyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNT
IEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5U
IFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBB
TlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgor
ICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0Yg
VVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAq
IENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5D
RSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0Yg
VEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0Yg
U1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisK
KyNpbmNsdWRlICJGYWtlWFJCdXR0b25TdGF0ZUluaXQuaCIKKyNpbmNsdWRlICJGYWtlWFJSaWdp
ZFRyYW5zZm9ybUluaXQuaCIKKyNpbmNsdWRlICJYUkV5ZS5oIgorI2luY2x1ZGUgIlhSSGFuZGVk
bmVzcy5oIgorI2luY2x1ZGUgIlhSVGFyZ2V0UmF5TW9kZS5oIgorI2luY2x1ZGUgPHd0Zi9WZWN0
b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRmFrZVhSSW5wdXRTb3VyY2VJ
bml0IHsKKyAgICBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzczsKKyAgICBYUlRhcmdldFJheU1vZGUg
dGFyZ2V0UmF5TW9kZTsKKyAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgcG9pbnRlck9yaWdp
bjsKKyAgICBWZWN0b3I8U3RyaW5nPiBwcm9maWxlczsKKyAgICBib29sIHNlbGVjdGlvblN0YXJ0
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgc2VsZWN0aW9uQ2xpY2tlZCB7IGZhbHNlIH07CisgICAg
VmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4gc3VwcG9ydGVkQnV0dG9uczsKKyAgICBGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQgZ3JpcE9yaWdpbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWY4ZTkxNjBlYTE0
ODBhOWI0MDZjMThjMTY2ZDc1NjExOTllMTA5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsCkBAIC0wLDAgKzEsNDQgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSSW5wdXRTb3VyY2VJbml0IHsKKyAgICBy
ZXF1aXJlZCBYUkhhbmRlZG5lc3MgaGFuZGVkbmVzczsKKyAgICByZXF1aXJlZCBYUlRhcmdldFJh
eU1vZGUgdGFyZ2V0UmF5TW9kZTsKKyAgICByZXF1aXJlZCBGYWtlWFJSaWdpZFRyYW5zZm9ybUlu
aXQgcG9pbnRlck9yaWdpbjsKKyAgICByZXF1aXJlZCBzZXF1ZW5jZTxET01TdHJpbmc+IHByb2Zp
bGVzOworICAgIC8vIHdhcyB0aGUgcHJpbWFyeSBhY3Rpb24gcHJlc3NlZCB3aGVuIHRoaXMgd2Fz
IGNvbm5lY3RlZD8KKyAgICBib29sZWFuIHNlbGVjdGlvblN0YXJ0ZWQgPSBmYWxzZTsKKyAgICAv
LyBzaG91bGQgdGhpcyBpbnB1dCBzb3VyY2Ugc2VuZCBhIHNlbGVjdCBpbW1lZGlhdGVseSB1cG9u
IGNvbm5lY3Rpb24/CisgICAgYm9vbGVhbiBzZWxlY3Rpb25DbGlja2VkID0gZmFsc2U7CisgICAg
Ly8gSW5pdGlhbCBidXR0b24gc3RhdGUgZm9yIGFueSBidXR0b25zIGJleW9uZCB0aGUgcHJpbWFy
eSB0aGF0IGFyZSBzdXBwb3J0ZWQuCisgICAgLy8gSWYgZW1wdHksIG9ubHkgdGhlIHByaW1hcnkg
YnV0dG9uIGlzIHN1cHBvcnRlZC4KKyAgICAvLyBOb3RlIHRoYXQgaWYgYW55IEZha2VYUkJ1dHRv
blR5cGUgaXMgcmVwZWF0ZWQgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKyAgICBzZXF1ZW5j
ZTxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+IHN1cHBvcnRlZEJ1dHRvbnM7CisgICAgLy8gSWYgbm90
IHNldCB0aGUgY29udHJvbGxlciBpcyBhc3N1bWVkIHRvIG5vdCBiZSB0cmFja2VkLgorICAgIEZh
a2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlwT3JpZ2luOworfTsKXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzE4MzI5MzgyYmIwMWU0NGVmZGIzNTNjNTVkOTVjNTdm
YmIwMmFjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJS
aWdpZFRyYW5zZm9ybUluaXQuaApAQCAtMCwwICsxLDQxIEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFn
bWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQg
eworICAgIFZlY3RvcjxmbG9hdD4gcG9zaXRpb247CisgICAgVmVjdG9yPGZsb2F0PiBvcmllbnRh
dGlvbjsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFu
c2Zvcm1Jbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYzJjNzUxMWZkYTUzMDBmMGY4YTZjNWFiNWVjODI2OTk2
OWMyNTM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJS
aWdpZFRyYW5zZm9ybUluaXQuaWRsCkBAIC0wLDAgKzEsMzUgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8g
aHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jeHJyaWdpZHRyYW5zZm9ybQor
WworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitd
IGRpY3Rpb25hcnkgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHsKKyAgICAvLyBtdXN0IGhhdmUg
dGhyZWUgZWxlbWVudHMKKyAgICByZXF1aXJlZCBzZXF1ZW5jZTxmbG9hdD4gcG9zaXRpb247Cisg
ICAgLy8gbXVzdCBoYXZlIGZvdXIgZWxlbWVudHMKKyAgICByZXF1aXJlZCBzZXF1ZW5jZTxmbG9h
dD4gb3JpZW50YXRpb247Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9G
YWtlWFJWaWV3SW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZmNTcwMThlODhhZjNjNjFiMGYwNzc5MDdjOGMxMGE3MGU2NTdiZGUKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmgK
QEAgLTAsMCArMSw1NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgIkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oIgorI2luY2x1
ZGUgIlhSRXllLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3BhY2UgV2ViQ29y
ZSB7CisKK3N0cnVjdCBGYWtlWFJWaWV3SW5pdCB7CisgICAgc3RydWN0IERldmljZVJlc29sdXRp
b24geworICAgICAgICBpbnQgd2lkdGg7CisgICAgICAgIGludCBoZWlnaHQ7CisgICAgfTsKKyAg
ICBzdHJ1Y3QgRmllbGRPZlZpZXdJbml0IHsKKyAgICAgICAgZmxvYXQgdXBEZWdyZWVzOworICAg
ICAgICBmbG9hdCBkb3duRGVncmVlczsKKyAgICAgICAgZmxvYXQgbGVmdERlZ3JlZXM7CisgICAg
ICAgIGZsb2F0IHJpZ2h0RGVncmVlczsKKyAgICB9OworCisgICAgWFJFeWUgZXllOworICAgIFZl
Y3RvcjxmbG9hdD4gcHJvamVjdGlvbk1hdHJpeDsKKyAgICBEZXZpY2VSZXNvbHV0aW9uIHJlc29s
dXRpb247CisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHZpZXdPZmZzZXQ7CisgICAgRmll
bGRPZlZpZXdJbml0IGZpZWxkT2ZWaWV3OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQor
CisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9GYWtlWFJWaWV3SW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZp
ZXdJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODRhNjUyOTJiMGQyZGQ5MjcwY2I2ZDU3ZWRiNTkyN2M0
MDQxYzNiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJW
aWV3SW5pdC5pZGwKQEAgLTAsMCArMSw2NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJ
Z2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBUaGlzIHJlcHJl
c2VudHMgdGhlIG5hdGl2ZSByZXNvbHV0aW9uIG9mIHRoZSBkZXZpY2UsIGJ1dCBtYXkgbm90IHJl
ZmxlY3QgdGhlIHZpZXdwb3J0IGV4cG9zZWQgdG8gdGhlIHBhZ2UuCisvLyBodHRwczovL2ltbWVy
c2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cnZpZXdwb3J0CitbCisgICAgRW5hYmxlZEF0UnVu
dGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJE
ZXZpY2VSZXNvbHV0aW9uIHsKKyAgICByZXF1aXJlZCBsb25nIHdpZHRoOworICAgIHJlcXVpcmVk
IGxvbmcgaGVpZ2h0OworfTsKKworLy8gQSBzZXQgb2YgNCBhbmdsZXMgd2hpY2ggZGVzY3JpYmUg
dGhlIHZpZXcgZnJvbSBhIGNlbnRlciBwb2ludCwgdW5pdHMgYXJlIGRlZ3JlZXMuCitbCisgICAg
RW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlv
bmFyeSBGYWtlWFJGaWVsZE9mVmlld0luaXQgeworICAgIHJlcXVpcmVkIGZsb2F0IHVwRGVncmVl
czsKKyAgICByZXF1aXJlZCBmbG9hdCBkb3duRGVncmVlczsKKyAgICByZXF1aXJlZCBmbG9hdCBs
ZWZ0RGVncmVlczsKKyAgICByZXF1aXJlZCBmbG9hdCByaWdodERlZ3JlZXM7Cit9OworCisvLyBo
dHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cnZpZXcKK1sKKyAgICBFbmFi
bGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5
IEZha2VYUlZpZXdJbml0IHsKKyAgICByZXF1aXJlZCBYUkV5ZSBleWU7CisgICAgLy8gaHR0cHM6
Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jdmlldy1wcm9qZWN0aW9uLW1hdHJpeAor
ICAgIHJlcXVpcmVkIHNlcXVlbmNlPGZsb2F0PiBwcm9qZWN0aW9uTWF0cml4OworICAgIC8vIGh0
dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI2RvbS14cndlYmdsbGF5ZXItZ2V0
dmlld3BvcnQKKyAgICByZXF1aXJlZCBGYWtlWFJEZXZpY2VSZXNvbHV0aW9uIHJlc29sdXRpb247
CisgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jdmlldy1vZmZz
ZXQKKyAgICAvLyBUaGlzIGlzIHRoZSBvcmlnaW4gb2YgdGhlIHZpZXcgaW4gdGhlIHZpZXdlciBz
cGFjZS4gSW4gb3RoZXIgd29yZHMsIHRoaXMgaXMKKyAgICAvLyBhIHRyYW5zZm9ybSBmcm9tIHRo
ZSB2aWV3IHNwYWNlIHRvIHRoZSB2aWV3ZXIgc3BhY2UuCisgICAgcmVxdWlyZWQgRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0IHZpZXdPZmZzZXQ7CisgICAgLy8gVGhpcyBpcyBhbiBvcHRpb25hbCBt
ZWFucyBvZiBzcGVjaWZ5aW5nIGEgZGVjb21wb3NlZCBmb3JtIG9mIHRoZSBwcm9qZWN0aW9uCisg
ICAgLy8gbWF0cml4LiAgSWYgc3BlY2lmaWVkLCB0aGUgcHJvamVjdGlvbk1hdHJpeCBzaG91bGQg
YmUgaWdub3JlZC4KKyAgICAvLyBBbnkgdGVzdCB0aGF0IHdpc2hlcyB0byB0ZXN0IGNsaXAgcGxh
bmVzIG9yIHNpbWlsYXIgZmVhdHVyZXMgdGhhdCB3b3VsZCByZXF1aXJlCisgICAgLy8gZGVjb21w
b3NpbmcvcmVjb21wb3NpbmcgdGhlIHByb2plY3Rpb25NYXRyaXggc2hvdWxkIHVzZSB0aGlzIGlu
c3RlYWQgb2YKKyAgICAvLyB0aGUgcHJvamVjdGlvbiBtYXRyaXguCisgICAgRmFrZVhSRmllbGRP
ZlZpZXdJbml0IGZpZWxkT2ZWaWV3OworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvSW50ZXJuYWxzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNw
cAppbmRleCBiYzVmZWQzNzQ3NjkwY2Y3NmE3MDQ3OWI5MWRlNDM4ZDY0ZDZiOWJjLi5kZGY0NDA5
MTdkNWJhNTI2ZGU2MTkyNGJkMWU2MGNhOTNhYzk4NTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9J
bnRlcm5hbHMuY3BwCkBAIC0zMDksNiArMzA5LDEyIEBACiAjaW5jbHVkZSAiUGF5bWVudENvb3Jk
aW5hdG9yLmgiCiAjZW5kaWYKIAorI2lmIEVOQUJMRShXRUJYUikKKyNpbmNsdWRlICJOYXZpZ2F0
b3JXZWJYUi5oIgorI2luY2x1ZGUgIldlYlhSU3lzdGVtLmgiCisjaW5jbHVkZSAiV2ViWFJUZXN0
LmgiCisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKE1BQykgJiYgVVNFKExJQldFQlJUQykKICNpbmNs
dWRlIDx3ZWJydGMvc2RrL1dlYktpdC9WaWRlb1Byb2Nlc3NpbmdTb2Z0TGluay5oPgogI2VuZGlm
CkBAIC01NjM0LDQgKzU2NDAsMzAgQEAgYm9vbCBJbnRlcm5hbHM6OmRlc3Ryb3lTbGVlcERpc2Fi
bGVyKHVuc2lnbmVkIGlkZW50aWZpZXIpCiAgICAgcmV0dXJuIG1fc2xlZXBEaXNhYmxlcnMucmVt
b3ZlKGlkZW50aWZpZXIpOwogfQogCisjaWYgRU5BQkxFKFdFQlhSKQorCitFeGNlcHRpb25PcjxS
ZWZQdHI8V2ViWFJUZXN0Pj4gSW50ZXJuYWxzOjp4clRlc3QoKQoreworICAgIGlmICghUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJYUkVuYWJsZWQoKSkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAgaWYgKCFt
X3hyVGVzdCkgeworICAgICAgICBpZiAoIWNvbnRleHREb2N1bWVudCgpIHx8ICFjb250ZXh0RG9j
dW1lbnQoKS0+ZG9tV2luZG93KCkpCisgICAgICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52
YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICAgICAgYXV0byogbmF2aWdhdG9yID0gY29udGV4dERv
Y3VtZW50KCktPmRvbVdpbmRvdygpLT5vcHRpb25hbE5hdmlnYXRvcigpOworICAgICAgICBpZiAo
IW5hdmlnYXRvcikKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNz
RXJyb3IgfTsKKworICAgICAgICBhdXRvJiBuYXZpZ2F0b3JYUiA9IE5hdmlnYXRvcldlYlhSOjpm
cm9tKCpuYXZpZ2F0b3IpOworICAgICAgICBhdXRvJiB4clN5c3RlbSA9IG5hdmlnYXRvclhSLnhy
KCpzY3JpcHRFeGVjdXRpb25Db250ZXh0KCksICpuYXZpZ2F0b3IpOworCisgICAgICAgIG1feHJU
ZXN0ID0gV2ViWFJUZXN0OjpjcmVhdGUobWFrZVdlYWtQdHIoJnhyU3lzdGVtKSk7CisgICAgfQor
ICAgIHJldHVybiBtX3hyVGVzdC5nZXQoKTsKK30KKworI2VuZGlmCisKKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
aCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKaW5kZXggNzQwZjIwMzkwNGIy
ZWFiM2NkNzk2MzQ4MGNmYjYxNTM5YWY4ZDU1Yi4uMDIyMTE5N2RiYTVkNzExZTU5MGYwNmU0OWE5
NDVlM2Q2MThlZjQxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCkBAIC0xMTYsNiAr
MTE2LDEwIEBAIGNsYXNzIFRleHRUcmFja0N1ZUdlbmVyaWM7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
OwogI2VuZGlmCiAKKyNpZiBFTkFCTEUoV0VCWFIpCitjbGFzcyBXZWJYUlRlc3Q7CisjZW5kaWYK
KwogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwog
CiBzdHJ1Y3QgTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbjsKQEAgLTk5OSw2ICsx
MDAzLDEwIEBAIHB1YmxpYzoKICAgICB1bnNpZ25lZCBjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0
IFN0cmluZyYgcmVhc29uLCBib29sIGRpc3BsYXkpOwogICAgIGJvb2wgZGVzdHJveVNsZWVwRGlz
YWJsZXIodW5zaWduZWQgaWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgRXhj
ZXB0aW9uT3I8UmVmUHRyPFdlYlhSVGVzdD4+IHhyVGVzdCgpOworI2VuZGlmCisKIHByaXZhdGU6
CiAgICAgZXhwbGljaXQgSW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRl
eHREb2N1bWVudCgpIGNvbnN0OwpAQCAtMTAyMyw2ICsxMDMxLDEwIEBAIHByaXZhdGU6CiAgICAg
UmVmUHRyPENhY2hlU3RvcmFnZUNvbm5lY3Rpb24+IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsK
IAogICAgIEhhc2hNYXA8dW5zaWduZWQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERp
c2FibGVyPj4gbV9zbGVlcERpc2FibGVyczsKKworI2lmIEVOQUJMRShXRUJYUikKKyAgICBSZWZQ
dHI8V2ViWFJUZXN0PiBtX3hyVGVzdDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IGIxMWNlOTBkNzAzZjIz
ZmFiYjEzMTVjYWI5ZGU5NTQ2YmM0Y2I5NTAuLmM5YTQ3MjgxODE0ZjVmY2Y3MDRiY2EwNzhlNzY1
MjA0YjEzNWQxMTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxz
LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkwNCw0
ICs5MDQsNiBAQCBlbnVtIENvbXBvc2l0aW5nUG9saWN5IHsKIAogICAgIHVuc2lnbmVkIGxvbmcg
Y3JlYXRlU2xlZXBEaXNhYmxlcihET01TdHJpbmcgcmVhc29uLCBib29sZWFuIGRpc3BsYXkpOwog
ICAgIGJvb2xlYW4gZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgbG9uZyBpZGVudGlmaWVy
KTsKKworICAgIFtDb25kaXRpb25hbD1XRUJYUiwgTWF5VGhyb3dFeGNlcHRpb25dIHJlYWRvbmx5
IGF0dHJpYnV0ZSBXZWJYUlRlc3QgeHJUZXN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSRGV2aWNlLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lN2JhZDIyYWZkYTU0YmY4YjA4YTU0MzI3
N2UxYTJhOGE2Y2Y0NGI3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9XZWJGYWtlWFJEZXZpY2UuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lu
Y2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZha2VYUkRldmljZS5oIgorCisjaWYgRU5B
QkxFKFdFQlhSKQorCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRl
ICJXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Vmlld3MoVmVjdG9yPEZha2VYUlZpZXdJbml0PikKK3sK
K30KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OmRpc2Nvbm5lY3QoRE9NUHJvbWlzZURlZmVycmVk
PHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKK30KKwordm9pZCBX
ZWJGYWtlWFJEZXZpY2U6OnNldFZpZXdlck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQg
b3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKG9yaWdp
bik7CisgICAgVU5VU0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lkIFdlYkZh
a2VYUkRldmljZTo6Y2xlYXJWaWV3ZXJPcmlnaW4oKQoreworfQorCit2b2lkIFdlYkZha2VYUkRl
dmljZTo6c2ltdWxhdGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRlKQoreworfQor
Cit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Qm91bmRzR2VvbWV0cnkoVmVjdG9yPEZha2VYUkJv
dW5kc1BvaW50PikKK3sKK30KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNldEZsb29yT3JpZ2lu
KEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6
OmNsZWFyRmxvb3JPcmlnaW4oKQoreworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2ltdWxh
dGVSZXNldFBvc2UoKQoreworfQorCitXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgV2ViRmFrZVhS
RGV2aWNlOjpzaW11bGF0ZUlucHV0U291cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUlu
aXQpCit7CisgICAgcmV0dXJuIFdlYkZha2VYUklucHV0Q29udHJvbGxlcigpOworfQorCit9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjAwMzBlMzg0Njg5YTUz
OTZlODdlZmJmODIyYWZlM2Q2N2RiNGM5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29w
eXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0
aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNl
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
CisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMg
Q09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBX
QVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFS
CisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJF
Q1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwg
REFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisg
KiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJP
RklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9O
IEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQor
ICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVW
RU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhS
Qm91bmRzUG9pbnQuaCIKKyNpbmNsdWRlICJGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCIKKyNpbmNs
dWRlICJGYWtlWFJWaWV3SW5pdC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgi
CisjaW5jbHVkZSAiV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiWFJWaXNp
YmlsaXR5U3RhdGUuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0
Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJGYWtlWFJEZXZp
Y2UgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGYWtlWFJEZXZpY2U+IHsKK3B1YmxpYzoKKyAgICB2
b2lkIHNldFZpZXdzKFZlY3RvcjxGYWtlWFJWaWV3SW5pdD4pOworCisgICAgdm9pZCBkaXNjb25u
ZWN0KERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgc2V0Vmlld2VyT3Jp
Z2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlv
biA9IGZhbHNlKTsKKworICAgIHZvaWQgY2xlYXJWaWV3ZXJPcmlnaW4oKTsKKworICAgIHZvaWQg
c2ltdWxhdGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRlKTsKKworICAgIHZvaWQg
c2V0Qm91bmRzR2VvbWV0cnkoVmVjdG9yPEZha2VYUkJvdW5kc1BvaW50PiBib3VuZHNDb29yZGlu
YXRlcyk7CisKKyAgICB2b2lkIHNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5p
dCk7CisKKyAgICB2b2lkIGNsZWFyRmxvb3JPcmlnaW4oKTsKKworICAgIHZvaWQgc2ltdWxhdGVS
ZXNldFBvc2UoKTsKKworICAgIFdlYkZha2VYUklucHV0Q29udHJvbGxlciBzaW11bGF0ZUlucHV0
U291cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpOworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0YTczNmY2ZjBjZTY3OWFj
ZTM1NzRjOGMyZjY1ZTZlMmQ4YzY1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5pZGwKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJY
UiwKKyAgICBJbnRlcmZhY2VOYW1lPUZha2VYUkRldmljZSwKKyAgICBJbXBsZW1lbnRhdGlvbkxh
Y2tzVlRhYmxlLAorXSBpbnRlcmZhY2UgV2ViRmFrZVhSRGV2aWNlIHsKKyAgLy8gU2V0cyB0aGUg
dmFsdWVzIHRvIGJlIHVzZWQgZm9yIHN1YnNlcXVlbnQKKyAgLy8gcmVxdWVzdEFuaW1hdGlvbkZy
YW1lKCkgY2FsbGJhY2tzLgorICB2b2lkIHNldFZpZXdzKHNlcXVlbmNlPEZha2VYUlZpZXdJbml0
PiB2aWV3cyk7CisKKyAgLy8gYmVoYXZlcyBhcyBpZiBkZXZpY2Ugd2FzIGRpc2Nvbm5lY3RlZAor
ICBQcm9taXNlPHZvaWQ+IGRpc2Nvbm5lY3QoKTsKKworICAvLyBTZXRzIHRoZSBvcmlnaW4gb2Yg
dGhlIHZpZXdlcgorICB2b2lkIHNldFZpZXdlck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUlu
aXQgb3JpZ2luLCBvcHRpb25hbCBib29sZWFuIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisK
KyAgLy8gSWYgYW4gb3JpZ2luIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gdGhlIGRldmljZSBpcyBh
c3N1bWVkIHRvIG5vdCBiZSB0cmFja2luZywgZW11bGF0ZWRQb3NpdGlvbiBzaG91bGQKKyAgLy8g
YmUgYXNzdW1lZCBmb3IgY2FzZXMgd2hlcmUgdGhlIFVBIG11c3QgYWx3YXlzIHByb3ZpZGUgYSBw
b3NlLgorICB2b2lkIGNsZWFyVmlld2VyT3JpZ2luKCk7CisKKyAgLy8gU2ltdWxhdGVzIGRldmlj
ZXMgZm9jdXNpbmcgYW5kIGJsdXJyaW5nIHNlc3Npb25zLgorICB2b2lkIHNpbXVsYXRlVmlzaWJp
bGl0eUNoYW5nZShYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUpOworCisgIHZvaWQg
c2V0Qm91bmRzR2VvbWV0cnkoc2VxdWVuY2U8RmFrZVhSQm91bmRzUG9pbnQ+IGJvdW5kc0Nvb3Jk
aW5hdGVzKTsKKyAgLy8gU2V0cyB0aGUgbmF0aXZlIG9yaWdpbiBvZiB0aGUgcGh5c2ljYWwgZmxv
b3IKKyAgdm9pZCBzZXRGbG9vck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZmxvb3JP
cmlnaW4pOworCisgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgY2FuIG5vIGxvbmdlciBp
ZGVudGlmeSB0aGUgbG9jYXRpb24gb2YgdGhlIHBoeXNpY2FsIGZsb29yLgorICB2b2lkIGNsZWFy
Rmxvb3JPcmlnaW4oKTsKKworICAvLyBVc2VkIHRvIHNpbXVsYXRlIGEgbWFqb3IgY2hhbmdlIGlu
IHRyYWNraW5nIGFuZCB0aGF0IGEgcmVzZXQgcG9zZSBldmVudCBzaG91bGQgYmUgZmlyZWQKKyAg
Ly8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZXZlbnQtdHlwZXMKKyAg
dm9pZCBzaW11bGF0ZVJlc2V0UG9zZSgpOworCisgIC8vIFVzZWQgdG8gY29ubmVjdCBhbmQgc2Vu
ZCBpbnB1dCBldmVudHMKKyAgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIHNpbXVsYXRlSW5wdXRT
b3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCBpbnB1dFNvdXJjZSk7Cit9Owpc
IE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTBjOTg3MGJiNDhj
NTFjZTg1NWE1YWUyZmIyYTM2NzFjYTcxNmIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsOTEg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZha2VY
UklucHV0Q29udHJvbGxlci5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2Vi
Q29yZSB7CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRIYW5kZWRuZXNzKFhS
SGFuZGVkbmVzcykKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFRh
cmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2RlKQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6c2V0UHJvZmlsZXMoVmVjdG9yPFN0cmluZz4pCit7Cit9CisKK3ZvaWQgV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRHcmlwT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdCBncmlwT3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24pCit7CisgICAgVU5VU0VEX1BB
UkFNKGdyaXBPcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShlbXVsYXRlZFBvc2l0aW9uKTsKK30K
Kwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmNsZWFyR3JpcE9yaWdpbigpCit7Cit9
CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQb2ludGVyT3JpZ2luKEZha2VY
UlJpZ2lkVHJhbnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24p
Cit7CisgICAgVU5VU0VEX1BBUkFNKHBvaW50ZXJPcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShl
bXVsYXRlZFBvc2l0aW9uKTsKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmRp
c2Nvbm5lY3QoKQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6cmVjb25u
ZWN0KCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnN0YXJ0U2VsZWN0
aW9uKCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmVuZFNlbGVjdGlv
bigpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVj
dCgpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRTdXBwb3J0ZWRC
dXR0b25zKFZlY3RvcjxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+KQoreworfQorCit2b2lkIFdlYkZh
a2VYUklucHV0Q29udHJvbGxlcjo6dXBkYXRlQnV0dG9uU3RhdGUoRmFrZVhSQnV0dG9uU3RhdGVJ
bml0KQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0
Q29udHJvbGxlci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYWIxOWNmYTAwYzUzZjRhMjVkZTk3N2QxZDBkMjJiZDlkMjdh
ZDBmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJ
bnB1dENvbnRyb2xsZXIuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEg
b25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhSQnV0dG9uU3RhdGVJ
bml0LmgiCisjaW5jbHVkZSAiRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgiCisjaW5jbHVkZSAi
WFJIYW5kZWRuZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8
d3RmL1JlZkNvdW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworY2xhc3MgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIDogcHVibGljIFJlZkNv
dW50ZWQ8V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyPiB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRI
YW5kZWRuZXNzKFhSSGFuZGVkbmVzcyk7CisKKyAgICB2b2lkIHNldFRhcmdldFJheU1vZGUoWFJU
YXJnZXRSYXlNb2RlKTsKKworICAgIHZvaWQgc2V0UHJvZmlsZXMoVmVjdG9yPFN0cmluZz4pOwor
CisgICAgdm9pZCBzZXRHcmlwT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlwT3Jp
Z2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisKKyAgICB2b2lkIGNsZWFyR3Jp
cE9yaWdpbigpOworCisgICAgdm9pZCBzZXRQb2ludGVyT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNm
b3JtSW5pdCBwb2ludGVyT3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisK
KyAgICB2b2lkIGRpc2Nvbm5lY3QoKTsKKworICAgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAgICB2
b2lkIHN0YXJ0U2VsZWN0aW9uKCk7CisKKyAgICB2b2lkIGVuZFNlbGVjdGlvbigpOworCisgICAg
dm9pZCBzaW11bGF0ZVNlbGVjdCgpOworCisgICAgdm9pZCBzZXRTdXBwb3J0ZWRCdXR0b25zKFZl
Y3RvcjxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+KTsKKworICAgIHZvaWQgdXBkYXRlQnV0dG9uU3Rh
dGUoRmFrZVhSQnV0dG9uU3RhdGVJbml0KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWZkMGNlNDU4YmY1
ZDM0OTU0OGJkMGZkYzU2OGE0NWVjYmM2Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsCkBAIC0wLDAgKzEsNzYg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRl
cmZhY2VOYW1lPUZha2VYUklucHV0Q29udHJvbGxlcgorXSBpbnRlcmZhY2UgV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyIHsKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgaGFuZGVkbmVzcyBvZiB0
aGUgZGV2aWNlIGhhcyBjaGFuZ2VkLgorICAgIHZvaWQgc2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5l
c3MgaGFuZGVkbmVzcyk7CisKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgdGFyZ2V0IHJheSBt
b2RlIG9mIHRoZSBkZXZpY2UgaGFzIGNoYW5nZWQuCisgICAgdm9pZCBzZXRUYXJnZXRSYXlNb2Rl
KFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKTsKKworICAgIC8vIEluZGljYXRlcyB0aGF0
IHRoZSBsaXN0IG9mIHByb2ZpbGVzIHJlcHJlc2VudGluZyB0aGUgZGV2aWNlIGhhcyBjaGFuZ2Vk
LgorICAgIHZvaWQgc2V0UHJvZmlsZXMoc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm9maWxlcyk7CisK
KyAgICAvLyBTZXRzIG9yIGNsZWFycyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2xsZXIuICBJ
ZiBub3Qgc2V0LCB0aGUgY29udHJvbGxlciBpcyBhc3N1bWVkIHRvCisgICAgLy8gbm90IGJlIHRy
YWNrZWQuCisgICAgdm9pZCBzZXRHcmlwT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBn
cmlwT3JpZ2luLCBvcHRpb25hbCBib29sZWFuIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7Cisg
ICAgdm9pZCBjbGVhckdyaXBPcmlnaW4oKTsKKworICAgIC8vIFNldHMgdGhlIHBvaW50ZXIgb3Jp
Z2luIGZvciB0aGUgY29udHJvbGxlci4KKyAgICB2b2lkIHNldFBvaW50ZXJPcmlnaW4oRmFrZVhS
UmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIG9wdGlvbmFsIGJvb2xlYW4gZW11bGF0
ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKworICAgIC8vIFRlbXBvcmFyaWx5IGRpc2Nvbm5lY3QgdGhl
IGlucHV0IGRldmljZQorICAgIHZvaWQgZGlzY29ubmVjdCgpOworCisgICAgLy8gUmVjb25uZWN0
IGEgZGlzY29ubmVjdGVkIGlucHV0IGRldmljZQorICAgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAg
ICAvLyBTdGFydCBhIHNlbGVjdGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUgcHJp
bWFyeSBpbnB1dAorICAgIC8vIElmIGEgZ2FtZXBhZCBpcyBzdXBwb3J0ZWQsIHNob3VsZCB1cGRh
dGUgdGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGJ1dHRvbiBhY2NvcmRpbmdseS4KKyAgICB2b2lk
IHN0YXJ0U2VsZWN0aW9uKCk7CisKKyAgICAvLyBFbmQgc2VsZWN0aW9uIGZvciB0aGUgY3VycmVu
dCBmcmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgICAgLy8gSWYgYSBnYW1lcGFkIGlzIHN1
cHBvcnRlZCwgc2hvdWxkIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIHByaW1hcnkgYnV0dG9uIGFj
Y29yZGluZ2x5LgorICAgIHZvaWQgZW5kU2VsZWN0aW9uKCk7CisKKyAgICAvLyBTaW11bGF0ZXMg
YSBzdGFydC9lbmRTZWxlY3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhlIHByaW1h
cnkgaW5wdXQKKyAgICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBzaG91bGQgdXBkYXRl
IHRoZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHkuCisgICAgdm9pZCBz
aW11bGF0ZVNlbGVjdCgpOworCisgICAgLy8gVXBkYXRlcyB0aGUgc2V0IG9mIHN1cHBvcnRlZCBi
dXR0b25zLCBpbmNsdWRpbmcgYW55IGluaXRpYWwgc3RhdGUuCisgICAgLy8gTm90ZSB0aGF0IHRo
aXMgbWV0aG9kIHNob3VsZCBub3QgYmUgZ2VuZXJhbGx5IHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0
ZSBvZiB0aGUKKyAgICAvLyBidXR0b25zLCBhcyB0aGUgVUEgbWF5IHRyZWF0IHRoaXMgYXMgcmUt
Y3JlYXRpbmcgdGhlIEdhbWVwYWQuCisgICAgLy8gTm90ZSB0aGF0IGlmIGFueSBGYWtlWFJCdXR0
b25UeXBlIGlzIHJlcGVhdGVkIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCisgICAgdm9pZCBz
ZXRTdXBwb3J0ZWRCdXR0b25zKHNlcXVlbmNlPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4gc3VwcG9y
dGVkQnV0dG9ucyk7CisKKyAgICAvLyBVc2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgYSBidXR0
b24gY3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgaW5wdXQgc291cmNlCisgICAgLy8gV2lsbCBu
b3QgYWRkIHN1cHBvcnQgZm9yIHRoYXQgYnV0dG9uIGlmIGl0IGlzIG5vdCBjdXJyZW50bHkgc3Vw
cG9ydGVkLgorICAgIHZvaWQgdXBkYXRlQnV0dG9uU3RhdGUoRmFrZVhSQnV0dG9uU3RhdGVJbml0
IGJ1dHRvblN0YXRlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dl
YlhSVGVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5jcHAKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWNjMmFiNGU0MjhjZGVhMjhjZTZiOTAyMTEwMzYxNDU5ZWFhMDUwNAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmNwcApAQCAtMCwwICsx
LDQ3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJY
UlRlc3QuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2
b2lkIFdlYlhSVGVzdDo6c2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uKEZha2VYUkRldmljZUluaXQs
IFdlYkZha2VYUkRldmljZVByb21pc2UmJikgY29uc3QKK3sKK30KKwordm9pZCBXZWJYUlRlc3Q6
OnNpbXVsYXRlVXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24m
KQoreworfQorCit2b2lkIFdlYlhSVGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViWFJUZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjAzODNmMzc1ZTE4NGRkMzFhZTcyZjAxYTllNTVlMjA2MTYzNGNhNzEKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oCkBAIC0wLDAgKzEsNzkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIldlYkZha2VYUkRldmlj
ZS5oIgorI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNpbmNsdWRlICJYUlNpbXVsYXRlVXNl
ckFjdGl2YXRpb25GdW5jdGlvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFs
dWUuaD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRl
ZC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSU3lzdGVtOworCitjbGFz
cyBXZWJYUlRlc3QgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlRlc3Q+IHsKK3B1YmxpYzoKKyAg
ICBzdHJ1Y3QgRmFrZVhSRGV2aWNlSW5pdCB7CisgICAgICAgIGJvb2wgc3VwcG9ydHNJbW1lcnNp
dmUgeyBmYWxzZSB9OworICAgICAgICBPcHRpb25hbDxWZWN0b3I8WFJTZXNzaW9uTW9kZT4+IHN1
cHBvcnRlZE1vZGVzOworICAgICAgICBWZWN0b3I8RmFrZVhSVmlld0luaXQ+IHZpZXdzOworCisg
ICAgICAgIE9wdGlvbmFsPFZlY3RvcjxKU0M6OkpTVmFsdWU+PiBzdXBwb3J0ZWRGZWF0dXJlczsK
KworICAgICAgICBPcHRpb25hbDxWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+PiBib3VuZHNDb29y
ZGluYXRlczsKKworICAgICAgICBPcHRpb25hbDxGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQ+IGZs
b29yT3JpZ2luOworICAgICAgICBPcHRpb25hbDxGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQ+IHZp
ZXdlck9yaWdpbjsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxXZWJYUlRlc3Q+IGNyZWF0ZShX
ZWFrUHRyPFdlYlhSU3lzdGVtPiYmIHN5c3RlbSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBXZWJY
UlRlc3QoV1RGTW92ZShzeXN0ZW0pKSk7IH0KKworICAgIHVzaW5nIFdlYkZha2VYUkRldmljZVBy
b21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFdlYkZha2VYUkRldmljZT4+
OworICAgIHZvaWQgc2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uKEZha2VYUkRldmljZUluaXQsIFdl
YkZha2VYUkRldmljZVByb21pc2UmJikgY29uc3Q7CisKKyAgICAvLyBTaW11bGF0ZXMgYSB1c2Vy
IGFjdGl2YXRpb24gKGFrYSB1c2VyIGdlc3R1cmUpIGZvciB0aGUgY3VycmVudCBzY29wZS4KKyAg
ICAvLyBUaGUgYWN0aXZhdGlvbiBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgaW4gdGhl
IHByb3ZpZGVkIGZ1bmN0aW9uIGFuZCBvbmx5IGFwcGxpZXMgdG8gV2ViWFIKKyAgICAvLyBEZXZp
Y2UgQVBJIG1ldGhvZHMuCisgICAgdm9pZCBzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKFhSU2ltdWxh
dGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uJik7CisKKyAgICAvLyBEaXNjb25uZWN0IGFsbCBmYWtl
IGRldmljZXMKKyAgICB2b2lkIGRpc2Nvbm5lY3RBbGxEZXZpY2VzKERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKKworcHJpdmF0ZToKKyAgICBXZWJYUlRlc3QoV2Vha1B0cjxXZWJYUlN5c3Rl
bT4mJiBzeXN0ZW0pCisgICAgICAgIDogbV9jb250ZXh0KFdURk1vdmUoc3lzdGVtKSkgeyB9CisK
KyAgICBXZWFrUHRyPFdlYlhSU3lzdGVtPiBtX2NvbnRleHQ7Cit9OworCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dl
YlhSVGVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYyYTU2Mzg5MzYxYmVhMmRiMzJiODE1ZWZiYmQyYzQ5
NjY2ZTQ0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJU
ZXN0LmlkbApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIAorCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBFeHBvcnRNYWNybz1X
RUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJbnRl
cmZhY2VOYW1lPVhSVGVzdCwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorXSBpbnRl
cmZhY2UgV2ViWFJUZXN0IHsKKyAgICAvLyBTaW11bGF0ZXMgY29ubmVjdGluZyBhIGRldmljZSB0
byB0aGUgc3lzdGVtLgorICAgIC8vIFVzZWQgdG8gaW5zdGFudGlhdGUgYSBmYWtlIGRldmljZSBm
b3IgdXNlIGluIHRlc3RzLgorICAgIFByb21pc2U8V2ViRmFrZVhSRGV2aWNlPiBzaW11bGF0ZURl
dmljZUNvbm5lY3Rpb24oRmFrZVhSRGV2aWNlSW5pdCBpbml0KTsKKworICAgIC8vIFNpbXVsYXRl
cyBhIHVzZXIgYWN0aXZhdGlvbiAoYWthIHVzZXIgZ2VzdHVyZSkgZm9yIHRoZSBjdXJyZW50IHNj
b3BlLgorICAgIC8vIFRoZSBhY3RpdmF0aW9uIGlzIG9ubHkgZ3VhcmFudGVlZCB0byBiZSB2YWxp
ZCBpbiB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gYW5kIG9ubHkgYXBwbGllcyB0byBXZWJYUgorICAg
IC8vIERldmljZSBBUEkgbWV0aG9kcy4KKyAgICB2b2lkIHNpbXVsYXRlVXNlckFjdGl2YXRpb24o
WFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gZik7CisKKyAgICAvLyBEaXNjb25uZWN0
IGFsbCBmYWtlIGRldmljZXMKKyAgICBQcm9taXNlPHZvaWQ+IGRpc2Nvbm5lY3RBbGxEZXZpY2Vz
KCk7Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25h
bD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJEZXZpY2VJbml0IHsKKyAgICAvLyBEZXByZWNh
dGVkIC0gdXNlIGBzdXBwb3J0ZWRNb2Rlc2AgaW5zdGVhZC4KKyAgICByZXF1aXJlZCBib29sZWFu
IHN1cHBvcnRzSW1tZXJzaXZlOworICAgIC8vIFNlcXVlbmNlIG9mIG1vZGVzIHRoYXQgc2hvdWxk
IGJlIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZS4KKyAgICBzZXF1ZW5jZTxYUlNlc3Npb25Nb2Rl
PiBzdXBwb3J0ZWRNb2RlczsKKyAgICByZXF1aXJlZCBzZXF1ZW5jZTxGYWtlWFJWaWV3SW5pdD4g
dmlld3M7CisKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNm
ZWF0dXJlLW5hbWUKKyAgICAvLyBUaGUgbGlzdCBvZiBmZWF0dXJlIG5hbWVzIHRoYXQgdGhpcyBk
ZXZpY2Ugc3VwcG9ydHMuCisgICAgLy8gQW55IHJlcXVlc3RzIGZvciBmZWF0dXJlcyBub3QgaW4g
dGhpcyBsaXN0IHNob3VsZCBiZSByZWplY3RlZCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRob3Nl
CisgICAgLy8gdGhhdCBhcmUgZ3VhcmFudGVlZCByZWdhcmRsZXNzIG9mIGRldmljZSBhdmFpbGFi
aWxpdHkgKGUuZy4gJ3ZpZXdlcicpLgorICAgIC8vIElmIG5vdCBzcGVjaWZpZWQvZW1wdHksIHRo
ZSBkZXZpY2Ugc3VwcG9ydHMgbm8gZmVhdHVyZXMuCisgICAgLy8gTk9URTogVGhpcyBpcyBtZWFu
dCB0byBlbXVsYXRlIGhhcmR3YXJlIHN1cHBvcnQsIG5vdCB3aGV0aGVyIGEgZmVhdHVyZSBpcwor
ICAgIC8vIGN1cnJlbnRseSBhdmFpbGFibGUgKGUuZy4gYm91bmRzIG5vdCBiZWluZyB0cmFja2Vk
IHBlciBiZWxvdykKKyAgICBzZXF1ZW5jZTxhbnk+IHN1cHBvcnRlZEZlYXR1cmVzOworCisgICAg
Ly8gVGhlIGJvdW5kcyBjb29yZGluYXRlcy4gSWYgZW1wdHksIG5vIGJvdW5kZWQgcmVmZXJlbmNl
IHNwYWNlIGlzIGN1cnJlbnRseSB0cmFja2VkLgorICAgIC8vIElmIG5vdCwgbXVzdCBoYXZlIGF0
IGxlYXN0IHRocmVlIGVsZW1lbnRzLgorICAgIHNlcXVlbmNlPEZha2VYUkJvdW5kc1BvaW50PiBi
b3VuZHNDb29yZGluYXRlczsKKworICAgIC8vIEEgdHJhbnNmb3JtIHVzZWQgdG8gaWRlbnRpZnkg
dGhlIHBoeXNpY2FsIHBvc2l0aW9uIG9mIHRoZSB1c2VyJ3MgZmxvb3IuCisgICAgLy8gSWYgbm90
IHNldCwgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBjYW5ub3QgaWRlbnRpZnkgdGhlIHBoeXNp
Y2FsIGZsb29yLgorICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBmbG9vck9yaWdpbjsKKwor
ICAgIC8vIG5hdGl2ZSBvcmlnaW4gb2YgdGhlIHZpZXdlcgorICAgIC8vIElmIG5vdCBzZXQsIHRo
ZSBkZXZpY2UgaXMgY3VycmVudGx5IGFzc3VtZWQgdG8gbm90IGJlIHRyYWNraW5nLCBhbmQgeHJG
cmFtZS5nZXRWaWV3ZXJQb3NlIHNob3VsZAorICAgIC8vIG5vdCByZXR1cm4gYSBwb3NlLgorICAg
IC8vCisgICAgLy8gVGhpcyBzZXRzIHRoZSB2aWV3ZXIgb3JpZ2luICpzaG9ydGx5IGFmdGVyKiBp
bml0aWFsaXphdGlvbjsgc2luY2UgdGhlIHZpZXdlciBvcmlnaW4gYXQgaW5pdGlhbGl6YXRpb24K
KyAgICAvLyBpcyB1c2VkIHRvIHByb3ZpZGUgYSByZWZlcmVuY2Ugb3JpZ2luIGZvciBhbGwgbWF0
cmljZXMuCisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHZpZXdlck9yaWdpbjsKK307CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZh
dGlvbkZ1bmN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzYjg3MWMyNjEyM2M4MTIwYmY3Njk2ZmZiZDM5
OGEzYmI4YTgyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvWFJT
aW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaApAQCAtMCwwICsxLDQ3IEBACisvKgorICog
Q29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgor
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
CisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiQWN0
aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1ZGUg
PHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJG
cmFtZTsKKworY2xhc3MgWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gOiBwdWJsaWMg
UmVmQ291bnRlZDxYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbj4sIHB1YmxpYyBBY3Rp
dmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6OkFj
dGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBoYW5k
bGVFdmVudChKU0M6OkpTVmFsdWUpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDJlMjJiYTM2YzJjOGM2ZWU3MTk0YWViYWNiYjNiODNhZmE3ZjEwMAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24uaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQor
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25kaXRp
b25hbD1XRUJYUiwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGNhbGxiYWNrIFhSU2lt
dWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uID0gdm9pZCAoYW55Li4uIGFyZ3VtZW50cyk7CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAzMjdmYTQ0NzdjY2VlMmY0NzJiZWVmMDA4
ZTBlNDQ4MWJjYWNmNTE5Li41OThlZDQ4ZTI3MjUzNjU4NTM1YmE1YzFjZDViZjE2NTYyYjM1YzFh
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMC0w
NC0xNiAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAg
ICBbV2ViWFJdIFRlc3QgSURMcyBhbmQgc3R1YnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTg1OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL3Jlc291cmNl
cy93ZWJ4cl91dGlsLmpzOgorICAgICAgICAoeHJfcHJvbWlzZV90ZXN0KTogTWFwIG5hdmlnYXRv
ci54ci50ZXN0ID0gaW50ZXJuYWxzLnhydGVzdC4KKwogMjAyMC0wNC0xNSAgQW50b2luZSBRdWlu
dCAgPGdyYW91dHNAYXBwbGUuY29tPgogCiAgICAgICAgIFtXZWIgQW5pbWF0aW9uc10gQWRkIHN1
cHBvcnQgZm9yIGBwc2V1ZG9FbGVtZW50YCBvbiBgS2V5ZnJhbWVFZmZlY3RgIGFuZCBgS2V5ZnJh
bWVFZmZlY3RPcHRpb25zYApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9yZXNvdXJjZXMvd2VieHJfdXRpbC5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VieHIvcmVzb3VyY2VzL3dlYnhy
X3V0aWwuanMKaW5kZXggNzJhMjFjMGZmMjllMjY2Yzk1MDUxZTI3ODBmNTk0ZDQ0ZGEwNjU2Yi4u
ZWQ1YzQ5OGJjNzcxMzJmM2Y0NzY3Zjc2ODVhZWU5MDQ2MDE1ZWVlNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9yZXNvdXJjZXMv
d2VieHJfdXRpbC5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnhyL3Jlc291cmNlcy93ZWJ4cl91dGlsLmpzCkBAIC0xNSw2ICsxNSwxMiBAQCBm
dW5jdGlvbiB4cl9wcm9taXNlX3Rlc3QobmFtZSwgZnVuYywgcHJvcGVydGllcykgewogICAgICAg
Ly8gQ2hyb21lIHNldHVwCiAgICAgICBhd2FpdCBsb2FkQ2hyb21pdW1SZXNvdXJjZXM7CiAgICAg
fQorICAgIGlmIChzZWxmLmludGVybmFscyAmJiBpbnRlcm5hbHMueHJUZXN0ICYmIG5hdmlnYXRv
ci54cikgeworICAgICAgLy8gV2ViS2l0IHNldHVwLiBUaGUgaW50ZXJuYWxzIG9iamVjdCBpcyB1
c2VkIGJ5IHRoZSBXZWJLaXQgdGVzdCBydW5uZXIKKyAgICAgIC8vIHRvIHByb3ZpZGUgSlMgYWNj
ZXNzIHRvIGludGVybmFsIEFQSXMuIEluIHRoaXMgY2FzZSBpdCdzIHVzZWQgdG8KKyAgICAgIC8v
IGVuc3VyZSB0aGF0IFhSVGVzdCBpcyBvbmx5IGV4cG9zZWQgdG8gd3B0IHRlc3RzLgorICAgICAg
bmF2aWdhdG9yLnhyLnRlc3QgPSBpbnRlcm5hbHMueHJUZXN0OworICAgIH0KIAogICAgIC8vIEVu
c3VyZSB0aGF0IGFueSBkZXZpY2VzIGFyZSBkaXNjb25uZWN0ZWQgd2hlbiBkb25lLiBJZiB0aGlz
IHdlcmUgZG9uZSBpbgogICAgIC8vIGEgLnRoZW4oKSBmb3IgdGhlIHN1Y2Nlc3MgY2FzZSwgYSB0
ZXN0IHRoYXQgZXhwZWN0ZWQgZmFpbHVyZSB3b3VsZAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397078</attachid>
            <date>2020-04-21 07:07:22 -0700</date>
            <delta_ts>2020-04-21 13:16:46 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-209859-20200421160719.patch</filename>
            <type>text/plain</type>
            <size>84661</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNDI0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWRiNmUxOTRlZjAyYWUx
NzYxOWY2NTZhYWJjNWQzNmViNDQ5OGY3ZS4uYjI1YWIzZjc2MWY4YWRjZGM3ZGE0ZThjYjhjOWVl
YWRhY2I3NTYwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg2IEBACisyMDIwLTA0LTE2ICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uIGFu
ZCBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdlYlhSIHRlc3RpbmcgaXMgaGFyZCBhcyBpdCBt
aWdodCBpbnZvbHZlIGludGVyYWN0aW9uIHdpdGggYWN0dWFsCisgICAgICAgIGRldmljZXMuIFRo
YXQncyB3aHkgdGhlIFdlYlhSIHRlc3RpbmcKKyAgICAgICAgQVBJIChodHRwczovL2ltbWVyc2l2
ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLXRlc3QtYXBpLykgd2FzCisgICAgICAgIHByb3Bvc2VkLiBJ
biBmYWN0LCBhbGwgdGhlIGN1cnJlbnQgV2ViWFIgdGVzdHMgZnJvbQorICAgICAgICB3ZWItcGxh
dGZvcm0tdGVzdHMgYXJlIHVzaW5nIHRoYXQgdGVzdGluZyBBUEkuIFRoaXMgbmV3IHRlc3RpbmcK
KyAgICAgICAgQVBJIHN1cHBsZW1lbnRzIG5hdmlnYXRvci54ciBhbmQgaXMgYWNjZXNzZWQgdGhy
b3VnaAorICAgICAgICBuYXZpZ2F0b3IueHIudGVzdC4KKworICAgICAgICBJbiBvcmRlciBub3Qg
dG8gZXhwb3NlIHRoZSBBUEkgdG8gdGhlIHdlYiB3ZSdyZSBhZGRpbmcgdGhlIFhSVGVzdAorICAg
ICAgICBpbnRlcmZhY2UgdG8gSW50ZXJuYWxzIGluc3RlYWQuIFRoZSBtYXBwaW5nIGZyb20gaW50
ZXJuYWxzLnhyVGVzdCB0bworICAgICAgICBuYXZpZ2F0b3IueHIudGVzdCBoYXBwZW5zIGluIHRo
ZSBXUFQgY29kZS4KKworICAgICAgICBXZSdyZSBhZGRpbmcgdGhlIHJlcXVpcmVkIElETHMgYW5k
IHZlcnkgYmFzaWMgKG1vc3RseSBlbXB0eSkKKyAgICAgICAgaW1wbGVtZW50YXRpb25zIGZvciB0
ZXN0aW5nIG1ldGhvZHMuIFdlJ3JlIGFkZGluZyB0ZXN0aW5nCisgICAgICAgIGluZnJhc3RydWN0
dXJlLCBhZGRpbmcgdGVzdHMgbWFrZSBubyBzZW5zZSBmb3IgdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2Vi
WFIuaDogRXhwb3J0IEFQSSB0byBiZSB1c2VkIGluIHRlc3RpbmcgY29kZS4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEV4cG9ydCA6OmZyb20gYW5kIDo6eHIgbWV0aG9k
cy4KKyAgICAgICAgKiBTb3VyY2VzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIFdl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajogRGl0dG8uCisgICAgICAgICogYmluZGlu
Z3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOiBBZGRlZCBzb21lIG5ldyBtYWNyb3MuCisgICAg
ICAgICogdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0
aW5nL0Zha2VYUkJvdW5kc1BvaW50LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtl
WFJCdXR0b25TdGF0ZUluaXQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJCdXR0
b25TdGF0ZUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUklucHV0U291
cmNlSW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5p
dC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0
Lmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmlk
bDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5oOiBBZGRlZC4KKyAg
ICAgICAgKiB0ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVz
dGluZy9JbnRlcm5hbHMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SW50ZXJuYWxzOjp4clRlc3Qp
OiBBZGRlZCBXZWJYUlRlc3QgdG8gSW50ZXJuYWxzLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmg6IEFkZGVkIHhyVGVzdCgpIGFjY2Vzc29yLgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJu
YWxzLmlkbDogQWRkZWQgeHJUZXN0IGF0dHJpYnV0ZS4KKyAgICAgICAgKiB0ZXN0aW5nL1dlYkZh
a2VYUkRldmljZS5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNl
OjpzZXRWaWV3cyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OmRpc2Nvbm5l
Y3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzZXRWaWV3ZXJPcmlnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpjbGVhclZpZXdlck9yaWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlVmlzaWJpbGl0eUNo
YW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNldEJvdW5kc0dlb21l
dHJ5KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2V0Rmxvb3JPcmlnaW4p
OgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpjbGVhckZsb29yT3JpZ2luKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2ltdWxhdGVSZXNldFBvc2UpOgor
ICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZUlucHV0U291cmNlQ29u
bmVjdGlvbik6CisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaDogQWRkZWQuCisg
ICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHA6IEFkZGVkLgorICAgICAgICAoV2Vi
Q29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRIYW5kZWRuZXNzKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0VGFyZ2V0UmF5TW9kZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFByb2ZpbGVzKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0R3JpcE9yaWdp
bik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmNsZWFyR3Jp
cE9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNl
dFBvaW50ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJv
bGxlcjo6cmVjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJv
bGxlcjo6c3RhcnRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyOjplbmRTZWxlY3Rpb24pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXI6OnNldFN1cHBvcnRlZEJ1dHRvbnMpOgorICAgICAgICAoV2ViQ29y
ZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRhdGVCdXR0b25TdGF0ZSk6CisgICAgICAg
ICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaDogQWRkZWQuCisgICAgICAgICog
dGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0
ZXN0aW5nL1dlYlhSVGVzdC5jcHA6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJUZXN0
OjpzaW11bGF0ZURldmljZUNvbm5lY3Rpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
WFJUZXN0OjpzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlhS
VGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMpOgorICAgICAgICAqIHRlc3RpbmcvV2ViWFJUZXN0
Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViWFJUZXN0OjpjcmVhdGUpOgorICAgICAg
ICAqIHRlc3RpbmcvV2ViWFJUZXN0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9YUlNp
bXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5n
L1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbDogRGl0dG8uCisKIDIwMjAtMDQt
MjEgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBFeGl0IGVhcmx5IGlu
IEZyYW1lTG9hZGVyOjpsb2FkVVJMIHdoZW4gcmVkaXJlY3RpbmcgdG8gYW5vdGhlciBmcmFtZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQgYi9Tb3VyY2UvV2ViQ29y
ZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNjA2MzFmN2MzNzVlM2FmOGQ4NTg2OWRhZjlmYmVhNWMx
MTQwMTRhLi41ZGZiMDNlMTlmMmIyMDYwZDFhZThjNjE2NWE3MGM4MzRlNzMxZmZkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9D
TWFrZUxpc3RzLnR4dApAQCAtMTU5LDYgKzE1OSw3IEBAIHNldChXZWJDb3JlX1BSSVZBVEVfSU5D
TFVERV9ESVJFQ1RPUklFUwogICAgICIke1dFQkNPUkVfRElSfS9zdmcvZ3JhcGhpY3MiCiAgICAg
IiR7V0VCQ09SRV9ESVJ9L3N2Zy9ncmFwaGljcy9maWx0ZXJzIgogICAgICIke1dFQkNPUkVfRElS
fS9zdmcvcHJvcGVydGllcyIKKyAgICAiJHtXRUJDT1JFX0RJUn0vdGVzdGluZyIKICAgICAiJHtX
RUJDT1JFX0RJUn0vd2Vic29ja2V0cyIKICAgICAiJHtXRUJDT1JFX0RJUn0vd29ya2VycyIKICAg
ICAiJHtXRUJDT1JFX0RJUn0vd29ya2Vycy9zZXJ2aWNlIgpAQCAtMTY1Niw2ICsxNjU3LDI1IEBA
IGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVzdGluZy9qcy9X
ZWJDb3JlVGVzdFN1cHBvcnQuY3BwCiApCiAKKworaWYgKEVOQUJMRV9XRUJYUikKKyAgICBsaXN0
KEFQUEVORCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCisgICAgICAgIHRlc3RpbmcvRmFr
ZVhSQm91bmRzUG9pbnQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0
LmlkbAorICAgICAgICB0ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwKKyAgICAgICAg
dGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFr
ZVhSVmlld0luaXQuaWRsCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbAorICAg
ICAgICB0ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKKyAgICAgICAgdGVzdGlu
Zy9XZWJYUlRlc3QuaWRsCisgICAgICAgIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9u
RnVuY3Rpb24uaWRsCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9T
T1VSQ0VTCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAorICAgICAgICB0ZXN0
aW5nL1dlYlhSVGVzdC5jcHAKKyAgICApCitlbmRpZiAoKQorCiAjIE1vZHVsZXMgdGhhdCB0aGUg
YmluZGluZ3MgZ2VuZXJhdG9yIHNjcmlwdHMgbWF5IHVzZQogc2V0KFNDUklQVFNfUkVTT0xWRV9T
VVBQTEVNRU5UQUwKICAgICAke1dFQkNPUkVfRElSfS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZSBiL1Nv
dXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKaW5kZXggMDAyM2NmNzYxZDE1NWFhYjY0
MzJkNzIxZjNjYzRlNzMyNjQ2MWFjMC4uMDczODVhNGMyZTQ2MzEwMDhhMGU5ZDMyNTc3ZWUxNjUy
ZDZhYjA5ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQor
KysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCkBAIC0xMTE4LDYgKzExMTgs
MTUgQEAgSlNfQklORElOR19JRExTID0gXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9Nb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5n
L1NlcnZpY2VXb3JrZXJJbnRlcm5hbHMuaWRsIFwKICAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvVHlw
ZUNvbnZlcnNpb25zLmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUkJvdW5kc1Bv
aW50LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5p
ZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbCBcCisg
ICAgJChXZWJDb3JlKS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbCBcCisgICAgJChXZWJDb3Jl
KS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9X
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvV2Vi
WFJUZXN0LmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZh
dGlvbkZ1bmN0aW9uLmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL0Fic3RyYWN0V29ya2Vy
LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL0RlZGljYXRlZFdvcmtlckdsb2JhbFNjb3Bl
LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL1dvcmtlci5pZGwgXApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCmluZGV4IGZmMzRlNGU1OWYzOWM4
OWRiMmE5MmE0MTYwYjg4MDNlZTA3ZjQyZGIuLjIzYzYwYzVjODJlOWUyMDY1YTViYjc4MzE5Yzc4
NDI2MGFkM2Q5YzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvTmF2
aWdhdG9yV2ViWFIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRv
cldlYlhSLmgKQEAgLTM5LDExICszOSwxMSBAQCBjbGFzcyBXZWJYUlN5c3RlbTsKIGNsYXNzIE5h
dmlnYXRvcldlYlhSIGZpbmFsIDogcHVibGljIFN1cHBsZW1lbnQ8TmF2aWdhdG9yPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgc3RhdGljIFdlYlhSU3lzdGVt
JiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2aWdhdG9yJik7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFdlYlhSU3lzdGVtJiB4cihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgTmF2
aWdhdG9yJik7CiAKLXByaXZhdGU6Ci0gICAgc3RhdGljIE5hdmlnYXRvcldlYlhSJiBmcm9tKE5h
dmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJv
bShOYXZpZ2F0b3ImKTsKIAorcHJpdmF0ZToKICAgICBSZWZQdHI8V2ViWFJTeXN0ZW0+IG1feHI7
CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lz
dGVtLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgKaW5kZXgg
ZDBiZDU0YmRjNjVmZTI5ZWQ5ZTI3MTA5MjBiYzVmNGZiZTY1NjdhZS4uOTYxNGM5Mzc0NWI5OThm
OTU1MGJlMzY4ZDkwMDVhNzllNTczMjJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvV2ViWFJTeXN0ZW0uaApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIlhSU2Vzc2lvbk1v
ZGUuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CiAjaW5jbHVkZSA8d3RmL1JlZkNvdW50
ZWQuaD4KKyNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
QEAgLTQwLDE0ICs0MSwxNCBAQCBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0OwogY2xhc3Mg
V2ViWFJTZXNzaW9uOwogc3RydWN0IFhSU2Vzc2lvbkluaXQ7CiAKLWNsYXNzIFdlYlhSU3lzdGVt
IGZpbmFsIDogcHVibGljIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+LCBwdWJsaWMgRXZlbnRUYXJn
ZXRXaXRoSW5saW5lRGF0YSwgcHVibGljIEFjdGl2ZURPTU9iamVjdCB7CitjbGFzcyBXZWJYUlN5
c3RlbSBmaW5hbCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSU3lzdGVtPiwgcHVibGljIEV2ZW50
VGFyZ2V0V2l0aElubGluZURhdGEsIHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBDYW5N
YWtlV2Vha1B0cjxXZWJYUlN5c3RlbT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoV2Vi
WFJTeXN0ZW0pOwogcHVibGljOgogICAgIHVzaW5nIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj47CiAgICAgdXNpbmcgUmVxdWVzdFNlc3Np
b25Qcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxXZWJYUlNlc3Npb24+
PjsKIAogICAgIHN0YXRpYyBSZWY8V2ViWFJTeXN0ZW0+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0Jik7Ci0gICAgdmlydHVhbCB+V2ViWFJTeXN0ZW0oKTsKKyAgICB+V2ViWFJTeXN0ZW0o
KTsKIAogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJTeXN0ZW0+OjpyZWY7CiAgICAgdXNpbmcg
UmVmQ291bnRlZDxXZWJYUlN5c3RlbT46OmRlcmVmOwpAQCAtNTUsOSArNTYsNyBAQCBwdWJsaWM6
CiAgICAgdm9pZCBpc1Nlc3Npb25TdXBwb3J0ZWQoWFJTZXNzaW9uTW9kZSwgSXNTZXNzaW9uU3Vw
cG9ydGVkUHJvbWlzZSYmKTsKICAgICB2b2lkIHJlcXVlc3RTZXNzaW9uKFhSU2Vzc2lvbk1vZGUs
IGNvbnN0IFhSU2Vzc2lvbkluaXQmLCBSZXF1ZXN0U2Vzc2lvblByb21pc2UmJik7CiAKLXByaXZh
dGU6Ci0gICAgV2ViWFJTeXN0ZW0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotCitwcm90ZWN0
ZWQ6CiAgICAgLy8gRXZlbnRUYXJnZXQKICAgICBFdmVudFRhcmdldEludGVyZmFjZSBldmVudFRh
cmdldEludGVyZmFjZSgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIFdlYlhSU3lzdGVtRXZlbnRU
YXJnZXRJbnRlcmZhY2VUeXBlOyB9CiAgICAgU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJuIEFjdGl2ZURPTU9iamVj
dDo6c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOyB9CkBAIC02Nyw2ICs2Niw5IEBAIHByaXZhdGU6
CiAgICAgLy8gQWN0aXZlRE9NT2JqZWN0CiAgICAgY29uc3QgY2hhciogYWN0aXZlRE9NT2JqZWN0
TmFtZSgpIGNvbnN0IG92ZXJyaWRlOwogICAgIHZvaWQgc3RvcCgpIG92ZXJyaWRlOworCitwcml2
YXRlOgorICAgIFdlYlhSU3lzdGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMu
dHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggYzU3NDc4YzIxYWZkYTkzN2Ux
ZDFjMmU3OGU4NDZhYWU5YWQxNzRjOC4uYzJkYzBmMTdjNjQ0ZTIzMDdjODA4ZWI0ZDA1NGIwZmI0
NWIyNDA4ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291
cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTQzNCw2ICs0MzQsMTAgQEAgTW9kdWxlcy93ZWJ4
ci9YUklucHV0U291cmNlc0NoYW5nZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIv
WFJSZWZlcmVuY2VTcGFjZUV2ZW50LmNwcCBAbm8tdW5pZnkKIE1vZHVsZXMvd2VieHIvWFJTZXNz
aW9uRXZlbnQuY3BwIEBuby11bmlmeQogCit0ZXN0aW5nL1dlYkZha2VYUkRldmljZS5jcHAgQG5v
LXVuaWZ5Cit0ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHAgQG5vLXVuaWZ5Cit0
ZXN0aW5nL1dlYlhSVGVzdC5jcHAgQG5vLXVuaWZ5CisKICNlbmRpZgogCiBhY2Nlc3NpYmlsaXR5
L0FYTG9nZ2VyLmNwcApAQCAtMzU1OCw2ICszNTYyLDE2IEBAIEpTWFNMVFByb2Nlc3Nvci5jcHAK
IAogI2lmIEVOQUJMRV9XRUJYUgogCitKU0Zha2VYUkJvdW5kc1BvaW50LmNwcAorSlNGYWtlWFJC
dXR0b25TdGF0ZUluaXQuY3BwCitKU0Zha2VYUklucHV0U291cmNlSW5pdC5jcHAKK0pTRmFrZVhS
UmlnaWRUcmFuc2Zvcm1Jbml0LmNwcAorSlNGYWtlWFJWaWV3SW5pdC5jcHAKK0pTV2ViRmFrZVhS
RGV2aWNlLmNwcAorSlNXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwCitKU1dlYlhSVGVzdC5j
cHAKK0pTWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uY3BwCisKIEpTV2ViWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuY3BwCiBKU1hSRW52aXJvbm1lbnRCbGVuZE1vZGUuY3BwCiBKU1hS
RXllLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDI4YTAwMTc3MDYxNTAxMzk4ZmNkNTZkZDU3MzI4N2ZiMGM3NmMxODIuLmNk
ZTUwODY3Y2U1ZGJiOTAyN2MyMWI1ZDc1ODk4ZThlMzU0MTZhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE1MTQ4LDggKzE1
MTQ4LDQ1IEBACiAJCUUxODUzNjgyMUY0RTQ3MjcwMEZFMDkxQiAvKiBXZWJBcmNoaXZlUmVzb3Vy
Y2VGcm9tTlNBdHRyaWJ1dGVkU3RyaW5nLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJj
aGl2ZVJlc291cmNlRnJvbU5TQXR0cmlidXRlZFN0cmluZy5tbTsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJRTE4QzM1NDExRjcxOTZDRDAwRkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJj
ZVdlYlJlc291cmNlSGFuZGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJBcmNoaXZlUmVzb3VyY2VX
ZWJSZXNvdXJjZUhhbmRsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4QzM1
NDIxRjcxOTcwMTAwRkY2MzJEIC8qIFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNlSGFuZGxl
ci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJlc291cmNl
SGFuZGxlci5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzREMyNDNGNzFD
QjAwOTI0N0Q2IC8qIEZha2VYUklucHV0U291cmNlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTE4RDgzREQyNDNGNzFDQzAwOTI0N0Q2IC8qIFdlYkZha2VYUklucHV0Q29udHJvbGxl
ci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNERTI0
M0Y3MUNEMDA5MjQ3RDYgLyogRmFrZVhSQnV0dG9uU3RhdGVJbml0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IEZha2VYUkJ1dHRvblN0YXRlSW5pdC5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQlFMThEODNERjI0M0Y3MUNEMDA5MjQ3RDYgLyogRmFrZVhSVmlld0lu
aXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSVmlld0luaXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTAyNDNGNzFDRTAwOTI0N0Q2IC8q
IFdlYlhSVGVzdC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJY
UlRlc3QuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFMTI0M0Y3MUNF
MDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7
IHBhdGggPSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQlFMThEODNFMjI0M0Y3MUNGMDA5MjQ3RDYgLyogRmFrZVhSVmlld0luaXQuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEZha2VYUlZpZXdJbml0LmlkbDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTMyNDNGNzFDRjAwOTI0N0Q2IC8qIEZha2VYUkJ1dHRv
blN0YXRlSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSQnV0dG9uU3RhdGVJ
bml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTQyNDNGNzFEMDAw
OTI0N0Q2IC8qIEZha2VYUkJvdW5kc1BvaW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZha2VYUkJvdW5kc1BvaW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxOEQ4M0U1MjQzRjcxRDEwMDkyNDdENiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0U2MjQzRjcxRDEwMDkyNDdE
NiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOEQ4M0U3MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYkZha2VYUkRldmljZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOEQ4M0U4MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJYUlRlc3QuaCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViWFJUZXN0Lmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxOEQ4M0U5MjQzRjcxRDMwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZp
Y2UuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViRmFrZVhSRGV2
aWNlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUEyNDNGNzFENDAw
OTI0N0Q2IC8qIEZha2VYUklucHV0U291cmNlSW5pdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE4RDgzRUIyNDNGNzFENTAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJUZXN0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTE4RDgzRUMyNDNGNzFENTAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFhSU2ltdWxhdGVV
c2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
OEQ4M0VEMjQzRjcxRDYwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmFrZVhSRGV2aWNlLmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOEQ4M0VFMjQzRjcxRDcwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENv
bnRyb2xsZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0VGMjQz
RjcxRDcwMDkyNDdENiAvKiBGYWtlWFJCb3VuZHNQb2ludC5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gRmFrZVhSQm91bmRzUG9pbnQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMThEODNGMDI0M0Y3MUQ4MDA5MjQ3RDYgLyogWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzQxOEFB
RjEyQzAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUUxOERGMzM2MThBQUYxNEQwMDc3M0U1OSAvKiBTZXJpYWxpemVk
Q3J5cHRvS2V5V3JhcE1hYy5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0
aCA9IFNlcmlhbGl6ZWRDcnlwdG9LZXlXcmFwTWFjLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMTk0OTA4NjI0MzRGMTU4MDA0MTZBOTkgLyogV2ViWFJWaWV3LmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJYUlZpZXcuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA4NzI0MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJWaWV3cG9ydC5pZGwgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJWaWV3cG9ydC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUUxOTQ5MDg4MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUkZyYW1lLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUkZyYW1lLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE5NDkwODkyNDM0RjE1QTAwNDE2QTk5IC8qIFdlYlhSSW5wdXRTb3VyY2UuaWRs
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSSW5wdXRTb3VyY2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA4RjI0MzRGMTVEMDA0MTZBOTkgLyogV2ViWFJXZWJH
TExheWVyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUldlYkdMTGF5ZXIuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5MzI0MzRGMTYwMDA0MTZBOTkgLyog
V2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUklu
cHV0U291cmNlQXJyYXkuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5
NDI0MzRGMTYwMDA0MTZBOTkgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSQm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTUyNDM0RjE2MTAwNDE2QTk5IC8qIFdlYlhS
V2ViR0xMYXllci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUldlYkdM
TGF5ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE5NDkwOTgyNDM0RjE2MjAw
NDE2QTk5IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9
IFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlF
MTk0OTA5QTI0MzRGMTY0MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW0uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IFdlYlhSU3lzdGVtLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTE5NDkwOUMyNDM0RjE2NTAwNDE2QTk5IC8qIFdlYlhSVmlld2VyUG9zZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViWFJWaWV3ZXJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE5NDkwOUUyNDM0RjE2NjAwNDE2QTk5IC8qIFdlYlhSU2Vzc2lvbi5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJTZXNzaW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTE5NDkwQTEyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSUG9zZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJQb3NlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE5NDkwQTIyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSU3BhY2UuaWRsICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSU3BhY2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMTk0OTBBNDI0MzRGMTY5MDA0MTZBOTkgLyogV2ViWFJSZW5kZXJTdGF0ZS5pZGwg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJSZW5kZXJTdGF0ZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MEE2MjQzNEYxNkIwMDQxNkE5OSAvKiBXZWJYUlJlZmVy
ZW5jZVNwYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlJlZmVyZW5jZVNwYWNl
LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5NzI3MTUxODIwNTQ5RTAwNTky
RDUxIC8qIENyeXB0b0tleVR5cGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
Q3J5cHRvS2V5VHlwZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTlBQzNFNjE4
MjREQzc5MDAzNDk0MjYgLyogQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENyeXB0b0FsZ29yaXRobVNIQTIyNC5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0U3MTgyNERDNzkwMDM0OTQyNiAvKiBDcnlw
dG9BbGdvcml0aG1TSEEyMjQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ3J5
cHRvQWxnb3JpdGhtU0hBMjI0Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xODMy
NSw2ICsxODM2MiwxNiBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQTE3NjNGM0IxRTIwNTFBQjAw
MUQ1OERFIC8qIGNvY29hICovLAogCQkJCTQxODE1QzFCMTM4MzE5NjMwMDU3QUFBNCAvKiBqcyAq
LywKKwkJCQlFMThEODNFNDI0M0Y3MUQwMDA5MjQ3RDYgLyogRmFrZVhSQm91bmRzUG9pbnQuaCAq
LywKKwkJCQlFMThEODNFRjI0M0Y3MUQ3MDA5MjQ3RDYgLyogRmFrZVhSQm91bmRzUG9pbnQuaWRs
ICovLAorCQkJCUUxOEQ4M0RFMjQzRjcxQ0QwMDkyNDdENiAvKiBGYWtlWFJCdXR0b25TdGF0ZUlu
aXQuaCAqLywKKwkJCQlFMThEODNFMzI0M0Y3MUNGMDA5MjQ3RDYgLyogRmFrZVhSQnV0dG9uU3Rh
dGVJbml0LmlkbCAqLywKKwkJCQlFMThEODNFQTI0M0Y3MUQ0MDA5MjQ3RDYgLyogRmFrZVhSSW5w
dXRTb3VyY2VJbml0LmggKi8sCisJCQkJRTE4RDgzREMyNDNGNzFDQjAwOTI0N0Q2IC8qIEZha2VY
UklucHV0U291cmNlSW5pdC5pZGwgKi8sCisJCQkJRTE4RDgzRTUyNDNGNzFEMTAwOTI0N0Q2IC8q
IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oICovLAorCQkJCUUxOEQ4M0U2MjQzRjcxRDEwMDky
NDdENiAvKiBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsICovLAorCQkJCUUxOEQ4M0RGMjQz
RjcxQ0QwMDkyNDdENiAvKiBGYWtlWFJWaWV3SW5pdC5oICovLAorCQkJCUUxOEQ4M0UyMjQzRjcx
Q0YwMDkyNDdENiAvKiBGYWtlWFJWaWV3SW5pdC5pZGwgKi8sCiAJCQkJNTE3MTRFQTkxQ0Y2NTg5
OTAwNDcyM0M0IC8qIEdDT2JzZXJ2YXRpb24uY3BwICovLAogCQkJCTUxNzE0RUFBMUNGNjU4OTkw
MDQ3MjNDNCAvKiBHQ09ic2VydmF0aW9uLmggKi8sCiAJCQkJNTE3MTRFQUIxQ0Y2NTg5OTAwNDcy
M0M0IC8qIEdDT2JzZXJ2YXRpb24uaWRsICovLApAQCAtMTgzODksNiArMTg0MzYsMTcgQEAKIAkJ
CQlFQjA4MUNEODE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmggKi8sCiAJCQkJ
RUIwODFDRDkxNjk2MDg0NDAwNTUzNzMwIC8qIFR5cGVDb252ZXJzaW9ucy5pZGwgKi8sCiAJCQkJ
RTFCQTY3MTkxNzQyQkVGNDAwQzIwMjUxIC8qIFdlYkNvcmVUZXN0U2hpbUxpYnJhcnkuY3BwICov
LAorCQkJCUUxOEQ4M0U5MjQzRjcxRDMwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuY3BwICov
LAorCQkJCUUxOEQ4M0VEMjQzRjcxRDYwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaCAqLywK
KwkJCQlFMThEODNFNzI0M0Y3MUQyMDA5MjQ3RDYgLyogV2ViRmFrZVhSRGV2aWNlLmlkbCAqLywK
KwkJCQlFMThEODNERDI0M0Y3MUNDMDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVy
LmNwcCAqLywKKwkJCQlFMThEODNFRTI0M0Y3MUQ3MDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyLmggKi8sCisJCQkJRTE4RDgzRTEyNDNGNzFDRTAwOTI0N0Q2IC8qIFdlYkZha2VY
UklucHV0Q29udHJvbGxlci5pZGwgKi8sCisJCQkJRTE4RDgzRTAyNDNGNzFDRTAwOTI0N0Q2IC8q
IFdlYlhSVGVzdC5jcHAgKi8sCisJCQkJRTE4RDgzRTgyNDNGNzFEMjAwOTI0N0Q2IC8qIFdlYlhS
VGVzdC5oICovLAorCQkJCUUxOEQ4M0VCMjQzRjcxRDUwMDkyNDdENiAvKiBXZWJYUlRlc3QuaWRs
ICovLAorCQkJCUUxOEQ4M0VDMjQzRjcxRDUwMDkyNDdENiAvKiBYUlNpbXVsYXRlVXNlckFjdGl2
YXRpb25GdW5jdGlvbi5oICovLAorCQkJCUUxOEQ4M0YwMjQzRjcxRDgwMDkyNDdENiAvKiBYUlNp
bXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwgKi8sCiAJCQkpOwogCQkJcGF0aCA9IHRl
c3Rpbmc7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMjcyMjEsMzMgKzI3Mjc5LDQ5
IEBACiAJCQkJRTFFRThCMEUyNDEyQjE3MDAwRTc5NEQ2IC8qIE5hdmlnYXRvcldlYlhSLmlkbCAq
LywKIAkJCQlFMUVFOEFEMzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJCb3VuZGVkUmVmZXJlbmNl
U3BhY2UuY3BwICovLAogCQkJCUUxRUU4QUQxMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkJvdW5k
ZWRSZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxOTQ5MDk0MjQzNEYxNjAwMDQxNkE5OSAvKiBX
ZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThBRjAyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSRnJhbWUuY3BwICovLAogCQkJCUUxRUU4QUUzMjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUkZyYW1lLmggKi8sCisJCQkJRTE5NDkwODgyNDM0RjE1OTAwNDE2QTk5IC8qIFdl
YlhSRnJhbWUuaWRsICovLAogCQkJCUUxRUU4QjBEMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklu
cHV0U291cmNlLmNwcCAqLywKIAkJCQlFMUVFOEIxNzI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJ
bnB1dFNvdXJjZS5oICovLAorCQkJCUUxOTQ5MDg5MjQzNEYxNUEwMDQxNkE5OSAvKiBXZWJYUklu
cHV0U291cmNlLmlkbCAqLywKIAkJCQlFMUVFOEFFNjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJJ
bnB1dFNvdXJjZUFycmF5LmNwcCAqLywKIAkJCQlFMUVFOEFERDI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJJbnB1dFNvdXJjZUFycmF5LmggKi8sCisJCQkJRTE5NDkwOTMyNDM0RjE2MDAwNDE2QTk5
IC8qIFdlYlhSSW5wdXRTb3VyY2VBcnJheS5pZGwgKi8sCiAJCQkJRTFFRThBRTUyNDEyQjE3MDAw
RTc5NEQ2IC8qIFdlYlhSUG9zZS5jcHAgKi8sCiAJCQkJRTFFRThBRTEyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSUG9zZS5oICovLAorCQkJCUUxOTQ5MEExMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJY
UlBvc2UuaWRsICovLAogCQkJCUUxRUU4QUQyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVy
ZW5jZVNwYWNlLmNwcCAqLywKIAkJCQlFMUVFOEIxNDI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJS
ZWZlcmVuY2VTcGFjZS5oICovLAorCQkJCUUxOTQ5MEE2MjQzNEYxNkIwMDQxNkE5OSAvKiBXZWJY
UlJlZmVyZW5jZVNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEFDRTI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJSZW5kZXJTdGF0ZS5jcHAgKi8sCiAJCQkJRTFFRThBRDUyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUmVuZGVyU3RhdGUuaCAqLywKKwkJCQlFMTk0OTBBNDI0MzRGMTY5MDA0MTZBOTkgLyog
V2ViWFJSZW5kZXJTdGF0ZS5pZGwgKi8sCiAJCQkJRTFFRThBQ0QyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUmlnaWRUcmFuc2Zvcm0uY3BwICovLAogCQkJCUUxRUU4QjA2MjQxMkIxNzAwMEU3OTRE
NiAvKiBXZWJYUlJpZ2lkVHJhbnNmb3JtLmggKi8sCisJCQkJRTE5NDkwOTgyNDM0RjE2MjAwNDE2
QTk5IC8qIFdlYlhSUmlnaWRUcmFuc2Zvcm0uaWRsICovLAogCQkJCUUxRUU4QjBGMjQxMkIxNzAw
MEU3OTRENiAvKiBXZWJYUlNlc3Npb24uY3BwICovLAogCQkJCUUxRUU4QjExMjQxMkIxNzAwMEU3
OTRENiAvKiBXZWJYUlNlc3Npb24uaCAqLywKKwkJCQlFMTk0OTA5RTI0MzRGMTY2MDA0MTZBOTkg
LyogV2ViWFJTZXNzaW9uLmlkbCAqLywKIAkJCQlFMUVFOEFGODI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJTcGFjZS5jcHAgKi8sCiAJCQkJRTFFRThBQ0YyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhS
U3BhY2UuaCAqLywKKwkJCQlFMTk0OTBBMjI0MzRGMTY4MDA0MTZBOTkgLyogV2ViWFJTcGFjZS5p
ZGwgKi8sCiAJCQkJRTFFRThBRTgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSU3lzdGVtLmNwcCAq
LywKIAkJCQlFMUVFOEFFMjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uaCAqLywKKwkJ
CQlFMTk0OTA5QTI0MzRGMTY0MDA0MTZBOTkgLyogV2ViWFJTeXN0ZW0uaWRsICovLAogCQkJCUUx
RUU4QjEyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuY3BwICovLAogCQkJCUUxRUU4QUUw
MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlZpZXcuaCAqLywKKwkJCQlFMTk0OTA4NjI0MzRGMTU4
MDA0MTZBOTkgLyogV2ViWFJWaWV3LmlkbCAqLywKIAkJCQlFMUVFOEIwQjI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmNwcCAqLywKIAkJCQlFMUVFOEFDNzI0MTJCMTZGMDBFNzk0
RDYgLyogV2ViWFJWaWV3ZXJQb3NlLmggKi8sCisJCQkJRTE5NDkwOUMyNDM0RjE2NTAwNDE2QTk5
IC8qIFdlYlhSVmlld2VyUG9zZS5pZGwgKi8sCiAJCQkJRTFFRThBRUIyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSVmlld3BvcnQuY3BwICovLAogCQkJCUUxRUU4QUY0MjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlZpZXdwb3J0LmggKi8sCisJCQkJRTE5NDkwODcyNDM0RjE1OTAwNDE2QTk5IC8qIFdl
YlhSVmlld3BvcnQuaWRsICovLAogCQkJCUUxRUU4QUQ4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UldlYkdMTGF5ZXIuY3BwICovLAorCQkJCUUxOTQ5MDk1MjQzNEYxNjEwMDQxNkE5OSAvKiBXZWJY
UldlYkdMTGF5ZXIuaCAqLywKKwkJCQlFMTk0OTA4RjI0MzRGMTVEMDA0MTZBOTkgLyogV2ViWFJX
ZWJHTExheWVyLmlkbCAqLywKIAkJCQlFMUVFOEFGNzI0MTJCMTcwMDBFNzk0RDYgLyogWFJCb3Vu
ZGVkUmVmZXJlbmNlU3BhY2UuaWRsICovLAogCQkJCUUxRUU4QjA1MjQxMkIxNzAwMEU3OTRENiAv
KiBYUkVudmlyb25tZW50QmxlbmRNb2RlLmggKi8sCiAJCQkJRTFFRThBREEyNDEyQjE3MDAwRTc5
NEQ2IC8qIFhSRW52aXJvbm1lbnRCbGVuZE1vZGUuaWRsICovLApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCmluZGV4IGNmNTVjMzczNjkzZTRi
ZGJmN2NiODAyODgzOWI0ZTdlYjQ3MmU2N2MuLmVlMTFiMzY3YmJiMGVmNGE3NTRlYTRjOWJiYzY0
YzJiMzE2ZDJkMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNv
cmVCdWlsdGluTmFtZXMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3Jl
QnVpbHRpbk5hbWVzLmgKQEAgLTc1LDYgKzc1LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAg
IG1hY3JvKEVudGVyUGljdHVyZUluUGljdHVyZUV2ZW50KSBcCiAgICAgbWFjcm8oRXh0ZW5kYWJs
ZUV2ZW50KSBcCiAgICAgbWFjcm8oRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudCkgXAorICAgIG1hY3Jv
KEZha2VYUkRldmljZSkgXAorICAgIG1hY3JvKEZha2VYUklucHV0Q29udHJvbGxlcikgXAogICAg
IG1hY3JvKEZldGNoRXZlbnQpIFwKICAgICBtYWNybyhGaWxlU3lzdGVtKSBcCiAgICAgbWFjcm8o
RmlsZVN5c3RlbURpcmVjdG9yeUVudHJ5KSBcCkBAIC0yNTEsNiArMjUzLDcgQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgIG1hY3JvKFhSU2Vzc2lvbikgXAogICAgIG1hY3JvKFhSU2Vzc2lvbkV2
ZW50KSBcCiAgICAgbWFjcm8oWFJTcGFjZSkgXAorICAgIG1hY3JvKFhSVGVzdCkgXAogICAgIG1h
Y3JvKFhSVmlldykgXAogICAgIG1hY3JvKFhSVmlld2VyUG9zZSkgXAogICAgIG1hY3JvKFhSVmll
d3BvcnQpIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRz
UG9pbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4yZDcwNzI4NjgyMzFlYjI5Mzk0MTcxMmFlNDMwZmNhOGZiNDUwNjQzCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5oCkBA
IC0wLDAgKzEsMzkgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUo
V0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZha2VYUkJvdW5kc1BvaW50
IHsKKyAgICBkb3VibGUgeDsKKyAgICBkb3VibGUgejsKK307CisKK30gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3Rlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9GYWtlWFJCb3VuZHNQb2ludC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDIxMzVhMGFkNzhmNDZiMjA3MTJk
ZGI4NjIxYWZhYzllODU0MTc2YwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaWRsCkBAIC0wLDAgKzEsMzEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIs
CitdIGRpY3Rpb25hcnkgRmFrZVhSQm91bmRzUG9pbnQgeworICAgIGRvdWJsZSB4OyBkb3VibGUg
ejsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0
YXRlSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0ZUluaXQu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41ZWQ5OGVkOGRjNDA1NmZlM2M4MDZkZjY4MWNkMjI1ZDBlOTJiMDY4Ci0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0
ZUluaXQuaApAQCAtMCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtlWFJC
dXR0b25TdGF0ZUluaXQgeworICAgIGVudW0gY2xhc3MgVHlwZSB7CisgICAgICAgIEdyaXAsCisg
ICAgICAgIFRvdWNocGFkLAorICAgICAgICBUaHVtYnN0aWNrLAorICAgICAgICBPcHRpb25hbEJ1
dHRvbiwKKyAgICAgICAgT3B0aW9uYWxUaHVtYnN0aWNrCisgICAgfTsKKworICAgIFR5cGUgYnV0
dG9uVHlwZTsKKyAgICBib29sIHByZXNzZWQ7CisgICAgYm9vbCB0b3VjaGVkOworICAgIGZsb2F0
IHByZXNzZWRWYWx1ZTsKKyAgICBmbG9hdCB4VmFsdWUgeyAwLjAgfTsKKyAgICBmbG9hdCB5VmFs
dWUgeyAwLjAgfTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVO
QUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0
dG9uU3RhdGVJbml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3Rh
dGVJbml0LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zODBkMzU5NWFjOTBmN2RiYWFlNGMxMjI4NTVhZDJmNDRi
YmMzOTE3Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJC
dXR0b25TdGF0ZUluaXQuaWRsCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMp
IDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
KyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRP
UlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRV
VEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBC
VVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9S
WSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZ
LCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gQmVj
YXVzZSB0aGUgcHJpbWFyeSBidXR0b24gaXMgYWx3YXlzIGd1YXJhbnRlZWQgdG8gYmUgcHJlc2Vu
dCwgYW5kIG90aGVyIGJ1dHRvbnMKKy8vIHNob3VsZCBmdWxmaWxsIHRoZSByb2xlIG9mIHZhbGlk
YXRpbmcgYW55IHN0YXRlIGZyb20gRmFrZVhSQnV0dG9uU3RhdGVJbml0CisvLyB0aGUgcHJpbWFy
eSBidXR0b24gaXMgbm90IHByZXNlbnQgaW4gdGhpcyBlbnVtLgorWworICAgIEVuYWJsZWRBdFJ1
bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGVudW0gRmFrZVhSQnV0dG9u
VHlwZSB7CisgICAgImdyaXAiLAorICAgICJ0b3VjaHBhZCIsCisgICAgInRodW1ic3RpY2siLAor
ICAgIC8vIFJlcHJlc2VudHMgYSBidXR0b24gd2hvc2UgcG9zaXRpb24gaXMgbm90IHNwZWNpZmll
ZCBieSB0aGUgeHItc3RhbmRhcmQgbWFwcGluZy4KKyAgICAvLyBTaG91bGQgYXBwZWFyIGF0IG9u
ZSBwYXN0IHRoZSBsYXN0IHJlc2VydmVkIGJ1dHRvbiBpbmRleC4KKyAgICAib3B0aW9uYWwtYnV0
dG9uIiwKKyAgICAvLyBSZXByZXNlbnRzIGEgdGh1bWJzdGljayB3aG9zZSBwb3NpdGlvbiBpcyBu
b3Qgc3BlY2lmaWVkIGJ5IHRoZSB4ci1zdGFuZGFyZCBtYXBwaW5nLgorICAgIC8vIFNob3VsZCBh
cHBlYXIgYXQgdHdvIHBhc3QgdGhlIGxhc3QgcmVzZXJ2ZWQgYnV0dG9uIGluZGV4LgorICAgICJv
cHRpb25hbC10aHVtYnN0aWNrIgorfTsKKworLy8gVXNlZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9m
IG9wdGlvbmFsbHkgc3VwcG9ydGVkIGJ1dHRvbnMuCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1X
ZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJCdXR0b25T
dGF0ZUluaXQgeworICAgIHJlcXVpcmVkIEZha2VYUkJ1dHRvblR5cGUgYnV0dG9uVHlwZTsKKyAg
ICByZXF1aXJlZCBib29sZWFuIHByZXNzZWQ7CisgICAgcmVxdWlyZWQgYm9vbGVhbiB0b3VjaGVk
OworICAgIHJlcXVpcmVkIGZsb2F0IHByZXNzZWRWYWx1ZTsKKyAgICAvLyB4IGFuZCB5IHZhbHVl
IGFyZSBpZ25vcmVkIGlmIHRoZSBGYWtlWFJCdXR0b25UeXBlIGlzIG5vdCB0b3VjaHBhZCwgdGh1
bWJzdGljaywgb3Igb3B0aW9uYWwtdGh1bWJzdGljaworICAgIGZsb2F0IHhWYWx1ZSA9IDAuMDsK
KyAgICBmbG9hdCB5VmFsdWUgPSAwLjA7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
RmFrZVhSSW5wdXRTb3VyY2VJbml0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWM0MmE0YjMxMDAxODJiMzBlMzQz
MWVmMGE0OGQ5ZTE2Mjg5ODQwYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkZha2VY
UkJ1dHRvblN0YXRlSW5pdC5oIgorI2luY2x1ZGUgIkZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5o
IgorI2luY2x1ZGUgIlhSRXllLmgiCisjaW5jbHVkZSAiWFJIYW5kZWRuZXNzLmgiCisjaW5jbHVk
ZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1lc3Bh
Y2UgV2ViQ29yZSB7CisKK3N0cnVjdCBGYWtlWFJJbnB1dFNvdXJjZUluaXQgeworICAgIFhSSGFu
ZGVkbmVzcyBoYW5kZWRuZXNzOworICAgIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlOwor
ICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luOworICAgIFZlY3RvcjxT
dHJpbmc+IHByb2ZpbGVzOworICAgIGJvb2wgc2VsZWN0aW9uU3RhcnRlZCB7IGZhbHNlIH07Cisg
ICAgYm9vbCBzZWxlY3Rpb25DbGlja2VkIHsgZmFsc2UgfTsKKyAgICBWZWN0b3I8RmFrZVhSQnV0
dG9uU3RhdGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zOworICAgIEZha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdCBncmlwT3JpZ2luOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYg
Ly8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtl
WFJJbnB1dFNvdXJjZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJJbnB1
dFNvdXJjZUluaXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZjhlOTE2MGVhMTQ4MGE5YjQwNmMxOGMxNjZk
NzU2MTE5OWUxMDkKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zh
a2VYUklucHV0U291cmNlSW5pdC5pZGwKQEAgLTAsMCArMSw0NCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10g
ZGljdGlvbmFyeSBGYWtlWFJJbnB1dFNvdXJjZUluaXQgeworICAgIHJlcXVpcmVkIFhSSGFuZGVk
bmVzcyBoYW5kZWRuZXNzOworICAgIHJlcXVpcmVkIFhSVGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlN
b2RlOworICAgIHJlcXVpcmVkIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBwb2ludGVyT3JpZ2lu
OworICAgIHJlcXVpcmVkIHNlcXVlbmNlPERPTVN0cmluZz4gcHJvZmlsZXM7CisgICAgLy8gd2Fz
IHRoZSBwcmltYXJ5IGFjdGlvbiBwcmVzc2VkIHdoZW4gdGhpcyB3YXMgY29ubmVjdGVkPworICAg
IGJvb2xlYW4gc2VsZWN0aW9uU3RhcnRlZCA9IGZhbHNlOworICAgIC8vIHNob3VsZCB0aGlzIGlu
cHV0IHNvdXJjZSBzZW5kIGEgc2VsZWN0IGltbWVkaWF0ZWx5IHVwb24gY29ubmVjdGlvbj8KKyAg
ICBib29sZWFuIHNlbGVjdGlvbkNsaWNrZWQgPSBmYWxzZTsKKyAgICAvLyBJbml0aWFsIGJ1dHRv
biBzdGF0ZSBmb3IgYW55IGJ1dHRvbnMgYmV5b25kIHRoZSBwcmltYXJ5IHRoYXQgYXJlIHN1cHBv
cnRlZC4KKyAgICAvLyBJZiBlbXB0eSwgb25seSB0aGUgcHJpbWFyeSBidXR0b24gaXMgc3VwcG9y
dGVkLgorICAgIC8vIE5vdGUgdGhhdCBpZiBhbnkgRmFrZVhSQnV0dG9uVHlwZSBpcyByZXBlYXRl
ZCB0aGUgYmVoYXZpb3IgaXMgdW5kZWZpbmVkLgorICAgIHNlcXVlbmNlPEZha2VYUkJ1dHRvblN0
YXRlSW5pdD4gc3VwcG9ydGVkQnV0dG9uczsKKyAgICAvLyBJZiBub3Qgc2V0IHRoZSBjb250cm9s
bGVyIGlzIGFzc3VtZWQgdG8gbm90IGJlIHRyYWNrZWQuCisgICAgRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0IGdyaXBPcmlnaW47Cit9OwpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmE3MTgzMjkzODJiYjAxZTQ0ZWZkYjM1M2M1NWQ5NWM1N2ZiYjAyYWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5p
dC5oCkBAIC0wLDAgKzEsNDEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB7CisgICAgVmVjdG9yPGZs
b2F0PiBwb3NpdGlvbjsKKyAgICBWZWN0b3I8ZmxvYXQ+IG9yaWVudGF0aW9uOworfTsKKworfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsIGIv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmFjMmM3NTExZmRhNTMwMGYwZjhhNmM1YWI1ZWM4MjY5OTY5YzI1MzkKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5p
dC5pZGwKQEAgLTAsMCArMSwzNSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEg
Uy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBodHRwczovL2ltbWVyc2l2
ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN4cnJpZ2lkdHJhbnNmb3JtCitbCisgICAgRW5hYmxlZEF0
UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQgeworICAgIC8vIG11c3QgaGF2ZSB0aHJlZSBlbGVtZW50cwor
ICAgIHJlcXVpcmVkIHNlcXVlbmNlPGZsb2F0PiBwb3NpdGlvbjsKKyAgICAvLyBtdXN0IGhhdmUg
Zm91ciBlbGVtZW50cworICAgIHJlcXVpcmVkIHNlcXVlbmNlPGZsb2F0PiBvcmllbnRhdGlvbjsK
K307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0Lmgg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmgKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmY1
NzAxOGU4OGFmM2M2MWIwZjA3NzkwN2M4YzEwYTcwZTY1N2JkZQotLS0gL2Rldi9udWxsCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaApAQCAtMCwwICsxLDU3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBS
ZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHly
aWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11
c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
IGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBk
aXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJ
TkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJ
UkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENP
TlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NV
UkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwg
REFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBD
QVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05U
UkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1Ig
T1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMg
U09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5j
bHVkZSAiRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgiCisjaW5jbHVkZSAiWFJFeWUuaCIKKyNp
bmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZh
a2VYUlZpZXdJbml0IHsKKyAgICBzdHJ1Y3QgRGV2aWNlUmVzb2x1dGlvbiB7CisgICAgICAgIGlu
dCB3aWR0aDsKKyAgICAgICAgaW50IGhlaWdodDsKKyAgICB9OworICAgIHN0cnVjdCBGaWVsZE9m
Vmlld0luaXQgeworICAgICAgICBmbG9hdCB1cERlZ3JlZXM7CisgICAgICAgIGZsb2F0IGRvd25E
ZWdyZWVzOworICAgICAgICBmbG9hdCBsZWZ0RGVncmVlczsKKyAgICAgICAgZmxvYXQgcmlnaHRE
ZWdyZWVzOworICAgIH07CisKKyAgICBYUkV5ZSBleWU7CisgICAgVmVjdG9yPGZsb2F0PiBwcm9q
ZWN0aW9uTWF0cml4OworICAgIERldmljZVJlc29sdXRpb24gcmVzb2x1dGlvbjsKKyAgICBGYWtl
WFJSaWdpZFRyYW5zZm9ybUluaXQgdmlld09mZnNldDsKKyAgICBGaWVsZE9mVmlld0luaXQgZmll
bGRPZlZpZXc7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFC
TEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJ
bml0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaWRsCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjM4NGE2NTI5MmIwZDJkZDkyNzBjYjZkNTdlZGI1OTI3YzQwNDFjM2IKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlZpZXdJbml0LmlkbApAQCAt
MCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIFRoaXMgcmVwcmVzZW50cyB0aGUgbmF0aXZl
IHJlc29sdXRpb24gb2YgdGhlIGRldmljZSwgYnV0IG1heSBub3QgcmVmbGVjdCB0aGUgdmlld3Bv
cnQgZXhwb3NlZCB0byB0aGUgcGFnZS4KKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRodWIu
aW8vd2VieHIvI3hydmlld3BvcnQKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAg
IENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkRldmljZVJlc29sdXRpb24g
eworICAgIHJlcXVpcmVkIGxvbmcgd2lkdGg7CisgICAgcmVxdWlyZWQgbG9uZyBoZWlnaHQ7Cit9
OworCisvLyBBIHNldCBvZiA0IGFuZ2xlcyB3aGljaCBkZXNjcmliZSB0aGUgdmlldyBmcm9tIGEg
Y2VudGVyIHBvaW50LCB1bml0cyBhcmUgZGVncmVlcy4KK1sKKyAgICBFbmFibGVkQXRSdW50aW1l
PVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkZpZWxk
T2ZWaWV3SW5pdCB7CisgICAgcmVxdWlyZWQgZmxvYXQgdXBEZWdyZWVzOworICAgIHJlcXVpcmVk
IGZsb2F0IGRvd25EZWdyZWVzOworICAgIHJlcXVpcmVkIGZsb2F0IGxlZnREZWdyZWVzOworICAg
IHJlcXVpcmVkIGZsb2F0IHJpZ2h0RGVncmVlczsKK307CisKKy8vIGh0dHBzOi8vaW1tZXJzaXZl
LXdlYi5naXRodWIuaW8vd2VieHIvI3hydmlldworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSVmlld0luaXQg
eworICAgIHJlcXVpcmVkIFhSRXllIGV5ZTsKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIu
Z2l0aHViLmlvL3dlYnhyLyN2aWV3LXByb2plY3Rpb24tbWF0cml4CisgICAgcmVxdWlyZWQgc2Vx
dWVuY2U8ZmxvYXQ+IHByb2plY3Rpb25NYXRyaXg7CisgICAgLy8gaHR0cHM6Ly9pbW1lcnNpdmUt
d2ViLmdpdGh1Yi5pby93ZWJ4ci8jZG9tLXhyd2ViZ2xsYXllci1nZXR2aWV3cG9ydAorICAgIHJl
cXVpcmVkIEZha2VYUkRldmljZVJlc29sdXRpb24gcmVzb2x1dGlvbjsKKyAgICAvLyBodHRwczov
L2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyN2aWV3LW9mZnNldAorICAgIC8vIFRoaXMg
aXMgdGhlIG9yaWdpbiBvZiB0aGUgdmlldyBpbiB0aGUgdmlld2VyIHNwYWNlLiBJbiBvdGhlciB3
b3JkcywgdGhpcyBpcworICAgIC8vIGEgdHJhbnNmb3JtIGZyb20gdGhlIHZpZXcgc3BhY2UgdG8g
dGhlIHZpZXdlciBzcGFjZS4KKyAgICByZXF1aXJlZCBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQg
dmlld09mZnNldDsKKyAgICAvLyBUaGlzIGlzIGFuIG9wdGlvbmFsIG1lYW5zIG9mIHNwZWNpZnlp
bmcgYSBkZWNvbXBvc2VkIGZvcm0gb2YgdGhlIHByb2plY3Rpb24KKyAgICAvLyBtYXRyaXguICBJ
ZiBzcGVjaWZpZWQsIHRoZSBwcm9qZWN0aW9uTWF0cml4IHNob3VsZCBiZSBpZ25vcmVkLgorICAg
IC8vIEFueSB0ZXN0IHRoYXQgd2lzaGVzIHRvIHRlc3QgY2xpcCBwbGFuZXMgb3Igc2ltaWxhciBm
ZWF0dXJlcyB0aGF0IHdvdWxkIHJlcXVpcmUKKyAgICAvLyBkZWNvbXBvc2luZy9yZWNvbXBvc2lu
ZyB0aGUgcHJvamVjdGlvbk1hdHJpeCBzaG91bGQgdXNlIHRoaXMgaW5zdGVhZCBvZgorICAgIC8v
IHRoZSBwcm9qZWN0aW9uIG1hdHJpeC4KKyAgICBGYWtlWFJGaWVsZE9mVmlld0luaXQgZmllbGRP
ZlZpZXc7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMu
Y3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuY3BwCmluZGV4IDNiOThkMmI1
ZTIzNDZmYTE0ZTBiMDZiMmE2NTZkNmJhMmYxOTkxZWYuLmNlMDBiNzUwN2FiZDViMmJjODAxZWMz
OGU5NzQzNTdlMjFhMzA4YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50
ZXJuYWxzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKQEAg
LTMxMCw2ICszMTAsMTIgQEAKICNpbmNsdWRlICJQYXltZW50Q29vcmRpbmF0b3IuaCIKICNlbmRp
ZgogCisjaWYgRU5BQkxFKFdFQlhSKQorI2luY2x1ZGUgIk5hdmlnYXRvcldlYlhSLmgiCisjaW5j
bHVkZSAiV2ViWFJTeXN0ZW0uaCIKKyNpbmNsdWRlICJXZWJYUlRlc3QuaCIKKyNlbmRpZgorCiAj
aWYgUExBVEZPUk0oTUFDKSAmJiBVU0UoTElCV0VCUlRDKQogI2luY2x1ZGUgPHdlYnJ0Yy9zZGsv
V2ViS2l0L1ZpZGVvUHJvY2Vzc2luZ1NvZnRMaW5rLmg+CiAjZW5kaWYKQEAgLTU2NTUsNCArNTY2
MSwzMCBAQCBib29sIEludGVybmFsczo6ZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgaWRl
bnRpZmllcikKICAgICByZXR1cm4gbV9zbGVlcERpc2FibGVycy5yZW1vdmUoaWRlbnRpZmllcik7
CiB9CiAKKyNpZiBFTkFCTEUoV0VCWFIpCisKK0V4Y2VwdGlvbk9yPFJlZlB0cjxXZWJYUlRlc3Q+
PiBJbnRlcm5hbHM6OnhyVGVzdCgpCit7CisgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVz
OjpzaGFyZWRGZWF0dXJlcygpLndlYlhSRW5hYmxlZCgpKQorICAgICAgICByZXR1cm4gRXhjZXB0
aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICBpZiAoIW1feHJUZXN0KSB7CisgICAg
ICAgIGlmICghY29udGV4dERvY3VtZW50KCkgfHwgIWNvbnRleHREb2N1bWVudCgpLT5kb21XaW5k
b3coKSkKKyAgICAgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBJbnZhbGlkQWNjZXNzRXJyb3Ig
fTsKKworICAgICAgICBhdXRvKiBuYXZpZ2F0b3IgPSBjb250ZXh0RG9jdW1lbnQoKS0+ZG9tV2lu
ZG93KCktPm9wdGlvbmFsTmF2aWdhdG9yKCk7CisgICAgICAgIGlmICghbmF2aWdhdG9yKQorICAg
ICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9OworCisgICAg
ICAgIGF1dG8mIG5hdmlnYXRvclhSID0gTmF2aWdhdG9yV2ViWFI6OmZyb20oKm5hdmlnYXRvcik7
CisgICAgICAgIGF1dG8mIHhyU3lzdGVtID0gbmF2aWdhdG9yWFIueHIoKnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKSwgKm5hdmlnYXRvcik7CisKKyAgICAgICAgbV94clRlc3QgPSBXZWJYUlRlc3Q6
OmNyZWF0ZShtYWtlV2Vha1B0cigmeHJTeXN0ZW0pKTsKKyAgICB9CisgICAgcmV0dXJuIG1feHJU
ZXN0LmdldCgpOworfQorCisjZW5kaWYKKworCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9JbnRlcm5hbHMuaAppbmRleCAxODMwOGM1MGZhYzFiYmRmZTFhMTExYzc2YTdj
Y2Q2YjQ1YTFiYWM1Li43OWM3NTljZjY1OTU1YTMxMmVhYTQwNzIyZDIyNmE5MjA2MDkzMDY3IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKQEAgLTExNyw2ICsxMTcsMTAgQEAgY2xhc3Mg
VGV4dFRyYWNrQ3VlR2VuZXJpYzsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiAjZW5kaWYKIAorI2lm
IEVOQUJMRShXRUJYUikKK2NsYXNzIFdlYlhSVGVzdDsKKyNlbmRpZgorCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIHN0cnVjdCBNb2NrV2Vi
QXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uOwpAQCAtMTAwMiw2ICsxMDA2LDEwIEBAIHB1Ymxp
YzoKICAgICB1bnNpZ25lZCBjcmVhdGVTbGVlcERpc2FibGVyKGNvbnN0IFN0cmluZyYgcmVhc29u
LCBib29sIGRpc3BsYXkpOwogICAgIGJvb2wgZGVzdHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQg
aWRlbnRpZmllcik7CiAKKyNpZiBFTkFCTEUoV0VCWFIpCisgICAgRXhjZXB0aW9uT3I8UmVmUHRy
PFdlYlhSVGVzdD4+IHhyVGVzdCgpOworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQg
SW50ZXJuYWxzKERvY3VtZW50Jik7CiAgICAgRG9jdW1lbnQqIGNvbnRleHREb2N1bWVudCgpIGNv
bnN0OwpAQCAtMTAyNiw2ICsxMDM0LDEwIEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPENhY2hlU3Rv
cmFnZUNvbm5lY3Rpb24+IG1fY2FjaGVTdG9yYWdlQ29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8
dW5zaWduZWQsIHN0ZDo6dW5pcXVlX3B0cjxXZWJDb3JlOjpTbGVlcERpc2FibGVyPj4gbV9zbGVl
cERpc2FibGVyczsKKworI2lmIEVOQUJMRShXRUJYUikKKyAgICBSZWZQdHI8V2ViWFJUZXN0PiBt
X3hyVGVzdDsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsIGIvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9JbnRlcm5hbHMuaWRsCmluZGV4IDNkNGI5MjUxNzBhODVhMjA2NDkwOTEzNWYwNzM5
YmYzOTc5YjU3MDMuLmI5ZWE4MGY1ODMyMmM5YmY1ZjhlODc2ZWExNTUwNGVmMzM2Y2UwMjcgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwKQEAgLTkwNiw0ICs5MDYsNiBAQCBlbnVt
IENvbXBvc2l0aW5nUG9saWN5IHsKIAogICAgIHVuc2lnbmVkIGxvbmcgY3JlYXRlU2xlZXBEaXNh
YmxlcihET01TdHJpbmcgcmVhc29uLCBib29sZWFuIGRpc3BsYXkpOwogICAgIGJvb2xlYW4gZGVz
dHJveVNsZWVwRGlzYWJsZXIodW5zaWduZWQgbG9uZyBpZGVudGlmaWVyKTsKKworICAgIFtDb25k
aXRpb25hbD1XRUJYUiwgTWF5VGhyb3dFeGNlcHRpb25dIHJlYWRvbmx5IGF0dHJpYnV0ZSBXZWJY
UlRlc3QgeHJUZXN0OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
RmFrZVhSRGV2aWNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFrZVhSRGV2aWNl
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5lN2JhZDIyYWZkYTU0YmY4YjA4YTU0MzI3N2UxYTJhOGE2Y2Y0NGI3
Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZp
Y2UuY3BwCkBAIC0wLDAgKzEsODIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlh
IFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5o
IgorI2luY2x1ZGUgIldlYkZha2VYUkRldmljZS5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCisj
aW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJXZWJGYWtlWFJJbnB1
dENvbnRyb2xsZXIuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lkIFdlYkZha2VYUkRl
dmljZTo6c2V0Vmlld3MoVmVjdG9yPEZha2VYUlZpZXdJbml0PikKK3sKK30KKwordm9pZCBXZWJG
YWtlWFJEZXZpY2U6OmRpc2Nvbm5lY3QoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlz
ZSkKK3sKKyAgICBwcm9taXNlLnJlc29sdmUoKTsKK30KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6
OnNldFZpZXdlck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgb3JpZ2luLCBib29sIGVt
dWxhdGVkUG9zaXRpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKG9yaWdpbik7CisgICAgVU5VU0VE
X1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6Y2xl
YXJWaWV3ZXJPcmlnaW4oKQoreworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2ltdWxhdGVW
aXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRlKQoreworfQorCit2b2lkIFdlYkZha2VY
UkRldmljZTo6c2V0Qm91bmRzR2VvbWV0cnkoVmVjdG9yPEZha2VYUkJvdW5kc1BvaW50PikKK3sK
K30KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OnNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJh
bnNmb3JtSW5pdCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJEZXZpY2U6OmNsZWFyRmxvb3JPcmln
aW4oKQoreworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2ltdWxhdGVSZXNldFBvc2UoKQor
eworfQorCitXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0
ZUlucHV0U291cmNlQ29ubmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpCit7CisgICAgcmV0
dXJuIFdlYkZha2VYUklucHV0Q29udHJvbGxlcigpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJG
YWtlWFJEZXZpY2UuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzk0NWFiMWVkMjJhZWQ2NmJmNjc3MjA3ZDI3OGE0
ZGQ2ZDNiMGJmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJG
YWtlWFJEZXZpY2UuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIw
IElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25j
ZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhSQm91bmRzUG9pbnQuaCIK
KyNpbmNsdWRlICJGYWtlWFJJbnB1dFNvdXJjZUluaXQuaCIKKyNpbmNsdWRlICJGYWtlWFJWaWV3
SW5pdC5oIgorI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyLmgiCisjaW5jbHVkZSAiWFJWaXNpYmlsaXR5U3RhdGUuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJGYWtlWFJEZXZpY2UgZmluYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJGYWtlWFJEZXZpY2U+IHsKK3B1YmxpYzoKKyAgICB2b2lkIHNldFZp
ZXdzKFZlY3RvcjxGYWtlWFJWaWV3SW5pdD4pOworCisgICAgdm9pZCBkaXNjb25uZWN0KERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKKworICAgIHZvaWQgc2V0Vmlld2VyT3JpZ2luKEZha2VY
UlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNl
KTsKKworICAgIHZvaWQgY2xlYXJWaWV3ZXJPcmlnaW4oKTsKKworICAgIHZvaWQgc2ltdWxhdGVW
aXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRlKTsKKworICAgIHZvaWQgc2V0Qm91bmRz
R2VvbWV0cnkoVmVjdG9yPEZha2VYUkJvdW5kc1BvaW50PiBib3VuZHNDb29yZGluYXRlcyk7CisK
KyAgICB2b2lkIHNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCk7CisKKyAg
ICB2b2lkIGNsZWFyRmxvb3JPcmlnaW4oKTsKKworICAgIHZvaWQgc2ltdWxhdGVSZXNldFBvc2Uo
KTsKKworICAgIFdlYkZha2VYUklucHV0Q29udHJvbGxlciBzaW11bGF0ZUlucHV0U291cmNlQ29u
bmVjdGlvbihGYWtlWFJJbnB1dFNvdXJjZUluaXQpOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9X
ZWJGYWtlWFJEZXZpY2UuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg0YTczNmY2ZjBjZTY3OWFjZTM1NzRjOGMy
ZjY1ZTZlMmQ4YzY1OWEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYkZha2VYUkRldmljZS5pZGwKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdodCAo
QykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisg
ICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBJ
bnRlcmZhY2VOYW1lPUZha2VYUkRldmljZSwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxl
LAorXSBpbnRlcmZhY2UgV2ViRmFrZVhSRGV2aWNlIHsKKyAgLy8gU2V0cyB0aGUgdmFsdWVzIHRv
IGJlIHVzZWQgZm9yIHN1YnNlcXVlbnQKKyAgLy8gcmVxdWVzdEFuaW1hdGlvbkZyYW1lKCkgY2Fs
bGJhY2tzLgorICB2b2lkIHNldFZpZXdzKHNlcXVlbmNlPEZha2VYUlZpZXdJbml0PiB2aWV3cyk7
CisKKyAgLy8gYmVoYXZlcyBhcyBpZiBkZXZpY2Ugd2FzIGRpc2Nvbm5lY3RlZAorICBQcm9taXNl
PHZvaWQ+IGRpc2Nvbm5lY3QoKTsKKworICAvLyBTZXRzIHRoZSBvcmlnaW4gb2YgdGhlIHZpZXdl
cgorICB2b2lkIHNldFZpZXdlck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgb3JpZ2lu
LCBvcHRpb25hbCBib29sZWFuIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisKKyAgLy8gSWYg
YW4gb3JpZ2luIGlzIG5vdCBzcGVjaWZpZWQsIHRoZW4gdGhlIGRldmljZSBpcyBhc3N1bWVkIHRv
IG5vdCBiZSB0cmFja2luZywgZW11bGF0ZWRQb3NpdGlvbiBzaG91bGQKKyAgLy8gYmUgYXNzdW1l
ZCBmb3IgY2FzZXMgd2hlcmUgdGhlIFVBIG11c3QgYWx3YXlzIHByb3ZpZGUgYSBwb3NlLgorICB2
b2lkIGNsZWFyVmlld2VyT3JpZ2luKCk7CisKKyAgLy8gU2ltdWxhdGVzIGRldmljZXMgZm9jdXNp
bmcgYW5kIGJsdXJyaW5nIHNlc3Npb25zLgorICB2b2lkIHNpbXVsYXRlVmlzaWJpbGl0eUNoYW5n
ZShYUlZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUpOworCisgIHZvaWQgc2V0Qm91bmRz
R2VvbWV0cnkoc2VxdWVuY2U8RmFrZVhSQm91bmRzUG9pbnQ+IGJvdW5kc0Nvb3JkaW5hdGVzKTsK
KyAgLy8gU2V0cyB0aGUgbmF0aXZlIG9yaWdpbiBvZiB0aGUgcGh5c2ljYWwgZmxvb3IKKyAgdm9p
ZCBzZXRGbG9vck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQgZmxvb3JPcmlnaW4pOwor
CisgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2UgY2FuIG5vIGxvbmdlciBpZGVudGlmeSB0
aGUgbG9jYXRpb24gb2YgdGhlIHBoeXNpY2FsIGZsb29yLgorICB2b2lkIGNsZWFyRmxvb3JPcmln
aW4oKTsKKworICAvLyBVc2VkIHRvIHNpbXVsYXRlIGEgbWFqb3IgY2hhbmdlIGluIHRyYWNraW5n
IGFuZCB0aGF0IGEgcmVzZXQgcG9zZSBldmVudCBzaG91bGQgYmUgZmlyZWQKKyAgLy8gaHR0cHM6
Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZXZlbnQtdHlwZXMKKyAgdm9pZCBzaW11
bGF0ZVJlc2V0UG9zZSgpOworCisgIC8vIFVzZWQgdG8gY29ubmVjdCBhbmQgc2VuZCBpbnB1dCBl
dmVudHMKKyAgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIHNpbXVsYXRlSW5wdXRTb3VyY2VDb25u
ZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCBpbnB1dFNvdXJjZSk7Cit9OwpcIE5vIG5ld2xp
bmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViRmFr
ZVhSSW5wdXRDb250cm9sbGVyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43OTBjOTg3MGJiNDhjNTFjZTg1NWE1
YWUyZmIyYTM2NzFjYTcxNmIwCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwCkBAIC0wLDAgKzEsOTEgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3
aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0
aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5E
IElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElF
RCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBM
SUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJ
Q1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExF
IElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJ
TkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVO
VElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQg
T0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBP
UiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJ
U0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
CisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYkZha2VYUklucHV0Q29u
dHJvbGxlci5oIgorCisjaWYgRU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisK
K3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRIYW5kZWRuZXNzKFhSSGFuZGVkbmVz
cykKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFRhcmdldFJheU1v
ZGUoWFJUYXJnZXRSYXlNb2RlKQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxl
cjo6c2V0UHJvZmlsZXMoVmVjdG9yPFN0cmluZz4pCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyOjpzZXRHcmlwT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlw
T3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24pCit7CisgICAgVU5VU0VEX1BBUkFNKGdyaXBP
cmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShlbXVsYXRlZFBvc2l0aW9uKTsKK30KKwordm9pZCBX
ZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmNsZWFyR3JpcE9yaWdpbigpCit7Cit9CisKK3ZvaWQg
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQb2ludGVyT3JpZ2luKEZha2VYUlJpZ2lkVHJh
bnNmb3JtSW5pdCBwb2ludGVyT3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24pCit7CisgICAg
VU5VU0VEX1BBUkFNKHBvaW50ZXJPcmlnaW4pOworICAgIFVOVVNFRF9QQVJBTShlbXVsYXRlZFBv
c2l0aW9uKTsKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmRpc2Nvbm5lY3Qo
KQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6cmVjb25uZWN0KCkKK3sK
K30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnN0YXJ0U2VsZWN0aW9uKCkKK3sK
K30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OmVuZFNlbGVjdGlvbigpCit7Cit9
CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzaW11bGF0ZVNlbGVjdCgpCit7Cit9
CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRTdXBwb3J0ZWRCdXR0b25zKFZl
Y3RvcjxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+KQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0
Q29udHJvbGxlcjo6dXBkYXRlQnV0dG9uU3RhdGUoRmFrZVhSQnV0dG9uU3RhdGVJbml0KQorewor
fQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxl
ci5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi45MjdlMzVmMGZlZTczODkxMzBlNjFlOWZhNTk0MWY3YWFiNDA3NzQxCi0tLSAv
ZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXIuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxp
YSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhSQnV0dG9uU3RhdGVJbml0LmgiCisj
aW5jbHVkZSAiRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgiCisjaW5jbHVkZSAiWFJIYW5kZWRu
ZXNzLmgiCisjaW5jbHVkZSAiWFJUYXJnZXRSYXlNb2RlLmgiCisjaW5jbHVkZSA8d3RmL1JlZkNv
dW50ZWQuaD4KKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsK
KworY2xhc3MgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIGZpbmFsIDogcHVibGljIFJlZkNvdW50
ZWQ8V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyPiB7CitwdWJsaWM6CisgICAgdm9pZCBzZXRIYW5k
ZWRuZXNzKFhSSGFuZGVkbmVzcyk7CisKKyAgICB2b2lkIHNldFRhcmdldFJheU1vZGUoWFJUYXJn
ZXRSYXlNb2RlKTsKKworICAgIHZvaWQgc2V0UHJvZmlsZXMoVmVjdG9yPFN0cmluZz4pOworCisg
ICAgdm9pZCBzZXRHcmlwT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlwT3JpZ2lu
LCBib29sIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisKKyAgICB2b2lkIGNsZWFyR3JpcE9y
aWdpbigpOworCisgICAgdm9pZCBzZXRQb2ludGVyT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdCBwb2ludGVyT3JpZ2luLCBib29sIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisKKyAg
ICB2b2lkIGRpc2Nvbm5lY3QoKTsKKworICAgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAgICB2b2lk
IHN0YXJ0U2VsZWN0aW9uKCk7CisKKyAgICB2b2lkIGVuZFNlbGVjdGlvbigpOworCisgICAgdm9p
ZCBzaW11bGF0ZVNlbGVjdCgpOworCisgICAgdm9pZCBzZXRTdXBwb3J0ZWRCdXR0b25zKFZlY3Rv
cjxGYWtlWFJCdXR0b25TdGF0ZUluaXQ+KTsKKworICAgIHZvaWQgdXBkYXRlQnV0dG9uU3RhdGUo
RmFrZVhSQnV0dG9uU3RhdGVJbml0KTsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKwor
I2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3Rp
bmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zNWZkMGNlNDU4YmY1ZDM0
OTU0OGJkMGZkYzU2OGE0NWVjYmM2Yjk5Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsCkBAIC0wLDAgKzEsNzYgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29uZGl0
aW9uYWw9V0VCWFIsCisgICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKKyAgICBJbnRlcmZh
Y2VOYW1lPUZha2VYUklucHV0Q29udHJvbGxlcgorXSBpbnRlcmZhY2UgV2ViRmFrZVhSSW5wdXRD
b250cm9sbGVyIHsKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgaGFuZGVkbmVzcyBvZiB0aGUg
ZGV2aWNlIGhhcyBjaGFuZ2VkLgorICAgIHZvaWQgc2V0SGFuZGVkbmVzcyhYUkhhbmRlZG5lc3Mg
aGFuZGVkbmVzcyk7CisKKyAgICAvLyBJbmRpY2F0ZXMgdGhhdCB0aGUgdGFyZ2V0IHJheSBtb2Rl
IG9mIHRoZSBkZXZpY2UgaGFzIGNoYW5nZWQuCisgICAgdm9pZCBzZXRUYXJnZXRSYXlNb2RlKFhS
VGFyZ2V0UmF5TW9kZSB0YXJnZXRSYXlNb2RlKTsKKworICAgIC8vIEluZGljYXRlcyB0aGF0IHRo
ZSBsaXN0IG9mIHByb2ZpbGVzIHJlcHJlc2VudGluZyB0aGUgZGV2aWNlIGhhcyBjaGFuZ2VkLgor
ICAgIHZvaWQgc2V0UHJvZmlsZXMoc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm9maWxlcyk7CisKKyAg
ICAvLyBTZXRzIG9yIGNsZWFycyB0aGUgcG9zaXRpb24gb2YgdGhlIGNvbnRyb2xsZXIuICBJZiBu
b3Qgc2V0LCB0aGUgY29udHJvbGxlciBpcyBhc3N1bWVkIHRvCisgICAgLy8gbm90IGJlIHRyYWNr
ZWQuCisgICAgdm9pZCBzZXRHcmlwT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBncmlw
T3JpZ2luLCBvcHRpb25hbCBib29sZWFuIGVtdWxhdGVkUG9zaXRpb24gPSBmYWxzZSk7CisgICAg
dm9pZCBjbGVhckdyaXBPcmlnaW4oKTsKKworICAgIC8vIFNldHMgdGhlIHBvaW50ZXIgb3JpZ2lu
IGZvciB0aGUgY29udHJvbGxlci4KKyAgICB2b2lkIHNldFBvaW50ZXJPcmlnaW4oRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIG9wdGlvbmFsIGJvb2xlYW4gZW11bGF0ZWRQ
b3NpdGlvbiA9IGZhbHNlKTsKKworICAgIC8vIFRlbXBvcmFyaWx5IGRpc2Nvbm5lY3QgdGhlIGlu
cHV0IGRldmljZQorICAgIHZvaWQgZGlzY29ubmVjdCgpOworCisgICAgLy8gUmVjb25uZWN0IGEg
ZGlzY29ubmVjdGVkIGlucHV0IGRldmljZQorICAgIHZvaWQgcmVjb25uZWN0KCk7CisKKyAgICAv
LyBTdGFydCBhIHNlbGVjdGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUgcHJpbWFy
eSBpbnB1dAorICAgIC8vIElmIGEgZ2FtZXBhZCBpcyBzdXBwb3J0ZWQsIHNob3VsZCB1cGRhdGUg
dGhlIHN0YXRlIG9mIHRoZSBwcmltYXJ5IGJ1dHRvbiBhY2NvcmRpbmdseS4KKyAgICB2b2lkIHN0
YXJ0U2VsZWN0aW9uKCk7CisKKyAgICAvLyBFbmQgc2VsZWN0aW9uIGZvciB0aGUgY3VycmVudCBm
cmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgICAgLy8gSWYgYSBnYW1lcGFkIGlzIHN1cHBv
cnRlZCwgc2hvdWxkIHVwZGF0ZSB0aGUgc3RhdGUgb2YgdGhlIHByaW1hcnkgYnV0dG9uIGFjY29y
ZGluZ2x5LgorICAgIHZvaWQgZW5kU2VsZWN0aW9uKCk7CisKKyAgICAvLyBTaW11bGF0ZXMgYSBz
dGFydC9lbmRTZWxlY3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhlIHByaW1hcnkg
aW5wdXQKKyAgICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBzaG91bGQgdXBkYXRlIHRo
ZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHkuCisgICAgdm9pZCBzaW11
bGF0ZVNlbGVjdCgpOworCisgICAgLy8gVXBkYXRlcyB0aGUgc2V0IG9mIHN1cHBvcnRlZCBidXR0
b25zLCBpbmNsdWRpbmcgYW55IGluaXRpYWwgc3RhdGUuCisgICAgLy8gTm90ZSB0aGF0IHRoaXMg
bWV0aG9kIHNob3VsZCBub3QgYmUgZ2VuZXJhbGx5IHVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBv
ZiB0aGUKKyAgICAvLyBidXR0b25zLCBhcyB0aGUgVUEgbWF5IHRyZWF0IHRoaXMgYXMgcmUtY3Jl
YXRpbmcgdGhlIEdhbWVwYWQuCisgICAgLy8gTm90ZSB0aGF0IGlmIGFueSBGYWtlWFJCdXR0b25U
eXBlIGlzIHJlcGVhdGVkIHRoZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCisgICAgdm9pZCBzZXRT
dXBwb3J0ZWRCdXR0b25zKHNlcXVlbmNlPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4gc3VwcG9ydGVk
QnV0dG9ucyk7CisKKyAgICAvLyBVc2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2YgYSBidXR0b24g
Y3VycmVudGx5IHN1cHBvcnRlZCBieSB0aGUgaW5wdXQgc291cmNlCisgICAgLy8gV2lsbCBub3Qg
YWRkIHN1cHBvcnQgZm9yIHRoYXQgYnV0dG9uIGlmIGl0IGlzIG5vdCBjdXJyZW50bHkgc3VwcG9y
dGVkLgorICAgIHZvaWQgdXBkYXRlQnV0dG9uU3RhdGUoRmFrZVhSQnV0dG9uU3RhdGVJbml0IGJ1
dHRvblN0YXRlKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhS
VGVzdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWNjMmFiNGU0MjhjZGVhMjhjZTZiOTAyMTEwMzYxNDU5ZWFhMDUwNAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmNwcApAQCAtMCwwICsxLDQ3
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJXZWJYUlRl
c3QuaCIKKworI2lmIEVOQUJMRShXRUJYUikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCit2b2lk
IFdlYlhSVGVzdDo6c2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uKEZha2VYUkRldmljZUluaXQsIFdl
YkZha2VYUkRldmljZVByb21pc2UmJikgY29uc3QKK3sKK30KKwordm9pZCBXZWJYUlRlc3Q6OnNp
bXVsYXRlVXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24mKQor
eworfQorCit2b2lkIFdlYlhSVGVzdDo6ZGlzY29ubmVjdEFsbERldmljZXMoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
WFJUZXN0LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmMzMDg2OGYxYmViZDM0N2NmODJjM2RkMTEwYzYzN2ExMjZhYzI5ZDkKLS0tIC9kZXYvbnVsbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5oCkBAIC0wLDAgKzEsNzkgQEAK
Ky8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIldlYkZha2VYUkRldmljZS5o
IgorI2luY2x1ZGUgIlhSU2Vzc2lvbk1vZGUuaCIKKyNpbmNsdWRlICJYUlNpbXVsYXRlVXNlckFj
dGl2YXRpb25GdW5jdGlvbi5oIgorI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0pTQ0pTVmFsdWUu
aD4KKyNpbmNsdWRlIDx3dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSU3lzdGVtOworCitjbGFzcyBX
ZWJYUlRlc3QgZmluYWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJYUlRlc3Q+IHsKK3B1YmxpYzoK
KyAgICBzdHJ1Y3QgRmFrZVhSRGV2aWNlSW5pdCB7CisgICAgICAgIGJvb2wgc3VwcG9ydHNJbW1l
cnNpdmUgeyBmYWxzZSB9OworICAgICAgICBPcHRpb25hbDxWZWN0b3I8WFJTZXNzaW9uTW9kZT4+
IHN1cHBvcnRlZE1vZGVzOworICAgICAgICBWZWN0b3I8RmFrZVhSVmlld0luaXQ+IHZpZXdzOwor
CisgICAgICAgIE9wdGlvbmFsPFZlY3RvcjxKU0M6OkpTVmFsdWU+PiBzdXBwb3J0ZWRGZWF0dXJl
czsKKworICAgICAgICBPcHRpb25hbDxWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+PiBib3VuZHND
b29yZGluYXRlczsKKworICAgICAgICBPcHRpb25hbDxGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQ+
IGZsb29yT3JpZ2luOworICAgICAgICBPcHRpb25hbDxGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQ+
IHZpZXdlck9yaWdpbjsKKyAgICB9OworCisgICAgc3RhdGljIFJlZjxXZWJYUlRlc3Q+IGNyZWF0
ZShXZWFrUHRyPFdlYlhSU3lzdGVtPiYmIHN5c3RlbSkgeyByZXR1cm4gYWRvcHRSZWYoKm5ldyBX
ZWJYUlRlc3QoV1RGTW92ZShzeXN0ZW0pKSk7IH0KKworICAgIHVzaW5nIFdlYkZha2VYUkRldmlj
ZVByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPFdlYkZha2VYUkRldmlj
ZT4+OworICAgIHZvaWQgc2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uKEZha2VYUkRldmljZUluaXQs
IFdlYkZha2VYUkRldmljZVByb21pc2UmJikgY29uc3Q7CisKKyAgICAvLyBTaW11bGF0ZXMgYSB1
c2VyIGFjdGl2YXRpb24gKGFrYSB1c2VyIGdlc3R1cmUpIGZvciB0aGUgY3VycmVudCBzY29wZS4K
KyAgICAvLyBUaGUgYWN0aXZhdGlvbiBpcyBvbmx5IGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgaW4g
dGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGFuZCBvbmx5IGFwcGxpZXMgdG8gV2ViWFIKKyAgICAvLyBE
ZXZpY2UgQVBJIG1ldGhvZHMuCisgICAgdm9pZCBzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKFhSU2lt
dWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uJik7CisKKyAgICAvLyBEaXNjb25uZWN0IGFsbCBm
YWtlIGRldmljZXMKKyAgICB2b2lkIGRpc2Nvbm5lY3RBbGxEZXZpY2VzKERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmKTsKKworcHJpdmF0ZToKKyAgICBXZWJYUlRlc3QoV2Vha1B0cjxXZWJYUlN5
c3RlbT4mJiBzeXN0ZW0pCisgICAgICAgIDogbV9jb250ZXh0KFdURk1vdmUoc3lzdGVtKSkgeyB9
CisKKyAgICBXZWFrUHRyPFdlYlhSU3lzdGVtPiBtX2NvbnRleHQ7Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL1dlYlhSVGVzdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYlhSVGVzdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmYyYTU2Mzg5MzYxYmVhMmRiMzJiODE1ZWZiYmQy
YzQ5NjY2ZTQ0MAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
WFJUZXN0LmlkbApAQCAtMCwwICsxLDgxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEln
YWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovIAorCitbCisgICAgRW5hYmxl
ZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBFeHBvcnRNYWNy
bz1XRUJDT1JFX1RFU1RTVVBQT1JUX0VYUE9SVCwKKyAgICBFeHBvc2VkPVdpbmRvdywKKyAgICBJ
bnRlcmZhY2VOYW1lPVhSVGVzdCwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tzVlRhYmxlLAorXSBp
bnRlcmZhY2UgV2ViWFJUZXN0IHsKKyAgICAvLyBTaW11bGF0ZXMgY29ubmVjdGluZyBhIGRldmlj
ZSB0byB0aGUgc3lzdGVtLgorICAgIC8vIFVzZWQgdG8gaW5zdGFudGlhdGUgYSBmYWtlIGRldmlj
ZSBmb3IgdXNlIGluIHRlc3RzLgorICAgIFByb21pc2U8V2ViRmFrZVhSRGV2aWNlPiBzaW11bGF0
ZURldmljZUNvbm5lY3Rpb24oRmFrZVhSRGV2aWNlSW5pdCBpbml0KTsKKworICAgIC8vIFNpbXVs
YXRlcyBhIHVzZXIgYWN0aXZhdGlvbiAoYWthIHVzZXIgZ2VzdHVyZSkgZm9yIHRoZSBjdXJyZW50
IHNjb3BlLgorICAgIC8vIFRoZSBhY3RpdmF0aW9uIGlzIG9ubHkgZ3VhcmFudGVlZCB0byBiZSB2
YWxpZCBpbiB0aGUgcHJvdmlkZWQgZnVuY3Rpb24gYW5kIG9ubHkgYXBwbGllcyB0byBXZWJYUgor
ICAgIC8vIERldmljZSBBUEkgbWV0aG9kcy4KKyAgICB2b2lkIHNpbXVsYXRlVXNlckFjdGl2YXRp
b24oWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gZik7CisKKyAgICAvLyBEaXNjb25u
ZWN0IGFsbCBmYWtlIGRldmljZXMKKyAgICBQcm9taXNlPHZvaWQ+IGRpc2Nvbm5lY3RBbGxEZXZp
Y2VzKCk7Cit9OworCitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRp
b25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJEZXZpY2VJbml0IHsKKyAgICAvLyBEZXBy
ZWNhdGVkIC0gdXNlIGBzdXBwb3J0ZWRNb2Rlc2AgaW5zdGVhZC4KKyAgICByZXF1aXJlZCBib29s
ZWFuIHN1cHBvcnRzSW1tZXJzaXZlOworICAgIC8vIFNlcXVlbmNlIG9mIG1vZGVzIHRoYXQgc2hv
dWxkIGJlIHN1cHBvcnRlZCBieSB0aGlzIGRldmljZS4KKyAgICBzZXF1ZW5jZTxYUlNlc3Npb25N
b2RlPiBzdXBwb3J0ZWRNb2RlczsKKyAgICByZXF1aXJlZCBzZXF1ZW5jZTxGYWtlWFJWaWV3SW5p
dD4gdmlld3M7CisKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhy
LyNmZWF0dXJlLW5hbWUKKyAgICAvLyBUaGUgbGlzdCBvZiBmZWF0dXJlIG5hbWVzIHRoYXQgdGhp
cyBkZXZpY2Ugc3VwcG9ydHMuCisgICAgLy8gQW55IHJlcXVlc3RzIGZvciBmZWF0dXJlcyBub3Qg
aW4gdGhpcyBsaXN0IHNob3VsZCBiZSByZWplY3RlZCwgd2l0aCB0aGUgZXhjZXB0aW9uIG9mIHRo
b3NlCisgICAgLy8gdGhhdCBhcmUgZ3VhcmFudGVlZCByZWdhcmRsZXNzIG9mIGRldmljZSBhdmFp
bGFiaWxpdHkgKGUuZy4gJ3ZpZXdlcicpLgorICAgIC8vIElmIG5vdCBzcGVjaWZpZWQvZW1wdHks
IHRoZSBkZXZpY2Ugc3VwcG9ydHMgbm8gZmVhdHVyZXMuCisgICAgLy8gTk9URTogVGhpcyBpcyBt
ZWFudCB0byBlbXVsYXRlIGhhcmR3YXJlIHN1cHBvcnQsIG5vdCB3aGV0aGVyIGEgZmVhdHVyZSBp
cworICAgIC8vIGN1cnJlbnRseSBhdmFpbGFibGUgKGUuZy4gYm91bmRzIG5vdCBiZWluZyB0cmFj
a2VkIHBlciBiZWxvdykKKyAgICBzZXF1ZW5jZTxhbnk+IHN1cHBvcnRlZEZlYXR1cmVzOworCisg
ICAgLy8gVGhlIGJvdW5kcyBjb29yZGluYXRlcy4gSWYgZW1wdHksIG5vIGJvdW5kZWQgcmVmZXJl
bmNlIHNwYWNlIGlzIGN1cnJlbnRseSB0cmFja2VkLgorICAgIC8vIElmIG5vdCwgbXVzdCBoYXZl
IGF0IGxlYXN0IHRocmVlIGVsZW1lbnRzLgorICAgIHNlcXVlbmNlPEZha2VYUkJvdW5kc1BvaW50
PiBib3VuZHNDb29yZGluYXRlczsKKworICAgIC8vIEEgdHJhbnNmb3JtIHVzZWQgdG8gaWRlbnRp
ZnkgdGhlIHBoeXNpY2FsIHBvc2l0aW9uIG9mIHRoZSB1c2VyJ3MgZmxvb3IuCisgICAgLy8gSWYg
bm90IHNldCwgaW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBjYW5ub3QgaWRlbnRpZnkgdGhlIHBo
eXNpY2FsIGZsb29yLgorICAgIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBmbG9vck9yaWdpbjsK
KworICAgIC8vIG5hdGl2ZSBvcmlnaW4gb2YgdGhlIHZpZXdlcgorICAgIC8vIElmIG5vdCBzZXQs
IHRoZSBkZXZpY2UgaXMgY3VycmVudGx5IGFzc3VtZWQgdG8gbm90IGJlIHRyYWNraW5nLCBhbmQg
eHJGcmFtZS5nZXRWaWV3ZXJQb3NlIHNob3VsZAorICAgIC8vIG5vdCByZXR1cm4gYSBwb3NlLgor
ICAgIC8vCisgICAgLy8gVGhpcyBzZXRzIHRoZSB2aWV3ZXIgb3JpZ2luICpzaG9ydGx5IGFmdGVy
KiBpbml0aWFsaXphdGlvbjsgc2luY2UgdGhlIHZpZXdlciBvcmlnaW4gYXQgaW5pdGlhbGl6YXRp
b24KKyAgICAvLyBpcyB1c2VkIHRvIHByb3ZpZGUgYSByZWZlcmVuY2Ugb3JpZ2luIGZvciBhbGwg
bWF0cmljZXMuCisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHZpZXdlck9yaWdpbjsKK307
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZh
dGlvbkZ1bmN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0
aXZhdGlvbkZ1bmN0aW9uLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYmYzYjg3MWMyNjEyM2M4MTIwYmY3Njk2ZmZi
ZDM5OGEzYmI4YTgyNQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3Rpbmcv
WFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaApAQCAtMCwwICsxLDQ3IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAi
QWN0aXZlRE9NQ2FsbGJhY2suaCIKKyNpbmNsdWRlICJDYWxsYmFja1Jlc3VsdC5oIgorI2luY2x1
ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgV2Vi
WFJGcmFtZTsKKworY2xhc3MgWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24gOiBwdWJs
aWMgUmVmQ291bnRlZDxYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbj4sIHB1YmxpYyBB
Y3RpdmVET01DYWxsYmFjayB7CitwdWJsaWM6CisgICAgdXNpbmcgQWN0aXZlRE9NQ2FsbGJhY2s6
OkFjdGl2ZURPTUNhbGxiYWNrOworCisgICAgdmlydHVhbCBDYWxsYmFja1Jlc3VsdDx2b2lkPiBo
YW5kbGVFdmVudChKU0M6OkpTVmFsdWUpID0gMDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKKworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaWRsIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDJlMjJiYTM2YzJjOGM2ZWU3MTk0YWViYWNiYjNiODNhZmE3ZjEwMAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9u
RnVuY3Rpb24uaWRsCkBAIC0wLDAgKzEsMjggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAg
SWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBv
dGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9S
UyBgYEFTIElTJycgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBP
RiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFS
RQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJV
U0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OCisgKiBBTlkgVEhFT1JZ
IE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMKKyAqIFNPRlRXQVJFLCBFVkVOIElGIEFEVklT
RUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBDb25k
aXRpb25hbD1XRUJYUiwKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhSCitdIGNhbGxiYWNrIFhS
U2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uID0gdm9pZCAoYW55Li4uIGFyZ3VtZW50cyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggNjdjNDhhMTYyM2I5YmNiYjcyZTIyNzdiYjFmNDA1ZmU2NmE0OWQ0YS4uM2RkZmI4
OTE4ZDMyY2VkN2E4YTFkZGUzNThlNTc4MTAwY2ZlN2UyYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIwLTA0LTIxICBTZXJnaW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgor
CisgICAgICAgIFtXZWJYUl0gVGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgRGVhbiBKYWNrc29uIGFuZCBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogcGxhdGZvcm0v
d3BlL1Rlc3RFeHBlY3RhdGlvbnM6IEFkZGVkIGJ1ZyBudW1iZXIgdG8gdGhlIHBhc3Npbmcgd2Vi
eHIgdGVzdC4KKwogMjAyMC0wNC0yMCAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdIEdhcmRlbmluZywgdXBkYXRlIGV4cGVjdGF0aW9ucyBhZnRl
ciByMjYwMzU2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVj
dGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4
IDE3YjFjM2NlM2JkN2UwYTU4YzQzOTk1NDhkYWYzZWI1ZTE1NjcyMWEuLjA4ZmQwMTIzODVmM2Zj
NWZkMzQ2NmQxZDgwYzUxNDkyN2VjOTQ0ZTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9U
ZXN0RXhwZWN0YXRpb25zCkBAIC0xMDIyLDcgKzEwMjIsOCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGluZy1tb2Rlcy9tb25nb2xpYW4tb3JpZW50YXRpb24t
MDAyLgogIyBQYXNzaW5nIHNpbmNlIHIyNTc1NjIuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtdGV4dC93aGl0ZS1zcGFjZS9wcmUtd3JhcC0wMTMuaHRtbCBbIFBhc3Mg
XQogCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnhyL2lkbGhhcm5lc3MuaHR0
cHMud2luZG93Lmh0bWwgWyBQYXNzIF0KKyMgV2ViWFIKK3dlYmtpdC5vcmcvYi8yMDk4NTkgaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRv
dy5odG1sIFsgUGFzcyBdCiAKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIDUu
IFRFU1RTIENSQVNISU5HCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>397108</attachid>
            <date>2020-04-21 13:17:38 -0700</date>
            <delta_ts>2020-04-21 13:17:38 -0700</delta_ts>
            <desc>Patch for landing v2</desc>
            <filename>bug-209859-20200421221736.patch</filename>
            <type>text/plain</type>
            <size>83437</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwNDQ3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmE1YWVhODAzNzVjNzZh
MGZhYzc1MTNlYzQ1Y2M4MDcyM2U1NWVhYi4uZWFmNGNjMGRmOWZhNjNhZjllOGZkZmRjMTI2NDIx
ZGY5OGI0ZWQzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg1IEBACisyMDIwLTA0LTIxICBTZXJn
aW8gVmlsbGFyIFNlbmluICA8c3ZpbGxhckBpZ2FsaWEuY29tPgorCisgICAgICAgIFtXZWJYUl0g
VGVzdCBJRExzIGFuZCBzdHVicworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjA5ODU5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGVhbiBKYWNrc29uIGFu
ZCBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdlYlhSIHRlc3RpbmcgaXMgaGFyZCBhcyBpdCBt
aWdodCBpbnZvbHZlIGludGVyYWN0aW9uIHdpdGggYWN0dWFsCisgICAgICAgIGRldmljZXMuIFRo
YXQncyB3aHkgdGhlIFdlYlhSIHRlc3RpbmcKKyAgICAgICAgQVBJIChodHRwczovL2ltbWVyc2l2
ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLXRlc3QtYXBpLykgd2FzCisgICAgICAgIHByb3Bvc2VkLiBJ
biBmYWN0LCBhbGwgdGhlIGN1cnJlbnQgV2ViWFIgdGVzdHMgZnJvbQorICAgICAgICB3ZWItcGxh
dGZvcm0tdGVzdHMgYXJlIHVzaW5nIHRoYXQgdGVzdGluZyBBUEkuIFRoaXMgbmV3IHRlc3RpbmcK
KyAgICAgICAgQVBJIHN1cHBsZW1lbnRzIG5hdmlnYXRvci54ciBhbmQgaXMgYWNjZXNzZWQgdGhy
b3VnaAorICAgICAgICBuYXZpZ2F0b3IueHIudGVzdC4KKworICAgICAgICBJbiBvcmRlciBub3Qg
dG8gZXhwb3NlIHRoZSBBUEkgdG8gdGhlIHdlYiB3ZSdyZSBhZGRpbmcgdGhlIFhSVGVzdAorICAg
ICAgICBpbnRlcmZhY2UgdG8gSW50ZXJuYWxzIGluc3RlYWQuIFRoZSBtYXBwaW5nIGZyb20gaW50
ZXJuYWxzLnhyVGVzdCB0bworICAgICAgICBuYXZpZ2F0b3IueHIudGVzdCBoYXBwZW5zIGluIHRo
ZSBXUFQgY29kZS4KKworICAgICAgICBXZSdyZSBhZGRpbmcgdGhlIHJlcXVpcmVkIElETHMgYW5k
IHZlcnkgYmFzaWMgKG1vc3RseSBlbXB0eSkKKyAgICAgICAgaW1wbGVtZW50YXRpb25zIGZvciB0
ZXN0aW5nIG1ldGhvZHMuIFdlJ3JlIGFkZGluZyB0ZXN0aW5nCisgICAgICAgIGluZnJhc3RydWN0
dXJlLCBhZGRpbmcgdGVzdHMgbWFrZSBubyBzZW5zZSBmb3IgdGhpcyBjaGFuZ2UuCisKKyAgICAg
ICAgKiBDTWFrZUxpc3RzLnR4dDogQWRkZWQgbmV3IGZpbGVzLgorICAgICAgICAqIERlcml2ZWRT
b3VyY2VzLm1ha2U6IERpdHRvLgorICAgICAgICAqIE1vZHVsZXMvd2VieHIvTmF2aWdhdG9yV2Vi
WFIuaDogRXhwb3J0IEFQSSB0byBiZSB1c2VkIGluIHRlc3RpbmcgY29kZS4KKyAgICAgICAgKiBN
b2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmg6IEV4cG9ydCA6OmZyb20gYW5kIDo6eHIgbWV0aG9k
cy4KKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6IERpdHRvLgor
ICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaDogQWRkZWQgc29tZSBu
ZXcgbWFjcm9zLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSQm91bmRzUG9pbnQuaDogQWRkZWQu
CisgICAgICAgICogdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0Lmg6IEFkZGVkLgorICAgICAgICAqIHRl
c3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbDogQWRkZWQuCisgICAgICAgICogdGVzdGlu
Zy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtl
WFJJbnB1dFNvdXJjZUluaXQuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlJp
Z2lkVHJhbnNmb3JtSW5pdC5oOiBBZGRlZC4KKyAgICAgICAgKiB0ZXN0aW5nL0Zha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdC5pZGw6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvRmFrZVhSVmlld0lu
aXQuaDogQWRkZWQuCisgICAgICAgICogdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5pZGw6IEFkZGVk
LgorICAgICAgICAqIHRlc3RpbmcvSW50ZXJuYWxzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklu
dGVybmFsczo6eHJUZXN0KTogQWRkZWQgV2ViWFJUZXN0IHRvIEludGVybmFscy4KKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5oOiBBZGRlZCB4clRlc3QoKSBhY2Nlc3Nvci4KKyAgICAgICAg
KiB0ZXN0aW5nL0ludGVybmFscy5pZGw6IEFkZGVkIHhyVGVzdCBhdHRyaWJ1dGUuCisgICAgICAg
ICogdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYkZha2VYUkRldmljZTo6c2V0Vmlld3MpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhS
RGV2aWNlOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6
c2V0Vmlld2VyT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6Y2xl
YXJWaWV3ZXJPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNlOjpzaW11
bGF0ZVZpc2liaWxpdHlDaGFuZ2UpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSRGV2aWNl
OjpzZXRCb3VuZHNHZW9tZXRyeSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6
OnNldEZsb29yT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6Y2xl
YXJGbG9vck9yaWdpbik6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJEZXZpY2U6OnNpbXVs
YXRlUmVzZXRQb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUkRldmljZTo6c2ltdWxh
dGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24pOgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSRGV2
aWNlLmg6IEFkZGVkLgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbDogQWRk
ZWQuCisgICAgICAgICogdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2V0SGFuZGVk
bmVzcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFRh
cmdldFJheU1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVy
OjpzZXRQcm9maWxlcyk6CisgICAgICAgIChXZWJDb3JlOjpXZWJGYWtlWFJJbnB1dENvbnRyb2xs
ZXI6OnNldEdyaXBPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250
cm9sbGVyOjpjbGVhckdyaXBPcmlnaW4pOgorICAgICAgICAoV2ViQ29yZTo6V2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyOjpzZXRQb2ludGVyT3JpZ2luKToKKyAgICAgICAgKFdlYkNvcmU6OldlYkZh
a2VYUklucHV0Q29udHJvbGxlcjo6ZGlzY29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJG
YWtlWFJJbnB1dENvbnRyb2xsZXI6OnJlY29ubmVjdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJG
YWtlWFJJbnB1dENvbnRyb2xsZXI6OnN0YXJ0U2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNvcmU6
OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6ZW5kU2VsZWN0aW9uKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6c2ltdWxhdGVTZWxlY3QpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRTdXBwb3J0ZWRCdXR0b25zKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYkZha2VYUklucHV0Q29udHJvbGxlcjo6dXBkYXRlQnV0dG9u
U3RhdGUpOgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmg6IEFk
ZGVkLgorICAgICAgICAqIHRlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmlkbDogQWRk
ZWQuCisgICAgICAgICogdGVzdGluZy9XZWJYUlRlc3QuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdl
YkNvcmU6OldlYlhSVGVzdDo6c2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlhSVGVzdDo6c2ltdWxhdGVVc2VyQWN0aXZhdGlvbik6CisgICAgICAg
IChXZWJDb3JlOjpXZWJYUlRlc3Q6OmRpc2Nvbm5lY3RBbGxEZXZpY2VzKToKKyAgICAgICAgKiB0
ZXN0aW5nL1dlYlhSVGVzdC5oOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlhSVGVzdDo6
Y3JlYXRlKToKKyAgICAgICAgKiB0ZXN0aW5nL1dlYlhSVGVzdC5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rpb24uaDogQWRkZWQuCisg
ICAgICAgICogdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGw6IERp
dHRvLgorCiAyMDIwLTA0LTIwICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIEhvcml6b250YWwgb3ZlcmZsb3cgb3ZlcmxheSBzY3JvbGxiYXIgaXMgbWlz
cGxhY2VkIGluIFJUTApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQg
Yi9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAppbmRleCBmNjA2MzFmN2MzNzVlM2FmOGQ4
NTg2OWRhZjlmYmVhNWMxMTQwMTRhLi41YmYxMWU2OGQzNGIwNjY1NDUzODhiYzc3YmU4ZTRjNDU2
MWJkMDlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAorKysgYi9T
b3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dApAQCAtMTY1Niw2ICsxNjU2LDI2IEBAIGxpc3Qo
QVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VTCiAgICAgdGVzdGluZy9qcy9XZWJDb3Jl
VGVzdFN1cHBvcnQuY3BwCiApCiAKKworaWYgKEVOQUJMRV9XRUJYUikKKyAgICBsaXN0KEFQUEVO
RCBXZWJDb3JlVGVzdFN1cHBvcnRfSURMX0ZJTEVTCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQm91
bmRzUG9pbnQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJbml0LmlkbAor
ICAgICAgICB0ZXN0aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5pZGwKKyAgICAgICAgdGVzdGlu
Zy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaWRsCisgICAgICAgIHRlc3RpbmcvRmFrZVhSVmll
d0luaXQuaWRsCisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmlkbAorICAgICAgICB0
ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGwKKyAgICAgICAgdGVzdGluZy9XZWJY
UlRlc3QuaWRsCisgICAgICAgIHRlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVuY3Rp
b24uaWRsCisgICAgKQorICAgIGxpc3QoQVBQRU5EIFdlYkNvcmVUZXN0U3VwcG9ydF9TT1VSQ0VT
CisgICAgICAgIHRlc3RpbmcvV2ViRmFrZVhSRGV2aWNlLmNwcAorICAgICAgICB0ZXN0aW5nL1dl
YkZha2VYUklucHV0Q29udHJvbGxlci5jcHAKKyAgICAgICAgdGVzdGluZy9XZWJYUlRlc3QuY3Bw
CisgICAgKQorZW5kaWYgKCkKKwogIyBNb2R1bGVzIHRoYXQgdGhlIGJpbmRpbmdzIGdlbmVyYXRv
ciBzY3JpcHRzIG1heSB1c2UKIHNldChTQ1JJUFRTX1JFU09MVkVfU1VQUExFTUVOVEFMCiAgICAg
JHtXRUJDT1JFX0RJUn0vYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJp
dmVkU291cmNlcy5tYWtlCmluZGV4IDAwMjNjZjc2MWQxNTVhYWI2NDMyZDcyMWYzY2M0ZTczMjY0
NjFhYzAuLjA3Mzg1YTRjMmU0NjMxMDA4YTBlOWQzMjU3N2VlMTY1MmQ2YWIwOWYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMubWFrZQpAQCAtMTExOCw2ICsxMTE4LDE1IEBAIEpTX0JJTkRJTkdf
SURMUyA9IFwKICAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvTW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29u
ZmlndXJhdGlvbi5pZGwgXAogICAgICQoV2ViQ29yZSkvdGVzdGluZy9TZXJ2aWNlV29ya2VySW50
ZXJuYWxzLmlkbCBcCiAgICAgJChXZWJDb3JlKS90ZXN0aW5nL1R5cGVDb252ZXJzaW9ucy5pZGwg
XAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5pZGwgXAorICAgICQo
V2ViQ29yZSkvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0ZUluaXQuaWRsIFwKKyAgICAkKFdlYkNv
cmUpL3Rlc3RpbmcvRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbCBcCisgICAgJChXZWJDb3JlKS90
ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVz
dGluZy9GYWtlWFJWaWV3SW5pdC5pZGwgXAorICAgICQoV2ViQ29yZSkvdGVzdGluZy9XZWJGYWtl
WFJEZXZpY2UuaWRsIFwKKyAgICAkKFdlYkNvcmUpL3Rlc3RpbmcvV2ViRmFrZVhSSW5wdXRDb250
cm9sbGVyLmlkbCBcCisgICAgJChXZWJDb3JlKS90ZXN0aW5nL1dlYlhSVGVzdC5pZGwgXAorICAg
ICQoV2ViQ29yZSkvdGVzdGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5pZGwg
XAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9BYnN0cmFjdFdvcmtlci5pZGwgXAogICAgICQoV2Vi
Q29yZSkvd29ya2Vycy9EZWRpY2F0ZWRXb3JrZXJHbG9iYWxTY29wZS5pZGwgXAogICAgICQoV2Vi
Q29yZSkvd29ya2Vycy9Xb3JrZXIuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2VieHIvTmF2aWdhdG9yV2ViWFIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
eHIvTmF2aWdhdG9yV2ViWFIuaAppbmRleCBmZjM0ZTRlNTlmMzljODlkYjJhOTJhNDE2MGI4ODAz
ZWUwN2Y0MmRiLi4yM2M2MGM1YzgyZTllMjA2NWE1YmI3ODMxOWM3ODQyNjBhZDNkOWM1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL05hdmlnYXRvcldlYlhSLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9OYXZpZ2F0b3JXZWJYUi5oCkBAIC0zOSwx
MSArMzksMTEgQEAgY2xhc3MgV2ViWFJTeXN0ZW07CiBjbGFzcyBOYXZpZ2F0b3JXZWJYUiBmaW5h
bCA6IHB1YmxpYyBTdXBwbGVtZW50PE5hdmlnYXRvcj4gewogICAgIFdURl9NQUtFX0ZBU1RfQUxM
T0NBVEVEOwogcHVibGljOgotICAgIHN0YXRpYyBXZWJYUlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBXZWJY
UlN5c3RlbSYgeHIoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIE5hdmlnYXRvciYpOwogCi1wcml2
YXRlOgotICAgIHN0YXRpYyBOYXZpZ2F0b3JXZWJYUiYgZnJvbShOYXZpZ2F0b3ImKTsKKyAgICBX
RUJDT1JFX0VYUE9SVCBzdGF0aWMgTmF2aWdhdG9yV2ViWFImIGZyb20oTmF2aWdhdG9yJik7CiAK
K3ByaXZhdGU6CiAgICAgUmVmUHRyPFdlYlhSU3lzdGVtPiBtX3hyOwogfTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJ4ci9XZWJYUlN5c3RlbS5oCmluZGV4IGQwYmQ1NGJkYzY1ZmUyOWVk
OWUyNzEwOTIwYmM1ZjRmYmU2NTY3YWUuLjk2MTRjOTM3NDViOTk4Zjk1NTBiZTM2OGQ5MDA1YTc5
ZTU3MzIyZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2VieHIvV2ViWFJT
eXN0ZW0uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnhyL1dlYlhSU3lzdGVtLmgK
QEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJYUlNlc3Npb25Nb2RlLmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvYy5oPgogI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCkBAIC00MCwxNCArNDEsMTQg
QEAgY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFdlYlhSU2Vzc2lvbjsKIHN0
cnVjdCBYUlNlc3Npb25Jbml0OwogCi1jbGFzcyBXZWJYUlN5c3RlbSBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYlhSU3lzdGVtPiwgcHVibGljIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGEs
IHB1YmxpYyBBY3RpdmVET01PYmplY3QgeworY2xhc3MgV2ViWFJTeXN0ZW0gZmluYWwgOiBwdWJs
aWMgUmVmQ291bnRlZDxXZWJYUlN5c3RlbT4sIHB1YmxpYyBFdmVudFRhcmdldFdpdGhJbmxpbmVE
YXRhLCBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8V2ViWFJT
eXN0ZW0+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKFdlYlhSU3lzdGVtKTsKIHB1Ymxp
YzoKICAgICB1c2luZyBJc1Nlc3Npb25TdXBwb3J0ZWRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVy
cmVkPElETEJvb2xlYW4+OwogICAgIHVzaW5nIFJlcXVlc3RTZXNzaW9uUHJvbWlzZSA9IERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViWFJTZXNzaW9uPj47CiAKICAgICBzdGF0aWMg
UmVmPFdlYlhSU3lzdGVtPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYpOwotICAgIHZp
cnR1YWwgfldlYlhSU3lzdGVtKCk7CisgICAgfldlYlhSU3lzdGVtKCk7CiAKICAgICB1c2luZyBS
ZWZDb3VudGVkPFdlYlhSU3lzdGVtPjo6cmVmOwogICAgIHVzaW5nIFJlZkNvdW50ZWQ8V2ViWFJT
eXN0ZW0+OjpkZXJlZjsKQEAgLTU1LDkgKzU2LDcgQEAgcHVibGljOgogICAgIHZvaWQgaXNTZXNz
aW9uU3VwcG9ydGVkKFhSU2Vzc2lvbk1vZGUsIElzU2Vzc2lvblN1cHBvcnRlZFByb21pc2UmJik7
CiAgICAgdm9pZCByZXF1ZXN0U2Vzc2lvbihYUlNlc3Npb25Nb2RlLCBjb25zdCBYUlNlc3Npb25J
bml0JiwgUmVxdWVzdFNlc3Npb25Qcm9taXNlJiYpOwogCi1wcml2YXRlOgotICAgIFdlYlhSU3lz
dGVtKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKLQorcHJvdGVjdGVkOgogICAgIC8vIEV2ZW50
VGFyZ2V0CiAgICAgRXZlbnRUYXJnZXRJbnRlcmZhY2UgZXZlbnRUYXJnZXRJbnRlcmZhY2UoKSBj
b25zdCBvdmVycmlkZSB7IHJldHVybiBXZWJYUlN5c3RlbUV2ZW50VGFyZ2V0SW50ZXJmYWNlVHlw
ZTsgfQogICAgIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSBjb25zdCBvdmVycmlkZSB7IHJldHVybiBBY3RpdmVET01PYmplY3Q6OnNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQoKTsgfQpAQCAtNjcsNiArNjYsOSBAQCBwcml2YXRlOgogICAgIC8vIEFjdGl2ZURP
TU9iamVjdAogICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBvdmVy
cmlkZTsKICAgICB2b2lkIHN0b3AoKSBvdmVycmlkZTsKKworcHJpdmF0ZToKKyAgICBXZWJYUlN5
c3RlbShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKaW5kZXggMjhhMDAxNzcwNjE1MDEzOThmY2Q1NmRkNTczMjg3ZmIwYzc2YzE4Mi4uY2RlNTA4
NjdjZTVkYmI5MDI3YzIxYjVkNzU4OThlOGUzNTQxNmEyMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJD
b3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTUxNDgsOCArMTUxNDgs
NDUgQEAKIAkJRTE4NTM2ODIxRjRFNDcyNzAwRkUwOTFCIC8qIFdlYkFyY2hpdmVSZXNvdXJjZUZy
b21OU0F0dHJpYnV0ZWRTdHJpbmcubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBXZWJBcmNoaXZl
UmVzb3VyY2VGcm9tTlNBdHRyaWJ1dGVkU3RyaW5nLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlFMThDMzU0MTFGNzE5NkNEMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNlV2Vi
UmVzb3VyY2VIYW5kbGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkFyY2hpdmVSZXNvdXJjZVdlYlJl
c291cmNlSGFuZGxlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMThDMzU0MjFG
NzE5NzAxMDBGRjYzMkQgLyogV2ViQXJjaGl2ZVJlc291cmNlV2ViUmVzb3VyY2VIYW5kbGVyLm1t
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAub2JqY3BwOyBwYXRoID0gV2ViQXJjaGl2ZVJlc291cmNlV2ViUmVzb3VyY2VIYW5k
bGVyLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNEQzI0M0Y3MUNCMDA5
MjQ3RDYgLyogRmFrZVhSSW5wdXRTb3VyY2VJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBGYWtlWFJJbnB1dFNvdXJjZUluaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMThEODNERDI0M0Y3MUNDMDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYkZha2VYUklucHV0Q29u
dHJvbGxlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0RFMjQzRjcx
Q0QwMDkyNDdENiAvKiBGYWtlWFJCdXR0b25TdGF0ZUluaXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gRmFrZVhSQnV0dG9uU3RhdGVJbml0Lmg7IHNvdXJjZVRyZWUgPSAiPGdy
b3VwPiI7IH07CisJCUUxOEQ4M0RGMjQzRjcxQ0QwMDkyNDdENiAvKiBGYWtlWFJWaWV3SW5pdC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYWtlWFJWaWV3SW5pdC5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFMDI0M0Y3MUNFMDA5MjQ3RDYgLyogV2Vi
WFJUZXN0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlhSVGVz
dC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOEQ4M0UxMjQzRjcxQ0UwMDky
NDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0
aCA9IFdlYkZha2VYUklucHV0Q29udHJvbGxlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CisJCUUxOEQ4M0UyMjQzRjcxQ0YwMDkyNDdENiAvKiBGYWtlWFJWaWV3SW5pdC5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFrZVhSVmlld0luaXQuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OworCQlFMThEODNFMzI0M0Y3MUNGMDA5MjQ3RDYgLyogRmFrZVhSQnV0dG9uU3Rh
dGVJbml0LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGYWtlWFJCdXR0b25TdGF0ZUluaXQu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFNDI0M0Y3MUQwMDA5MjQ3
RDYgLyogRmFrZVhSQm91bmRzUG9pbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gRmFrZVhSQm91bmRzUG9pbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4
RDgzRTUyNDNGNzFEMTAwOTI0N0Q2IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRTYyNDNGNzFEMTAwOTI0N0Q2IC8q
IEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRmFr
ZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJ
RTE4RDgzRTcyNDNGNzFEMjAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmljZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViRmFrZVhSRGV2aWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE4RDgzRTgyNDNGNzFEMjAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJYUlRlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJRTE4RDgzRTkyNDNGNzFEMzAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmljZS5j
cHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJGYWtlWFJEZXZpY2Uu
Y3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMThEODNFQTI0M0Y3MUQ0MDA5MjQ3
RDYgLyogRmFrZVhSSW5wdXRTb3VyY2VJbml0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IEZha2VYUklucHV0U291cmNlSW5pdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMThEODNFQjI0M0Y3MUQ1MDA5MjQ3RDYgLyogV2ViWFJUZXN0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJYUlRlc3QuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQlFMThEODNFQzI0M0Y3MUQ1MDA5MjQ3RDYgLyogWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gWFJTaW11bGF0ZVVzZXJB
Y3RpdmF0aW9uRnVuY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgz
RUQyNDNGNzFENjAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmljZS5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJGYWtlWFJEZXZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJRTE4RDgzRUUyNDNGNzFENzAwOTI0N0Q2IC8qIFdlYkZha2VYUklucHV0Q29udHJv
bGxlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJGYWtlWFJJbnB1dENv
bnRyb2xsZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJRTE4RDgzRUYyNDNGNzFE
NzAwOTI0N0Q2IC8qIEZha2VYUkJvdW5kc1BvaW50LmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBGYWtlWFJCb3VuZHNQb2ludC5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUx
OEQ4M0YwMjQzRjcxRDgwMDkyNDdENiAvKiBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlv
bi5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gWFJTaW11bGF0ZVVzZXJBY3RpdmF0aW9uRnVu
Y3Rpb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMThERjMzNDE4QUFGMTJD
MDA3NzNFNTkgLyogU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gU2VyaWFsaXplZENyeXB0b0tleVdyYXAuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJRTE4REYzMzYxOEFBRjE0RDAwNzczRTU5IC8qIFNlcmlhbGl6ZWRDcnlw
dG9LZXlXcmFwTWFjLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
U2VyaWFsaXplZENyeXB0b0tleVdyYXBNYWMubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MDg2MjQzNEYxNTgwMDQxNkE5OSAvKiBXZWJYUlZpZXcuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
dGV4dDsgcGF0aCA9IFdlYlhSVmlldy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CUUxOTQ5MDg3MjQzNEYxNTkwMDQxNkE5OSAvKiBXZWJYUlZpZXdwb3J0LmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBXZWJYUlZpZXdwb3J0LmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJRTE5NDkwODgyNDM0RjE1OTAwNDE2QTk5IC8qIFdlYlhSRnJhbWUuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IFdlYlhSRnJhbWUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA4OTI0MzRGMTVBMDA0MTZBOTkgLyogV2ViWFJJbnB1dFNvdXJjZS5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2ViWFJJbnB1dFNvdXJjZS5pZGw7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUUxOTQ5MDhGMjQzNEYxNUQwMDQxNkE5OSAvKiBXZWJYUldlYkdMTGF5
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSV2ViR0xMYXllci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDkzMjQzNEYxNjAwMDQxNkE5OSAvKiBXZWJY
UklucHV0U291cmNlQXJyYXkuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSSW5wdXRT
b3VyY2VBcnJheS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5MDk0MjQz
NEYxNjAwMDQxNkE5OSAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViWFJCb3VuZGVkUmVmZXJlbmNlU3BhY2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5NTI0MzRGMTYxMDA0MTZBOTkgLyogV2ViWFJXZWJH
TExheWVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYlhSV2ViR0xMYXll
ci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0OTA5ODI0MzRGMTYyMDA0MTZB
OTkgLyogV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gV2Vi
WFJSaWdpZFRyYW5zZm9ybS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUUxOTQ5
MDlBMjQzNEYxNjQwMDQxNkE5OSAvKiBXZWJYUlN5c3RlbS5pZGwgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBw
YXRoID0gV2ViWFJTeXN0ZW0uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlFMTk0
OTA5QzI0MzRGMTY1MDA0MTZBOTkgLyogV2ViWFJWaWV3ZXJQb3NlLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRl
eHQ7IHBhdGggPSBXZWJYUlZpZXdlclBvc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTA5RTI0MzRGMTY2MDA0MTZBOTkgLyogV2ViWFJTZXNzaW9uLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJYUlNlc3Npb24uaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlFMTk0OTBBMTI0MzRGMTY4MDA0MTZBOTkgLyogV2ViWFJQb3NlLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHRleHQ7IHBhdGggPSBXZWJYUlBvc2UuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQlFMTk0OTBBMjI0MzRGMTY4MDA0MTZBOTkgLyogV2ViWFJTcGFjZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0OyBwYXRoID0gV2ViWFJTcGFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCUUxOTQ5MEE0MjQzNEYxNjkwMDQxNkE5OSAvKiBXZWJYUlJlbmRlclN0YXRlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBXZWJYUlJlbmRlclN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJRTE5NDkwQTYyNDM0RjE2QjAwNDE2QTk5IC8qIFdlYlhSUmVmZXJlbmNl
U3BhY2UuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFdlYlhSUmVmZXJlbmNlU3BhY2UuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlFMTk3MjcxNTE4MjA1NDlFMDA1OTJENTEg
LyogQ3J5cHRvS2V5VHlwZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlw
dG9LZXlUeXBlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUUxOUFDM0U2MTgyNERD
NzkwMDM0OTQyNiAvKiBDcnlwdG9BbGdvcml0aG1TSEEyMjQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gQ3J5cHRvQWxnb3JpdGhtU0hBMjI0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJRTE5QUMzRTcxODI0REM3OTAwMzQ5NDI2IC8qIENyeXB0b0Fs
Z29yaXRobVNIQTIyNC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDcnlwdG9B
bGdvcml0aG1TSEEyMjQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTE4MzI1LDYg
KzE4MzYyLDE2IEBACiAJCQljaGlsZHJlbiA9ICgKIAkJCQlBMTc2M0YzQjFFMjA1MUFCMDAxRDU4
REUgLyogY29jb2EgKi8sCiAJCQkJNDE4MTVDMUIxMzgzMTk2MzAwNTdBQUE0IC8qIGpzICovLAor
CQkJCUUxOEQ4M0U0MjQzRjcxRDAwMDkyNDdENiAvKiBGYWtlWFJCb3VuZHNQb2ludC5oICovLAor
CQkJCUUxOEQ4M0VGMjQzRjcxRDcwMDkyNDdENiAvKiBGYWtlWFJCb3VuZHNQb2ludC5pZGwgKi8s
CisJCQkJRTE4RDgzREUyNDNGNzFDRDAwOTI0N0Q2IC8qIEZha2VYUkJ1dHRvblN0YXRlSW5pdC5o
ICovLAorCQkJCUUxOEQ4M0UzMjQzRjcxQ0YwMDkyNDdENiAvKiBGYWtlWFJCdXR0b25TdGF0ZUlu
aXQuaWRsICovLAorCQkJCUUxOEQ4M0VBMjQzRjcxRDQwMDkyNDdENiAvKiBGYWtlWFJJbnB1dFNv
dXJjZUluaXQuaCAqLywKKwkJCQlFMThEODNEQzI0M0Y3MUNCMDA5MjQ3RDYgLyogRmFrZVhSSW5w
dXRTb3VyY2VJbml0LmlkbCAqLywKKwkJCQlFMThEODNFNTI0M0Y3MUQxMDA5MjQ3RDYgLyogRmFr
ZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmggKi8sCisJCQkJRTE4RDgzRTYyNDNGNzFEMTAwOTI0N0Q2
IC8qIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgKi8sCisJCQkJRTE4RDgzREYyNDNGNzFD
RDAwOTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0LmggKi8sCisJCQkJRTE4RDgzRTIyNDNGNzFDRjAw
OTI0N0Q2IC8qIEZha2VYUlZpZXdJbml0LmlkbCAqLywKIAkJCQk1MTcxNEVBOTFDRjY1ODk5MDA0
NzIzQzQgLyogR0NPYnNlcnZhdGlvbi5jcHAgKi8sCiAJCQkJNTE3MTRFQUExQ0Y2NTg5OTAwNDcy
M0M0IC8qIEdDT2JzZXJ2YXRpb24uaCAqLywKIAkJCQk1MTcxNEVBQjFDRjY1ODk5MDA0NzIzQzQg
LyogR0NPYnNlcnZhdGlvbi5pZGwgKi8sCkBAIC0xODM4OSw2ICsxODQzNiwxNyBAQAogCQkJCUVC
MDgxQ0Q4MTY5NjA4NDQwMDU1MzczMCAvKiBUeXBlQ29udmVyc2lvbnMuaCAqLywKIAkJCQlFQjA4
MUNEOTE2OTYwODQ0MDA1NTM3MzAgLyogVHlwZUNvbnZlcnNpb25zLmlkbCAqLywKIAkJCQlFMUJB
NjcxOTE3NDJCRUY0MDBDMjAyNTEgLyogV2ViQ29yZVRlc3RTaGltTGlicmFyeS5jcHAgKi8sCisJ
CQkJRTE4RDgzRTkyNDNGNzFEMzAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmljZS5jcHAgKi8sCisJ
CQkJRTE4RDgzRUQyNDNGNzFENjAwOTI0N0Q2IC8qIFdlYkZha2VYUkRldmljZS5oICovLAorCQkJ
CUUxOEQ4M0U3MjQzRjcxRDIwMDkyNDdENiAvKiBXZWJGYWtlWFJEZXZpY2UuaWRsICovLAorCQkJ
CUUxOEQ4M0REMjQzRjcxQ0MwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3Bw
ICovLAorCQkJCUUxOEQ4M0VFMjQzRjcxRDcwMDkyNDdENiAvKiBXZWJGYWtlWFJJbnB1dENvbnRy
b2xsZXIuaCAqLywKKwkJCQlFMThEODNFMTI0M0Y3MUNFMDA5MjQ3RDYgLyogV2ViRmFrZVhSSW5w
dXRDb250cm9sbGVyLmlkbCAqLywKKwkJCQlFMThEODNFMDI0M0Y3MUNFMDA5MjQ3RDYgLyogV2Vi
WFJUZXN0LmNwcCAqLywKKwkJCQlFMThEODNFODI0M0Y3MUQyMDA5MjQ3RDYgLyogV2ViWFJUZXN0
LmggKi8sCisJCQkJRTE4RDgzRUIyNDNGNzFENTAwOTI0N0Q2IC8qIFdlYlhSVGVzdC5pZGwgKi8s
CisJCQkJRTE4RDgzRUMyNDNGNzFENTAwOTI0N0Q2IC8qIFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlv
bkZ1bmN0aW9uLmggKi8sCisJCQkJRTE4RDgzRjAyNDNGNzFEODAwOTI0N0Q2IC8qIFhSU2ltdWxh
dGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbCAqLywKIAkJCSk7CiAJCQlwYXRoID0gdGVzdGlu
ZzsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0yNzIyMSwzMyArMjcyNzksNDkgQEAK
IAkJCQlFMUVFOEIwRTI0MTJCMTcwMDBFNzk0RDYgLyogTmF2aWdhdG9yV2ViWFIuaWRsICovLAog
CQkJCUUxRUU4QUQzMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFj
ZS5jcHAgKi8sCiAJCQkJRTFFRThBRDEyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSQm91bmRlZFJl
ZmVyZW5jZVNwYWNlLmggKi8sCisJCQkJRTE5NDkwOTQyNDM0RjE2MDAwNDE2QTk5IC8qIFdlYlhS
Qm91bmRlZFJlZmVyZW5jZVNwYWNlLmlkbCAqLywKIAkJCQlFMUVFOEFGMDI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJGcmFtZS5jcHAgKi8sCiAJCQkJRTFFRThBRTMyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSRnJhbWUuaCAqLywKKwkJCQlFMTk0OTA4ODI0MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJG
cmFtZS5pZGwgKi8sCiAJCQkJRTFFRThCMEQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSSW5wdXRT
b3VyY2UuY3BwICovLAogCQkJCUUxRUU4QjE3MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0
U291cmNlLmggKi8sCisJCQkJRTE5NDkwODkyNDM0RjE1QTAwNDE2QTk5IC8qIFdlYlhSSW5wdXRT
b3VyY2UuaWRsICovLAogCQkJCUUxRUU4QUU2MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUklucHV0
U291cmNlQXJyYXkuY3BwICovLAogCQkJCUUxRUU4QUREMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UklucHV0U291cmNlQXJyYXkuaCAqLywKKwkJCQlFMTk0OTA5MzI0MzRGMTYwMDA0MTZBOTkgLyog
V2ViWFJJbnB1dFNvdXJjZUFycmF5LmlkbCAqLywKIAkJCQlFMUVFOEFFNTI0MTJCMTcwMDBFNzk0
RDYgLyogV2ViWFJQb3NlLmNwcCAqLywKIAkJCQlFMUVFOEFFMTI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJQb3NlLmggKi8sCisJCQkJRTE5NDkwQTEyNDM0RjE2ODAwNDE2QTk5IC8qIFdlYlhSUG9z
ZS5pZGwgKi8sCiAJCQkJRTFFRThBRDIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSUmVmZXJlbmNl
U3BhY2UuY3BwICovLAogCQkJCUUxRUU4QjE0MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlJlZmVy
ZW5jZVNwYWNlLmggKi8sCisJCQkJRTE5NDkwQTYyNDM0RjE2QjAwNDE2QTk5IC8qIFdlYlhSUmVm
ZXJlbmNlU3BhY2UuaWRsICovLAogCQkJCUUxRUU4QUNFMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlJlbmRlclN0YXRlLmNwcCAqLywKIAkJCQlFMUVFOEFENTI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJSZW5kZXJTdGF0ZS5oICovLAorCQkJCUUxOTQ5MEE0MjQzNEYxNjkwMDQxNkE5OSAvKiBXZWJY
UlJlbmRlclN0YXRlLmlkbCAqLywKIAkJCQlFMUVFOEFDRDI0MTJCMTcwMDBFNzk0RDYgLyogV2Vi
WFJSaWdpZFRyYW5zZm9ybS5jcHAgKi8sCiAJCQkJRTFFRThCMDYyNDEyQjE3MDAwRTc5NEQ2IC8q
IFdlYlhSUmlnaWRUcmFuc2Zvcm0uaCAqLywKKwkJCQlFMTk0OTA5ODI0MzRGMTYyMDA0MTZBOTkg
LyogV2ViWFJSaWdpZFRyYW5zZm9ybS5pZGwgKi8sCiAJCQkJRTFFRThCMEYyNDEyQjE3MDAwRTc5
NEQ2IC8qIFdlYlhSU2Vzc2lvbi5jcHAgKi8sCiAJCQkJRTFFRThCMTEyNDEyQjE3MDAwRTc5NEQ2
IC8qIFdlYlhSU2Vzc2lvbi5oICovLAorCQkJCUUxOTQ5MDlFMjQzNEYxNjYwMDQxNkE5OSAvKiBX
ZWJYUlNlc3Npb24uaWRsICovLAogCQkJCUUxRUU4QUY4MjQxMkIxNzAwMEU3OTRENiAvKiBXZWJY
UlNwYWNlLmNwcCAqLywKIAkJCQlFMUVFOEFDRjI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTcGFj
ZS5oICovLAorCQkJCUUxOTQ5MEEyMjQzNEYxNjgwMDQxNkE5OSAvKiBXZWJYUlNwYWNlLmlkbCAq
LywKIAkJCQlFMUVFOEFFODI0MTJCMTcwMDBFNzk0RDYgLyogV2ViWFJTeXN0ZW0uY3BwICovLAog
CQkJCUUxRUU4QUUyMjQxMkIxNzAwMEU3OTRENiAvKiBXZWJYUlN5c3RlbS5oICovLAorCQkJCUUx
OTQ5MDlBMjQzNEYxNjQwMDQxNkE5OSAvKiBXZWJYUlN5c3RlbS5pZGwgKi8sCiAJCQkJRTFFRThC
MTIyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5jcHAgKi8sCiAJCQkJRTFFRThBRTAyNDEy
QjE3MDAwRTc5NEQ2IC8qIFdlYlhSVmlldy5oICovLAorCQkJCUUxOTQ5MDg2MjQzNEYxNTgwMDQx
NkE5OSAvKiBXZWJYUlZpZXcuaWRsICovLAogCQkJCUUxRUU4QjBCMjQxMkIxNzAwMEU3OTRENiAv
KiBXZWJYUlZpZXdlclBvc2UuY3BwICovLAogCQkJCUUxRUU4QUM3MjQxMkIxNkYwMEU3OTRENiAv
KiBXZWJYUlZpZXdlclBvc2UuaCAqLywKKwkJCQlFMTk0OTA5QzI0MzRGMTY1MDA0MTZBOTkgLyog
V2ViWFJWaWV3ZXJQb3NlLmlkbCAqLywKIAkJCQlFMUVFOEFFQjI0MTJCMTcwMDBFNzk0RDYgLyog
V2ViWFJWaWV3cG9ydC5jcHAgKi8sCiAJCQkJRTFFRThBRjQyNDEyQjE3MDAwRTc5NEQ2IC8qIFdl
YlhSVmlld3BvcnQuaCAqLywKKwkJCQlFMTk0OTA4NzI0MzRGMTU5MDA0MTZBOTkgLyogV2ViWFJW
aWV3cG9ydC5pZGwgKi8sCiAJCQkJRTFFRThBRDgyNDEyQjE3MDAwRTc5NEQ2IC8qIFdlYlhSV2Vi
R0xMYXllci5jcHAgKi8sCisJCQkJRTE5NDkwOTUyNDM0RjE2MTAwNDE2QTk5IC8qIFdlYlhSV2Vi
R0xMYXllci5oICovLAorCQkJCUUxOTQ5MDhGMjQzNEYxNUQwMDQxNkE5OSAvKiBXZWJYUldlYkdM
TGF5ZXIuaWRsICovLAogCQkJCUUxRUU4QUY3MjQxMkIxNzAwMEU3OTRENiAvKiBYUkJvdW5kZWRS
ZWZlcmVuY2VTcGFjZS5pZGwgKi8sCiAJCQkJRTFFRThCMDUyNDEyQjE3MDAwRTc5NEQ2IC8qIFhS
RW52aXJvbm1lbnRCbGVuZE1vZGUuaCAqLywKIAkJCQlFMUVFOEFEQTI0MTJCMTcwMDBFNzk0RDYg
LyogWFJFbnZpcm9ubWVudEJsZW5kTW9kZS5pZGwgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggY2Y1NWMzNzM2OTNlNGJkYmY3
Y2I4MDI4ODM5YjRlN2ViNDcyZTY3Yy4uZWUxMWIzNjdiYmIwZWY0YTc1NGVhNGM5YmJjNjRjMmIz
MTZkMmQzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaApAQCAtNzUsNiArNzUsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgbWFj
cm8oRW50ZXJQaWN0dXJlSW5QaWN0dXJlRXZlbnQpIFwKICAgICBtYWNybyhFeHRlbmRhYmxlRXZl
bnQpIFwKICAgICBtYWNybyhFeHRlbmRhYmxlTWVzc2FnZUV2ZW50KSBcCisgICAgbWFjcm8oRmFr
ZVhSRGV2aWNlKSBcCisgICAgbWFjcm8oRmFrZVhSSW5wdXRDb250cm9sbGVyKSBcCiAgICAgbWFj
cm8oRmV0Y2hFdmVudCkgXAogICAgIG1hY3JvKEZpbGVTeXN0ZW0pIFwKICAgICBtYWNybyhGaWxl
U3lzdGVtRGlyZWN0b3J5RW50cnkpIFwKQEAgLTI1MSw2ICsyNTMsNyBAQCBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAgICAgbWFjcm8oWFJTZXNzaW9uKSBcCiAgICAgbWFjcm8oWFJTZXNzaW9uRXZlbnQp
IFwKICAgICBtYWNybyhYUlNwYWNlKSBcCisgICAgbWFjcm8oWFJUZXN0KSBcCiAgICAgbWFjcm8o
WFJWaWV3KSBcCiAgICAgbWFjcm8oWFJWaWV3ZXJQb3NlKSBcCiAgICAgbWFjcm8oWFJWaWV3cG9y
dCkgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2lu
dC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5oCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjJkNzA3Mjg2ODIzMWViMjkzOTQxNzEyYWU0MzBmY2E4ZmI0NTA2NDMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJvdW5kc1BvaW50LmgKQEAgLTAs
MCArMSwzOSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0
OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJY
UikKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRmFrZVhSQm91bmRzUG9pbnQgewor
ICAgIGRvdWJsZSB4OworICAgIGRvdWJsZSB6OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
dGVzdGluZy9GYWtlWFJCb3VuZHNQb2ludC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zh
a2VYUkJvdW5kc1BvaW50LmlkbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MjEzNWEwYWQ3OGY0NmIyMDcxMmRkYjg2
MjFhZmFjOWU4NTQxNzZjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9GYWtlWFJCb3VuZHNQb2ludC5pZGwKQEAgLTAsMCArMSwzMSBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitb
CisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10g
ZGljdGlvbmFyeSBGYWtlWFJCb3VuZHNQb2ludCB7CisgICAgZG91YmxlIHg7IGRvdWJsZSB6Owor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSQnV0dG9uU3RhdGVJ
bml0LmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5pdC5oCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjVlZDk4ZWQ4ZGM0MDU2ZmUzYzgwNmRmNjgxY2QyMjVkMGU5MmIwNjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRvblN0YXRlSW5p
dC5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMu
TC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBF
TkFCTEUoV0VCWFIpCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEZha2VYUkJ1dHRv
blN0YXRlSW5pdCB7CisgICAgZW51bSBjbGFzcyBUeXBlIHsKKyAgICAgICAgR3JpcCwKKyAgICAg
ICAgVG91Y2hwYWQsCisgICAgICAgIFRodW1ic3RpY2ssCisgICAgICAgIE9wdGlvbmFsQnV0dG9u
LAorICAgICAgICBPcHRpb25hbFRodW1ic3RpY2sKKyAgICB9OworCisgICAgVHlwZSBidXR0b25U
eXBlOworICAgIGJvb2wgcHJlc3NlZDsKKyAgICBib29sIHRvdWNoZWQ7CisgICAgZmxvYXQgcHJl
c3NlZFZhbHVlOworICAgIGZsb2F0IHhWYWx1ZSB7IDAuMCB9OworICAgIGZsb2F0IHlWYWx1ZSB7
IDAuMCB9OworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxF
KFdFQlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25T
dGF0ZUluaXQuaWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJCdXR0b25TdGF0ZUlu
aXQuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjM4MGQzNTk1YWM5MGY3ZGJhYWU0YzEyMjg1NWFkMmY0NGJiYzM5
MTcKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUkJ1dHRv
blN0YXRlSW5pdC5pZGwKQEAgLTAsMCArMSw1NiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisvLyBCZWNhdXNl
IHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBhbHdheXMgZ3VhcmFudGVlZCB0byBiZSBwcmVzZW50LCBh
bmQgb3RoZXIgYnV0dG9ucworLy8gc2hvdWxkIGZ1bGZpbGwgdGhlIHJvbGUgb2YgdmFsaWRhdGlu
ZyBhbnkgc3RhdGUgZnJvbSBGYWtlWFJCdXR0b25TdGF0ZUluaXQKKy8vIHRoZSBwcmltYXJ5IGJ1
dHRvbiBpcyBub3QgcHJlc2VudCBpbiB0aGlzIGVudW0uCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZW51bSBGYWtlWFJCdXR0b25UeXBl
IHsKKyAgICAiZ3JpcCIsCisgICAgInRvdWNocGFkIiwKKyAgICAidGh1bWJzdGljayIsCisgICAg
Ly8gUmVwcmVzZW50cyBhIGJ1dHRvbiB3aG9zZSBwb3NpdGlvbiBpcyBub3Qgc3BlY2lmaWVkIGJ5
IHRoZSB4ci1zdGFuZGFyZCBtYXBwaW5nLgorICAgIC8vIFNob3VsZCBhcHBlYXIgYXQgb25lIHBh
c3QgdGhlIGxhc3QgcmVzZXJ2ZWQgYnV0dG9uIGluZGV4LgorICAgICJvcHRpb25hbC1idXR0b24i
LAorICAgIC8vIFJlcHJlc2VudHMgYSB0aHVtYnN0aWNrIHdob3NlIHBvc2l0aW9uIGlzIG5vdCBz
cGVjaWZpZWQgYnkgdGhlIHhyLXN0YW5kYXJkIG1hcHBpbmcuCisgICAgLy8gU2hvdWxkIGFwcGVh
ciBhdCB0d28gcGFzdCB0aGUgbGFzdCByZXNlcnZlZCBidXR0b24gaW5kZXguCisgICAgIm9wdGlv
bmFsLXRodW1ic3RpY2siCit9OworCisvLyBVc2VkIHRvIHVwZGF0ZSB0aGUgc3RhdGUgb2Ygb3B0
aW9uYWxseSBzdXBwb3J0ZWQgYnV0dG9ucy4KK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdlYlhS
LAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUkJ1dHRvblN0YXRl
SW5pdCB7CisgICAgcmVxdWlyZWQgRmFrZVhSQnV0dG9uVHlwZSBidXR0b25UeXBlOworICAgIHJl
cXVpcmVkIGJvb2xlYW4gcHJlc3NlZDsKKyAgICByZXF1aXJlZCBib29sZWFuIHRvdWNoZWQ7Cisg
ICAgcmVxdWlyZWQgZmxvYXQgcHJlc3NlZFZhbHVlOworICAgIC8vIHggYW5kIHkgdmFsdWUgYXJl
IGlnbm9yZWQgaWYgdGhlIEZha2VYUkJ1dHRvblR5cGUgaXMgbm90IHRvdWNocGFkLCB0aHVtYnN0
aWNrLCBvciBvcHRpb25hbC10aHVtYnN0aWNrCisgICAgZmxvYXQgeFZhbHVlID0gMC4wOworICAg
IGZsb2F0IHlWYWx1ZSA9IDAuMDsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0Zha2VYUklucHV0U291cmNlSW5pdC5oIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtl
WFJJbnB1dFNvdXJjZUluaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYzQyYTRiMzEwMDE4MmIzMGUzNDMxZWYw
YTQ4ZDllMTYyODk4NDBhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9GYWtlWFJJbnB1dFNvdXJjZUluaXQuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQlhSKQorCisjaW5jbHVkZSAiRmFrZVhSQnV0
dG9uU3RhdGVJbml0LmgiCisjaW5jbHVkZSAiRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgiCisj
aW5jbHVkZSAiWFJFeWUuaCIKKyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNsdWRlICJY
UlRhcmdldFJheU1vZGUuaCIKKyNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKworc3RydWN0IEZha2VYUklucHV0U291cmNlSW5pdCB7CisgICAgWFJIYW5kZWRu
ZXNzIGhhbmRlZG5lc3M7CisgICAgWFJUYXJnZXRSYXlNb2RlIHRhcmdldFJheU1vZGU7CisgICAg
RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW47CisgICAgVmVjdG9yPFN0cmlu
Zz4gcHJvZmlsZXM7CisgICAgYm9vbCBzZWxlY3Rpb25TdGFydGVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIHNlbGVjdGlvbkNsaWNrZWQgeyBmYWxzZSB9OworICAgIFZlY3RvcjxGYWtlWFJCdXR0b25T
dGF0ZUluaXQ+IHN1cHBvcnRlZEJ1dHRvbnM7CisgICAgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0
IGdyaXBPcmlnaW47Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklu
cHV0U291cmNlSW5pdC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUklucHV0U291
cmNlSW5pdC5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMWVmOGU5MTYwZWExNDgwYTliNDA2YzE4YzE2NmQ3NTYx
MTk5ZTEwOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhS
SW5wdXRTb3VyY2VJbml0LmlkbApAQCAtMCwwICsxLDQ0IEBACisvKgorICogQ29weXJpZ2h0IChD
KSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVU
T1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lE
RU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAo
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElU
VVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1Ig
QlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVP
UlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lO
RyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAg
ICBFbmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0
aW9uYXJ5IEZha2VYUklucHV0U291cmNlSW5pdCB7CisgICAgcmVxdWlyZWQgWFJIYW5kZWRuZXNz
IGhhbmRlZG5lc3M7CisgICAgcmVxdWlyZWQgWFJUYXJnZXRSYXlNb2RlIHRhcmdldFJheU1vZGU7
CisgICAgcmVxdWlyZWQgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW47Cisg
ICAgcmVxdWlyZWQgc2VxdWVuY2U8RE9NU3RyaW5nPiBwcm9maWxlczsKKyAgICAvLyB3YXMgdGhl
IHByaW1hcnkgYWN0aW9uIHByZXNzZWQgd2hlbiB0aGlzIHdhcyBjb25uZWN0ZWQ/CisgICAgYm9v
bGVhbiBzZWxlY3Rpb25TdGFydGVkID0gZmFsc2U7CisgICAgLy8gc2hvdWxkIHRoaXMgaW5wdXQg
c291cmNlIHNlbmQgYSBzZWxlY3QgaW1tZWRpYXRlbHkgdXBvbiBjb25uZWN0aW9uPworICAgIGJv
b2xlYW4gc2VsZWN0aW9uQ2xpY2tlZCA9IGZhbHNlOworICAgIC8vIEluaXRpYWwgYnV0dG9uIHN0
YXRlIGZvciBhbnkgYnV0dG9ucyBiZXlvbmQgdGhlIHByaW1hcnkgdGhhdCBhcmUgc3VwcG9ydGVk
LgorICAgIC8vIElmIGVtcHR5LCBvbmx5IHRoZSBwcmltYXJ5IGJ1dHRvbiBpcyBzdXBwb3J0ZWQu
CisgICAgLy8gTm90ZSB0aGF0IGlmIGFueSBGYWtlWFJCdXR0b25UeXBlIGlzIHJlcGVhdGVkIHRo
ZSBiZWhhdmlvciBpcyB1bmRlZmluZWQuCisgICAgc2VxdWVuY2U8RmFrZVhSQnV0dG9uU3RhdGVJ
bml0PiBzdXBwb3J0ZWRCdXR0b25zOworICAgIC8vIElmIG5vdCBzZXQgdGhlIGNvbnRyb2xsZXIg
aXMgYXNzdW1lZCB0byBub3QgYmUgdHJhY2tlZC4KKyAgICBGYWtlWFJSaWdpZFRyYW5zZm9ybUlu
aXQgZ3JpcE9yaWdpbjsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTcxODMyOTM4MmJiMDFlNDRlZmRiMzUzYzU1ZDk1YzU3ZmJiMDJhYwotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0LmgK
QEAgLTAsMCArMSw0MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUg
eworCitzdHJ1Y3QgRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHsKKyAgICBWZWN0b3I8ZmxvYXQ+
IHBvc2l0aW9uOworICAgIFZlY3RvcjxmbG9hdD4gb3JpZW50YXRpb247Cit9OworCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwgYi9Tb3Vy
Y2UvV2ViQ29yZS90ZXN0aW5nL0Zha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYWMyYzc1MTFmZGE1MzAwZjBmOGE2YzVhYjVlYzgyNjk5NjljMjUzOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0Lmlk
bApAQCAtMCwwICsxLDM1IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKy8vIGh0dHBzOi8vaW1tZXJzaXZlLXdl
Yi5naXRodWIuaW8vd2VieHIvI3hycmlnaWR0cmFuc2Zvcm0KK1sKKyAgICBFbmFibGVkQXRSdW50
aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorXSBkaWN0aW9uYXJ5IEZha2VYUlJp
Z2lkVHJhbnNmb3JtSW5pdCB7CisgICAgLy8gbXVzdCBoYXZlIHRocmVlIGVsZW1lbnRzCisgICAg
cmVxdWlyZWQgc2VxdWVuY2U8ZmxvYXQ+IHBvc2l0aW9uOworICAgIC8vIG11c3QgaGF2ZSBmb3Vy
IGVsZW1lbnRzCisgICAgcmVxdWlyZWQgc2VxdWVuY2U8ZmxvYXQ+IG9yaWVudGF0aW9uOworfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZjU3MDE4
ZTg4YWYzYzYxYjBmMDc3OTA3YzhjMTBhNzBlNjU3YmRlCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5oCkBAIC0wLDAgKzEsNTcgQEAKKy8q
CisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRl
ICJGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCIKKyNpbmNsdWRlICJYUkV5ZS5oIgorI2luY2x1
ZGUgPHd0Zi9WZWN0b3IuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgRmFrZVhS
Vmlld0luaXQgeworICAgIHN0cnVjdCBEZXZpY2VSZXNvbHV0aW9uIHsKKyAgICAgICAgaW50IHdp
ZHRoOworICAgICAgICBpbnQgaGVpZ2h0OworICAgIH07CisgICAgc3RydWN0IEZpZWxkT2ZWaWV3
SW5pdCB7CisgICAgICAgIGZsb2F0IHVwRGVncmVlczsKKyAgICAgICAgZmxvYXQgZG93bkRlZ3Jl
ZXM7CisgICAgICAgIGZsb2F0IGxlZnREZWdyZWVzOworICAgICAgICBmbG9hdCByaWdodERlZ3Jl
ZXM7CisgICAgfTsKKworICAgIFhSRXllIGV5ZTsKKyAgICBWZWN0b3I8ZmxvYXQ+IHByb2plY3Rp
b25NYXRyaXg7CisgICAgRGV2aWNlUmVzb2x1dGlvbiByZXNvbHV0aW9uOworICAgIEZha2VYUlJp
Z2lkVHJhbnNmb3JtSW5pdCB2aWV3T2Zmc2V0OworICAgIEZpZWxkT2ZWaWV3SW5pdCBmaWVsZE9m
VmlldzsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShX
RUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQu
aWRsIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9GYWtlWFJWaWV3SW5pdC5pZGwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMzg0YTY1MjkyYjBkMmRkOTI3MGNiNmQ1N2VkYjU5MjdjNDA0MWMzYgotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvRmFrZVhSVmlld0luaXQuaWRsCkBAIC0wLDAg
KzEsNjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0
cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQg
YmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1p
dHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoK
KyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5
IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZ
IEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVY
UFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBI
T1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4K
KyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0Ug
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisgKi8KKworLy8gVGhpcyByZXByZXNlbnRzIHRoZSBuYXRpdmUgcmVz
b2x1dGlvbiBvZiB0aGUgZGV2aWNlLCBidXQgbWF5IG5vdCByZWZsZWN0IHRoZSB2aWV3cG9ydCBl
eHBvc2VkIHRvIHRoZSBwYWdlLgorLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2ViLmdpdGh1Yi5pby93
ZWJ4ci8jeHJ2aWV3cG9ydAorWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2ViWFIsCisgICAgQ29u
ZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRGV2aWNlUmVzb2x1dGlvbiB7Cisg
ICAgcmVxdWlyZWQgbG9uZyB3aWR0aDsKKyAgICByZXF1aXJlZCBsb25nIGhlaWdodDsKK307CisK
Ky8vIEEgc2V0IG9mIDQgYW5nbGVzIHdoaWNoIGRlc2NyaWJlIHRoZSB2aWV3IGZyb20gYSBjZW50
ZXIgcG9pbnQsIHVuaXRzIGFyZSBkZWdyZWVzLgorWworICAgIEVuYWJsZWRBdFJ1bnRpbWU9V2Vi
WFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRmllbGRPZlZp
ZXdJbml0IHsKKyAgICByZXF1aXJlZCBmbG9hdCB1cERlZ3JlZXM7CisgICAgcmVxdWlyZWQgZmxv
YXQgZG93bkRlZ3JlZXM7CisgICAgcmVxdWlyZWQgZmxvYXQgbGVmdERlZ3JlZXM7CisgICAgcmVx
dWlyZWQgZmxvYXQgcmlnaHREZWdyZWVzOworfTsKKworLy8gaHR0cHM6Ly9pbW1lcnNpdmUtd2Vi
LmdpdGh1Yi5pby93ZWJ4ci8jeHJ2aWV3CitbCisgICAgRW5hYmxlZEF0UnVudGltZT1XZWJYUiwK
KyAgICBDb25kaXRpb25hbD1XRUJYUiwKK10gZGljdGlvbmFyeSBGYWtlWFJWaWV3SW5pdCB7Cisg
ICAgcmVxdWlyZWQgWFJFeWUgZXllOworICAgIC8vIGh0dHBzOi8vaW1tZXJzaXZlLXdlYi5naXRo
dWIuaW8vd2VieHIvI3ZpZXctcHJvamVjdGlvbi1tYXRyaXgKKyAgICByZXF1aXJlZCBzZXF1ZW5j
ZTxmbG9hdD4gcHJvamVjdGlvbk1hdHJpeDsKKyAgICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIu
Z2l0aHViLmlvL3dlYnhyLyNkb20teHJ3ZWJnbGxheWVyLWdldHZpZXdwb3J0CisgICAgcmVxdWly
ZWQgRmFrZVhSRGV2aWNlUmVzb2x1dGlvbiByZXNvbHV0aW9uOworICAgIC8vIGh0dHBzOi8vaW1t
ZXJzaXZlLXdlYi5naXRodWIuaW8vd2VieHIvI3ZpZXctb2Zmc2V0CisgICAgLy8gVGhpcyBpcyB0
aGUgb3JpZ2luIG9mIHRoZSB2aWV3IGluIHRoZSB2aWV3ZXIgc3BhY2UuIEluIG90aGVyIHdvcmRz
LCB0aGlzIGlzCisgICAgLy8gYSB0cmFuc2Zvcm0gZnJvbSB0aGUgdmlldyBzcGFjZSB0byB0aGUg
dmlld2VyIHNwYWNlLgorICAgIHJlcXVpcmVkIEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCB2aWV3
T2Zmc2V0OworICAgIC8vIFRoaXMgaXMgYW4gb3B0aW9uYWwgbWVhbnMgb2Ygc3BlY2lmeWluZyBh
IGRlY29tcG9zZWQgZm9ybSBvZiB0aGUgcHJvamVjdGlvbgorICAgIC8vIG1hdHJpeC4gIElmIHNw
ZWNpZmllZCwgdGhlIHByb2plY3Rpb25NYXRyaXggc2hvdWxkIGJlIGlnbm9yZWQuCisgICAgLy8g
QW55IHRlc3QgdGhhdCB3aXNoZXMgdG8gdGVzdCBjbGlwIHBsYW5lcyBvciBzaW1pbGFyIGZlYXR1
cmVzIHRoYXQgd291bGQgcmVxdWlyZQorICAgIC8vIGRlY29tcG9zaW5nL3JlY29tcG9zaW5nIHRo
ZSBwcm9qZWN0aW9uTWF0cml4IHNob3VsZCB1c2UgdGhpcyBpbnN0ZWFkIG9mCisgICAgLy8gdGhl
IHByb2plY3Rpb24gbWF0cml4LgorICAgIEZha2VYUkZpZWxkT2ZWaWV3SW5pdCBmaWVsZE9mVmll
dzsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5jcHAKaW5kZXggM2I5OGQyYjVlMjM0
NmZhMTRlMGIwNmIyYTY1NmQ2YmEyZjE5OTFlZi4uY2UwMGI3NTA3YWJkNWIyYmM4MDFlYzM4ZTk3
NDM1N2UyMWEzMDhjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bHMuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmNwcApAQCAtMzEw
LDYgKzMxMCwxMiBAQAogI2luY2x1ZGUgIlBheW1lbnRDb29yZGluYXRvci5oIgogI2VuZGlmCiAK
KyNpZiBFTkFCTEUoV0VCWFIpCisjaW5jbHVkZSAiTmF2aWdhdG9yV2ViWFIuaCIKKyNpbmNsdWRl
ICJXZWJYUlN5c3RlbS5oIgorI2luY2x1ZGUgIldlYlhSVGVzdC5oIgorI2VuZGlmCisKICNpZiBQ
TEFURk9STShNQUMpICYmIFVTRShMSUJXRUJSVEMpCiAjaW5jbHVkZSA8d2VicnRjL3Nkay9XZWJL
aXQvVmlkZW9Qcm9jZXNzaW5nU29mdExpbmsuaD4KICNlbmRpZgpAQCAtNTY1NSw0ICs1NjYxLDMw
IEBAIGJvb2wgSW50ZXJuYWxzOjpkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBpZGVudGlm
aWVyKQogICAgIHJldHVybiBtX3NsZWVwRGlzYWJsZXJzLnJlbW92ZShpZGVudGlmaWVyKTsKIH0K
IAorI2lmIEVOQUJMRShXRUJYUikKKworRXhjZXB0aW9uT3I8UmVmUHRyPFdlYlhSVGVzdD4+IElu
dGVybmFsczo6eHJUZXN0KCkKK3sKKyAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNo
YXJlZEZlYXR1cmVzKCkud2ViWFJFbmFibGVkKCkpCisgICAgICAgIHJldHVybiBFeGNlcHRpb24g
eyBJbnZhbGlkQWNjZXNzRXJyb3IgfTsKKworICAgIGlmICghbV94clRlc3QpIHsKKyAgICAgICAg
aWYgKCFjb250ZXh0RG9jdW1lbnQoKSB8fCAhY29udGV4dERvY3VtZW50KCktPmRvbVdpbmRvdygp
KQorICAgICAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRBY2Nlc3NFcnJvciB9Owor
CisgICAgICAgIGF1dG8qIG5hdmlnYXRvciA9IGNvbnRleHREb2N1bWVudCgpLT5kb21XaW5kb3co
KS0+b3B0aW9uYWxOYXZpZ2F0b3IoKTsKKyAgICAgICAgaWYgKCFuYXZpZ2F0b3IpCisgICAgICAg
ICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisKKyAgICAgICAg
YXV0byYgbmF2aWdhdG9yWFIgPSBOYXZpZ2F0b3JXZWJYUjo6ZnJvbSgqbmF2aWdhdG9yKTsKKyAg
ICAgICAgYXV0byYgeHJTeXN0ZW0gPSBuYXZpZ2F0b3JYUi54cigqc2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLCAqbmF2aWdhdG9yKTsKKworICAgICAgICBtX3hyVGVzdCA9IFdlYlhSVGVzdDo6Y3Jl
YXRlKG1ha2VXZWFrUHRyKCZ4clN5c3RlbSkpOworICAgIH0KKyAgICByZXR1cm4gbV94clRlc3Qu
Z2V0KCk7Cit9CisKKyNlbmRpZgorCisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmggYi9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL0ludGVybmFscy5oCmluZGV4IDE4MzA4YzUwZmFjMWJiZGZlMWExMTFjNzZhN2NjZDZi
NDVhMWJhYzUuLjc5Yzc1OWNmNjU5NTVhMzEyZWFhNDA3MjJkMjI2YTkyMDYwOTMwNjcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaApAQCAtMTE3LDYgKzExNywxMCBAQCBjbGFzcyBUZXh0
VHJhY2tDdWVHZW5lcmljOwogY2xhc3MgU2VydmljZVdvcmtlcjsKICNlbmRpZgogCisjaWYgRU5B
QkxFKFdFQlhSKQorY2xhc3MgV2ViWFJUZXN0OworI2VuZGlmCisKIHRlbXBsYXRlPHR5cGVuYW1l
IElETFR5cGU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAogc3RydWN0IE1vY2tXZWJBdXRo
ZW50aWNhdGlvbkNvbmZpZ3VyYXRpb247CkBAIC0xMDAyLDYgKzEwMDYsMTAgQEAgcHVibGljOgog
ICAgIHVuc2lnbmVkIGNyZWF0ZVNsZWVwRGlzYWJsZXIoY29uc3QgU3RyaW5nJiByZWFzb24sIGJv
b2wgZGlzcGxheSk7CiAgICAgYm9vbCBkZXN0cm95U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBpZGVu
dGlmaWVyKTsKIAorI2lmIEVOQUJMRShXRUJYUikKKyAgICBFeGNlcHRpb25PcjxSZWZQdHI8V2Vi
WFJUZXN0Pj4geHJUZXN0KCk7CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBJbnRl
cm5hbHMoRG9jdW1lbnQmKTsKICAgICBEb2N1bWVudCogY29udGV4dERvY3VtZW50KCkgY29uc3Q7
CkBAIC0xMDI2LDYgKzEwMzQsMTAgQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8Q2FjaGVTdG9yYWdl
Q29ubmVjdGlvbj4gbV9jYWNoZVN0b3JhZ2VDb25uZWN0aW9uOwogCiAgICAgSGFzaE1hcDx1bnNp
Z25lZCwgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlNsZWVwRGlzYWJsZXI+PiBtX3NsZWVwRGlz
YWJsZXJzOworCisjaWYgRU5BQkxFKFdFQlhSKQorICAgIFJlZlB0cjxXZWJYUlRlc3Q+IG1feHJU
ZXN0OworI2VuZGlmCiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFscy5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFscy5pZGwKaW5kZXggM2Q0YjkyNTE3MGE4NWEyMDY0OTA5MTM1ZjA3MzliZjM5
NzliNTcwMy4uYjllYTgwZjU4MzIyYzliZjVmOGU4NzZlYTE1NTA0ZWYzMzZjZTAyNyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbHMuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxzLmlkbApAQCAtOTA2LDQgKzkwNiw2IEBAIGVudW0gQ29t
cG9zaXRpbmdQb2xpY3kgewogCiAgICAgdW5zaWduZWQgbG9uZyBjcmVhdGVTbGVlcERpc2FibGVy
KERPTVN0cmluZyByZWFzb24sIGJvb2xlYW4gZGlzcGxheSk7CiAgICAgYm9vbGVhbiBkZXN0cm95
U2xlZXBEaXNhYmxlcih1bnNpZ25lZCBsb25nIGlkZW50aWZpZXIpOworCisgICAgW0NvbmRpdGlv
bmFsPVdFQlhSLCBNYXlUaHJvd0V4Y2VwdGlvbl0gcmVhZG9ubHkgYXR0cmlidXRlIFdlYlhSVGVz
dCB4clRlc3Q7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtl
WFJEZXZpY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJEZXZpY2UuY3Bw
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmU3YmFkMjJhZmRhNTRiZjhiMDhhNTQzMjc3ZTFhMmE4YTZjZjQ0YjcKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUkRldmljZS5j
cHAKQEAgLTAsMCArMSw4MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisj
aW5jbHVkZSAiV2ViRmFrZVhSRGV2aWNlLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIldlYkZha2VYUklucHV0Q29u
dHJvbGxlci5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNl
OjpzZXRWaWV3cyhWZWN0b3I8RmFrZVhSVmlld0luaXQ+KQoreworfQorCit2b2lkIFdlYkZha2VY
UkRldmljZTo6ZGlzY29ubmVjdChET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQor
eworICAgIHByb21pc2UucmVzb2x2ZSgpOworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0
Vmlld2VyT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdCBvcmlnaW4sIGJvb2wgZW11bGF0
ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0ob3JpZ2luKTsKKyAgICBVTlVTRURfUEFS
QU0oZW11bGF0ZWRQb3NpdGlvbik7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpjbGVhclZp
ZXdlck9yaWdpbigpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVZpc2li
aWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2
aWNlOjpzZXRCb3VuZHNHZW9tZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+KQoreworfQor
Cit2b2lkIFdlYkZha2VYUkRldmljZTo6c2V0Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zv
cm1Jbml0KQoreworfQorCit2b2lkIFdlYkZha2VYUkRldmljZTo6Y2xlYXJGbG9vck9yaWdpbigp
Cit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSRGV2aWNlOjpzaW11bGF0ZVJlc2V0UG9zZSgpCit7Cit9
CisKK1dlYkZha2VYUklucHV0Q29udHJvbGxlciBXZWJGYWtlWFJEZXZpY2U6OnNpbXVsYXRlSW5w
dXRTb3VyY2VDb25uZWN0aW9uKEZha2VYUklucHV0U291cmNlSW5pdCkKK3sKKyAgICByZXR1cm4g
V2ViRmFrZVhSSW5wdXRDb250cm9sbGVyKCk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViRmFrZVhSRGV2aWNlLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VY
UkRldmljZS5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTQ1YWIxZWQyMmFlZDY2YmY2NzcyMDdkMjc4YTRkZDZk
M2IwYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VY
UkRldmljZS5oCkBAIC0wLDAgKzEsNjYgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdh
bGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQg
dXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3Ry
aWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2lu
ZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRX
QVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJ
UycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwor
ICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisg
KiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJCb3VuZHNQb2ludC5oIgorI2lu
Y2x1ZGUgIkZha2VYUklucHV0U291cmNlSW5pdC5oIgorI2luY2x1ZGUgIkZha2VYUlZpZXdJbml0
LmgiCisjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKKyNpbmNsdWRlICJXZWJGYWtl
WFJJbnB1dENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlICJYUlZpc2liaWxpdHlTdGF0ZS5oIgorI2lu
Y2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgorCituYW1l
c3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIFdlYkZha2VYUkRldmljZSBmaW5hbCA6IHB1YmxpYyBS
ZWZDb3VudGVkPFdlYkZha2VYUkRldmljZT4geworcHVibGljOgorICAgIHZvaWQgc2V0Vmlld3Mo
VmVjdG9yPEZha2VYUlZpZXdJbml0Pik7CisKKyAgICB2b2lkIGRpc2Nvbm5lY3QoRE9NUHJvbWlz
ZURlZmVycmVkPHZvaWQ+JiYpOworCisgICAgdm9pZCBzZXRWaWV3ZXJPcmlnaW4oRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0IG9yaWdpbiwgYm9vbCBlbXVsYXRlZFBvc2l0aW9uID0gZmFsc2UpOwor
CisgICAgdm9pZCBjbGVhclZpZXdlck9yaWdpbigpOworCisgICAgdm9pZCBzaW11bGF0ZVZpc2li
aWxpdHlDaGFuZ2UoWFJWaXNpYmlsaXR5U3RhdGUpOworCisgICAgdm9pZCBzZXRCb3VuZHNHZW9t
ZXRyeShWZWN0b3I8RmFrZVhSQm91bmRzUG9pbnQ+IGJvdW5kc0Nvb3JkaW5hdGVzKTsKKworICAg
IHZvaWQgc2V0Rmxvb3JPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0KTsKKworICAgIHZv
aWQgY2xlYXJGbG9vck9yaWdpbigpOworCisgICAgdm9pZCBzaW11bGF0ZVJlc2V0UG9zZSgpOwor
CisgICAgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyIHNpbXVsYXRlSW5wdXRTb3VyY2VDb25uZWN0
aW9uKEZha2VYUklucHV0U291cmNlSW5pdCk7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90
ZXN0aW5nL1dlYkZha2VYUkRldmljZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZh
a2VYUkRldmljZS5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTYyZDEzZGU2ZTY1ZjcxYmU3ZWVmZmYyYTcyYTRm
MTJlMDM3MTU1NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
RmFrZVhSRGV2aWNlLmlkbApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNl
IGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
UmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90
aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JT
IGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9G
IE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NF
IEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05U
UklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkg
T0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwg
T1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJ
TiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNF
RCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKK1sKKyAgICBF
bmFibGVkQXRSdW50aW1lPVdlYlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEludGVy
ZmFjZU5hbWU9RmFrZVhSRGV2aWNlLAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisg
ICAgTm9JbnRlcmZhY2VPYmplY3QsCitdIGludGVyZmFjZSBXZWJGYWtlWFJEZXZpY2UgeworICAv
LyBTZXRzIHRoZSB2YWx1ZXMgdG8gYmUgdXNlZCBmb3Igc3Vic2VxdWVudAorICAvLyByZXF1ZXN0
QW5pbWF0aW9uRnJhbWUoKSBjYWxsYmFja3MuCisgIHZvaWQgc2V0Vmlld3Moc2VxdWVuY2U8RmFr
ZVhSVmlld0luaXQ+IHZpZXdzKTsKKworICAvLyBiZWhhdmVzIGFzIGlmIGRldmljZSB3YXMgZGlz
Y29ubmVjdGVkCisgIFByb21pc2U8dm9pZD4gZGlzY29ubmVjdCgpOworCisgIC8vIFNldHMgdGhl
IG9yaWdpbiBvZiB0aGUgdmlld2VyCisgIHZvaWQgc2V0Vmlld2VyT3JpZ2luKEZha2VYUlJpZ2lk
VHJhbnNmb3JtSW5pdCBvcmlnaW4sIG9wdGlvbmFsIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlvbiA9
IGZhbHNlKTsKKworICAvLyBJZiBhbiBvcmlnaW4gaXMgbm90IHNwZWNpZmllZCwgdGhlbiB0aGUg
ZGV2aWNlIGlzIGFzc3VtZWQgdG8gbm90IGJlIHRyYWNraW5nLCBlbXVsYXRlZFBvc2l0aW9uIHNo
b3VsZAorICAvLyBiZSBhc3N1bWVkIGZvciBjYXNlcyB3aGVyZSB0aGUgVUEgbXVzdCBhbHdheXMg
cHJvdmlkZSBhIHBvc2UuCisgIHZvaWQgY2xlYXJWaWV3ZXJPcmlnaW4oKTsKKworICAvLyBTaW11
bGF0ZXMgZGV2aWNlcyBmb2N1c2luZyBhbmQgYmx1cnJpbmcgc2Vzc2lvbnMuCisgIHZvaWQgc2lt
dWxhdGVWaXNpYmlsaXR5Q2hhbmdlKFhSVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSk7
CisKKyAgdm9pZCBzZXRCb3VuZHNHZW9tZXRyeShzZXF1ZW5jZTxGYWtlWFJCb3VuZHNQb2ludD4g
Ym91bmRzQ29vcmRpbmF0ZXMpOworICAvLyBTZXRzIHRoZSBuYXRpdmUgb3JpZ2luIG9mIHRoZSBw
aHlzaWNhbCBmbG9vcgorICB2b2lkIHNldEZsb29yT3JpZ2luKEZha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdCBmbG9vck9yaWdpbik7CisKKyAgLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGRldmljZSBjYW4g
bm8gbG9uZ2VyIGlkZW50aWZ5IHRoZSBsb2NhdGlvbiBvZiB0aGUgcGh5c2ljYWwgZmxvb3IuCisg
IHZvaWQgY2xlYXJGbG9vck9yaWdpbigpOworCisgIC8vIFVzZWQgdG8gc2ltdWxhdGUgYSBtYWpv
ciBjaGFuZ2UgaW4gdHJhY2tpbmcgYW5kIHRoYXQgYSByZXNldCBwb3NlIGV2ZW50IHNob3VsZCBi
ZSBmaXJlZAorICAvLyBodHRwczovL2ltbWVyc2l2ZS13ZWIuZ2l0aHViLmlvL3dlYnhyLyNldmVu
dC10eXBlcworICB2b2lkIHNpbXVsYXRlUmVzZXRQb3NlKCk7CisKKyAgLy8gVXNlZCB0byBjb25u
ZWN0IGFuZCBzZW5kIGlucHV0IGV2ZW50cworICBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgc2lt
dWxhdGVJbnB1dFNvdXJjZUNvbm5lY3Rpb24oRmFrZVhSSW5wdXRTb3VyY2VJbml0IGlucHV0U291
cmNlKTsKK307ClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuY3BwCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5
MGM5ODcwYmI0OGM1MWNlODU1YTVhZTJmYjJhMzY3MWNhNzE2YjAKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5jcHAKQEAg
LTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyLmgiCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKK25h
bWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldEhh
bmRlZG5lc3MoWFJIYW5kZWRuZXNzKQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJv
bGxlcjo6c2V0VGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1vZGUpCit7Cit9CisKK3ZvaWQgV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyOjpzZXRQcm9maWxlcyhWZWN0b3I8U3RyaW5nPikKK3sKK30K
Kwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldEdyaXBPcmlnaW4oRmFrZVhSUmln
aWRUcmFuc2Zvcm1Jbml0IGdyaXBPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbikKK3sKKyAg
ICBVTlVTRURfUEFSQU0oZ3JpcE9yaWdpbik7CisgICAgVU5VU0VEX1BBUkFNKGVtdWxhdGVkUG9z
aXRpb24pOworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6Y2xlYXJHcmlwT3Jp
Z2luKCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNldFBvaW50ZXJP
cmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJvb2wgZW11bGF0
ZWRQb3NpdGlvbikKK3sKKyAgICBVTlVTRURfUEFSQU0ocG9pbnRlck9yaWdpbik7CisgICAgVU5V
U0VEX1BBUkFNKGVtdWxhdGVkUG9zaXRpb24pOworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29u
dHJvbGxlcjo6ZGlzY29ubmVjdCgpCit7Cit9CisKK3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9s
bGVyOjpyZWNvbm5lY3QoKQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6
c3RhcnRTZWxlY3Rpb24oKQoreworfQorCit2b2lkIFdlYkZha2VYUklucHV0Q29udHJvbGxlcjo6
ZW5kU2VsZWN0aW9uKCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNp
bXVsYXRlU2VsZWN0KCkKK3sKK30KKwordm9pZCBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI6OnNl
dFN1cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4pCit7Cit9CisK
K3ZvaWQgV2ViRmFrZVhSSW5wdXRDb250cm9sbGVyOjp1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJC
dXR0b25TdGF0ZUluaXQpCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2Vi
RmFrZVhSSW5wdXRDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VY
UklucHV0Q29udHJvbGxlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyN2UzNWYwZmVlNzM4OTEzMGU2MWU5ZmE1
OTQxZjdhYWI0MDc3NDEKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L1dlYkZha2VYUklucHV0Q29udHJvbGxlci5oCkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2Ug
dGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlv
biBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJS
QU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4g
T1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBE
QU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAq
IFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9G
SVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04g
QU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1Qg
TElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisg
KiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZF
TiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8K
KworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCWFIpCisKKyNpbmNsdWRlICJGYWtlWFJC
dXR0b25TdGF0ZUluaXQuaCIKKyNpbmNsdWRlICJGYWtlWFJSaWdpZFRyYW5zZm9ybUluaXQuaCIK
KyNpbmNsdWRlICJYUkhhbmRlZG5lc3MuaCIKKyNpbmNsdWRlICJYUlRhcmdldFJheU1vZGUuaCIK
KyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KKwor
bmFtZXNwYWNlIFdlYkNvcmUgeworCitjbGFzcyBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgZmlu
YWwgOiBwdWJsaWMgUmVmQ291bnRlZDxXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXI+IHsKK3B1Ymxp
YzoKKyAgICB2b2lkIHNldEhhbmRlZG5lc3MoWFJIYW5kZWRuZXNzKTsKKworICAgIHZvaWQgc2V0
VGFyZ2V0UmF5TW9kZShYUlRhcmdldFJheU1vZGUpOworCisgICAgdm9pZCBzZXRQcm9maWxlcyhW
ZWN0b3I8U3RyaW5nPik7CisKKyAgICB2b2lkIHNldEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRUcmFu
c2Zvcm1Jbml0IGdyaXBPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKwor
ICAgIHZvaWQgY2xlYXJHcmlwT3JpZ2luKCk7CisKKyAgICB2b2lkIHNldFBvaW50ZXJPcmlnaW4o
RmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IHBvaW50ZXJPcmlnaW4sIGJvb2wgZW11bGF0ZWRQb3Np
dGlvbiA9IGZhbHNlKTsKKworICAgIHZvaWQgZGlzY29ubmVjdCgpOworCisgICAgdm9pZCByZWNv
bm5lY3QoKTsKKworICAgIHZvaWQgc3RhcnRTZWxlY3Rpb24oKTsKKworICAgIHZvaWQgZW5kU2Vs
ZWN0aW9uKCk7CisKKyAgICB2b2lkIHNpbXVsYXRlU2VsZWN0KCk7CisKKyAgICB2b2lkIHNldFN1
cHBvcnRlZEJ1dHRvbnMoVmVjdG9yPEZha2VYUkJ1dHRvblN0YXRlSW5pdD4pOworCisgICAgdm9p
ZCB1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQpOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdFQlhSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsIGIvU291
cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmRjY2Q5YjFkZmVlYzgyZDNhNzY5ZjQ2ZTAyMWRiYzg5MzZhODA5MWYKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1dlYkZha2VYUklucHV0Q29udHJvbGxlci5p
ZGwKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisg
KiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9u
cyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMg
cHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMg
UFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAq
IEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ
VFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1F
RC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBC
RSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBF
WEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5P
VCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJW
SUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRF
UlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwg
V0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xV
RElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQg
T0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQ
T1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCitbCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUiwKKyAgICBDb25kaXRpb25hbD1XRUJYUiwKKyAgICBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlLAorICAgIEludGVyZmFjZU5hbWU9RmFrZVhSSW5wdXRDb250cm9sbGVyLAorICAgIE5v
SW50ZXJmYWNlT2JqZWN0CitdIGludGVyZmFjZSBXZWJGYWtlWFJJbnB1dENvbnRyb2xsZXIgewor
ICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSBoYW5kZWRuZXNzIG9mIHRoZSBkZXZpY2UgaGFzIGNo
YW5nZWQuCisgICAgdm9pZCBzZXRIYW5kZWRuZXNzKFhSSGFuZGVkbmVzcyBoYW5kZWRuZXNzKTsK
KworICAgIC8vIEluZGljYXRlcyB0aGF0IHRoZSB0YXJnZXQgcmF5IG1vZGUgb2YgdGhlIGRldmlj
ZSBoYXMgY2hhbmdlZC4KKyAgICB2b2lkIHNldFRhcmdldFJheU1vZGUoWFJUYXJnZXRSYXlNb2Rl
IHRhcmdldFJheU1vZGUpOworCisgICAgLy8gSW5kaWNhdGVzIHRoYXQgdGhlIGxpc3Qgb2YgcHJv
ZmlsZXMgcmVwcmVzZW50aW5nIHRoZSBkZXZpY2UgaGFzIGNoYW5nZWQuCisgICAgdm9pZCBzZXRQ
cm9maWxlcyhzZXF1ZW5jZTxET01TdHJpbmc+IHByb2ZpbGVzKTsKKworICAgIC8vIFNldHMgb3Ig
Y2xlYXJzIHRoZSBwb3NpdGlvbiBvZiB0aGUgY29udHJvbGxlci4gIElmIG5vdCBzZXQsIHRoZSBj
b250cm9sbGVyIGlzIGFzc3VtZWQgdG8KKyAgICAvLyBub3QgYmUgdHJhY2tlZC4KKyAgICB2b2lk
IHNldEdyaXBPcmlnaW4oRmFrZVhSUmlnaWRUcmFuc2Zvcm1Jbml0IGdyaXBPcmlnaW4sIG9wdGlv
bmFsIGJvb2xlYW4gZW11bGF0ZWRQb3NpdGlvbiA9IGZhbHNlKTsKKyAgICB2b2lkIGNsZWFyR3Jp
cE9yaWdpbigpOworCisgICAgLy8gU2V0cyB0aGUgcG9pbnRlciBvcmlnaW4gZm9yIHRoZSBjb250
cm9sbGVyLgorICAgIHZvaWQgc2V0UG9pbnRlck9yaWdpbihGYWtlWFJSaWdpZFRyYW5zZm9ybUlu
aXQgcG9pbnRlck9yaWdpbiwgb3B0aW9uYWwgYm9vbGVhbiBlbXVsYXRlZFBvc2l0aW9uID0gZmFs
c2UpOworCisgICAgLy8gVGVtcG9yYXJpbHkgZGlzY29ubmVjdCB0aGUgaW5wdXQgZGV2aWNlCisg
ICAgdm9pZCBkaXNjb25uZWN0KCk7CisKKyAgICAvLyBSZWNvbm5lY3QgYSBkaXNjb25uZWN0ZWQg
aW5wdXQgZGV2aWNlCisgICAgdm9pZCByZWNvbm5lY3QoKTsKKworICAgIC8vIFN0YXJ0IGEgc2Vs
ZWN0aW9uIGZvciB0aGUgY3VycmVudCBmcmFtZSB3aXRoIHRoZSBwcmltYXJ5IGlucHV0CisgICAg
Ly8gSWYgYSBnYW1lcGFkIGlzIHN1cHBvcnRlZCwgc2hvdWxkIHVwZGF0ZSB0aGUgc3RhdGUgb2Yg
dGhlIHByaW1hcnkgYnV0dG9uIGFjY29yZGluZ2x5LgorICAgIHZvaWQgc3RhcnRTZWxlY3Rpb24o
KTsKKworICAgIC8vIEVuZCBzZWxlY3Rpb24gZm9yIHRoZSBjdXJyZW50IGZyYW1lIHdpdGggdGhl
IHByaW1hcnkgaW5wdXQKKyAgICAvLyBJZiBhIGdhbWVwYWQgaXMgc3VwcG9ydGVkLCBzaG91bGQg
dXBkYXRlIHRoZSBzdGF0ZSBvZiB0aGUgcHJpbWFyeSBidXR0b24gYWNjb3JkaW5nbHkuCisgICAg
dm9pZCBlbmRTZWxlY3Rpb24oKTsKKworICAgIC8vIFNpbXVsYXRlcyBhIHN0YXJ0L2VuZFNlbGVj
dGlvbiBmb3IgdGhlIGN1cnJlbnQgZnJhbWUgd2l0aCB0aGUgcHJpbWFyeSBpbnB1dAorICAgIC8v
IElmIGEgZ2FtZXBhZCBpcyBzdXBwb3J0ZWQsIHNob3VsZCB1cGRhdGUgdGhlIHN0YXRlIG9mIHRo
ZSBwcmltYXJ5IGJ1dHRvbiBhY2NvcmRpbmdseS4KKyAgICB2b2lkIHNpbXVsYXRlU2VsZWN0KCk7
CisKKyAgICAvLyBVcGRhdGVzIHRoZSBzZXQgb2Ygc3VwcG9ydGVkIGJ1dHRvbnMsIGluY2x1ZGlu
ZyBhbnkgaW5pdGlhbCBzdGF0ZS4KKyAgICAvLyBOb3RlIHRoYXQgdGhpcyBtZXRob2Qgc2hvdWxk
IG5vdCBiZSBnZW5lcmFsbHkgdXNlZCB0byB1cGRhdGUgdGhlIHN0YXRlIG9mIHRoZQorICAgIC8v
IGJ1dHRvbnMsIGFzIHRoZSBVQSBtYXkgdHJlYXQgdGhpcyBhcyByZS1jcmVhdGluZyB0aGUgR2Ft
ZXBhZC4KKyAgICAvLyBOb3RlIHRoYXQgaWYgYW55IEZha2VYUkJ1dHRvblR5cGUgaXMgcmVwZWF0
ZWQgdGhlIGJlaGF2aW9yIGlzIHVuZGVmaW5lZC4KKyAgICB2b2lkIHNldFN1cHBvcnRlZEJ1dHRv
bnMoc2VxdWVuY2U8RmFrZVhSQnV0dG9uU3RhdGVJbml0PiBzdXBwb3J0ZWRCdXR0b25zKTsKKwor
ICAgIC8vIFVzZWQgdG8gdXBkYXRlIHRoZSBzdGF0ZSBvZiBhIGJ1dHRvbiBjdXJyZW50bHkgc3Vw
cG9ydGVkIGJ5IHRoZSBpbnB1dCBzb3VyY2UKKyAgICAvLyBXaWxsIG5vdCBhZGQgc3VwcG9ydCBm
b3IgdGhhdCBidXR0b24gaWYgaXQgaXMgbm90IGN1cnJlbnRseSBzdXBwb3J0ZWQuCisgICAgdm9p
ZCB1cGRhdGVCdXR0b25TdGF0ZShGYWtlWFJCdXR0b25TdGF0ZUluaXQgYnV0dG9uU3RhdGUpOwor
fTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45Y2MyYWI0ZTQy
OGNkZWEyOGNlNmI5MDIxMTAzNjE0NTllYWEwNTA0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNl
L1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuY3BwCkBAIC0wLDAgKzEsNDcgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisg
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0
aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRh
dGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlv
bi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElU
UyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVE
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElO
Qy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YK
KyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQ
Uk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0Up
CisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwg
RVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIldlYlhSVGVzdC5oIgorCisjaWYg
RU5BQkxFKFdFQlhSKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgV2ViWFJUZXN0Ojpz
aW11bGF0ZURldmljZUNvbm5lY3Rpb24oRmFrZVhSRGV2aWNlSW5pdCwgV2ViRmFrZVhSRGV2aWNl
UHJvbWlzZSYmKSBjb25zdAoreworfQorCit2b2lkIFdlYlhSVGVzdDo6c2ltdWxhdGVVc2VyQWN0
aXZhdGlvbihYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiYpCit7Cit9CisKK3ZvaWQg
V2ViWFJUZXN0OjpkaXNjb25uZWN0QWxsRGV2aWNlcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4m
JikKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFdF
QlhSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaCBiL1Nv
dXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzMwODY4ZjFiZWJk
MzQ3Y2Y4MmMzZGQxMTBjNjM3YTEyNmFjMjlkOQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0LmgKQEAgLTAsMCArMSw3OSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJYUikKKworI2luY2x1ZGUgIkpTRE9NUHJv
bWlzZURlZmVycmVkLmgiCisjaW5jbHVkZSAiV2ViRmFrZVhSRGV2aWNlLmgiCisjaW5jbHVkZSAi
WFJTZXNzaW9uTW9kZS5oIgorI2luY2x1ZGUgIlhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0
aW9uLmgiCisjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSlNDSlNWYWx1ZS5oPgorI2luY2x1ZGUg
PHd0Zi9PcHRpb25hbC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CisKK25hbWVzcGFj
ZSBXZWJDb3JlIHsKKworY2xhc3MgV2ViWFJTeXN0ZW07CisKK2NsYXNzIFdlYlhSVGVzdCBmaW5h
bCA6IHB1YmxpYyBSZWZDb3VudGVkPFdlYlhSVGVzdD4geworcHVibGljOgorICAgIHN0cnVjdCBG
YWtlWFJEZXZpY2VJbml0IHsKKyAgICAgICAgYm9vbCBzdXBwb3J0c0ltbWVyc2l2ZSB7IGZhbHNl
IH07CisgICAgICAgIE9wdGlvbmFsPFZlY3RvcjxYUlNlc3Npb25Nb2RlPj4gc3VwcG9ydGVkTW9k
ZXM7CisgICAgICAgIFZlY3RvcjxGYWtlWFJWaWV3SW5pdD4gdmlld3M7CisKKyAgICAgICAgT3B0
aW9uYWw8VmVjdG9yPEpTQzo6SlNWYWx1ZT4+IHN1cHBvcnRlZEZlYXR1cmVzOworCisgICAgICAg
IE9wdGlvbmFsPFZlY3RvcjxGYWtlWFJCb3VuZHNQb2ludD4+IGJvdW5kc0Nvb3JkaW5hdGVzOwor
CisgICAgICAgIE9wdGlvbmFsPEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdD4gZmxvb3JPcmlnaW47
CisgICAgICAgIE9wdGlvbmFsPEZha2VYUlJpZ2lkVHJhbnNmb3JtSW5pdD4gdmlld2VyT3JpZ2lu
OworICAgIH07CisKKyAgICBzdGF0aWMgUmVmPFdlYlhSVGVzdD4gY3JlYXRlKFdlYWtQdHI8V2Vi
WFJTeXN0ZW0+JiYgc3lzdGVtKSB7IHJldHVybiBhZG9wdFJlZigqbmV3IFdlYlhSVGVzdChXVEZN
b3ZlKHN5c3RlbSkpKTsgfQorCisgICAgdXNpbmcgV2ViRmFrZVhSRGV2aWNlUHJvbWlzZSA9IERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8V2ViRmFrZVhSRGV2aWNlPj47CisgICAgdm9p
ZCBzaW11bGF0ZURldmljZUNvbm5lY3Rpb24oRmFrZVhSRGV2aWNlSW5pdCwgV2ViRmFrZVhSRGV2
aWNlUHJvbWlzZSYmKSBjb25zdDsKKworICAgIC8vIFNpbXVsYXRlcyBhIHVzZXIgYWN0aXZhdGlv
biAoYWthIHVzZXIgZ2VzdHVyZSkgZm9yIHRoZSBjdXJyZW50IHNjb3BlLgorICAgIC8vIFRoZSBh
Y3RpdmF0aW9uIGlzIG9ubHkgZ3VhcmFudGVlZCB0byBiZSB2YWxpZCBpbiB0aGUgcHJvdmlkZWQg
ZnVuY3Rpb24gYW5kIG9ubHkgYXBwbGllcyB0byBXZWJYUgorICAgIC8vIERldmljZSBBUEkgbWV0
aG9kcy4KKyAgICB2b2lkIHNpbXVsYXRlVXNlckFjdGl2YXRpb24oWFJTaW11bGF0ZVVzZXJBY3Rp
dmF0aW9uRnVuY3Rpb24mKTsKKworICAgIC8vIERpc2Nvbm5lY3QgYWxsIGZha2UgZGV2aWNlcwor
ICAgIHZvaWQgZGlzY29ubmVjdEFsbERldmljZXMoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYp
OworCitwcml2YXRlOgorICAgIFdlYlhSVGVzdChXZWFrUHRyPFdlYlhSU3lzdGVtPiYmIHN5c3Rl
bSkKKyAgICAgICAgOiBtX2NvbnRleHQoV1RGTW92ZShzeXN0ZW0pKSB7IH0KKworICAgIFdlYWtQ
dHI8V2ViWFJTeXN0ZW0+IG1fY29udGV4dDsKK307CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShXRUJYUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Rl
c3RpbmcvV2ViWFJUZXN0LmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvV2ViWFJUZXN0Lmlk
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40ZjI3ZDk4MTZhNGZkNmQyMDYwMmQzNDc3YWQyZWMwOGMzYjJmYjcxCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9XZWJYUlRlc3QuaWRsCkBA
IC0wLDAgKzEsODEgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgSWdhbGlhIFMuTC4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8gCisKK1sKKyAgICBFbmFibGVkQXRSdW50aW1lPVdl
YlhSLAorICAgIENvbmRpdGlvbmFsPVdFQlhSLAorICAgIEV4cG9zZWQ9V2luZG93LAorICAgIElu
dGVyZmFjZU5hbWU9WFJUZXN0LAorICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCisgICAg
Tm9JbnRlcmZhY2VPYmplY3QKK10gaW50ZXJmYWNlIFdlYlhSVGVzdCB7CisgICAgLy8gU2ltdWxh
dGVzIGNvbm5lY3RpbmcgYSBkZXZpY2UgdG8gdGhlIHN5c3RlbS4KKyAgICAvLyBVc2VkIHRvIGlu
c3RhbnRpYXRlIGEgZmFrZSBkZXZpY2UgZm9yIHVzZSBpbiB0ZXN0cy4KKyAgICBQcm9taXNlPFdl
YkZha2VYUkRldmljZT4gc2ltdWxhdGVEZXZpY2VDb25uZWN0aW9uKEZha2VYUkRldmljZUluaXQg
aW5pdCk7CisKKyAgICAvLyBTaW11bGF0ZXMgYSB1c2VyIGFjdGl2YXRpb24gKGFrYSB1c2VyIGdl
c3R1cmUpIGZvciB0aGUgY3VycmVudCBzY29wZS4KKyAgICAvLyBUaGUgYWN0aXZhdGlvbiBpcyBv
bmx5IGd1YXJhbnRlZWQgdG8gYmUgdmFsaWQgaW4gdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGFuZCBv
bmx5IGFwcGxpZXMgdG8gV2ViWFIKKyAgICAvLyBEZXZpY2UgQVBJIG1ldGhvZHMuCisgICAgdm9p
ZCBzaW11bGF0ZVVzZXJBY3RpdmF0aW9uKFhSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9u
IGYpOworCisgICAgLy8gRGlzY29ubmVjdCBhbGwgZmFrZSBkZXZpY2VzCisgICAgUHJvbWlzZTx2
b2lkPiBkaXNjb25uZWN0QWxsRGV2aWNlcygpOworfTsKKworWworICAgIEVuYWJsZWRBdFJ1bnRp
bWU9V2ViWFIsCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCitdIGRpY3Rpb25hcnkgRmFrZVhSRGV2
aWNlSW5pdCB7CisgICAgLy8gRGVwcmVjYXRlZCAtIHVzZSBgc3VwcG9ydGVkTW9kZXNgIGluc3Rl
YWQuCisgICAgcmVxdWlyZWQgYm9vbGVhbiBzdXBwb3J0c0ltbWVyc2l2ZTsKKyAgICAvLyBTZXF1
ZW5jZSBvZiBtb2RlcyB0aGF0IHNob3VsZCBiZSBzdXBwb3J0ZWQgYnkgdGhpcyBkZXZpY2UuCisg
ICAgc2VxdWVuY2U8WFJTZXNzaW9uTW9kZT4gc3VwcG9ydGVkTW9kZXM7CisgICAgcmVxdWlyZWQg
c2VxdWVuY2U8RmFrZVhSVmlld0luaXQ+IHZpZXdzOworCisgICAgLy8gaHR0cHM6Ly9pbW1lcnNp
dmUtd2ViLmdpdGh1Yi5pby93ZWJ4ci8jZmVhdHVyZS1uYW1lCisgICAgLy8gVGhlIGxpc3Qgb2Yg
ZmVhdHVyZSBuYW1lcyB0aGF0IHRoaXMgZGV2aWNlIHN1cHBvcnRzLgorICAgIC8vIEFueSByZXF1
ZXN0cyBmb3IgZmVhdHVyZXMgbm90IGluIHRoaXMgbGlzdCBzaG91bGQgYmUgcmVqZWN0ZWQsIHdp
dGggdGhlIGV4Y2VwdGlvbiBvZiB0aG9zZQorICAgIC8vIHRoYXQgYXJlIGd1YXJhbnRlZWQgcmVn
YXJkbGVzcyBvZiBkZXZpY2UgYXZhaWxhYmlsaXR5IChlLmcuICd2aWV3ZXInKS4KKyAgICAvLyBJ
ZiBub3Qgc3BlY2lmaWVkL2VtcHR5LCB0aGUgZGV2aWNlIHN1cHBvcnRzIG5vIGZlYXR1cmVzLgor
ICAgIC8vIE5PVEU6IFRoaXMgaXMgbWVhbnQgdG8gZW11bGF0ZSBoYXJkd2FyZSBzdXBwb3J0LCBu
b3Qgd2hldGhlciBhIGZlYXR1cmUgaXMKKyAgICAvLyBjdXJyZW50bHkgYXZhaWxhYmxlIChlLmcu
IGJvdW5kcyBub3QgYmVpbmcgdHJhY2tlZCBwZXIgYmVsb3cpCisgICAgc2VxdWVuY2U8YW55PiBz
dXBwb3J0ZWRGZWF0dXJlczsKKworICAgIC8vIFRoZSBib3VuZHMgY29vcmRpbmF0ZXMuIElmIGVt
cHR5LCBubyBib3VuZGVkIHJlZmVyZW5jZSBzcGFjZSBpcyBjdXJyZW50bHkgdHJhY2tlZC4KKyAg
ICAvLyBJZiBub3QsIG11c3QgaGF2ZSBhdCBsZWFzdCB0aHJlZSBlbGVtZW50cy4KKyAgICBzZXF1
ZW5jZTxGYWtlWFJCb3VuZHNQb2ludD4gYm91bmRzQ29vcmRpbmF0ZXM7CisKKyAgICAvLyBBIHRy
YW5zZm9ybSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBwaHlzaWNhbCBwb3NpdGlvbiBvZiB0aGUgdXNl
cidzIGZsb29yLgorICAgIC8vIElmIG5vdCBzZXQsIGluZGljYXRlcyB0aGF0IHRoZSBkZXZpY2Ug
Y2Fubm90IGlkZW50aWZ5IHRoZSBwaHlzaWNhbCBmbG9vci4KKyAgICBGYWtlWFJSaWdpZFRyYW5z
Zm9ybUluaXQgZmxvb3JPcmlnaW47CisKKyAgICAvLyBuYXRpdmUgb3JpZ2luIG9mIHRoZSB2aWV3
ZXIKKyAgICAvLyBJZiBub3Qgc2V0LCB0aGUgZGV2aWNlIGlzIGN1cnJlbnRseSBhc3N1bWVkIHRv
IG5vdCBiZSB0cmFja2luZywgYW5kIHhyRnJhbWUuZ2V0Vmlld2VyUG9zZSBzaG91bGQKKyAgICAv
LyBub3QgcmV0dXJuIGEgcG9zZS4KKyAgICAvLworICAgIC8vIFRoaXMgc2V0cyB0aGUgdmlld2Vy
IG9yaWdpbiAqc2hvcnRseSBhZnRlciogaW5pdGlhbGl6YXRpb247IHNpbmNlIHRoZSB2aWV3ZXIg
b3JpZ2luIGF0IGluaXRpYWxpemF0aW9uCisgICAgLy8gaXMgdXNlZCB0byBwcm92aWRlIGEgcmVm
ZXJlbmNlIG9yaWdpbiBmb3IgYWxsIG1hdHJpY2VzLgorICAgIEZha2VYUlJpZ2lkVHJhbnNmb3Jt
SW5pdCB2aWV3ZXJPcmlnaW47Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvdGVzdGlu
Zy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvdGVz
dGluZy9YUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJmM2I4
NzFjMjYxMjNjODEyMGJmNzY5NmZmYmQzOThhM2JiOGE4MjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmgK
QEAgLTAsMCArMSw0NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJYUikKKworI2luY2x1ZGUgIkFjdGl2ZURPTUNhbGxiYWNrLmgiCisjaW5jbHVkZSAiQ2Fs
bGJhY2tSZXN1bHQuaCIKKyNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5oPgorCituYW1lc3BhY2Ug
V2ViQ29yZSB7CisKK2NsYXNzIFdlYlhSRnJhbWU7CisKK2NsYXNzIFhSU2ltdWxhdGVVc2VyQWN0
aXZhdGlvbkZ1bmN0aW9uIDogcHVibGljIFJlZkNvdW50ZWQ8WFJTaW11bGF0ZVVzZXJBY3RpdmF0
aW9uRnVuY3Rpb24+LCBwdWJsaWMgQWN0aXZlRE9NQ2FsbGJhY2sgeworcHVibGljOgorICAgIHVz
aW5nIEFjdGl2ZURPTUNhbGxiYWNrOjpBY3RpdmVET01DYWxsYmFjazsKKworICAgIHZpcnR1YWwg
Q2FsbGJhY2tSZXN1bHQ8dm9pZD4gaGFuZGxlRXZlbnQoSlNDOjpKU1ZhbHVlKSA9IDA7Cit9Owor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCWFIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hSU2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1
bmN0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvWFJTaW11bGF0ZVVzZXJBY3RpdmF0
aW9uRnVuY3Rpb24uaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQyZTIyYmEzNmMyYzhjNmVlNzE5NGFlYmFjYmIz
YjgzYWZhN2YxMDAKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL1hS
U2ltdWxhdGVVc2VyQWN0aXZhdGlvbkZ1bmN0aW9uLmlkbApAQCAtMCwwICsxLDI4IEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDIwIElnYWxpYSBTLkwuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiAgUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3Qg
cmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBv
ZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnIEFORCBBTlkKKyAqIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElN
UExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFV
RU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTgorICogQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1Qs
IFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTCisgKiBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFH
RS4KKyAqLworCitbCisgICAgQ29uZGl0aW9uYWw9V0VCWFIsCisgICAgRW5hYmxlZEF0UnVudGlt
ZT1XZWJYUgorXSBjYWxsYmFjayBYUlNpbXVsYXRlVXNlckFjdGl2YXRpb25GdW5jdGlvbiA9IHZv
aWQgKGFueS4uLiBhcmd1bWVudHMpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGRmMGQ0OWQzY2ZmOTI5NDA2NTkxZTM3M2M2
MWM4ZmU1MjhmZmYxN2MuLmIxNzJhMDZjZmIwYmY5NWU3YjY0NDE2MTkyZGJhYzJlYTJmZTI3MmQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMC0wNC0yMSAgU2VyZ2lvIFZpbGxhciBTZW5pbiAg
PHN2aWxsYXJAaWdhbGlhLmNvbT4KKworICAgICAgICBbV2ViWFJdIFRlc3QgSURMcyBhbmQgc3R1
YnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwOTg1
OQorCisgICAgICAgIFJldmlld2VkIGJ5IERlYW4gSmFja3NvbiBhbmQgWW91ZW5uIEZhYmxldC4K
KworICAgICAgICAqIHBsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zOiBBZGRlZCBidWcgbnVt
YmVyIHRvIHRoZSBwYXNzaW5nIHdlYnhyIHRlc3QuCisKIDIwMjAtMDQtMjAgIFNpbW9uIEZyYXNl
ciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgSG9yaXpvbnRhbCBvdmVyZmxv
dyBvdmVybGF5IHNjcm9sbGJhciBpcyBtaXNwbGFjZWQgaW4gUlRMCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9wbGF0Zm9ybS93cGUvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDE3YjFjM2NlM2JkN2UwYTU4YzQzOTk1NDhk
YWYzZWI1ZTE1NjcyMWEuLjA4ZmQwMTIzODVmM2ZjNWZkMzQ2NmQxZDgwYzUxNDkyN2VjOTQ0ZTMg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL3dwZS9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMDIyLDcg
KzEwMjIsOCBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtd3JpdGlu
Zy1tb2Rlcy9tb25nb2xpYW4tb3JpZW50YXRpb24tMDAyLgogIyBQYXNzaW5nIHNpbmNlIHIyNTc1
NjIuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtdGV4dC93aGl0ZS1z
cGFjZS9wcmUtd3JhcC0wMTMuaHRtbCBbIFBhc3MgXQogCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnhyL2lkbGhhcm5lc3MuaHR0cHMud2luZG93Lmh0bWwgWyBQYXNzIF0KKyMg
V2ViWFIKK3dlYmtpdC5vcmcvYi8yMDk4NTkgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJ4ci9pZGxoYXJuZXNzLmh0dHBzLndpbmRvdy5odG1sIFsgUGFzcyBdCiAKICMvLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIDUuIFRFU1RTIENSQVNISU5HCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>