<?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>225489</bug_id>
          
          <creation_ts>2021-05-06 15:37:48 -0700</creation_ts>
          <short_desc>[css-flexbox] Flex item construction may affect sibling flex item height computation</short_desc>
          <delta_ts>2021-05-13 08:00:23 -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>Layout and Rendering</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>
          <dependson>225618</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cgarcia</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gsnedders</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
    
    <cc>youennf</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1757673</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-06 15:37:48 -0700</bug_when>
    <thetext>e.g.

&lt;!DOCTYPE html&gt;
&lt;div style=&quot;height: 100px; position: relative; display: flex; flex-direction: column;&quot;&gt;
  &lt;div style=&quot;background-color: yellow; height: 50px;&quot;&gt;&lt;div style=&quot;height: 100%; background-color: green&quot;&gt;&lt;/div&gt;&lt;/div&gt;
  &lt;div style=&quot;height: 50%; background-color: green&quot;&gt;&lt;/div&gt;
&lt;/div&gt;

vs.

&lt;!DOCTYPE html&gt;
&lt;div style=&quot;height: 100px; position: relative; display: flex; flex-direction: column;&quot;&gt;
  &lt;div style=&quot;height: 50%; background-color: green&quot;&gt;&lt;/div&gt;
  &lt;div style=&quot;background-color: yellow; height: 50px;&quot;&gt;&lt;div style=&quot;height: 100%; background-color: green&quot;&gt;&lt;/div&gt;&lt;/div&gt;
&lt;/div&gt;

these cases should match.

&lt;rdar://75050281&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757735</commentid>
    <comment_count>1</comment_count>
      <attachid>427962</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-06 17:20:28 -0700</bug_when>
    <thetext>Created attachment 427962
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757814</commentid>
    <comment_count>2</comment_count>
      <attachid>427962</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-07 02:20:39 -0700</bug_when>
    <thetext>Comment on attachment 427962
Patch

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

Good catch! 

I think we can fix it in a slightly better way though. The actual issue IMO is that we&apos;re updating m_hasDefiniteHeight when we should not. That is controlled by the infamous m_inLayout bool which has been quite confusing (I added some bugs due to it in the past) and with a superwide scope. My proposal to fix this issue would be:
1- Remove the m_inLayout handling from ::layoutBlock()
2- Rename m_inLayout to m_inFlexItemsConstruction for example (should be only used in canComputePercentageFlexBasis())
3- Wrap the loop that creates the flex items with a pair of braces to define a new scope and something like:
SetForScope&lt;bool&gt; inFlexItemConstruction(m_inFlexItemsConstruction, true);
4- Remove the m_hasDefiniteHeight = SizeDefiniteness::Unknown; from ::layoutFlexItems as it won&apos;t be needed (it&apos;s properly reset by the end of layoutBlock())

Does it make sense?

&gt; LayoutTests/ChangeLog:9
&gt; +        * fast/flexbox/flex-column-with-percent-height-descendants.html: Added.

Nice test, WDYT about uploading it to the WPT directory instead? I think it&apos;d serve well to all the other engines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757858</commentid>
    <comment_count>3</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 07:26:05 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #2)
&gt; Comment on attachment 427962 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=427962&amp;action=review
&gt; 
&gt; Good catch! 
&gt; 
&gt; I think we can fix it in a slightly better way though. The actual issue IMO
&gt; is that we&apos;re updating m_hasDefiniteHeight when we should not. 
Right, that&apos;s why the reset hack is right here after the constructFlexItem call (and the comment trying to explain it).
In this patch I was just fixing the hack. I was thinking of removing it but since this part of the code has been the source of regressions lately, I decided not to.
But you are correct, we should do that and in case of a new regression we could always fall back to this version.
The _actual_actual_ issue here is the way we handle the percent height resolution (gOverridingContainingBlockContentLogicalHeightMap) and that we have to scope certain calls to _not_ update certain states indirectly. This is due to the fact that in rendering we call the containing block chain for constraints (in LFC, the constrains are pushed down to the geometry functions, so whenever we try to resolve some property (width/height etc) the constraints are readily available).


&gt; controlled by the infamous m_inLayout bool which has been quite confusing (I
&gt; added some bugs due to it in the past) and with a superwide scope. My
&gt; proposal to fix this issue would be:
&gt; 1- Remove the m_inLayout handling from ::layoutBlock()
&gt; 2- Rename m_inLayout to m_inFlexItemsConstruction for example (should be
&gt; only used in canComputePercentageFlexBasis())
&gt; 3- Wrap the loop that creates the flex items with a pair of braces to define
&gt; a new scope and something like:
&gt; SetForScope&lt;bool&gt; inFlexItemConstruction(m_inFlexItemsConstruction, true);
&gt; 4- Remove the m_hasDefiniteHeight = SizeDefiniteness::Unknown; from
&gt; ::layoutFlexItems as it won&apos;t be needed (it&apos;s properly reset by the end of
&gt; layoutBlock())
&gt; 
&gt; Does it make sense?
Yeah, I am happy to remove m_inLayout. It does not do any good.
Thanks for the review.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757884</commentid>
    <comment_count>4</comment_count>
      <attachid>428002</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 09:11:55 -0700</bug_when>
    <thetext>Created attachment 428002
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757971</commentid>
    <comment_count>5</comment_count>
      <attachid>428002</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-07 13:00:43 -0700</bug_when>
    <thetext>Comment on attachment 428002
Patch

