<?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>210476</bug_id>
          
          <creation_ts>2020-04-13 21:51:05 -0700</creation_ts>
          <short_desc>Scroll-snap on the root aligns to the body margin edge, not the viewport edge</short_desc>
          <delta_ts>2020-11-10 04:21:03 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>Safari Technology Preview</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=210469</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=200643</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Simon Fraser (smfr)">simon.fraser</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641245</commentid>
    <comment_count>0</comment_count>
      <attachid>396379</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-04-13 21:51:05 -0700</bug_when>
    <thetext>Created attachment 396379
Testcase

Scroll-snap on the root aligns to the body margin edge (wrong), not the viewport edge (correct, FF and Chrome behavior).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641246</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-04-13 21:51:28 -0700</bug_when>
    <thetext>&lt;rdar://problem/61755103&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704332</commentid>
    <comment_count>2</comment_count>
      <attachid>413140</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-03 22:39:35 -0800</bug_when>
    <thetext>Created attachment 413140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704448</commentid>
    <comment_count>3</comment_count>
      <attachid>413140</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-04 08:40:45 -0800</bug_when>
    <thetext>Comment on attachment 413140
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:923
&gt; +    LayoutRect viewportRect = bodyRenderer-&gt;paddingBoxRect();

It this right? The body might have a height of zero (if its children are position:aboslute). I&apos;m not sure why this code doesn&apos;t just get the viewport rect from the FrameView.

&gt; Source/WebCore/page/FrameView.cpp:930
&gt; +    updateSnapOffsetsForScrollableArea(*this, *bodyRenderer, bodyRenderer-&gt;style(), viewportRect);

I think it&apos;s wrong to pass the body here. The body is not the scrollable renderer. Maybe updateSnapOffsetsForScrollableArea() needs to take a ScrollableArea instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704451</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-04 08:53:42 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #3)
&gt; Comment on attachment 413140 [details]
&gt; Patch

Thanks for the review. I&apos;m hoping to investigate the failures a bit tomorrow. My current theory is that it&apos;s a timing issue.

&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413140&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:923
&gt; &gt; +    LayoutRect viewportRect = bodyRenderer-&gt;paddingBoxRect();
&gt; 
&gt; It this right? The body might have a height of zero (if its children are
&gt; position:aboslute). I&apos;m not sure why this code doesn&apos;t just get the viewport
&gt; rect from the FrameView.

I ended up doing this, because it wasn&apos;t clear how to propertly get the viewport rectangle from the FrameView. If there&apos;s a way to do that, that would definitely be a better approach. I suppose I still need to adjust this rectangle to make it relative to the padding box though?

&gt; &gt; Source/WebCore/page/FrameView.cpp:930
&gt; &gt; +    updateSnapOffsetsForScrollableArea(*this, *bodyRenderer, bodyRenderer-&gt;style(), viewportRect);
&gt; 
&gt; I think it&apos;s wrong to pass the body here. The body is not the scrollable
&gt; renderer. Maybe updateSnapOffsetsForScrollableArea() needs to take a
&gt; ScrollableArea instead?

This is a bit ugly, but essentially what is going on here is that this argument is mainly used to compare against child-&gt;enclosingScrollableContainerForSnapping(). The return value of that method is based entirely on what element has the scroll-snap-type property set on it. Currently, this is only settable on the body. My plan is to do something a bit nicer here when I fix https://bugs.webkit.org/show_bug.cgi?id=200643 (which I plan to do next). For instance, I could modify the code so that when setting the style on the body, it always looks like these properties are set on the root element for the scroll snapping code.

My thought here was that all these fixes are more in the realm of issue 200643.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704464</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-04 09:29:01 -0800</bug_when>
    <thetext>I meant to write issue https://bugs.webkit.org/show_bug.cgi?id=210469 above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1704501</commentid>
    <comment_count>6</comment_count>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-04 10:51:13 -0800</bug_when>
    <thetext>I think the main source of confusion is that the scroll snap code was written using the body to represent the document scroller, but the body can be scrollable independently from the document so there&apos;s ambiguity. Maybe fixing bug 210469 first would force cleanup here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705706</commentid>
    <comment_count>7</comment_count>
      <attachid>413584</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-09 08:21:06 -0800</bug_when>
    <thetext>Created attachment 413584
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705746</commentid>
    <comment_count>8</comment_count>
      <attachid>413584</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-09 09:57:50 -0800</bug_when>
    <thetext>Comment on attachment 413584
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:949
&gt; +    viewport.move(-rootRenderer-&gt;marginRight(), -rootRenderer-&gt;marginTop());

Is marginRight() correct?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705762</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-09 10:35:04 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #8)
&gt; Comment on attachment 413584 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413584&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:949
&gt; &gt; +    viewport.move(-rootRenderer-&gt;marginRight(), -rootRenderer-&gt;marginTop());
&gt; 
&gt; Is marginRight() correct?

Oof. That&apos;s definitely not correct, I will fix this and modify the tests so that they would have caught this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705766</commentid>
    <comment_count>10</comment_count>
      <attachid>413602</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-09 10:53:04 -0800</bug_when>
    <thetext>Created attachment 413602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1705770</commentid>
    <comment_count>11</comment_count>
      <attachid>413602</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-11-09 11:05:16 -0800</bug_when>
    <thetext>Comment on attachment 413602
Patch

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

&gt; LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html:112
&gt; +                message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
&gt; +                    + &quot;inside the red region at the top of the page, and then use the mouse wheel or a two-finger swipe to make a&lt;br/&gt;&quot;
&gt; +                    + &quot;small swipe gesture with some momentum.&lt;br/&gt;&lt;br/&gt;&quot;
&gt; +                    + &quot;The region should scroll to show a green region.&lt;br/&gt;&lt;br/&gt;&quot;
&gt; +                    + &quot;Next, perform a small scroll gesture that does not involve momentum. You should begin to see one of the colors&lt;br/&gt;&quot;
&gt; +                    + &quot;to the left (or right) of the current green box. When you release the wheel, the region should scroll back so&lt;br/&gt;&quot;
&gt; +                    + &quot;that the region is a single color.&lt;br/&gt;&lt;br/&gt;&quot;
&gt; +                    + &quot;You should also be able to repeat these test steps for the vertical region below.&lt;/p&gt;&quot;;

Personally I hate these long descriptions as they are often wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706014</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-10 00:39:56 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #11)
&gt; Comment on attachment 413602 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=413602&amp;action=review
&gt; 
&gt; &gt; LayoutTests/tiled-drawing/scrolling/scroll-snap/scroll-snap-mandatory-mainframe-horizontal-with-margin.html:112
&gt; &gt; +                message.innerHTML = &quot;&lt;p&gt;This test is better run under DumpRenderTree. To manually test it, place the mouse pointer&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;inside the red region at the top of the page, and then use the mouse wheel or a two-finger swipe to make a&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;small swipe gesture with some momentum.&lt;br/&gt;&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;The region should scroll to show a green region.&lt;br/&gt;&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;Next, perform a small scroll gesture that does not involve momentum. You should begin to see one of the colors&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;to the left (or right) of the current green box. When you release the wheel, the region should scroll back so&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;that the region is a single color.&lt;br/&gt;&lt;br/&gt;&quot;
&gt; &gt; +                    + &quot;You should also be able to repeat these test steps for the vertical region below.&lt;/p&gt;&quot;;
&gt; 
&gt; Personally I hate these long descriptions as they are often wrong.

I agree. I copied this description from the existing tests, but I will update them to be shorter and see if I can write a patch to improve these tests in particular.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706017</commentid>
    <comment_count>13</comment_count>
      <attachid>413676</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2020-11-10 00:57:36 -0800</bug_when>
    <thetext>Created attachment 413676
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1706029</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-10 01:29:02 -0800</bug_when>
    <thetext>Committed r269622: &lt;https://trac.webkit.org/changeset/269622&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 413676.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>396379</attachid>
            <date>2020-04-13 21:51:05 -0700</date>
            <delta_ts>2020-04-13 21:51:05 -0700</delta_ts>
            <desc>Testcase</desc>
            <filename>main-frame-snap.html</filename>
            <type>text/html</type>
            <size>696</size>
            <attacher name="Simon Fraser (smfr)">simon.fraser</attacher>
            
              <data encoding="base64">CjwhRE9DVFlQRSBodG1sPgoKPGh0bWw+CjxoZWFkPgogICAgPHN0eWxlPgogICAgICAgIDpyb290
IHsKICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogYmxvY2sgbWFuZGF0b3J5OwogICAgICAg
ICAgICBtYXJnaW46IDIwcHg7CiAgICAgICAgfQoKICAgICAgICBib2R5IHsKICAgICAgICAgICAg
c2Nyb2xsLXNuYXAtdHlwZTogYmxvY2sgbWFuZGF0b3J5OwogICAgICAgICAgICBtYXJnaW46IDIw
cHg7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIGRpdiB7CiAgICAgICAgICAgIHdpZHRoOiAx
MDAlOwogICAgICAgICAgICBoZWlnaHQ6IDQwMHB4OwogICAgICAgICAgICBzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQ7CiAgICAgICAgfQogICAgPC9zdHlsZT4KPC9oZWFkPgo8Ym9keT4KICAgIDxk
aXYgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IHJlZCc+PC9kaXY+CiAgICA8ZGl2IHN0eWxlPSdi
YWNrZ3JvdW5kLWNvbG9yOiBncmVlbic+PC9kaXY+CiAgICA8ZGl2IHN0eWxlPSdiYWNrZ3JvdW5k
LWNvbG9yOiBibHVlJz48L2Rpdj4KICAgIDxkaXYgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IGFx
dWEnPjwvZGl2PgogICAgPGRpdiBzdHlsZT0nYmFja2dyb3VuZC1jb2xvcjogeWVsbG93Jz48L2Rp
dj4KICAgIDxkaXYgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWEnPjwvZGl2Pgo8L2Jv
ZHk+CjwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413140</attachid>
            <date>2020-11-03 22:39:35 -0800</date>
            <delta_ts>2020-11-09 08:20:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210476-20201104073933.patch</filename>
            <type>text/plain</type>
            <size>13919</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5MjQ1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzBlNTYzNThmNDQ1NGNk
