<?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>215460</bug_id>
          
          <creation_ts>2020-08-13 12:50:07 -0700</creation_ts>
          <short_desc>[Cocoa] Avoid changing XPC target queue inside XPC event handler</short_desc>
          <delta_ts>2020-08-17 11:25:22 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Per Arne Vollan">pvollan</reporter>
          <assigned_to name="Per Arne Vollan">pvollan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
    
    <cc>jbedard</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1680050</commentid>
    <comment_count>0</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-13 12:50:07 -0700</bug_when>
    <thetext>In WebProcess::handleXPCEndpointMessages we currently change the XPC target queue for the XPC bootstrap connection while under the XPC event handler. This sometimes causes simulated crashes on iOS and should be avoided. According to the documentation in https://developer.apple.com/documentation/xpc/1448786-xpc_connection_set_target_queue?language=objc, there does not seem to be anything saying this is a programming error, but the simulated crash claims it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680053</commentid>
    <comment_count>1</comment_count>
      <attachid>406534</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-13 12:54:58 -0700</bug_when>
    <thetext>Created attachment 406534
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680061</commentid>
    <comment_count>2</comment_count>
      <attachid>406536</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-13 13:26:00 -0700</bug_when>
    <thetext>Created attachment 406536
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680065</commentid>
    <comment_count>3</comment_count>
      <attachid>406538</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-13 13:34:46 -0700</bug_when>
    <thetext>Created attachment 406538
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680126</commentid>
    <comment_count>4</comment_count>
      <attachid>406550</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-13 16:01:41 -0700</bug_when>
    <thetext>Created attachment 406550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680145</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-08-13 16:22:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/67025658&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680291</commentid>
    <comment_count>6</comment_count>
      <attachid>406550</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-08-14 09:22:33 -0700</bug_when>
    <thetext>Comment on attachment 406550
Patch

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

&gt; Source/WebKit/ChangeLog:4
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=215460

&lt;rdar://problem/67025658&gt;

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1571
&gt; +    bool databaseUpdated = LaunchServicesDatabaseManager::singleton().waitForDatabaseUpdate(0_s);

Is there any way to register for a notification from LaunchServices, so we could react to a message rather than polling with a timer?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1577
&gt; +        Vector&lt;LoadParameters&gt; loads = WTFMove(*m_pendingLoads);

Perhaps auto?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1593
&gt; +            m_pendingLoadsTimer.startRepeating(100_ms);

If we only use this when the database update has not completed yet, could these loads be fired by the database update handler, rather than creating a new timer?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680299</commentid>
    <comment_count>7</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-08-14 09:36:13 -0700</bug_when>
    <thetext>David actually noticed this earlier:

&lt;rdar://problem/65776813&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680337</commentid>
    <comment_count>8</comment_count>
      <attachid>406604</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 10:45:46 -0700</bug_when>
    <thetext>Created attachment 406604
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680354</commentid>
    <comment_count>9</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 10:54:33 -0700</bug_when>
    <thetext>(In reply to Brent Fulgham from comment #6)
&gt; Comment on attachment 406550 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406550&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:4
&gt; &gt; +        https://bugs.webkit.org/show_bug.cgi?id=215460
&gt; 
&gt; &lt;rdar://problem/67025658&gt;
&gt; 

Done.

&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1571
&gt; &gt; +    bool databaseUpdated = LaunchServicesDatabaseManager::singleton().waitForDatabaseUpdate(0_s);
&gt; 
&gt; Is there any way to register for a notification from LaunchServices, so we
&gt; could react to a message rather than polling with a timer?
&gt; 

I don&apos;t think we currently get a notification, but we do know when we get the database in the WebContent process. However, to keep the patch as simple as possible, I think it would be good to do this as a future improvement. Do you think that is OK?

&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1577
&gt; &gt; +        Vector&lt;LoadParameters&gt; loads = WTFMove(*m_pendingLoads);
&gt; 
&gt; Perhaps auto?
&gt; 

Fixed.

&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1593
&gt; &gt; +            m_pendingLoadsTimer.startRepeating(100_ms);
&gt; 
&gt; If we only use this when the database update has not completed yet, could
&gt; these loads be fired by the database update handler, rather than creating a
&gt; new timer?

Yes, I think it could, but perhaps it would add complexity to have the database update handler have knowledge about loads and Web pages? Perhaps the Web page could register for some sort of notification as you earlier suggested. Would you be OK with improving this in a follow-up patch?


Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680385</commentid>
    <comment_count>10</comment_count>
      <attachid>406604</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-08-14 11:51:27 -0700</bug_when>
    <thetext>Comment on attachment 406604
Patch

I think this looks good, but I&apos;d like Chris or Geoff to double-check the XPC-related bits.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680386</commentid>
    <comment_count>11</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2020-08-14 11:51:50 -0700</bug_when>
    <thetext>Chris or Geoff: Could you double-check the XPC related bits of this change?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680397</commentid>
    <comment_count>12</comment_count>
      <attachid>406604</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-14 12:10:32 -0700</bug_when>
    <thetext>Comment on attachment 406604
Patch

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

This change seems wrong. What if the client app starts a load (the load gets queued by your new logic) and then the client app cancels the load (calling WebPageProxy::stopLoading()). It won&apos;t cancel the load anymore after your change.

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1589
&gt; +        WTFLogAlways(&quot;Launch Services database not updated when load requested.&quot;);

I assume you did not mean to keep a WTFLogAlways() in your patch?

&gt; Source/WebKit/WebProcess/WebPage/WebPage.h:2151
&gt; +    Optional&lt;Vector&lt;LoadParameters&gt;&gt; m_pendingLoads;

Why do we need an Optional&lt;Vector&gt;? Cannot we simply use the fact that the vector is empty as a hint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680398</commentid>
    <comment_count>13</comment_count>
      <attachid>406604</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-14 12:12:27 -0700</bug_when>
    <thetext>Comment on attachment 406604
Patch

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

&gt; Source/WebKit/ChangeLog:3
&gt; +        [Cocoa] Avoid changing XPC target queue inside XPC event handler

The patch seems to be doing more than this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680401</commentid>
    <comment_count>14</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-14 12:16:15 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #12)
&gt; Comment on attachment 406604 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406604&amp;action=review
&gt; 
&gt; This change seems wrong. What if the client app starts a load (the load gets
&gt; queued by your new logic) and then the client app cancels the load (calling
&gt; WebPageProxy::stopLoading()). It won&apos;t cancel the load anymore after your
&gt; change.

Note that stopLoading() is only example. I am sure there are other things that get broken with this new queueing. Probably, the client doing loadRequest: and then reload: while the load is queued. Or GoToBackForwardItem while a loadRequest is queued. Or LoadData while a loadRequest is queued.. To name a few.

&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1589
&gt; &gt; +        WTFLogAlways(&quot;Launch Services database not updated when load requested.&quot;);
&gt; 
&gt; I assume you did not mean to keep a WTFLogAlways() in your patch?
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.h:2151
&gt; &gt; +    Optional&lt;Vector&lt;LoadParameters&gt;&gt; m_pendingLoads;
&gt; 
&gt; Why do we need an Optional&lt;Vector&gt;? Cannot we simply use the fact that the
&gt; vector is empty as a hint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680403</commentid>
    <comment_count>15</comment_count>
      <attachid>406604</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-08-14 12:22:12 -0700</bug_when>
    <thetext>Comment on attachment 406604
Patch

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

&gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1586
&gt; +#if HAVE(LSDATABASECONTEXT)

I will also note that moving the code from platformDidReceiveLoadParameters() to WebPage::loadRequest() has a pretty significant behavior difference. It means for example that it no longer impacts WebPage::loadData() which is another way for clients to do loads. Why is it OK to load a HTML String with a stale LaunchServices DB but not OK to load a URL with a stale database? What&apos;s the difference? Note that there is no comment in the code explaining why we need to update this database in the first place.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680405</commentid>
    <comment_count>16</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 12:25:33 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; (In reply to Chris Dumez from comment #12)
&gt; &gt; Comment on attachment 406604 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=406604&amp;action=review
&gt; &gt; 
&gt; &gt; This change seems wrong. What if the client app starts a load (the load gets
&gt; &gt; queued by your new logic) and then the client app cancels the load (calling
&gt; &gt; WebPageProxy::stopLoading()). It won&apos;t cancel the load anymore after your
&gt; &gt; change.
&gt; 
&gt; Note that stopLoading() is only example. I am sure there are other things
&gt; that get broken with this new queueing. Probably, the client doing
&gt; loadRequest: and then reload: while the load is queued. Or
&gt; GoToBackForwardItem while a loadRequest is queued. Or LoadData while a
&gt; loadRequest is queued.. To name a few.
&gt; 

That is a good catch! I will look closer into resolving this.

Thanks for reviewing!

&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1589
&gt; &gt; &gt; +        WTFLogAlways(&quot;Launch Services database not updated when load requested.&quot;);
&gt; &gt; 
&gt; &gt; I assume you did not mean to keep a WTFLogAlways() in your patch?
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.h:2151
&gt; &gt; &gt; +    Optional&lt;Vector&lt;LoadParameters&gt;&gt; m_pendingLoads;
&gt; &gt; 
&gt; &gt; Why do we need an Optional&lt;Vector&gt;? Cannot we simply use the fact that the
&gt; &gt; vector is empty as a hint?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680407</commentid>
    <comment_count>17</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 12:37:57 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #15)
&gt; Comment on attachment 406604 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406604&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/WebProcess/WebPage/WebPage.cpp:1586
&gt; &gt; +#if HAVE(LSDATABASECONTEXT)
&gt; 
&gt; I will also note that moving the code from
&gt; platformDidReceiveLoadParameters() to WebPage::loadRequest() has a pretty
&gt; significant behavior difference. It means for example that it no longer
&gt; impacts WebPage::loadData() which is another way for clients to do loads.
&gt; Why is it OK to load a HTML String with a stale LaunchServices DB but not OK
&gt; to load a URL with a stale database? What&apos;s the difference? Note that there
&gt; is no comment in the code explaining why we need to update this database in
&gt; the first place.

You&apos;re absolutely right. The Launch services database is needed in both cases. The reason the database is needed is that it contains MIME type mapping information we use.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680426</commentid>
    <comment_count>18</comment_count>
      <attachid>406618</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 14:02:32 -0700</bug_when>
    <thetext>Created attachment 406618
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680441</commentid>
    <comment_count>19</comment_count>
      <attachid>406618</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-14 14:52:02 -0700</bug_when>
    <thetext>Comment on attachment 406618
Patch

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

&gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:91
&gt; +                dispatch_sync(dispatch_get_main_queue(), [initializerFunctionPtr = initializerFunctionPtr, peer = OSObjectPtr(peer), event = OSObjectPtr(event), priorityBoostMessage = OSObjectPtr(priorityBoostMessage)] {

The capturing isn’t right here. It’s overzealous.

&quot;initializerFunctionPtr = initializerFunctionPtr&quot; is not different/better than &quot;initializerFunctionPtr&quot;. Given this is dispatch_sync I don’t think you need to use OSObjectPtr; this thread is holding on to retain counts and is blocked until dispatch_sync returns.

You could use simpler capturing.

&gt; Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm:46
&gt; +#if HAVE(LSDATABASECONTEXT)

Seems like this #if should be around more of the function body. Why wrap it so tight?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680446</commentid>
    <comment_count>20</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 14:57:55 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #19)
&gt; Comment on attachment 406618 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406618&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceMain.mm:91
&gt; &gt; +                dispatch_sync(dispatch_get_main_queue(), [initializerFunctionPtr = initializerFunctionPtr, peer = OSObjectPtr(peer), event = OSObjectPtr(event), priorityBoostMessage = OSObjectPtr(priorityBoostMessage)] {
&gt; 
&gt; The capturing isn’t right here. It’s overzealous.
&gt; 
&gt; &quot;initializerFunctionPtr = initializerFunctionPtr&quot; is not different/better
&gt; than &quot;initializerFunctionPtr&quot;. Given this is dispatch_sync I don’t think you
&gt; need to use OSObjectPtr; this thread is holding on to retain counts and is
&gt; blocked until dispatch_sync returns.
&gt; 
&gt; You could use simpler capturing.
&gt; 

Good point! Will fix.

&gt; &gt; Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm:46
&gt; &gt; +#if HAVE(LSDATABASECONTEXT)
&gt; 
&gt; Seems like this #if should be around more of the function body. Why wrap it
&gt; so tight?

This file is intended to handle other types of new XPC messages sent from the UI process, while we currently only support the Launch Services XPC endpoint message.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680453</commentid>
    <comment_count>21</comment_count>
      <attachid>406618</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-14 15:06:15 -0700</bug_when>
    <thetext>Comment on attachment 406618
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm:46
&gt;&gt;&gt; +#if HAVE(LSDATABASECONTEXT)
&gt;&gt; 
&gt;&gt; Seems like this #if should be around more of the function body. Why wrap it so tight?
&gt; 
&gt; This file is intended to handle other types of new XPC messages sent from the UI process, while we currently only support the Launch Services XPC endpoint message.
&gt; 
&gt; Thanks for reviewing!

Yes, and we can move the #if when we add more message types.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680461</commentid>
    <comment_count>22</comment_count>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 15:17:07 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #21)
&gt; Comment on attachment 406618 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=406618&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebKit/WebProcess/cocoa/HandleXPCEndpointMessages.mm:46
&gt; &gt;&gt;&gt; +#if HAVE(LSDATABASECONTEXT)
&gt; &gt;&gt; 
&gt; &gt;&gt; Seems like this #if should be around more of the function body. Why wrap it so tight?
&gt; &gt; 
&gt; &gt; This file is intended to handle other types of new XPC messages sent from the UI process, while we currently only support the Launch Services XPC endpoint message.
&gt; &gt; 
&gt; &gt; Thanks for reviewing!
&gt; 
&gt; Yes, and we can move the #if when we add more message types.

Ah, I see what you mean. Will fix.

Thanks for reviewing!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680474</commentid>
    <comment_count>23</comment_count>
      <attachid>406629</attachid>
    <who name="Per Arne Vollan">pvollan</who>
    <bug_when>2020-08-14 15:33:55 -0700</bug_when>
    <thetext>Created attachment 406629
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680514</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-08-14 16:27:30 -0700</bug_when>
    <thetext>Committed r265715: &lt;https://trac.webkit.org/changeset/265715&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 406629.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1680868</commentid>
    <comment_count>25</comment_count>
    <who name="Jonathan Bedard">jbedard</who>
    <bug_when>2020-08-17 11:25:22 -0700</bug_when>
    <thetext>iOS API tests are crashing due to this commit:
&lt;https://results.webkit.org/suites?suite=api-tests&amp;platform=ios&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406534</attachid>
            <date>2020-08-13 12:54:58 -0700</date>
            <delta_ts>2020-08-13 13:25:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200813125457.patch</filename>
            <type>text/plain</type>
            <size>19312</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA4LTEzICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBXZWJQcm9jZXNzOjpoYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzIHdlIGN1cnJlbnRseSBjaGFuZ2UgdGhlIFhQQyB0YXJnZXQg
cXVldWUgZm9yIHRoZSBYUEMgYm9vdHN0cmFwIGNvbm5lY3Rpb24gd2hpbGUKKyAgICAgICAgdW5k
ZXIgdGhlIFhQQyBldmVudCBoYW5kbGVyLiBUaGlzIHNvbWV0aW1lcyBjYXVzZXMgc2ltdWxhdGVk
IGNyYXNoZXMgb24gaU9TIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gQWNjb3JkaW5nIHRvIHRoZQor
ICAgICAgICBkb2N1bWVudGF0aW9uIGluIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1
bWVudGF0aW9uL3hwYy8xNDQ4Nzg2LXhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWU/bGFu
Z3VhZ2U9b2JqYywKKyAgICAgICAgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnl0aGluZyBz
YXlpbmcgdGhpcyBpcyBhIHByb2dyYW1taW5nIGVycm9yLCBidXQgdGhlIHNpbXVsYXRlZCBjcmFz
aCBjbGFpbXMgaXQgaXMuCisKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENT
ZXJ2aWNlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZU1haW4pOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fcGVuZGlu
Z0xvYWRzVGltZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZW5kaW5nTG9hZFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0
aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzIGNvbnN0KTog
RGVsZXRlZC4KKwogMjAyMC0wOC0xMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjU1MjAuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCShyZXZpc2lv
biAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMuaCIKICNpbXBvcnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0
aW9uLmg+CkBAIC05Nyw2ICs5OCw4IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRs
ZXIoeHBjX2MKICAgICAgICAgICAgICAgICBhc3NlcnQoIXByaW9yaXR5Qm9vc3RNZXNzYWdlKTsK
ICAgICAgICAgICAgICAgICBwcmlvcml0eUJvb3N0TWVzc2FnZSA9IHhwY19yZXRhaW4oZXZlbnQp
OwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2Vz
KGV2ZW50KTsKICAgICAgICAgfQogICAgIH0pOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OTIsNiArMTY5Miw3IEBACiAJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY2M0U1QTI0QUVBNzQyMDBDNkEzQjIgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oICovOyB9OwogCQlDMTcxMENGNzI0QUE2
NDMyMDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE3MTBDRjYyNEFBNjQzMjAw
RDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLzsgfTsKIAkJQzE4
MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUgLyog
RGlzcGxheUxpbmsuaCAqLzsgfTsKKwkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRs
ZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9p
bnRNZXNzYWdlcy5tbSAqLzsgfTsKIAkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNv
bnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJ
QzUxNzM4ODExMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE3Mzg4MDEyREY4RjRG
MDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLzsgfTsKIAkJQzU0MjU2QjUxOEJF
QzE4QzAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NDI1NkFGMThCRUMxOEIwMERFNDE3OSAv
KiBXS0RhdGVUaW1lSW5wdXRDb250cm9sLmggKi87IH07CkBAIC01MDM2LDYgKzUwMzcsOCBAQAog
CQlDMTgxNzM2MjIwNTg0NEE5MDBERkRBNjUgLyogRGlzcGxheUxpbmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGlzcGxheUxpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MThGQjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1MUUyNDJGOUY3NzAwN0U5
ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMUExNTJENTI0RTVBMUQyMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIz
QjkyMEExMTU3MjAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBERkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxRUQ3MjM3MjRBNTY5MEUwMDNGNkNEMyAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAv
KiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODM4NCw2ICs4Mzg3LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNENDU3MENCMjQ0MEZCMkEw
MEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi8sCiAJCQkJQ0Q0
NTcwQ0EyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgg
Ki8sCisJCQkJQzFBMTUyRDUyNEU1QTFEMjAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMuaCAqLywKKwkJCQlDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5k
cG9pbnRNZXNzYWdlcy5tbSAqLywKIAkJCQlDMTREMzdGQzI0QUNERjQ1MDA3RkYwMTQgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCAqLywKIAkJCQlDMTREMzdGRDI0QUNFMDg2MDA3
RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi8sCiAJCQkJNDQ2REM2
NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmgg
Ki8sCkBAIC0xMjc0Miw2ICsxMjc0Nyw3IEBACiAJCQkJQ0RDREM5OUUyNDhGRThEQTAwQTY5NTIy
IC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTU3NjAy
MTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzFBMTUy
RDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyogSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBC
RiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjY1
NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsMTAgKzI5NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVAKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMoKTsKLSNlbmRpZgotCiAgICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5
IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUgaW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5y
ZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBu
b3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldv
cmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDEwICs1MjMsNiBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBtX3Nlc3Np
b25JRCA/IG1fc2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IHRydWU7IH0K
IAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cygpIGNvbnN0OwotI2VuZGlmCi0KICAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
PiBtX3dlYkNvbm5lY3Rpb247CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBSZWZQdHI8V2ViUGFnZT4+IG1fcGFnZU1hcDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMxLDYgKzMzMSwxMCBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEhBVkUoTFNEQVRBQkFTRUNP
TlRFWFQpCisjaW5jbHVkZSAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTQ3OSw2ICs0ODMsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgLCBtX292ZXJyaWRkZW5NZWRpYVR5cGUocGFyYW1ldGVy
cy5vdmVycmlkZGVuTWVkaWFUeXBlKQogICAgICwgbV9wcm9jZXNzRGlzcGxheU5hbWUocGFyYW1l
dGVycy5wcm9jZXNzRGlzcGxheU5hbWUpCiAgICAgLCBtX2xpbWl0c05hdmlnYXRpb25zVG9BcHBC
b3VuZERvbWFpbnMocGFyYW1ldGVycy5saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5z
KQorI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCisgICAgLCBtX3BlbmRpbmdMb2Fkc1RpbWVy
KCp0aGlzLCAmV2ViUGFnZTo6cGVuZGluZ0xvYWRUaW1lckZpcmVkKQorI2VuZGlmCiB7CiAgICAg
QVNTRVJUKG1faWRlbnRpZmllcik7CiAKQEAgLTE1NTgsOCArMTU2NSw0MiBAQCB2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoTFNE
QVRBQkFTRUNPTlRFWFQpCit2b2lkIFdlYlBhZ2U6OnBlbmRpbmdMb2FkVGltZXJGaXJlZCgpCit7
CisgICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdl
cjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFiYXNlVXBkYXRlKDBfcyk7CisgICAgZGF0YWJhc2VV
cGRhdGVkID0gZmFsc2U7CisgICAgYXV0byBlbGFwc2VkVGltZSA9IFdhbGxUaW1lOjpub3coKSAt
IG1fdGltZU9mRmlyc3RMb2FkOworICAgIGNvbnN0ZXhwciBTZWNvbmRzIG1heFdhaXRUaW1lID0g
Ml9zOworICAgIGlmIChkYXRhYmFzZVVwZGF0ZWQgfHwgZWxhcHNlZFRpbWUudmFsdWUoKSA+IG1h
eFdhaXRUaW1lLnZhbHVlKCkpIHsKKyAgICAgICAgbV9wZW5kaW5nTG9hZHNUaW1lci5zdG9wKCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fcGVuZGluZ0xvYWRzKTsKKyAgICAgICAgVmVjdG9y
PExvYWRQYXJhbWV0ZXJzPiBsb2FkcyA9IFdURk1vdmUoKm1fcGVuZGluZ0xvYWRzKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBsb2FkIDogbG9hZHMpCisgICAgICAgICAgICBsb2FkUmVxdWVzdChXVEZN
b3ZlKGxvYWQpKTsKKyAgICB9Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVz
dChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogeworI2lmIEhBVkUoTFNEQVRBQkFT
RUNPTlRFWFQpCisgICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlTWFuYWdlcjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFiYXNlVXBkYXRlKDBfcyk7CisgICAg
ZGF0YWJhc2VVcGRhdGVkID0gZmFsc2U7CisgICAgaWYgKCFkYXRhYmFzZVVwZGF0ZWQgfHwgbV9w
ZW5kaW5nTG9hZHNUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKExvYWRp
bmcsICJMYXVuY2ggU2VydmljZXMgZGF0YWJhc2Ugbm90IHVwZGF0ZWQgd2hlbiBsb2FkIHJlcXVl
c3RlZC4iKTsKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdMb2FkcykgeworICAgICAgICAgICAgbV9w
ZW5kaW5nTG9hZHMgPSBWZWN0b3I8TG9hZFBhcmFtZXRlcnM+KCk7CisgICAgICAgICAgICBtX3Bl
bmRpbmdMb2Fkc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDEwMF9tcyk7CisgICAgICAgICAgICBtX3Rp
bWVPZkZpcnN0TG9hZCA9IFdhbGxUaW1lOjpub3coKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
bV9wZW5kaW5nTG9hZHNUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdM
b2Fkcy0+YXBwZW5kKFdURk1vdmUobG9hZFBhcmFtZXRlcnMpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgc2V0SXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbihsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCAm
bV9tYWluRnJhbWUuZ2V0KCkpOwogCiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0
b3BwZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2ltcGxlUmFuZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9UaW1lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckFjdGl2aXR5Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyQ29udGVudFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmg+CkBAIC0xNzYzLDYgKzE3NjQsMTAgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgcGxhdGZvcm1EaWRTY2FsZVBhZ2UoKTsKIAorI2lmIEhBVkUoTFNEQVRBQkFT
RUNPTlRFWFQpCisgICAgdm9pZCBwZW5kaW5nTG9hZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgorCiAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKQEAgLTIxNDAsNiArMjE0NSwxMiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSB7IHRydWUgfTsKIAogICAg
IFZlY3RvcjxTdHJpbmc+IG1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOworCisjaWYgSEFWRShMU0RB
VEFCQVNFQ09OVEVYVCkKKyAgICBXZWJDb3JlOjpUaW1lciBtX3BlbmRpbmdMb2Fkc1RpbWVyOwor
ICAgIE9wdGlvbmFsPFZlY3RvcjxMb2FkUGFyYW1ldGVycz4+IG1fcGVuZGluZ0xvYWRzOworICAg
IFdhbGxUaW1lIG1fdGltZU9mRmlyc3RMb2FkOworI2VuZGlmCiB9OwogCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2Nv
YS9XZWJQYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY0LDE3ICs2NCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdl
YlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCi0gICAgYXV0
byBzdGFydFRpbWUgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQg
PSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFi
YXNlVXBkYXRlKDFfcyk7Ci0gICAgYXV0byBlbGFwc2VkVGltZSA9IFdhbGxUaW1lOjpub3coKSAt
IHN0YXJ0VGltZTsKLSAgICBpZiAoZWxhcHNlZFRpbWUudmFsdWUoKSA+IDAuNSkKLSAgICAgICAg
UkVMRUFTRV9MT0coTG9hZGluZywgIldhaXRpbmcgZm9yIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFz
ZSB1cGRhdGUgdG9vayAlZiBzZWNvbmRzIiwgZWxhcHNlZFRpbWUudmFsdWUoKSk7Ci0gICAgQVNT
RVJUX1VOVVNFRChkYXRhYmFzZVVwZGF0ZWQsIGRhdGFiYXNlVXBkYXRlZCk7Ci0gICAgaWYgKCFk
YXRhYmFzZVVwZGF0ZWQpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKExvYWRpbmcsICJUaW1l
ZCBvdXQgd2FpdGluZyBmb3IgTGF1bmNoIFNlcnZpY2VzIGRhdGFiYXNlIHVwZGF0ZS4iKTsKLSNl
bmRpZgotCiAgICAgbV9kYXRhRGV0ZWN0aW9uQ29udGV4dCA9IHBhcmFtZXRlcnMuZGF0YURldGVj
dGlvbkNvbnRleHQ7CiAKICAgICBpZiAocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRs
ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2lu
dE1lc3NhZ2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworbmFt
ZXNwYWNlIFdlYktpdCB7CisKK3ZvaWQgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcyh4cGNfb2Jq
ZWN0X3QgZXZlbnQpOworCit9CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2Ev
SGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbQkobm9uZXhpc3Rl
bnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRN
ZXNzYWdlcy5tbQkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDU1IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIu
CisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAq
CisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05U
UklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5U
SUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJB
TlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwg
SU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNV
QlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRT
OyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElB
QklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBB
UklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJ
RiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKwor
I2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmgi
CisKKyNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgiCisjaW1wb3J0ICJM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgiCisjaW1wb3J0ICJYUENFbmRwb2lu
dC5oIgorCisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktp
dCB7CisKK3ZvaWQgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcyh4cGNfb2JqZWN0X3QgZXZlbnQp
Cit7CisgICAgaWYgKHhwY19nZXRfdHlwZShldmVudCkgIT0gWFBDX1RZUEVfRElDVElPTkFSWSkK
KyAgICAgICAgcmV0dXJuOworCisgICAgU3RyaW5nIG1lc3NhZ2VOYW1lID0geHBjX2RpY3Rpb25h
cnlfZ2V0X3N0cmluZyhldmVudCwgWFBDRW5kcG9pbnQ6OnhwY01lc3NhZ2VOYW1lS2V5KTsKKyAg
ICBpZiAobWVzc2FnZU5hbWUuaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47CisKKyNpZiBIQVZF
KExTREFUQUJBU0VDT05URVhUKQorICAgIGlmIChtZXNzYWdlTmFtZSA9PSBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9p
bnRNZXNzYWdlTmFtZSkgeworICAgICAgICBhdXRvIGVuZHBvaW50ID0geHBjX2RpY3Rpb25hcnlf
Z2V0X3ZhbHVlKGV2ZW50LCBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9pbnROYW1lS2V5KTsKKyAgICAgICAgTGF1bmNo
U2VydmljZXNEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLnNldEVuZHBvaW50KGVuZHBvaW50
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyNlbmRpZgorfQorCit9CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0JKHJldmlz
aW9uIDI2NTYxMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNz
Q29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTI2LDggKzI2LDYgQEAKICNpbXBvcnQgImNvbmZp
Zy5oIgogI2ltcG9ydCAiV2ViUHJvY2Vzcy5oIgogCi0jaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0Rh
dGFiYXNlTWFuYWdlci5oIgotI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0
YW50cy5oIgogI2ltcG9ydCAiTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmgiCiAjaW1wb3J0
ICJMb2dJbml0aWFsaXphdGlvbi5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgpAQCAtNDksNyArNDcs
NiBAQAogI2ltcG9ydCAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbXBvcnQgIldlYlNs
ZWVwRGlzYWJsZXJDbGllbnQuaCIKICNpbXBvcnQgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJz
LmgiCi0jaW1wb3J0ICJYUENFbmRwb2ludC5oIgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvQ29u
ZmlnRmlsZS5oPgogI2ltcG9ydCA8SmF2YVNjcmlwdENvcmUvT3B0aW9ucy5oPgogI2ltcG9ydCA8
V2ViQ29yZS9BVkFzc2V0TUlNRVR5cGVDYWNoZS5oPgpAQCAtMTY3LDQxICsxNjQsNiBAQCBzdGF0
aWMgaWQgTlNBcHBsaWNhdGlvbkFjY2Vzc2liaWxpdHlGb2N1CiB9CiAjZW5kaWYKIAotdm9pZCBX
ZWJQcm9jZXNzOjpoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKCkgY29uc3QKLXsKLSAgICBpZiAo
IXBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCkpCi0gICAgICAgIHJldHVybjsKLQotICAgIGF1dG8g
Y29ubmVjdGlvbiA9IHBhcmVudFByb2Nlc3NDb25uZWN0aW9uKCktPnhwY0Nvbm5lY3Rpb24oKTsK
LQotICAgIGlmICghY29ubmVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotCi0gICAgUkVMRUFTRV9B
U1NFUlQoeHBjX2dldF90eXBlKGNvbm5lY3Rpb24pID09IFhQQ19UWVBFX0NPTk5FQ1RJT04pOwot
Ci0gICAgeHBjX2Nvbm5lY3Rpb25fc3VzcGVuZChjb25uZWN0aW9uKTsKLQotICAgIHhwY19jb25u
ZWN0aW9uX3NldF90YXJnZXRfcXVldWUoY29ubmVjdGlvbiwgZGlzcGF0Y2hfZ2V0X2dsb2JhbF9x
dWV1ZShESVNQQVRDSF9RVUVVRV9QUklPUklUWV9ERUZBVUxULCAwKSk7Ci0gICAgeHBjX2Nvbm5l
Y3Rpb25fc2V0X2V2ZW50X2hhbmRsZXIoY29ubmVjdGlvbiwgXih4cGNfb2JqZWN0X3QgZXZlbnQp
IHsKLSAgICAgICAgaWYgKHhwY19nZXRfdHlwZShldmVudCkgIT0gWFBDX1RZUEVfRElDVElPTkFS
WSkKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBTdHJpbmcgbWVzc2FnZU5hbWUgPSB4
cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCBYUENFbmRwb2ludDo6eHBjTWVzc2FnZU5h
bWVLZXkpOwotICAgICAgICBpZiAobWVzc2FnZU5hbWUuaXNFbXB0eSgpKQotICAgICAgICAgICAg
cmV0dXJuOwotCi0jaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKLSAgICAgICAgaWYgKG1lc3Nh
Z2VOYW1lID09IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNl
cnZpY2VzRGF0YWJhc2VYUENFbmRwb2ludE1lc3NhZ2VOYW1lKSB7Ci0gICAgICAgICAgICBhdXRv
IGVuZHBvaW50ID0geHBjX2RpY3Rpb25hcnlfZ2V0X3ZhbHVlKGV2ZW50LCBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9p
bnROYW1lS2V5KTsKLSAgICAgICAgICAgIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS5zZXRFbmRwb2ludChlbmRwb2ludCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0g
ICAgICAgIH0KLSNlbmRpZgotICAgIH0pOwotCi0gICAgeHBjX2Nvbm5lY3Rpb25fcmVzdW1lKGNv
bm5lY3Rpb24pOwotfQotCiB2b2lkIFdlYlByb2Nlc3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVdlYlBy
b2Nlc3MoV2ViUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBp
ZiAocGFyYW1ldGVycy5tb2JpbGVHZXN0YWx0RXh0ZW5zaW9uSGFuZGxlKSB7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406536</attachid>
            <date>2020-08-13 13:26:00 -0700</date>
            <delta_ts>2020-08-13 16:45:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200813132557.patch</filename>
            <type>text/plain</type>
            <size>19350</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA4LTEzICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBXZWJQcm9jZXNzOjpoYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzIHdlIGN1cnJlbnRseSBjaGFuZ2UgdGhlIFhQQyB0YXJnZXQg
cXVldWUgZm9yIHRoZSBYUEMgYm9vdHN0cmFwIGNvbm5lY3Rpb24gd2hpbGUKKyAgICAgICAgdW5k
ZXIgdGhlIFhQQyBldmVudCBoYW5kbGVyLiBUaGlzIHNvbWV0aW1lcyBjYXVzZXMgc2ltdWxhdGVk
IGNyYXNoZXMgb24gaU9TIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gQWNjb3JkaW5nIHRvIHRoZQor
ICAgICAgICBkb2N1bWVudGF0aW9uIGluIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1
bWVudGF0aW9uL3hwYy8xNDQ4Nzg2LXhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWU/bGFu
Z3VhZ2U9b2JqYywKKyAgICAgICAgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnl0aGluZyBz
YXlpbmcgdGhpcyBpcyBhIHByb2dyYW1taW5nIGVycm9yLCBidXQgdGhlIHNpbXVsYXRlZCBjcmFz
aCBjbGFpbXMgaXQgaXMuCisKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENT
ZXJ2aWNlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZU1haW4pOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fcGVuZGlu
Z0xvYWRzVGltZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZW5kaW5nTG9hZFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0
aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzIGNvbnN0KTog
RGVsZXRlZC4KKwogMjAyMC0wOC0xMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjU1MjAuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCShyZXZpc2lv
biAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMuaCIKICNpbXBvcnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0
aW9uLmg+CkBAIC05Nyw2ICs5OCw4IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRs
ZXIoeHBjX2MKICAgICAgICAgICAgICAgICBhc3NlcnQoIXByaW9yaXR5Qm9vc3RNZXNzYWdlKTsK
ICAgICAgICAgICAgICAgICBwcmlvcml0eUJvb3N0TWVzc2FnZSA9IHhwY19yZXRhaW4oZXZlbnQp
OwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2Vz
KGV2ZW50KTsKICAgICAgICAgfQogICAgIH0pOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OTIsNiArMTY5Miw3IEBACiAJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY2M0U1QTI0QUVBNzQyMDBDNkEzQjIgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oICovOyB9OwogCQlDMTcxMENGNzI0QUE2
NDMyMDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE3MTBDRjYyNEFBNjQzMjAw
RDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLzsgfTsKIAkJQzE4
MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUgLyog
RGlzcGxheUxpbmsuaCAqLzsgfTsKKwkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRs
ZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9p
bnRNZXNzYWdlcy5tbSAqLzsgfTsKIAkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNv
bnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJ
QzUxNzM4ODExMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE3Mzg4MDEyREY4RjRG
MDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLzsgfTsKIAkJQzU0MjU2QjUxOEJF
QzE4QzAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NDI1NkFGMThCRUMxOEIwMERFNDE3OSAv
KiBXS0RhdGVUaW1lSW5wdXRDb250cm9sLmggKi87IH07CkBAIC01MDM2LDYgKzUwMzcsOCBAQAog
CQlDMTgxNzM2MjIwNTg0NEE5MDBERkRBNjUgLyogRGlzcGxheUxpbmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGlzcGxheUxpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MThGQjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1MUUyNDJGOUY3NzAwN0U5
ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMUExNTJENTI0RTVBMUQyMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIz
QjkyMEExMTU3MjAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBERkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxRUQ3MjM3MjRBNTY5MEUwMDNGNkNEMyAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAv
KiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODM4NCw2ICs4Mzg3LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNENDU3MENCMjQ0MEZCMkEw
MEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi8sCiAJCQkJQ0Q0
NTcwQ0EyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgg
Ki8sCisJCQkJQzFBMTUyRDUyNEU1QTFEMjAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMuaCAqLywKKwkJCQlDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5k
cG9pbnRNZXNzYWdlcy5tbSAqLywKIAkJCQlDMTREMzdGQzI0QUNERjQ1MDA3RkYwMTQgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCAqLywKIAkJCQlDMTREMzdGRDI0QUNFMDg2MDA3
RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi8sCiAJCQkJNDQ2REM2
NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmgg
Ki8sCkBAIC0xMjc0Miw2ICsxMjc0Nyw3IEBACiAJCQkJQ0RDREM5OUUyNDhGRThEQTAwQTY5NTIy
IC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTU3NjAy
MTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzFBMTUy
RDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyogSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBC
RiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjY1
NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsMTAgKzI5NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVAKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMoKTsKLSNlbmRpZgotCiAgICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5
IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUgaW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5y
ZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBu
b3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldv
cmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDEwICs1MjMsNiBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBtX3Nlc3Np
b25JRCA/IG1fc2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IHRydWU7IH0K
IAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cygpIGNvbnN0OwotI2VuZGlmCi0KICAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
PiBtX3dlYkNvbm5lY3Rpb247CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBSZWZQdHI8V2ViUGFnZT4+IG1fcGFnZU1hcDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMxLDYgKzMzMSwxMCBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEhBVkUoTFNEQVRBQkFTRUNP
TlRFWFQpCisjaW5jbHVkZSAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTQ3OSw2ICs0ODMsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgLCBtX292ZXJyaWRkZW5NZWRpYVR5cGUocGFyYW1ldGVy
cy5vdmVycmlkZGVuTWVkaWFUeXBlKQogICAgICwgbV9wcm9jZXNzRGlzcGxheU5hbWUocGFyYW1l
dGVycy5wcm9jZXNzRGlzcGxheU5hbWUpCiAgICAgLCBtX2xpbWl0c05hdmlnYXRpb25zVG9BcHBC
b3VuZERvbWFpbnMocGFyYW1ldGVycy5saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5z
KQorI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCisgICAgLCBtX3BlbmRpbmdMb2Fkc1RpbWVy
KCp0aGlzLCAmV2ViUGFnZTo6cGVuZGluZ0xvYWRUaW1lckZpcmVkKQorI2VuZGlmCiB7CiAgICAg
QVNTRVJUKG1faWRlbnRpZmllcik7CiAKQEAgLTE1NTgsOCArMTU2NSw0MiBAQCB2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoTFNE
QVRBQkFTRUNPTlRFWFQpCit2b2lkIFdlYlBhZ2U6OnBlbmRpbmdMb2FkVGltZXJGaXJlZCgpCit7
CisgICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdl
cjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFiYXNlVXBkYXRlKDBfcyk7CisgICAgZGF0YWJhc2VV
cGRhdGVkID0gZmFsc2U7CisgICAgYXV0byBlbGFwc2VkVGltZSA9IFdhbGxUaW1lOjpub3coKSAt
IG1fdGltZU9mRmlyc3RMb2FkOworICAgIGNvbnN0ZXhwciBTZWNvbmRzIG1heFdhaXRUaW1lID0g
Ml9zOworICAgIGlmIChkYXRhYmFzZVVwZGF0ZWQgfHwgZWxhcHNlZFRpbWUudmFsdWUoKSA+IG1h
eFdhaXRUaW1lLnZhbHVlKCkpIHsKKyAgICAgICAgbV9wZW5kaW5nTG9hZHNUaW1lci5zdG9wKCk7
CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fcGVuZGluZ0xvYWRzKTsKKyAgICAgICAgVmVjdG9y
PExvYWRQYXJhbWV0ZXJzPiBsb2FkcyA9IFdURk1vdmUoKm1fcGVuZGluZ0xvYWRzKTsKKyAgICAg
ICAgZm9yIChhdXRvJiBsb2FkIDogbG9hZHMpCisgICAgICAgICAgICBsb2FkUmVxdWVzdChXVEZN
b3ZlKGxvYWQpKTsKKyAgICB9Cit9CisjZW5kaWYKKwogdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVz
dChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0ZXJzKQogeworI2lmIEhBVkUoTFNEQVRBQkFT
RUNPTlRFWFQpCisgICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFi
YXNlTWFuYWdlcjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFiYXNlVXBkYXRlKDBfcyk7CisgICAg
ZGF0YWJhc2VVcGRhdGVkID0gZmFsc2U7CisgICAgaWYgKCFkYXRhYmFzZVVwZGF0ZWQgfHwgbV9w
ZW5kaW5nTG9hZHNUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIFJFTEVBU0VfTE9HKExvYWRp
bmcsICJMYXVuY2ggU2VydmljZXMgZGF0YWJhc2Ugbm90IHVwZGF0ZWQgd2hlbiBsb2FkIHJlcXVl
c3RlZC4iKTsKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdMb2FkcykgeworICAgICAgICAgICAgbV9w
ZW5kaW5nTG9hZHMgPSBWZWN0b3I8TG9hZFBhcmFtZXRlcnM+KCk7CisgICAgICAgICAgICBtX3Bl
bmRpbmdMb2Fkc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDEwMF9tcyk7CisgICAgICAgICAgICBtX3Rp
bWVPZkZpcnN0TG9hZCA9IFdhbGxUaW1lOjpub3coKTsKKyAgICAgICAgfQorICAgICAgICBpZiAo
bV9wZW5kaW5nTG9hZHNUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdM
b2Fkcy0+YXBwZW5kKFdURk1vdmUobG9hZFBhcmFtZXRlcnMpKTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAgICAgc2V0SXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbihsb2FkUGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCAm
bV9tYWluRnJhbWUuZ2V0KCkpOwogCiAgICAgU2VuZFN0b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0
b3BwZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5o
CShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYgKzc5LDcgQEAKICNpbmNsdWRlIDxXZWJD
b3JlL1NoYXJlRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2ltcGxlUmFuZ2UuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1RleHRNYW5pcHVsYXRpb25Db250cm9sbGVyLmg+CisjaW5jbHVkZSA8V2Vi
Q29yZS9UaW1lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckFjdGl2aXR5Lmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Vc2VyQ29udGVudFR5cGVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50
ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmg+CkBAIC0xNzYzLDYgKzE3NjQsMTAgQEAgcHJpdmF0ZToK
IAogICAgIHZvaWQgcGxhdGZvcm1EaWRTY2FsZVBhZ2UoKTsKIAorI2lmIEhBVkUoTFNEQVRBQkFT
RUNPTlRFWFQpCisgICAgdm9pZCBwZW5kaW5nTG9hZFRpbWVyRmlyZWQoKTsKKyNlbmRpZgorCiAg
ICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyOwogCiAgICAgc3RkOjp1bmlx
dWVfcHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKQEAgLTIxNDAsNiArMjE0NSwxMiBAQCBwcml2
YXRlOgogICAgIGJvb2wgbV9jYW5Vc2VDcmVkZW50aWFsU3RvcmFnZSB7IHRydWUgfTsKIAogICAg
IFZlY3RvcjxTdHJpbmc+IG1fY29yc0Rpc2FibGluZ1BhdHRlcm5zOworCisjaWYgSEFWRShMU0RB
VEFCQVNFQ09OVEVYVCkKKyAgICBXZWJDb3JlOjpUaW1lciBtX3BlbmRpbmdMb2Fkc1RpbWVyOwor
ICAgIE9wdGlvbmFsPFZlY3RvcjxMb2FkUGFyYW1ldGVycz4+IG1fcGVuZGluZ0xvYWRzOworICAg
IFdhbGxUaW1lIG1fdGltZU9mRmlyc3RMb2FkOworI2VuZGlmCiB9OwogCiAjaWYgIVBMQVRGT1JN
KElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2Nv
YS9XZWJQYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHdvcmtp
bmcgY29weSkKQEAgLTY0LDE3ICs2NCw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiB2b2lkIFdl
YlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0
ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCi0gICAgYXV0
byBzdGFydFRpbWUgPSBXYWxsVGltZTo6bm93KCk7Ci0gICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQg
PSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFi
YXNlVXBkYXRlKDFfcyk7Ci0gICAgYXV0byBlbGFwc2VkVGltZSA9IFdhbGxUaW1lOjpub3coKSAt
IHN0YXJ0VGltZTsKLSAgICBpZiAoZWxhcHNlZFRpbWUudmFsdWUoKSA+IDAuNSkKLSAgICAgICAg
UkVMRUFTRV9MT0coTG9hZGluZywgIldhaXRpbmcgZm9yIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFz
ZSB1cGRhdGUgdG9vayAlZiBzZWNvbmRzIiwgZWxhcHNlZFRpbWUudmFsdWUoKSk7Ci0gICAgQVNT
RVJUX1VOVVNFRChkYXRhYmFzZVVwZGF0ZWQsIGRhdGFiYXNlVXBkYXRlZCk7Ci0gICAgaWYgKCFk
YXRhYmFzZVVwZGF0ZWQpCi0gICAgICAgIFJFTEVBU0VfTE9HX0VSUk9SKExvYWRpbmcsICJUaW1l
ZCBvdXQgd2FpdGluZyBmb3IgTGF1bmNoIFNlcnZpY2VzIGRhdGFiYXNlIHVwZGF0ZS4iKTsKLSNl
bmRpZgotCiAgICAgbV9kYXRhRGV0ZWN0aW9uQ29udGV4dCA9IHBhcmFtZXRlcnMuZGF0YURldGVj
dGlvbkNvbnRleHQ7CiAKICAgICBpZiAocGFyYW1ldGVycy5uZUhlbHBlckV4dGVuc2lvbkhhbmRs
ZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2lu
dE1lc3NhZ2VzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaAkobm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lu
Y2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwor
dm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKHhwY19vYmplY3RfdCBldmVudCk7CisKK30K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1l
c3NhZ2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9I
YW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW1wb3J0ICJjb25maWcuaCIK
KyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaCIKKworI2ltcG9ydCAiTGF1bmNo
U2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJh
c2VYUENDb25zdGFudHMuaCIKKyNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCisKKyNpbXBvcnQgPHd0
Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBoYW5kbGVY
UENFbmRwb2ludE1lc3NhZ2VzKHhwY19vYmplY3RfdCBldmVudCkKK3sKKyAgICBpZiAoeHBjX2dl
dF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQorICAgICAgICByZXR1cm47CisK
KyAgICBTdHJpbmcgbWVzc2FnZU5hbWUgPSB4cGNfZGljdGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50
LCBYUENFbmRwb2ludDo6eHBjTWVzc2FnZU5hbWVLZXkpOworICAgIGlmIChtZXNzYWdlTmFtZS5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQp
CisgICAgaWYgKG1lc3NhZ2VOYW1lID09IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFu
dHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENFbmRwb2ludE1lc3NhZ2VOYW1lKSB7Cisg
ICAgICAgIGF1dG8gZW5kcG9pbnQgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsIExh
dW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJh
c2VYUENFbmRwb2ludE5hbWVLZXkpOworICAgICAgICBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlcjo6c2luZ2xldG9uKCkuc2V0RW5kcG9pbnQoZW5kcG9pbnQpOworICAgICAgICByZXR1cm47
CisgICAgfQorI2VuZGlmCit9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkocmV2aXNpb24gMjY1NjExKQorKysgU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBj
b3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJQ
cm9jZXNzLmgiCiAKLSNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgiCi0j
aW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmgiCiAjaW1wb3J0ICJM
ZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIKICNpbXBvcnQgIkxvZ0luaXRpYWxpemF0aW9u
LmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC00OSw3ICs0Nyw2IEBACiAjaW1wb3J0ICJXZWJQ
cm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAiV2ViU2xlZXBEaXNhYmxlckNsaWVudC5o
IgogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKLSNpbXBvcnQgIlhQQ0Vu
ZHBvaW50LmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0
IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRNSU1F
VHlwZUNhY2hlLmg+CkBAIC0xNjcsNDEgKzE2NCw2IEBAIHN0YXRpYyBpZCBOU0FwcGxpY2F0aW9u
QWNjZXNzaWJpbGl0eUZvY3UKIH0KICNlbmRpZgogCi12b2lkIFdlYlByb2Nlc3M6OmhhbmRsZVhQ
Q0VuZHBvaW50TWVzc2FnZXMoKSBjb25zdAotewotICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5l
Y3Rpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgYXV0byBjb25uZWN0aW9uID0gcGFyZW50
UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlvbigpOwotCi0gICAgaWYgKCFjb25uZWN0
aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSRUxFQVNFX0FTU0VSVCh4cGNfZ2V0X3R5cGUo
Y29ubmVjdGlvbikgPT0gWFBDX1RZUEVfQ09OTkVDVElPTik7Ci0KLSAgICB4cGNfY29ubmVjdGlv
bl9zdXNwZW5kKGNvbm5lY3Rpb24pOwotCi0gICAgeHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9x
dWV1ZShjb25uZWN0aW9uLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVF
X1BSSU9SSVRZX0RFRkFVTFQsIDApKTsKLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFu
ZGxlcihjb25uZWN0aW9uLCBeKHhwY19vYmplY3RfdCBldmVudCkgewotICAgICAgICBpZiAoeHBj
X2dldF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9ESUNUSU9OQVJZKQotICAgICAgICAgICAgcmV0
dXJuOwotCi0gICAgICAgIFN0cmluZyBtZXNzYWdlTmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9z
dHJpbmcoZXZlbnQsIFhQQ0VuZHBvaW50Ojp4cGNNZXNzYWdlTmFtZUtleSk7Ci0gICAgICAgIGlm
IChtZXNzYWdlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSNpZiBIQVZF
KExTREFUQUJBU0VDT05URVhUKQotICAgICAgICBpZiAobWVzc2FnZU5hbWUgPT0gTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0Vu
ZHBvaW50TWVzc2FnZU5hbWUpIHsKLSAgICAgICAgICAgIGF1dG8gZW5kcG9pbnQgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFu
dHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENFbmRwb2ludE5hbWVLZXkpOwotICAgICAg
ICAgICAgTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXI6OnNpbmdsZXRvbigpLnNldEVuZHBv
aW50KGVuZHBvaW50KTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotI2VuZGlmCi0g
ICAgfSk7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9yZXN1bWUoY29ubmVjdGlvbik7Ci19Ci0KIHZv
aWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3Jl
YXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIGlmIChwYXJhbWV0ZXJzLm1vYmls
ZUdlc3RhbHRFeHRlbnNpb25IYW5kbGUpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406538</attachid>
            <date>2020-08-13 13:34:46 -0700</date>
            <delta_ts>2020-08-13 17:06:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200813133445.patch</filename>
            <type>text/plain</type>
            <size>19374</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM2IEBACisyMDIwLTA4LTEzICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBXZWJQcm9jZXNzOjpoYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzIHdlIGN1cnJlbnRseSBjaGFuZ2UgdGhlIFhQQyB0YXJnZXQg
cXVldWUgZm9yIHRoZSBYUEMgYm9vdHN0cmFwIGNvbm5lY3Rpb24gd2hpbGUKKyAgICAgICAgdW5k
ZXIgdGhlIFhQQyBldmVudCBoYW5kbGVyLiBUaGlzIHNvbWV0aW1lcyBjYXVzZXMgc2ltdWxhdGVk
IGNyYXNoZXMgb24gaU9TIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gQWNjb3JkaW5nIHRvIHRoZQor
ICAgICAgICBkb2N1bWVudGF0aW9uIGluIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1
bWVudGF0aW9uL3hwYy8xNDQ4Nzg2LXhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWU/bGFu
Z3VhZ2U9b2JqYywKKyAgICAgICAgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnl0aGluZyBz
YXlpbmcgdGhpcyBpcyBhIHByb2dyYW1taW5nIGVycm9yLCBidXQgdGhlIHNpbXVsYXRlZCBjcmFz
aCBjbGFpbXMgaXQgaXMuCisKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9D
b2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENT
ZXJ2aWNlRXZlbnRIYW5kbGVyKToKKyAgICAgICAgKFdlYktpdDo6WFBDU2VydmljZU1haW4pOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIFdl
YlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6
OldlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhbWV0ZXJzKToKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6Om1fcGVuZGlu
Z0xvYWRzVGltZXIpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwZW5kaW5nTG9hZFRpbWVy
RmlyZWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpsb2FkUmVxdWVzdCk6CisgICAgICAg
IChXZWJLaXQ6Om1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyk6IERlbGV0ZWQu
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaDoKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzOjppbml0
aWFsaXplQ29ubmVjdGlvbik6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmg6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg6IEFk
ZGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cy5tbTogQWRkZWQuCisgICAgICAgIChXZWJLaXQ6OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMp
OgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQcm9jZXNzOjpoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzIGNvbnN0KTog
RGVsZXRlZC4KKwogMjAyMC0wOC0xMyAgUGVyIEFybmUgVm9sbGFuICA8cHZvbGxhbkBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNjU1MjAuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBD
U2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQ
b2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tCShyZXZpc2lv
biAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0Nv
Y29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHdvcmtpbmcgY29weSkKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKKyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMuaCIKICNpbXBvcnQgIldLQ3Jhc2hSZXBvcnRlci5oIgogI2ltcG9ydCAiWFBD
U2VydmljZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQgPENvcmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0
aW9uLmg+CkBAIC05Nyw2ICs5OCw4IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRs
ZXIoeHBjX2MKICAgICAgICAgICAgICAgICBhc3NlcnQoIXByaW9yaXR5Qm9vc3RNZXNzYWdlKTsK
ICAgICAgICAgICAgICAgICBwcmlvcml0eUJvb3N0TWVzc2FnZSA9IHhwY19yZXRhaW4oZXZlbnQp
OwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2Vz
KGV2ZW50KTsKICAgICAgICAgfQogICAgIH0pOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OTIsNiArMTY5Miw3IEBACiAJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY2M0U1QTI0QUVBNzQyMDBDNkEzQjIgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oICovOyB9OwogCQlDMTcxMENGNzI0QUE2
NDMyMDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE3MTBDRjYyNEFBNjQzMjAw
RDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLzsgfTsKIAkJQzE4
MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUgLyog
RGlzcGxheUxpbmsuaCAqLzsgfTsKKwkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRs
ZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9p
bnRNZXNzYWdlcy5tbSAqLzsgfTsKIAkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNv
bnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJ
QzUxNzM4ODExMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE3Mzg4MDEyREY4RjRG
MDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLzsgfTsKIAkJQzU0MjU2QjUxOEJF
QzE4QzAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NDI1NkFGMThCRUMxOEIwMERFNDE3OSAv
KiBXS0RhdGVUaW1lSW5wdXRDb250cm9sLmggKi87IH07CkBAIC01MDM2LDYgKzUwMzcsOCBAQAog
CQlDMTgxNzM2MjIwNTg0NEE5MDBERkRBNjUgLyogRGlzcGxheUxpbmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGlzcGxheUxpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MThGQjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1MUUyNDJGOUY3NzAwN0U5
ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMUExNTJENTI0RTVBMUQyMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIz
QjkyMEExMTU3MjAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBERkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxRUQ3MjM3MjRBNTY5MEUwMDNGNkNEMyAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAv
KiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODM4NCw2ICs4Mzg3LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNENDU3MENCMjQ0MEZCMkEw
MEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi8sCiAJCQkJQ0Q0
NTcwQ0EyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgg
Ki8sCisJCQkJQzFBMTUyRDUyNEU1QTFEMjAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMuaCAqLywKKwkJCQlDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5k
cG9pbnRNZXNzYWdlcy5tbSAqLywKIAkJCQlDMTREMzdGQzI0QUNERjQ1MDA3RkYwMTQgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCAqLywKIAkJCQlDMTREMzdGRDI0QUNFMDg2MDA3
RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi8sCiAJCQkJNDQ2REM2
NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmgg
Ki8sCkBAIC0xMjc0Miw2ICsxMjc0Nyw3IEBACiAJCQkJQ0RDREM5OUUyNDhGRThEQTAwQTY5NTIy
IC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTU3NjAy
MTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzFBMTUy
RDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyogSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBC
RiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjY1
NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsMTAgKzI5NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVAKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMoKTsKLSNlbmRpZgotCiAgICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5
IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUgaW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5y
ZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBu
b3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldv
cmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDEwICs1MjMsNiBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBtX3Nlc3Np
b25JRCA/IG1fc2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IHRydWU7IH0K
IAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cygpIGNvbnN0OwotI2VuZGlmCi0KICAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
PiBtX3dlYkNvbm5lY3Rpb247CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBSZWZQdHI8V2ViUGFnZT4+IG1fcGFnZU1hcDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MzMxLDYgKzMzMSwxMCBAQAogI2VuZGlmCiAjZW5kaWYKIAorI2lmIEhBVkUoTFNEQVRBQkFTRUNP
TlRFWFQpCisjaW5jbHVkZSAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKKyNlbmRp
ZgorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiB1c2luZyBuYW1l
c3BhY2UgV2ViQ29yZTsKQEAgLTQ3OSw2ICs0ODMsOSBAQCBXZWJQYWdlOjpXZWJQYWdlKFBhZ2VJ
ZGVudGlmaWVyIHBhZ2VJRCwgCiAgICAgLCBtX292ZXJyaWRkZW5NZWRpYVR5cGUocGFyYW1ldGVy
cy5vdmVycmlkZGVuTWVkaWFUeXBlKQogICAgICwgbV9wcm9jZXNzRGlzcGxheU5hbWUocGFyYW1l
dGVycy5wcm9jZXNzRGlzcGxheU5hbWUpCiAgICAgLCBtX2xpbWl0c05hdmlnYXRpb25zVG9BcHBC
b3VuZERvbWFpbnMocGFyYW1ldGVycy5saW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmREb21haW5z
KQorI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCisgICAgLCBtX3BlbmRpbmdMb2Fkc1RpbWVy
KCp0aGlzLCAmV2ViUGFnZTo6cGVuZGluZ0xvYWRUaW1lckZpcmVkKQorI2VuZGlmCiB7CiAgICAg
QVNTRVJUKG1faWRlbnRpZmllcik7CiAKQEAgLTE1NTgsOCArMTU2NSw0MSBAQCB2b2lkIFdlYlBh
Z2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJhCiB9CiAjZW5kaWYKIAorI2lmIEhBVkUoTFNE
QVRBQkFTRUNPTlRFWFQpCit2b2lkIFdlYlBhZ2U6OnBlbmRpbmdMb2FkVGltZXJGaXJlZCgpCit7
CisgICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdl
cjo6c2luZ2xldG9uKCkud2FpdEZvckRhdGFiYXNlVXBkYXRlKDBfcyk7CisgICAgYXV0byBlbGFw
c2VkVGltZSA9IFdhbGxUaW1lOjpub3coKSAtIG1fdGltZU9mRmlyc3RMb2FkOworICAgIGNvbnN0
ZXhwciBTZWNvbmRzIG1heFdhaXRUaW1lID0gMl9zOworICAgIGlmIChkYXRhYmFzZVVwZGF0ZWQg
fHwgZWxhcHNlZFRpbWUudmFsdWUoKSA+IG1heFdhaXRUaW1lLnZhbHVlKCkpIHsKKyAgICAgICAg
bV9wZW5kaW5nTG9hZHNUaW1lci5zdG9wKCk7CisgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fcGVu
ZGluZ0xvYWRzKTsKKyAgICAgICAgVmVjdG9yPExvYWRQYXJhbWV0ZXJzPiBsb2FkcyA9IFdURk1v
dmUoKm1fcGVuZGluZ0xvYWRzKTsKKyAgICAgICAgZm9yIChhdXRvJiBsb2FkIDogbG9hZHMpCisg
ICAgICAgICAgICBsb2FkUmVxdWVzdChXVEZNb3ZlKGxvYWQpKTsKKyAgICB9Cit9CisjZW5kaWYK
Kwogdm9pZCBXZWJQYWdlOjpsb2FkUmVxdWVzdChMb2FkUGFyYW1ldGVycyYmIGxvYWRQYXJhbWV0
ZXJzKQogeworI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCisgICAgYm9vbCBkYXRhYmFzZVVw
ZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkud2FpdEZv
ckRhdGFiYXNlVXBkYXRlKDBfcyk7CisgICAgaWYgKCFkYXRhYmFzZVVwZGF0ZWQgfHwgbV9wZW5k
aW5nTG9hZHNUaW1lci5pc0FjdGl2ZSgpKSB7CisgICAgICAgIFdURkxvZ0Fsd2F5cygiTGF1bmNo
IFNlcnZpY2VzIGRhdGFiYXNlIG5vdCB1cGRhdGVkIHdoZW4gbG9hZCByZXF1ZXN0ZWQuIik7Cisg
ICAgICAgIFJFTEVBU0VfTE9HKExvYWRpbmcsICJMYXVuY2ggU2VydmljZXMgZGF0YWJhc2Ugbm90
IHVwZGF0ZWQgd2hlbiBsb2FkIHJlcXVlc3RlZC4iKTsKKyAgICAgICAgaWYgKCFtX3BlbmRpbmdM
b2FkcykgeworICAgICAgICAgICAgbV9wZW5kaW5nTG9hZHMgPSBWZWN0b3I8TG9hZFBhcmFtZXRl
cnM+KCk7CisgICAgICAgICAgICBtX3BlbmRpbmdMb2Fkc1RpbWVyLnN0YXJ0UmVwZWF0aW5nKDEw
MF9tcyk7CisgICAgICAgICAgICBtX3RpbWVPZkZpcnN0TG9hZCA9IFdhbGxUaW1lOjpub3coKTsK
KyAgICAgICAgfQorICAgICAgICBpZiAobV9wZW5kaW5nTG9hZHNUaW1lci5pc0FjdGl2ZSgpKSB7
CisgICAgICAgICAgICBtX3BlbmRpbmdMb2Fkcy0+YXBwZW5kKFdURk1vdmUobG9hZFBhcmFtZXRl
cnMpKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgIH0KKyNlbmRpZgorCiAg
ICAgc2V0SXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbihsb2FkUGFyYW1ldGVycy5pc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCAmbV9tYWluRnJhbWUuZ2V0KCkpOwogCiAgICAgU2VuZFN0
b3BSZXNwb25zaXZlbmVzc1RpbWVyIHN0b3BwZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5oCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHdvcmtpbmcgY29weSkKQEAgLTc5LDYg
Kzc5LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1NoYXJlRGF0YS5oPgogI2luY2x1ZGUgPFdlYkNv
cmUvU2ltcGxlUmFuZ2UuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1RleHRNYW5pcHVsYXRpb25Db250
cm9sbGVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9UaW1lci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
VXNlckFjdGl2aXR5Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQ29udGVudFR5cGVzLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Vc2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uLmg+CkBAIC0xNzYz
LDYgKzE3NjQsMTAgQEAgcHJpdmF0ZToKIAogICAgIHZvaWQgcGxhdGZvcm1EaWRTY2FsZVBhZ2Uo
KTsKIAorI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCisgICAgdm9pZCBwZW5kaW5nTG9hZFRp
bWVyRmlyZWQoKTsKKyNlbmRpZgorCiAgICAgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgbV9pZGVu
dGlmaWVyOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OlBhZ2U+IG1fcGFnZTsKQEAg
LTIxNDAsNiArMjE0NSwxMiBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9jYW5Vc2VDcmVkZW50aWFs
U3RvcmFnZSB7IHRydWUgfTsKIAogICAgIFZlY3RvcjxTdHJpbmc+IG1fY29yc0Rpc2FibGluZ1Bh
dHRlcm5zOworCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyAgICBXZWJDb3JlOjpUaW1l
ciBtX3BlbmRpbmdMb2Fkc1RpbWVyOworICAgIE9wdGlvbmFsPFZlY3RvcjxMb2FkUGFyYW1ldGVy
cz4+IG1fcGVuZGluZ0xvYWRzOworICAgIFdhbGxUaW1lIG1fdGltZU9mRmlyc3RMb2FkOworI2Vu
ZGlmCiB9OwogCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCkluZGV4OiBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0KPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tCShy
ZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2Nv
YS9XZWJQYWdlQ29jb2EubW0JKHdvcmtpbmcgY29weSkKQEAgLTY0LDE3ICs2NCw2IEBAIG5hbWVz
cGFjZSBXZWJLaXQgewogCiB2b2lkIFdlYlBhZ2U6OnBsYXRmb3JtRGlkUmVjZWl2ZUxvYWRQYXJh
bWV0ZXJzKGNvbnN0IExvYWRQYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewotI2lmIEhBVkUoTFNE
QVRBQkFTRUNPTlRFWFQpCi0gICAgYXV0byBzdGFydFRpbWUgPSBXYWxsVGltZTo6bm93KCk7Ci0g
ICAgYm9vbCBkYXRhYmFzZVVwZGF0ZWQgPSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6
c2luZ2xldG9uKCkud2FpdEZvckRhdGFiYXNlVXBkYXRlKDFfcyk7Ci0gICAgYXV0byBlbGFwc2Vk
VGltZSA9IFdhbGxUaW1lOjpub3coKSAtIHN0YXJ0VGltZTsKLSAgICBpZiAoZWxhcHNlZFRpbWUu
dmFsdWUoKSA+IDAuNSkKLSAgICAgICAgUkVMRUFTRV9MT0coTG9hZGluZywgIldhaXRpbmcgZm9y
IExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSB1cGRhdGUgdG9vayAlZiBzZWNvbmRzIiwgZWxhcHNl
ZFRpbWUudmFsdWUoKSk7Ci0gICAgQVNTRVJUX1VOVVNFRChkYXRhYmFzZVVwZGF0ZWQsIGRhdGFi
YXNlVXBkYXRlZCk7Ci0gICAgaWYgKCFkYXRhYmFzZVVwZGF0ZWQpCi0gICAgICAgIFJFTEVBU0Vf
TE9HX0VSUk9SKExvYWRpbmcsICJUaW1lZCBvdXQgd2FpdGluZyBmb3IgTGF1bmNoIFNlcnZpY2Vz
IGRhdGFiYXNlIHVwZGF0ZS4iKTsKLSNlbmRpZgotCiAgICAgbV9kYXRhRGV0ZWN0aW9uQ29udGV4
dCA9IHBhcmFtZXRlcnMuZGF0YURldGVjdGlvbkNvbnRleHQ7CiAKICAgICBpZiAocGFyYW1ldGVy
cy5uZUhlbHBlckV4dGVuc2lvbkhhbmRsZSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaAkobm9u
ZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5k
cG9pbnRNZXNzYWdlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5oPgor
CituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKHhw
Y19vYmplY3RfdCBldmVudCk7CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tCShub25l
eGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRw
b2ludE1lc3NhZ2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisgKiBD
b3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRp
b25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVj
ZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdB
UlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5D
LiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElS
RUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFM
IERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgor
ICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBS
T0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBP
TiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklD
VCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkK
KyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBF
VkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAq
LworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBvaW50TWVzc2Fn
ZXMuaCIKKworI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKKyNpbXBv
cnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKKyNpbXBvcnQgIlhQQ0Vu
ZHBvaW50LmgiCisKKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2Ug
V2ViS2l0IHsKKwordm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKHhwY19vYmplY3RfdCBl
dmVudCkKK3sKKyAgICBpZiAoeHBjX2dldF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9ESUNUSU9O
QVJZKQorICAgICAgICByZXR1cm47CisKKyAgICBTdHJpbmcgbWVzc2FnZU5hbWUgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfc3RyaW5nKGV2ZW50LCBYUENFbmRwb2ludDo6eHBjTWVzc2FnZU5hbWVLZXkp
OworICAgIGlmIChtZXNzYWdlTmFtZS5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybjsKKworI2lm
IEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQpCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IExhdW5jaFNl
cnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENF
bmRwb2ludE1lc3NhZ2VOYW1lKSB7CisgICAgICAgIGF1dG8gZW5kcG9pbnQgPSB4cGNfZGljdGlv
bmFyeV9nZXRfdmFsdWUoZXZlbnQsIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6
OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENFbmRwb2ludE5hbWVLZXkpOworICAgICAgICBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0RW5kcG9pbnQoZW5k
cG9pbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCit9CisKK30KSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQko
cmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlBy
b2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2ltcG9ydCAi
Y29uZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKLSNpbXBvcnQgIkxhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VNYW5hZ2VyLmgiCi0jaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBD
Q29uc3RhbnRzLmgiCiAjaW1wb3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIKICNp
bXBvcnQgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC00OSw3
ICs0Nyw2IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2ltcG9ydCAi
V2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBhcmFt
ZXRlcnMuaCIKLSNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29y
ZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAjaW1w
b3J0IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CkBAIC0xNjcsNDEgKzE2NCw2IEBA
IHN0YXRpYyBpZCBOU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3UKIH0KICNlbmRpZgogCi12
b2lkIFdlYlByb2Nlc3M6OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMoKSBjb25zdAotewotICAg
IGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
YXV0byBjb25uZWN0aW9uID0gcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVjdGlv
bigpOwotCi0gICAgaWYgKCFjb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBSRUxF
QVNFX0FTU0VSVCh4cGNfZ2V0X3R5cGUoY29ubmVjdGlvbikgPT0gWFBDX1RZUEVfQ09OTkVDVElP
Tik7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9zdXNwZW5kKGNvbm5lY3Rpb24pOwotCi0gICAgeHBj
X2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShjb25uZWN0aW9uLCBkaXNwYXRjaF9nZXRfZ2xv
YmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApKTsKLSAgICB4cGNf
Y29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLCBeKHhwY19vYmplY3RfdCBl
dmVudCkgewotICAgICAgICBpZiAoeHBjX2dldF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9ESUNU
SU9OQVJZKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFN0cmluZyBtZXNzYWdlTmFt
ZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQsIFhQQ0VuZHBvaW50Ojp4cGNNZXNz
YWdlTmFtZUtleSk7Ci0gICAgICAgIGlmIChtZXNzYWdlTmFtZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSNpZiBIQVZFKExTREFUQUJBU0VDT05URVhUKQotICAgICAgICBpZiAo
bWVzc2FnZU5hbWUgPT0gTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1
bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TWVzc2FnZU5hbWUpIHsKLSAgICAgICAgICAg
IGF1dG8gZW5kcG9pbnQgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsIExhdW5jaFNl
cnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENF
bmRwb2ludE5hbWVLZXkpOwotICAgICAgICAgICAgTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFn
ZXI6OnNpbmdsZXRvbigpLnNldEVuZHBvaW50KGVuZHBvaW50KTsKLSAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgfSk7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9yZXN1
bWUoY29ubmVjdGlvbik7Ci19Ci0KIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXpl
V2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQogewog
ICAgIGlmIChwYXJhbWV0ZXJzLm1vYmlsZUdlc3RhbHRFeHRlbnNpb25IYW5kbGUpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406550</attachid>
            <date>2020-08-13 16:01:41 -0700</date>
            <delta_ts>2020-08-14 10:45:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200813160141.patch</filename>
            <type>text/plain</type>
            <size>20150</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ0IEBACisyMDIwLTA4LTEzICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBXZWJQcm9jZXNzOjpoYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzIHdlIGN1cnJlbnRseSBjaGFuZ2UgdGhlIFhQQyB0YXJnZXQg
cXVldWUgZm9yIHRoZSBYUEMgYm9vdHN0cmFwIGNvbm5lY3Rpb24gd2hpbGUKKyAgICAgICAgdW5k
ZXIgdGhlIFhQQyBldmVudCBoYW5kbGVyLiBUaGlzIHNvbWV0aW1lcyBjYXVzZXMgc2ltdWxhdGVk
IGNyYXNoZXMgb24gaU9TIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gQWNjb3JkaW5nIHRvIHRoZQor
ICAgICAgICBkb2N1bWVudGF0aW9uIGluIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1
bWVudGF0aW9uL3hwYy8xNDQ4Nzg2LXhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWU/bGFu
Z3VhZ2U9b2JqYywKKyAgICAgICAgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnl0aGluZyBz
YXlpbmcgdGhpcyBpcyBhIHByb2dyYW1taW5nIGVycm9yLCBidXQgdGhlIHNpbXVsYXRlZCBjcmFz
aCBjbGFpbXMgaXQgaXMuIFRoaXMgcGF0Y2gKKyAgICAgICAgYWRkcmVzc2VzIHRoaXMgaXNzdWUg
Ynkgbm90IGNoYW5naW5nIHRoZSBYUEMgdGFyZ2V0IHF1ZXVlIGZyb20gdGhlIG1haW4gdGhyZWFk
IHF1ZXVlLiBJbiBvcmRlciB0byBkbyBzbywgd2UgY2Fubm90IGFueQorICAgICAgICBsb25nZXIg
YmxvY2sgdGhlIG1haW4gdGhyZWFkIHdhaXRpbmcgZm9yIHRoZSBMYXVuY2ggU2VydmljZXMgZGF0
YWJhc2UgdG8gYXJyaXZlLCBzaW5jZSB0aGUgWFBDIG1lc3NhZ2UgZnJvbSB0aGUgVUkKKyAgICAg
ICAgcHJvY2VzcyB3aWxsIG5vdyBiZSBoYW5kbGVkIG9uIHRoZSBtYWluIHRocmVhZCwgd2hpY2gg
Y291bGQgY2F1c2UgYSBkZWFkbG9jay4gVG8gYXZvaWQgdGhpcywgdGhlIGJsb2NraW5nIHdhaXQg
b24gdGhlCisgICAgICAgIG1haW4gdGhyZWFkIGlzIHJlbW92ZWQgYW5kIHJlcGxhY2VkIHdpdGgg
YSB0aW1lciwgd2hpY2ggd2lsbCBiZSB1c2VkIHRvIHJlc2VuZCBhbGwgcGVuZGluZyBsb2FkcyB1
bnRpbCB0aGUgTGF1bmNoCisgICAgICAgIFNlcnZpY2VzIGRhdGFiYXNlIGhhcyBiZWVuIHJlY2Vp
dmVkLCBvciBhIHRpbWVvdXQgaGFzIGJlZW4gcmVhY2hlZC4KKworICAgICAgICBObyBuZXcgdGVz
dHMsIHNpbmNlIHRoaXMgaXMgY292ZXJlZCBieSBleGlzdGluZyB0ZXN0cy4gTWFueSB0ZXN0cyB3
aWxsIGZhaWwgaWYgdGhlIExhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSBpcyBub3QKKyAgICAgICAg
YXZhaWxhYmxlLCBzaW5jZSBpdCBpcyB1c2VkIGZvciBNSU1FIHR5cGUgbWFwcGluZy4KKworICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFpbik6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1EaWRS
ZWNlaXZlTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wZW5kaW5nTG9hZHNUaW1lcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBlbmRpbmdMb2FkVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZp
Z2F0aW9uc1RvQXBwQm91bmREb21haW5zKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6aGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMgY29uc3QpOiBEZWxldGVkLgorCiAyMDIwLTA4LTEz
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI2NTUyMC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHJldmlzaW9uIDI2NTYxMSkKKysrIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0ICJj
b25maWcuaCIKIAorI2ltcG9ydCAiSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oIgogI2ltcG9y
dCAiV0tDcmFzaFJlcG9ydGVyLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgog
I2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KQEAgLTk3LDYgKzk4LDgg
QEAgc3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfYwogICAgICAgICAgICAg
ICAgIGFzc2VydCghcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwogICAgICAgICAgICAgICAgIHByaW9y
aXR5Qm9vc3RNZXNzYWdlID0geHBjX3JldGFpbihldmVudCk7CiAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMoZXZlbnQpOwogICAgICAgICB9CiAg
ICAgfSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY5Miw2ICsxNjkyLDcg
QEAKIAkJQzE2NjNFNUIyNEFFQUEyRjAwQzZBM0IyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VY
UENDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNjYzRTVBMjRBRUE3NDIwMEM2QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBD
Q29uc3RhbnRzLmggKi87IH07CiAJCUMxNzEwQ0Y3MjRBQTY0MzIwMEQ3QzExMiAvKiBMYXVuY2hT
ZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMTcxMENGNjI0QUE2NDMyMDBEN0MxMTIgLyogTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLm1tICovOyB9OwogCQlDMTgxNzM2MTIwNTg0MjQ3MDBERkRBNjUg
LyogRGlzcGxheUxpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMxODE3MzYwMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oICovOyB9Owor
CQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxQTE1MkQ2
MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovOyB9Owog
CQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxRTEyM0I5MjBBMTE1NzIwMDI2
NDZGNCAvKiBQREZDb250ZXh0TWVudS5oICovOyB9OwogCQlDNTE3Mzg4MTEyREY4RjRGMDBFRTNG
NDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJv
bGxlckFjdGlvbi5oICovOyB9OwogCQlDNTQyNTZCNTE4QkVDMThDMDBERTQxNzkgLyogV0tEYXRl
VGltZUlucHV0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzU0MjU2QUYxOEJFQzE4QjAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRy
b2wuaCAqLzsgfTsKQEAgLTUwMzYsNiArNTAzNyw4IEBACiAJCUMxODE3MzYyMjA1ODQ0QTkwMERG
REE2NSAvKiBEaXNwbGF5TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGluay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3
NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMThGQjUxRTI0MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxl
ckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTbGVlcERpc2Fi
bGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ1MjRFNUEx
RDIwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzFBMTUyRDYyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyog
UERGQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUERGQ29u
dGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFRDcyMzcyNEE1Njkw
RTAwM0Y2Q0QzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE5ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzUxNzM4ODAxMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdDb250cm9sbGVyQWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04Mzg0LDYgKzgzODcsOCBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLywKIAkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIg
LyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLywKKwkJCQlDMUExNTJENTI0RTVB
MUQyMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oICovLAorCQkJCUMxQTE1
MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovLAog
CQkJCUMxNEQzN0ZDMjRBQ0RGNDUwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5oICovLAogCQkJCUMxNEQzN0ZEMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlTWFuYWdlci5tbSAqLywKIAkJCQk0NDZEQzY0QjI0QTJEOEFEMDA2MUYzOTAgLyog
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAqLywKQEAgLTEyNzQyLDYgKzEyNzQ3
LDcgQEAKIAkJCQlDRENEQzk5RTI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFj
a2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBNTc2MDIxNDk2Qjk3OTAwQTRFRTA2IC8qIEV2
ZW50RGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREE5
M0RCMTIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1l
dGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyog
SGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0
MjE0NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMjc0OUY2NDUyMTQ2NTYxRTAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDEyMTJDRjlGMDAwMTI4QUZE
IC8qIEpTTlBNZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NCwxMCArMjk0
LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUAogewogICAgIEF1
eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcygpOwotI2VuZGlm
Ci0KICAgICAvLyBXZSBjYWxsIF9leGl0KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dyb3VuZCBx
dWV1ZSBpbiBjYXNlIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAvLyBhbmQg
QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgogICAgIGNv
bm5lY3Rpb24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soY2FsbEV4
aXQpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAy
NjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MjMsMTAgKzUyMyw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpIHsgcmV0dXJuIG1fc2Vzc2lvbklEID8gbV9zZXNzaW9uSUQtPmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIDogdHJ1ZTsgfQogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgdm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKCkgY29uc3Q7Ci0jZW5kaWYKLQog
ICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsKIAog
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJQYWdlPj4gbV9w
YWdlTWFwOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzEsNiArMzMxLDEwIEBACiAjZW5k
aWYKICNlbmRpZgogCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyNpbmNsdWRlICJMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDc5
LDYgKzQ4Myw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCAKICAg
ICAsIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZShwYXJhbWV0ZXJzLm92ZXJyaWRkZW5NZWRpYVR5cGUp
CiAgICAgLCBtX3Byb2Nlc3NEaXNwbGF5TmFtZShwYXJhbWV0ZXJzLnByb2Nlc3NEaXNwbGF5TmFt
ZSkKICAgICAsIG1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyhwYXJhbWV0ZXJz
LmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpCisjaWYgSEFWRShMU0RBVEFCQVNF
Q09OVEVYVCkKKyAgICAsIG1fcGVuZGluZ0xvYWRzVGltZXIoKnRoaXMsICZXZWJQYWdlOjpwZW5k
aW5nTG9hZFRpbWVyRmlyZWQpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9pZGVudGlmaWVyKTsK
IApAQCAtMTU1OCw4ICsxNTY1LDQxIEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZl
TG9hZFBhcmEKIH0KICNlbmRpZgogCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKK3ZvaWQg
V2ViUGFnZTo6cGVuZGluZ0xvYWRUaW1lckZpcmVkKCkKK3sKKyAgICBib29sIGRhdGFiYXNlVXBk
YXRlZCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS53YWl0Rm9y
RGF0YWJhc2VVcGRhdGUoMF9zKTsKKyAgICBhdXRvIGVsYXBzZWRUaW1lID0gV2FsbFRpbWU6Om5v
dygpIC0gbV90aW1lT2ZGaXJzdExvYWQ7CisgICAgY29uc3RleHByIFNlY29uZHMgbWF4V2FpdFRp
bWUgPSAyX3M7CisgICAgaWYgKGRhdGFiYXNlVXBkYXRlZCB8fCBlbGFwc2VkVGltZS52YWx1ZSgp
ID4gbWF4V2FpdFRpbWUudmFsdWUoKSkgeworICAgICAgICBtX3BlbmRpbmdMb2Fkc1RpbWVyLnN0
b3AoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9wZW5kaW5nTG9hZHMpOworICAgICAgICBW
ZWN0b3I8TG9hZFBhcmFtZXRlcnM+IGxvYWRzID0gV1RGTW92ZSgqbV9wZW5kaW5nTG9hZHMpOwor
ICAgICAgICBmb3IgKGF1dG8mIGxvYWQgOiBsb2FkcykKKyAgICAgICAgICAgIGxvYWRSZXF1ZXN0
KFdURk1vdmUobG9hZCkpOworICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OmxvYWRS
ZXF1ZXN0KExvYWRQYXJhbWV0ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CisjaWYgSEFWRShMU0RB
VEFCQVNFQ09OVEVYVCkKKyAgICBib29sIGRhdGFiYXNlVXBkYXRlZCA9IExhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS53YWl0Rm9yRGF0YWJhc2VVcGRhdGUoMF9zKTsK
KyAgICBpZiAoIWRhdGFiYXNlVXBkYXRlZCB8fCBtX3BlbmRpbmdMb2Fkc1RpbWVyLmlzQWN0aXZl
KCkpIHsKKyAgICAgICAgV1RGTG9nQWx3YXlzKCJMYXVuY2ggU2VydmljZXMgZGF0YWJhc2Ugbm90
IHVwZGF0ZWQgd2hlbiBsb2FkIHJlcXVlc3RlZC4iKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTG9h
ZGluZywgIkxhdW5jaCBTZXJ2aWNlcyBkYXRhYmFzZSBub3QgdXBkYXRlZCB3aGVuIGxvYWQgcmVx
dWVzdGVkLiIpOworICAgICAgICBpZiAoIW1fcGVuZGluZ0xvYWRzKSB7CisgICAgICAgICAgICBt
X3BlbmRpbmdMb2FkcyA9IFZlY3RvcjxMb2FkUGFyYW1ldGVycz4oKTsKKyAgICAgICAgICAgIG1f
cGVuZGluZ0xvYWRzVGltZXIuc3RhcnRSZXBlYXRpbmcoMTAwX21zKTsKKyAgICAgICAgICAgIG1f
dGltZU9mRmlyc3RMb2FkID0gV2FsbFRpbWU6Om5vdygpOworICAgICAgICB9CisgICAgICAgIGlm
IChtX3BlbmRpbmdMb2Fkc1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgICAgIG1fcGVuZGlu
Z0xvYWRzLT5hcHBlbmQoV1RGTW92ZShsb2FkUGFyYW1ldGVycykpOworICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICB9CisgICAgfQorI2VuZGlmCisKICAgICBzZXRJc05hdmlnYXRpbmdUb0Fw
cEJvdW5kRG9tYWluKGxvYWRQYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4s
ICZtX21haW5GcmFtZS5nZXQoKSk7CiAKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIg
c3RvcHBlcjsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmgJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdl
L1dlYlBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgPFdl
YkNvcmUvU2hhcmVEYXRhLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgogI2lu
Y2x1ZGUgPFdlYkNvcmUvVGV4dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1RpbWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWN0aXZpdHkuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1VzZXJDb250ZW50VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJ
bnRlcmZhY2VMYXlvdXREaXJlY3Rpb24uaD4KQEAgLTE3NjMsNiArMTc2NCwxMCBAQCBwcml2YXRl
OgogCiAgICAgdm9pZCBwbGF0Zm9ybURpZFNjYWxlUGFnZSgpOwogCisjaWYgSEFWRShMU0RBVEFC
QVNFQ09OVEVYVCkKKyAgICB2b2lkIHBlbmRpbmdMb2FkVGltZXJGaXJlZCgpOworI2VuZGlmCisK
ICAgICBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAKICAgICBzdGQ6OnVu
aXF1ZV9wdHI8V2ViQ29yZTo6UGFnZT4gbV9wYWdlOwpAQCAtMjE0MCw2ICsyMTQ1LDEyIEBAIHBy
aXZhdGU6CiAgICAgYm9vbCBtX2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9OwogCiAg
ICAgVmVjdG9yPFN0cmluZz4gbV9jb3JzRGlzYWJsaW5nUGF0dGVybnM7CisKKyNpZiBIQVZFKExT
REFUQUJBU0VDT05URVhUKQorICAgIFdlYkNvcmU6OlRpbWVyIG1fcGVuZGluZ0xvYWRzVGltZXI7
CisgICAgT3B0aW9uYWw8VmVjdG9yPExvYWRQYXJhbWV0ZXJzPj4gbV9wZW5kaW5nTG9hZHM7Cisg
ICAgV2FsbFRpbWUgbV90aW1lT2ZGaXJzdExvYWQ7CisjZW5kaWYKIH07CiAKICNpZiAhUExBVEZP
Uk0oSU9TX0ZBTUlMWSkKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0Nv
Y29hL1dlYlBhZ2VDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViUGFnZS9Db2NvYS9XZWJQYWdlQ29jb2EubW0JKHJldmlzaW9uIDI2NTYxMSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQkod29y
a2luZyBjb3B5KQpAQCAtNjQsMTcgKzY0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQg
V2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFt
ZXRlcnMmIHBhcmFtZXRlcnMpCiB7Ci0jaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKLSAgICBh
dXRvIHN0YXJ0VGltZSA9IFdhbGxUaW1lOjpub3coKTsKLSAgICBib29sIGRhdGFiYXNlVXBkYXRl
ZCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS53YWl0Rm9yRGF0
YWJhc2VVcGRhdGUoMV9zKTsKLSAgICBhdXRvIGVsYXBzZWRUaW1lID0gV2FsbFRpbWU6Om5vdygp
IC0gc3RhcnRUaW1lOwotICAgIGlmIChlbGFwc2VkVGltZS52YWx1ZSgpID4gMC41KQotICAgICAg
ICBSRUxFQVNFX0xPRyhMb2FkaW5nLCAiV2FpdGluZyBmb3IgTGF1bmNoIFNlcnZpY2VzIGRhdGFi
YXNlIHVwZGF0ZSB0b29rICVmIHNlY29uZHMiLCBlbGFwc2VkVGltZS52YWx1ZSgpKTsKLSAgICBB
U1NFUlRfVU5VU0VEKGRhdGFiYXNlVXBkYXRlZCwgZGF0YWJhc2VVcGRhdGVkKTsKLSAgICBpZiAo
IWRhdGFiYXNlVXBkYXRlZCkKLSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTG9hZGluZywgIlRp
bWVkIG91dCB3YWl0aW5nIGZvciBMYXVuY2ggU2VydmljZXMgZGF0YWJhc2UgdXBkYXRlLiIpOwot
I2VuZGlmCi0KICAgICBtX2RhdGFEZXRlY3Rpb25Db250ZXh0ID0gcGFyYW1ldGVycy5kYXRhRGV0
ZWN0aW9uQ29udGV4dDsKIAogICAgIGlmIChwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFu
ZGxlKQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29j
b2EvSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmgJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aW5jbHVkZSA8d3RmL3NwaS9kYXJ3aW4vWFBDU1BJLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgewor
Cit2b2lkIGhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMoeHBjX29iamVjdF90IGV2ZW50KTsKKwor
fQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50
TWVzc2FnZXMubW0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0JKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5o
IgorI2ltcG9ydCAiSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oIgorCisjaW1wb3J0ICJMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oIgorI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRh
YmFzZVhQQ0NvbnN0YW50cy5oIgorI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKKworI2ltcG9ydCA8
d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIGhhbmRs
ZVhQQ0VuZHBvaW50TWVzc2FnZXMoeHBjX29iamVjdF90IGV2ZW50KQoreworICAgIGlmICh4cGNf
Z2V0X3R5cGUoZXZlbnQpICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCisgICAgICAgIHJldHVybjsK
KworICAgIFN0cmluZyBtZXNzYWdlTmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZl
bnQsIFhQQ0VuZHBvaW50Ojp4cGNNZXNzYWdlTmFtZUtleSk7CisgICAgaWYgKG1lc3NhZ2VOYW1l
LmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVY
VCkKKyAgICBpZiAobWVzc2FnZU5hbWUgPT0gTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0
YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TWVzc2FnZU5hbWUpIHsK
KyAgICAgICAgYXV0byBlbmRwb2ludCA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1ZShldmVudCwg
TGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRh
YmFzZVhQQ0VuZHBvaW50TmFtZUtleSk7CisgICAgICAgIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VN
YW5hZ2VyOjpzaW5nbGV0b24oKS5zZXRFbmRwb2ludChlbmRwb2ludCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9CisjZW5kaWYKK30KKworfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L2NvY29hL1dlYlByb2Nlc3NDb2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5n
IGNvcHkpCkBAIC0yNiw4ICsyNiw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldl
YlByb2Nlc3MuaCIKIAotI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIK
LSNpbXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKICNpbXBvcnQg
IkxlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5pdGlhbGl6YXRp
b24uaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKQEAgLTQ5LDcgKzQ3LDYgQEAKICNpbXBvcnQgIldl
YlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmgiCiAjaW1wb3J0ICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgotI2ltcG9ydCAiWFBD
RW5kcG9pbnQuaCIKICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL09wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3NldE1J
TUVUeXBlQ2FjaGUuaD4KQEAgLTE2Nyw0MSArMTY0LDYgQEAgc3RhdGljIGlkIE5TQXBwbGljYXRp
b25BY2Nlc3NpYmlsaXR5Rm9jdQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzczo6aGFuZGxl
WFBDRW5kcG9pbnRNZXNzYWdlcygpIGNvbnN0Ci17Ci0gICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29u
bmVjdGlvbigpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBhdXRvIGNvbm5lY3Rpb24gPSBwYXJl
bnRQcm9jZXNzQ29ubmVjdGlvbigpLT54cGNDb25uZWN0aW9uKCk7Ci0KLSAgICBpZiAoIWNvbm5l
Y3Rpb24pCi0gICAgICAgIHJldHVybjsKLQotICAgIFJFTEVBU0VfQVNTRVJUKHhwY19nZXRfdHlw
ZShjb25uZWN0aW9uKSA9PSBYUENfVFlQRV9DT05ORUNUSU9OKTsKLQotICAgIHhwY19jb25uZWN0
aW9uX3N1c3BlbmQoY29ubmVjdGlvbik7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0
X3F1ZXVlKGNvbm5lY3Rpb24sIGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVF
VUVfUFJJT1JJVFlfREVGQVVMVCwgMCkpOwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9o
YW5kbGVyKGNvbm5lY3Rpb24sIF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIGlmICh4
cGNfZ2V0X3R5cGUoZXZlbnQpICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCi0gICAgICAgICAgICBy
ZXR1cm47Ci0KLSAgICAgICAgU3RyaW5nIG1lc3NhZ2VOYW1lID0geHBjX2RpY3Rpb25hcnlfZ2V0
X3N0cmluZyhldmVudCwgWFBDRW5kcG9pbnQ6OnhwY01lc3NhZ2VOYW1lS2V5KTsKLSAgICAgICAg
aWYgKG1lc3NhZ2VOYW1lLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotI2lmIEhB
VkUoTFNEQVRBQkFTRUNPTlRFWFQpCi0gICAgICAgIGlmIChtZXNzYWdlTmFtZSA9PSBMYXVuY2hT
ZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBD
RW5kcG9pbnRNZXNzYWdlTmFtZSkgewotICAgICAgICAgICAgYXV0byBlbmRwb2ludCA9IHhwY19k
aWN0aW9uYXJ5X2dldF92YWx1ZShldmVudCwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0
YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TmFtZUtleSk7Ci0gICAg
ICAgICAgICBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0RW5k
cG9pbnQoZW5kcG9pbnQpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0jZW5kaWYK
LSAgICB9KTsKLQotICAgIHhwY19jb25uZWN0aW9uX3Jlc3VtZShjb25uZWN0aW9uKTsKLX0KLQog
dm9pZCBXZWJQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3ND
cmVhdGlvblBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKHBhcmFtZXRlcnMubW9i
aWxlR2VzdGFsdEV4dGVuc2lvbkhhbmRsZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406604</attachid>
            <date>2020-08-14 10:45:46 -0700</date>
            <delta_ts>2020-08-14 14:02:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200814104545.patch</filename>
            <type>text/plain</type>
            <size>19391</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU2MTYpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA4LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzY1Nzc2ODEzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEluIFdlYlByb2Nlc3M6OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMg
d2UgY3VycmVudGx5IGNoYW5nZSB0aGUgWFBDIHRhcmdldCBxdWV1ZSBmb3IgdGhlIFhQQyBib290
c3RyYXAgY29ubmVjdGlvbiB3aGlsZQorICAgICAgICB1bmRlciB0aGUgWFBDIGV2ZW50IGhhbmRs
ZXIuIFRoaXMgc29tZXRpbWVzIGNhdXNlcyBzaW11bGF0ZWQgY3Jhc2hlcyBvbiBpT1MgYW5kIHNo
b3VsZCBiZSBhdm9pZGVkLiBBY2NvcmRpbmcgdG8gdGhlCisgICAgICAgIGRvY3VtZW50YXRpb24g
aW4gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veHBjLzE0NDg3ODYt
eHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZT9sYW5ndWFnZT1vYmpjLAorICAgICAgICB0
aGVyZSBkb2VzIG5vdCBzZWVtIHRvIGJlIGFueXRoaW5nIHNheWluZyB0aGlzIGlzIGEgcHJvZ3Jh
bW1pbmcgZXJyb3IsIGJ1dCB0aGUgc2ltdWxhdGVkIGNyYXNoIGNsYWltcyBpdCBpcy4KKworICAg
ICAgICAqIFNoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2Vy
dmljZU1haW4ubW06CisgICAgICAgIChXZWJLaXQ6OlhQQ1NlcnZpY2VFdmVudEhhbmRsZXIpOgor
ICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlTWFpbik6CisgICAgICAgICogV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29h
L1dlYlBhZ2VDb2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6cGxhdGZvcm1EaWRS
ZWNlaXZlTG9hZFBhcmFtZXRlcnMpOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6bV9wZW5kaW5nTG9hZHNUaW1lcik6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OnBlbmRpbmdMb2FkVGltZXJGaXJlZCk6CisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2U6OmxvYWRSZXF1ZXN0KToKKyAgICAgICAgKFdlYktpdDo6bV9saW1pdHNOYXZp
Z2F0aW9uc1RvQXBwQm91bmREb21haW5zKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlByb2Nlc3MuaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL2Nv
Y29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaDogQWRkZWQuCisgICAgICAgICogV2ViUHJv
Y2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tOiBBZGRlZC4KKyAgICAgICAg
KFdlYktpdDo6aGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcyk6CisgICAgICAgICogV2ViUHJvY2Vz
cy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3M6
OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMgY29uc3QpOiBEZWxldGVkLgorCiAyMDIwLTA4LTEz
ICBQZXIgQXJuZSBWb2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBVbnJldmll
d2VkLCByZXZlcnRpbmcgcjI2NTUyMC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0VudHJ5
UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2aWNlTWFpbi5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQ
Q1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHJldmlzaW9uIDI2NTYxMSkKKysrIFNvdXJjZS9X
ZWJLaXQvU2hhcmVkL0VudHJ5UG9pbnRVdGlsaXRpZXMvQ29jb2EvWFBDU2VydmljZS9YUENTZXJ2
aWNlTWFpbi5tbQkod29ya2luZyBjb3B5KQpAQCAtMjUsNiArMjUsNyBAQAogCiAjaW1wb3J0ICJj
b25maWcuaCIKIAorI2ltcG9ydCAiSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oIgogI2ltcG9y
dCAiV0tDcmFzaFJlcG9ydGVyLmgiCiAjaW1wb3J0ICJYUENTZXJ2aWNlRW50cnlQb2ludC5oIgog
I2ltcG9ydCA8Q29yZUZvdW5kYXRpb24vQ29yZUZvdW5kYXRpb24uaD4KQEAgLTk3LDYgKzk4LDgg
QEAgc3RhdGljIHZvaWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfYwogICAgICAgICAgICAg
ICAgIGFzc2VydCghcHJpb3JpdHlCb29zdE1lc3NhZ2UpOwogICAgICAgICAgICAgICAgIHByaW9y
aXR5Qm9vc3RNZXNzYWdlID0geHBjX3JldGFpbihldmVudCk7CiAgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIGhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMoZXZlbnQpOwogICAgICAgICB9CiAg
ICAgfSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29ya2luZyBjb3B5KQpAQCAtMTY5Miw2ICsxNjkyLDcg
QEAKIAkJQzE2NjNFNUIyNEFFQUEyRjAwQzZBM0IyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VY
UENDb25zdGFudHMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IEMxNjYzRTVBMjRBRUE3NDIwMEM2QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBD
Q29uc3RhbnRzLmggKi87IH07CiAJCUMxNzEwQ0Y3MjRBQTY0MzIwMEQ3QzExMiAvKiBMYXVuY2hT
ZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSBDMTcxMENGNjI0QUE2NDMyMDBEN0MxMTIgLyogTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZU9ic2VydmVyLm1tICovOyB9OwogCQlDMTgxNzM2MTIwNTg0MjQ3MDBERkRBNjUg
LyogRGlzcGxheUxpbmsuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEMxODE3MzYwMjA1ODQyNDcwMERGREE2NSAvKiBEaXNwbGF5TGluay5oICovOyB9Owor
CQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5t
bSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxQTE1MkQ2
MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovOyB9Owog
CQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxRTEyM0I5MjBBMTE1NzIwMDI2
NDZGNCAvKiBQREZDb250ZXh0TWVudS5oICovOyB9OwogCQlDNTE3Mzg4MTEyREY4RjRGMDBFRTNG
NDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJv
bGxlckFjdGlvbi5oICovOyB9OwogCQlDNTQyNTZCNTE4QkVDMThDMDBERTQxNzkgLyogV0tEYXRl
VGltZUlucHV0Q29udHJvbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQzU0MjU2QUYxOEJFQzE4QjAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRy
b2wuaCAqLzsgfTsKQEAgLTUwMzYsNiArNTAzNyw4IEBACiAJCUMxODE3MzYyMjA1ODQ0QTkwMERG
REE2NSAvKiBEaXNwbGF5TGluay5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGluay5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3
NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3Bw
LmNwcDsgcGF0aCA9IFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlDMThGQjUxRTI0MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxl
ckNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTbGVlcERpc2Fi
bGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ1MjRFNUEx
RDIwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJQzFBMTUyRDYyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMu
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyog
UERGQ29udGV4dE1lbnUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUERGQ29u
dGV4dE1lbnUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFRDcyMzcyNEE1Njkw
RTAwM0Y2Q0QzIC8qIE5ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsg
cGF0aCA9IE5ldHdvcmtQcm9jZXNzUHJveHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQzUxNzM4ODAxMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9u
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IERyYWdDb250cm9sbGVyQWN0aW9u
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC04Mzg0LDYgKzgzODcsOCBAQAogCQkJ
Y2hpbGRyZW4gPSAoCiAJCQkJQ0Q0NTcwQ0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lv
blJvdXRpbmdBcmJpdHJhdG9yLmNwcCAqLywKIAkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIg
LyogQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3IuaCAqLywKKwkJCQlDMUExNTJENTI0RTVB
MUQyMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5oICovLAorCQkJCUMxQTE1
MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovLAog
CQkJCUMxNEQzN0ZDMjRBQ0RGNDUwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5oICovLAogCQkJCUMxNEQzN0ZEMjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlTWFuYWdlci5tbSAqLywKIAkJCQk0NDZEQzY0QjI0QTJEOEFEMDA2MUYzOTAgLyog
UGxheWJhY2tTZXNzaW9uQ29udGV4dElkZW50aWZpZXIuaCAqLywKQEAgLTEyNzQyLDYgKzEyNzQ3
LDcgQEAKIAkJCQlDRENEQzk5RTI0OEZFOERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFj
a2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFBNTc2MDIxNDk2Qjk3OTAwQTRFRTA2IC8qIEV2
ZW50RGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREE5
M0RCMTIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1l
dGVycy5jcHAgaW4gU291cmNlcyAqLywKKwkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyog
SGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0
MjE0NjU2MUIwMDgzODBCRiAvKiBJbmplY3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJMjc0OUY2NDUyMTQ2NTYxRTAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlUmFu
Z2VIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ5MTM0NDEyMTJDRjlGMDAwMTI4QUZE
IC8qIEpTTlBNZXRob2QuY3BwIGluIFNvdXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlByb2Nlc3MuY3BwCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NCwxMCArMjk0
LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlvbihJUAogewogICAgIEF1
eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxpemVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCi0jaWYg
UExBVEZPUk0oQ09DT0EpCi0gICAgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcygpOwotI2VuZGlm
Ci0KICAgICAvLyBXZSBjYWxsIF9leGl0KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dyb3VuZCBx
dWV1ZSBpbiBjYXNlIHRoZSBtYWluIHRocmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAvLyBhbmQg
QXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xvc2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgogICAgIGNv
bm5lY3Rpb24tPnNldERpZENsb3NlT25Db25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soY2FsbEV4
aXQpOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAy
NjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5n
IGNvcHkpCkBAIC01MjMsMTAgKzUyMyw2IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzQWx3YXlz
T25Mb2dnaW5nQWxsb3dlZCgpIHsgcmV0dXJuIG1fc2Vzc2lvbklEID8gbV9zZXNzaW9uSUQtPmlz
QWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIDogdHJ1ZTsgfQogCi0jaWYgUExBVEZPUk0oQ09DT0Ep
Ci0gICAgdm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKCkgY29uc3Q7Ci0jZW5kaWYKLQog
ICAgIFJlZlB0cjxXZWJDb25uZWN0aW9uVG9VSVByb2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsKIAog
ICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJQYWdlPj4gbV9w
YWdlTWFwOwpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQ
YWdlL1dlYlBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMzEsNiArMzMxLDEwIEBACiAjZW5k
aWYKICNlbmRpZgogCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyNpbmNsdWRlICJMYXVu
Y2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oIgorI2VuZGlmCisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogdXNpbmcgbmFtZXNwYWNlIEpTQzsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtNDc5
LDYgKzQ4Myw5IEBAIFdlYlBhZ2U6OldlYlBhZ2UoUGFnZUlkZW50aWZpZXIgcGFnZUlELCAKICAg
ICAsIG1fb3ZlcnJpZGRlbk1lZGlhVHlwZShwYXJhbWV0ZXJzLm92ZXJyaWRkZW5NZWRpYVR5cGUp
CiAgICAgLCBtX3Byb2Nlc3NEaXNwbGF5TmFtZShwYXJhbWV0ZXJzLnByb2Nlc3NEaXNwbGF5TmFt
ZSkKICAgICAsIG1fbGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyhwYXJhbWV0ZXJz
LmxpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMpCisjaWYgSEFWRShMU0RBVEFCQVNF
Q09OVEVYVCkKKyAgICAsIG1fcGVuZGluZ0xvYWRzVGltZXIoKnRoaXMsICZXZWJQYWdlOjpwZW5k
aW5nTG9hZFRpbWVyRmlyZWQpCisjZW5kaWYKIHsKICAgICBBU1NFUlQobV9pZGVudGlmaWVyKTsK
IApAQCAtMTU1OCw4ICsxNTY1LDQxIEBAIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1EaWRSZWNlaXZl
TG9hZFBhcmEKIH0KICNlbmRpZgogCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKK3ZvaWQg
V2ViUGFnZTo6cGVuZGluZ0xvYWRUaW1lckZpcmVkKCkKK3sKKyAgICBib29sIGRhdGFiYXNlVXBk
YXRlZCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS53YWl0Rm9y
RGF0YWJhc2VVcGRhdGUoMF9zKTsKKyAgICBhdXRvIGVsYXBzZWRUaW1lID0gV2FsbFRpbWU6Om5v
dygpIC0gbV90aW1lT2ZGaXJzdExvYWQ7CisgICAgY29uc3RleHByIFNlY29uZHMgbWF4V2FpdFRp
bWUgPSAyX3M7CisgICAgaWYgKGRhdGFiYXNlVXBkYXRlZCB8fCBlbGFwc2VkVGltZS52YWx1ZSgp
ID4gbWF4V2FpdFRpbWUudmFsdWUoKSkgeworICAgICAgICBtX3BlbmRpbmdMb2Fkc1RpbWVyLnN0
b3AoKTsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQobV9wZW5kaW5nTG9hZHMpOworICAgICAgICBh
dXRvIGxvYWRzID0gV1RGTW92ZSgqbV9wZW5kaW5nTG9hZHMpOworICAgICAgICBmb3IgKGF1dG8m
IGxvYWQgOiBsb2FkcykKKyAgICAgICAgICAgIGxvYWRSZXF1ZXN0KFdURk1vdmUobG9hZCkpOwor
ICAgIH0KK30KKyNlbmRpZgorCiB2b2lkIFdlYlBhZ2U6OmxvYWRSZXF1ZXN0KExvYWRQYXJhbWV0
ZXJzJiYgbG9hZFBhcmFtZXRlcnMpCiB7CisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyAg
ICBib29sIGRhdGFiYXNlVXBkYXRlZCA9IExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpz
aW5nbGV0b24oKS53YWl0Rm9yRGF0YWJhc2VVcGRhdGUoMF9zKTsKKyAgICBpZiAoIWRhdGFiYXNl
VXBkYXRlZCB8fCBtX3BlbmRpbmdMb2Fkc1RpbWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgV1RG
TG9nQWx3YXlzKCJMYXVuY2ggU2VydmljZXMgZGF0YWJhc2Ugbm90IHVwZGF0ZWQgd2hlbiBsb2Fk
IHJlcXVlc3RlZC4iKTsKKyAgICAgICAgUkVMRUFTRV9MT0coTG9hZGluZywgIkxhdW5jaCBTZXJ2
aWNlcyBkYXRhYmFzZSBub3QgdXBkYXRlZCB3aGVuIGxvYWQgcmVxdWVzdGVkLiIpOworICAgICAg
ICBpZiAoIW1fcGVuZGluZ0xvYWRzKSB7CisgICAgICAgICAgICBtX3BlbmRpbmdMb2FkcyA9IFZl
Y3RvcjxMb2FkUGFyYW1ldGVycz4oKTsKKyAgICAgICAgICAgIG1fcGVuZGluZ0xvYWRzVGltZXIu
c3RhcnRSZXBlYXRpbmcoMTAwX21zKTsKKyAgICAgICAgICAgIG1fdGltZU9mRmlyc3RMb2FkID0g
V2FsbFRpbWU6Om5vdygpOworICAgICAgICB9CisgICAgICAgIGlmIChtX3BlbmRpbmdMb2Fkc1Rp
bWVyLmlzQWN0aXZlKCkpIHsKKyAgICAgICAgICAgIG1fcGVuZGluZ0xvYWRzLT5hcHBlbmQoV1RG
TW92ZShsb2FkUGFyYW1ldGVycykpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgfQorI2VuZGlmCisKICAgICBzZXRJc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluKGxvYWRQ
YXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sICZtX21haW5GcmFtZS5nZXQo
KSk7CiAKICAgICBTZW5kU3RvcFJlc3BvbnNpdmVuZXNzVGltZXIgc3RvcHBlcjsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmgJKHJldmlzaW9uIDI2NTYx
MSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNzksNiArNzksNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUvU2hhcmVEYXRhLmg+
CiAjaW5jbHVkZSA8V2ViQ29yZS9TaW1wbGVSYW5nZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVGV4
dE1hbmlwdWxhdGlvbkNvbnRyb2xsZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1RpbWVyLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Vc2VyQWN0aXZpdHkuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJD
b250ZW50VHlwZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24uaD4KQEAgLTE3NjMsNiArMTc2NCwxMCBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBwbGF0
Zm9ybURpZFNjYWxlUGFnZSgpOwogCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyAgICB2
b2lkIHBlbmRpbmdMb2FkVGltZXJGaXJlZCgpOworI2VuZGlmCisKICAgICBXZWJDb3JlOjpQYWdl
SWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6
UGFnZT4gbV9wYWdlOwpAQCAtMjE0MCw2ICsyMTQ1LDEyIEBAIHByaXZhdGU6CiAgICAgYm9vbCBt
X2NhblVzZUNyZWRlbnRpYWxTdG9yYWdlIHsgdHJ1ZSB9OwogCiAgICAgVmVjdG9yPFN0cmluZz4g
bV9jb3JzRGlzYWJsaW5nUGF0dGVybnM7CisKKyNpZiBIQVZFKExTREFUQUJBU0VDT05URVhUKQor
ICAgIFdlYkNvcmU6OlRpbWVyIG1fcGVuZGluZ0xvYWRzVGltZXI7CisgICAgT3B0aW9uYWw8VmVj
dG9yPExvYWRQYXJhbWV0ZXJzPj4gbV9wZW5kaW5nTG9hZHM7CisgICAgV2FsbFRpbWUgbV90aW1l
T2ZGaXJzdExvYWQ7CisjZW5kaWYKIH07CiAKICNpZiAhUExBVEZPUk0oSU9TX0ZBTUlMWSkKSW5k
ZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5t
bQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9Db2NvYS9X
ZWJQYWdlQ29jb2EubW0JKHJldmlzaW9uIDI2NTYxMSkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL0NvY29hL1dlYlBhZ2VDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNjQs
MTcgKzY0LDYgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAKIHZvaWQgV2ViUGFnZTo6cGxhdGZvcm1E
aWRSZWNlaXZlTG9hZFBhcmFtZXRlcnMoY29uc3QgTG9hZFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMp
CiB7Ci0jaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKLSAgICBhdXRvIHN0YXJ0VGltZSA9IFdh
bGxUaW1lOjpub3coKTsKLSAgICBib29sIGRhdGFiYXNlVXBkYXRlZCA9IExhdW5jaFNlcnZpY2Vz
RGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS53YWl0Rm9yRGF0YWJhc2VVcGRhdGUoMV9zKTsK
LSAgICBhdXRvIGVsYXBzZWRUaW1lID0gV2FsbFRpbWU6Om5vdygpIC0gc3RhcnRUaW1lOwotICAg
IGlmIChlbGFwc2VkVGltZS52YWx1ZSgpID4gMC41KQotICAgICAgICBSRUxFQVNFX0xPRyhMb2Fk
aW5nLCAiV2FpdGluZyBmb3IgTGF1bmNoIFNlcnZpY2VzIGRhdGFiYXNlIHVwZGF0ZSB0b29rICVm
IHNlY29uZHMiLCBlbGFwc2VkVGltZS52YWx1ZSgpKTsKLSAgICBBU1NFUlRfVU5VU0VEKGRhdGFi
YXNlVXBkYXRlZCwgZGF0YWJhc2VVcGRhdGVkKTsKLSAgICBpZiAoIWRhdGFiYXNlVXBkYXRlZCkK
LSAgICAgICAgUkVMRUFTRV9MT0dfRVJST1IoTG9hZGluZywgIlRpbWVkIG91dCB3YWl0aW5nIGZv
ciBMYXVuY2ggU2VydmljZXMgZGF0YWJhc2UgdXBkYXRlLiIpOwotI2VuZGlmCi0KICAgICBtX2Rh
dGFEZXRlY3Rpb25Db250ZXh0ID0gcGFyYW1ldGVycy5kYXRhRGV0ZWN0aW9uQ29udGV4dDsKIAog
ICAgIGlmIChwYXJhbWV0ZXJzLm5lSGVscGVyRXh0ZW5zaW9uSGFuZGxlKQpJbmRleDogU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9p
bnRNZXNzYWdlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9j
b2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSwzNCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL3NwaS9k
YXJ3aW4vWFBDU1BJLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIGhhbmRsZVhQQ0Vu
ZHBvaW50TWVzc2FnZXMoeHBjX29iamVjdF90IGV2ZW50KTsKKworfQpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50
TWVzc2FnZXMubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2Nv
Y29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw1NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSGFuZGxl
WFBDRW5kcG9pbnRNZXNzYWdlcy5oIgorCisjaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNl
TWFuYWdlci5oIgorI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5o
IgorI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKKworI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIGhhbmRsZVhQQ0VuZHBvaW50TWVzc2Fn
ZXMoeHBjX29iamVjdF90IGV2ZW50KQoreworICAgIGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQpICE9
IFhQQ19UWVBFX0RJQ1RJT05BUlkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBtZXNz
YWdlTmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQsIFhQQ0VuZHBvaW50Ojp4
cGNNZXNzYWdlTmFtZUtleSk7CisgICAgaWYgKG1lc3NhZ2VOYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgcmV0dXJuOworCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyAgICBpZiAobWVzc2Fn
ZU5hbWUgPT0gTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TWVzc2FnZU5hbWUpIHsKKyAgICAgICAgYXV0byBlbmRw
b2ludCA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1ZShldmVudCwgTGF1bmNoU2VydmljZXNEYXRh
YmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TmFt
ZUtleSk7CisgICAgICAgIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24o
KS5zZXRFbmRwb2ludChlbmRwb2ludCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYK
K30KKworfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2Vi
UHJvY2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsy
Niw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKIAotI2lt
cG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKLSNpbXBvcnQgIkxhdW5jaFNl
cnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3Rv
Y29sTWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbXBvcnQgIkxv
Z2dpbmcuaCIKQEAgLTQ5LDcgKzQ3LDYgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eU1lc3Nh
Z2VzLmgiCiAjaW1wb3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJz
aXRlRGF0YVN0b3JlUGFyYW1ldGVycy5oIgotI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKICNpbXBv
cnQgPEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3Jl
L09wdGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaD4KQEAg
LTE2Nyw0MSArMTY0LDYgQEAgc3RhdGljIGlkIE5TQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5Rm9j
dQogfQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzczo6aGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cygpIGNvbnN0Ci17Ci0gICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKQotICAgICAg
ICByZXR1cm47Ci0KLSAgICBhdXRvIGNvbm5lY3Rpb24gPSBwYXJlbnRQcm9jZXNzQ29ubmVjdGlv
bigpLT54cGNDb25uZWN0aW9uKCk7Ci0KLSAgICBpZiAoIWNvbm5lY3Rpb24pCi0gICAgICAgIHJl
dHVybjsKLQotICAgIFJFTEVBU0VfQVNTRVJUKHhwY19nZXRfdHlwZShjb25uZWN0aW9uKSA9PSBY
UENfVFlQRV9DT05ORUNUSU9OKTsKLQotICAgIHhwY19jb25uZWN0aW9uX3N1c3BlbmQoY29ubmVj
dGlvbik7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24s
IGRpc3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVM
VCwgMCkpOwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKGNvbm5lY3Rpb24s
IF4oeHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQp
ICE9IFhQQ19UWVBFX0RJQ1RJT05BUlkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAg
U3RyaW5nIG1lc3NhZ2VOYW1lID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVudCwgWFBD
RW5kcG9pbnQ6OnhwY01lc3NhZ2VOYW1lS2V5KTsKLSAgICAgICAgaWYgKG1lc3NhZ2VOYW1lLmlz
RW1wdHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRF
WFQpCi0gICAgICAgIGlmIChtZXNzYWdlTmFtZSA9PSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBD
Q29uc3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9pbnRNZXNzYWdlTmFt
ZSkgewotICAgICAgICAgICAgYXV0byBlbmRwb2ludCA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1
ZShldmVudCwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2Vy
dmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TmFtZUtleSk7Ci0gICAgICAgICAgICBMYXVuY2hTZXJ2
aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0RW5kcG9pbnQoZW5kcG9pbnQpOwot
ICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICB9KTsKLQotICAgIHhw
Y19jb25uZWN0aW9uX3Jlc3VtZShjb25uZWN0aW9uKTsKLX0KLQogdm9pZCBXZWJQcm9jZXNzOjpw
bGF0Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMm
IHBhcmFtZXRlcnMpCiB7CiAgICAgaWYgKHBhcmFtZXRlcnMubW9iaWxlR2VzdGFsdEV4dGVuc2lv
bkhhbmRsZSkgewo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406618</attachid>
            <date>2020-08-14 14:02:32 -0700</date>
            <delta_ts>2020-08-14 14:52:02 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200814140231.patch</filename>
            <type>text/plain</type>
            <size>16538</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU3MDMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA4LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBXZWJQcm9jZXNzOjpoYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzIHdlIGN1cnJlbnRseSBjaGFuZ2UgdGhlIFhQQyB0YXJnZXQg
cXVldWUgZm9yIHRoZSBYUEMgYm9vdHN0cmFwIGNvbm5lY3Rpb24gd2hpbGUKKyAgICAgICAgdW5k
ZXIgdGhlIFhQQyBldmVudCBoYW5kbGVyLiBUaGlzIHNvbWV0aW1lcyBjYXVzZXMgc2ltdWxhdGVk
IGNyYXNoZXMgb24gaU9TIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gQWNjb3JkaW5nIHRvIHRoZQor
ICAgICAgICBkb2N1bWVudGF0aW9uIGluIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1
bWVudGF0aW9uL3hwYy8xNDQ4Nzg2LXhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWU/bGFu
Z3VhZ2U9b2JqYywKKyAgICAgICAgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnl0aGluZyBz
YXlpbmcgdGhpcyBpcyBhIHByb2dyYW1taW5nIGVycm9yLCBidXQgdGhlIHNpbXVsYXRlZCBjcmFz
aCBjbGFpbXMgb3RoZXJ3aXNlLiBUaGlzCisgICAgICAgIHBhdGNoIGFkZHJlc3NlcyB0aGlzIGlz
c3VlIGJ5IGNoYW5naW5nIHRoZSBpbml0aWFsIHRhcmdldCBxdWV1ZSBmb3IgdGhlIFhQQyBib290
c3RyYXAgY29ubmVjdGlvbiBmcm9tIHRoZSBtYWluIHRocmVhZAorICAgICAgICBxdWV1ZSB0byBh
IHF1ZXVlIG9uIGEgc2Vjb25kYXJ5IHRocmVhZC4gVGhlIFdlYktpdCBpbml0aWFsaXplciBmdW5j
dGlvbiBuZWVkcyB0byBiZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLCB3aGljaAorICAgICAg
ICBpcyBkb25lIGJ5IHN5bmNocm9ub3VzbHkgZGlzcGF0Y2hpbmcgdGhlIGNhbGwgb24gdGhlIG1h
aW4gdGhyZWFkLiBUaGlzIHBhdGNoIGFsc28gc3RvcHMgY2hhbmdpbmcgdGhlIGV2ZW50IGhhbmRs
ZXIgZm9yCisgICAgICAgIHRoZSBib290c3RyYXAgY29ubmVjdGlvbiwgYnV0IGluc3RlYWQgYWRk
cyB0aGUgYWRkaXRpb25hbCBYUEMgaGFuZGxpbmcgdG8gdGhlIGN1cnJlbnQgZXZlbnQgaGFuZGxl
ci4KKworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHRoaXMgaXMgY292ZXJlZCBieSBleGlz
dGluZyB0ZXN0cy4gVGhlIGhhbmRsaW5nIG9mIHRoZSBMYXVuY2ggU2VydmljZXMgWFBDIGVuZHBv
aW50IG1lc3NhZ2UgdGhhdAorICAgICAgICB0aGlzIHBhdGNoIGNoYW5nZXMsIGlzIHVzZWQgdG8g
cmVjZWl2ZSB0aGUgTGF1bmNoIFNlcnZpY2VzIGRhdGFiYXNlIGZyb20gdGhlIE5ldHdvcmtpbmcg
cHJvY2Vzcy4gVGhlIExhdW5jaCBTZXJ2aWNlcworICAgICAgICBkYXRhYmFzZSBpcyB1c2VkIGlu
IE1JTUUgdHlwZSBtYXBwaW5nIEFQSXMsIGFuZCBtYW55IHRlc3RzIHdvdWxkIGZhaWwgaWYgdGhp
cyBkYXRhYmFzZSB3YXMgbm90IHJlY2VpdmVkIGluIHRoZQorICAgICAgICBXZWJDb250ZW50IHBy
b2Nlc3MuCisKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENT
ZXJ2aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlRXZl
bnRIYW5kbGVyKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9p
bnRNZXNzYWdlcy5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQ
Q0VuZHBvaW50TWVzc2FnZXMubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVYUENF
bmRwb2ludE1lc3NhZ2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3ND
b2NvYS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFuZGxlWFBDRW5kcG9pbnRN
ZXNzYWdlcyBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDgtMTQgIEthdGUgQ2hlbmV5ICA8a2F0
aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBTaGFyZWRNZW1vcnk6
OkhhbmRsZSB0byBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBXZWJQYWdlIGltYWdlL3Bhc3RlYm9h
cmQgZnVuY3Rpb25zCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0
aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQ
Q1NlcnZpY2VNYWluLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJl
ZC9FbnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0J
KHdvcmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAK
KyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaCIKICNpbXBvcnQgIldLQ3Jhc2hS
ZXBvcnRlci5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQgPENv
cmVGb3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC00MSw3ICs0Miw3IEBAIHN0YXRpYyB2
b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2MKIHsKICAgICBzdGF0aWMgeHBjX29iamVj
dF90IHByaW9yaXR5Qm9vc3RNZXNzYWdlID0gbnVsbHB0cjsKIAotICAgIHhwY19jb25uZWN0aW9u
X3NldF90YXJnZXRfcXVldWUocGVlciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAg
eHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShwZWVyLCBkaXNwYXRjaF9nZXRfZ2xvYmFs
X3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApKTsKICAgICB4cGNfY29u
bmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihwZWVyLCBeKHhwY19vYmplY3RfdCBldmVudCkgewog
ICAgICAgICB4cGNfdHlwZV90IHR5cGUgPSB4cGNfZ2V0X3R5cGUoZXZlbnQpOwogICAgICAgICBp
ZiAodHlwZSA9PSBYUENfVFlQRV9FUlJPUikgewpAQCAtODcsNyArODgsMTAgQEAgc3RhdGljIHZv
aWQgWFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfYwogICAgICAgICAgICAgICAgIGlmIChmZCAh
PSAtMSkKICAgICAgICAgICAgICAgICAgICAgZHVwMihmZCwgU1RERVJSX0ZJTEVOTyk7CiAKLSAg
ICAgICAgICAgICAgICBpbml0aWFsaXplckZ1bmN0aW9uUHRyKHBlZXIsIGV2ZW50LCBwcmlvcml0
eUJvb3N0TWVzc2FnZSk7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfc3luYyhkaXNwYXRjaF9n
ZXRfbWFpbl9xdWV1ZSgpLCBbaW5pdGlhbGl6ZXJGdW5jdGlvblB0ciA9IGluaXRpYWxpemVyRnVu
Y3Rpb25QdHIsIHBlZXIgPSBPU09iamVjdFB0cihwZWVyKSwgZXZlbnQgPSBPU09iamVjdFB0cihl
dmVudCksIHByaW9yaXR5Qm9vc3RNZXNzYWdlID0gT1NPYmplY3RQdHIocHJpb3JpdHlCb29zdE1l
c3NhZ2UpXSB7CisgICAgICAgICAgICAgICAgICAgIGluaXRpYWxpemVyRnVuY3Rpb25QdHIocGVl
ci5nZXQoKSwgZXZlbnQuZ2V0KCksIHByaW9yaXR5Qm9vc3RNZXNzYWdlLmdldCgpKTsKKyAgICAg
ICAgICAgICAgICB9KTsKKwogICAgICAgICAgICAgICAgIGlmIChwcmlvcml0eUJvb3N0TWVzc2Fn
ZSkKICAgICAgICAgICAgICAgICAgICAgeHBjX3JlbGVhc2UocHJpb3JpdHlCb29zdE1lc3NhZ2Up
OwogICAgICAgICAgICAgfQpAQCAtOTcsNiArMTAxLDggQEAgc3RhdGljIHZvaWQgWFBDU2Vydmlj
ZUV2ZW50SGFuZGxlcih4cGNfYwogICAgICAgICAgICAgICAgIGFzc2VydCghcHJpb3JpdHlCb29z
dE1lc3NhZ2UpOwogICAgICAgICAgICAgICAgIHByaW9yaXR5Qm9vc3RNZXNzYWdlID0geHBjX3Jl
dGFpbihldmVudCk7CiAgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMoZXZlbnQpOwogICAgICAgICB9CiAgICAgfSk7CiAKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkocmV2aXNpb24gMjY1
NjExKQorKysgU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagko
d29ya2luZyBjb3B5KQpAQCAtMTY5Miw2ICsxNjkyLDcgQEAKIAkJQzE2NjNFNUIyNEFFQUEyRjAw
QzZBM0IyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxNjYzRTVBMjRBRUE3NDIwMEM2
QTNCMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggKi87IH07CiAJCUMx
NzEwQ0Y3MjRBQTY0MzIwMEQ3QzExMiAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlT2JzZXJ2ZXIu
bW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTcxMENG
NjI0QUE2NDMyMDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1tICov
OyB9OwogCQlDMTgxNzM2MTIwNTg0MjQ3MDBERkRBNjUgLyogRGlzcGxheUxpbmsuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxODE3MzYwMjA1ODQyNDcw
MERGREE2NSAvKiBEaXNwbGF5TGluay5oICovOyB9OworCQlDMUExNTJENzI0RTVBMjlBMDA5NzhD
OEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcy5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxQTE1MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovOyB9OwogCQlDMUUxMjNCQTIwQTExNTczMDAyNjQ2
RjQgLyogUERGQ29udGV4dE1lbnUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMxRTEyM0I5MjBBMTE1NzIwMDI2NDZGNCAvKiBQREZDb250ZXh0TWVudS5o
ICovOyB9OwogCQlDNTE3Mzg4MTEyREY4RjRGMDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1MTcz
ODgwMTJERjhGNEYwMEVFM0Y0NyAvKiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovOyB9OwogCQlD
NTQyNTZCNTE4QkVDMThDMDBERTQxNzkgLyogV0tEYXRlVGltZUlucHV0Q29udHJvbC5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzU0MjU2QUYxOEJFQzE4
QjAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRyb2wuaCAqLzsgfTsKQEAgLTUwMzYsNiAr
NTAzNyw4IEBACiAJCUMxODE3MzYyMjA1ODQ0QTkwMERGREE2NSAvKiBEaXNwbGF5TGluay5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBEaXNwbGF5TGluay5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMxOEZCNTFEMjQyRjlGNzYwMDdFOTg3NSAvKiBXZWJTbGVlcERpc2FibGVyQ2xp
ZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlNsZWVwRGlz
YWJsZXJDbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMThGQjUxRTI0
MkY5Rjc3MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50Lmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ1MjRFNUExRDIwMDk3OEM4QiAvKiBIYW5kbGVYUENF
bmRwb2ludE1lc3NhZ2VzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEhhbmRsZVhQQ0VuZHBvaW50TWVzc2Fn
ZXMuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzFBMTUyRDYyNEU1QTI5QTAwOTc4
QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGgg
PSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUERGQ29udGV4dE1lbnUuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQzFFRDcyMzcyNEE1NjkwRTAwM0Y2Q0QzIC8qIE5ldHdvcmtQcm9j
ZXNzUHJveHlDb2NvYS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IE5ldHdvcmtQcm9jZXNzUHJv
eHlDb2NvYS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzUxNzM4ODAxMkRGOEY0
RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IERyYWdDb250cm9sbGVyQWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04Mzg0LDYgKzgzODcsOCBAQAogCQkJY2hpbGRyZW4gPSAoCiAJCQkJQ0Q0NTcw
Q0IyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmNwcCAq
LywKIAkJCQlDRDQ1NzBDQTI0NDBGQjJBMDBBM0RDRUIgLyogQXVkaW9TZXNzaW9uUm91dGluZ0Fy
Yml0cmF0b3IuaCAqLywKKwkJCQlDMUExNTJENTI0RTVBMUQyMDA5NzhDOEIgLyogSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5oICovLAorCQkJCUMxQTE1MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBI
YW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovLAogCQkJCUMxNEQzN0ZDMjRBQ0RGNDUwMDdG
RjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5oICovLAogCQkJCUMxNEQzN0ZE
MjRBQ0UwODYwMDdGRjAxNCAvKiBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlci5tbSAqLywK
IAkJCQk0NDZEQzY0QjI0QTJEOEFEMDA2MUYzOTAgLyogUGxheWJhY2tTZXNzaW9uQ29udGV4dElk
ZW50aWZpZXIuaCAqLywKQEAgLTEyNzQyLDYgKzEyNzQ3LDcgQEAKIAkJCQlDRENEQzk5RTI0OEZF
OERBMDBBNjk1MjIgLyogRW5kb3dtZW50U3RhdGVUcmFja2VyLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJMUFBNTc2MDIxNDk2Qjk3OTAwQTRFRTA2IC8qIEV2ZW50RGlzcGF0Y2hlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQlDREE5M0RCMTIyRjhCQ0Y0MDA0OTBBNjkgLyog
RnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1ldGVycy5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQlDMUExNTJENzI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cy5tbSBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ0MjE0NjU2MUIwMDgzODBCRiAvKiBJbmpl
Y3RlZEJ1bmRsZU5vZGVIYW5kbGUuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMjc0OUY2NDUyMTQ2
NTYxRTAwODM4MEJGIC8qIEluamVjdGVkQnVuZGxlUmFuZ2VIYW5kbGUuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJMkQ5MTM0NDEyMTJDRjlGMDAwMTI4QUZEIC8qIEpTTlBNZXRob2QuY3BwIGluIFNv
dXJjZXMgKi8sCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCShy
ZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTI5NCwxMCArMjk0LDYgQEAgdm9pZCBXZWJQcm9jZXNzOjpp
bml0aWFsaXplQ29ubmVjdGlvbihJUAogewogICAgIEF1eGlsaWFyeVByb2Nlc3M6OmluaXRpYWxp
emVDb25uZWN0aW9uKGNvbm5lY3Rpb24pOwogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgaGFu
ZGxlWFBDRW5kcG9pbnRNZXNzYWdlcygpOwotI2VuZGlmCi0KICAgICAvLyBXZSBjYWxsIF9leGl0
KCkgZGlyZWN0bHkgZnJvbSB0aGUgYmFja2dyb3VuZCBxdWV1ZSBpbiBjYXNlIHRoZSBtYWluIHRo
cmVhZCBpcyB1bnJlc3BvbnNpdmUKICAgICAvLyBhbmQgQXV4aWxpYXJ5UHJvY2Vzczo6ZGlkQ2xv
c2UoKSBkb2VzIG5vdCBnZXQgY2FsbGVkLgogICAgIGNvbm5lY3Rpb24tPnNldERpZENsb3NlT25D
b25uZWN0aW9uV29ya1F1ZXVlQ2FsbGJhY2soY2FsbEV4aXQpOwpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUHJvY2Vzcy5oCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5oCSh3b3JraW5nIGNvcHkpCkBAIC01MjMsMTAgKzUyMyw2
IEBAIHByaXZhdGU6CiAKICAgICBib29sIGlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgpIHsgcmV0
dXJuIG1fc2Vzc2lvbklEID8gbV9zZXNzaW9uSUQtPmlzQWx3YXlzT25Mb2dnaW5nQWxsb3dlZCgp
IDogdHJ1ZTsgfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgdm9pZCBoYW5kbGVYUENFbmRw
b2ludE1lc3NhZ2VzKCkgY29uc3Q7Ci0jZW5kaWYKLQogICAgIFJlZlB0cjxXZWJDb25uZWN0aW9u
VG9VSVByb2Nlc3M+IG1fd2ViQ29ubmVjdGlvbjsKIAogICAgIEhhc2hNYXA8V2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIsIFJlZlB0cjxXZWJQYWdlPj4gbV9wYWdlTWFwOwpJbmRleDogU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRN
ZXNzYWdlcy5oCShub25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2Nv
YS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmgJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwz
NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSA8d3RmL3NwaS9kYXJ3
aW4vWFBDU1BJLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIGhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMoeHBjX29iamVjdF90IGV2ZW50KTsKKworfQpJbmRleDogU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMubW0JKG5vbmV4aXN0ZW50KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29h
L0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0JKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1
NSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5oIgorCisjaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFu
YWdlci5oIgorI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oIgor
I2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKKworI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+
CisKK25hbWVzcGFjZSBXZWJLaXQgeworCit2b2lkIGhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMo
eHBjX29iamVjdF90IGV2ZW50KQoreworICAgIGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQpICE9IFhQ
Q19UWVBFX0RJQ1RJT05BUlkpCisgICAgICAgIHJldHVybjsKKworICAgIFN0cmluZyBtZXNzYWdl
TmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQsIFhQQ0VuZHBvaW50Ojp4cGNN
ZXNzYWdlTmFtZUtleSk7CisgICAgaWYgKG1lc3NhZ2VOYW1lLmlzRW1wdHkoKSkKKyAgICAgICAg
cmV0dXJuOworCisjaWYgSEFWRShMU0RBVEFCQVNFQ09OVEVYVCkKKyAgICBpZiAobWVzc2FnZU5h
bWUgPT0gTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZVhQQ0VuZHBvaW50TWVzc2FnZU5hbWUpIHsKKyAgICAgICAgYXV0byBlbmRwb2lu
dCA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1ZShldmVudCwgTGF1bmNoU2VydmljZXNEYXRhYmFz
ZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TmFtZUtl
eSk7CisgICAgICAgIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VNYW5hZ2VyOjpzaW5nbGV0b24oKS5z
ZXRFbmRwb2ludChlbmRwb2ludCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisjZW5kaWYKK30K
KworfQpJbmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvV2ViUHJv
Y2Vzc0NvY29hLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvY29jb2EvV2ViUHJvY2Vzc0NvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw4ICsyNiw2
IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIldlYlByb2Nlc3MuaCIKIAotI2ltcG9y
dCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKLSNpbXBvcnQgIkxhdW5jaFNlcnZp
Y2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKICNpbXBvcnQgIkxlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlci5oIgogI2ltcG9ydCAiTG9nSW5pdGlhbGl6YXRpb24uaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKQEAgLTQ5LDcgKzQ3LDYgQEAKICNpbXBvcnQgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2Vz
LmgiCiAjaW1wb3J0ICJXZWJTbGVlcERpc2FibGVyQ2xpZW50LmgiCiAjaW1wb3J0ICJXZWJzaXRl
RGF0YVN0b3JlUGFyYW1ldGVycy5oIgotI2ltcG9ydCAiWFBDRW5kcG9pbnQuaCIKICNpbXBvcnQg
PEphdmFTY3JpcHRDb3JlL0NvbmZpZ0ZpbGUuaD4KICNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL09w
dGlvbnMuaD4KICNpbXBvcnQgPFdlYkNvcmUvQVZBc3NldE1JTUVUeXBlQ2FjaGUuaD4KQEAgLTE2
Nyw0MSArMTY0LDYgQEAgc3RhdGljIGlkIE5TQXBwbGljYXRpb25BY2Nlc3NpYmlsaXR5Rm9jdQog
fQogI2VuZGlmCiAKLXZvaWQgV2ViUHJvY2Vzczo6aGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdlcygp
IGNvbnN0Ci17Ci0gICAgaWYgKCFwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigpKQotICAgICAgICBy
ZXR1cm47Ci0KLSAgICBhdXRvIGNvbm5lY3Rpb24gPSBwYXJlbnRQcm9jZXNzQ29ubmVjdGlvbigp
LT54cGNDb25uZWN0aW9uKCk7Ci0KLSAgICBpZiAoIWNvbm5lY3Rpb24pCi0gICAgICAgIHJldHVy
bjsKLQotICAgIFJFTEVBU0VfQVNTRVJUKHhwY19nZXRfdHlwZShjb25uZWN0aW9uKSA9PSBYUENf
VFlQRV9DT05ORUNUSU9OKTsKLQotICAgIHhwY19jb25uZWN0aW9uX3N1c3BlbmQoY29ubmVjdGlv
bik7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9zZXRfdGFyZ2V0X3F1ZXVlKGNvbm5lY3Rpb24sIGRp
c3BhdGNoX2dldF9nbG9iYWxfcXVldWUoRElTUEFUQ0hfUVVFVUVfUFJJT1JJVFlfREVGQVVMVCwg
MCkpOwotICAgIHhwY19jb25uZWN0aW9uX3NldF9ldmVudF9oYW5kbGVyKGNvbm5lY3Rpb24sIF4o
eHBjX29iamVjdF90IGV2ZW50KSB7Ci0gICAgICAgIGlmICh4cGNfZ2V0X3R5cGUoZXZlbnQpICE9
IFhQQ19UWVBFX0RJQ1RJT05BUlkpCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgU3Ry
aW5nIG1lc3NhZ2VOYW1lID0geHBjX2RpY3Rpb25hcnlfZ2V0X3N0cmluZyhldmVudCwgWFBDRW5k
cG9pbnQ6OnhwY01lc3NhZ2VOYW1lS2V5KTsKLSAgICAgICAgaWYgKG1lc3NhZ2VOYW1lLmlzRW1w
dHkoKSkKLSAgICAgICAgICAgIHJldHVybjsKLQotI2lmIEhBVkUoTFNEQVRBQkFTRUNPTlRFWFQp
Ci0gICAgICAgIGlmIChtZXNzYWdlTmFtZSA9PSBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29u
c3RhbnRzOjp4cGNMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDRW5kcG9pbnRNZXNzYWdlTmFtZSkg
ewotICAgICAgICAgICAgYXV0byBlbmRwb2ludCA9IHhwY19kaWN0aW9uYXJ5X2dldF92YWx1ZShl
dmVudCwgTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBjTGF1bmNoU2Vydmlj
ZXNEYXRhYmFzZVhQQ0VuZHBvaW50TmFtZUtleSk7Ci0gICAgICAgICAgICBMYXVuY2hTZXJ2aWNl
c0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0RW5kcG9pbnQoZW5kcG9pbnQpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0jZW5kaWYKLSAgICB9KTsKLQotICAgIHhwY19j
b25uZWN0aW9uX3Jlc3VtZShjb25uZWN0aW9uKTsKLX0KLQogdm9pZCBXZWJQcm9jZXNzOjpwbGF0
Zm9ybUluaXRpYWxpemVXZWJQcm9jZXNzKFdlYlByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMmIHBh
cmFtZXRlcnMpCiB7CiAgICAgaWYgKHBhcmFtZXRlcnMubW9iaWxlR2VzdGFsdEV4dGVuc2lvbkhh
bmRsZSkgewo=
</data>
<flag name="review"
          id="422007"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>406629</attachid>
            <date>2020-08-14 15:33:55 -0700</date>
            <delta_ts>2020-08-14 16:27:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-215460-20200814153354.patch</filename>
            <type>text/plain</type>
            <size>16356</size>
            <attacher name="Per Arne Vollan">pvollan</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjU3MDcpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDM4IEBACisyMDIwLTA4LTE0ICBQZXIgQXJuZSBW
b2xsYW4gIDxwdm9sbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbQ29jb2FdIEF2b2lkIGNoYW5n
aW5nIFhQQyB0YXJnZXQgcXVldWUgaW5zaWRlIFhQQyBldmVudCBoYW5kbGVyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTU0NjAKKworICAgICAgICBS
ZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJbiBXZWJQcm9jZXNzOjpoYW5kbGVY
UENFbmRwb2ludE1lc3NhZ2VzIHdlIGN1cnJlbnRseSBjaGFuZ2UgdGhlIFhQQyB0YXJnZXQgcXVl
dWUgZm9yIHRoZSBYUEMgYm9vdHN0cmFwIGNvbm5lY3Rpb24gd2hpbGUKKyAgICAgICAgdW5kZXIg
dGhlIFhQQyBldmVudCBoYW5kbGVyLiBUaGlzIHNvbWV0aW1lcyBjYXVzZXMgc2ltdWxhdGVkIGNy
YXNoZXMgb24gaU9TIGFuZCBzaG91bGQgYmUgYXZvaWRlZC4gQWNjb3JkaW5nIHRvIHRoZQorICAg
ICAgICBkb2N1bWVudGF0aW9uIGluIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVu
dGF0aW9uL3hwYy8xNDQ4Nzg2LXhwY19jb25uZWN0aW9uX3NldF90YXJnZXRfcXVldWU/bGFuZ3Vh
Z2U9b2JqYywKKyAgICAgICAgdGhlcmUgZG9lcyBub3Qgc2VlbSB0byBiZSBhbnl0aGluZyBzYXlp
bmcgdGhpcyBpcyBhIHByb2dyYW1taW5nIGVycm9yLCBidXQgdGhlIHNpbXVsYXRlZCBjcmFzaCBj
bGFpbXMgb3RoZXJ3aXNlLiBUaGlzCisgICAgICAgIHBhdGNoIGFkZHJlc3NlcyB0aGlzIGlzc3Vl
IGJ5IGNoYW5naW5nIHRoZSBpbml0aWFsIHRhcmdldCBxdWV1ZSBmb3IgdGhlIFhQQyBib290c3Ry
YXAgY29ubmVjdGlvbiBmcm9tIHRoZSBtYWluIHRocmVhZAorICAgICAgICBxdWV1ZSB0byBhIHF1
ZXVlIG9uIGEgc2Vjb25kYXJ5IHRocmVhZC4gVGhlIFdlYktpdCBpbml0aWFsaXplciBmdW5jdGlv
biBuZWVkcyB0byBiZSBjYWxsZWQgb24gdGhlIG1haW4gdGhyZWFkLCB3aGljaAorICAgICAgICBp
cyBkb25lIGJ5IHN5bmNocm9ub3VzbHkgZGlzcGF0Y2hpbmcgdGhlIGNhbGwgb24gdGhlIG1haW4g
dGhyZWFkLiBUaGlzIHBhdGNoIGFsc28gc3RvcHMgY2hhbmdpbmcgdGhlIGV2ZW50IGhhbmRsZXIg
Zm9yCisgICAgICAgIHRoZSBib290c3RyYXAgY29ubmVjdGlvbiwgYnV0IGluc3RlYWQgYWRkcyB0
aGUgYWRkaXRpb25hbCBYUEMgaGFuZGxpbmcgdG8gdGhlIGN1cnJlbnQgZXZlbnQgaGFuZGxlci4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIHNpbmNlIHRoaXMgaXMgY292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4gVGhlIGhhbmRsaW5nIG9mIHRoZSBMYXVuY2ggU2VydmljZXMgWFBDIGVuZHBvaW50
IG1lc3NhZ2UgdGhhdAorICAgICAgICB0aGlzIHBhdGNoIGNoYW5nZXMsIGlzIHVzZWQgdG8gcmVj
ZWl2ZSB0aGUgTGF1bmNoIFNlcnZpY2VzIGRhdGFiYXNlIGZyb20gdGhlIE5ldHdvcmtpbmcgcHJv
Y2Vzcy4gVGhlIExhdW5jaCBTZXJ2aWNlcworICAgICAgICBkYXRhYmFzZSBpcyB1c2VkIGluIE1J
TUUgdHlwZSBtYXBwaW5nIEFQSXMsIGFuZCBtYW55IHRlc3RzIHdvdWxkIGZhaWwgaWYgdGhpcyBk
YXRhYmFzZSB3YXMgbm90IHJlY2VpdmVkIGluIHRoZQorICAgICAgICBXZWJDb250ZW50IHByb2Nl
c3MuCisKKyAgICAgICAgKiBTaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2
aWNlL1hQQ1NlcnZpY2VNYWluLm1tOgorICAgICAgICAoV2ViS2l0OjpYUENTZXJ2aWNlRXZlbnRI
YW5kbGVyKToKKyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvQ29jb2EvV2ViUGFnZUNvY29hLm1tOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlOjpwbGF0Zm9ybURpZFJlY2VpdmVMb2FkUGFyYW1ldGVycyk6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UHJvY2Vzczo6aW5pdGlhbGl6ZUNvbm5lY3Rpb24pOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
UHJvY2Vzcy5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBDRW5kcG9pbnRN
ZXNzYWdlcy5oOiBBZGRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0Vu
ZHBvaW50TWVzc2FnZXMubW06IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpoYW5kbGVYUENFbmRw
b2ludE1lc3NhZ2VzKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2Nv
YS5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzczo6aGFuZGxlWFBDRW5kcG9pbnRNZXNz
YWdlcyBjb25zdCk6IERlbGV0ZWQuCisKIDIwMjAtMDgtMTQgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CiAKICAgICAgICAgQ29udmVydCBTaGFyZWRNZW1vcnk6Okhh
bmRsZSB0byBTaGFyZWRNZW1vcnk6OklQQ0hhbmRsZSBXZWJQYWdlIGltYWdlL3Bhc3RlYm9hcmQg
ZnVuY3Rpb25zCkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9FbnRyeVBvaW50VXRpbGl0aWVz
L0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0KPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9TaGFyZWQvRW50cnlQb2ludFV0aWxpdGllcy9Db2NvYS9YUENTZXJ2aWNlL1hQQ1Nl
cnZpY2VNYWluLm1tCShyZXZpc2lvbiAyNjU2MTEpCisrKyBTb3VyY2UvV2ViS2l0L1NoYXJlZC9F
bnRyeVBvaW50VXRpbGl0aWVzL0NvY29hL1hQQ1NlcnZpY2UvWFBDU2VydmljZU1haW4ubW0JKHdv
cmtpbmcgY29weSkKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCAiY29uZmlnLmgiCiAKKyNp
bXBvcnQgIkhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaCIKICNpbXBvcnQgIldLQ3Jhc2hSZXBv
cnRlci5oIgogI2ltcG9ydCAiWFBDU2VydmljZUVudHJ5UG9pbnQuaCIKICNpbXBvcnQgPENvcmVG
b3VuZGF0aW9uL0NvcmVGb3VuZGF0aW9uLmg+CkBAIC00MSw3ICs0Miw3IEBAIHN0YXRpYyB2b2lk
IFhQQ1NlcnZpY2VFdmVudEhhbmRsZXIoeHBjX2MKIHsKICAgICBzdGF0aWMgeHBjX29iamVjdF90
IHByaW9yaXR5Qm9vc3RNZXNzYWdlID0gbnVsbHB0cjsKIAotICAgIHhwY19jb25uZWN0aW9uX3Nl
dF90YXJnZXRfcXVldWUocGVlciwgZGlzcGF0Y2hfZ2V0X21haW5fcXVldWUoKSk7CisgICAgeHBj
X2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShwZWVyLCBkaXNwYXRjaF9nZXRfZ2xvYmFsX3F1
ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApKTsKICAgICB4cGNfY29ubmVj
dGlvbl9zZXRfZXZlbnRfaGFuZGxlcihwZWVyLCBeKHhwY19vYmplY3RfdCBldmVudCkgewogICAg
ICAgICB4cGNfdHlwZV90IHR5cGUgPSB4cGNfZ2V0X3R5cGUoZXZlbnQpOwogICAgICAgICBpZiAo
dHlwZSA9PSBYUENfVFlQRV9FUlJPUikgewpAQCAtODcsNyArODgsMTAgQEAgc3RhdGljIHZvaWQg
WFBDU2VydmljZUV2ZW50SGFuZGxlcih4cGNfYwogICAgICAgICAgICAgICAgIGlmIChmZCAhPSAt
MSkKICAgICAgICAgICAgICAgICAgICAgZHVwMihmZCwgU1RERVJSX0ZJTEVOTyk7CiAKLSAgICAg
ICAgICAgICAgICBpbml0aWFsaXplckZ1bmN0aW9uUHRyKHBlZXIsIGV2ZW50LCBwcmlvcml0eUJv
b3N0TWVzc2FnZSk7CisgICAgICAgICAgICAgICAgZGlzcGF0Y2hfc3luYyhkaXNwYXRjaF9nZXRf
bWFpbl9xdWV1ZSgpLCBeeworICAgICAgICAgICAgICAgICAgICBpbml0aWFsaXplckZ1bmN0aW9u
UHRyKHBlZXIsIGV2ZW50LCBwcmlvcml0eUJvb3N0TWVzc2FnZSk7CisgICAgICAgICAgICAgICAg
fSk7CisKICAgICAgICAgICAgICAgICBpZiAocHJpb3JpdHlCb29zdE1lc3NhZ2UpCiAgICAgICAg
ICAgICAgICAgICAgIHhwY19yZWxlYXNlKHByaW9yaXR5Qm9vc3RNZXNzYWdlKTsKICAgICAgICAg
ICAgIH0KQEAgLTk3LDYgKzEwMSw4IEBAIHN0YXRpYyB2b2lkIFhQQ1NlcnZpY2VFdmVudEhhbmRs
ZXIoeHBjX2MKICAgICAgICAgICAgICAgICBhc3NlcnQoIXByaW9yaXR5Qm9vc3RNZXNzYWdlKTsK
ICAgICAgICAgICAgICAgICBwcmlvcml0eUJvb3N0TWVzc2FnZSA9IHhwY19yZXRhaW4oZXZlbnQp
OwogICAgICAgICAgICAgfQorCisgICAgICAgICAgICBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2Vz
KGV2ZW50KTsKICAgICAgICAgfQogICAgIH0pOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDI2NTYxMSkKKysrIFNv
dXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29w
eSkKQEAgLTE2OTIsNiArMTY5Miw3IEBACiAJCUMxNjYzRTVCMjRBRUFBMkYwMEM2QTNCMiAvKiBM
YXVuY2hTZXJ2aWNlc0RhdGFiYXNlWFBDQ29uc3RhbnRzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTY2M0U1QTI0QUVBNzQyMDBDNkEzQjIgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50cy5oICovOyB9OwogCQlDMTcxMENGNzI0QUE2
NDMyMDBEN0MxMTIgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU9ic2VydmVyLm1tIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzE3MTBDRjYyNEFBNjQzMjAw
RDdDMTEyIC8qIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VPYnNlcnZlci5tbSAqLzsgfTsKIAkJQzE4
MTczNjEyMDU4NDI0NzAwREZEQTY1IC8qIERpc3BsYXlMaW5rLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMTgxNzM2MDIwNTg0MjQ3MDBERkRBNjUgLyog
RGlzcGxheUxpbmsuaCAqLzsgfTsKKwkJQzFBMTUyRDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRs
ZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSBDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9p
bnRNZXNzYWdlcy5tbSAqLzsgfTsKIAkJQzFFMTIzQkEyMEExMTU3MzAwMjY0NkY0IC8qIFBERkNv
bnRleHRNZW51LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSBDMUUxMjNCOTIwQTExNTcyMDAyNjQ2RjQgLyogUERGQ29udGV4dE1lbnUuaCAqLzsgfTsKIAkJ
QzUxNzM4ODExMkRGOEY0RjAwRUUzRjQ3IC8qIERyYWdDb250cm9sbGVyQWN0aW9uLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDNTE3Mzg4MDEyREY4RjRG
MDBFRTNGNDcgLyogRHJhZ0NvbnRyb2xsZXJBY3Rpb24uaCAqLzsgfTsKIAkJQzU0MjU2QjUxOEJF
QzE4QzAwREU0MTc5IC8qIFdLRGF0ZVRpbWVJbnB1dENvbnRyb2wuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEM1NDI1NkFGMThCRUMxOEIwMERFNDE3OSAv
KiBXS0RhdGVUaW1lSW5wdXRDb250cm9sLmggKi87IH07CkBAIC01MDM2LDYgKzUwMzcsOCBAQAog
CQlDMTgxNzM2MjIwNTg0NEE5MDBERkRBNjUgLyogRGlzcGxheUxpbmsuY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gRGlzcGxheUxpbmsuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MThGQjUxRDI0MkY5Rjc2MDA3RTk4NzUgLyogV2ViU2xlZXBEaXNhYmxlckNsaWVudC5jcHAgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXZWJTbGVlcERpc2FibGVyQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzE4RkI1MUUyNDJGOUY3NzAwN0U5
ODc1IC8qIFdlYlNsZWVwRGlzYWJsZXJDbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQlDMUExNTJENTI0RTVBMUQyMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5kcG9pbnRNZXNz
YWdlcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBIYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMxQTE1MkQ2MjRFNUEyOUEwMDk3OEM4QiAvKiBIYW5k
bGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzFFMTIz
QjkyMEExMTU3MjAwMjY0NkY0IC8qIFBERkNvbnRleHRNZW51LmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IFBERkNvbnRleHRNZW51Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMxRUQ3MjM3MjRBNTY5MEUwMDNGNkNEMyAvKiBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29j
b2EubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBOZXR3b3JrUHJvY2Vzc1Byb3h5Q29jb2EubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUM1MTczODgwMTJERjhGNEYwMEVFM0Y0NyAv
KiBEcmFnQ29udHJvbGxlckFjdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBEcmFnQ29udHJvbGxlckFjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
ODM4NCw2ICs4Mzg3LDggQEAKIAkJCWNoaWxkcmVuID0gKAogCQkJCUNENDU3MENCMjQ0MEZCMkEw
MEEzRENFQiAvKiBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvci5jcHAgKi8sCiAJCQkJQ0Q0
NTcwQ0EyNDQwRkIyQTAwQTNEQ0VCIC8qIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yLmgg
Ki8sCisJCQkJQzFBMTUyRDUyNEU1QTFEMjAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMuaCAqLywKKwkJCQlDMUExNTJENjI0RTVBMjlBMDA5NzhDOEIgLyogSGFuZGxlWFBDRW5k
cG9pbnRNZXNzYWdlcy5tbSAqLywKIAkJCQlDMTREMzdGQzI0QUNERjQ1MDA3RkYwMTQgLyogTGF1
bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCAqLywKIAkJCQlDMTREMzdGRDI0QUNFMDg2MDA3
RkYwMTQgLyogTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIubW0gKi8sCiAJCQkJNDQ2REM2
NEIyNEEyRDhBRDAwNjFGMzkwIC8qIFBsYXliYWNrU2Vzc2lvbkNvbnRleHRJZGVudGlmaWVyLmgg
Ki8sCkBAIC0xMjc0Miw2ICsxMjc0Nyw3IEBACiAJCQkJQ0RDREM5OUUyNDhGRThEQTAwQTY5NTIy
IC8qIEVuZG93bWVudFN0YXRlVHJhY2tlci5tbSBpbiBTb3VyY2VzICovLAogCQkJCTFBQTU3NjAy
MTQ5NkI5NzkwMEE0RUUwNiAvKiBFdmVudERpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJQ0RBOTNEQjEyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5U
b3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJQzFBMTUy
RDcyNEU1QTI5QTAwOTc4QzhCIC8qIEhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMubW0gaW4gU291
cmNlcyAqLywKIAkJCQkyNzQ5RjY0NDIxNDY1NjFCMDA4MzgwQkYgLyogSW5qZWN0ZWRCdW5kbGVO
b2RlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI3NDlGNjQ1MjE0NjU2MUUwMDgzODBC
RiAvKiBJbmplY3RlZEJ1bmRsZVJhbmdlSGFuZGxlLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJE
OTEzNDQxMjEyQ0Y5RjAwMDEyOEFGRCAvKiBKU05QTWV0aG9kLmNwcCBpbiBTb3VyY2VzICovLApJ
bmRleDogU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLmNwcAkocmV2aXNpb24gMjY1
NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlByb2Nlc3MuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTQsMTAgKzI5NCw2IEBAIHZvaWQgV2ViUHJvY2Vzczo6aW5pdGlhbGl6ZUNv
bm5lY3Rpb24oSVAKIHsKICAgICBBdXhpbGlhcnlQcm9jZXNzOjppbml0aWFsaXplQ29ubmVjdGlv
bihjb25uZWN0aW9uKTsKIAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIGhhbmRsZVhQQ0VuZHBv
aW50TWVzc2FnZXMoKTsKLSNlbmRpZgotCiAgICAgLy8gV2UgY2FsbCBfZXhpdCgpIGRpcmVjdGx5
IGZyb20gdGhlIGJhY2tncm91bmQgcXVldWUgaW4gY2FzZSB0aGUgbWFpbiB0aHJlYWQgaXMgdW5y
ZXNwb25zaXZlCiAgICAgLy8gYW5kIEF1eGlsaWFyeVByb2Nlc3M6OmRpZENsb3NlKCkgZG9lcyBu
b3QgZ2V0IGNhbGxlZC4KICAgICBjb25uZWN0aW9uLT5zZXREaWRDbG9zZU9uQ29ubmVjdGlvbldv
cmtRdWV1ZUNhbGxiYWNrKGNhbGxFeGl0KTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQcm9jZXNzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlByb2Nlc3MuaAkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTIzLDEwICs1MjMsNiBAQCBwcml2YXRl
OgogCiAgICAgYm9vbCBpc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSB7IHJldHVybiBtX3Nlc3Np
b25JRCA/IG1fc2Vzc2lvbklELT5pc0Fsd2F5c09uTG9nZ2luZ0FsbG93ZWQoKSA6IHRydWU7IH0K
IAotI2lmIFBMQVRGT1JNKENPQ09BKQotICAgIHZvaWQgaGFuZGxlWFBDRW5kcG9pbnRNZXNzYWdl
cygpIGNvbnN0OwotI2VuZGlmCi0KICAgICBSZWZQdHI8V2ViQ29ubmVjdGlvblRvVUlQcm9jZXNz
PiBtX3dlYkNvbm5lY3Rpb247CiAKICAgICBIYXNoTWFwPFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVy
LCBSZWZQdHI8V2ViUGFnZT4+IG1fcGFnZU1hcDsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL0hhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMuaAko
bm9uZXhpc3RlbnQpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvY29jb2EvSGFuZGxlWFBD
RW5kcG9pbnRNZXNzYWdlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzQgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgPHd0Zi9zcGkvZGFyd2luL1hQQ1NQSS5o
PgorCituYW1lc3BhY2UgV2ViS2l0IHsKKwordm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2Vz
KHhwY19vYmplY3RfdCBldmVudCk7CisKK30KSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzLm1tCShu
b25leGlzdGVudCkKKysrIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9IYW5kbGVYUENF
bmRwb2ludE1lc3NhZ2VzLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTUgQEAKKy8qCisg
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyAqLworCisjaW1wb3J0ICJjb25maWcuaCIKKyNpbXBvcnQgIkhhbmRsZVhQQ0VuZHBvaW50TWVz
c2FnZXMuaCIKKworI2ltcG9ydCAiTGF1bmNoU2VydmljZXNEYXRhYmFzZU1hbmFnZXIuaCIKKyNp
bXBvcnQgIkxhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHMuaCIKKyNpbXBvcnQgIlhQ
Q0VuZHBvaW50LmgiCisKKyNpbXBvcnQgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKwordm9pZCBoYW5kbGVYUENFbmRwb2ludE1lc3NhZ2VzKHhwY19vYmplY3Rf
dCBldmVudCkKK3sKKyAgICBpZiAoeHBjX2dldF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9ESUNU
SU9OQVJZKQorICAgICAgICByZXR1cm47CisKKyNpZiBIQVZFKExTREFUQUJBU0VDT05URVhUKQor
ICAgIFN0cmluZyBtZXNzYWdlTmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQs
IFhQQ0VuZHBvaW50Ojp4cGNNZXNzYWdlTmFtZUtleSk7CisgICAgaWYgKG1lc3NhZ2VOYW1lLmlz
RW1wdHkoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgaWYgKG1lc3NhZ2VOYW1lID09IExhdW5j
aFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VY
UENFbmRwb2ludE1lc3NhZ2VOYW1lKSB7CisgICAgICAgIGF1dG8gZW5kcG9pbnQgPSB4cGNfZGlj
dGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsIExhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFu
dHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VYUENFbmRwb2ludE5hbWVLZXkpOworICAgICAg
ICBMYXVuY2hTZXJ2aWNlc0RhdGFiYXNlTWFuYWdlcjo6c2luZ2xldG9uKCkuc2V0RW5kcG9pbnQo
ZW5kcG9pbnQpOworICAgICAgICByZXR1cm47CisgICAgfQorI2VuZGlmCit9CisKK30KSW5kZXg6
IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9jb2NvYS9XZWJQcm9jZXNzQ29jb2EubW0KPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dlYlByb2Nlc3NDb2NvYS5t
bQkocmV2aXNpb24gMjY1NjExKQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL2NvY29hL1dl
YlByb2Nlc3NDb2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtMjYsOCArMjYsNiBAQAogI2ltcG9y
dCAiY29uZmlnLmgiCiAjaW1wb3J0ICJXZWJQcm9jZXNzLmgiCiAKLSNpbXBvcnQgIkxhdW5jaFNl
cnZpY2VzRGF0YWJhc2VNYW5hZ2VyLmgiCi0jaW1wb3J0ICJMYXVuY2hTZXJ2aWNlc0RhdGFiYXNl
WFBDQ29uc3RhbnRzLmgiCiAjaW1wb3J0ICJMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuaCIK
ICNpbXBvcnQgIkxvZ0luaXRpYWxpemF0aW9uLmgiCiAjaW1wb3J0ICJMb2dnaW5nLmgiCkBAIC00
OSw3ICs0Nyw2IEBACiAjaW1wb3J0ICJXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2ltcG9y
dCAiV2ViU2xlZXBEaXNhYmxlckNsaWVudC5oIgogI2ltcG9ydCAiV2Vic2l0ZURhdGFTdG9yZVBh
cmFtZXRlcnMuaCIKLSNpbXBvcnQgIlhQQ0VuZHBvaW50LmgiCiAjaW1wb3J0IDxKYXZhU2NyaXB0
Q29yZS9Db25maWdGaWxlLmg+CiAjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9PcHRpb25zLmg+CiAj
aW1wb3J0IDxXZWJDb3JlL0FWQXNzZXRNSU1FVHlwZUNhY2hlLmg+CkBAIC0xNjcsNDEgKzE2NCw2
IEBAIHN0YXRpYyBpZCBOU0FwcGxpY2F0aW9uQWNjZXNzaWJpbGl0eUZvY3UKIH0KICNlbmRpZgog
Ci12b2lkIFdlYlByb2Nlc3M6OmhhbmRsZVhQQ0VuZHBvaW50TWVzc2FnZXMoKSBjb25zdAotewot
ICAgIGlmICghcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKSkKLSAgICAgICAgcmV0dXJuOwotCi0g
ICAgYXV0byBjb25uZWN0aW9uID0gcGFyZW50UHJvY2Vzc0Nvbm5lY3Rpb24oKS0+eHBjQ29ubmVj
dGlvbigpOwotCi0gICAgaWYgKCFjb25uZWN0aW9uKQotICAgICAgICByZXR1cm47Ci0KLSAgICBS
RUxFQVNFX0FTU0VSVCh4cGNfZ2V0X3R5cGUoY29ubmVjdGlvbikgPT0gWFBDX1RZUEVfQ09OTkVD
VElPTik7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9zdXNwZW5kKGNvbm5lY3Rpb24pOwotCi0gICAg
eHBjX2Nvbm5lY3Rpb25fc2V0X3RhcmdldF9xdWV1ZShjb25uZWN0aW9uLCBkaXNwYXRjaF9nZXRf
Z2xvYmFsX3F1ZXVlKERJU1BBVENIX1FVRVVFX1BSSU9SSVRZX0RFRkFVTFQsIDApKTsKLSAgICB4
cGNfY29ubmVjdGlvbl9zZXRfZXZlbnRfaGFuZGxlcihjb25uZWN0aW9uLCBeKHhwY19vYmplY3Rf
dCBldmVudCkgewotICAgICAgICBpZiAoeHBjX2dldF90eXBlKGV2ZW50KSAhPSBYUENfVFlQRV9E
SUNUSU9OQVJZKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIFN0cmluZyBtZXNzYWdl
TmFtZSA9IHhwY19kaWN0aW9uYXJ5X2dldF9zdHJpbmcoZXZlbnQsIFhQQ0VuZHBvaW50Ojp4cGNN
ZXNzYWdlTmFtZUtleSk7Ci0gICAgICAgIGlmIChtZXNzYWdlTmFtZS5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSNpZiBIQVZFKExTREFUQUJBU0VDT05URVhUKQotICAgICAgICBp
ZiAobWVzc2FnZU5hbWUgPT0gTGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0NvbnN0YW50czo6eHBj
TGF1bmNoU2VydmljZXNEYXRhYmFzZVhQQ0VuZHBvaW50TWVzc2FnZU5hbWUpIHsKLSAgICAgICAg
ICAgIGF1dG8gZW5kcG9pbnQgPSB4cGNfZGljdGlvbmFyeV9nZXRfdmFsdWUoZXZlbnQsIExhdW5j
aFNlcnZpY2VzRGF0YWJhc2VYUENDb25zdGFudHM6OnhwY0xhdW5jaFNlcnZpY2VzRGF0YWJhc2VY
UENFbmRwb2ludE5hbWVLZXkpOwotICAgICAgICAgICAgTGF1bmNoU2VydmljZXNEYXRhYmFzZU1h
bmFnZXI6OnNpbmdsZXRvbigpLnNldEVuZHBvaW50KGVuZHBvaW50KTsKLSAgICAgICAgICAgIHJl
dHVybjsKLSAgICAgICAgfQotI2VuZGlmCi0gICAgfSk7Ci0KLSAgICB4cGNfY29ubmVjdGlvbl9y
ZXN1bWUoY29ubmVjdGlvbik7Ci19Ci0KIHZvaWQgV2ViUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFs
aXplV2ViUHJvY2VzcyhXZWJQcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJiBwYXJhbWV0ZXJzKQog
ewogICAgIGlmIChwYXJhbWV0ZXJzLm1vYmlsZUdlc3RhbHRFeHRlbnNpb25IYW5kbGUpIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>