Nice!. Still think the test makes sense in WPT.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757974</commentid>
    <comment_count>6</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-07 13:06:51 -0700</bug_when>
    <thetext>(In reply to zalan from comment #3)
&gt; &gt; I think we can fix it in a slightly better way though. The actual issue IMO
&gt; &gt; is that we&apos;re updating m_hasDefiniteHeight when we should not. 
&gt; Right, that&apos;s why the reset hack is right here after the constructFlexItem
&gt; call (and the comment trying to explain it).
&gt; In this patch I was just fixing the hack. I was thinking of removing it but
&gt; since this part of the code has been the source of regressions lately, I
&gt; decided not to.
&gt; But you are correct, we should do that and in case of a new regression we
&gt; could always fall back to this version.
&gt; The _actual_actual_ issue here is the way we handle the percent height
&gt; resolution (gOverridingContainingBlockContentLogicalHeightMap) and that we
&gt; have to scope certain calls to _not_ update certain states indirectly. This
&gt; is due to the fact that in rendering we call the containing block chain for
&gt; constraints (in LFC, the constrains are pushed down to the geometry
&gt; functions, so whenever we try to resolve some property (width/height etc)
&gt; the constraints are readily available).

That&apos;s nice, I guess it&apos;d make the computation of definite/indefinite sizes much easier. And if those constrains could be set at will that would be a massive win for layout systems like grid or flex, where the container sets specific constrains (the overriding sizes).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1757984</commentid>
    <comment_count>7</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 13:47:47 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #5)
&gt; Comment on attachment 428002 [details]
&gt; Patch
&gt; 
&gt; Nice!. Still think the test makes sense in WPT.
Oh right. I totally forgot about that. Thanks for reminding me (and thanks for the review)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758073</commentid>
    <comment_count>8</comment_count>
      <attachid>428055</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 16:22:00 -0700</bug_when>
    <thetext>Created attachment 428055
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758074</commentid>
    <comment_count>9</comment_count>
      <attachid>428056</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 16:23:00 -0700</bug_when>
    <thetext>Created attachment 428056
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758075</commentid>
    <comment_count>10</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-07 16:23:19 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758078</commentid>
    <comment_count>11</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 16:24:38 -0700</bug_when>
    <thetext>Sam, could you help me figure out the process here (re: WPT)?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758080</commentid>
    <comment_count>12</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 16:25:06 -0700</bug_when>
    <thetext>(In reply to EWS Watchlist from comment #10)
&gt; This patch modifies the imported WPT tests. Please ensure that any changes
&gt; on the tests (not coming from a WPT import) are exported to WPT. Please see
&gt; https://trac.webkit.org/wiki/WPTExportProcess
oh there it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758082</commentid>
    <comment_count>13</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 16:28:58 -0700</bug_when>
    <thetext>(In reply to zalan from comment #12)
&gt; (In reply to EWS Watchlist from comment #10)
&gt; &gt; This patch modifies the imported WPT tests. Please ensure that any changes
&gt; &gt; on the tests (not coming from a WPT import) are exported to WPT. Please see
&gt; &gt; https://trac.webkit.org/wiki/WPTExportProcess
&gt; oh there it is.

&gt; 6. Land the PR in WPT
&gt; 7. Finally land the patch in WebKit
6 needs to happen first?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758087</commentid>
    <comment_count>14</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 16:32:22 -0700</bug_when>
    <thetext>alright, I am going to land the original patch. will deal with WPT later.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758088</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-07 16:33:47 -0700</bug_when>
    <thetext>ChangeLog entry in LayoutTests/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758090</commentid>
    <comment_count>16</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-07 16:37:06 -0700</bug_when>
    <thetext>(In reply to zalan from comment #14)
&gt; alright, I am going to land the original patch. will deal with WPT later.

The export to WPT is unreliable in my experience. What I normally do is to create a PR in WPT and after it&apos;s merged then I import the tests in WebKit using import-w3c-tests. It&apos;s a bit clumsy but it works.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758135</commentid>
    <comment_count>17</comment_count>
      <attachid>428069</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 18:46:50 -0700</bug_when>
    <thetext>Created attachment 428069
[fast-cq] Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758137</commentid>
    <comment_count>18</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-07 18:47:41 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #16)
&gt; (In reply to zalan from comment #14)
&gt; &gt; alright, I am going to land the original patch. will deal with WPT later.
&gt; 
&gt; The export to WPT is unreliable in my experience. What I normally do is to
&gt; create a PR in WPT and after it&apos;s merged then I import the tests in WebKit
&gt; using import-w3c-tests. It&apos;s a bit clumsy but it works.
Thanks for the heads up. Will create a PR for this.
and thanks for the review again.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758138</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-07 18:48:32 -0700</bug_when>
    <thetext>Committed r277222 (237493@main): &lt;https://commits.webkit.org/237493@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428069.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758454</commentid>
    <comment_count>20</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-05-10 03:05:30 -0700</bug_when>
    <thetext>I&apos;m getting a crash after this change in matrix web application with epiphany. It&apos;s a release assert, see the bt:

#0  0x00007f580845cc2e in WTFCrash () from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.1.so.0
#1  0x00007f580bcb7305 in WebCore::RenderFlexibleBox::computeInnerFlexBaseSizeForChild(WebCore::RenderBox&amp;, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#2  0x00007f580bcc6463 in WebCore::RenderFlexibleBox::constructFlexItems(bool) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#3  0x00007f580bcc7729 in WebCore::RenderFlexibleBox::layoutFlexItems(bool) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#4  0x00007f580bcc8067 in WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#5  0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#6  0x00007f580bcc372f in WebCore::RenderFlexibleBox::layoutAndPlaceChildren(WebCore::LayoutUnit&amp;, WTF::Vector&lt;WebCore::FlexItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit, bool, WTF::Vector&lt;WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#7  0x00007f580bcc79ba in WebCore::RenderFlexibleBox::layoutFlexItems(bool) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#8  0x00007f580bcc8067 in WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#9  0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#10 0x00007f580bcc372f in WebCore::RenderFlexibleBox::layoutAndPlaceChildren(WebCore::LayoutUnit&amp;, WTF::Vector&lt;WebCore::FlexItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit, bool, WTF::Vector&lt;WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#11 0x00007f580bcc79ba in WebCore::RenderFlexibleBox::layoutFlexItems(bool) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#12 0x00007f580bcc8067 in WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#13 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#14 0x00007f580bcc372f in WebCore::RenderFlexibleBox::layoutAndPlaceChildren(WebCore::LayoutUnit&amp;, WTF::Vector&lt;WebCore::FlexItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit, bool, WTF::Vector&lt;WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#15 0x00007f580bcc79ba in WebCore::RenderFlexibleBox::layoutFlexItems(bool) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#16 0x00007f580bcc8067 in WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#17 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#18 0x00007f580bcc372f in WebCore::RenderFlexibleBox::layoutAndPlaceChildren(WebCore::LayoutUnit&amp;, WTF::Vector&lt;WebCore::FlexItem, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit, bool, WTF::Vector&lt;WebCore::RenderFlexibleBox::LineContext, 0ul, WTF::CrashOnOverflow, 16ul, WTF::FastMalloc&gt;&amp;, WebCore::LayoutUnit) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#19 0x00007f580bcc79ba in WebCore::RenderFlexibleBox::layoutFlexItems(bool) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#20 0x00007f580bcc8067 in WebCore::RenderFlexibleBox::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#21 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#22 0x00007f580bc42b2f in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#23 0x00007f580bc467dd in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#24 0x00007f580bc4979d in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#25 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#26 0x00007f580bc42b2f in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#27 0x00007f580bc467dd in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#28 0x00007f580bc4979d in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#29 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#30 0x00007f580bc42b2f in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#31 0x00007f580bc467dd in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#32 0x00007f580bc4979d in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#33 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#34 0x00007f580bc42b2f in WebCore::RenderBlockFlow::layoutBlockChild(WebCore::RenderBox&amp;, WebCore::RenderBlockFlow::MarginInfo&amp;, WebCore::LayoutUnit&amp;, WebCore::LayoutUnit&amp;) ()
   from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
--Type &lt;RET&gt; for more, q to quit, c to continue without paging--
#35 0x00007f580bc467dd in WebCore::RenderBlockFlow::layoutBlockChildren(bool, WebCore::LayoutUnit&amp;) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#36 0x00007f580bc4979d in WebCore::RenderBlockFlow::layoutBlock(bool, WebCore::LayoutUnit) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#37 0x00007f580bc201ea in WebCore::RenderBlock::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#38 0x00007f580bdff371 in WebCore::RenderView::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#39 0x00007f580b87648f in WebCore::FrameViewLayoutContext::layout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#40 0x00007f580b197082 in WebCore::Document::updateLayout() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#41 0x00007f580b197892 in WebCore::Document::updateLayoutIgnorePendingStylesheets(WebCore::Document::RunPostLayoutTasks) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#42 0x00007f580b1b38b8 in WebCore::Element::scrollTop() () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#43 0x00007f580a368611 in WebCore::jsElement_scrollTop(JSC::JSGlobalObject*, long, JSC::PropertyName) () from /home/cgarcia/gnome/lib/libwebkit2gtk-4.1.so.0
#44 0x00007f580816d07c in JSC::PropertySlot::customGetter(JSC::JSGlobalObject*, JSC::PropertyName) const () from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.1.so.0
#45 0x00007f5807d96e3b in JSC::LLInt::performLLIntGetByID(JSC::Instruction const*, JSC::CodeBlock*, JSC::JSGlobalObject*, JSC::JSValue, JSC::Identifier const&amp;, JSC::GetByIdModeMetadata&amp;) ()
   from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.1.so.0
#46 0x00007f5807d97c34 in llint_slow_path_get_by_id () from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.1.so.0
#47 0x00007f580726842a in llint_op_get_by_id () from /home/cgarcia/gnome/lib/libjavascriptcoregtk-4.1.so.0
#48 0x00007f579020cae0 in ?? ()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758493</commentid>
    <comment_count>21</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-10 08:23:06 -0700</bug_when>
    <thetext>It sounds like some code was relying on incorrect state before. Any chance of having the test content/reduction? Thanks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758504</commentid>
    <comment_count>22</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-10 08:59:51 -0700</bug_when>
    <thetext>(In reply to zalan from comment #21)
&gt; It sounds like some code was relying on incorrect state before. Any chance
&gt; of having the test content/reduction? Thanks.

I&apos;ll try to get more data, as it crashes in an internal Igalia url</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758511</commentid>
    <comment_count>23</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-10 09:11:49 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #22)
&gt; (In reply to zalan from comment #21)
&gt; &gt; It sounds like some code was relying on incorrect state before. Any chance
&gt; &gt; of having the test content/reduction? Thanks.
&gt; 
&gt; I&apos;ll try to get more data, as it crashes in an internal Igalia url
Thanks. Appreciate it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758555</commentid>
    <comment_count>24</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-10 11:09:24 -0700</bug_when>
    <thetext>(In reply to zalan from comment #23)
&gt; (In reply to Sergio Villar Senin from comment #22)
&gt; &gt; (In reply to zalan from comment #21)
&gt; &gt; &gt; It sounds like some code was relying on incorrect state before. Any chance
&gt; &gt; &gt; of having the test content/reduction? Thanks.
&gt; &gt; 
&gt; &gt; I&apos;ll try to get more data, as it crashes in an internal Igalia url
&gt; Thanks. Appreciate it!

I cannot easily get a test case, but I think I know where the problem comes from. It&apos;s basically caused by the m_inLayout removal.

canComputePercentageFlexBasis() assumes now (after the patch for this bug) that if we are not computing the flex base size then it&apos;s because we&apos;re laying out ourselves and thus we should update the m_hasDefiniteHeight value.

That&apos;s clearly wrong because canComputePercentageFlexBasis() can be called from useChildOverridingMainSizeForPercentageResolution() which can be called at any time by availableLogicalHeightUsing(). Updating the m_hasDefiniteHeight while we are not laying out ourselves could easily lead to false positives. If that happens then the childMainSizeIsDefinite() would return true for flex containers where the main size is the child block axis so when executing

    if (childMainSizeIsDefinite(child, flexBasis))
        return std::max(0_lu, computeMainAxisExtentForChild(child, MainOrPreferredSize, flexBasis).value());

then it&apos;ll crash because computeMainAxisExtentForChild() could return nullopt. That must not happen because we have checked that childMainSizeIsDefinite(), but as we have seen, a wrong m_hasDefiniteHeight could deceive us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758665</commentid>
    <comment_count>25</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-05-10 14:57:44 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 225618</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758920</commentid>
    <comment_count>26</comment_count>
      <attachid>428280</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-11 09:10:35 -0700</bug_when>
    <thetext>Created attachment 428280
Test reduction for the crash after the fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1758974</commentid>
    <comment_count>27</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-11 11:00:23 -0700</bug_when>
    <thetext>so, right, the issue with the patch is that the m_inFlexItemConstruction flag does not exactly cover the !m_inLayout cases and we end up setting the m_hasDefiniteHeight when !m_inFlexItemConstruction but also not in layout. I&apos;ll go with my original patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759003</commentid>
    <comment_count>28</comment_count>
      <attachid>428301</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-05-11 11:22:25 -0700</bug_when>
    <thetext>Created attachment 428301
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759004</commentid>
    <comment_count>29</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-11 11:23:14 -0700</bug_when>
    <thetext>Could you check if you are still seeing the crash with this patch applied, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759579</commentid>
    <comment_count>30</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2021-05-13 01:29:44 -0700</bug_when>
    <thetext>(In reply to zalan from comment #29)
&gt; Could you check if you are still seeing the crash with this patch applied,
&gt; please?

No crashes here. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759619</commentid>
    <comment_count>31</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 04:09:33 -0700</bug_when>
    <thetext>Great! Thanks for confirming it!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759684</commentid>
    <comment_count>32</comment_count>
      <attachid>428301</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2021-05-13 07:20:03 -0700</bug_when>
    <thetext>Comment on attachment 428301
Patch

Let&apos;s see if we can eventually manage to get rid of m_inLayout in the future. In the meantime let&apos;s make it work correctly at least.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759689</commentid>
    <comment_count>33</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2021-05-13 07:52:07 -0700</bug_when>
    <thetext>(In reply to Sergio Villar Senin from comment #32)
&gt; Comment on attachment 428301 [details]
&gt; Patch
&gt; 
&gt; Let&apos;s see if we can eventually manage to get rid of m_inLayout in the
&gt; future. In the meantime let&apos;s make it work correctly at least.
Sounds like a plan. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1759691</commentid>
    <comment_count>34</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-05-13 08:00:20 -0700</bug_when>
    <thetext>Committed r277435 (237683@main): &lt;https://commits.webkit.org/237683@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 428301.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>427962</attachid>
            <date>2021-05-06 17:20:28 -0700</date>
            <delta_ts>2021-05-07 09:11:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225489-20210506172027.patch</filename>
            <type>text/plain</type>
            <size>5949</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uN2Q1MzlhMjczNzM4ODJhZjQ2NTQzMWVlOTI1YjMw
MDgzNjZmOGYyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA1LTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94XSBGbGV4
IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVpZ2h0IGNv
bXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGbGV4IGl0ZW0gY29uc3RydWN0aW9uIHRyaWdnZXJzIGxheW91dCBib3RoIG9uIHRoZSBmbGV4
IGl0ZW0gYW5kIG9uIGl0cyBkZXNjZW5kYW50cyAoc2VlIGNvbnN0cnVjdEZsZXhJdGVtKS4KKyAg
ICAgICAgRHVyaW5nIHRoaXMgbGF5b3V0IGEgcGVyY2VudCBoZWlnaHQgZGVzY2VuZGFudCBtYXkg
aW5kaXJlY3RseSBzZXQgYW4gaW5jb3JyZWN0IHZhbHVlIG9uIHRoZSBmbGV4IGNvbnRhaW5lcidz
IAorICAgICAgICBtX2hhc0RlZmluaXRlSGVpZ2h0ICh0aGlzIGlzIGR1ZSB0byB0aGUgb2RkIHdh
eSB3ZSBjaG9vc2UgdG8gcmVzb2x2ZSBwZXJjZW50IGhlaWdodCB2YWx1ZXMgb24gdGhlIGFuY2Vz
dG9yIGNoYWluLCAKKyAgICAgICAgc2VlIHNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpKS4KKyAgICAgICAgTm93IHRoaXMgaW5jb3Jy
ZWN0IG1faGFzRGVmaW5pdGVIZWlnaHQgdmFsdWUgKEluZGVmaW5pdGUpIGNhdXNlcyB0aGUgbmV4
dCBzaWJsaW5nJ3MgKGFsc28pIHBlcmNlbnQgaGVpZ2h0CisgICAgICAgIHJlc29sdmUgZmFpbCBh
cyBpdCB0ZWxscyB0aGUgZmxleCBpdGVtIHRoYXQgdGhlIGZsZXggY29udGFpbmVyIGNhbid0IGhl
bHAgd2l0aCByZXNvbHZpbmcgdGhlIHBlcmNlbnQgaGVpZ2h0IHZhbHVlLgorICAgICAgICBBcyB0
aGUgcmVzdWx0IHdlIGVuZCB1cCB3aXRoIGFuIGluY29ycmVjdCwgMHB4IGhlaWdodCB2YWx1ZSBm
b3IgdGhpcyBzaWJsaW5nLgorICAgICAgICBlLmcuCisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDogMTAwcHg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ij4KKyAgICAg
ICAgICA8ZGl2IGlkPWZsZXhJdGVtQSBzdHlsZT0iaGVpZ2h0OiA1MHB4OyI+PGRpdiBzdHlsZT0i
aGVpZ2h0OiAxMDAlOyI+PC9kaXY+PC9kaXY+CisgICAgICAgICAgPGRpdiBpZD1mbGV4SXRlbUIg
c3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICBCeSB0
aGUgdGltZSB3ZSBnZXQgdG8gdGhlIGNvbnN0cnVjdGlvbiBvZiBmbGV4SXRlbUIsIHRoZSBSZW5k
ZXJGbGV4aWJsZUJveCdzIChmbGV4IGNvbnRhaW5lcikgbV9oYXNEZWZpbml0ZUhlaWdodAorICAg
ICAgICBpcyBhbHJlYWR5IChhbmQgaW5jb3JyZWN0bHkpIHNldCB0byBJbmRlZmluaXRlIGFzIHRo
ZSByZXN1bHQgb2YgdXMgdHJ5aW5nIHRvIHJlc29sdmUgZmxleEl0ZW1BJ3MgZGVzY2VuZGFudCBo
ZWlnaHQgcGVyY2VudGFnZS4KKyAgICAgICAgVGhpcyBJbmRlZmluaXRlIHZhbHVlIG1ha2VzIHRo
ZSBmbGV4SXRlbUIncyBoZWlnaHQgcmVzb2x1dGlvbiBmYWlsIGFzIHdlIGJlbGlldmUgdGhhdCB0
aGUgZmxleCBjb250YWluZXIgaGFzIGluZGVmaW5pdGUgaGVpZ2h0CisgICAgICAgIGUuZyAiaGVp
Z2h0OiBhdXRvIiwgd2hpbGUgaXQgaXMgY2xlYXJseSByZXNvbHZhYmxlICg1MCUgb2YgMTAwcHgp
LgorICAgICAgICBOb3cgaWYgd2UgZmxpcCB0aGUgb3JkZXIgYW5kIGZsZXhJdGVtQiBjb21lcyBm
aXJzdCwgdGhlIHRlc3QgY2FzZSBwYXNzZXMgZmluZS4KKyAgICAgICAgSXQgaXMgdmVyeSB1bmZv
cnR1bmF0ZSB0aGF0IHNvbWUgZGVzY2VuZGFudCBoZWlnaHQgcmVzb2x2aW5nIHByb2Nlc3MgY2Fu
IHRyaWdnZXIgYSBzdGF0ZSBjaGFuZ2Ugb24gdGhlIGFuY2VzdG9yIFJlbmRlckZsZXhpYmxlQm94
LCBidXQKKyAgICAgICAgZml4aW5nIGl0IHdvdWxkIGNlcnRhaW5seSByZXF1aXJlIHNvbWUgc3Vi
c3RhbnRpYWwgYXJjaGl0ZWN0dXJhbCBjaGFuZ2UuCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHdl
IGp1c3QgcmVzZXQgdGhlIG1faGFzRGVmaW5pdGVIZWlnaHQgZmxhZyBpbnNpZGUgdGhlIGxvb3Ag
dG8gZW5zdXJlIHRoYXQgZWFjaCBmbGV4IGl0ZW0KKyAgICAgICAgc3RhcnRzIHdpdGggYSBmcmVz
aCBoZWlnaHQgcGVyY2VudCByZXNvbHZlIHN0YXRlLiAKKworICAgICAgICBUZXN0OiBmYXN0L2Zs
ZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6CisKIDIwMjEtMDUtMDUg
IEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtNU0Vd
W0dTdHJlYW1lcl0gV2ViS2l0TWVkaWFTcmMgcmV3b3JrIHYyCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAppbmRleCAyMjliNjkzZGYxOTdmZmNiZTI2
OTAxYjg4YWIyNTlhYzMwMDUxZjI1Li41MThmMWU2OWE4YjNhZTc2MjgzYTNhNzY3MTQ2YmYxMTdm
ODYyNjYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKQEAgLTk3NSwxMCArOTc1LDkgQEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0
RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICB9CiAgICAgICAgIGFsbEl0ZW1zLmFwcGVuZChjb25zdHJ1Y3RGbGV4SXRlbSgqY2hp
bGQsIHJlbGF5b3V0Q2hpbGRyZW4pKTsKKyAgICAgICAgLy8gY29uc3RydWN0RmxleEl0ZW0oKSBt
aWdodCBzZXQgdGhlIG92ZXJyaWRlIGNvbnRhaW5pbmcgYmxvY2sgaGVpZ2h0IHNvIGFueSB2YWx1
ZSBjYWNoZWQgZm9yIGRlZmluaXRlbmVzcyBtaWdodCBiZSBpbmNvcnJlY3QuCisgICAgICAgIG1f
aGFzRGVmaW5pdGVIZWlnaHQgPSBTaXplRGVmaW5pdGVuZXNzOjpVbmtub3duOwogICAgIH0KLQot
ICAgIC8vIGNvbnN0cnVjdEZsZXhJdGVtKCkgbWlnaHQgc2V0IHRoZSBvdmVycmlkZSBjb250YWlu
aW5nIGJsb2NrIGhlaWdodCBzbyBhbnkgdmFsdWUgY2FjaGVkIGZvciBkZWZpbml0ZW5lc3MgbWln
aHQgYmUgaW5jb3JyZWN0LgotICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgPSBTaXplRGVmaW5pdGVu
ZXNzOjpVbmtub3duOwogICAgIAogICAgIGNvbnN0IExheW91dFVuaXQgbGluZUJyZWFrTGVuZ3Ro
ID0gbWFpbkF4aXNDb250ZW50RXh0ZW50KExheW91dFVuaXQ6Om1heCgpKTsKICAgICBMYXlvdXRV
bml0IGdhcEJldHdlZW5JdGVtcyA9IGNvbXB1dGVHYXAoR2FwVHlwZTo6QmV0d2Vlbkl0ZW1zKTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCA3MzdmNGVlZTk0NmNjZDUxZTQ1ZmUzMWYzMGRkZjg2MWFlNjA1MTFmLi42ZTU5OTM2
MGRmMzBjMGEzMGQ1MTVjMDI2NmE0MzdmZTY2ZDVlZGM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAK
KzIwMjEtMDUtMDYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBb
Y3NzLWZsZXhib3hdIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gbWF5IGFmZmVjdCBzaWJsaW5nIGZs
ZXggaXRlbSBoZWlnaHQgY29tcHV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIyNTQ4OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2Vu
dC1oZWlnaHQtZGVzY2VuZGFudHMtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFz
dC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMuaHRt
bDogQWRkZWQuCisKIDIwMjEtMDUtMDUgIEFsaWNpYSBCb3lhIEdhcmPDrWEgIDxhYm95YUBpZ2Fs
aWEuY29tPgogCiAgICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gV2ViS2l0TWVkaWFTcmMgcmV3b3Jr
IHYyCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0
aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMt
ZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jNDJiNWFlOTc4N2I1YTAzMDFlYjk4ZjFkMDVjYWVm
OTVlMWZjYmQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2Zs
ZXgtY29sdW1uLXdpdGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMtZXhwZWN0ZWQuaHRtbApA
QCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPgorPHN0eWxlPgorZGl2IHsKKyAgaGVpZ2h0
OiAxMDBweDsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9Cis8L3N0eWxlPgorPGRpdj48
L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13
aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zs
ZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjc2OGRjNjllYWJkNTBhZTYwNmYwODYxNmNlZTQ4ODgxOTkxMzZlMjgKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1w
ZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCkBAIC0wLDAgKzEsMjUgQEAKKzwhRE9DVFlQ
RSBodG1sPgorPHN0eWxlPgorLmZsZXhDb250YWluZXIgeworICBkaXNwbGF5OiBmbGV4OworICBm
bGV4LWRpcmVjdGlvbjogY29sdW1uOworICBwb3NpdGlvbjogcmVsYXRpdmU7CisgIGhlaWdodDog
MTAwcHg7Cit9CisuZmlyc3RDaGlsZCB7CisgIGJhY2tncm91bmQtY29sb3I6IHllbGxvdzsKKyAg
aGVpZ2h0OiA1MHB4OworfQorLnNlY29uZENoaWxkIHsKKyAgaGVpZ2h0OiA1MCU7CisgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworfQorLnBlcmNlbnRIZWlnaHREZXNjZW5kYW50IHsKKyAgaGVp
Z2h0OiAxMDAlOworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbgorfQorPC9zdHlsZT4KKzxkaXYg
Y2xhc3M9ZmxleENvbnRhaW5lcj4KKyAgPGRpdiBjbGFzcz1maXJzdENoaWxkPjxkaXYgY2xhc3M9
cGVyY2VudEhlaWdodERlc2NlbmRhbnQ+PC9kaXY+PC9kaXY+CisgIDxkaXYgY2xhc3M9c2Vjb25k
Q2hpbGQ+PC9kaXY+Cis8L2Rpdj4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428002</attachid>
            <date>2021-05-07 09:11:55 -0700</date>
            <delta_ts>2021-05-07 18:46:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225489-20210507091154.patch</filename>
            <type>text/plain</type>
            <size>14716</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uN2ZkMDBmNGZiNTU0Njk3ZDlhOWI0N2VmZDUzYTZl
OGZjNjAzMGNlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA1LTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94XSBGbGV4
IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVpZ2h0IGNv
bXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGbGV4IGl0ZW0gY29uc3RydWN0aW9uIHRyaWdnZXJzIGxheW91dCBib3RoIG9uIHRoZSBmbGV4
IGl0ZW0gYW5kIG9uIGl0cyBkZXNjZW5kYW50cyAoc2VlIGNvbnN0cnVjdEZsZXhJdGVtKS4KKyAg
ICAgICAgRHVyaW5nIHRoaXMgbGF5b3V0IGEgcGVyY2VudCBoZWlnaHQgZGVzY2VuZGFudCBtYXkg
aW5kaXJlY3RseSBzZXQgYW4gaW5jb3JyZWN0IHZhbHVlIG9uIHRoZSBmbGV4IGNvbnRhaW5lcidz
IAorICAgICAgICBtX2hhc0RlZmluaXRlSGVpZ2h0ICh0aGlzIGlzIGR1ZSB0byB0aGUgb2RkIHdh
eSB3ZSBjaG9vc2UgdG8gcmVzb2x2ZSBwZXJjZW50IGhlaWdodCB2YWx1ZXMgb24gdGhlIGFuY2Vz
dG9yIGNoYWluLCAKKyAgICAgICAgc2VlIHNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpKS4KKyAgICAgICAgTm93IHRoaXMgaW5jb3Jy
ZWN0IG1faGFzRGVmaW5pdGVIZWlnaHQgdmFsdWUgKEluZGVmaW5pdGUpIGNhdXNlcyB0aGUgbmV4
dCBzaWJsaW5nJ3MgKGFsc28pIHBlcmNlbnQgaGVpZ2h0CisgICAgICAgIHJlc29sdmUgZmFpbCBh
cyBpdCB0ZWxscyB0aGUgZmxleCBpdGVtIHRoYXQgdGhlIGZsZXggY29udGFpbmVyIGNhbid0IGhl
bHAgd2l0aCByZXNvbHZpbmcgdGhlIHBlcmNlbnQgaGVpZ2h0IHZhbHVlLgorICAgICAgICBBcyB0
aGUgcmVzdWx0IHdlIGVuZCB1cCB3aXRoIGFuIGluY29ycmVjdCwgMHB4IGhlaWdodCB2YWx1ZSBm
b3IgdGhpcyBzaWJsaW5nLgorICAgICAgICBlLmcuCisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDogMTAwcHg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ij4KKyAgICAg
ICAgICA8ZGl2IGlkPWZsZXhJdGVtQSBzdHlsZT0iaGVpZ2h0OiA1MHB4OyI+PGRpdiBzdHlsZT0i
aGVpZ2h0OiAxMDAlOyI+PC9kaXY+PC9kaXY+CisgICAgICAgICAgPGRpdiBpZD1mbGV4SXRlbUIg
c3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICBCeSB0
aGUgdGltZSB3ZSBnZXQgdG8gdGhlIGNvbnN0cnVjdGlvbiBvZiBmbGV4SXRlbUIsIHRoZSBSZW5k
ZXJGbGV4aWJsZUJveCdzIChmbGV4IGNvbnRhaW5lcikgbV9oYXNEZWZpbml0ZUhlaWdodAorICAg
ICAgICBpcyBhbHJlYWR5IChhbmQgaW5jb3JyZWN0bHkpIHNldCB0byBJbmRlZmluaXRlIGFzIHRo
ZSByZXN1bHQgb2YgdXMgdHJ5aW5nIHRvIHJlc29sdmUgZmxleEl0ZW1BJ3MgZGVzY2VuZGFudCBo
ZWlnaHQgcGVyY2VudGFnZS4KKyAgICAgICAgVGhpcyBJbmRlZmluaXRlIHZhbHVlIG1ha2VzIHRo
ZSBmbGV4SXRlbUIncyBoZWlnaHQgcmVzb2x1dGlvbiBmYWlsIGFzIHdlIGJlbGlldmUgdGhhdCB0
aGUgZmxleCBjb250YWluZXIgaGFzIGluZGVmaW5pdGUgaGVpZ2h0CisgICAgICAgIGUuZyAiaGVp
Z2h0OiBhdXRvIiwgd2hpbGUgaXQgaXMgY2xlYXJseSByZXNvbHZhYmxlICg1MCUgb2YgMTAwcHgp
LgorICAgICAgICBOb3cgaWYgd2UgZmxpcCB0aGUgb3JkZXIgYW5kIGZsZXhJdGVtQiBjb21lcyBm
aXJzdCwgdGhlIHRlc3QgY2FzZSBwYXNzZXMgZmluZS4KKyAgICAgICAgSXQgaXMgdmVyeSB1bmZv
cnR1bmF0ZSB0aGF0IHNvbWUgZGVzY2VuZGFudCBoZWlnaHQgcmVzb2x2aW5nIHByb2Nlc3MgY2Fu
IHRyaWdnZXIgYSBzdGF0ZSBjaGFuZ2Ugb24gdGhlIGFuY2VzdG9yIFJlbmRlckZsZXhpYmxlQm94
LCBidXQKKyAgICAgICAgZml4aW5nIGl0IHdvdWxkIGNlcnRhaW5seSByZXF1aXJlIHNvbWUgc3Vi
c3RhbnRpYWwgYXJjaGl0ZWN0dXJhbCBjaGFuZ2UgKGUuZy4gcHVzaGluZyBkb3duIHRoZSBjb25z
dHJhaW50cyB0byB0aGUgZ2VvbWV0cnkgZnVuY3Rpb25zIGluc3RlYWQgb2YKKyAgICAgICAgd2Fs
a2luZyB0aGUgY29udGFpbmluZyBibG9jayBjaGFpbikuCisgICAgICAgIEluIHRoaXMgcGF0Y2gs
IHdlIGp1c3Qgc2NvcGUgbV9oYXNEZWZpbml0ZUhlaWdodCBzbyB0aGF0IHRoZSBSZW5kZXJGbGV4
aWJsZUJveCdzIHN0YXRlIGlzIG5vdCBlZmZlY3RlZCBieSB0aGUgZmxleCBpdGVtIGNvbnN0cnVj
dGlvbi4gCisKKyAgICAgICAgVGVzdDogZmFzdC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVy
Y2VudC1oZWlnaHQtZGVzY2VuZGFudHMuaHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckZsZXhpYmxlQm94LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckZsZXhpYmxlQm94Ojps
YXlvdXRGbGV4SXRlbXMpOgorCiAyMDIxLTA1LTA1ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJv
eWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBbTVNFXVtHU3RyZWFtZXJdIFdlYktpdE1lZGlhU3Jj
IHJld29yayB2MgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZs
ZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJv
eC5jcHAKaW5kZXggMjI5YjY5M2RmMTk3ZmZjYmUyNjkwMWI4OGFiMjU5YWMzMDA1MWYyNS4uMGRl
MzRjZmMwNThhZjUzZDJjM2NhNjNlZmMyZDY2ZmYyNjA0ZWE1YyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0yNjgsOSArMjY4LDYgQEAg
dm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2soYm9vbCByZWxheW91dENoaWxkcmVu
LCBMYXlvdXRVbml0KQogICAgIHJlc2V0TG9naWNhbEhlaWdodEJlZm9yZUxheW91dElmTmVlZGVk
KCk7CiAgICAgbV9yZWxhaWRPdXRDaGlsZHJlbi5jbGVhcigpOwogICAgIAotICAgIGJvb2wgb2xk
SW5MYXlvdXQgPSBtX2luTGF5b3V0OwotICAgIG1faW5MYXlvdXQgPSB0cnVlOwotICAgIAogICAg
IGlmIChyZWNvbXB1dGVMb2dpY2FsV2lkdGgoKSkKICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9
IHRydWU7CiAKQEAgLTMyMSw4ICszMTgsNiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlv
dXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiAgICAgcmVwYWludGVy
LnJlcGFpbnRBZnRlckxheW91dCgpOwogCiAgICAgY2xlYXJOZWVkc0xheW91dCgpOwotICAgIAot
ICAgIG1faW5MYXlvdXQgPSBvbGRJbkxheW91dDsKIH0KIAogdm9pZCBSZW5kZXJGbGV4aWJsZUJv
eDo6YXBwZW5kQ2hpbGRGcmFtZVJlY3RzKENoaWxkRnJhbWVSZWN0cyYgY2hpbGRGcmFtZVJlY3Rz
KQpAQCAtODQ1LDcgKzg0MCw3IEBAIGJvb2wgUmVuZGVyRmxleGlibGVCb3g6OmNhbkNvbXB1dGVQ
ZXJjZW50YWdlRmxleEJhc2lzKGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIGNvCiAgICAgaWYgKG1f
aGFzRGVmaW5pdGVIZWlnaHQgPT0gU2l6ZURlZmluaXRlbmVzczo6SW5kZWZpbml0ZSkKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIGJvb2wgZGVmaW5pdGUgPSBjaGlsZC5jb21wdXRlUGVyY2Vu
dGFnZUxvZ2ljYWxIZWlnaHQoZmxleEJhc2lzLCB1cGRhdGVEZXNjZW5kYW50cykuaGFzVmFsdWUo
KTsKLSAgICBpZiAobV9pbkxheW91dCAmJiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBj
aGlsZC5pc0hvcml6b250YWxXcml0aW5nTW9kZSgpKSkgeworICAgIGlmICghbV9pbkZsZXhJdGVt
Q29uc3RydWN0aW9uICYmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgpID09IGNoaWxkLmlzSG9y
aXpvbnRhbFdyaXRpbmdNb2RlKCkpKSB7CiAgICAgICAgIC8vIFdlIGNhbiByZWFjaCB0aGlzIGNv
ZGUgZXZlbiB3aGlsZSB3ZSdyZSBub3QgbGF5aW5nIG91cnNlbHZlcyBvdXQsIHN1Y2gKICAgICAg
ICAgLy8gYXMgZnJvbSBtYWluU2l6ZUZvclBlcmNlbnRhZ2VSZXNvbHV0aW9uLgogICAgICAgICBt
X2hhc0RlZmluaXRlSGVpZ2h0ID0gZGVmaW5pdGUgPyBTaXplRGVmaW5pdGVuZXNzOjpEZWZpbml0
ZSA6IFNpemVEZWZpbml0ZW5lc3M6OkluZGVmaW5pdGU7CkBAIC05NjUsMjEgKzk2MCw3IEBAIHZv
aWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhib29sIHJlbGF5b3V0Q2hpbGRy
ZW4pCiAgICAgLy8gU2V0IHVwIG91ciBtYXN0ZXIgbGlzdCBvZiBmbGV4IGl0ZW1zLiBBbGwgb2Yg
dGhlIHJlc3Qgb2YgdGhlIGFsZ29yaXRobQogICAgIC8vIHNob3VsZCB3b3JrIG9mZiB0aGlzIGxp
c3Qgb2YgYSBzdWJzZXQuCiAgICAgLy8gVE9ETyhjYmllc2luZ2VyKTogVGhhdCBzZWNvbmQgcGFy
dCBpcyBub3QgeWV0IHRydWUuCi0gICAgVmVjdG9yPEZsZXhJdGVtPiBhbGxJdGVtczsKLSAgICBt
X29yZGVySXRlcmF0b3IuZmlyc3QoKTsKLSAgICBmb3IgKFJlbmRlckJveCogY2hpbGQgPSBtX29y
ZGVySXRlcmF0b3IuY3VycmVudENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRv
ci5uZXh0KCkpIHsKLSAgICAgICAgaWYgKG1fb3JkZXJJdGVyYXRvci5zaG91bGRTa2lwQ2hpbGQo
KmNoaWxkKSkgewotICAgICAgICAgICAgLy8gT3V0LW9mLWZsb3cgY2hpbGRyZW4gYXJlIG5vdCBm
bGV4IGl0ZW1zLCBzbyB3ZSBza2lwIHRoZW0gaGVyZS4KLSAgICAgICAgICAgIGlmIChjaGlsZC0+
aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCi0gICAgICAgICAgICAgICAgcHJlcGFyZUNoaWxkRm9y
UG9zaXRpb25lZExheW91dCgqY2hpbGQpOwotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IH0KLSAgICAgICAgYWxsSXRlbXMuYXBwZW5kKGNvbnN0cnVjdEZsZXhJdGVtKCpjaGlsZCwgcmVs
YXlvdXRDaGlsZHJlbikpOwotICAgIH0KLQotICAgIC8vIGNvbnN0cnVjdEZsZXhJdGVtKCkgbWln
aHQgc2V0IHRoZSBvdmVycmlkZSBjb250YWluaW5nIGJsb2NrIGhlaWdodCBzbyBhbnkgdmFsdWUg
Y2FjaGVkIGZvciBkZWZpbml0ZW5lc3MgbWlnaHQgYmUgaW5jb3JyZWN0LgotICAgIG1faGFzRGVm
aW5pdGVIZWlnaHQgPSBTaXplRGVmaW5pdGVuZXNzOjpVbmtub3duOwotICAgIAorICAgIGF1dG8g
YWxsSXRlbXMgPSBjb25zdHJ1Y3RGbGV4SXRlbXMocmVsYXlvdXRDaGlsZHJlbik7CiAgICAgY29u
c3QgTGF5b3V0VW5pdCBsaW5lQnJlYWtMZW5ndGggPSBtYWluQXhpc0NvbnRlbnRFeHRlbnQoTGF5
b3V0VW5pdDo6bWF4KCkpOwogICAgIExheW91dFVuaXQgZ2FwQmV0d2Vlbkl0ZW1zID0gY29tcHV0
ZUdhcChHYXBUeXBlOjpCZXR3ZWVuSXRlbXMpOwogICAgIExheW91dFVuaXQgZ2FwQmV0d2Vlbkxp
bmVzID0gY29tcHV0ZUdhcChHYXBUeXBlOjpCZXR3ZWVuTGluZXMpOwpAQCAtMTI5NCwzNiArMTI3
NSw1MiBAQCBMYXlvdXRVbml0IFJlbmRlckZsZXhpYmxlQm94OjphZGp1c3RDaGlsZFNpemVGb3JB
c3BlY3RSYXRpb0Nyb3NzQXhpc01pbkFuZE1heChjbwogICAgIHJldHVybiBjaGlsZFNpemU7CiB9
CiAKLUZsZXhJdGVtIFJlbmRlckZsZXhpYmxlQm94Ojpjb25zdHJ1Y3RGbGV4SXRlbShSZW5kZXJC
b3gmIGNoaWxkLCBib29sIHJlbGF5b3V0Q2hpbGRyZW4pCi17Ci0gICAgY2hpbGQuY2xlYXJPdmVy
cmlkaW5nQ29udGVudFNpemUoKTsKLSAgICBpZiAoY2hpbGRIYXNJbnRyaW5zaWNNYWluQXhpc1Np
emUoY2hpbGQpKSB7Ci0gICAgICAgIC8vIElmIHRoaXMgY29uZGl0aW9uIGlzIHRydWUsIHRoZW4g
Y29tcHV0ZU1haW5BeGlzRXh0ZW50Rm9yQ2hpbGQgd2lsbCBjYWxsCi0gICAgICAgIC8vIGNoaWxk
LmludHJpbnNpY0NvbnRlbnRMb2dpY2FsSGVpZ2h0KCkgYW5kIGNoaWxkLnNjcm9sbGJhckxvZ2lj
YWxIZWlnaHQoKSwKLSAgICAgICAgLy8gc28gaWYgdGhlIGNoaWxkIGhhcyBpbnRyaW5zaWMgbWlu
L21heC9wcmVmZXJyZWQgc2l6ZSwgcnVuIGxheW91dCBvbiBpdCBub3cgdG8gbWFrZSBzdXJlCi0g
ICAgICAgIC8vIGl0cyBsb2dpY2FsIGhlaWdodCBhbmQgc2Nyb2xsIGJhcnMgYXJlIHVwIHRvIGRh
dGUuCi0gICAgICAgIHVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZvcmVMYXlvdXQocmVsYXlv
dXRDaGlsZHJlbiwgY2hpbGQpOwotICAgICAgICAvLyBEb24ndCByZXNvbHZlIHBlcmNlbnRhZ2Vz
IGluIGNoaWxkcmVuLiBUaGlzIGlzIGVzcGVjaWFsbHkgaW1wb3J0YW50IGZvciB0aGUgbWluLWhl
aWdodCBjYWxjdWxhdGlvbiwKLSAgICAgICAgLy8gd2hlcmUgd2Ugd2FudCBwZXJjZW50YWdlcyB0
byBiZSB0cmVhdGVkIGFzIGF1dG8uIEZvciBmbGV4LWJhc2lzIGl0c2VsZiwgdGhpcyBpcyBub3Qg
YSBwcm9ibGVtIGJlY2F1c2UKLSAgICAgICAgLy8gYnkgZGVmaW5pdGlvbiB3ZSBoYXZlIGFuIGlu
ZGVmaW5pdGUgZmxleCBiYXNpcyBoZXJlIGFuZCB0aHVzIHBlcmNlbnRhZ2VzIHNob3VsZCBub3Qg
cmVzb2x2ZS4KLSAgICAgICAgaWYgKGNoaWxkLm5lZWRzTGF5b3V0KCkgfHwgIW1faW50cmluc2lj
U2l6ZUFsb25nTWFpbkF4aXMuY29udGFpbnMoJmNoaWxkKSkgewotICAgICAgICAgICAgaWYgKGlz
SG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gY2hpbGQuaXNIb3Jpem9udGFsV3JpdGluZ01vZGUo
KSkKLSAgICAgICAgICAgICAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29u
dGVudExvZ2ljYWxIZWlnaHQoV1RGOjpudWxsb3B0KTsKLSAgICAgICAgICAgIGVsc2UKLSAgICAg
ICAgICAgICAgICBjaGlsZC5zZXRPdmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2lj
YWxXaWR0aChXVEY6Om51bGxvcHQpOwotICAgICAgICAgICAgY2hpbGQuY2xlYXJPdmVycmlkaW5n
Q29udGVudFNpemUoKTsKLSAgICAgICAgICAgIGNoaWxkLnNldENoaWxkTmVlZHNMYXlvdXQoTWFy
a09ubHlUaGlzKTsKLSAgICAgICAgICAgIGNoaWxkLmxheW91dElmTmVlZGVkKCk7Ci0gICAgICAg
ICAgICBjYWNoZUNoaWxkTWFpblNpemUoY2hpbGQpOwotICAgICAgICAgICAgY2hpbGQuY2xlYXJP
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudFNpemUoKTsKK1ZlY3RvcjxGbGV4SXRlbT4g
UmVuZGVyRmxleGlibGVCb3g6OmNvbnN0cnVjdEZsZXhJdGVtcyhib29sIHJlbGF5b3V0Q2hpbGRy
ZW4pCit7CisgICAgU2V0Rm9yU2NvcGU8Ym9vbD4gaW5GbGV4SXRlbUNvbnN0cnVjdGlvbihtX2lu
RmxleEl0ZW1Db25zdHJ1Y3Rpb24sIHRydWUpOworCisgICAgVmVjdG9yPEZsZXhJdGVtPiBmbGV4
SXRlbXM7CisgICAgZm9yIChhdXRvKiBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5maXJzdCgpOyBj
aGlsZDsgY2hpbGQgPSBtX29yZGVySXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgIGlmIChtX29y
ZGVySXRlcmF0b3Iuc2hvdWxkU2tpcENoaWxkKCpjaGlsZCkpIHsKKyAgICAgICAgICAgIC8vIE91
dC1vZi1mbG93IGNoaWxkcmVuIGFyZSBub3QgZmxleCBpdGVtcywgc28gd2Ugc2tpcCB0aGVtIGhl
cmUuCisgICAgICAgICAgICBpZiAoY2hpbGQtPmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKQorICAg
ICAgICAgICAgICAgIHByZXBhcmVDaGlsZEZvclBvc2l0aW9uZWRMYXlvdXQoKmNoaWxkKTsKKyAg
ICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICB9CisKKyAgICAgICAgYXV0byBjb25zdHJ1Y3RG
bGV4SXRlbUZvckNoaWxkQm94ID0gWyZdKGF1dG8mIGNoaWxkQm94KSB7CisgICAgICAgICAgICBj
aGlsZEJveC5jbGVhck92ZXJyaWRpbmdDb250ZW50U2l6ZSgpOworICAgICAgICAgICAgaWYgKGNo
aWxkSGFzSW50cmluc2ljTWFpbkF4aXNTaXplKGNoaWxkQm94KSkgeworICAgICAgICAgICAgICAg
IC8vIElmIHRoaXMgY29uZGl0aW9uIGlzIHRydWUsIHRoZW4gY29tcHV0ZU1haW5BeGlzRXh0ZW50
Rm9yQ2hpbGQgd2lsbCBjYWxsCisgICAgICAgICAgICAgICAgLy8gY2hpbGQuaW50cmluc2ljQ29u
dGVudExvZ2ljYWxIZWlnaHQoKSBhbmQgY2hpbGQuc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpLAor
ICAgICAgICAgICAgICAgIC8vIHNvIGlmIHRoZSBjaGlsZCBoYXMgaW50cmluc2ljIG1pbi9tYXgv
cHJlZmVycmVkIHNpemUsIHJ1biBsYXlvdXQgb24gaXQgbm93IHRvIG1ha2Ugc3VyZQorICAgICAg
ICAgICAgICAgIC8vIGl0cyBsb2dpY2FsIGhlaWdodCBhbmQgc2Nyb2xsIGJhcnMgYXJlIHVwIHRv
IGRhdGUuCisgICAgICAgICAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxh
eW91dChyZWxheW91dENoaWxkcmVuLCBjaGlsZEJveCk7CisgICAgICAgICAgICAgICAgLy8gRG9u
J3QgcmVzb2x2ZSBwZXJjZW50YWdlcyBpbiBjaGlsZHJlbi4gVGhpcyBpcyBlc3BlY2lhbGx5IGlt
cG9ydGFudCBmb3IgdGhlIG1pbi1oZWlnaHQgY2FsY3VsYXRpb24sCisgICAgICAgICAgICAgICAg
Ly8gd2hlcmUgd2Ugd2FudCBwZXJjZW50YWdlcyB0byBiZSB0cmVhdGVkIGFzIGF1dG8uIEZvciBm
bGV4LWJhc2lzIGl0c2VsZiwgdGhpcyBpcyBub3QgYSBwcm9ibGVtIGJlY2F1c2UKKyAgICAgICAg
ICAgICAgICAvLyBieSBkZWZpbml0aW9uIHdlIGhhdmUgYW4gaW5kZWZpbml0ZSBmbGV4IGJhc2lz
IGhlcmUgYW5kIHRodXMgcGVyY2VudGFnZXMgc2hvdWxkIG5vdCByZXNvbHZlLgorICAgICAgICAg
ICAgICAgIGlmIChjaGlsZEJveC5uZWVkc0xheW91dCgpIHx8ICFtX2ludHJpbnNpY1NpemVBbG9u
Z01haW5BeGlzLmNvbnRhaW5zKCZjaGlsZEJveCkpIHsKKyAgICAgICAgICAgICAgICAgICAgaWYg
KGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gY2hpbGRCb3guaXNIb3Jpem9udGFsV3JpdGlu
Z01vZGUoKSkKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LnNldE92ZXJyaWRpbmdD
b250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpOworICAgICAg
ICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZEJveC5zZXRP
dmVycmlkaW5nQ29udGFpbmluZ0Jsb2NrQ29udGVudExvZ2ljYWxXaWR0aChXVEY6Om51bGxvcHQp
OworICAgICAgICAgICAgICAgICAgICBjaGlsZEJveC5jbGVhck92ZXJyaWRpbmdDb250ZW50U2l6
ZSgpOworICAgICAgICAgICAgICAgICAgICBjaGlsZEJveC5zZXRDaGlsZE5lZWRzTGF5b3V0KE1h
cmtPbmx5VGhpcyk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LmxheW91dElmTmVlZGVk
KCk7CisgICAgICAgICAgICAgICAgICAgIGNhY2hlQ2hpbGRNYWluU2l6ZShjaGlsZEJveCk7Cisg
ICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRTaXplKCk7CisgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBhdXRvIGJvcmRlckFuZFBhZGRpbmcgPSBpc0hvcml6b250YWxGbG93KCkgPyBjaGls
ZEJveC5ob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpIDogY2hpbGRCb3gudmVydGlj
YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCk7CisgICAgICAgICAgICBhdXRvIGNoaWxkSW5uZXJG
bGV4QmFzZVNpemUgPSBjb21wdXRlSW5uZXJGbGV4QmFzZVNpemVGb3JDaGlsZChjaGlsZEJveCwg
Ym9yZGVyQW5kUGFkZGluZyk7CisgICAgICAgICAgICBhdXRvIGNoaWxkTWluTWF4QXBwbGllZE1h
aW5BeGlzRXh0ZW50ID0gYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KGNoaWxkQm94LCBjaGls
ZElubmVyRmxleEJhc2VTaXplKTsKKyAgICAgICAgICAgIGF1dG8gbWFyZ2luID0gaXNIb3Jpem9u
dGFsRmxvdygpID8gY2hpbGRCb3guaG9yaXpvbnRhbE1hcmdpbkV4dGVudCgpIDogY2hpbGRCb3gu
dmVydGljYWxNYXJnaW5FeHRlbnQoKTsKKyAgICAgICAgICAgIHJldHVybiBGbGV4SXRlbShjaGls
ZEJveCwgY2hpbGRJbm5lckZsZXhCYXNlU2l6ZSwgY2hpbGRNaW5NYXhBcHBsaWVkTWFpbkF4aXNF
eHRlbnQsIGJvcmRlckFuZFBhZGRpbmcsIG1hcmdpbik7CisgICAgICAgIH07CisgICAgICAgIGZs
ZXhJdGVtcy5hcHBlbmQoY29uc3RydWN0RmxleEl0ZW1Gb3JDaGlsZEJveCgqY2hpbGQpKTsKICAg
ICB9Ci0gICAgCi0gICAgTGF5b3V0VW5pdCBib3JkZXJBbmRQYWRkaW5nID0gaXNIb3Jpem9udGFs
RmxvdygpID8gY2hpbGQuaG9yaXpvbnRhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKSA6IGNoaWxk
LnZlcnRpY2FsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpOwotICAgIExheW91dFVuaXQgY2hpbGRJ
bm5lckZsZXhCYXNlU2l6ZSA9IGNvbXB1dGVJbm5lckZsZXhCYXNlU2l6ZUZvckNoaWxkKGNoaWxk
LCBib3JkZXJBbmRQYWRkaW5nKTsKLSAgICBMYXlvdXRVbml0IGNoaWxkTWluTWF4QXBwbGllZE1h
aW5BeGlzRXh0ZW50ID0gYWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KGNoaWxkLCBjaGlsZElu
bmVyRmxleEJhc2VTaXplKTsKLSAgICBMYXlvdXRVbml0IG1hcmdpbiA9IGlzSG9yaXpvbnRhbEZs
b3coKSA/IGNoaWxkLmhvcml6b250YWxNYXJnaW5FeHRlbnQoKSA6IGNoaWxkLnZlcnRpY2FsTWFy
Z2luRXh0ZW50KCk7Ci0gICAgcmV0dXJuIEZsZXhJdGVtKGNoaWxkLCBjaGlsZElubmVyRmxleEJh
c2VTaXplLCBjaGlsZE1pbk1heEFwcGxpZWRNYWluQXhpc0V4dGVudCwgYm9yZGVyQW5kUGFkZGlu
ZywgbWFyZ2luKTsKKyAgICByZXR1cm4gZmxleEl0ZW1zOwogfQogICAgIAogdm9pZCBSZW5kZXJG
bGV4aWJsZUJveDo6ZnJlZXplVmlvbGF0aW9ucyhWZWN0b3I8RmxleEl0ZW0qPiYgdmlvbGF0aW9u
cywgTGF5b3V0VW5pdCYgYXZhaWxhYmxlRnJlZVNwYWNlLCBkb3VibGUmIHRvdGFsRmxleEdyb3cs
IGRvdWJsZSYgdG90YWxGbGV4U2hyaW5rLCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5r
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAppbmRleCA2
NGJhODY3OTJlYTJiOTYzNzk0NzBlMTUxNTAwZTMxNjE4OTI5YmQwLi4yNTIwOTlkN2FhZmE0ZjVh
MzdmNTc4ZTM1MWNhYTQxMmFiYTM1YWNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRmxleGlibGVCb3guaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guaApAQCAtMTc1LDcgKzE3NSw3IEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBwcmVwYXJlT3JkZXJJdGVyYXRvckFuZE1hcmdpbnMoKTsKICAgICBMYXlvdXRVbml0IGFkanVz
dENoaWxkU2l6ZUZvck1pbkFuZE1heChSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGNoaWxk
U2l6ZSk7CiAgICAgTGF5b3V0VW5pdCBhZGp1c3RDaGlsZFNpemVGb3JBc3BlY3RSYXRpb0Nyb3Nz
QXhpc01pbkFuZE1heChjb25zdCBSZW5kZXJCb3gmIGNoaWxkLCBMYXlvdXRVbml0IGNoaWxkU2l6
ZSk7Ci0gICAgRmxleEl0ZW0gY29uc3RydWN0RmxleEl0ZW0oUmVuZGVyQm94JiwgYm9vbCByZWxh
eW91dENoaWxkcmVuKTsKKyAgICBWZWN0b3I8RmxleEl0ZW0+IGNvbnN0cnVjdEZsZXhJdGVtcyhi
b29sIHJlbGF5b3V0Q2hpbGRyZW4pOwogICAgIAogICAgIHZvaWQgZnJlZXplSW5mbGV4aWJsZUl0
ZW1zKEZsZXhTaWduLCBWZWN0b3I8RmxleEl0ZW0+JiBjaGlsZHJlbiwgTGF5b3V0VW5pdCYgcmVt
YWluaW5nRnJlZVNwYWNlLCBkb3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxGbGV4
U2hyaW5rLCBkb3VibGUmIHRvdGFsV2VpZ2h0ZWRGbGV4U2hyaW5rKTsKICAgICBib29sIHJlc29s
dmVGbGV4aWJsZUxlbmd0aHMoRmxleFNpZ24sIFZlY3RvcjxGbGV4SXRlbT4mLCBMYXlvdXRVbml0
IGluaXRpYWxGcmVlU3BhY2UsIExheW91dFVuaXQmIHJlbWFpbmluZ0ZyZWVTcGFjZSwgZG91Ymxl
JiB0b3RhbEZsZXhHcm93LCBkb3VibGUmIHRvdGFsRmxleFNocmluaywgZG91YmxlJiB0b3RhbFdl
aWdodGVkRmxleFNocmluayk7CkBAIC0yMjAsNyArMjIwLDcgQEAgcHJpdmF0ZToKICAgICAKICAg
ICAvLyBUaGlzIGlzIFNpemVJc1Vua25vd24gb3V0c2lkZSBvZiBsYXlvdXRCbG9jaygpCiAgICAg
U2l6ZURlZmluaXRlbmVzcyBtX2hhc0RlZmluaXRlSGVpZ2h0IHsgU2l6ZURlZmluaXRlbmVzczo6
VW5rbm93biB9OwotICAgIGJvb2wgbV9pbkxheW91dCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lu
RmxleEl0ZW1Db25zdHJ1Y3Rpb24geyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGRSZXNldENo
aWxkTG9naWNhbEhlaWdodEJlZm9yZUxheW91dCB7IGZhbHNlIH07CiB9OwogCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzM3
ZjRlZWU5NDZjY2Q1MWU0NWZlMzFmMzBkZGY4NjFhZTYwNTExZi4uNmU1OTkzNjBkZjMwYzBhMzBk
NTE1YzAyNjZhNDM3ZmU2NmQ1ZWRjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA1LTA2
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94
XSBGbGV4IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVp
Z2h0IGNvbXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRl
c2NlbmRhbnRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmxleGJveC9m
bGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLmh0bWw6IEFkZGVkLgor
CiAyMDIxLTA1LTA1ICBBbGljaWEgQm95YSBHYXJjw61hICA8YWJveWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbTVNFXVtHU3RyZWFtZXJdIFdlYktpdE1lZGlhU3JjIHJld29yayB2MgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2VudC1o
ZWlnaHQtZGVzY2VuZGFudHMtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmxleGJv
eC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLWV4cGVjdGVkLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYzQyYjVhZTk3ODdiNWEwMzAxZWI5OGYxZDA1Y2FlZjk1ZTFmY2JkOQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13
aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSw4
IEBACis8IURPQ1RZUEUgaHRtbD4KKzxzdHlsZT4KK2RpdiB7CisgIGhlaWdodDogMTAwcHg7Cisg
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOworfQorPC9zdHlsZT4KKzxkaXY+PC9kaXY+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50
LWhlaWdodC1kZXNjZW5kYW50cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2ZsZXgt
Y29sdW1uLXdpdGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43
NjhkYzY5ZWFiZDUwYWU2MDZmMDg2MTZjZWU0ODg4MTk5MTM2ZTI4Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2VudC1oZWln
aHQtZGVzY2VuZGFudHMuaHRtbApAQCAtMCwwICsxLDI1IEBACis8IURPQ1RZUEUgaHRtbD4KKzxz
dHlsZT4KKy5mbGV4Q29udGFpbmVyIHsKKyAgZGlzcGxheTogZmxleDsKKyAgZmxleC1kaXJlY3Rp
b246IGNvbHVtbjsKKyAgcG9zaXRpb246IHJlbGF0aXZlOworICBoZWlnaHQ6IDEwMHB4OworfQor
LmZpcnN0Q2hpbGQgeworICBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7CisgIGhlaWdodDogNTBw
eDsKK30KKy5zZWNvbmRDaGlsZCB7CisgIGhlaWdodDogNTAlOworICBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsKK30KKy5wZXJjZW50SGVpZ2h0RGVzY2VuZGFudCB7CisgIGhlaWdodDogMTAwJTsK
KyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW4KK30KKzwvc3R5bGU+Cis8ZGl2IGNsYXNzPWZsZXhD
b250YWluZXI+CisgIDxkaXYgY2xhc3M9Zmlyc3RDaGlsZD48ZGl2IGNsYXNzPXBlcmNlbnRIZWln
aHREZXNjZW5kYW50PjwvZGl2PjwvZGl2PgorICA8ZGl2IGNsYXNzPXNlY29uZENoaWxkPjwvZGl2
PgorPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428055</attachid>
            <date>2021-05-07 16:22:00 -0700</date>
            <delta_ts>2021-05-07 16:22:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225489-20210507162159.patch</filename>
            <type>text/plain</type>
            <size>15436</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uOTNlMGM1Y2M3N2U3MzFkZTBkNDlkZWU1NDJjYTgw
OTUwNTM5NWJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA1LTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94XSBGbGV4
IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVpZ2h0IGNv
bXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBTZXJnaW8gVmlsbGFyIFNlbmluLgorCisg
ICAgICAgIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gdHJpZ2dlcnMgbGF5b3V0IGJvdGggb24gdGhl
IGZsZXggaXRlbSBhbmQgb24gaXRzIGRlc2NlbmRhbnRzIChzZWUgY29uc3RydWN0RmxleEl0ZW0p
LgorICAgICAgICBEdXJpbmcgdGhpcyBsYXlvdXQgYSBwZXJjZW50IGhlaWdodCBkZXNjZW5kYW50
IG1heSBpbmRpcmVjdGx5IHNldCBhbiBpbmNvcnJlY3QgdmFsdWUgb24gdGhlIGZsZXggY29udGFp
bmVyJ3MgCisgICAgICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgKHRoaXMgaXMgZHVlIHRvIHRoZSBv
ZGQgd2F5IHdlIGNob29zZSB0byByZXNvbHZlIHBlcmNlbnQgaGVpZ2h0IHZhbHVlcyBvbiB0aGUg
YW5jZXN0b3IgY2hhaW4sIAorICAgICAgICBzZWUgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCkpLgorICAgICAgICBOb3cgdGhpcyBp
bmNvcnJlY3QgbV9oYXNEZWZpbml0ZUhlaWdodCB2YWx1ZSAoSW5kZWZpbml0ZSkgY2F1c2VzIHRo
ZSBuZXh0IHNpYmxpbmcncyAoYWxzbykgcGVyY2VudCBoZWlnaHQKKyAgICAgICAgcmVzb2x2ZSBm
YWlsIGFzIGl0IHRlbGxzIHRoZSBmbGV4IGl0ZW0gdGhhdCB0aGUgZmxleCBjb250YWluZXIgY2Fu
J3QgaGVscCB3aXRoIHJlc29sdmluZyB0aGUgcGVyY2VudCBoZWlnaHQgdmFsdWUuCisgICAgICAg
IEFzIHRoZSByZXN1bHQgd2UgZW5kIHVwIHdpdGggYW4gaW5jb3JyZWN0LCAwcHggaGVpZ2h0IHZh
bHVlIGZvciB0aGlzIHNpYmxpbmcuCisgICAgICAgIGUuZy4KKyAgICAgICAgPGRpdiBzdHlsZT0i
aGVpZ2h0OiAxMDBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsiPgor
ICAgICAgICAgIDxkaXYgaWQ9ZmxleEl0ZW1BIHN0eWxlPSJoZWlnaHQ6IDUwcHg7Ij48ZGl2IHN0
eWxlPSJoZWlnaHQ6IDEwMCU7Ij48L2Rpdj48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGlkPWZsZXhJ
dGVtQiBzdHlsZT0iaGVpZ2h0OiA1MCU7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IEJ5IHRoZSB0aW1lIHdlIGdldCB0byB0aGUgY29uc3RydWN0aW9uIG9mIGZsZXhJdGVtQiwgdGhl
IFJlbmRlckZsZXhpYmxlQm94J3MgKGZsZXggY29udGFpbmVyKSBtX2hhc0RlZmluaXRlSGVpZ2h0
CisgICAgICAgIGlzIGFscmVhZHkgKGFuZCBpbmNvcnJlY3RseSkgc2V0IHRvIEluZGVmaW5pdGUg
YXMgdGhlIHJlc3VsdCBvZiB1cyB0cnlpbmcgdG8gcmVzb2x2ZSBmbGV4SXRlbUEncyBkZXNjZW5k
YW50IGhlaWdodCBwZXJjZW50YWdlLgorICAgICAgICBUaGlzIEluZGVmaW5pdGUgdmFsdWUgbWFr
ZXMgdGhlIGZsZXhJdGVtQidzIGhlaWdodCByZXNvbHV0aW9uIGZhaWwgYXMgd2UgYmVsaWV2ZSB0
aGF0IHRoZSBmbGV4IGNvbnRhaW5lciBoYXMgaW5kZWZpbml0ZSBoZWlnaHQKKyAgICAgICAgZS5n
ICJoZWlnaHQ6IGF1dG8iLCB3aGlsZSBpdCBpcyBjbGVhcmx5IHJlc29sdmFibGUgKDUwJSBvZiAx
MDBweCkuCisgICAgICAgIE5vdyBpZiB3ZSBmbGlwIHRoZSBvcmRlciBhbmQgZmxleEl0ZW1CIGNv
bWVzIGZpcnN0LCB0aGUgdGVzdCBjYXNlIHBhc3NlcyBmaW5lLgorICAgICAgICBJdCBpcyB2ZXJ5
IHVuZm9ydHVuYXRlIHRoYXQgc29tZSBkZXNjZW5kYW50IGhlaWdodCByZXNvbHZpbmcgcHJvY2Vz
cyBjYW4gdHJpZ2dlciBhIHN0YXRlIGNoYW5nZSBvbiB0aGUgYW5jZXN0b3IgUmVuZGVyRmxleGli
bGVCb3gsIGJ1dAorICAgICAgICBmaXhpbmcgaXQgd291bGQgY2VydGFpbmx5IHJlcXVpcmUgc29t
ZSBzdWJzdGFudGlhbCBhcmNoaXRlY3R1cmFsIGNoYW5nZSAoZS5nLiBwdXNoaW5nIGRvd24gdGhl
IGNvbnN0cmFpbnRzIHRvIHRoZSBnZW9tZXRyeSBmdW5jdGlvbnMgaW5zdGVhZCBvZgorICAgICAg
ICB3YWxraW5nIHRoZSBjb250YWluaW5nIGJsb2NrIGNoYWluKS4KKyAgICAgICAgSW4gdGhpcyBw
YXRjaCwgd2UganVzdCBzY29wZSBtX2hhc0RlZmluaXRlSGVpZ2h0IHNvIHRoYXQgdGhlIFJlbmRl
ckZsZXhpYmxlQm94J3Mgc3RhdGUgaXMgbm90IGVmZmVjdGVkIGJ5IHRoZSBmbGV4IGl0ZW0gY29u
c3RydWN0aW9uLiAKKworICAgICAgICBUZXN0OiBmYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0
aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVC
b3g6OmxheW91dEZsZXhJdGVtcyk6CisKIDIwMjEtMDUtMDUgIEFsaWNpYSBCb3lhIEdhcmPDrWEg
IDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gV2ViS2l0TWVk
aWFTcmMgcmV3b3JrIHYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcAppbmRleCAyMjliNjkzZGYxOTdmZmNiZTI2OTAxYjg4YWIyNTlhYzMwMDUxZjI1
Li4wZGUzNGNmYzA1OGFmNTNkMmMzY2E2M2VmYzJkNjZmZjI2MDRlYTVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTI2OCw5ICsyNjgs
NiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQpCiAgICAgcmVzZXRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0SWZO
ZWVkZWQoKTsKICAgICBtX3JlbGFpZE91dENoaWxkcmVuLmNsZWFyKCk7CiAgICAgCi0gICAgYm9v
bCBvbGRJbkxheW91dCA9IG1faW5MYXlvdXQ7Ci0gICAgbV9pbkxheW91dCA9IHRydWU7Ci0gICAg
CiAgICAgaWYgKHJlY29tcHV0ZUxvZ2ljYWxXaWR0aCgpKQogICAgICAgICByZWxheW91dENoaWxk
cmVuID0gdHJ1ZTsKIApAQCAtMzIxLDggKzMxOCw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6
OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICByZXBh
aW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKICAgICBjbGVhck5lZWRzTGF5b3V0KCk7Ci0g
ICAgCi0gICAgbV9pbkxheW91dCA9IG9sZEluTGF5b3V0OwogfQogCiB2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjphcHBlbmRDaGlsZEZyYW1lUmVjdHMoQ2hpbGRGcmFtZVJlY3RzJiBjaGlsZEZyYW1l
UmVjdHMpCkBAIC04NDUsNyArODQwLDcgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y2FuQ29t
cHV0ZVBlcmNlbnRhZ2VGbGV4QmFzaXMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgY28KICAgICBp
ZiAobV9oYXNEZWZpbml0ZUhlaWdodCA9PSBTaXplRGVmaW5pdGVuZXNzOjpJbmRlZmluaXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYm9vbCBkZWZpbml0ZSA9IGNoaWxkLmNvbXB1dGVQ
ZXJjZW50YWdlTG9naWNhbEhlaWdodChmbGV4QmFzaXMsIHVwZGF0ZURlc2NlbmRhbnRzKS5oYXNW
YWx1ZSgpOwotICAgIGlmIChtX2luTGF5b3V0ICYmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID09IGNoaWxkLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpKSB7CisgICAgaWYgKCFtX2luRmxl
eEl0ZW1Db25zdHJ1Y3Rpb24gJiYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gY2hpbGQu
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIHJlYWNoIHRo
aXMgY29kZSBldmVuIHdoaWxlIHdlJ3JlIG5vdCBsYXlpbmcgb3Vyc2VsdmVzIG91dCwgc3VjaAog
ICAgICAgICAvLyBhcyBmcm9tIG1haW5TaXplRm9yUGVyY2VudGFnZVJlc29sdXRpb24uCiAgICAg
ICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgPSBkZWZpbml0ZSA/IFNpemVEZWZpbml0ZW5lc3M6OkRl
ZmluaXRlIDogU2l6ZURlZmluaXRlbmVzczo6SW5kZWZpbml0ZTsKQEAgLTk2NSwyMSArOTYwLDcg
QEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKICAgICAvLyBTZXQgdXAgb3VyIG1hc3RlciBsaXN0IG9mIGZsZXggaXRlbXMuIEFs
bCBvZiB0aGUgcmVzdCBvZiB0aGUgYWxnb3JpdGhtCiAgICAgLy8gc2hvdWxkIHdvcmsgb2ZmIHRo
aXMgbGlzdCBvZiBhIHN1YnNldC4KICAgICAvLyBUT0RPKGNiaWVzaW5nZXIpOiBUaGF0IHNlY29u
ZCBwYXJ0IGlzIG5vdCB5ZXQgdHJ1ZS4KLSAgICBWZWN0b3I8RmxleEl0ZW0+IGFsbEl0ZW1zOwot
ICAgIG1fb3JkZXJJdGVyYXRvci5maXJzdCgpOwotICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9
IG1fb3JkZXJJdGVyYXRvci5jdXJyZW50Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRlckl0
ZXJhdG9yLm5leHQoKSkgewotICAgICAgICBpZiAobV9vcmRlckl0ZXJhdG9yLnNob3VsZFNraXBD
aGlsZCgqY2hpbGQpKSB7Ci0gICAgICAgICAgICAvLyBPdXQtb2YtZmxvdyBjaGlsZHJlbiBhcmUg
bm90IGZsZXggaXRlbXMsIHNvIHdlIHNraXAgdGhlbSBoZXJlLgotICAgICAgICAgICAgaWYgKGNo
aWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgICAgICBwcmVwYXJlQ2hp
bGRGb3JQb3NpdGlvbmVkTGF5b3V0KCpjaGlsZCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgfQotICAgICAgICBhbGxJdGVtcy5hcHBlbmQoY29uc3RydWN0RmxleEl0ZW0oKmNoaWxk
LCByZWxheW91dENoaWxkcmVuKSk7Ci0gICAgfQotCi0gICAgLy8gY29uc3RydWN0RmxleEl0ZW0o
KSBtaWdodCBzZXQgdGhlIG92ZXJyaWRlIGNvbnRhaW5pbmcgYmxvY2sgaGVpZ2h0IHNvIGFueSB2
YWx1ZSBjYWNoZWQgZm9yIGRlZmluaXRlbmVzcyBtaWdodCBiZSBpbmNvcnJlY3QuCi0gICAgbV9o
YXNEZWZpbml0ZUhlaWdodCA9IFNpemVEZWZpbml0ZW5lc3M6OlVua25vd247Ci0gICAgCisgICAg
YXV0byBhbGxJdGVtcyA9IGNvbnN0cnVjdEZsZXhJdGVtcyhyZWxheW91dENoaWxkcmVuKTsKICAg
ICBjb25zdCBMYXlvdXRVbml0IGxpbmVCcmVha0xlbmd0aCA9IG1haW5BeGlzQ29udGVudEV4dGVu
dChMYXlvdXRVbml0OjptYXgoKSk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3ZWVuSXRlbXMgPSBj
b21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5JdGVtcyk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3
ZWVuTGluZXMgPSBjb21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5MaW5lcyk7CkBAIC0xMjk0LDM2
ICsxMjc1LDUyIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmFkanVzdENoaWxkU2l6
ZUZvckFzcGVjdFJhdGlvQ3Jvc3NBeGlzTWluQW5kTWF4KGNvCiAgICAgcmV0dXJuIGNoaWxkU2l6
ZTsKIH0KIAotRmxleEl0ZW0gUmVuZGVyRmxleGlibGVCb3g6OmNvbnN0cnVjdEZsZXhJdGVtKFJl
bmRlckJveCYgY2hpbGQsIGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKLXsKLSAgICBjaGlsZC5jbGVh
ck92ZXJyaWRpbmdDb250ZW50U2l6ZSgpOwotICAgIGlmIChjaGlsZEhhc0ludHJpbnNpY01haW5B
eGlzU2l6ZShjaGlsZCkpIHsKLSAgICAgICAgLy8gSWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZSwg
dGhlbiBjb21wdXRlTWFpbkF4aXNFeHRlbnRGb3JDaGlsZCB3aWxsIGNhbGwKLSAgICAgICAgLy8g
Y2hpbGQuaW50cmluc2ljQ29udGVudExvZ2ljYWxIZWlnaHQoKSBhbmQgY2hpbGQuc2Nyb2xsYmFy
TG9naWNhbEhlaWdodCgpLAotICAgICAgICAvLyBzbyBpZiB0aGUgY2hpbGQgaGFzIGludHJpbnNp
YyBtaW4vbWF4L3ByZWZlcnJlZCBzaXplLCBydW4gbGF5b3V0IG9uIGl0IG5vdyB0byBtYWtlIHN1
cmUKLSAgICAgICAgLy8gaXRzIGxvZ2ljYWwgaGVpZ2h0IGFuZCBzY3JvbGwgYmFycyBhcmUgdXAg
dG8gZGF0ZS4KLSAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChy
ZWxheW91dENoaWxkcmVuLCBjaGlsZCk7Ci0gICAgICAgIC8vIERvbid0IHJlc29sdmUgcGVyY2Vu
dGFnZXMgaW4gY2hpbGRyZW4uIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgZm9yIHRoZSBt
aW4taGVpZ2h0IGNhbGN1bGF0aW9uLAotICAgICAgICAvLyB3aGVyZSB3ZSB3YW50IHBlcmNlbnRh
Z2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXV0by4gRm9yIGZsZXgtYmFzaXMgaXRzZWxmLCB0aGlzIGlz
IG5vdCBhIHByb2JsZW0gYmVjYXVzZQotICAgICAgICAvLyBieSBkZWZpbml0aW9uIHdlIGhhdmUg
YW4gaW5kZWZpbml0ZSBmbGV4IGJhc2lzIGhlcmUgYW5kIHRodXMgcGVyY2VudGFnZXMgc2hvdWxk
IG5vdCByZXNvbHZlLgotICAgICAgICBpZiAoY2hpbGQubmVlZHNMYXlvdXQoKSB8fCAhbV9pbnRy
aW5zaWNTaXplQWxvbmdNYWluQXhpcy5jb250YWlucygmY2hpbGQpKSB7Ci0gICAgICAgICAgICBp
ZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBjaGlsZC5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQotICAgICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoKFdURjo6bnVsbG9wdCk7Ci0gICAgICAgICAgICBjaGlsZC5jbGVhck92ZXJy
aWRpbmdDb250ZW50U2l6ZSgpOwotICAgICAgICAgICAgY2hpbGQuc2V0Q2hpbGROZWVkc0xheW91
dChNYXJrT25seVRoaXMpOwotICAgICAgICAgICAgY2hpbGQubGF5b3V0SWZOZWVkZWQoKTsKLSAg
ICAgICAgICAgIGNhY2hlQ2hpbGRNYWluU2l6ZShjaGlsZCk7Ci0gICAgICAgICAgICBjaGlsZC5j
bGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZSgpOworVmVjdG9yPEZsZXhJ
dGVtPiBSZW5kZXJGbGV4aWJsZUJveDo6Y29uc3RydWN0RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKK3sKKyAgICBTZXRGb3JTY29wZTxib29sPiBpbkZsZXhJdGVtQ29uc3RydWN0aW9u
KG1faW5GbGV4SXRlbUNvbnN0cnVjdGlvbiwgdHJ1ZSk7CisKKyAgICBWZWN0b3I8RmxleEl0ZW0+
IGZsZXhJdGVtczsKKyAgICBmb3IgKGF1dG8qIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0
KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYg
KG1fb3JkZXJJdGVyYXRvci5zaG91bGRTa2lwQ2hpbGQoKmNoaWxkKSkgeworICAgICAgICAgICAg
Ly8gT3V0LW9mLWZsb3cgY2hpbGRyZW4gYXJlIG5vdCBmbGV4IGl0ZW1zLCBzbyB3ZSBza2lwIHRo
ZW0gaGVyZS4KKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
CisgICAgICAgICAgICAgICAgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dCgqY2hpbGQp
OworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKworICAgICAgICBhdXRvIGNvbnN0
cnVjdEZsZXhJdGVtRm9yQ2hpbGRCb3ggPSBbJl0oYXV0byYgY2hpbGRCb3gpIHsKKyAgICAgICAg
ICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRlbnRTaXplKCk7CisgICAgICAgICAgICBp
ZiAoY2hpbGRIYXNJbnRyaW5zaWNNYWluQXhpc1NpemUoY2hpbGRCb3gpKSB7CisgICAgICAgICAg
ICAgICAgLy8gSWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZSwgdGhlbiBjb21wdXRlTWFpbkF4aXNF
eHRlbnRGb3JDaGlsZCB3aWxsIGNhbGwKKyAgICAgICAgICAgICAgICAvLyBjaGlsZC5pbnRyaW5z
aWNDb250ZW50TG9naWNhbEhlaWdodCgpIGFuZCBjaGlsZC5zY3JvbGxiYXJMb2dpY2FsSGVpZ2h0
KCksCisgICAgICAgICAgICAgICAgLy8gc28gaWYgdGhlIGNoaWxkIGhhcyBpbnRyaW5zaWMgbWlu
L21heC9wcmVmZXJyZWQgc2l6ZSwgcnVuIGxheW91dCBvbiBpdCBub3cgdG8gbWFrZSBzdXJlCisg
ICAgICAgICAgICAgICAgLy8gaXRzIGxvZ2ljYWwgaGVpZ2h0IGFuZCBzY3JvbGwgYmFycyBhcmUg
dXAgdG8gZGF0ZS4KKyAgICAgICAgICAgICAgICB1cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVm
b3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNoaWxkQm94KTsKKyAgICAgICAgICAgICAgICAv
LyBEb24ndCByZXNvbHZlIHBlcmNlbnRhZ2VzIGluIGNoaWxkcmVuLiBUaGlzIGlzIGVzcGVjaWFs
bHkgaW1wb3J0YW50IGZvciB0aGUgbWluLWhlaWdodCBjYWxjdWxhdGlvbiwKKyAgICAgICAgICAg
ICAgICAvLyB3aGVyZSB3ZSB3YW50IHBlcmNlbnRhZ2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXV0by4g
Rm9yIGZsZXgtYmFzaXMgaXRzZWxmLCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gYmVjYXVzZQorICAg
ICAgICAgICAgICAgIC8vIGJ5IGRlZmluaXRpb24gd2UgaGF2ZSBhbiBpbmRlZmluaXRlIGZsZXgg
YmFzaXMgaGVyZSBhbmQgdGh1cyBwZXJjZW50YWdlcyBzaG91bGQgbm90IHJlc29sdmUuCisgICAg
ICAgICAgICAgICAgaWYgKGNoaWxkQm94Lm5lZWRzTGF5b3V0KCkgfHwgIW1faW50cmluc2ljU2l6
ZUFsb25nTWFpbkF4aXMuY29udGFpbnMoJmNoaWxkQm94KSkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBjaGlsZEJveC5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3guc2V0T3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCk7Cisg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94
LnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKFdURjo6bnVs
bG9wdCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRl
bnRTaXplKCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LnNldENoaWxkTmVlZHNMYXlv
dXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3gubGF5b3V0SWZO
ZWVkZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVDaGlsZE1haW5TaXplKGNoaWxkQm94
KTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3guY2xlYXJPdmVycmlkaW5nQ29udGFpbmlu
Z0Jsb2NrQ29udGVudFNpemUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlzSG9yaXpvbnRhbEZsb3coKSA/
IGNoaWxkQm94Lmhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCkgOiBjaGlsZEJveC52
ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRJ
bm5lckZsZXhCYXNlU2l6ZSA9IGNvbXB1dGVJbm5lckZsZXhCYXNlU2l6ZUZvckNoaWxkKGNoaWxk
Qm94LCBib3JkZXJBbmRQYWRkaW5nKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRNaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoY2hpbGRCb3gs
IGNoaWxkSW5uZXJGbGV4QmFzZVNpemUpOworICAgICAgICAgICAgYXV0byBtYXJnaW4gPSBpc0hv
cml6b250YWxGbG93KCkgPyBjaGlsZEJveC5ob3Jpem9udGFsTWFyZ2luRXh0ZW50KCkgOiBjaGls
ZEJveC52ZXJ0aWNhbE1hcmdpbkV4dGVudCgpOworICAgICAgICAgICAgcmV0dXJuIEZsZXhJdGVt
KGNoaWxkQm94LCBjaGlsZElubmVyRmxleEJhc2VTaXplLCBjaGlsZE1pbk1heEFwcGxpZWRNYWlu
QXhpc0V4dGVudCwgYm9yZGVyQW5kUGFkZGluZywgbWFyZ2luKTsKKyAgICAgICAgfTsKKyAgICAg
ICAgZmxleEl0ZW1zLmFwcGVuZChjb25zdHJ1Y3RGbGV4SXRlbUZvckNoaWxkQm94KCpjaGlsZCkp
OwogICAgIH0KLSAgICAKLSAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcgPSBpc0hvcml6
b250YWxGbG93KCkgPyBjaGlsZC5ob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpIDog
Y2hpbGQudmVydGljYWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCk7Ci0gICAgTGF5b3V0VW5pdCBj
aGlsZElubmVyRmxleEJhc2VTaXplID0gY29tcHV0ZUlubmVyRmxleEJhc2VTaXplRm9yQ2hpbGQo
Y2hpbGQsIGJvcmRlckFuZFBhZGRpbmcpOwotICAgIExheW91dFVuaXQgY2hpbGRNaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoY2hpbGQsIGNo
aWxkSW5uZXJGbGV4QmFzZVNpemUpOwotICAgIExheW91dFVuaXQgbWFyZ2luID0gaXNIb3Jpem9u
dGFsRmxvdygpID8gY2hpbGQuaG9yaXpvbnRhbE1hcmdpbkV4dGVudCgpIDogY2hpbGQudmVydGlj
YWxNYXJnaW5FeHRlbnQoKTsKLSAgICByZXR1cm4gRmxleEl0ZW0oY2hpbGQsIGNoaWxkSW5uZXJG
bGV4QmFzZVNpemUsIGNoaWxkTWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50LCBib3JkZXJBbmRQ
YWRkaW5nLCBtYXJnaW4pOworICAgIHJldHVybiBmbGV4SXRlbXM7CiB9CiAgICAgCiB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpmcmVlemVWaW9sYXRpb25zKFZlY3RvcjxGbGV4SXRlbSo+JiB2aW9s
YXRpb25zLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4
R3JvdywgZG91YmxlJiB0b3RhbEZsZXhTaHJpbmssIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhT
aHJpbmspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmlu
ZGV4IDY0YmE4Njc5MmVhMmI5NjM3OTQ3MGUxNTE1MDBlMzE2MTg5MjliZDAuLjI1MjA5OWQ3YWFm
YTRmNWEzN2Y1NzhlMzUxY2FhNDEyYWJhMzVhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xNzUsNyArMTc1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogICAgIExheW91dFVuaXQg
YWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQg
Y2hpbGRTaXplKTsKICAgICBMYXlvdXRVbml0IGFkanVzdENoaWxkU2l6ZUZvckFzcGVjdFJhdGlv
Q3Jvc3NBeGlzTWluQW5kTWF4KGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQgY2hp
bGRTaXplKTsKLSAgICBGbGV4SXRlbSBjb25zdHJ1Y3RGbGV4SXRlbShSZW5kZXJCb3gmLCBib29s
IHJlbGF5b3V0Q2hpbGRyZW4pOworICAgIFZlY3RvcjxGbGV4SXRlbT4gY29uc3RydWN0RmxleEl0
ZW1zKGJvb2wgcmVsYXlvdXRDaGlsZHJlbik7CiAgICAgCiAgICAgdm9pZCBmcmVlemVJbmZsZXhp
YmxlSXRlbXMoRmxleFNpZ24sIFZlY3RvcjxGbGV4SXRlbT4mIGNoaWxkcmVuLCBMYXlvdXRVbml0
JiByZW1haW5pbmdGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4R3JvdywgZG91YmxlJiB0b3Rh
bEZsZXhTaHJpbmssIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmspOwogICAgIGJvb2wg
cmVzb2x2ZUZsZXhpYmxlTGVuZ3RocyhGbGV4U2lnbiwgVmVjdG9yPEZsZXhJdGVtPiYsIExheW91
dFVuaXQgaW5pdGlhbEZyZWVTcGFjZSwgTGF5b3V0VW5pdCYgcmVtYWluaW5nRnJlZVNwYWNlLCBk
b3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxGbGV4U2hyaW5rLCBkb3VibGUmIHRv
dGFsV2VpZ2h0ZWRGbGV4U2hyaW5rKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBwcml2YXRlOgogICAg
IAogICAgIC8vIFRoaXMgaXMgU2l6ZUlzVW5rbm93biBvdXRzaWRlIG9mIGxheW91dEJsb2NrKCkK
ICAgICBTaXplRGVmaW5pdGVuZXNzIG1faGFzRGVmaW5pdGVIZWlnaHQgeyBTaXplRGVmaW5pdGVu
ZXNzOjpVbmtub3duIH07Ci0gICAgYm9vbCBtX2luTGF5b3V0IHsgZmFsc2UgfTsKKyAgICBib29s
IG1faW5GbGV4SXRlbUNvbnN0cnVjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJl
c2V0Q2hpbGRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3MzdmNGVlZTk0NmNjZDUxZTQ1ZmUzMWYzMGRkZjg2MWFlNjA1MTFmLi5iOTA4YzY2MTAzZWIw
NDBlN2ZmNGZmMWNiNDJhZGVkNzU0N2MzMDBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MDUtMDYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLWZs
ZXhib3hdIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gbWF5IGFmZmVjdCBzaWJsaW5nIGZsZXggaXRl
bSBoZWlnaHQgY29tcHV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTQ4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFNlcmdpbyBWaWxsYXIg
U2VuaW4uCisKKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50
LWhlaWdodC1kZXNjZW5kYW50cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1s
OiBBZGRlZC4KKwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRNZWRpYVNyYyByZXdvcmsg
djIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1mbGV4Ym94L3BlcmNlbnRhZ2UtaGVpZ2h0LW9uLWRlc2NlbmRhbnQtd2l0aC1m
bGV4LWNvbHVtbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZsZXhib3gvcGVyY2VudGFnZS1oZWlnaHQtb24tZGVzY2Vu
ZGFudC13aXRoLWZsZXgtY29sdW1uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEzMDYxNDAy
NmY4MjllYTY2ZWM3NDQ5NTU4NGY2ZDhkNDgwMDkxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94L3Bl
cmNlbnRhZ2UtaGVpZ2h0LW9uLWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+Q1NTIEZsZXhib3ggVGVzdDogcGVyY2VudGFnZSBoZWlnaHRzIGJvdGggb24g
YSBmbGV4IGl0ZW0gZGVzY2VuZGFudCBhbmQgb24gaXRzIHNpYmxpbmcgZmxleCBpdGVtPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxhbiBCdWp0YXMiIGhyZWY9Im1haWx0bzp6
YWxhbkBhcHBsZS5jb20iPgorCis8cD5UaGUgdGVzdCBQQVNTIGlmIHlvdSBzZWUgYSAxMDBweCB0
YWxsIGdyZWVuIGJhbmQuPC9wPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94L3BlcmNlbnRhZ2UtaGVpZ2h0
LW9uLWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZsZXhib3gvcGVyY2VudGFnZS1oZWln
aHQtb24tZGVzY2VuZGFudC13aXRoLWZsZXgtY29sdW1uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNlYjZj
ZGRmMGYwODhhNzM2NDk2YTFhYjkwZTdhYmRkMmFmZGQ5NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94
L3BlcmNlbnRhZ2UtaGVpZ2h0LW9uLWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi5odG1sCkBA
IC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPkNTUyBGbGV4Ym94IFRlc3Q6IHBlcmNlbnRhZ2UgaGVpZ2h0cyBib3RoIG9uIGEgZmxl
eCBpdGVtIGRlc2NlbmRhbnQgYW5kIG9uIGl0cyBzaWJsaW5nIGZsZXggaXRlbTwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsYW4gQnVqdGFzIiBocmVmPSJtYWlsdG86emFsYW5A
YXBwbGUuY29tIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InBlcmNlbnRhZ2UtaGVpZ2h0LW9u
LWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi1leHBlY3RlZC5odG1sIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1mbGV4Ym94LyNmbGV4LWl0
ZW1zIj4KKworPHA+VGhlIHRlc3QgUEFTUyBpZiB5b3Ugc2VlIGEgMTAwcHggdGFsbCBncmVlbiBi
YW5kLjwvcD4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGhlaWdodDogMTAwcHg7IGZsZXgt
ZGlyZWN0aW9uOiBjb2x1bW47Ij4KKyAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVk
OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgaGVpZ2h0OiAxMDAlOyI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsgaGVpZ2h0OiA1MCUiPjwvZGl2PgorPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428056</attachid>
            <date>2021-05-07 16:23:00 -0700</date>
            <delta_ts>2021-05-07 18:46:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225489-20210507162259.patch</filename>
            <type>text/plain</type>
            <size>15436</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uOTNlMGM1Y2M3N2U3MzFkZTBkNDlkZWU1NDJjYTgw
OTUwNTM5NWJmMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA1LTA2ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94XSBGbGV4
IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVpZ2h0IGNv
bXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBTZXJnaW8gVmlsbGFyIFNlbmluLgorCisg
ICAgICAgIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gdHJpZ2dlcnMgbGF5b3V0IGJvdGggb24gdGhl
IGZsZXggaXRlbSBhbmQgb24gaXRzIGRlc2NlbmRhbnRzIChzZWUgY29uc3RydWN0RmxleEl0ZW0p
LgorICAgICAgICBEdXJpbmcgdGhpcyBsYXlvdXQgYSBwZXJjZW50IGhlaWdodCBkZXNjZW5kYW50
IG1heSBpbmRpcmVjdGx5IHNldCBhbiBpbmNvcnJlY3QgdmFsdWUgb24gdGhlIGZsZXggY29udGFp
bmVyJ3MgCisgICAgICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgKHRoaXMgaXMgZHVlIHRvIHRoZSBv
ZGQgd2F5IHdlIGNob29zZSB0byByZXNvbHZlIHBlcmNlbnQgaGVpZ2h0IHZhbHVlcyBvbiB0aGUg
YW5jZXN0b3IgY2hhaW4sIAorICAgICAgICBzZWUgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCkpLgorICAgICAgICBOb3cgdGhpcyBp
bmNvcnJlY3QgbV9oYXNEZWZpbml0ZUhlaWdodCB2YWx1ZSAoSW5kZWZpbml0ZSkgY2F1c2VzIHRo
ZSBuZXh0IHNpYmxpbmcncyAoYWxzbykgcGVyY2VudCBoZWlnaHQKKyAgICAgICAgcmVzb2x2ZSBm
YWlsIGFzIGl0IHRlbGxzIHRoZSBmbGV4IGl0ZW0gdGhhdCB0aGUgZmxleCBjb250YWluZXIgY2Fu
J3QgaGVscCB3aXRoIHJlc29sdmluZyB0aGUgcGVyY2VudCBoZWlnaHQgdmFsdWUuCisgICAgICAg
IEFzIHRoZSByZXN1bHQgd2UgZW5kIHVwIHdpdGggYW4gaW5jb3JyZWN0LCAwcHggaGVpZ2h0IHZh
bHVlIGZvciB0aGlzIHNpYmxpbmcuCisgICAgICAgIGUuZy4KKyAgICAgICAgPGRpdiBzdHlsZT0i
aGVpZ2h0OiAxMDBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsiPgor
ICAgICAgICAgIDxkaXYgaWQ9ZmxleEl0ZW1BIHN0eWxlPSJoZWlnaHQ6IDUwcHg7Ij48ZGl2IHN0
eWxlPSJoZWlnaHQ6IDEwMCU7Ij48L2Rpdj48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGlkPWZsZXhJ
dGVtQiBzdHlsZT0iaGVpZ2h0OiA1MCU7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IEJ5IHRoZSB0aW1lIHdlIGdldCB0byB0aGUgY29uc3RydWN0aW9uIG9mIGZsZXhJdGVtQiwgdGhl
IFJlbmRlckZsZXhpYmxlQm94J3MgKGZsZXggY29udGFpbmVyKSBtX2hhc0RlZmluaXRlSGVpZ2h0
CisgICAgICAgIGlzIGFscmVhZHkgKGFuZCBpbmNvcnJlY3RseSkgc2V0IHRvIEluZGVmaW5pdGUg
YXMgdGhlIHJlc3VsdCBvZiB1cyB0cnlpbmcgdG8gcmVzb2x2ZSBmbGV4SXRlbUEncyBkZXNjZW5k
YW50IGhlaWdodCBwZXJjZW50YWdlLgorICAgICAgICBUaGlzIEluZGVmaW5pdGUgdmFsdWUgbWFr
ZXMgdGhlIGZsZXhJdGVtQidzIGhlaWdodCByZXNvbHV0aW9uIGZhaWwgYXMgd2UgYmVsaWV2ZSB0
aGF0IHRoZSBmbGV4IGNvbnRhaW5lciBoYXMgaW5kZWZpbml0ZSBoZWlnaHQKKyAgICAgICAgZS5n
ICJoZWlnaHQ6IGF1dG8iLCB3aGlsZSBpdCBpcyBjbGVhcmx5IHJlc29sdmFibGUgKDUwJSBvZiAx
MDBweCkuCisgICAgICAgIE5vdyBpZiB3ZSBmbGlwIHRoZSBvcmRlciBhbmQgZmxleEl0ZW1CIGNv
bWVzIGZpcnN0LCB0aGUgdGVzdCBjYXNlIHBhc3NlcyBmaW5lLgorICAgICAgICBJdCBpcyB2ZXJ5
IHVuZm9ydHVuYXRlIHRoYXQgc29tZSBkZXNjZW5kYW50IGhlaWdodCByZXNvbHZpbmcgcHJvY2Vz
cyBjYW4gdHJpZ2dlciBhIHN0YXRlIGNoYW5nZSBvbiB0aGUgYW5jZXN0b3IgUmVuZGVyRmxleGli
bGVCb3gsIGJ1dAorICAgICAgICBmaXhpbmcgaXQgd291bGQgY2VydGFpbmx5IHJlcXVpcmUgc29t
ZSBzdWJzdGFudGlhbCBhcmNoaXRlY3R1cmFsIGNoYW5nZSAoZS5nLiBwdXNoaW5nIGRvd24gdGhl
IGNvbnN0cmFpbnRzIHRvIHRoZSBnZW9tZXRyeSBmdW5jdGlvbnMgaW5zdGVhZCBvZgorICAgICAg
ICB3YWxraW5nIHRoZSBjb250YWluaW5nIGJsb2NrIGNoYWluKS4KKyAgICAgICAgSW4gdGhpcyBw
YXRjaCwgd2UganVzdCBzY29wZSBtX2hhc0RlZmluaXRlSGVpZ2h0IHNvIHRoYXQgdGhlIFJlbmRl
ckZsZXhpYmxlQm94J3Mgc3RhdGUgaXMgbm90IGVmZmVjdGVkIGJ5IHRoZSBmbGV4IGl0ZW0gY29u
c3RydWN0aW9uLiAKKworICAgICAgICBUZXN0OiBmYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0
aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVC
b3g6OmxheW91dEZsZXhJdGVtcyk6CisKIDIwMjEtMDUtMDUgIEFsaWNpYSBCb3lhIEdhcmPDrWEg
IDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gV2ViS2l0TWVk
aWFTcmMgcmV3b3JrIHYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcAppbmRleCAyMjliNjkzZGYxOTdmZmNiZTI2OTAxYjg4YWIyNTlhYzMwMDUxZjI1
Li4wZGUzNGNmYzA1OGFmNTNkMmMzY2E2M2VmYzJkNjZmZjI2MDRlYTVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTI2OCw5ICsyNjgs
NiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQpCiAgICAgcmVzZXRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0SWZO
ZWVkZWQoKTsKICAgICBtX3JlbGFpZE91dENoaWxkcmVuLmNsZWFyKCk7CiAgICAgCi0gICAgYm9v
bCBvbGRJbkxheW91dCA9IG1faW5MYXlvdXQ7Ci0gICAgbV9pbkxheW91dCA9IHRydWU7Ci0gICAg
CiAgICAgaWYgKHJlY29tcHV0ZUxvZ2ljYWxXaWR0aCgpKQogICAgICAgICByZWxheW91dENoaWxk
cmVuID0gdHJ1ZTsKIApAQCAtMzIxLDggKzMxOCw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6
OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICByZXBh
aW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKICAgICBjbGVhck5lZWRzTGF5b3V0KCk7Ci0g
ICAgCi0gICAgbV9pbkxheW91dCA9IG9sZEluTGF5b3V0OwogfQogCiB2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjphcHBlbmRDaGlsZEZyYW1lUmVjdHMoQ2hpbGRGcmFtZVJlY3RzJiBjaGlsZEZyYW1l
UmVjdHMpCkBAIC04NDUsNyArODQwLDcgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y2FuQ29t
cHV0ZVBlcmNlbnRhZ2VGbGV4QmFzaXMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgY28KICAgICBp
ZiAobV9oYXNEZWZpbml0ZUhlaWdodCA9PSBTaXplRGVmaW5pdGVuZXNzOjpJbmRlZmluaXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYm9vbCBkZWZpbml0ZSA9IGNoaWxkLmNvbXB1dGVQ
ZXJjZW50YWdlTG9naWNhbEhlaWdodChmbGV4QmFzaXMsIHVwZGF0ZURlc2NlbmRhbnRzKS5oYXNW
YWx1ZSgpOwotICAgIGlmIChtX2luTGF5b3V0ICYmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID09IGNoaWxkLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpKSB7CisgICAgaWYgKCFtX2luRmxl
eEl0ZW1Db25zdHJ1Y3Rpb24gJiYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gY2hpbGQu
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIHJlYWNoIHRo
aXMgY29kZSBldmVuIHdoaWxlIHdlJ3JlIG5vdCBsYXlpbmcgb3Vyc2VsdmVzIG91dCwgc3VjaAog
ICAgICAgICAvLyBhcyBmcm9tIG1haW5TaXplRm9yUGVyY2VudGFnZVJlc29sdXRpb24uCiAgICAg
ICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgPSBkZWZpbml0ZSA/IFNpemVEZWZpbml0ZW5lc3M6OkRl
ZmluaXRlIDogU2l6ZURlZmluaXRlbmVzczo6SW5kZWZpbml0ZTsKQEAgLTk2NSwyMSArOTYwLDcg
QEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKICAgICAvLyBTZXQgdXAgb3VyIG1hc3RlciBsaXN0IG9mIGZsZXggaXRlbXMuIEFs
bCBvZiB0aGUgcmVzdCBvZiB0aGUgYWxnb3JpdGhtCiAgICAgLy8gc2hvdWxkIHdvcmsgb2ZmIHRo
aXMgbGlzdCBvZiBhIHN1YnNldC4KICAgICAvLyBUT0RPKGNiaWVzaW5nZXIpOiBUaGF0IHNlY29u
ZCBwYXJ0IGlzIG5vdCB5ZXQgdHJ1ZS4KLSAgICBWZWN0b3I8RmxleEl0ZW0+IGFsbEl0ZW1zOwot
ICAgIG1fb3JkZXJJdGVyYXRvci5maXJzdCgpOwotICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9
IG1fb3JkZXJJdGVyYXRvci5jdXJyZW50Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRlckl0
ZXJhdG9yLm5leHQoKSkgewotICAgICAgICBpZiAobV9vcmRlckl0ZXJhdG9yLnNob3VsZFNraXBD
aGlsZCgqY2hpbGQpKSB7Ci0gICAgICAgICAgICAvLyBPdXQtb2YtZmxvdyBjaGlsZHJlbiBhcmUg
bm90IGZsZXggaXRlbXMsIHNvIHdlIHNraXAgdGhlbSBoZXJlLgotICAgICAgICAgICAgaWYgKGNo
aWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgICAgICBwcmVwYXJlQ2hp
bGRGb3JQb3NpdGlvbmVkTGF5b3V0KCpjaGlsZCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgfQotICAgICAgICBhbGxJdGVtcy5hcHBlbmQoY29uc3RydWN0RmxleEl0ZW0oKmNoaWxk
LCByZWxheW91dENoaWxkcmVuKSk7Ci0gICAgfQotCi0gICAgLy8gY29uc3RydWN0RmxleEl0ZW0o
KSBtaWdodCBzZXQgdGhlIG92ZXJyaWRlIGNvbnRhaW5pbmcgYmxvY2sgaGVpZ2h0IHNvIGFueSB2
YWx1ZSBjYWNoZWQgZm9yIGRlZmluaXRlbmVzcyBtaWdodCBiZSBpbmNvcnJlY3QuCi0gICAgbV9o
YXNEZWZpbml0ZUhlaWdodCA9IFNpemVEZWZpbml0ZW5lc3M6OlVua25vd247Ci0gICAgCisgICAg
YXV0byBhbGxJdGVtcyA9IGNvbnN0cnVjdEZsZXhJdGVtcyhyZWxheW91dENoaWxkcmVuKTsKICAg
ICBjb25zdCBMYXlvdXRVbml0IGxpbmVCcmVha0xlbmd0aCA9IG1haW5BeGlzQ29udGVudEV4dGVu
dChMYXlvdXRVbml0OjptYXgoKSk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3ZWVuSXRlbXMgPSBj
b21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5JdGVtcyk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3
ZWVuTGluZXMgPSBjb21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5MaW5lcyk7CkBAIC0xMjk0LDM2
ICsxMjc1LDUyIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmFkanVzdENoaWxkU2l6
ZUZvckFzcGVjdFJhdGlvQ3Jvc3NBeGlzTWluQW5kTWF4KGNvCiAgICAgcmV0dXJuIGNoaWxkU2l6
ZTsKIH0KIAotRmxleEl0ZW0gUmVuZGVyRmxleGlibGVCb3g6OmNvbnN0cnVjdEZsZXhJdGVtKFJl
bmRlckJveCYgY2hpbGQsIGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKLXsKLSAgICBjaGlsZC5jbGVh
ck92ZXJyaWRpbmdDb250ZW50U2l6ZSgpOwotICAgIGlmIChjaGlsZEhhc0ludHJpbnNpY01haW5B
eGlzU2l6ZShjaGlsZCkpIHsKLSAgICAgICAgLy8gSWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZSwg
dGhlbiBjb21wdXRlTWFpbkF4aXNFeHRlbnRGb3JDaGlsZCB3aWxsIGNhbGwKLSAgICAgICAgLy8g
Y2hpbGQuaW50cmluc2ljQ29udGVudExvZ2ljYWxIZWlnaHQoKSBhbmQgY2hpbGQuc2Nyb2xsYmFy
TG9naWNhbEhlaWdodCgpLAotICAgICAgICAvLyBzbyBpZiB0aGUgY2hpbGQgaGFzIGludHJpbnNp
YyBtaW4vbWF4L3ByZWZlcnJlZCBzaXplLCBydW4gbGF5b3V0IG9uIGl0IG5vdyB0byBtYWtlIHN1
cmUKLSAgICAgICAgLy8gaXRzIGxvZ2ljYWwgaGVpZ2h0IGFuZCBzY3JvbGwgYmFycyBhcmUgdXAg
dG8gZGF0ZS4KLSAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChy
ZWxheW91dENoaWxkcmVuLCBjaGlsZCk7Ci0gICAgICAgIC8vIERvbid0IHJlc29sdmUgcGVyY2Vu
dGFnZXMgaW4gY2hpbGRyZW4uIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgZm9yIHRoZSBt
aW4taGVpZ2h0IGNhbGN1bGF0aW9uLAotICAgICAgICAvLyB3aGVyZSB3ZSB3YW50IHBlcmNlbnRh
Z2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXV0by4gRm9yIGZsZXgtYmFzaXMgaXRzZWxmLCB0aGlzIGlz
IG5vdCBhIHByb2JsZW0gYmVjYXVzZQotICAgICAgICAvLyBieSBkZWZpbml0aW9uIHdlIGhhdmUg
YW4gaW5kZWZpbml0ZSBmbGV4IGJhc2lzIGhlcmUgYW5kIHRodXMgcGVyY2VudGFnZXMgc2hvdWxk
IG5vdCByZXNvbHZlLgotICAgICAgICBpZiAoY2hpbGQubmVlZHNMYXlvdXQoKSB8fCAhbV9pbnRy
aW5zaWNTaXplQWxvbmdNYWluQXhpcy5jb250YWlucygmY2hpbGQpKSB7Ci0gICAgICAgICAgICBp
ZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBjaGlsZC5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQotICAgICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoKFdURjo6bnVsbG9wdCk7Ci0gICAgICAgICAgICBjaGlsZC5jbGVhck92ZXJy
aWRpbmdDb250ZW50U2l6ZSgpOwotICAgICAgICAgICAgY2hpbGQuc2V0Q2hpbGROZWVkc0xheW91
dChNYXJrT25seVRoaXMpOwotICAgICAgICAgICAgY2hpbGQubGF5b3V0SWZOZWVkZWQoKTsKLSAg
ICAgICAgICAgIGNhY2hlQ2hpbGRNYWluU2l6ZShjaGlsZCk7Ci0gICAgICAgICAgICBjaGlsZC5j
bGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZSgpOworVmVjdG9yPEZsZXhJ
dGVtPiBSZW5kZXJGbGV4aWJsZUJveDo6Y29uc3RydWN0RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKK3sKKyAgICBTZXRGb3JTY29wZTxib29sPiBpbkZsZXhJdGVtQ29uc3RydWN0aW9u
KG1faW5GbGV4SXRlbUNvbnN0cnVjdGlvbiwgdHJ1ZSk7CisKKyAgICBWZWN0b3I8RmxleEl0ZW0+
IGZsZXhJdGVtczsKKyAgICBmb3IgKGF1dG8qIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0
KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYg
KG1fb3JkZXJJdGVyYXRvci5zaG91bGRTa2lwQ2hpbGQoKmNoaWxkKSkgeworICAgICAgICAgICAg
Ly8gT3V0LW9mLWZsb3cgY2hpbGRyZW4gYXJlIG5vdCBmbGV4IGl0ZW1zLCBzbyB3ZSBza2lwIHRo
ZW0gaGVyZS4KKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
CisgICAgICAgICAgICAgICAgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dCgqY2hpbGQp
OworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKworICAgICAgICBhdXRvIGNvbnN0
cnVjdEZsZXhJdGVtRm9yQ2hpbGRCb3ggPSBbJl0oYXV0byYgY2hpbGRCb3gpIHsKKyAgICAgICAg
ICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRlbnRTaXplKCk7CisgICAgICAgICAgICBp
ZiAoY2hpbGRIYXNJbnRyaW5zaWNNYWluQXhpc1NpemUoY2hpbGRCb3gpKSB7CisgICAgICAgICAg
ICAgICAgLy8gSWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZSwgdGhlbiBjb21wdXRlTWFpbkF4aXNF
eHRlbnRGb3JDaGlsZCB3aWxsIGNhbGwKKyAgICAgICAgICAgICAgICAvLyBjaGlsZC5pbnRyaW5z
aWNDb250ZW50TG9naWNhbEhlaWdodCgpIGFuZCBjaGlsZC5zY3JvbGxiYXJMb2dpY2FsSGVpZ2h0
KCksCisgICAgICAgICAgICAgICAgLy8gc28gaWYgdGhlIGNoaWxkIGhhcyBpbnRyaW5zaWMgbWlu
L21heC9wcmVmZXJyZWQgc2l6ZSwgcnVuIGxheW91dCBvbiBpdCBub3cgdG8gbWFrZSBzdXJlCisg
ICAgICAgICAgICAgICAgLy8gaXRzIGxvZ2ljYWwgaGVpZ2h0IGFuZCBzY3JvbGwgYmFycyBhcmUg
dXAgdG8gZGF0ZS4KKyAgICAgICAgICAgICAgICB1cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVm
b3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNoaWxkQm94KTsKKyAgICAgICAgICAgICAgICAv
LyBEb24ndCByZXNvbHZlIHBlcmNlbnRhZ2VzIGluIGNoaWxkcmVuLiBUaGlzIGlzIGVzcGVjaWFs
bHkgaW1wb3J0YW50IGZvciB0aGUgbWluLWhlaWdodCBjYWxjdWxhdGlvbiwKKyAgICAgICAgICAg
ICAgICAvLyB3aGVyZSB3ZSB3YW50IHBlcmNlbnRhZ2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXV0by4g
Rm9yIGZsZXgtYmFzaXMgaXRzZWxmLCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gYmVjYXVzZQorICAg
ICAgICAgICAgICAgIC8vIGJ5IGRlZmluaXRpb24gd2UgaGF2ZSBhbiBpbmRlZmluaXRlIGZsZXgg
YmFzaXMgaGVyZSBhbmQgdGh1cyBwZXJjZW50YWdlcyBzaG91bGQgbm90IHJlc29sdmUuCisgICAg
ICAgICAgICAgICAgaWYgKGNoaWxkQm94Lm5lZWRzTGF5b3V0KCkgfHwgIW1faW50cmluc2ljU2l6
ZUFsb25nTWFpbkF4aXMuY29udGFpbnMoJmNoaWxkQm94KSkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBjaGlsZEJveC5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3guc2V0T3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCk7Cisg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94
LnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKFdURjo6bnVs
bG9wdCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRl
bnRTaXplKCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LnNldENoaWxkTmVlZHNMYXlv
dXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3gubGF5b3V0SWZO
ZWVkZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVDaGlsZE1haW5TaXplKGNoaWxkQm94
KTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3guY2xlYXJPdmVycmlkaW5nQ29udGFpbmlu
Z0Jsb2NrQ29udGVudFNpemUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlzSG9yaXpvbnRhbEZsb3coKSA/
IGNoaWxkQm94Lmhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCkgOiBjaGlsZEJveC52
ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRJ
bm5lckZsZXhCYXNlU2l6ZSA9IGNvbXB1dGVJbm5lckZsZXhCYXNlU2l6ZUZvckNoaWxkKGNoaWxk
Qm94LCBib3JkZXJBbmRQYWRkaW5nKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRNaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoY2hpbGRCb3gs
IGNoaWxkSW5uZXJGbGV4QmFzZVNpemUpOworICAgICAgICAgICAgYXV0byBtYXJnaW4gPSBpc0hv
cml6b250YWxGbG93KCkgPyBjaGlsZEJveC5ob3Jpem9udGFsTWFyZ2luRXh0ZW50KCkgOiBjaGls
ZEJveC52ZXJ0aWNhbE1hcmdpbkV4dGVudCgpOworICAgICAgICAgICAgcmV0dXJuIEZsZXhJdGVt
KGNoaWxkQm94LCBjaGlsZElubmVyRmxleEJhc2VTaXplLCBjaGlsZE1pbk1heEFwcGxpZWRNYWlu
QXhpc0V4dGVudCwgYm9yZGVyQW5kUGFkZGluZywgbWFyZ2luKTsKKyAgICAgICAgfTsKKyAgICAg
ICAgZmxleEl0ZW1zLmFwcGVuZChjb25zdHJ1Y3RGbGV4SXRlbUZvckNoaWxkQm94KCpjaGlsZCkp
OwogICAgIH0KLSAgICAKLSAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcgPSBpc0hvcml6
b250YWxGbG93KCkgPyBjaGlsZC5ob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpIDog
Y2hpbGQudmVydGljYWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCk7Ci0gICAgTGF5b3V0VW5pdCBj
aGlsZElubmVyRmxleEJhc2VTaXplID0gY29tcHV0ZUlubmVyRmxleEJhc2VTaXplRm9yQ2hpbGQo
Y2hpbGQsIGJvcmRlckFuZFBhZGRpbmcpOwotICAgIExheW91dFVuaXQgY2hpbGRNaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoY2hpbGQsIGNo
aWxkSW5uZXJGbGV4QmFzZVNpemUpOwotICAgIExheW91dFVuaXQgbWFyZ2luID0gaXNIb3Jpem9u
dGFsRmxvdygpID8gY2hpbGQuaG9yaXpvbnRhbE1hcmdpbkV4dGVudCgpIDogY2hpbGQudmVydGlj
YWxNYXJnaW5FeHRlbnQoKTsKLSAgICByZXR1cm4gRmxleEl0ZW0oY2hpbGQsIGNoaWxkSW5uZXJG
bGV4QmFzZVNpemUsIGNoaWxkTWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50LCBib3JkZXJBbmRQ
YWRkaW5nLCBtYXJnaW4pOworICAgIHJldHVybiBmbGV4SXRlbXM7CiB9CiAgICAgCiB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpmcmVlemVWaW9sYXRpb25zKFZlY3RvcjxGbGV4SXRlbSo+JiB2aW9s
YXRpb25zLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4
R3JvdywgZG91YmxlJiB0b3RhbEZsZXhTaHJpbmssIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhT
aHJpbmspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmlu
ZGV4IDY0YmE4Njc5MmVhMmI5NjM3OTQ3MGUxNTE1MDBlMzE2MTg5MjliZDAuLjI1MjA5OWQ3YWFm
YTRmNWEzN2Y1NzhlMzUxY2FhNDEyYWJhMzVhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xNzUsNyArMTc1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogICAgIExheW91dFVuaXQg
YWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQg
Y2hpbGRTaXplKTsKICAgICBMYXlvdXRVbml0IGFkanVzdENoaWxkU2l6ZUZvckFzcGVjdFJhdGlv
Q3Jvc3NBeGlzTWluQW5kTWF4KGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQgY2hp
bGRTaXplKTsKLSAgICBGbGV4SXRlbSBjb25zdHJ1Y3RGbGV4SXRlbShSZW5kZXJCb3gmLCBib29s
IHJlbGF5b3V0Q2hpbGRyZW4pOworICAgIFZlY3RvcjxGbGV4SXRlbT4gY29uc3RydWN0RmxleEl0
ZW1zKGJvb2wgcmVsYXlvdXRDaGlsZHJlbik7CiAgICAgCiAgICAgdm9pZCBmcmVlemVJbmZsZXhp
YmxlSXRlbXMoRmxleFNpZ24sIFZlY3RvcjxGbGV4SXRlbT4mIGNoaWxkcmVuLCBMYXlvdXRVbml0
JiByZW1haW5pbmdGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4R3JvdywgZG91YmxlJiB0b3Rh
bEZsZXhTaHJpbmssIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmspOwogICAgIGJvb2wg
cmVzb2x2ZUZsZXhpYmxlTGVuZ3RocyhGbGV4U2lnbiwgVmVjdG9yPEZsZXhJdGVtPiYsIExheW91
dFVuaXQgaW5pdGlhbEZyZWVTcGFjZSwgTGF5b3V0VW5pdCYgcmVtYWluaW5nRnJlZVNwYWNlLCBk
b3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxGbGV4U2hyaW5rLCBkb3VibGUmIHRv
dGFsV2VpZ2h0ZWRGbGV4U2hyaW5rKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBwcml2YXRlOgogICAg
IAogICAgIC8vIFRoaXMgaXMgU2l6ZUlzVW5rbm93biBvdXRzaWRlIG9mIGxheW91dEJsb2NrKCkK
ICAgICBTaXplRGVmaW5pdGVuZXNzIG1faGFzRGVmaW5pdGVIZWlnaHQgeyBTaXplRGVmaW5pdGVu
ZXNzOjpVbmtub3duIH07Ci0gICAgYm9vbCBtX2luTGF5b3V0IHsgZmFsc2UgfTsKKyAgICBib29s
IG1faW5GbGV4SXRlbUNvbnN0cnVjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJl
c2V0Q2hpbGRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3MzdmNGVlZTk0NmNjZDUxZTQ1ZmUzMWYzMGRkZjg2MWFlNjA1MTFmLi5iOTA4YzY2MTAzZWIw
NDBlN2ZmNGZmMWNiNDJhZGVkNzU0N2MzMDBlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MDUtMDYgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLWZs
ZXhib3hdIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gbWF5IGFmZmVjdCBzaWJsaW5nIGZsZXggaXRl
bSBoZWlnaHQgY29tcHV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTQ4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFNlcmdpbyBWaWxsYXIg
U2VuaW4uCisKKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50
LWhlaWdodC1kZXNjZW5kYW50cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1s
OiBBZGRlZC4KKwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRNZWRpYVNyYyByZXdvcmsg
djIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1mbGV4Ym94L3BlcmNlbnRhZ2UtaGVpZ2h0LW9uLWRlc2NlbmRhbnQtd2l0aC1m
bGV4LWNvbHVtbi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZsZXhib3gvcGVyY2VudGFnZS1oZWlnaHQtb24tZGVzY2Vu
ZGFudC13aXRoLWZsZXgtY29sdW1uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTEzMDYxNDAy
NmY4MjllYTY2ZWM3NDQ5NTU4NGY2ZDhkNDgwMDkxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94L3Bl
cmNlbnRhZ2UtaGVpZ2h0LW9uLWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi1leHBlY3RlZC5o
dG1sCkBAIC0wLDAgKzEsNyBAQAorPCFET0NUWVBFIGh0bWw+Cis8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+Cis8dGl0bGU+Q1NTIEZsZXhib3ggVGVzdDogcGVyY2VudGFnZSBoZWlnaHRzIGJvdGggb24g
YSBmbGV4IGl0ZW0gZGVzY2VuZGFudCBhbmQgb24gaXRzIHNpYmxpbmcgZmxleCBpdGVtPC90aXRs
ZT4KKzxsaW5rIHJlbD0iYXV0aG9yIiB0aXRsZT0iQWxhbiBCdWp0YXMiIGhyZWY9Im1haWx0bzp6
YWxhbkBhcHBsZS5jb20iPgorCis8cD5UaGUgdGVzdCBQQVNTIGlmIHlvdSBzZWUgYSAxMDBweCB0
YWxsIGdyZWVuIGJhbmQuPC9wPgorPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47
IGhlaWdodDogMTAwcHg7Ij48L2Rpdj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94L3BlcmNlbnRhZ2UtaGVpZ2h0
LW9uLWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWZsZXhib3gvcGVyY2VudGFnZS1oZWln
aHQtb24tZGVzY2VuZGFudC13aXRoLWZsZXgtY29sdW1uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTNlYjZj
ZGRmMGYwODhhNzM2NDk2YTFhYjkwZTdhYmRkMmFmZGQ5NAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1mbGV4Ym94
L3BlcmNlbnRhZ2UtaGVpZ2h0LW9uLWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi5odG1sCkBA
IC0wLDAgKzEsMTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
PHRpdGxlPkNTUyBGbGV4Ym94IFRlc3Q6IHBlcmNlbnRhZ2UgaGVpZ2h0cyBib3RoIG9uIGEgZmxl
eCBpdGVtIGRlc2NlbmRhbnQgYW5kIG9uIGl0cyBzaWJsaW5nIGZsZXggaXRlbTwvdGl0bGU+Cis8
bGluayByZWw9ImF1dGhvciIgdGl0bGU9IkFsYW4gQnVqdGFzIiBocmVmPSJtYWlsdG86emFsYW5A
YXBwbGUuY29tIj4KKzxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9InBlcmNlbnRhZ2UtaGVpZ2h0LW9u
LWRlc2NlbmRhbnQtd2l0aC1mbGV4LWNvbHVtbi1leHBlY3RlZC5odG1sIj4KKzxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1mbGV4Ym94LyNmbGV4LWl0
ZW1zIj4KKworPHA+VGhlIHRlc3QgUEFTUyBpZiB5b3Ugc2VlIGEgMTAwcHggdGFsbCBncmVlbiBi
YW5kLjwvcD4KKzxkaXYgc3R5bGU9ImRpc3BsYXk6IGZsZXg7IGhlaWdodDogMTAwcHg7IGZsZXgt
ZGlyZWN0aW9uOiBjb2x1bW47Ij4KKyAgPGRpdiBzdHlsZT0iYmFja2dyb3VuZC1jb2xvcjogcmVk
OyBoZWlnaHQ6IDUwcHg7Ij4KKyAgICA8ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiBncmVl
bjsgaGVpZ2h0OiAxMDAlOyI+PC9kaXY+CisgIDwvZGl2PgorICA8ZGl2IHN0eWxlPSJiYWNrZ3Jv
dW5kLWNvbG9yOiBncmVlbjsgaGVpZ2h0OiA1MCUiPjwvZGl2PgorPC9kaXY+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428069</attachid>
            <date>2021-05-07 18:46:50 -0700</date>
            <delta_ts>2021-05-11 11:22:22 -0700</delta_ts>
            <desc>[fast-cq] Patch</desc>
            <filename>bug-225489-20210507184649.patch</filename>
            <type>text/plain</type>
            <size>14726</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MDMxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjE5ZDEyNDY2NTYyNDFh
MTM2ZGYzNzJjYjQxZjMyZGViNWY0MzYwNy4uZGFjNTlmNmU5ZjFmN2I0MWI1YzQ0MTJkZjQxOWVj
NzdjOTAxOTFhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA1LTA3ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94XSBGbGV4
IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVpZ2h0IGNv
bXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBTZXJnaW8gVmlsbGFyIFNlbmluLgorCisg
ICAgICAgIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gdHJpZ2dlcnMgbGF5b3V0IGJvdGggb24gdGhl
IGZsZXggaXRlbSBhbmQgb24gaXRzIGRlc2NlbmRhbnRzIChzZWUgY29uc3RydWN0RmxleEl0ZW0p
LgorICAgICAgICBEdXJpbmcgdGhpcyBsYXlvdXQgYSBwZXJjZW50IGhlaWdodCBkZXNjZW5kYW50
IG1heSBpbmRpcmVjdGx5IHNldCBhbiBpbmNvcnJlY3QgdmFsdWUgb24gdGhlIGZsZXggY29udGFp
bmVyJ3MgCisgICAgICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgKHRoaXMgaXMgZHVlIHRvIHRoZSBv
ZGQgd2F5IHdlIGNob29zZSB0byByZXNvbHZlIHBlcmNlbnQgaGVpZ2h0IHZhbHVlcyBvbiB0aGUg
YW5jZXN0b3IgY2hhaW4sIAorICAgICAgICBzZWUgc2V0T3ZlcnJpZGluZ0NvbnRhaW5pbmdCbG9j
a0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCkpLgorICAgICAgICBOb3cgdGhpcyBp
bmNvcnJlY3QgbV9oYXNEZWZpbml0ZUhlaWdodCB2YWx1ZSAoSW5kZWZpbml0ZSkgY2F1c2VzIHRo
ZSBuZXh0IHNpYmxpbmcncyAoYWxzbykgcGVyY2VudCBoZWlnaHQKKyAgICAgICAgcmVzb2x2ZSBm
YWlsIGFzIGl0IHRlbGxzIHRoZSBmbGV4IGl0ZW0gdGhhdCB0aGUgZmxleCBjb250YWluZXIgY2Fu
J3QgaGVscCB3aXRoIHJlc29sdmluZyB0aGUgcGVyY2VudCBoZWlnaHQgdmFsdWUuCisgICAgICAg
IEFzIHRoZSByZXN1bHQgd2UgZW5kIHVwIHdpdGggYW4gaW5jb3JyZWN0LCAwcHggaGVpZ2h0IHZh
bHVlIGZvciB0aGlzIHNpYmxpbmcuCisgICAgICAgIGUuZy4KKyAgICAgICAgPGRpdiBzdHlsZT0i
aGVpZ2h0OiAxMDBweDsgZGlzcGxheTogZmxleDsgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsiPgor
ICAgICAgICAgIDxkaXYgaWQ9ZmxleEl0ZW1BIHN0eWxlPSJoZWlnaHQ6IDUwcHg7Ij48ZGl2IHN0
eWxlPSJoZWlnaHQ6IDEwMCU7Ij48L2Rpdj48L2Rpdj4KKyAgICAgICAgICA8ZGl2IGlkPWZsZXhJ
dGVtQiBzdHlsZT0iaGVpZ2h0OiA1MCU7Ij48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IEJ5IHRoZSB0aW1lIHdlIGdldCB0byB0aGUgY29uc3RydWN0aW9uIG9mIGZsZXhJdGVtQiwgdGhl
IFJlbmRlckZsZXhpYmxlQm94J3MgKGZsZXggY29udGFpbmVyKSBtX2hhc0RlZmluaXRlSGVpZ2h0
CisgICAgICAgIGlzIGFscmVhZHkgKGFuZCBpbmNvcnJlY3RseSkgc2V0IHRvIEluZGVmaW5pdGUg
YXMgdGhlIHJlc3VsdCBvZiB1cyB0cnlpbmcgdG8gcmVzb2x2ZSBmbGV4SXRlbUEncyBkZXNjZW5k
YW50IGhlaWdodCBwZXJjZW50YWdlLgorICAgICAgICBUaGlzIEluZGVmaW5pdGUgdmFsdWUgbWFr
ZXMgdGhlIGZsZXhJdGVtQidzIGhlaWdodCByZXNvbHV0aW9uIGZhaWwgYXMgd2UgYmVsaWV2ZSB0
aGF0IHRoZSBmbGV4IGNvbnRhaW5lciBoYXMgaW5kZWZpbml0ZSBoZWlnaHQKKyAgICAgICAgZS5n
ICJoZWlnaHQ6IGF1dG8iLCB3aGlsZSBpdCBpcyBjbGVhcmx5IHJlc29sdmFibGUgKDUwJSBvZiAx
MDBweCkuCisgICAgICAgIE5vdyBpZiB3ZSBmbGlwIHRoZSBvcmRlciBhbmQgZmxleEl0ZW1CIGNv
bWVzIGZpcnN0LCB0aGUgdGVzdCBjYXNlIHBhc3NlcyBmaW5lLgorICAgICAgICBJdCBpcyB2ZXJ5
IHVuZm9ydHVuYXRlIHRoYXQgc29tZSBkZXNjZW5kYW50IGhlaWdodCByZXNvbHZpbmcgcHJvY2Vz
cyBjYW4gdHJpZ2dlciBhIHN0YXRlIGNoYW5nZSBvbiB0aGUgYW5jZXN0b3IgUmVuZGVyRmxleGli
bGVCb3gsIGJ1dAorICAgICAgICBmaXhpbmcgaXQgd291bGQgY2VydGFpbmx5IHJlcXVpcmUgc29t
ZSBzdWJzdGFudGlhbCBhcmNoaXRlY3R1cmFsIGNoYW5nZSAoZS5nLiBwdXNoaW5nIGRvd24gdGhl
IGNvbnN0cmFpbnRzIHRvIHRoZSBnZW9tZXRyeSBmdW5jdGlvbnMgaW5zdGVhZCBvZgorICAgICAg
ICB3YWxraW5nIHRoZSBjb250YWluaW5nIGJsb2NrIGNoYWluKS4KKyAgICAgICAgSW4gdGhpcyBw
YXRjaCwgd2UganVzdCBzY29wZSBtX2hhc0RlZmluaXRlSGVpZ2h0IHNvIHRoYXQgdGhlIFJlbmRl
ckZsZXhpYmxlQm94J3Mgc3RhdGUgaXMgbm90IGVmZmVjdGVkIGJ5IHRoZSBmbGV4IGl0ZW0gY29u
c3RydWN0aW9uLiAKKworICAgICAgICBUZXN0OiBmYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0
aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCisKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyRmxleGlibGVC
b3g6OmxheW91dEZsZXhJdGVtcyk6CisKIDIwMjEtMDUtMDUgIEFsaWNpYSBCb3lhIEdhcmPDrWEg
IDxhYm95YUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtNU0VdW0dTdHJlYW1lcl0gV2ViS2l0TWVk
aWFTcmMgcmV3b3JrIHYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcAppbmRleCAyMjliNjkzZGYxOTdmZmNiZTI2OTAxYjg4YWIyNTlhYzMwMDUxZjI1
Li4wZGUzNGNmYzA1OGFmNTNkMmMzY2E2M2VmYzJkNjZmZjI2MDRlYTVjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHAKQEAgLTI2OCw5ICsyNjgs
NiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQpCiAgICAgcmVzZXRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0SWZO
ZWVkZWQoKTsKICAgICBtX3JlbGFpZE91dENoaWxkcmVuLmNsZWFyKCk7CiAgICAgCi0gICAgYm9v
bCBvbGRJbkxheW91dCA9IG1faW5MYXlvdXQ7Ci0gICAgbV9pbkxheW91dCA9IHRydWU7Ci0gICAg
CiAgICAgaWYgKHJlY29tcHV0ZUxvZ2ljYWxXaWR0aCgpKQogICAgICAgICByZWxheW91dENoaWxk
cmVuID0gdHJ1ZTsKIApAQCAtMzIxLDggKzMxOCw2IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6
OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCkKICAgICByZXBh
aW50ZXIucmVwYWludEFmdGVyTGF5b3V0KCk7CiAKICAgICBjbGVhck5lZWRzTGF5b3V0KCk7Ci0g
ICAgCi0gICAgbV9pbkxheW91dCA9IG9sZEluTGF5b3V0OwogfQogCiB2b2lkIFJlbmRlckZsZXhp
YmxlQm94OjphcHBlbmRDaGlsZEZyYW1lUmVjdHMoQ2hpbGRGcmFtZVJlY3RzJiBjaGlsZEZyYW1l
UmVjdHMpCkBAIC04NDUsNyArODQwLDcgQEAgYm9vbCBSZW5kZXJGbGV4aWJsZUJveDo6Y2FuQ29t
cHV0ZVBlcmNlbnRhZ2VGbGV4QmFzaXMoY29uc3QgUmVuZGVyQm94JiBjaGlsZCwgY28KICAgICBp
ZiAobV9oYXNEZWZpbml0ZUhlaWdodCA9PSBTaXplRGVmaW5pdGVuZXNzOjpJbmRlZmluaXRlKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgYm9vbCBkZWZpbml0ZSA9IGNoaWxkLmNvbXB1dGVQ
ZXJjZW50YWdlTG9naWNhbEhlaWdodChmbGV4QmFzaXMsIHVwZGF0ZURlc2NlbmRhbnRzKS5oYXNW
YWx1ZSgpOwotICAgIGlmIChtX2luTGF5b3V0ICYmIChpc0hvcml6b250YWxXcml0aW5nTW9kZSgp
ID09IGNoaWxkLmlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkpKSB7CisgICAgaWYgKCFtX2luRmxl
eEl0ZW1Db25zdHJ1Y3Rpb24gJiYgKGlzSG9yaXpvbnRhbFdyaXRpbmdNb2RlKCkgPT0gY2hpbGQu
aXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSkpIHsKICAgICAgICAgLy8gV2UgY2FuIHJlYWNoIHRo
aXMgY29kZSBldmVuIHdoaWxlIHdlJ3JlIG5vdCBsYXlpbmcgb3Vyc2VsdmVzIG91dCwgc3VjaAog
ICAgICAgICAvLyBhcyBmcm9tIG1haW5TaXplRm9yUGVyY2VudGFnZVJlc29sdXRpb24uCiAgICAg
ICAgIG1faGFzRGVmaW5pdGVIZWlnaHQgPSBkZWZpbml0ZSA/IFNpemVEZWZpbml0ZW5lc3M6OkRl
ZmluaXRlIDogU2l6ZURlZmluaXRlbmVzczo6SW5kZWZpbml0ZTsKQEAgLTk2NSwyMSArOTYwLDcg
QEAgdm9pZCBSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKICAgICAvLyBTZXQgdXAgb3VyIG1hc3RlciBsaXN0IG9mIGZsZXggaXRlbXMuIEFs
bCBvZiB0aGUgcmVzdCBvZiB0aGUgYWxnb3JpdGhtCiAgICAgLy8gc2hvdWxkIHdvcmsgb2ZmIHRo
aXMgbGlzdCBvZiBhIHN1YnNldC4KICAgICAvLyBUT0RPKGNiaWVzaW5nZXIpOiBUaGF0IHNlY29u
ZCBwYXJ0IGlzIG5vdCB5ZXQgdHJ1ZS4KLSAgICBWZWN0b3I8RmxleEl0ZW0+IGFsbEl0ZW1zOwot
ICAgIG1fb3JkZXJJdGVyYXRvci5maXJzdCgpOwotICAgIGZvciAoUmVuZGVyQm94KiBjaGlsZCA9
IG1fb3JkZXJJdGVyYXRvci5jdXJyZW50Q2hpbGQoKTsgY2hpbGQ7IGNoaWxkID0gbV9vcmRlckl0
ZXJhdG9yLm5leHQoKSkgewotICAgICAgICBpZiAobV9vcmRlckl0ZXJhdG9yLnNob3VsZFNraXBD
aGlsZCgqY2hpbGQpKSB7Ci0gICAgICAgICAgICAvLyBPdXQtb2YtZmxvdyBjaGlsZHJlbiBhcmUg
bm90IGZsZXggaXRlbXMsIHNvIHdlIHNraXAgdGhlbSBoZXJlLgotICAgICAgICAgICAgaWYgKGNo
aWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKLSAgICAgICAgICAgICAgICBwcmVwYXJlQ2hp
bGRGb3JQb3NpdGlvbmVkTGF5b3V0KCpjaGlsZCk7Ci0gICAgICAgICAgICBjb250aW51ZTsKLSAg
ICAgICAgfQotICAgICAgICBhbGxJdGVtcy5hcHBlbmQoY29uc3RydWN0RmxleEl0ZW0oKmNoaWxk
LCByZWxheW91dENoaWxkcmVuKSk7Ci0gICAgfQotCi0gICAgLy8gY29uc3RydWN0RmxleEl0ZW0o
KSBtaWdodCBzZXQgdGhlIG92ZXJyaWRlIGNvbnRhaW5pbmcgYmxvY2sgaGVpZ2h0IHNvIGFueSB2
YWx1ZSBjYWNoZWQgZm9yIGRlZmluaXRlbmVzcyBtaWdodCBiZSBpbmNvcnJlY3QuCi0gICAgbV9o
YXNEZWZpbml0ZUhlaWdodCA9IFNpemVEZWZpbml0ZW5lc3M6OlVua25vd247Ci0gICAgCisgICAg
YXV0byBhbGxJdGVtcyA9IGNvbnN0cnVjdEZsZXhJdGVtcyhyZWxheW91dENoaWxkcmVuKTsKICAg
ICBjb25zdCBMYXlvdXRVbml0IGxpbmVCcmVha0xlbmd0aCA9IG1haW5BeGlzQ29udGVudEV4dGVu
dChMYXlvdXRVbml0OjptYXgoKSk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3ZWVuSXRlbXMgPSBj
b21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5JdGVtcyk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3
ZWVuTGluZXMgPSBjb21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5MaW5lcyk7CkBAIC0xMjk0LDM2
ICsxMjc1LDUyIEBAIExheW91dFVuaXQgUmVuZGVyRmxleGlibGVCb3g6OmFkanVzdENoaWxkU2l6
ZUZvckFzcGVjdFJhdGlvQ3Jvc3NBeGlzTWluQW5kTWF4KGNvCiAgICAgcmV0dXJuIGNoaWxkU2l6
ZTsKIH0KIAotRmxleEl0ZW0gUmVuZGVyRmxleGlibGVCb3g6OmNvbnN0cnVjdEZsZXhJdGVtKFJl
bmRlckJveCYgY2hpbGQsIGJvb2wgcmVsYXlvdXRDaGlsZHJlbikKLXsKLSAgICBjaGlsZC5jbGVh
ck92ZXJyaWRpbmdDb250ZW50U2l6ZSgpOwotICAgIGlmIChjaGlsZEhhc0ludHJpbnNpY01haW5B
eGlzU2l6ZShjaGlsZCkpIHsKLSAgICAgICAgLy8gSWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZSwg
dGhlbiBjb21wdXRlTWFpbkF4aXNFeHRlbnRGb3JDaGlsZCB3aWxsIGNhbGwKLSAgICAgICAgLy8g
Y2hpbGQuaW50cmluc2ljQ29udGVudExvZ2ljYWxIZWlnaHQoKSBhbmQgY2hpbGQuc2Nyb2xsYmFy
TG9naWNhbEhlaWdodCgpLAotICAgICAgICAvLyBzbyBpZiB0aGUgY2hpbGQgaGFzIGludHJpbnNp
YyBtaW4vbWF4L3ByZWZlcnJlZCBzaXplLCBydW4gbGF5b3V0IG9uIGl0IG5vdyB0byBtYWtlIHN1
cmUKLSAgICAgICAgLy8gaXRzIGxvZ2ljYWwgaGVpZ2h0IGFuZCBzY3JvbGwgYmFycyBhcmUgdXAg
dG8gZGF0ZS4KLSAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChy
ZWxheW91dENoaWxkcmVuLCBjaGlsZCk7Ci0gICAgICAgIC8vIERvbid0IHJlc29sdmUgcGVyY2Vu
dGFnZXMgaW4gY2hpbGRyZW4uIFRoaXMgaXMgZXNwZWNpYWxseSBpbXBvcnRhbnQgZm9yIHRoZSBt
aW4taGVpZ2h0IGNhbGN1bGF0aW9uLAotICAgICAgICAvLyB3aGVyZSB3ZSB3YW50IHBlcmNlbnRh
Z2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXV0by4gRm9yIGZsZXgtYmFzaXMgaXRzZWxmLCB0aGlzIGlz
IG5vdCBhIHByb2JsZW0gYmVjYXVzZQotICAgICAgICAvLyBieSBkZWZpbml0aW9uIHdlIGhhdmUg
YW4gaW5kZWZpbml0ZSBmbGV4IGJhc2lzIGhlcmUgYW5kIHRodXMgcGVyY2VudGFnZXMgc2hvdWxk
IG5vdCByZXNvbHZlLgotICAgICAgICBpZiAoY2hpbGQubmVlZHNMYXlvdXQoKSB8fCAhbV9pbnRy
aW5zaWNTaXplQWxvbmdNYWluQXhpcy5jb250YWlucygmY2hpbGQpKSB7Ci0gICAgICAgICAgICBp
ZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBjaGlsZC5pc0hvcml6b250YWxXcml0aW5n
TW9kZSgpKQotICAgICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxv
Y2tDb250ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpOwotICAgICAgICAgICAgZWxzZQot
ICAgICAgICAgICAgICAgIGNoaWxkLnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50
TG9naWNhbFdpZHRoKFdURjo6bnVsbG9wdCk7Ci0gICAgICAgICAgICBjaGlsZC5jbGVhck92ZXJy
aWRpbmdDb250ZW50U2l6ZSgpOwotICAgICAgICAgICAgY2hpbGQuc2V0Q2hpbGROZWVkc0xheW91
dChNYXJrT25seVRoaXMpOwotICAgICAgICAgICAgY2hpbGQubGF5b3V0SWZOZWVkZWQoKTsKLSAg
ICAgICAgICAgIGNhY2hlQ2hpbGRNYWluU2l6ZShjaGlsZCk7Ci0gICAgICAgICAgICBjaGlsZC5j
bGVhck92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50U2l6ZSgpOworVmVjdG9yPEZsZXhJ
dGVtPiBSZW5kZXJGbGV4aWJsZUJveDo6Y29uc3RydWN0RmxleEl0ZW1zKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbikKK3sKKyAgICBTZXRGb3JTY29wZTxib29sPiBpbkZsZXhJdGVtQ29uc3RydWN0aW9u
KG1faW5GbGV4SXRlbUNvbnN0cnVjdGlvbiwgdHJ1ZSk7CisKKyAgICBWZWN0b3I8RmxleEl0ZW0+
IGZsZXhJdGVtczsKKyAgICBmb3IgKGF1dG8qIGNoaWxkID0gbV9vcmRlckl0ZXJhdG9yLmZpcnN0
KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYg
KG1fb3JkZXJJdGVyYXRvci5zaG91bGRTa2lwQ2hpbGQoKmNoaWxkKSkgeworICAgICAgICAgICAg
Ly8gT3V0LW9mLWZsb3cgY2hpbGRyZW4gYXJlIG5vdCBmbGV4IGl0ZW1zLCBzbyB3ZSBza2lwIHRo
ZW0gaGVyZS4KKyAgICAgICAgICAgIGlmIChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkp
CisgICAgICAgICAgICAgICAgcHJlcGFyZUNoaWxkRm9yUG9zaXRpb25lZExheW91dCgqY2hpbGQp
OworICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KKworICAgICAgICBhdXRvIGNvbnN0
cnVjdEZsZXhJdGVtRm9yQ2hpbGRCb3ggPSBbJl0oYXV0byYgY2hpbGRCb3gpIHsKKyAgICAgICAg
ICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRlbnRTaXplKCk7CisgICAgICAgICAgICBp
ZiAoY2hpbGRIYXNJbnRyaW5zaWNNYWluQXhpc1NpemUoY2hpbGRCb3gpKSB7CisgICAgICAgICAg
ICAgICAgLy8gSWYgdGhpcyBjb25kaXRpb24gaXMgdHJ1ZSwgdGhlbiBjb21wdXRlTWFpbkF4aXNF
eHRlbnRGb3JDaGlsZCB3aWxsIGNhbGwKKyAgICAgICAgICAgICAgICAvLyBjaGlsZC5pbnRyaW5z
aWNDb250ZW50TG9naWNhbEhlaWdodCgpIGFuZCBjaGlsZC5zY3JvbGxiYXJMb2dpY2FsSGVpZ2h0
KCksCisgICAgICAgICAgICAgICAgLy8gc28gaWYgdGhlIGNoaWxkIGhhcyBpbnRyaW5zaWMgbWlu
L21heC9wcmVmZXJyZWQgc2l6ZSwgcnVuIGxheW91dCBvbiBpdCBub3cgdG8gbWFrZSBzdXJlCisg
ICAgICAgICAgICAgICAgLy8gaXRzIGxvZ2ljYWwgaGVpZ2h0IGFuZCBzY3JvbGwgYmFycyBhcmUg
dXAgdG8gZGF0ZS4KKyAgICAgICAgICAgICAgICB1cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVm
b3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNoaWxkQm94KTsKKyAgICAgICAgICAgICAgICAv
LyBEb24ndCByZXNvbHZlIHBlcmNlbnRhZ2VzIGluIGNoaWxkcmVuLiBUaGlzIGlzIGVzcGVjaWFs
bHkgaW1wb3J0YW50IGZvciB0aGUgbWluLWhlaWdodCBjYWxjdWxhdGlvbiwKKyAgICAgICAgICAg
ICAgICAvLyB3aGVyZSB3ZSB3YW50IHBlcmNlbnRhZ2VzIHRvIGJlIHRyZWF0ZWQgYXMgYXV0by4g
Rm9yIGZsZXgtYmFzaXMgaXRzZWxmLCB0aGlzIGlzIG5vdCBhIHByb2JsZW0gYmVjYXVzZQorICAg
ICAgICAgICAgICAgIC8vIGJ5IGRlZmluaXRpb24gd2UgaGF2ZSBhbiBpbmRlZmluaXRlIGZsZXgg
YmFzaXMgaGVyZSBhbmQgdGh1cyBwZXJjZW50YWdlcyBzaG91bGQgbm90IHJlc29sdmUuCisgICAg
ICAgICAgICAgICAgaWYgKGNoaWxkQm94Lm5lZWRzTGF5b3V0KCkgfHwgIW1faW50cmluc2ljU2l6
ZUFsb25nTWFpbkF4aXMuY29udGFpbnMoJmNoaWxkQm94KSkgeworICAgICAgICAgICAgICAgICAg
ICBpZiAoaXNIb3Jpem9udGFsV3JpdGluZ01vZGUoKSA9PSBjaGlsZEJveC5pc0hvcml6b250YWxX
cml0aW5nTW9kZSgpKQorICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3guc2V0T3ZlcnJp
ZGluZ0NvbnRhaW5pbmdCbG9ja0NvbnRlbnRMb2dpY2FsSGVpZ2h0KFdURjo6bnVsbG9wdCk7Cisg
ICAgICAgICAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94
LnNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250ZW50TG9naWNhbFdpZHRoKFdURjo6bnVs
bG9wdCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LmNsZWFyT3ZlcnJpZGluZ0NvbnRl
bnRTaXplKCk7CisgICAgICAgICAgICAgICAgICAgIGNoaWxkQm94LnNldENoaWxkTmVlZHNMYXlv
dXQoTWFya09ubHlUaGlzKTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3gubGF5b3V0SWZO
ZWVkZWQoKTsKKyAgICAgICAgICAgICAgICAgICAgY2FjaGVDaGlsZE1haW5TaXplKGNoaWxkQm94
KTsKKyAgICAgICAgICAgICAgICAgICAgY2hpbGRCb3guY2xlYXJPdmVycmlkaW5nQ29udGFpbmlu
Z0Jsb2NrQ29udGVudFNpemUoKTsKKyAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIGF1dG8gYm9yZGVyQW5kUGFkZGluZyA9IGlzSG9yaXpvbnRhbEZsb3coKSA/
IGNoaWxkQm94Lmhvcml6b250YWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCkgOiBjaGlsZEJveC52
ZXJ0aWNhbEJvcmRlckFuZFBhZGRpbmdFeHRlbnQoKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRJ
bm5lckZsZXhCYXNlU2l6ZSA9IGNvbXB1dGVJbm5lckZsZXhCYXNlU2l6ZUZvckNoaWxkKGNoaWxk
Qm94LCBib3JkZXJBbmRQYWRkaW5nKTsKKyAgICAgICAgICAgIGF1dG8gY2hpbGRNaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoY2hpbGRCb3gs
IGNoaWxkSW5uZXJGbGV4QmFzZVNpemUpOworICAgICAgICAgICAgYXV0byBtYXJnaW4gPSBpc0hv
cml6b250YWxGbG93KCkgPyBjaGlsZEJveC5ob3Jpem9udGFsTWFyZ2luRXh0ZW50KCkgOiBjaGls
ZEJveC52ZXJ0aWNhbE1hcmdpbkV4dGVudCgpOworICAgICAgICAgICAgcmV0dXJuIEZsZXhJdGVt
KGNoaWxkQm94LCBjaGlsZElubmVyRmxleEJhc2VTaXplLCBjaGlsZE1pbk1heEFwcGxpZWRNYWlu
QXhpc0V4dGVudCwgYm9yZGVyQW5kUGFkZGluZywgbWFyZ2luKTsKKyAgICAgICAgfTsKKyAgICAg
ICAgZmxleEl0ZW1zLmFwcGVuZChjb25zdHJ1Y3RGbGV4SXRlbUZvckNoaWxkQm94KCpjaGlsZCkp
OwogICAgIH0KLSAgICAKLSAgICBMYXlvdXRVbml0IGJvcmRlckFuZFBhZGRpbmcgPSBpc0hvcml6
b250YWxGbG93KCkgPyBjaGlsZC5ob3Jpem9udGFsQm9yZGVyQW5kUGFkZGluZ0V4dGVudCgpIDog
Y2hpbGQudmVydGljYWxCb3JkZXJBbmRQYWRkaW5nRXh0ZW50KCk7Ci0gICAgTGF5b3V0VW5pdCBj
aGlsZElubmVyRmxleEJhc2VTaXplID0gY29tcHV0ZUlubmVyRmxleEJhc2VTaXplRm9yQ2hpbGQo
Y2hpbGQsIGJvcmRlckFuZFBhZGRpbmcpOwotICAgIExheW91dFVuaXQgY2hpbGRNaW5NYXhBcHBs
aWVkTWFpbkF4aXNFeHRlbnQgPSBhZGp1c3RDaGlsZFNpemVGb3JNaW5BbmRNYXgoY2hpbGQsIGNo
aWxkSW5uZXJGbGV4QmFzZVNpemUpOwotICAgIExheW91dFVuaXQgbWFyZ2luID0gaXNIb3Jpem9u
dGFsRmxvdygpID8gY2hpbGQuaG9yaXpvbnRhbE1hcmdpbkV4dGVudCgpIDogY2hpbGQudmVydGlj
YWxNYXJnaW5FeHRlbnQoKTsKLSAgICByZXR1cm4gRmxleEl0ZW0oY2hpbGQsIGNoaWxkSW5uZXJG
bGV4QmFzZVNpemUsIGNoaWxkTWluTWF4QXBwbGllZE1haW5BeGlzRXh0ZW50LCBib3JkZXJBbmRQ
YWRkaW5nLCBtYXJnaW4pOworICAgIHJldHVybiBmbGV4SXRlbXM7CiB9CiAgICAgCiB2b2lkIFJl
bmRlckZsZXhpYmxlQm94OjpmcmVlemVWaW9sYXRpb25zKFZlY3RvcjxGbGV4SXRlbSo+JiB2aW9s
YXRpb25zLCBMYXlvdXRVbml0JiBhdmFpbGFibGVGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4
R3JvdywgZG91YmxlJiB0b3RhbEZsZXhTaHJpbmssIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhT
aHJpbmspCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGli
bGVCb3guaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCmlu
ZGV4IDY0YmE4Njc5MmVhMmI5NjM3OTQ3MGUxNTE1MDBlMzE2MTg5MjliZDAuLjI1MjA5OWQ3YWFm
YTRmNWEzN2Y1NzhlMzUxY2FhNDEyYWJhMzVhY2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJGbGV4aWJsZUJveC5oCkBAIC0xNzUsNyArMTc1LDcgQEAgcHJpdmF0ZToKICAg
ICB2b2lkIHByZXBhcmVPcmRlckl0ZXJhdG9yQW5kTWFyZ2lucygpOwogICAgIExheW91dFVuaXQg
YWRqdXN0Q2hpbGRTaXplRm9yTWluQW5kTWF4KFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQg
Y2hpbGRTaXplKTsKICAgICBMYXlvdXRVbml0IGFkanVzdENoaWxkU2l6ZUZvckFzcGVjdFJhdGlv
Q3Jvc3NBeGlzTWluQW5kTWF4KGNvbnN0IFJlbmRlckJveCYgY2hpbGQsIExheW91dFVuaXQgY2hp
bGRTaXplKTsKLSAgICBGbGV4SXRlbSBjb25zdHJ1Y3RGbGV4SXRlbShSZW5kZXJCb3gmLCBib29s
IHJlbGF5b3V0Q2hpbGRyZW4pOworICAgIFZlY3RvcjxGbGV4SXRlbT4gY29uc3RydWN0RmxleEl0
ZW1zKGJvb2wgcmVsYXlvdXRDaGlsZHJlbik7CiAgICAgCiAgICAgdm9pZCBmcmVlemVJbmZsZXhp
YmxlSXRlbXMoRmxleFNpZ24sIFZlY3RvcjxGbGV4SXRlbT4mIGNoaWxkcmVuLCBMYXlvdXRVbml0
JiByZW1haW5pbmdGcmVlU3BhY2UsIGRvdWJsZSYgdG90YWxGbGV4R3JvdywgZG91YmxlJiB0b3Rh
bEZsZXhTaHJpbmssIGRvdWJsZSYgdG90YWxXZWlnaHRlZEZsZXhTaHJpbmspOwogICAgIGJvb2wg
cmVzb2x2ZUZsZXhpYmxlTGVuZ3RocyhGbGV4U2lnbiwgVmVjdG9yPEZsZXhJdGVtPiYsIExheW91
dFVuaXQgaW5pdGlhbEZyZWVTcGFjZSwgTGF5b3V0VW5pdCYgcmVtYWluaW5nRnJlZVNwYWNlLCBk
b3VibGUmIHRvdGFsRmxleEdyb3csIGRvdWJsZSYgdG90YWxGbGV4U2hyaW5rLCBkb3VibGUmIHRv
dGFsV2VpZ2h0ZWRGbGV4U2hyaW5rKTsKQEAgLTIyMCw3ICsyMjAsNyBAQCBwcml2YXRlOgogICAg
IAogICAgIC8vIFRoaXMgaXMgU2l6ZUlzVW5rbm93biBvdXRzaWRlIG9mIGxheW91dEJsb2NrKCkK
ICAgICBTaXplRGVmaW5pdGVuZXNzIG1faGFzRGVmaW5pdGVIZWlnaHQgeyBTaXplRGVmaW5pdGVu
ZXNzOjpVbmtub3duIH07Ci0gICAgYm9vbCBtX2luTGF5b3V0IHsgZmFsc2UgfTsKKyAgICBib29s
IG1faW5GbGV4SXRlbUNvbnN0cnVjdGlvbiB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3Nob3VsZFJl
c2V0Q2hpbGRMb2dpY2FsSGVpZ2h0QmVmb3JlTGF5b3V0IHsgZmFsc2UgfTsKIH07CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3MzdmNGVlZTk0NmNjZDUxZTQ1ZmUzMWYzMGRkZjg2MWFlNjA1MTFmLi5jZjI0NjBmNGMyNzY4
ZTU3NjE3NjA5OGJkYWZiNzVkZThkZTRiZmViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEt
MDUtMDcgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbY3NzLWZs
ZXhib3hdIEZsZXggaXRlbSBjb25zdHJ1Y3Rpb24gbWF5IGFmZmVjdCBzaWJsaW5nIGZsZXggaXRl
bSBoZWlnaHQgY29tcHV0YXRpb24KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTIyNTQ4OQorCisgICAgICAgIFJldmlld2VkIGJ5IFNlcmdpbyBWaWxsYXIg
U2VuaW4uCisKKyAgICAgICAgKiBmYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50
LWhlaWdodC1kZXNjZW5kYW50cy1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0
L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1s
OiBBZGRlZC4KKwogMjAyMS0wNS0wNSAgQWxpY2lhIEJveWEgR2FyY8OtYSAgPGFib3lhQGlnYWxp
YS5jb20+CiAKICAgICAgICAgW01TRV1bR1N0cmVhbWVyXSBXZWJLaXRNZWRpYVNyYyByZXdvcmsg
djIKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13aXRo
LXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0MmI1YWU5Nzg3YjVhMDMwMWViOThmMWQwNWNhZWY5
NWUxZmNiZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZmxl
eC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy1leHBlY3RlZC5odG1sCkBA
IC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CitkaXYgeworICBoZWlnaHQ6
IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKzwvc3R5bGU+Cis8ZGl2Pjwv
ZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdp
dGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZmxl
eGJveC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNzY4ZGM2OWVhYmQ1MGFlNjA2ZjA4NjE2Y2VlNDg4ODE5OTEzNmUyOAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13aXRoLXBl
cmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLmh0bWwKQEAgLTAsMCArMSwyNSBAQAorPCFET0NUWVBF
IGh0bWw+Cis8c3R5bGU+CisuZmxleENvbnRhaW5lciB7CisgIGRpc3BsYXk6IGZsZXg7CisgIGZs
ZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgIHBvc2l0aW9uOiByZWxhdGl2ZTsKKyAgaGVpZ2h0OiAx
MDBweDsKK30KKy5maXJzdENoaWxkIHsKKyAgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OworICBo
ZWlnaHQ6IDUwcHg7Cit9Cisuc2Vjb25kQ2hpbGQgeworICBoZWlnaHQ6IDUwJTsKKyAgYmFja2dy
b3VuZC1jb2xvcjogZ3JlZW47Cit9CisucGVyY2VudEhlaWdodERlc2NlbmRhbnQgeworICBoZWln
aHQ6IDEwMCU7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVuCit9Cis8L3N0eWxlPgorPGRpdiBj
bGFzcz1mbGV4Q29udGFpbmVyPgorICA8ZGl2IGNsYXNzPWZpcnN0Q2hpbGQ+PGRpdiBjbGFzcz1w
ZXJjZW50SGVpZ2h0RGVzY2VuZGFudD48L2Rpdj48L2Rpdj4KKyAgPGRpdiBjbGFzcz1zZWNvbmRD
aGlsZD48L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>428280</attachid>
            <date>2021-05-11 09:10:35 -0700</date>
            <delta_ts>2021-05-11 09:10:35 -0700</delta_ts>
            <desc>Test reduction for the crash after the fix</desc>
            <filename>225489.html</filename>
            <type>text/html</type>
            <size>399</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">PHN0eWxlPgouZmxleC1jb250YWluZXIgeyAKICBkaXNwbGF5OiBmbGV4OyAKICBmbGV4LWRpcmVj
dGlvbjogY29sdW1uOyAKfQoKLmZpeGVkLWZsZXgtaXRlbSB7CiAgcG9zaXRpb246IGZpeGVkOwog
IGhlaWdodDogMjAwcHg7Cn0KLmhlaWdoLXBlcmNlbnRhZ2UtZGVzY2VuZGFudCB7CiAgaGVpZ2h0
OiAxMDAlOwp9Cgouc2libGluZyB7CiAgaGVpZ2h0OiAxMDAlOyAKfQoKPC9zdHlsZT4KCjxkaXYg
Y2xhc3M9ZmxleC1jb250YWluZXI+CiAgPGRpdiBjbGFzcz1maXhlZC1mbGV4LWl0ZW0+CiAgICA8
ZGl2IGNsYXNzPWhlaWdoLXBlcmNlbnRhZ2UtZGVzY2VuZGFudD48L2Rpdj4KICA8L2Rpdj4KICA8
ZGl2IGNsYXNzPXNpYmxpbmc+PC9kaXY+CjwvZGl2Pgo8IS0tIFBhc3MgaWYgbm8gY3Jhc2ggLS0+
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428301</attachid>
            <date>2021-05-11 11:22:25 -0700</date>
            <delta_ts>2021-05-13 08:00:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225489-20210511112224.patch</filename>
            <type>text/plain</type>
            <size>7337</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3MzI4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTU4YTg2NDNkNjY5YmE0
NDBkNTE0MDBlNDQwMzE2YjA1NmRiZWIxNC4uZDA5YWQwZTU5MmJkYmNhODJkMGU2OTMwMmI1NDc4
NWI5OTZmMWZmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIxLTA1LTExICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94XSBGbGV4
IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVpZ2h0IGNv
bXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBGbGV4IGl0ZW0gY29uc3RydWN0aW9uIHRyaWdnZXJzIGxheW91dCBib3RoIG9uIHRoZSBmbGV4
IGl0ZW0gYW5kIG9uIGl0cyBkZXNjZW5kYW50cyAoc2VlIGNvbnN0cnVjdEZsZXhJdGVtKS4KKyAg
ICAgICAgRHVyaW5nIHRoaXMgbGF5b3V0IGEgcGVyY2VudCBoZWlnaHQgZGVzY2VuZGFudCBtYXkg
aW5kaXJlY3RseSBzZXQgYW4gaW5jb3JyZWN0IHZhbHVlIG9uIHRoZSBmbGV4IGNvbnRhaW5lcidz
IAorICAgICAgICBtX2hhc0RlZmluaXRlSGVpZ2h0ICh0aGlzIGlzIGR1ZSB0byB0aGUgb2RkIHdh
eSB3ZSBjaG9vc2UgdG8gcmVzb2x2ZSBwZXJjZW50IGhlaWdodCB2YWx1ZXMgb24gdGhlIGFuY2Vz
dG9yIGNoYWluLCAKKyAgICAgICAgc2VlIHNldE92ZXJyaWRpbmdDb250YWluaW5nQmxvY2tDb250
ZW50TG9naWNhbEhlaWdodChXVEY6Om51bGxvcHQpKS4KKyAgICAgICAgTm93IHRoaXMgaW5jb3Jy
ZWN0IG1faGFzRGVmaW5pdGVIZWlnaHQgdmFsdWUgKEluZGVmaW5pdGUpIGNhdXNlcyB0aGUgbmV4
dCBzaWJsaW5nJ3MgKGFsc28pIHBlcmNlbnQgaGVpZ2h0CisgICAgICAgIHJlc29sdmUgZmFpbCBh
cyBpdCB0ZWxscyB0aGUgZmxleCBpdGVtIHRoYXQgdGhlIGZsZXggY29udGFpbmVyIGNhbid0IGhl
bHAgd2l0aCByZXNvbHZpbmcgdGhlIHBlcmNlbnQgaGVpZ2h0IHZhbHVlLgorICAgICAgICBBcyB0
aGUgcmVzdWx0IHdlIGVuZCB1cCB3aXRoIGFuIGluY29ycmVjdCwgMHB4IGhlaWdodCB2YWx1ZSBm
b3IgdGhpcyBzaWJsaW5nLgorICAgICAgICBlLmcuCisgICAgICAgIDxkaXYgc3R5bGU9ImhlaWdo
dDogMTAwcHg7IGRpc3BsYXk6IGZsZXg7IGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47Ij4KKyAgICAg
ICAgICA8ZGl2IGlkPWZsZXhJdGVtQSBzdHlsZT0iaGVpZ2h0OiA1MHB4OyI+PGRpdiBzdHlsZT0i
aGVpZ2h0OiAxMDAlOyI+PC9kaXY+PC9kaXY+CisgICAgICAgICAgPGRpdiBpZD1mbGV4SXRlbUIg
c3R5bGU9ImhlaWdodDogNTAlOyI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICBCeSB0
aGUgdGltZSB3ZSBnZXQgdG8gdGhlIGNvbnN0cnVjdGlvbiBvZiBmbGV4SXRlbUIsIHRoZSBSZW5k
ZXJGbGV4aWJsZUJveCdzIChmbGV4IGNvbnRhaW5lcikgbV9oYXNEZWZpbml0ZUhlaWdodAorICAg
ICAgICBpcyBhbHJlYWR5IChhbmQgaW5jb3JyZWN0bHkpIHNldCB0byBJbmRlZmluaXRlIGFzIHRo
ZSByZXN1bHQgb2YgdXMgdHJ5aW5nIHRvIHJlc29sdmUgZmxleEl0ZW1BJ3MgZGVzY2VuZGFudCBo
ZWlnaHQgcGVyY2VudGFnZS4KKyAgICAgICAgVGhpcyBJbmRlZmluaXRlIHZhbHVlIG1ha2VzIHRo
ZSBmbGV4SXRlbUIncyBoZWlnaHQgcmVzb2x1dGlvbiBmYWlsIGFzIHdlIGJlbGlldmUgdGhhdCB0
aGUgZmxleCBjb250YWluZXIgaGFzIGluZGVmaW5pdGUgaGVpZ2h0CisgICAgICAgIGUuZyAiaGVp
Z2h0OiBhdXRvIiwgd2hpbGUgaXQgaXMgY2xlYXJseSByZXNvbHZhYmxlICg1MCUgb2YgMTAwcHgp
LgorICAgICAgICBOb3cgaWYgd2UgZmxpcCB0aGUgb3JkZXIgYW5kIGZsZXhJdGVtQiBjb21lcyBm
aXJzdCwgdGhlIHRlc3QgY2FzZSBwYXNzZXMgZmluZS4KKyAgICAgICAgSXQgaXMgdmVyeSB1bmZv
cnR1bmF0ZSB0aGF0IHNvbWUgZGVzY2VuZGFudCBoZWlnaHQgcmVzb2x2aW5nIHByb2Nlc3MgY2Fu
IHRyaWdnZXIgYSBzdGF0ZSBjaGFuZ2Ugb24gdGhlIGFuY2VzdG9yIFJlbmRlckZsZXhpYmxlQm94
LCBidXQKKyAgICAgICAgZml4aW5nIGl0IHdvdWxkIGNlcnRhaW5seSByZXF1aXJlIHNvbWUgc3Vi
c3RhbnRpYWwgYXJjaGl0ZWN0dXJhbCBjaGFuZ2UuCisgICAgICAgIEluIHRoaXMgcGF0Y2gsIHdl
IGp1c3QgcmVzZXQgdGhlIG1faGFzRGVmaW5pdGVIZWlnaHQgZmxhZyBpbnNpZGUgdGhlIGxvb3Ag
dG8gZW5zdXJlIHRoYXQgZWFjaCBmbGV4IGl0ZW0KKyAgICAgICAgc3RhcnRzIHdpdGggYSBmcmVz
aCBoZWlnaHQgcGVyY2VudCByZXNvbHZlIHN0YXRlLiAKKworICAgICAgICBUZXN0OiBmYXN0L2Zs
ZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy5odG1sCisK
KyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyk6CisKIDIwMjEtMDUtMTEg
IENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJldmVydGluZyByMjc3MzIyLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJGbGV4aWJsZUJveC5jcHAKaW5kZXggNDMzZTBiNDUxZWQzZDdjYjU3YjAyNWZlZTlmNGZk
NjFmMTI1NGU4Zi4uNWZlN2I5MDAxYjJjYmIyZTU3MzRmMDQ2OThkZmYxNTMxMDFhODhkMCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC05
ODQsMTAgKzk4NCw5IEBAIHZvaWQgUmVuZGVyRmxleGlibGVCb3g6OmxheW91dEZsZXhJdGVtcyhi
b29sIHJlbGF5b3V0Q2hpbGRyZW4pCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQog
ICAgICAgICBhbGxJdGVtcy5hcHBlbmQoY29uc3RydWN0RmxleEl0ZW0oKmNoaWxkLCByZWxheW91
dENoaWxkcmVuKSk7CisgICAgICAgIC8vIGNvbnN0cnVjdEZsZXhJdGVtKCkgbWlnaHQgc2V0IHRo
ZSBvdmVycmlkZSBjb250YWluaW5nIGJsb2NrIGhlaWdodCBzbyBhbnkgdmFsdWUgY2FjaGVkIGZv
ciBkZWZpbml0ZW5lc3MgbWlnaHQgYmUgaW5jb3JyZWN0LgorICAgICAgICBtX2hhc0RlZmluaXRl
SGVpZ2h0ID0gU2l6ZURlZmluaXRlbmVzczo6VW5rbm93bjsKICAgICB9Ci0KLSAgICAvLyBjb25z
dHJ1Y3RGbGV4SXRlbSgpIG1pZ2h0IHNldCB0aGUgb3ZlcnJpZGUgY29udGFpbmluZyBibG9jayBo
ZWlnaHQgc28gYW55IHZhbHVlIGNhY2hlZCBmb3IgZGVmaW5pdGVuZXNzIG1pZ2h0IGJlIGluY29y
cmVjdC4KLSAgICBtX2hhc0RlZmluaXRlSGVpZ2h0ID0gU2l6ZURlZmluaXRlbmVzczo6VW5rbm93
bjsKICAgICAKICAgICBjb25zdCBMYXlvdXRVbml0IGxpbmVCcmVha0xlbmd0aCA9IG1haW5BeGlz
Q29udGVudEV4dGVudChMYXlvdXRVbml0OjptYXgoKSk7CiAgICAgTGF5b3V0VW5pdCBnYXBCZXR3
ZWVuSXRlbXMgPSBjb21wdXRlR2FwKEdhcFR5cGU6OkJldHdlZW5JdGVtcyk7CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggODlj
Mzc2YjI4YjFiYTY5ZGZmNmU0MjljODRjZDAzODk0MDA2NmU1Zi4uNWRiMDM3YTU0ZDE3MWY4NWM3
YmUwNzQ4OTJmYmQxNGZmNjNiM2MxYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA1LTEx
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW2Nzcy1mbGV4Ym94
XSBGbGV4IGl0ZW0gY29uc3RydWN0aW9uIG1heSBhZmZlY3Qgc2libGluZyBmbGV4IGl0ZW0gaGVp
Z2h0IGNvbXB1dGF0aW9uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMjU0ODkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIGZhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRl
c2NlbmRhbnRzLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZmxleGJveC9m
bGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLmh0bWw6IEFkZGVkLgor
CiAyMDIxLTA1LTExICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAg
UkVHUkVTU0lPTihyMjc1NTE1KTogd3B0L3F1aXJrcy9ibG9ja3MtaWdub3JlLWxpbmUtaGVpZ2h0
Lmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13
aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLWNyYXNoLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2Nl
bmRhbnRzLWNyYXNoLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zY2Q2OWRlYWJhZmE2N2RjNWQ0
NTEzZDdhOGEzYjE0ZGRjYzc5YmM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9mbGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMtY3Jh
c2gtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMiBAQAorUEFTUyBpZiBubyBjcmFzaCBvciBhc3Nl
cnQuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13
aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9m
YXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy1j
cmFzaC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdkZTU4NjE1YjFlOGU5NjUwYjFlYzc4YzU0YTE2MDI3ZWI3
ZTIxMzkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZmxleC1j
b2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5kYW50cy1jcmFzaC5odG1sCkBAIC0wLDAg
KzEsMzAgQEAKKzxzdHlsZT4KKy5mbGV4LWNvbnRhaW5lciB7IAorICBkaXNwbGF5OiBmbGV4OyAK
KyAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjsgCit9CisKKy5maXhlZC1mbGV4LWl0ZW0geworICBw
b3NpdGlvbjogZml4ZWQ7CisgIGhlaWdodDogMjAwcHg7Cit9CisuaGVpZ2gtcGVyY2VudGFnZS1k
ZXNjZW5kYW50IHsKKyAgaGVpZ2h0OiAxMDAlOworfQorCisuc2libGluZyB7CisgIGhlaWdodDog
MTAwJTsgCit9CisKKzwvc3R5bGU+CitQQVNTIGlmIG5vIGNyYXNoIG9yIGFzc2VydC4KKzxkaXYg
Y2xhc3M9ZmxleC1jb250YWluZXI+CisgIDxkaXYgY2xhc3M9Zml4ZWQtZmxleC1pdGVtPgorICAg
IDxkaXYgY2xhc3M9aGVpZ2gtcGVyY2VudGFnZS1kZXNjZW5kYW50PjwvZGl2PgorICA8L2Rpdj4K
KyAgPGRpdiBjbGFzcz1zaWJsaW5nPjwvZGl2PgorPC9kaXY+Cis8c2NyaXB0PgoraWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKzwvc2NyaXB0PgpcIE5v
IG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZmxl
eGJveC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLWV4cGVjdGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50
LWhlaWdodC1kZXNjZW5kYW50cy1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0MmI1YWU5Nzg3
YjVhMDMwMWViOThmMWQwNWNhZWY5NWUxZmNiZDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L2ZsZXhib3gvZmxleC1jb2x1bW4td2l0aC1wZXJjZW50LWhlaWdodC1kZXNjZW5k
YW50cy1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsOCBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5
bGU+CitkaXYgeworICBoZWlnaHQ6IDEwMHB4OworICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsK
K30KKzwvc3R5bGU+Cis8ZGl2PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9m
bGV4Ym94L2ZsZXgtY29sdW1uLXdpdGgtcGVyY2VudC1oZWlnaHQtZGVzY2VuZGFudHMuaHRtbCBi
L0xheW91dFRlc3RzL2Zhc3QvZmxleGJveC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0
LWRlc2NlbmRhbnRzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzY4ZGM2OWVhYmQ1MGFlNjA2ZjA4NjE2Y2Vl
NDg4ODE5OTEzNmUyOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZmxleGJv
eC9mbGV4LWNvbHVtbi13aXRoLXBlcmNlbnQtaGVpZ2h0LWRlc2NlbmRhbnRzLmh0bWwKQEAgLTAs
MCArMSwyNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+CisuZmxleENvbnRhaW5lciB7Cisg
IGRpc3BsYXk6IGZsZXg7CisgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47CisgIHBvc2l0aW9uOiBy
ZWxhdGl2ZTsKKyAgaGVpZ2h0OiAxMDBweDsKK30KKy5maXJzdENoaWxkIHsKKyAgYmFja2dyb3Vu
ZC1jb2xvcjogeWVsbG93OworICBoZWlnaHQ6IDUwcHg7Cit9Cisuc2Vjb25kQ2hpbGQgeworICBo
ZWlnaHQ6IDUwJTsKKyAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisucGVyY2VudEhlaWdo
dERlc2NlbmRhbnQgeworICBoZWlnaHQ6IDEwMCU7CisgIGJhY2tncm91bmQtY29sb3I6IGdyZWVu
Cit9Cis8L3N0eWxlPgorPGRpdiBjbGFzcz1mbGV4Q29udGFpbmVyPgorICA8ZGl2IGNsYXNzPWZp
cnN0Q2hpbGQ+PGRpdiBjbGFzcz1wZXJjZW50SGVpZ2h0RGVzY2VuZGFudD48L2Rpdj48L2Rpdj4K
KyAgPGRpdiBjbGFzcz1zZWNvbmRDaGlsZD48L2Rpdj4KKzwvZGl2Pgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>