NDI4Nzc0YTMwMTFmZTc2YzkyNTk5ZDAyMi4uMTBhY2UxNzA4YzBlZGQ2MTc2YzkwZWZjN2ZjM2Y3
MmY1MzUxMWQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTExLTAzICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBTY3JvbGwtc25h
cCBvbiB0aGUgcm9vdCBhbGlnbnMgdG8gdGhlIGJvZHkgbWFyZ2luIGVkZ2UsIG5vdCB0aGUgdmll
d3BvcnQgZWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNDc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTc1NTEwMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0czogY3NzMy9zY3JvbGwt
c25hcC9zY3JvbGwtc25hcC1tYWluLWZyYW1lLXdpdGgtaG9yaXpvbnRhbC1tYXJnaW4uaHRtbAor
ICAgICAgICAgICAgICAgY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYWluLWZyYW1lLXdp
dGgtdmVydGljYWwtbWFyZ2luLmh0bWwKKworICAgICAgICAqIHBhZ2UvRnJhbWVWaWV3LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlldzo6dXBkYXRlU25hcE9mZnNldHMpOiBXaGVuIHBh
c3NpbmcgdGhlIHZpZXdwb3J0IHJlY3RhbmdsZSB0bworICAgICAgICB1cGRhdGVTbmFwT2Zmc2V0
c0ZvclNjcm9sbGFibGVBcmVhLCBleHBhbmQgaXQgYnkgYm9keSBhbmQgcm9vdCBlbGVtZW50IG1h
cmdpbnMuCisgICAgICAgIFVubGlrZSBmb3Igb3ZlcmZsb3c6c2Nyb2xsLCBtYXJnaW5zIGZvciBm
cmFtZXMgYXJlIHdpdGhpbiB0aGVpciB2aWV3cG9ydHMuCisgICAgICAgICogcGFnZS9zY3JvbGxp
bmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OnVwZGF0ZVNu
YXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEpOiBBY2NlcHQgYSB2aWV3cG9ydCByZWN0YW5nbGUg
ZnJvbSB0aGUKKyAgICAgICAgY2FsbGVyIGFuZCBhbHNvIGVsaW1pbmF0ZSByZWR1bmRhbnQgYXJn
dW1lbnQgdGhhdCB3YXMgY2F1c2luZyBhIGJpdCBvZiBjb25mdXNpb24uCisgICAgICAgICogcGFn
ZS9zY3JvbGxpbmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmg6IFVwZGF0ZSB0aGUgZnVuY3Rpb24g
ZGVjbGFyYXRpb24uCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OlJlbmRlckxheWVyOjp1cGRhdGVTbmFwT2Zmc2V0cyk6IFVwZGF0ZSB0aGUg
Y2FsbCB0byB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhLgorCiAyMDIwLTExLTAy
ICBaYWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBF
bXB0eSBsaW5lcyBzdGF5IGVtcHR5IGV2ZW4gd2hlbiB0aGUgaW1hZ2luYXJ5IHN0cnV0IGlzIHBy
ZXNlbnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAppbmRleCBmNmJhNDM4ZGRkYzU2ZDhlNDRm
N2E2MjIxOWMzZDAzMDE5Mjg1ZjI4Li40OTc4NTAzMTM0NDc2MjA2NDRiNGQ5NzliMTBjZmE0NTRk
YzM3ZGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC05MTEsMTEgKzkxMSwyMyBA
QCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgICAgICByZXR1cm47CiAK
ICAgICAvLyBGSVhNRTogU2hvdWxkIHdlIGFsbG93IHNwZWNpZnlpbmcgc25hcCBwb2ludHMgdGhy
b3VnaCA8aHRtbD4gdGFncyB0b28/Ci0gICAgSFRNTEVsZW1lbnQqIGJvZHkgPSBmcmFtZSgpLmRv
Y3VtZW50KCktPmJvZHlPckZyYW1lc2V0KCk7Ci0gICAgaWYgKCFyZW5kZXJWaWV3KCkgfHwgIWJv
ZHkgfHwgIWJvZHktPnJlbmRlcmVyKCkpCisgICAgYXV0byYgZG9jdW1lbnQgPSAqZnJhbWUoKS5k
b2N1bWVudCgpOworICAgIFJlbmRlckJveCogYm9keVJlbmRlcmVyID0gZG9jdW1lbnQuYm9keU9y
RnJhbWVzZXQoKSA/IGRvY3VtZW50LmJvZHlPckZyYW1lc2V0KCktPnJlbmRlckJveCgpIDogbnVs
bHB0cjsKKyAgICBSZW5kZXJCb3gqIHJvb3RSZW5kZXJlciA9IGRvY3VtZW50LmRvY3VtZW50RWxl
bWVudCgpID8gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50KCktPnJlbmRlckJveCgpIDogbnVsbHB0
cjsKKyAgICBpZiAoIXJvb3RSZW5kZXJlciB8fCAhYm9keVJlbmRlcmVyKQogICAgICAgICByZXR1
cm47Ci0gICAgCi0gICAgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhpcywg
KmJvZHksICpyZW5kZXJWaWV3KCksIGJvZHktPnJlbmRlcmVyKCktPnN0eWxlKCkpOworCisgICAg
Ly8gQ29uc3RydWN0IHRoZSB2aWV3cG9ydCByZWN0YW5nbGUgd2l0aCB0aGUgb3JpZ2luIGF0IHRo
ZSBwYWRkaW5nIGJveCByZWN0YW5nbGUgb2YgdGhlIHNjcm9sbGluZyBlbGVtZW50LiBVbmxpa2UK
KyAgICAvLyBmb3Igb3ZlcmZsb3c6c2Nyb2xsIHRoZSBGcmFtZVZpZXcgdmlld3BvcnQgYWxzbyBp
bmNsdWRlcyBib2R5IGFuZCByb290IGVsZW1lbnQgbWFyZ2lucy4gVGhpcyBtZWFucyB0aGF0IHRo
ZSByZWN0YW5nbGUgcGFzc2VkCisgICAgLy8gaGVyZSBtaWdodCBleHRlbmQgYWJvdmUgYW5kIHRv
IHRoZSBsZWZ0IG9mIHRoZSBvcmlnaW4uCisgICAgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3QgPSBi
b2R5UmVuZGVyZXItPnBhZGRpbmdCb3hSZWN0KCk7CisgICAgTGF5b3V0Qm94RXh0ZW50IGJvZHlN
YXJnaW4gPSBMYXlvdXRCb3hFeHRlbnQoYm9keVJlbmRlcmVyLT5tYXJnaW5Ub3AoKSwgYm9keVJl
bmRlcmVyLT5tYXJnaW5SaWdodCgpLCBib2R5UmVuZGVyZXItPm1hcmdpbkJvdHRvbSgpLCBib2R5
UmVuZGVyZXItPm1hcmdpbkxlZnQoKSk7CisgICAgdmlld3BvcnRSZWN0LmV4cGFuZChib2R5TWFy
Z2luKTsKKworICAgIExheW91dEJveEV4dGVudCByb290TWFyZ2luID0gTGF5b3V0Qm94RXh0ZW50
KHJvb3RSZW5kZXJlci0+bWFyZ2luVG9wKCksIHJvb3RSZW5kZXJlci0+bWFyZ2luUmlnaHQoKSwg
cm9vdFJlbmRlcmVyLT5tYXJnaW5Cb3R0b20oKSwgcm9vdFJlbmRlcmVyLT5tYXJnaW5MZWZ0KCkp
OworICAgIHZpZXdwb3J0UmVjdC5leHBhbmQocm9vdE1hcmdpbik7CisKKyAgICB1cGRhdGVTbmFw
T2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0aGlzLCAqYm9keVJlbmRlcmVyLCBib2R5UmVuZGVy
ZXItPnN0eWxlKCksIHZpZXdwb3J0UmVjdCk7CiB9CiAKIGJvb2wgRnJhbWVWaWV3Ojppc1Njcm9s
bFNuYXBJblByb2dyZXNzKCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uv
c2Nyb2xsaW5nL0F4aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9mZnNldHMuY3BwCmluZGV4IDY4ZDJjMDA1NDIwZjA5
YzU2MmY1Njg4ZDhmMzE5MDE2ZTA3NGY3NjYuLjMzNDFiZDNhMTIyMGFiZGJjMjcwNTNmMzc5Yjg3
ZmRlNWY2MWI5OGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL0F4
aXNTY3JvbGxTbmFwT2Zmc2V0cy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvQXhpc1Njcm9sbFNuYXBPZmZzZXRzLmNwcApAQCAtMTYwLDExICsxNjAsMTEgQEAgc3RhdGlj
IHZvaWQgY29tcHV0ZUF4aXNQcm94aW1pdHlTbmFwT2Zmc2V0UmFuZ2VzKGNvbnN0IFZlY3RvcjxM
YXlvdXRVbml0PiYgc25hcE8KICAgICB9CiB9CiAKLXZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIEhUTUxFbGVtZW50
JiBzY3JvbGxpbmdFbGVtZW50LCBjb25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gs
IGNvbnN0IFJlbmRlclN0eWxlJiBzY3JvbGxpbmdFbGVtZW50U3R5bGUpCit2b2lkIHVwZGF0ZVNu
YXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVh
LCBjb25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0eWxl
JiBzY3JvbGxpbmdFbGVtZW50U3R5bGUsIExheW91dFJlY3Qgdmlld3BvcnRSZWN0SW5Cb3JkZXJC
b3hDb29yZGluYXRlcykKIHsKLSAgICBhdXRvKiBzY3JvbGxDb250YWluZXIgPSBzY3JvbGxpbmdF
bGVtZW50LnJlbmRlcmVyKCk7CiAgICAgYXV0byBzY3JvbGxTbmFwVHlwZSA9IHNjcm9sbGluZ0Vs
ZW1lbnRTdHlsZS5zY3JvbGxTbmFwVHlwZSgpOwotICAgIGlmICghc2Nyb2xsQ29udGFpbmVyIHx8
IHNjcm9sbFNuYXBUeXBlLnN0cmljdG5lc3MgPT0gU2Nyb2xsU25hcFN0cmljdG5lc3M6Ok5vbmUg
fHwgc2Nyb2xsQ29udGFpbmVyLT52aWV3KCkuYm94ZXNXaXRoU2Nyb2xsU25hcFBvc2l0aW9ucygp
LmlzRW1wdHkoKSkgeworICAgIGNvbnN0IEhhc2hTZXQ8Y29uc3QgUmVuZGVyQm94Kj4mIGJveGVz
V2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMgPSBzY3JvbGxpbmdFbGVtZW50Qm94LnZpZXcoKS5ib3hl
c1dpdGhTY3JvbGxTbmFwUG9zaXRpb25zKCk7CisgICAgaWYgKHNjcm9sbFNuYXBUeXBlLnN0cmlj
dG5lc3MgPT0gU2Nyb2xsU25hcFN0cmljdG5lc3M6Ok5vbmUgfHwgYm94ZXNXaXRoU2Nyb2xsU25h
cFBvc2l0aW9ucy5pc0VtcHR5KCkpIHsKICAgICAgICAgc2Nyb2xsYWJsZUFyZWEuY2xlYXJIb3Jp
em9udGFsU25hcE9mZnNldHMoKTsKICAgICAgICAgc2Nyb2xsYWJsZUFyZWEuY2xlYXJWZXJ0aWNh
bFNuYXBPZmZzZXRzKCk7CiAgICAgICAgIHJldHVybjsKQEAgLTE4NCwxNiArMTg0LDE2IEBAIHZv
aWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Ny
b2xsYWJsZUFyZWEsIEhUTUxFbGVtCiAgICAgYm9vbCBzY3JvbGxlcklzUlRMID0gIXNjcm9sbGlu
Z0VsZW1lbnRCb3guc3R5bGUoKS5pc0xlZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CiAKICAgICAvLyBU
aGUgYm91bmRzIG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3Mgc25hcCBwb3J0LCB3aGVyZSB0
aGUgdG9wIGxlZnQgb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBib3JkZXIgYm94IGlzIHRo
ZSBvcmlnaW4uCi0gICAgYXV0byBzY3JvbGxTbmFwUG9ydCA9IGNvbXB1dGVTY3JvbGxTbmFwUG9y
dE9yQXJlYVJlY3Qoc2Nyb2xsaW5nRWxlbWVudEJveC5wYWRkaW5nQm94UmVjdCgpLCBzY3JvbGxp
bmdFbGVtZW50U3R5bGUuc2Nyb2xsUGFkZGluZygpLCBJbnNldE9yT3V0c2V0OjpJbnNldCk7Cisg
ICAgYXV0byBzY3JvbGxTbmFwUG9ydCA9IGNvbXB1dGVTY3JvbGxTbmFwUG9ydE9yQXJlYVJlY3Qo
dmlld3BvcnRSZWN0SW5Cb3JkZXJCb3hDb29yZGluYXRlcywgc2Nyb2xsaW5nRWxlbWVudFN0eWxl
LnNjcm9sbFBhZGRpbmcoKSwgSW5zZXRPck91dHNldDo6SW5zZXQpOwogICAgIExPR19XSVRIX1NU
UkVBTShTY3JvbGxTbmFwLCBzdHJlYW0gPDwgIkNvbXB1dGluZyBzY3JvbGwgc25hcCBvZmZzZXRz
IGZvciAiIDw8IHNjcm9sbGFibGVBcmVhIDw8ICIgaW4gc25hcCBwb3J0ICIgPDwgc2Nyb2xsU25h
cFBvcnQpOwotICAgIGZvciAoYXV0byogY2hpbGQgOiBzY3JvbGxDb250YWluZXItPnZpZXcoKS5i
b3hlc1dpdGhTY3JvbGxTbmFwUG9zaXRpb25zKCkpIHsKLSAgICAgICAgaWYgKGNoaWxkLT5lbmNs
b3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyRm9yU25hcHBpbmcoKSAhPSBzY3JvbGxDb250YWluZXIp
CisgICAgZm9yIChhdXRvKiBjaGlsZCA6IGJveGVzV2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMpIHsK
KyAgICAgICAgaWYgKGNoaWxkLT5lbmNsb3NpbmdTY3JvbGxhYmxlQ29udGFpbmVyRm9yU25hcHBp
bmcoKSAhPSAmc2Nyb2xsaW5nRWxlbWVudEJveCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCiAg
ICAgICAgIC8vIFRoZSBib3VuZHMgb2YgdGhlIGNoaWxkIGVsZW1lbnQncyBzbmFwIGFyZWEsIHdo
ZXJlIHRoZSB0b3AgbGVmdCBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lcidzIGJvcmRlciBib3gg
aXMgdGhlIG9yaWdpbi4KICAgICAgICAgLy8gVGhlIHNuYXAgYXJlYSBpcyB0aGUgYm91bmRpbmcg
Ym94IG9mIHRoZSBjaGlsZCBlbGVtZW50J3MgYm9yZGVyIGJveCwgYWZ0ZXIgYXBwbHlpbmcgdHJh
bnNmb3JtYXRpb25zLgogICAgICAgICAvLyBGSVhNRTogRm9yIG5vdywganVzdCBjb25zaWRlciB3
aGV0aGVyIHRoZSBzY3JvbGxlciBpcyBSVEwuIFRoZSBiZWhhdmlvciBvZiBMVFIgYm94ZXMgaW5z
aWRlIGEgUlRMIHNjcm9sbGVyIGlzIHBvb3JseSBkZWZpbmVkOiBodHRwczovL2dpdGh1Yi5jb20v
dzNjL2Nzc3dnLWRyYWZ0cy9pc3N1ZXMvNTM2MS4KLSAgICAgICAgYXV0byBzY3JvbGxTbmFwQXJl
YSA9IExheW91dFJlY3QoY2hpbGQtPmxvY2FsVG9Db250YWluZXJRdWFkKEZsb2F0UXVhZChjaGls
ZC0+Ym9yZGVyQm91bmRpbmdCb3goKSksIHNjcm9sbGluZ0VsZW1lbnQucmVuZGVyQm94KCkpLmJv
dW5kaW5nQm94KCkpOworICAgICAgICBhdXRvIHNjcm9sbFNuYXBBcmVhID0gTGF5b3V0UmVjdChj
aGlsZC0+bG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRRdWFkKGNoaWxkLT5ib3JkZXJCb3VuZGlu
Z0JveCgpKSwgJnNjcm9sbGluZ0VsZW1lbnRCb3gpLmJvdW5kaW5nQm94KCkpOwogCiAgICAgICAg
IC8vIGxvY2FsVG9Db250YWluZXJRdWFkIHdpbGwgdHJhbnNmb3JtIHRoZSBzY3JvbGwgc25hcCBh
cmVhIGJ5IHRoZSBzY3JvbGwgcG9zaXRpb24sIGV4Y2VwdCBpbiB0aGUgY2FzZSB0aGF0IHRoaXMg
cG9zaXRpb24gaXMKICAgICAgICAgLy8gY29taW5nIGZyb20gYSBTY3JvbGxWaWV3LiBXZSB3YW50
IHRoZSB0cmFuc2Zvcm1lZCBhcmVhLCBidXQgd2l0aG91dCBzY3JvbGwgcG9zaXRpb24gdGFrZW4g
aW50byBhY2NvdW50LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
QXhpc1Njcm9sbFNuYXBPZmZzZXRzLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9B
eGlzU2Nyb2xsU25hcE9mZnNldHMuaAppbmRleCBlMTM5M2ZiN2I5YWE4Yzc5YjhjNzQwNGEyN2Fm
ZjcxYjY1M2IxZDFhLi5iZGI2OGFlYmQ0MDI3YTEyZTE4ZWE1ZDc5NDA3OWY3YTliMDgyNjRjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25hcE9m
ZnNldHMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9BeGlzU2Nyb2xsU25h
cE9mZnNldHMuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYgRU5BQkxFKENTU19TQ1JPTExfU05B
UCkKIAorI2luY2x1ZGUgIkxheW91dFJlY3QuaCIKICNpbmNsdWRlICJMYXlvdXRVbml0LmgiCiAj
aW5jbHVkZSAiU2Nyb2xsU25hcE9mZnNldHNJbmZvLmgiCiAjaW5jbHVkZSAiU2Nyb2xsVHlwZXMu
aCIKQEAgLTM5LDcgKzQwLDEwIEBAIGNsYXNzIFJlbmRlckJveDsKIGNsYXNzIFJlbmRlclN0eWxl
OwogY2xhc3MgU2Nyb2xsYWJsZUFyZWE7CiAKLXZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3Jv
bGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYsIEhUTUxFbGVtZW50JiBzY3JvbGxpbmdFbGVtZW50
LCBjb25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0eWxl
JiBzY3JvbGxpbmdFbGVtZW50U3R5bGUpOworLy8gVXBkYXRlIHRoZSBzbmFwIG9mZnNldHMgZm9y
IHRoaXMgc2Nyb2xsYWJsZSBhcmVhLCBnaXZlbiB0aGUgUmVuZGVyQm94IG9mIHRoZSBzY3JvbGwg
Y29udGFpbmVyLCB0aGUgUmVuZGVyU3R5bGUKKy8vIHdoaWNoIGRlZmluZXMgdGhlIHNjcm9sbC1z
bmFwIHByb3BlcnRpZXMsIGFuZCB0aGUgdmlld3BvcnQgcmVjdGFuZ2xlIHdpdGggdGhlIG9yaWdp
biBhdCB0aGUgdG9wIGxlZnQgb2YKKy8vIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3MgYm9yZGVy
IGJveC4KK3ZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxl
QXJlYSYsIGNvbnN0IFJlbmRlckJveCYgc2Nyb2xsaW5nRWxlbWVudEJveCwgY29uc3QgUmVuZGVy
U3R5bGUmIHNjcm9sbGluZ0VsZW1lbnRTdHlsZSwgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJv
cmRlckJveENvb3JkaW5hdGVzKTsKIAogY29uc3QgdW5zaWduZWQgaW52YWxpZFNuYXBPZmZzZXRJ
bmRleCA9IFVJTlRfTUFYOwogV0VCQ09SRV9FWFBPUlQgTGF5b3V0VW5pdCBjbG9zZXN0U25hcE9m
ZnNldChjb25zdCBWZWN0b3I8TGF5b3V0VW5pdD4mIHNuYXBPZmZzZXRzLCBjb25zdCBWZWN0b3I8
U2Nyb2xsT2Zmc2V0UmFuZ2U8TGF5b3V0VW5pdD4+JiBzbmFwT2Zmc2V0UmFuZ2VzLCBMYXlvdXRV
bml0IHNjcm9sbERlc3RpbmF0aW9uLCBmbG9hdCB2ZWxvY2l0eSwgdW5zaWduZWQmIGFjdGl2ZVNu
YXBJbmRleCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCBl
MDI4MGM4MmY1YzIyYjM1ZmJkMzIyMmY4YmQ4ZmM2NDkzNzE0OTZkLi4yMmZmYzM4ZjdhMzFiOTNj
Mzc0OTNiOTYxYTlhMGM1N2E1YzkxOWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllci5jcHAKQEAgLTM1OTIsNyArMzU5Miw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnVwZGF0
ZVNuYXBPZmZzZXRzKCkKICAgICAgICAgcmV0dXJuOwogCiAgICAgUmVuZGVyQm94KiBib3ggPSBl
bmNsb3NpbmdFbGVtZW50KCktPnJlbmRlckJveCgpOwotICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9y
U2Nyb2xsYWJsZUFyZWEoKnRoaXMsICpkb3duY2FzdDxIVE1MRWxlbWVudD4oZW5jbG9zaW5nRWxl
bWVudCgpKSwgKmJveCwgYm94LT5zdHlsZSgpKTsKKyAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNj
cm9sbGFibGVBcmVhKCp0aGlzLCAqYm94LCBib3gtPnN0eWxlKCksIGJveC0+cGFkZGluZ0JveFJl
Y3QoKSk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXI6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBj
b25zdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IGY3MzJlMTNiZGVkNzhmMzFlMTA1ODc0ODQ3YTM2MGRmZDVlY2M4NTUuLjhj
OGJlZWI3M2MwYWRhZmIxMzFhNjIxMmQ5YTg3MTgyMzBmYjE0NzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMC0xMS0wMyAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CisKKyAgICAgICAgU2Nyb2xsLXNuYXAgb24gdGhlIHJvb3QgYWxpZ25zIHRvIHRoZSBib2R5IG1h
cmdpbiBlZGdlLCBub3QgdGhlIHZpZXdwb3J0IGVkZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjE3NTUxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkIHR3byBuZXcgcmVmZXJlbmNlIHRlc3RzIHRvIHZlcmlmeSB0aGUgbmV3IGJlaGF2aW9y
LgorCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYWluLWZyYW1lLXdp
dGgtaG9yaXpvbnRhbC1tYXJnaW4tZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogY3Nz
My9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYWluLWZyYW1lLXdpdGgtaG9yaXpvbnRhbC1tYXJn
aW4uaHRtbDogQWRkZWQuCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1t
YWluLWZyYW1lLXdpdGgtdmVydGljYWwtbWFyZ2luLWV4cGVjdGVkLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFpbi1mcmFtZS13aXRoLXZlcnRp
Y2FsLW1hcmdpbi5odG1sOiBBZGRlZC4KKwogMjAyMC0xMS0wMSAgTWFzb24gWGlhbyAgPG1lQG1h
c29ueC5jYT4KIAogICAgICAgICBSRUdSRVNTSU9OIChyMjUyNjg5KTogYm94LXNoYWRvdyB3aXRo
IGluc2V0IGFuZCBuZWdhdGl2ZSBzcHJlYWQgcmVuZGVycyBpbmNvcnJlY3RseQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYWluLWZyYW1lLXdp
dGgtaG9yaXpvbnRhbC1tYXJnaW4tZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFpbi1mcmFtZS13aXRoLWhvcml6b250YWwtbWFyZ2luLWV4
cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ2N2FkMWVhM2YwODEyZGVhZjNjMDhlYzhkM2I2ZTQ5
NmI5YWNhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtbWFpbi1mcmFtZS13aXRoLWhvcml6b250YWwtbWFyZ2luLWV4cGVjdGVkLmh0
bWwKQEAgLTAsMCArMSwxOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxzdHlsZT4KKyAgICAgICAgOnJvb3QsIGJvZHkgeworICAgICAgICAgICAgbWFyZ2luOiAwOwor
ICAgICAgICAgICAgd2lkdGg6IDEwMCU7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAg
ICAgIH0KKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDAlOworICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5
PgorICAgIDxkaXYgc3R5bGU9J2JhY2tncm91bmQtY29sb3I6IGdyZWVuJz48L2Rpdj4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFpbi1mcmFtZS13aXRoLWhvcml6b250YWwtbWFyZ2luLmh0bWwgYi9MYXlvdXRU
ZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1haW4tZnJhbWUtd2l0aC1ob3Jpem9u
dGFsLW1hcmdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQxMmFhY2Y5ZWZlMTA4YTRlNzI4N2UxNmRjMDBj
ODgxMGJhMmI1MGUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLW1haW4tZnJhbWUtd2l0aC1ob3Jpem9udGFsLW1hcmdpbi5odG1sCkBA
IC0wLDAgKzEsMzAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5
bGU+CisgICAgICAgIDpyb290LCBib2R5IHsKKyAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6
IGlubGluZSBtYW5kYXRvcnk7CisgICAgICAgICAgICB3aWR0aDogNTAwdnc7CisgICAgICAgICAg
ICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgbWFy
Z2luLWxlZnQ6IDIwcHg7CisgICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDIwcHg7CisgICAgICAg
IH0KKworICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgICAgICAgICAgIHdpZHRoOiAw
cHg7CisgICAgICAgICAgICBoZWlnaHQ6IDBweDsKKyAgICAgICAgICAgIGJhY2tncm91bmQ6IHRy
YW5zcGFyZW50OworICAgICAgICB9CisKKyAgICAgICAgZGl2IHsKKyAgICAgICAgICAgIHdpZHRo
OiAxMDB2dzsKKyAgICAgICAgICAgIGhlaWdodDogMTAwdmg7CisgICAgICAgIH0KKyAgICA8L3N0
eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPGRpdiBzdHlsZT0nZmxvYXQ6IGxlZnQ7IGJhY2tn
cm91bmQtY29sb3I6IHJlZCc+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0nZmxvYXQ6IGxlZnQ7IHNj
cm9sbC1zbmFwLWFsaWduOiBzdGFydDsgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Jz48L2Rpdj4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtbWFpbi1mcmFtZS13aXRoLXZlcnRpY2FsLW1hcmdpbi1leHBlY3RlZC5o
dG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYWluLWZyYW1l
LXdpdGgtdmVydGljYWwtbWFyZ2luLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTQ2N2FkMWVh
M2YwODEyZGVhZjNjMDhlYzhkM2I2ZTQ5NmI5YWNhYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFpbi1mcmFtZS13aXRoLXZlcnRp
Y2FsLW1hcmdpbi1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMTkgQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c3R5bGU+CisgICAgICAgIDpyb290LCBib2R5IHsKKyAg
ICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgIHdpZHRoOiAxMDAlOworICAgICAgICAg
ICAgaGVpZ2h0OiAxMDAlOworICAgICAgICB9CisgICAgICAgIGRpdiB7CisgICAgICAgICAgICB3
aWR0aDogMTAwJTsKKyAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgfQorICAgIDwv
c3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IHN0eWxlPSdiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbic+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1haW4tZnJhbWUtd2l0aC12ZXJ0aWNhbC1t
YXJnaW4uaHRtbCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFp
bi1mcmFtZS13aXRoLXZlcnRpY2FsLW1hcmdpbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM0MjYwMWZmZGQx
N2ZmMzcwNTRkMDM5MjhlODlkY2I2YmZiZTJkYWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1haW4tZnJhbWUtd2l0aC12ZXJ0aWNh
bC1tYXJnaW4uaHRtbApAQCAtMCwwICsxLDI4IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPHN0eWxlPgorICAgICAgICA6cm9vdCwgYm9keSB7CisgICAgICAgICAgICBz
Y3JvbGwtc25hcC10eXBlOiBibG9jayBtYW5kYXRvcnk7CisgICAgICAgICAgICBoZWlnaHQ6IDEw
MHZoOworICAgICAgICAgICAgbWFyZ2luOiAwOworICAgICAgICAgICAgbWFyZ2luLXRvcDogMjBw
eDsKKyAgICAgICAgICAgIG1hcmdpbi1ib3R0b206IDIwcHg7CisgICAgICAgIH0KKworICAgICAg
ICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgICAgICAgICAgIHdpZHRoOiAwcHg7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDsKKyAgICAgICAgfQorCisgICAgICAgIGRpdiB7
CisgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOwor
ICAgICAgICB9CisgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgc3R5bGU9
J2JhY2tncm91bmQtY29sb3I6IHJlZCc+PC9kaXY+CisgICAgPGRpdiBzdHlsZT0nc2Nyb2xsLXNu
YXAtYWxpZ246IHN0YXJ0OyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsnPjwvZGl2PgorPC9ib2R5
PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413584</attachid>
            <date>2020-11-09 08:21:06 -0800</date>
            <delta_ts>2020-11-09 10:52:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210476-20201109172058.patch</filename>
            <type>text/plain</type>
            <size>17547</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyZDMxZGI5OTAxZTcw
NjU4N2Y0YzRkNzA4NjQ3Njk5NzhjMGIzOC4uMzY0YWViZDRhZTcyNDI2MGQzZDgxMTRjNTFlZmRi
ZTQ1MmMwOTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTExLTA5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBTY3JvbGwtc25h
cCBvbiB0aGUgcm9vdCBhbGlnbnMgdG8gdGhlIGJvZHkgbWFyZ2luIGVkZ2UsIG5vdCB0aGUgdmll
d3BvcnQgZWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNDc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTc1NTEwMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHBhc3NpbmcgdGhlIGZy
YW1lIHZpZXdwb3J0IHRvIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEsIGJlIHN1
cmUgdG8gcHV0IGl0CisgICAgICAgIGludG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoZSBy
b290IGVsZW1lbnQgcGFkZGluZyBib3guIFRoaXMgbWVhbnMgb2Zmc2V0dGluZyBpdCBieSB0aGUK
KyAgICAgICAgbWFyZ2lucyBvZiB0aGUgcm9vdCBlbGVtZW50LgorCisgICAgICAgIFRlc3RzOiB0
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4uaHRtbAorICAgICAgICAgICAgICAgdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1h
aW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1hcmdpbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRz
KTogT2Zmc2V0IHZpZXdwb3J0IGJ5IHRvcCBhbmQgbGVmdCBtYXJnaW5zIG9mIHRoZQorICAgICAg
ICByb290IGVsZW1lbnQuCisKIDIwMjAtMTEtMDkgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gU2Nyb2xsaW5nIHdpdGggbW91c2Ugd2hlZWwgZG9l
c24ndCB3b3JrIG9uIGlmcmFtZXMgd2l0aCBhc3luYyBzY3JvbGxpbmcgZW5hYmxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGNiYzNjNzU3YTc1YjA4YWVjMmI3YTQzOTE1ZGNlOWU4
ZTZkZTU5MDkuLmY1ZGZiOWVlNTI4NTViNjFiZGExMTYxZDEyN2NhMGE0NTcyY2JjZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTk0MSw3ICs5NDEsMTMgQEAgdm9pZCBGcmFtZVZp
ZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8v
IHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEgY2FsY3VsYXRlcyBzY3JvbGwgb2Zm
c2V0cyB3aXRoIGFsbCByZWN0YW5nbGVzIGhhdmluZyB0aGVpciBvcmlnaW4gYXQgdGhlCisgICAg
Ly8gcGFkZGluZyBib3ggcmVjdGFuZ2xlIG9mIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQuIFVubGlr
ZSBmb3Igb3ZlcmZsb3c6c2Nyb2xsLCB0aGUgRnJhbWVWaWV3IHZpZXdwb3J0IGluY2x1ZGVzCisg
ICAgLy8gdGhlIHJvb3QgZWxlbWVudCBtYXJnaW5zLiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0
byBvZmZzZXQgdGhlIHZpZXdwb3J0IHJlY3RhbmdsZSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvCisg
ICAgLy8gdGhlIHBhZGRpbmcgYm94IG9mIHRoZSByb290IGVsZW1lbnQuCiAgICAgTGF5b3V0UmVj
dCB2aWV3cG9ydCA9IExheW91dFJlY3QoSW50UG9pbnQoKSwgYmFzZUxheW91dFZpZXdwb3J0U2l6
ZSgpKTsKKyAgICB2aWV3cG9ydC5tb3ZlKC1yb290UmVuZGVyZXItPm1hcmdpblJpZ2h0KCksIC1y
b290UmVuZGVyZXItPm1hcmdpblRvcCgpKTsKKwogICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Ny
b2xsYWJsZUFyZWEoKnRoaXMsICpyb290UmVuZGVyZXIsICpzdHlsZVRvVXNlLCB2aWV3cG9ydCk7
CiB9CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCA4OTU1NzhlYjA5MzdhYzgzYzljMzY0ODAxNzhmMDhjZTU0Y2I3ZjQ1Li4z
N2MwODczNzdiZWQ4MDMwODk0MTljNTZhY2E3NDg4NTM2NWQzNDliIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTggQEAKKzIwMjAtMTEtMDkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29t
PgorCisgICAgICAgIFNjcm9sbC1zbmFwIG9uIHRoZSByb290IGFsaWducyB0byB0aGUgYm9keSBt
YXJnaW4gZWRnZSwgbm90IHRoZSB2aWV3cG9ydCBlZGdlCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVt
LzYxNzU1MTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZGVkIHRlc3RzIGZvciBuZXcgYmVoYXZpb3IuCisKKyAgICAgICAgKiB0aWxlZC1kcmF3
aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1l
LWhvcml6b250YWwtd2l0aC1tYXJnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB0
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4uaHRtbDogQWRkZWQuCisgICAgICAgICog
dGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5
LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1hcmdpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHRpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1tYXJnaW4uaHRtbDogQWRkZWQuCisKIDIw
MjAtMTEtMDkgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEuY29tPgogCiAgICAgICAgIFJFR1JF
U1NJT04ocjI2OTUwMyk6IFtHVEtdW1dQRV0gPjIwMCB0ZXN0cyBhcmUgZmFpbGluZwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2luLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLW1hcmdpbi1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzA5ZDQ4NjhlOWQyMDRjNWQ0OGU2MzA0MDA2ODZlNDQw
ODAxMGY4MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpv
bnRhbC13aXRoLW1hcmdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGRpdiBz
Y3JvbGxlZCB0byBuZXh0IHdpbmRvdy4KK1BBU1MgZGl2IGhvbm9yZWQgc25hcCBwb2ludHMuCitQ
QVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2luLmh0bWwg
Yi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi41OGEyZjQ1NzY5YzZmNjc1ODFiMGY3MzU0MTdlOTY5ZDc2MWRkNWQ3Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2lu
Lmh0bWwKQEAgLTAsMCArMSwxMjMgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+CisgICAgPGhl
YWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGh0bWwgeworICAgICAgICAgICAgICAg
IHNjcm9sbC1zbmFwLXR5cGU6IHggbWFuZGF0b3J5OworICAgICAgICAgICAgICAgIG1hcmdpbi1s
ZWZ0OiA1MHB4OworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmhvcml6b250YWxHYWxsZXJ5
IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogNjAwdnc7CisgICAgICAgICAgICAgICAgaGVpZ2h0
OiAxMDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAgcGFk
ZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7CisgICAgICAg
ICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7Cisg
ICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAt
YWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0ZW0wIHsgYmFja2dy
b3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNrZ3JvdW5kLWNvbG9y
OiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsg
fQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1YTsgfQorICAgICAg
ICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9CisgICAgICAgICAgICAj
aXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1
ZTsKKworICAgICAgICB2YXIgdGFyZ2V0U2Nyb2xsZXI7CisgICAgICAgIHZhciBzY3JvbGxQb3Np
dGlvbkJlZm9yZUdsaWRlOworICAgICAgICB2YXIgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwOwor
CisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsU25hcCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIC8vIFRoZSBkaXYgc2hvdWxkIGhhdmUgc25hcHBlZCBiYWNrIHRvIHRoZSBwcmV2aW91
cyBwb3NpdGlvbgorICAgICAgICAgICAgaWYgKHRhcmdldFNjcm9sbGVyLnNjcm9sbExlZnQgIT0g
c2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoImRp
diBkaWQgbm90IHNuYXAgYmFjayB0byBwcm9wZXIgbG9jYXRpb24uIEV4cGVjdGVkICIgKyBzY3Jv
bGxQb3NpdGlvbkJlZm9yZVNuYXAgKyAiLCBidXQgZ290ICIgKyB0YXJnZXRTY3JvbGxlci5zY3Jv
bGxMZWZ0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKCJk
aXYgaG9ub3JlZCBzbmFwIHBvaW50cy4iKTsKKworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzY3JvbGxTbmFwVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCA9IHRhcmdldFNjcm9sbGVy
LnNjcm9sbExlZnQ7CisKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB0YXJnZXRTY3JvbGxl
ci5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gdGFyZ2V0U2Ny
b2xsZXIub2Zmc2V0VG9wICsgMjA7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hl
ZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9z
WCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFt
ZQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKC0xLCAwLCAnYmVnYW4nLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5k
ZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnY2hhbmdl
ZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVy
U2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsU25hcCk7CisgICAgICAgIH0KKworICAg
ICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbEdsaWRlKCkKKyAgICAgICAgeworICAgICAgICAg
ICAgLy8gVGhlIGRpdiBzaG91bGQgaGF2ZSBzY3JvbGxlZCAoZ2xpZGVkKSB0byB0aGUgbmV4dCBz
bmFwIHBvaW50LCB3aGljaCBzaG91bGQgYmUgdGhlIHdpZHRoCisgICAgICAgICAgICAvLyBvZiB0
aGUgZmlyc3QgZGl2IHBsdXMgdGhlIHJvb3QgZWxlbWVudCdzIGxlZnQgbWFyZ2luICg1MCBwaXhl
bHMpLgorICAgICAgICAgICAgaWYgKHRhcmdldFNjcm9sbGVyLnNjcm9sbExlZnQgPT0gd2luZG93
LmlubmVyV2lkdGgpCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IHNjcm9sbGVkIHRv
IG5leHQgd2luZG93LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RG
YWlsZWQoImRpdiBkaWQgbm90IGhvbm9yIHNuYXAgcG9pbnRzLiBFeHBlY3RlZCAiICsgd2luZG93
LmlubmVyV2lkdGggKyAiLCBidXQgZ290ICIgKyB0YXJnZXRTY3JvbGxlci5zY3JvbGxMZWZ0KTsK
KworICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxTbmFwVGVzdCwgMCk7CisgICAgICAgIH0K
KworICAgICAgICBmdW5jdGlvbiBzY3JvbGxHbGlkZVRlc3QoKQorICAgICAgICB7CisgICAgICAg
ICAgICBzY3JvbGxQb3NpdGlvbkJlZm9yZUdsaWRlID0gdGFyZ2V0U2Nyb2xsZXIuc2Nyb2xsTGVm
dDsKKworICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IHRhcmdldFNjcm9sbGVyLm9mZnNldExl
ZnQgKyAyMDsKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSB0YXJnZXRTY3JvbGxlci5vZmZz
ZXRUb3AgKyAyMDsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBv
c1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qgb3V0c2lkZSB0aGUgaUZyYW1lCisgICAgICAg
ICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMo
LTEsIDAsICdiZWdhbicsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUn
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnY2hh
bmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVkJywgJ25vbmUnKTsKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygt
MSwgMCwgJ25vbmUnLCAnYmVnaW4nKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ25vbmUnLCAnY29udGludWUn
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygwLCAwLCAnbm9uZScsICdlbmQnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
LmNhbGxBZnRlclNjcm9sbGluZ0NvbXBsZXRlcyhjaGVja0ZvclNjcm9sbEdsaWRlKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAgICAgICAg
IHRhcmdldFNjcm9sbGVyID0gZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICAgICAgICAg
IGlmICh3aW5kb3cuZXZlbnRTZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0
UGxhdGZvcm1Nb21lbnR1bVNjcm9sbGluZ1ByZWRpY3Rpb25FbmFibGVkKGZhbHNlKTsKKyAgICAg
ICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbEdsaWRlVGVzdCwgMCk7CisgICAgICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnaXRlbTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5u
ZXJIVE1MID0gIjxwPlRoaXMgdGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVl
LiBUbyBtYW51YWxseSB0ZXN0IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAg
ICAgICAgICAgICAgICAgICArICJpbnNpZGUgdGhlIHJlZCByZWdpb24gYXQgdGhlIHRvcCBvZiB0
aGUgcGFnZSwgYW5kIHRoZW4gdXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dp
cGUgdG8gbWFrZSBhPGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgInNtYWxsIHN3aXBlIGdl
c3R1cmUgd2l0aCBzb21lIG1vbWVudHVtLjxici8+PGJyLz4iCisgICAgICAgICAgICAgICAgICAg
ICsgIlRoZSByZWdpb24gc2hvdWxkIHNjcm9sbCB0byBzaG93IGEgZ3JlZW4gcmVnaW9uLjxici8+
PGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgIk5leHQsIHBlcmZvcm0gYSBzbWFsbCBzY3Jv
bGwgZ2VzdHVyZSB0aGF0IGRvZXMgbm90IGludm9sdmUgbW9tZW50dW0uIFlvdSBzaG91bGQgYmVn
aW4gdG8gc2VlIG9uZSBvZiB0aGUgY29sb3JzPGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsg
InRvIHRoZSBsZWZ0IChvciByaWdodCkgb2YgdGhlIGN1cnJlbnQgZ3JlZW4gYm94LiBXaGVuIHlv
dSByZWxlYXNlIHRoZSB3aGVlbCwgdGhlIHJlZ2lvbiBzaG91bGQgc2Nyb2xsIGJhY2sgc288YnIv
PiIKKyAgICAgICAgICAgICAgICAgICAgKyAidGhhdCB0aGUgcmVnaW9uIGlzIGEgc2luZ2xlIGNv
bG9yLjxici8+PGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgIllvdSBzaG91bGQgYWxzbyBi
ZSBhYmxlIHRvIHJlcGVhdCB0aGVzZSB0ZXN0IHN0ZXBzIGZvciB0aGUgdmVydGljYWwgcmVnaW9u
IGJlbG93LjwvcD4iOworICAgICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGls
ZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2hlYWQ+CisgICAgPGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNzPSJob3Jpem9u
dGFsR2FsbGVyeSI+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0wIiBjbGFzcz0iY29sb3JCb3giPjxk
aXYgaWQ9ImNvbnNvbGUiPjwvZGl2PjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMSIgY2xh
c3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTIiIGNsYXNzPSJjb2xv
ckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0zIiBjbGFzcz0iY29sb3JCb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAg
ICAgICAgPGRpdiBpZD0iaXRlbTUiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxp
bmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13
aXRoLW1hcmdpbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2Fs
LXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDlkNDg2OGU5ZDIwNGM1ZDQ4
ZTYzMDQwMDY4NmU0NDA4MDEwZjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1h
aW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1hcmdpbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBA
CitQQVNTIGRpdiBzY3JvbGxlZCB0byBuZXh0IHdpbmRvdy4KK1BBU1MgZGl2IGhvbm9yZWQgc25h
cCBwb2ludHMuCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1h
cmdpbi5odG1sIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1hcmdpbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZjMTFjMmRkMzRiN2ExNGJmZGQ0Y2UyNDIwNDQ5ZDMzNmQ4ZjJkNzEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgt
bWFyZ2luLmh0bWwKQEAgLTAsMCArMSwxMjMgQEAKKzwhRE9DVFlQRSBIVE1MPgorPGh0bWw+Cisg
ICAgPGhlYWQ+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgICAgIGh0bWwgeworICAgICAgICAg
ICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IHkgbWFuZGF0b3J5OworICAgICAgICAgICAgICAgIG1h
cmdpbi10b3A6IDUwcHg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAudmVydGljYWxHYWxs
ZXJ5IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAgICAgaGVp
Z2h0OiA2MDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7CisgICAgICAgICAgICAgICAg
cGFkZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC5jb2xvckJveCB7CisgICAg
ICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAwdnc7
CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNu
YXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICAgICAgI2l0ZW0wIHsgYmFj
a2dyb3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRlbTEgeyBiYWNrZ3JvdW5kLWNv
bG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsgfQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1jb2xvcjogYXF1YTsgfQorICAg
ICAgICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVsbG93OyB9CisgICAgICAgICAg
ICAjaXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9CisgICAgICAgIDwvc3R5bGU+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9z
Y3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0g
dHJ1ZTsKKworICAgICAgICB2YXIgc2Nyb2xsaW5nVGFyZ2V0OworICAgICAgICB2YXIgc2Nyb2xs
UG9zaXRpb25CZWZvcmVHbGlkZTsKKyAgICAgICAgdmFyIHNjcm9sbFBvc2l0aW9uQmVmb3JlU25h
cDsKKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbFNuYXAoKQorICAgICAgICB7Cisg
ICAgICAgICAgICAvLyBUaGUgZGl2IHNob3VsZCBoYXZlIHNuYXBwZWQgYmFjayB0byB0aGUgcHJl
dmlvdXMgcG9zaXRpb24KKyAgICAgICAgICAgIGlmIChzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9w
ICE9IHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCkKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGBkaXYgZGlkIG5vdCBzbmFwIGJhY2sgdG8gcHJvcGVyIGxvY2F0aW9uLiAoJHtzY3JvbGxpbmdU
YXJnZXQuc2Nyb2xsVG9wfSB2cy4gJHtzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXB9KWApOworICAg
ICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRpdiBob25vcmVkIHNu
YXAgcG9pbnRzLiIpOworCisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQor
CisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbFNuYXBUZXN0KCkKKyAgICAgICAgeworICAgICAgICAg
ICAgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwID0gc2Nyb2xsaW5nVGFyZ2V0LnNjcm9sbFRvcDsK
KworICAgICAgICAgICAgdmFyIHN0YXJ0UG9zWCA9IHNjcm9sbGluZ1RhcmdldC5vZmZzZXRMZWZ0
ICsgMjA7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZID0gc2Nyb2xsaW5nVGFyZ2V0Lm9mZnNl
dFRvcCArIDIwOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7
CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9z
WSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygw
LCAtMSwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Ny
b2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVu
dHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ2VuZGVk
JywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLmNhbGxBZnRlclNjcm9sbGluZ0Nv
bXBsZXRlcyhjaGVja0ZvclNjcm9sbFNuYXApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rp
b24gY2hlY2tGb3JTY3JvbGxHbGlkZSgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBk
aXYgc2hvdWxkIGhhdmUgc2Nyb2xsZWQgKGdsaWRlZCkgdG8gdGhlIG5leHQgc25hcCBwb2ludCwg
d2hpY2ggc2hvdWxkIGJlIHRoZSBoZWlnaHQKKyAgICAgICAgICAgIC8vIG9mIHRoZSBmaXJzdCBk
aXYgcGx1cyB0aGUgcm9vdCBlbGVtZW50J3MgdG9wIG1hcmdpbiAoNTAgcGl4ZWxzKS4KKyAgICAg
ICAgICAgIGlmIChzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9wID09IHdpbmRvdy5pbm5lckhlaWdo
dCArIDUwKQorICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQoImRpdiBzY3JvbGxlZCB0byBuZXh0
IHdpbmRvdy4iKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVk
KGBkaXYgZGlkIG5vdCBob25vciBzbmFwIHBvaW50cy4gKCR7c2Nyb2xsaW5nVGFyZ2V0LnNjcm9s
bFRvcH0gdnMuICR7d2luZG93LmlubmVySGVpZ2h0fSlgKTsKKworICAgICAgICAgICAgc2V0VGlt
ZW91dChzY3JvbGxTbmFwVGVzdCwgMCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBz
Y3JvbGxHbGlkZVRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbkJl
Zm9yZUdsaWRlID0gc2Nyb2xsaW5nVGFyZ2V0LnNjcm9sbFRvcDsKKworICAgICAgICAgICAgdmFy
IHN0YXJ0UG9zWCA9IHNjcm9sbGluZ1RhcmdldC5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgICAg
ICB2YXIgc3RhcnRQb3NZID0gc2Nyb2xsaW5nVGFyZ2V0Lm9mZnNldFRvcCArIDIwOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5tb3VzZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3
ZSBhcmUganVzdCBvdXRzaWRlIHRoZSBpRnJhbWUKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2JlZ2FuJywgJ25v
bmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRN
b21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
Y2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBo
YXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnbm9uZScsICdiZWdp
bicpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC00LCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdu
b25lJywgJ2VuZCcpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5n
Q29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsR2xpZGUpOworICAgICAgICB9CisKKyAgICAgICAgZnVu
Y3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgc2Nyb2xsaW5nVGFyZ2V0ID0g
ZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudDsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRT
ZW5kZXIpIHsKKyAgICAgICAgICAgICAgICBpbnRlcm5hbHMuc2V0UGxhdGZvcm1Nb21lbnR1bVNj
cm9sbGluZ1ByZWRpY3Rpb25FbmFibGVkKGZhbHNlKTsKKyAgICAgICAgICAgICAgICBzZXRUaW1l
b3V0KHNjcm9sbEdsaWRlVGVzdCwgMCk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAg
ICAgICAgIHZhciBtZXNzYWdlTG9jYXRpb24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaXRl
bTAnKTsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoJ2RpdicpOworICAgICAgICAgICAgICAgIG1lc3NhZ2UuaW5uZXJIVE1MID0gIjxwPlRoaXMg
dGVzdCBpcyBiZXR0ZXIgcnVuIHVuZGVyIER1bXBSZW5kZXJUcmVlLiBUbyBtYW51YWxseSB0ZXN0
IGl0LCBwbGFjZSB0aGUgbW91c2UgcG9pbnRlcjxici8+IgorICAgICAgICAgICAgICAgICAgICAr
ICJpbnNpZGUgdGhlIHJlZCByZWdpb24gYXQgdGhlIHRvcCBvZiB0aGUgcGFnZSwgYW5kIHRoZW4g
dXNlIHRoZSBtb3VzZSB3aGVlbCBvciBhIHR3by1maW5nZXIgc3dpcGUgdG8gbWFrZSBhPGJyLz4i
CisgICAgICAgICAgICAgICAgICAgICsgInNtYWxsIHN3aXBlIGdlc3R1cmUgd2l0aCBzb21lIG1v
bWVudHVtLjxici8+PGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgIlRoZSByZWdpb24gc2hv
dWxkIHNjcm9sbCB0byBzaG93IGEgZ3JlZW4gcmVnaW9uLjxici8+PGJyLz4iCisgICAgICAgICAg
ICAgICAgICAgICsgIk5leHQsIHBlcmZvcm0gYSBzbWFsbCBzY3JvbGwgZ2VzdHVyZSB0aGF0IGRv
ZXMgbm90IGludm9sdmUgbW9tZW50dW0uIFlvdSBzaG91bGQgYmVnaW4gdG8gc2VlIG9uZSBvZiB0
aGUgY29sb3JzPGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgInRvIHRoZSBsZWZ0IChvciBy
aWdodCkgb2YgdGhlIGN1cnJlbnQgZ3JlZW4gYm94LiBXaGVuIHlvdSByZWxlYXNlIHRoZSB3aGVl
bCwgdGhlIHJlZ2lvbiBzaG91bGQgc2Nyb2xsIGJhY2sgc288YnIvPiIKKyAgICAgICAgICAgICAg
ICAgICAgKyAidGhhdCB0aGUgcmVnaW9uIGlzIGEgc2luZ2xlIGNvbG9yLjxici8+PGJyLz4iCisg
ICAgICAgICAgICAgICAgICAgICsgIllvdSBzaG91bGQgYWxzbyBiZSBhYmxlIHRvIHJlcGVhdCB0
aGVzZSB0ZXN0IHN0ZXBzIGZvciB0aGUgdmVydGljYWwgcmVnaW9uIGJlbG93LjwvcD4iOworICAg
ICAgICAgICAgICAgIG1lc3NhZ2VMb2NhdGlvbi5hcHBlbmRDaGlsZChtZXNzYWdlKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiIGNsYXNzPSJ2ZXJ0aWNhbEdhbGxlcnkiPgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMCIgY2xhc3M9ImNvbG9yQm94Ij48ZGl2IGlkPSJjb25zb2xlIj48L2Rp
dj48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTEiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0yIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtMyIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBp
ZD0iaXRlbTQiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW01
IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgIDwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413602</attachid>
            <date>2020-11-09 10:53:04 -0800</date>
            <delta_ts>2020-11-10 00:57:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210476-20201109195302.patch</filename>
            <type>text/plain</type>
            <size>17939</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyZDMxZGI5OTAxZTcw
NjU4N2Y0YzRkNzA4NjQ3Njk5NzhjMGIzOC4uMzY0YWViZDRhZTcyNDI2MGQzZDgxMTRjNTFlZmRi
ZTQ1MmMwOTVjYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTExLTA5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBTY3JvbGwtc25h
cCBvbiB0aGUgcm9vdCBhbGlnbnMgdG8gdGhlIGJvZHkgbWFyZ2luIGVkZ2UsIG5vdCB0aGUgdmll
d3BvcnQgZWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNDc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTc1NTEwMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHBhc3NpbmcgdGhlIGZy
YW1lIHZpZXdwb3J0IHRvIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEsIGJlIHN1
cmUgdG8gcHV0IGl0CisgICAgICAgIGludG8gdGhlIGNvb3JkaW5hdGUgc3lzdGVtIG9mIHRoZSBy
b290IGVsZW1lbnQgcGFkZGluZyBib3guIFRoaXMgbWVhbnMgb2Zmc2V0dGluZyBpdCBieSB0aGUK
KyAgICAgICAgbWFyZ2lucyBvZiB0aGUgcm9vdCBlbGVtZW50LgorCisgICAgICAgIFRlc3RzOiB0
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4uaHRtbAorICAgICAgICAgICAgICAgdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1h
aW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1hcmdpbi5odG1sCisKKyAgICAgICAgKiBwYWdlL0ZyYW1l
Vmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRz
KTogT2Zmc2V0IHZpZXdwb3J0IGJ5IHRvcCBhbmQgbGVmdCBtYXJnaW5zIG9mIHRoZQorICAgICAg
ICByb290IGVsZW1lbnQuCisKIDIwMjAtMTEtMDkgIENocmlzIExvcmQgIDxjbG9yZEBpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gU2Nyb2xsaW5nIHdpdGggbW91c2Ugd2hlZWwgZG9l
c24ndCB3b3JrIG9uIGlmcmFtZXMgd2l0aCBhc3luYyBzY3JvbGxpbmcgZW5hYmxlZApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IGNiYzNjNzU3YTc1YjA4YWVjMmI3YTQzOTE1ZGNlOWU4
ZTZkZTU5MDkuLjA4ZTI5MjU2ZmY2OGM1NWQ4MDllNjBmN2FiMDBkNGY5Yjk1MWI1MmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTk0MSw3ICs5NDEsMTMgQEAgdm9pZCBGcmFtZVZp
ZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKCkKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAorICAgIC8v
IHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEgY2FsY3VsYXRlcyBzY3JvbGwgb2Zm
c2V0cyB3aXRoIGFsbCByZWN0YW5nbGVzIGhhdmluZyB0aGVpciBvcmlnaW4gYXQgdGhlCisgICAg
Ly8gcGFkZGluZyBib3ggcmVjdGFuZ2xlIG9mIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQuIFVubGlr
ZSBmb3Igb3ZlcmZsb3c6c2Nyb2xsLCB0aGUgRnJhbWVWaWV3IHZpZXdwb3J0IGluY2x1ZGVzCisg
ICAgLy8gdGhlIHJvb3QgZWxlbWVudCBtYXJnaW5zLiBUaGlzIG1lYW5zIHRoYXQgd2UgbmVlZCB0
byBvZmZzZXQgdGhlIHZpZXdwb3J0IHJlY3RhbmdsZSB0byBtYWtlIGl0IHJlbGF0aXZlIHRvCisg
ICAgLy8gdGhlIHBhZGRpbmcgYm94IG9mIHRoZSByb290IGVsZW1lbnQuCiAgICAgTGF5b3V0UmVj
dCB2aWV3cG9ydCA9IExheW91dFJlY3QoSW50UG9pbnQoKSwgYmFzZUxheW91dFZpZXdwb3J0U2l6
ZSgpKTsKKyAgICB2aWV3cG9ydC5tb3ZlKC1yb290UmVuZGVyZXItPm1hcmdpbkxlZnQoKSwgLXJv
b3RSZW5kZXJlci0+bWFyZ2luVG9wKCkpOworCiAgICAgdXBkYXRlU25hcE9mZnNldHNGb3JTY3Jv
bGxhYmxlQXJlYSgqdGhpcywgKnJvb3RSZW5kZXJlciwgKnN0eWxlVG9Vc2UsIHZpZXdwb3J0KTsK
IH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDg5NTU3OGViMDkzN2FjODNjOWMzNjQ4MDE3OGYwOGNlNTRjYjdmNDUuLjM3
YzA4NzM3N2JlZDgwMzA4OTQxOWM1NmFjYTc0ODg1MzY1ZDM0OWIgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
OCBAQAorMjAyMC0xMS0wOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+
CisKKyAgICAgICAgU2Nyb2xsLXNuYXAgb24gdGhlIHJvb3QgYWxpZ25zIHRvIHRoZSBib2R5IG1h
cmdpbiBlZGdlLCBub3QgdGhlIHZpZXdwb3J0IGVkZ2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMDQ3NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
NjE3NTUxMDM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgdGVzdHMgZm9yIG5ldyBiZWhhdmlvci4KKworICAgICAgICAqIHRpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUt
aG9yaXpvbnRhbC13aXRoLW1hcmdpbi1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHRp
bGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1t
YWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLW1hcmdpbi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB0
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAg
ICAgICogdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFu
ZGF0b3J5LW1haW5mcmFtZS12ZXJ0aWNhbC13aXRoLW1hcmdpbi5odG1sOiBBZGRlZC4KKwogMjAy
MC0xMS0wOSAgQ2hyaXMgTG9yZCAgPGNsb3JkQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVT
U0lPTihyMjY5NTAzKTogW0dUS11bV1BFXSA+MjAwIHRlc3RzIGFyZSBmYWlsaW5nCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4tZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2luLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jMDlkNDg2OGU5ZDIwNGM1ZDQ4ZTYzMDQwMDY4NmU0NDA4
MDEwZjgwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3Jv
bGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9u
dGFsLXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgZGl2IHNj
cm9sbGVkIHRvIG5leHQgd2luZG93LgorUEFTUyBkaXYgaG9ub3JlZCBzbmFwIHBvaW50cy4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4uaHRtbCBi
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLW1hcmdpbi5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjUyMjdlNjAzZjUzZGVkYmVjZmQ2ZTE4MjJlNjQ0Mzg4N2ZhYTdmMGUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4u
aHRtbApAQCAtMCwwICsxLDEyNiBAQAorPCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVh
ZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAgICAg
c2Nyb2xsLXNuYXAtdHlwZTogeCBtYW5kYXRvcnk7CisgICAgICAgICAgICAgICAgbWFyZ2luLWxl
ZnQ6IDUwcHg7CisgICAgICAgICAgICAgICAgLyogVGhlcmUncyBhIGRpZmZlcmVudCB2YWx1ZSBm
b3IgdGhlIHJpZ2h0IG1hcmdpbiB0byBlbnN1cmUgdGhhdAorICAgICAgICAgICAgICAgICAgIG1h
cmdpbnMgd2l0aCBkaWZmZXJlbnQgc2l6ZXMgYXJlIHByb3Blcmx5IHRlc3RlZC4gKi8KKyAgICAg
ICAgICAgICAgICBtYXJnaW4tcmlnaHQ6IDEwMHB4OworICAgICAgICAgICAgfQorICAgICAgICAg
ICAgLmhvcml6b250YWxHYWxsZXJ5IHsKKyAgICAgICAgICAgICAgICB3aWR0aDogNjAwdnc7Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAgICAgICBtYXJnaW46IDA7
CisgICAgICAgICAgICAgICAgcGFkZGluZzogMDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IC5jb2xvckJveCB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDB2aDsKKyAgICAgICAgICAg
ICAgICB3aWR0aDogMTAwdnc7CisgICAgICAgICAgICAgICAgZmxvYXQ6IGxlZnQ7CisgICAgICAg
ICAgICAgICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgI2l0ZW0wIHsgYmFja2dyb3VuZC1jb2xvcjogcmVkOyB9CisgICAgICAgICAgICAjaXRl
bTEgeyBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsgfQorICAgICAgICAgICAgI2l0ZW0yIHsgYmFj
a2dyb3VuZC1jb2xvcjogYmx1ZTsgfQorICAgICAgICAgICAgI2l0ZW0zIHsgYmFja2dyb3VuZC1j
b2xvcjogYXF1YTsgfQorICAgICAgICAgICAgI2l0ZW00IHsgYmFja2dyb3VuZC1jb2xvcjogeWVs
bG93OyB9CisgICAgICAgICAgICAjaXRlbTUgeyBiYWNrZ3JvdW5kLWNvbG9yOiBmdWNoc2lhOyB9
CisgICAgICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJj
ZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRv
dy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgICAgICB2YXIgdGFyZ2V0U2Nyb2xsZXI7Cisg
ICAgICAgIHZhciBzY3JvbGxQb3NpdGlvbkJlZm9yZUdsaWRlOworICAgICAgICB2YXIgc2Nyb2xs
UG9zaXRpb25CZWZvcmVTbmFwOworCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsU25h
cCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBkaXYgc2hvdWxkIGhhdmUgc25hcHBl
ZCBiYWNrIHRvIHRoZSBwcmV2aW91cyBwb3NpdGlvbgorICAgICAgICAgICAgaWYgKHRhcmdldFNj
cm9sbGVyLnNjcm9sbExlZnQgIT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwKQorICAgICAgICAg
ICAgICAgIHRlc3RGYWlsZWQoImRpdiBkaWQgbm90IHNuYXAgYmFjayB0byBwcm9wZXIgbG9jYXRp
b24uIEV4cGVjdGVkICIgKyBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXAgKyAiLCBidXQgZ290ICIg
KyB0YXJnZXRTY3JvbGxlci5zY3JvbGxMZWZ0KTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICB0ZXN0UGFzc2VkKCJkaXYgaG9ub3JlZCBzbmFwIHBvaW50cy4iKTsKKworICAgICAg
ICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBzY3Jv
bGxTbmFwVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uQmVmb3Jl
U25hcCA9IHRhcmdldFNjcm9sbGVyLnNjcm9sbExlZnQ7CisKKyAgICAgICAgICAgIHZhciBzdGFy
dFBvc1ggPSB0YXJnZXRTY3JvbGxlci5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgICAgICB2YXIg
c3RhcnRQb3NZID0gdGFyZ2V0U2Nyb2xsZXIub2Zmc2V0VG9wICsgMjA7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBq
dXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnYmVnYW4nLCAnbm9uZScpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKC0xLCAwLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2Vk
JywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsU25h
cCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbEdsaWRlKCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIGRpdiBzaG91bGQgaGF2ZSBzY3JvbGxlZCAo
Z2xpZGVkKSB0byB0aGUgbmV4dCBzbmFwIHBvaW50LCB3aGljaCBzaG91bGQgYmUgdGhlIHdpZHRo
CisgICAgICAgICAgICAvLyBvZiB0aGUgZmlyc3QgZGl2IHBsdXMgdGhlIHJvb3QgZWxlbWVudCdz
IGxlZnQgbWFyZ2luICg1MCBwaXhlbHMpLgorICAgICAgICAgICAgaWYgKHRhcmdldFNjcm9sbGVy
LnNjcm9sbExlZnQgPT0gd2luZG93LmlubmVyV2lkdGggKyA1MCkKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKCJkaXYgc2Nyb2xsZWQgdG8gbmV4dCB3aW5kb3cuIik7CisgICAgICAgICAgICBl
bHNlCisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZCgiZGl2IGRpZCBub3QgaG9ub3Igc25hcCBw
b2ludHMuIEV4cGVjdGVkICIgKyB3aW5kb3cuaW5uZXJXaWR0aCArICIsIGJ1dCBnb3QgIiArIHRh
cmdldFNjcm9sbGVyLnNjcm9sbExlZnQpOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9s
bFNuYXBUZXN0LCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbEdsaWRl
VGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uQmVmb3JlR2xpZGUg
PSB0YXJnZXRTY3JvbGxlci5zY3JvbGxMZWZ0OworCisgICAgICAgICAgICB2YXIgc3RhcnRQb3NY
ID0gdGFyZ2V0U2Nyb2xsZXIub2Zmc2V0TGVmdCArIDIwOworICAgICAgICAgICAgdmFyIHN0YXJ0
UG9zWSA9IHRhcmdldFNjcm9sbGVyLm9mZnNldFRvcCArIDIwOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW9uaXRvcldoZWVsRXZlbnRzKCk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbyhzdGFydFBvc1gsIHN0YXJ0UG9zWSk7IC8vIE1ha2Ugc3VyZSB3ZSBhcmUganVzdCBv
dXRzaWRlIHRoZSBpRnJhbWUKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlX
aXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2JlZ2FuJywgJ25vbmUnKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnY2hhbmdlZCcsICdu
b25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5k
TW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2
ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAn
ZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnbm9uZScsICdiZWdpbicpOworICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2Vz
KC0xLCAwLCAnbm9uZScsICdjb250aW51ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdub25lJywgJ2VuZCcp
OworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNo
ZWNrRm9yU2Nyb2xsR2xpZGUpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gb25Mb2Fk
KCkKKyAgICAgICAgeworICAgICAgICAgICAgdGFyZ2V0U2Nyb2xsZXIgPSBkb2N1bWVudC5zY3Jv
bGxpbmdFbGVtZW50OworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAg
ICAgICAgICAgICAgIGludGVybmFscy5zZXRQbGF0Zm9ybU1vbWVudHVtU2Nyb2xsaW5nUHJlZGlj
dGlvbkVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsR2xp
ZGVUZXN0LCAwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIG1l
c3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtMCcpOworICAgICAg
ICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7Cisg
ICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlzIGJldHRl
ciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBsYWNlIHRo
ZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgImluc2lkZSB0aGUg
cmVkIHJlZ2lvbiBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhlIG1vdXNl
IHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBtYWtlIGE8YnIvPiIKKyAgICAgICAgICAg
ICAgICAgICAgKyAic21hbGwgc3dpcGUgZ2VzdHVyZSB3aXRoIHNvbWUgbW9tZW50dW0uPGJyLz48
YnIvPiIKKyAgICAgICAgICAgICAgICAgICAgKyAiVGhlIHJlZ2lvbiBzaG91bGQgc2Nyb2xsIHRv
IHNob3cgYSBncmVlbiByZWdpb24uPGJyLz48YnIvPiIKKyAgICAgICAgICAgICAgICAgICAgKyAi
TmV4dCwgcGVyZm9ybSBhIHNtYWxsIHNjcm9sbCBnZXN0dXJlIHRoYXQgZG9lcyBub3QgaW52b2x2
ZSBtb21lbnR1bS4gWW91IHNob3VsZCBiZWdpbiB0byBzZWUgb25lIG9mIHRoZSBjb2xvcnM8YnIv
PiIKKyAgICAgICAgICAgICAgICAgICAgKyAidG8gdGhlIGxlZnQgKG9yIHJpZ2h0KSBvZiB0aGUg
Y3VycmVudCBncmVlbiBib3guIFdoZW4geW91IHJlbGVhc2UgdGhlIHdoZWVsLCB0aGUgcmVnaW9u
IHNob3VsZCBzY3JvbGwgYmFjayBzbzxici8+IgorICAgICAgICAgICAgICAgICAgICArICJ0aGF0
IHRoZSByZWdpb24gaXMgYSBzaW5nbGUgY29sb3IuPGJyLz48YnIvPiIKKyAgICAgICAgICAgICAg
ICAgICAgKyAiWW91IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gcmVwZWF0IHRoZXNlIHRlc3Qgc3Rl
cHMgZm9yIHRoZSB2ZXJ0aWNhbCByZWdpb24gYmVsb3cuPC9wPiI7CisgICAgICAgICAgICAgICAg
bWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9
Im9uTG9hZCgpOyIgY2xhc3M9Imhvcml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0i
aXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+Cisg
ICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8
ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0i
aXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBj
bGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNv
bG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5k
YXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1h
bmRhdG9yeS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1tYXJnaW4tZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmMwOWQ0ODY4ZTlkMjA0YzVkNDhlNjMwNDAwNjg2ZTQ0MDgwMTBmODAKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK1BBU1MgZGl2IHNjcm9sbGVkIHRvIG5leHQgd2lu
ZG93LgorUEFTUyBkaXYgaG9ub3JlZCBzbmFwIHBvaW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90
aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnkt
bWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1k
cmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZy
YW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODlhYmZkODU2ZGI0MjVi
NGY0NTJmYjMwZGY1M2Q2YWI5YWRhZmE2NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9y
eS1tYWluZnJhbWUtdmVydGljYWwtd2l0aC1tYXJnaW4uaHRtbApAQCAtMCwwICsxLDEyNiBAQAor
PCFET0NUWVBFIEhUTUw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAg
ICAgICAgICAgaHRtbCB7CisgICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeSBtYW5k
YXRvcnk7CisgICAgICAgICAgICAgICAgbWFyZ2luLXRvcDogNTBweDsKKyAgICAgICAgICAgICAg
ICAvKiBUaGVyZSdzIGEgZGlmZmVyZW50IHZhbHVlIGZvciB0aGUgYm90dG9tIG1hcmdpbiB0byBl
bnN1cmUgdGhhdAorICAgICAgICAgICAgICAgICAgIG1hcmdpbnMgd2l0aCBkaWZmZXJlbnQgc2l6
ZXMgYXJlIHByb3Blcmx5IHRlc3RlZC4gKi8KKyAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9t
OiAxMDBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNhbEdhbGxlcnkgewor
ICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDYw
MHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRkaW5n
OiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAg
ICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAg
ICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGln
bjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5k
LWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdy
ZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9Cisg
ICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAg
ICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVt
NSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAg
ICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4K
KyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOwor
CisgICAgICAgIHZhciBzY3JvbGxpbmdUYXJnZXQ7CisgICAgICAgIHZhciBzY3JvbGxQb3NpdGlv
bkJlZm9yZUdsaWRlOworICAgICAgICB2YXIgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwOworCisg
ICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsU25hcCgpCisgICAgICAgIHsKKyAgICAgICAg
ICAgIC8vIFRoZSBkaXYgc2hvdWxkIGhhdmUgc25hcHBlZCBiYWNrIHRvIHRoZSBwcmV2aW91cyBw
b3NpdGlvbgorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1RhcmdldC5zY3JvbGxUb3AgIT0gc2Ny
b2xsUG9zaXRpb25CZWZvcmVTbmFwKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYGRpdiBk
aWQgbm90IHNuYXAgYmFjayB0byBwcm9wZXIgbG9jYXRpb24uICgke3Njcm9sbGluZ1RhcmdldC5z
Y3JvbGxUb3B9IHZzLiAke3Njcm9sbFBvc2l0aW9uQmVmb3JlU25hcH0pYCk7CisgICAgICAgICAg
ICBlbHNlCisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IGhvbm9yZWQgc25hcCBwb2lu
dHMuIik7CisKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAg
ICAgZnVuY3Rpb24gc2Nyb2xsU25hcFRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzY3Jv
bGxQb3NpdGlvbkJlZm9yZVNuYXAgPSBzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9wOworCisgICAg
ICAgICAgICB2YXIgc3RhcnRQb3NYID0gc2Nyb2xsaW5nVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsK
KyAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBzY3JvbGxpbmdUYXJnZXQub2Zmc2V0VG9wICsg
MjA7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8g
TWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAgZXZl
bnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAn
YmVnYW4nLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdp
dGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9u
ZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVz
KGNoZWNrRm9yU2Nyb2xsU25hcCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVj
a0ZvclNjcm9sbEdsaWRlKCkKKyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIGRpdiBzaG91
bGQgaGF2ZSBzY3JvbGxlZCAoZ2xpZGVkKSB0byB0aGUgbmV4dCBzbmFwIHBvaW50LCB3aGljaCBz
aG91bGQgYmUgdGhlIGhlaWdodAorICAgICAgICAgICAgLy8gb2YgdGhlIGZpcnN0IGRpdiBwbHVz
IHRoZSByb290IGVsZW1lbnQncyB0b3AgbWFyZ2luICg1MCBwaXhlbHMpLgorICAgICAgICAgICAg
aWYgKHNjcm9sbGluZ1RhcmdldC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0ICsgNTAp
CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZCgiZGl2IHNjcm9sbGVkIHRvIG5leHQgd2luZG93
LiIpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYGRpdiBk
aWQgbm90IGhvbm9yIHNuYXAgcG9pbnRzLiAoJHtzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9wfSB2
cy4gJHt3aW5kb3cuaW5uZXJIZWlnaHR9KWApOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHNj
cm9sbFNuYXBUZXN0LCAwKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbEds
aWRlVGVzdCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uQmVmb3JlR2xp
ZGUgPSBzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgICAgICAgICB2YXIgc3RhcnRQ
b3NYID0gc2Nyb2xsaW5nVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICAgICAgICAgIHZhciBz
dGFydFBvc1kgPSBzY3JvbGxpbmdUYXJnZXQub2Zmc2V0VG9wICsgMjA7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBq
dXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2Vk
JywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAs
IDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9s
bEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1Q
aGFzZXMoMCwgLTQsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAn
ZW5kJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0
ZXMoY2hlY2tGb3JTY3JvbGxHbGlkZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBv
bkxvYWQoKQorICAgICAgICB7CisgICAgICAgICAgICBzY3JvbGxpbmdUYXJnZXQgPSBkb2N1bWVu
dC5zY3JvbGxpbmdFbGVtZW50OworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikg
eworICAgICAgICAgICAgICAgIGludGVybmFscy5zZXRQbGF0Zm9ybU1vbWVudHVtU2Nyb2xsaW5n
UHJlZGljdGlvbkVuYWJsZWQoZmFsc2UpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Ny
b2xsR2xpZGVUZXN0LCAwKTsKKyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAg
dmFyIG1lc3NhZ2VMb2NhdGlvbiA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtMCcpOwor
ICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2
Jyk7CisgICAgICAgICAgICAgICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VGhpcyB0ZXN0IGlz
IGJldHRlciBydW4gdW5kZXIgRHVtcFJlbmRlclRyZWUuIFRvIG1hbnVhbGx5IHRlc3QgaXQsIHBs
YWNlIHRoZSBtb3VzZSBwb2ludGVyPGJyLz4iCisgICAgICAgICAgICAgICAgICAgICsgImluc2lk
ZSB0aGUgcmVkIHJlZ2lvbiBhdCB0aGUgdG9wIG9mIHRoZSBwYWdlLCBhbmQgdGhlbiB1c2UgdGhl
IG1vdXNlIHdoZWVsIG9yIGEgdHdvLWZpbmdlciBzd2lwZSB0byBtYWtlIGE8YnIvPiIKKyAgICAg
ICAgICAgICAgICAgICAgKyAic21hbGwgc3dpcGUgZ2VzdHVyZSB3aXRoIHNvbWUgbW9tZW50dW0u
PGJyLz48YnIvPiIKKyAgICAgICAgICAgICAgICAgICAgKyAiVGhlIHJlZ2lvbiBzaG91bGQgc2Ny
b2xsIHRvIHNob3cgYSBncmVlbiByZWdpb24uPGJyLz48YnIvPiIKKyAgICAgICAgICAgICAgICAg
ICAgKyAiTmV4dCwgcGVyZm9ybSBhIHNtYWxsIHNjcm9sbCBnZXN0dXJlIHRoYXQgZG9lcyBub3Qg
aW52b2x2ZSBtb21lbnR1bS4gWW91IHNob3VsZCBiZWdpbiB0byBzZWUgb25lIG9mIHRoZSBjb2xv
cnM8YnIvPiIKKyAgICAgICAgICAgICAgICAgICAgKyAidG8gdGhlIGxlZnQgKG9yIHJpZ2h0KSBv
ZiB0aGUgY3VycmVudCBncmVlbiBib3guIFdoZW4geW91IHJlbGVhc2UgdGhlIHdoZWVsLCB0aGUg
cmVnaW9uIHNob3VsZCBzY3JvbGwgYmFjayBzbzxici8+IgorICAgICAgICAgICAgICAgICAgICAr
ICJ0aGF0IHRoZSByZWdpb24gaXMgYSBzaW5nbGUgY29sb3IuPGJyLz48YnIvPiIKKyAgICAgICAg
ICAgICAgICAgICAgKyAiWW91IHNob3VsZCBhbHNvIGJlIGFibGUgdG8gcmVwZWF0IHRoZXNlIHRl
c3Qgc3RlcHMgZm9yIHRoZSB2ZXJ0aWNhbCByZWdpb24gYmVsb3cuPC9wPiI7CisgICAgICAgICAg
ICAgICAgbWVzc2FnZUxvY2F0aW9uLmFwcGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAg
fQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBv
bmxvYWQ9Im9uTG9hZCgpOyIgY2xhc3M9InZlcnRpY2FsR2FsbGVyeSI+CisgICAgICAgIDxkaXYg
aWQ9Iml0ZW0wIiBjbGFzcz0iY29sb3JCb3giPjxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PjwvZGl2
PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAg
ICAgPGRpdiBpZD0iaXRlbTIiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYg
aWQ9Iml0ZW0zIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVt
NCIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTUiIGNsYXNz
PSJjb2xvckJveCI+PC9kaXY+CisgICAgPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>413676</attachid>
            <date>2020-11-10 00:57:36 -0800</date>
            <delta_ts>2020-11-10 04:21:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210476-20201110095734.patch</filename>
            <type>text/plain</type>
            <size>16537</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY5NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWEyZDMxZGI5OTAxZTcw
NjU4N2Y0YzRkNzA4NjQ3Njk5NzhjMGIzOC4uYWE2OWUzNmQ3MjM1NTUwOWIxOTMxNjEzMDc0YTU2
ZGZkOWVhZjJhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIwLTExLTA5ICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBTY3JvbGwtc25h
cCBvbiB0aGUgcm9vdCBhbGlnbnMgdG8gdGhlIGJvZHkgbWFyZ2luIGVkZ2UsIG5vdCB0aGUgdmll
d3BvcnQgZWRnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjEwNDc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS82MTc1NTEwMz4KKworICAgICAgICBS
ZXZpZXdlZCBieSBTaW1vbiBGcmFzZXIuCisKKyAgICAgICAgV2hlbiBwYXNzaW5nIHRoZSBmcmFt
ZSB2aWV3cG9ydCB0byB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhLCBiZSBzdXJl
IHRvIHB1dCBpdAorICAgICAgICBpbnRvIHRoZSBjb29yZGluYXRlIHN5c3RlbSBvZiB0aGUgcm9v
dCBlbGVtZW50IHBhZGRpbmcgYm94LiBUaGlzIG1lYW5zIG9mZnNldHRpbmcgaXQgYnkgdGhlCisg
ICAgICAgIG1hcmdpbnMgb2YgdGhlIHJvb3QgZWxlbWVudC4KKworICAgICAgICBUZXN0czogdGls
ZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1h
aW5mcmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2luLmh0bWwKKyAgICAgICAgICAgICAgIHRpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1tYXJnaW4uaHRtbAorCisgICAgICAgICogcGFnZS9GcmFtZVZp
ZXcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3Ojp1cGRhdGVTbmFwT2Zmc2V0cyk6
IE9mZnNldCB2aWV3cG9ydCBieSB0b3AgYW5kIGxlZnQgbWFyZ2lucyBvZiB0aGUKKyAgICAgICAg
cm9vdCBlbGVtZW50LgorCiAyMDIwLTExLTA5ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNv
bT4KIAogICAgICAgICBbR1RLXVtXUEVdIFNjcm9sbGluZyB3aXRoIG1vdXNlIHdoZWVsIGRvZXNu
J3Qgd29yayBvbiBpZnJhbWVzIHdpdGggYXN5bmMgc2Nyb2xsaW5nIGVuYWJsZWQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3LmNwcAppbmRleCBjYmMzYzc1N2E3NWIwOGFlYzJiN2E0MzkxNWRjZTllOGU2
ZGU1OTA5Li4wOGUyOTI1NmZmNjhjNTVkODA5ZTYwZjdhYjAwZDRmOWI5NTFiNTJiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXcuY3BwCkBAIC05NDEsNyArOTQxLDEzIEBAIHZvaWQgRnJhbWVWaWV3
Ojp1cGRhdGVTbmFwT2Zmc2V0cygpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKKyAgICAvLyB1
cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhIGNhbGN1bGF0ZXMgc2Nyb2xsIG9mZnNl
dHMgd2l0aCBhbGwgcmVjdGFuZ2xlcyBoYXZpbmcgdGhlaXIgb3JpZ2luIGF0IHRoZQorICAgIC8v
IHBhZGRpbmcgYm94IHJlY3RhbmdsZSBvZiB0aGUgc2Nyb2xsYWJsZSBlbGVtZW50LiBVbmxpa2Ug
Zm9yIG92ZXJmbG93OnNjcm9sbCwgdGhlIEZyYW1lVmlldyB2aWV3cG9ydCBpbmNsdWRlcworICAg
IC8vIHRoZSByb290IGVsZW1lbnQgbWFyZ2lucy4gVGhpcyBtZWFucyB0aGF0IHdlIG5lZWQgdG8g
b2Zmc2V0IHRoZSB2aWV3cG9ydCByZWN0YW5nbGUgdG8gbWFrZSBpdCByZWxhdGl2ZSB0bworICAg
IC8vIHRoZSBwYWRkaW5nIGJveCBvZiB0aGUgcm9vdCBlbGVtZW50LgogICAgIExheW91dFJlY3Qg
dmlld3BvcnQgPSBMYXlvdXRSZWN0KEludFBvaW50KCksIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUo
KSk7CisgICAgdmlld3BvcnQubW92ZSgtcm9vdFJlbmRlcmVyLT5tYXJnaW5MZWZ0KCksIC1yb290
UmVuZGVyZXItPm1hcmdpblRvcCgpKTsKKwogICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xs
YWJsZUFyZWEoKnRoaXMsICpyb290UmVuZGVyZXIsICpzdHlsZVRvVXNlLCB2aWV3cG9ydCk7CiB9
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5n
ZUxvZwppbmRleCA4OTU1NzhlYjA5MzdhYzgzYzljMzY0ODAxNzhmMDhjZTU0Y2I3ZjQ1Li42NjUw
NWM3MmNlMmQ2YWRkNzM3OTFmMDAxNTMxMTJkZjYzM2U2MzY2IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTgg
QEAKKzIwMjAtMTEtMDkgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2FsaWEuY29tPgor
CisgICAgICAgIFNjcm9sbC1zbmFwIG9uIHRoZSByb290IGFsaWducyB0byB0aGUgYm9keSBtYXJn
aW4gZWRnZSwgbm90IHRoZSB2aWV3cG9ydCBlZGdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzYx
NzU1MTAzPgorCisgICAgICAgIFJldmlld2VkIGJ5IFNpbW9uIEZyYXNlci4KKworICAgICAgICBB
ZGRlZCB0ZXN0cyBmb3IgbmV3IGJlaGF2aW9yLgorCisgICAgICAgICogdGlsZWQtZHJhd2luZy9z
Y3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jp
em9udGFsLXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogdGlsZWQt
ZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtbWFuZGF0b3J5LW1haW5m
cmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2luLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHRpbGVk
LWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWlu
ZnJhbWUtdmVydGljYWwtd2l0aC1tYXJnaW4tZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB0aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRv
cnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEx
LTA5ICBDaHJpcyBMb3JkICA8Y2xvcmRAaWdhbGlhLmNvbT4KIAogICAgICAgICBSRUdSRVNTSU9O
KHIyNjk1MDMpOiBbR1RLXVtXUEVdID4yMDAgdGVzdHMgYXJlIGZhaWxpbmcKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLW1hcmdpbi1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwtd2l0aC1tYXJnaW4tZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmMwOWQ0ODY4ZTlkMjA0YzVkNDhlNjMwNDAwNjg2ZTQ0MDgwMTBm
ODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGlu
Zy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLWhvcml6b250YWwt
d2l0aC1tYXJnaW4tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBkaXYgc2Nyb2xs
ZWQgdG8gbmV4dCB3aW5kb3cuCitQQVNTIGRpdiBob25vcmVkIHNuYXAgcG9pbnRzLgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLW1hcmdpbi5odG1sIGIvTGF5
b3V0VGVzdHMvdGlsZWQtZHJhd2luZy9zY3JvbGxpbmcvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAt
bWFuZGF0b3J5LW1haW5mcmFtZS1ob3Jpem9udGFsLXdpdGgtbWFyZ2luLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNDM4YzAyNWJmYzViZGVmMmZjZTg4YTllNGM5Y2Q2MTg1NGVjNWZmNAotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtaG9yaXpvbnRhbC13aXRoLW1hcmdpbi5odG1s
CkBAIC0wLDAgKzEsMTIwIEBACis8IURPQ1RZUEUgSFRNTD4KKzxodG1sPgorICAgIDxoZWFkPgor
ICAgICAgICA8c3R5bGU+CisgICAgICAgICAgICBodG1sIHsKKyAgICAgICAgICAgICAgICBzY3Jv
bGwtc25hcC10eXBlOiB4IG1hbmRhdG9yeTsKKyAgICAgICAgICAgICAgICBtYXJnaW4tbGVmdDog
NTBweDsKKyAgICAgICAgICAgICAgICAvKiBUaGVyZSdzIGEgZGlmZmVyZW50IHZhbHVlIGZvciB0
aGUgcmlnaHQgbWFyZ2luIHRvIGVuc3VyZSB0aGF0CisgICAgICAgICAgICAgICAgICAgbWFyZ2lu
cyB3aXRoIGRpZmZlcmVudCBzaXplcyBhcmUgcHJvcGVybHkgdGVzdGVkLiAqLworICAgICAgICAg
ICAgICAgIG1hcmdpbi1yaWdodDogMTAwcHg7CisgICAgICAgICAgICB9CisgICAgICAgICAgICAu
aG9yaXpvbnRhbEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdpZHRoOiA2MDB2dzsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAgIG1hcmdpbjogMDsKKyAg
ICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAgfQorICAgICAgICAgICAgLmNv
bG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZoOworICAgICAgICAgICAgICAg
IHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDogbGVmdDsKKyAgICAgICAgICAg
ICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgICAg
ICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAgICAgICAgICAgICNpdGVtMSB7
IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAgICAjaXRlbTIgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMgeyBiYWNrZ3JvdW5kLWNvbG9y
OiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3JvdW5kLWNvbG9yOiB5ZWxsb3c7
IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29sb3I6IGZ1Y2hzaWE7IH0KKyAg
ICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHZhciB0YXJnZXRTY3JvbGxlcjsKKyAgICAg
ICAgdmFyIHNjcm9sbFBvc2l0aW9uQmVmb3JlR2xpZGU7CisgICAgICAgIHZhciBzY3JvbGxQb3Np
dGlvbkJlZm9yZVNuYXA7CisKKyAgICAgICAgZnVuY3Rpb24gY2hlY2tGb3JTY3JvbGxTbmFwKCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIGRpdiBzaG91bGQgaGF2ZSBzbmFwcGVkIGJh
Y2sgdG8gdGhlIHByZXZpb3VzIHBvc2l0aW9uCisgICAgICAgICAgICBpZiAodGFyZ2V0U2Nyb2xs
ZXIuc2Nyb2xsTGVmdCAhPSBzY3JvbGxQb3NpdGlvbkJlZm9yZVNuYXApCisgICAgICAgICAgICAg
ICAgdGVzdEZhaWxlZCgiZGl2IGRpZCBub3Qgc25hcCBiYWNrIHRvIHByb3BlciBsb2NhdGlvbi4g
RXhwZWN0ZWQgIiArIHNjcm9sbFBvc2l0aW9uQmVmb3JlU25hcCArICIsIGJ1dCBnb3QgIiArIHRh
cmdldFNjcm9sbGVyLnNjcm9sbExlZnQpOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAg
ICAgIHRlc3RQYXNzZWQoImRpdiBob25vcmVkIHNuYXAgcG9pbnRzLiIpOworCisgICAgICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbFNu
YXBUZXN0KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFw
ID0gdGFyZ2V0U2Nyb2xsZXIuc2Nyb2xsTGVmdDsKKworICAgICAgICAgICAgdmFyIHN0YXJ0UG9z
WCA9IHRhcmdldFNjcm9sbGVyLm9mZnNldExlZnQgKyAyMDsKKyAgICAgICAgICAgIHZhciBzdGFy
dFBvc1kgPSB0YXJnZXRTY3JvbGxlci5vZmZzZXRUb3AgKyAyMDsKKyAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vbml0b3JXaGVlbEV2ZW50cygpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VNb3ZlVG8oc3RhcnRQb3NYLCBzdGFydFBvc1kpOyAvLyBNYWtlIHN1cmUgd2UgYXJlIGp1c3Qg
b3V0c2lkZSB0aGUgaUZyYW1lCisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5
V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdiZWdhbicsICdub25lJyk7CisgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFz
ZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAn
bm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFu
ZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVu
dFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGxTbmFwKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIGNoZWNrRm9yU2Nyb2xsR2xpZGUoKQorICAg
ICAgICB7CisgICAgICAgICAgICAvLyBUaGUgZGl2IHNob3VsZCBoYXZlIHNjcm9sbGVkIChnbGlk
ZWQpIHRvIHRoZSBuZXh0IHNuYXAgcG9pbnQsIHdoaWNoIHNob3VsZCBiZSB0aGUgd2lkdGgKKyAg
ICAgICAgICAgIC8vIG9mIHRoZSBmaXJzdCBkaXYgcGx1cyB0aGUgcm9vdCBlbGVtZW50J3MgbGVm
dCBtYXJnaW4gKDUwIHBpeGVscykuCisgICAgICAgICAgICBpZiAodGFyZ2V0U2Nyb2xsZXIuc2Ny
b2xsTGVmdCA9PSB3aW5kb3cuaW5uZXJXaWR0aCArIDUwKQorICAgICAgICAgICAgICAgIHRlc3RQ
YXNzZWQoImRpdiBzY3JvbGxlZCB0byBuZXh0IHdpbmRvdy4iKTsKKyAgICAgICAgICAgIGVsc2UK
KyAgICAgICAgICAgICAgICB0ZXN0RmFpbGVkKCJkaXYgZGlkIG5vdCBob25vciBzbmFwIHBvaW50
cy4gRXhwZWN0ZWQgIiArIHdpbmRvdy5pbm5lcldpZHRoICsgIiwgYnV0IGdvdCAiICsgdGFyZ2V0
U2Nyb2xsZXIuc2Nyb2xsTGVmdCk7CisKKyAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsU25h
cFRlc3QsIDApOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2Nyb2xsR2xpZGVUZXN0
KCkKKyAgICAgICAgeworICAgICAgICAgICAgc2Nyb2xsUG9zaXRpb25CZWZvcmVHbGlkZSA9IHRh
cmdldFNjcm9sbGVyLnNjcm9sbExlZnQ7CisKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1ggPSB0
YXJnZXRTY3JvbGxlci5vZmZzZXRMZWZ0ICsgMjA7CisgICAgICAgICAgICB2YXIgc3RhcnRQb3NZ
ID0gdGFyZ2V0U2Nyb2xsZXIub2Zmc2V0VG9wICsgMjA7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92
ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNp
ZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhX
aGVlbEFuZE1vbWVudHVtUGhhc2VzKC0xLCAwLCAnYmVnYW4nLCAnbm9uZScpOworICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKC0x
LCAwLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdjaGFuZ2VkJywgJ25vbmUn
KTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21l
bnR1bVBoYXNlcygtMSwgMCwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRl
ZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdo
ZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEsIDAsICdub25lJywgJ2JlZ2luJyk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoLTEs
IDAsICdub25lJywgJ2NvbnRpbnVlJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNj
cm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7Cisg
ICAgICAgICAgICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tG
b3JTY3JvbGxHbGlkZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoKQor
ICAgICAgICB7CisgICAgICAgICAgICB0YXJnZXRTY3JvbGxlciA9IGRvY3VtZW50LnNjcm9sbGlu
Z0VsZW1lbnQ7CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAg
ICAgICAgICAgaW50ZXJuYWxzLnNldFBsYXRmb3JtTW9tZW50dW1TY3JvbGxpbmdQcmVkaWN0aW9u
RW5hYmxlZChmYWxzZSk7CisgICAgICAgICAgICAgICAgc2V0VGltZW91dChzY3JvbGxHbGlkZVRl
c3QsIDApOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2Fn
ZUxvY2F0aW9uID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2l0ZW0wJyk7CisgICAgICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTsKKyAgICAg
ICAgICAgICAgICBtZXNzYWdlLmlubmVySFRNTCA9ICI8cD5UbyBydW4gdGhpcyB0ZXN0IG1hbnVh
bGx5LCBzY3JvbGwgdGhlIHBhZ2UgaG9yaXpvbnRhbGx5LiBUaGUgcGFnZSBzaG91bGQgIgorICAg
ICAgICAgICAgICAgICAgICArICJhbHRlcm5hdGUgYmV0d2VlbiB1bmlmb3JtIGNvbG9ycyB3aGlj
aCBmaWxsIHRoZSB2aWV3LjxwPiI7CisgICAgICAgICAgICAgICAgbWVzc2FnZUxvY2F0aW9uLmFw
cGVuZENoaWxkKG1lc3NhZ2UpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwv
c2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyIgY2xhc3M9
Imhvcml6b250YWxHYWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xv
ckJveCI+PGRpdiBpZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0
ZW0xIiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xh
c3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xv
ckJveCI+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAg
ICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5n
L3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZl
cnRpY2FsLXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdp
bmcvc2Nyb2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUt
dmVydGljYWwtd2l0aC1tYXJnaW4tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmMwOWQ0ODY4ZTlk
MjA0YzVkNDhlNjMwNDAwNjg2ZTQ0MDgwMTBmODAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5k
YXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgtbWFyZ2luLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKK1BBU1MgZGl2IHNjcm9sbGVkIHRvIG5leHQgd2luZG93LgorUEFTUyBkaXYgaG9u
b3JlZCBzbmFwIHBvaW50cy4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVT
VCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9s
bGluZy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2Fs
LXdpdGgtbWFyZ2luLmh0bWwgYi9MYXlvdXRUZXN0cy90aWxlZC1kcmF3aW5nL3Njcm9sbGluZy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1tYW5kYXRvcnktbWFpbmZyYW1lLXZlcnRpY2FsLXdpdGgt
bWFyZ2luLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODI4ZDgwYjIzMDk4NTI1OTlkYWM4YzZmMzY4NDgyYWUz
NTYwMDE0OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3RpbGVkLWRyYXdpbmcvc2Ny
b2xsaW5nL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLW1hbmRhdG9yeS1tYWluZnJhbWUtdmVydGlj
YWwtd2l0aC1tYXJnaW4uaHRtbApAQCAtMCwwICsxLDEyMCBAQAorPCFET0NUWVBFIEhUTUw+Cis8
aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHN0eWxlPgorICAgICAgICAgICAgaHRtbCB7Cisg
ICAgICAgICAgICAgICAgc2Nyb2xsLXNuYXAtdHlwZTogeSBtYW5kYXRvcnk7CisgICAgICAgICAg
ICAgICAgbWFyZ2luLXRvcDogNTBweDsKKyAgICAgICAgICAgICAgICAvKiBUaGVyZSdzIGEgZGlm
ZmVyZW50IHZhbHVlIGZvciB0aGUgYm90dG9tIG1hcmdpbiB0byBlbnN1cmUgdGhhdAorICAgICAg
ICAgICAgICAgICAgIG1hcmdpbnMgd2l0aCBkaWZmZXJlbnQgc2l6ZXMgYXJlIHByb3Blcmx5IHRl
c3RlZC4gKi8KKyAgICAgICAgICAgICAgICBtYXJnaW4tYm90dG9tOiAxMDBweDsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgICAgIC52ZXJ0aWNhbEdhbGxlcnkgeworICAgICAgICAgICAgICAgIHdp
ZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDYwMHZoOworICAgICAgICAgICAg
ICAgIG1hcmdpbjogMDsKKyAgICAgICAgICAgICAgICBwYWRkaW5nOiAwOworICAgICAgICAgICAg
fQorICAgICAgICAgICAgLmNvbG9yQm94IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMHZo
OworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDB2dzsKKyAgICAgICAgICAgICAgICBmbG9hdDog
bGVmdDsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAg
ICAgICB9CisgICAgICAgICAgICAjaXRlbTAgeyBiYWNrZ3JvdW5kLWNvbG9yOiByZWQ7IH0KKyAg
ICAgICAgICAgICNpdGVtMSB7IGJhY2tncm91bmQtY29sb3I6IGdyZWVuOyB9CisgICAgICAgICAg
ICAjaXRlbTIgeyBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOyB9CisgICAgICAgICAgICAjaXRlbTMg
eyBiYWNrZ3JvdW5kLWNvbG9yOiBhcXVhOyB9CisgICAgICAgICAgICAjaXRlbTQgeyBiYWNrZ3Jv
dW5kLWNvbG9yOiB5ZWxsb3c7IH0KKyAgICAgICAgICAgICNpdGVtNSB7IGJhY2tncm91bmQtY29s
b3I6IGZ1Y2hzaWE7IH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4u
Ly4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4K
KyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIHZhciBzY3Jv
bGxpbmdUYXJnZXQ7CisgICAgICAgIHZhciBzY3JvbGxQb3NpdGlvbkJlZm9yZUdsaWRlOworICAg
ICAgICB2YXIgc2Nyb2xsUG9zaXRpb25CZWZvcmVTbmFwOworCisgICAgICAgIGZ1bmN0aW9uIGNo
ZWNrRm9yU2Nyb2xsU25hcCgpCisgICAgICAgIHsKKyAgICAgICAgICAgIC8vIFRoZSBkaXYgc2hv
dWxkIGhhdmUgc25hcHBlZCBiYWNrIHRvIHRoZSBwcmV2aW91cyBwb3NpdGlvbgorICAgICAgICAg
ICAgaWYgKHNjcm9sbGluZ1RhcmdldC5zY3JvbGxUb3AgIT0gc2Nyb2xsUG9zaXRpb25CZWZvcmVT
bmFwKQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYGRpdiBkaWQgbm90IHNuYXAgYmFjayB0
byBwcm9wZXIgbG9jYXRpb24uICgke3Njcm9sbGluZ1RhcmdldC5zY3JvbGxUb3B9IHZzLiAke3Nj
cm9sbFBvc2l0aW9uQmVmb3JlU25hcH0pYCk7CisgICAgICAgICAgICBlbHNlCisgICAgICAgICAg
ICAgICAgdGVzdFBhc3NlZCgiZGl2IGhvbm9yZWQgc25hcCBwb2ludHMuIik7CisKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgZnVuY3Rpb24gc2Nyb2xs
U25hcFRlc3QoKQorICAgICAgICB7CisgICAgICAgICAgICBzY3JvbGxQb3NpdGlvbkJlZm9yZVNu
YXAgPSBzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9wOworCisgICAgICAgICAgICB2YXIgc3RhcnRQ
b3NYID0gc2Nyb2xsaW5nVGFyZ2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICAgICAgICAgIHZhciBz
dGFydFBvc1kgPSBzY3JvbGxpbmdUYXJnZXQub2Zmc2V0VG9wICsgMjA7CisgICAgICAgICAgICBl
dmVudFNlbmRlci5tb25pdG9yV2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVy
Lm1vdXNlTW92ZVRvKHN0YXJ0UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBq
dXN0IG91dHNpZGUgdGhlIGlGcmFtZQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3Jv
bGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOwor
ICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVt
UGhhc2VzKDAsIC0xLCAnY2hhbmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRl
ci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2Vk
JywgJ25vbmUnKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcygwLCAwLCAnZW5kZWQnLCAnbm9uZScpOworICAgICAgICAgICAg
ZXZlbnRTZW5kZXIuY2FsbEFmdGVyU2Nyb2xsaW5nQ29tcGxldGVzKGNoZWNrRm9yU2Nyb2xsU25h
cCk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBjaGVja0ZvclNjcm9sbEdsaWRlKCkK
KyAgICAgICAgeworICAgICAgICAgICAgLy8gVGhlIGRpdiBzaG91bGQgaGF2ZSBzY3JvbGxlZCAo
Z2xpZGVkKSB0byB0aGUgbmV4dCBzbmFwIHBvaW50LCB3aGljaCBzaG91bGQgYmUgdGhlIGhlaWdo
dAorICAgICAgICAgICAgLy8gb2YgdGhlIGZpcnN0IGRpdiBwbHVzIHRoZSByb290IGVsZW1lbnQn
cyB0b3AgbWFyZ2luICg1MCBwaXhlbHMpLgorICAgICAgICAgICAgaWYgKHNjcm9sbGluZ1Rhcmdl
dC5zY3JvbGxUb3AgPT0gd2luZG93LmlubmVySGVpZ2h0ICsgNTApCisgICAgICAgICAgICAgICAg
dGVzdFBhc3NlZCgiZGl2IHNjcm9sbGVkIHRvIG5leHQgd2luZG93LiIpOworICAgICAgICAgICAg
ZWxzZQorICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQoYGRpdiBkaWQgbm90IGhvbm9yIHNuYXAg
cG9pbnRzLiAoJHtzY3JvbGxpbmdUYXJnZXQuc2Nyb2xsVG9wfSB2cy4gJHt3aW5kb3cuaW5uZXJI
ZWlnaHR9KWApOworCisgICAgICAgICAgICBzZXRUaW1lb3V0KHNjcm9sbFNuYXBUZXN0LCAwKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZ1bmN0aW9uIHNjcm9sbEdsaWRlVGVzdCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIHNjcm9sbFBvc2l0aW9uQmVmb3JlR2xpZGUgPSBzY3JvbGxpbmdUYXJn
ZXQuc2Nyb2xsVG9wOworCisgICAgICAgICAgICB2YXIgc3RhcnRQb3NYID0gc2Nyb2xsaW5nVGFy
Z2V0Lm9mZnNldExlZnQgKyAyMDsKKyAgICAgICAgICAgIHZhciBzdGFydFBvc1kgPSBzY3JvbGxp
bmdUYXJnZXQub2Zmc2V0VG9wICsgMjA7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb25pdG9y
V2hlZWxFdmVudHMoKTsKKyAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKHN0YXJ0
UG9zWCwgc3RhcnRQb3NZKTsgLy8gTWFrZSBzdXJlIHdlIGFyZSBqdXN0IG91dHNpZGUgdGhlIGlG
cmFtZQorICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1v
bWVudHVtUGhhc2VzKDAsIC0xLCAnYmVnYW4nLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIC0xLCAnY2hh
bmdlZCcsICdub25lJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTEsICdjaGFuZ2VkJywgJ25vbmUnKTsKKyAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNl
cygwLCAtMSwgJ2NoYW5nZWQnLCAnbm9uZScpOworICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91
c2VTY3JvbGxCeVdpdGhXaGVlbEFuZE1vbWVudHVtUGhhc2VzKDAsIDAsICdlbmRlZCcsICdub25l
Jyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9t
ZW50dW1QaGFzZXMoMCwgLTEsICdub25lJywgJ2JlZ2luJyk7CisgICAgICAgICAgICBldmVudFNl
bmRlci5tb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgLTQsICdub25l
JywgJ2NvbnRpbnVlJyk7CisgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoMCwgMCwgJ25vbmUnLCAnZW5kJyk7CisgICAgICAgICAg
ICBldmVudFNlbmRlci5jYWxsQWZ0ZXJTY3JvbGxpbmdDb21wbGV0ZXMoY2hlY2tGb3JTY3JvbGxH
bGlkZSk7CisgICAgICAgIH0KKworICAgICAgICBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7
CisgICAgICAgICAgICBzY3JvbGxpbmdUYXJnZXQgPSBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50
OworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlcikgeworICAgICAgICAgICAgICAg
IGludGVybmFscy5zZXRQbGF0Zm9ybU1vbWVudHVtU2Nyb2xsaW5nUHJlZGljdGlvbkVuYWJsZWQo
ZmFsc2UpOworICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoc2Nyb2xsR2xpZGVUZXN0LCAwKTsK
KyAgICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2VMb2NhdGlv
biA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpdGVtMCcpOworICAgICAgICAgICAgICAgIHZh
ciBtZXNzYWdlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7CisgICAgICAgICAgICAg
ICAgbWVzc2FnZS5pbm5lckhUTUwgPSAiPHA+VG8gcnVuIHRoaXMgdGVzdCBtYW51YWxseSwgc2Ny
b2xsIHRoZSBwYWdlIHZlcnRpY2FsbHkuIFRoZSBwYWdlIHNob3VsZCAiCisgICAgICAgICAgICAg
ICAgICAgICsgImFsdGVybmF0ZSBiZXR3ZWVuIHVuaWZvcm0gY29sb3JzIHdoaWNoIGZpbGwgdGhl
IHZpZXcuPHA+IjsKKyAgICAgICAgICAgICAgICBtZXNzYWdlTG9jYXRpb24uYXBwZW5kQ2hpbGQo
bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+Cisg
ICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7IiBjbGFzcz0idmVydGljYWxH
YWxsZXJ5Ij4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTAiIGNsYXNzPSJjb2xvckJveCI+PGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+PC9kaXY+CisgICAgICAgIDxkaXYgaWQ9Iml0ZW0xIiBjbGFzcz0i
Y29sb3JCb3giPjwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJpdGVtMiIgY2xhc3M9ImNvbG9yQm94
Ij48L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0iaXRlbTMiIGNsYXNzPSJjb2xvckJveCI+PC9kaXY+
CisgICAgICAgIDxkaXYgaWQ9Iml0ZW00IiBjbGFzcz0iY29sb3JCb3giPjwvZGl2PgorICAgICAg
ICA8ZGl2IGlkPSJpdGVtNSIgY2xhc3M9ImNvbG9yQm94Ij48L2Rpdj4KKyAgICA8L2JvZHk+Cis8
L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>