<?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>146696</bug_id>
          
          <creation_ts>2015-07-07 15:47:54 -0700</creation_ts>
          <short_desc>Scroll snapping doesn&apos;t kick in when dragging scrollbars</short_desc>
          <delta_ts>2021-03-01 13:33:14 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>222111</dependson>
          <blocked>218115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>clopez</cc>
    
    <cc>mrobinson</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1107586</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2015-07-07 15:47:54 -0700</bug_when>
    <thetext>Scroll snapping doesn&apos;t trigger when scrolling a scroll snap container by dragging the scrollbar.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1728515</commentid>
    <comment_count>1</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-12 03:00:46 -0800</bug_when>
    <thetext>*** Bug 203968 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732114</commentid>
    <comment_count>2</comment_count>
      <attachid>421186</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-22 06:51:19 -0800</bug_when>
    <thetext>Created attachment 421186
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1732481</commentid>
    <comment_count>3</comment_count>
      <attachid>421297</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-02-23 03:29:40 -0800</bug_when>
    <thetext>Created attachment 421297
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1733775</commentid>
    <comment_count>4</comment_count>
      <attachid>421297</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-02-26 08:38:05 -0800</bug_when>
    <thetext>Comment on attachment 421297
Patch

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

&gt; Source/WebCore/platform/Scrollbar.cpp:374
&gt; +    if (previouslyPressedPart == ThumbPart)
&gt; +        m_scrollableArea.doPostThumbDragSnapping(m_orientation);

It&apos;s also possible to make scrollbars scroll by clicking in the track area. Doesn&apos;t that need to snap too? This feels like a too-specific place for this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734343</commentid>
    <comment_count>5</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-01 00:55:59 -0800</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 421297 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=421297&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/Scrollbar.cpp:374
&gt; &gt; +    if (previouslyPressedPart == ThumbPart)
&gt; &gt; +        m_scrollableArea.doPostThumbDragSnapping(m_orientation);
&gt; 
&gt; It&apos;s also possible to make scrollbars scroll by clicking in the track area.
&gt; Doesn&apos;t that need to snap too? This feels like a too-specific place for this
&gt; code.

It looks like snapping is happening properly when clicking on the gutter. There are two things that can happen when the scrollbar gutter is clicked:

 1. The theme specifies that the event should cause the thumb to center on the clicked location. In this case, there is a call to setPressedPart(ThumbPart). During the mouseUp event, this will result in snapping due to the new code this patch adds, since it triggers when the pressed part is the thumb.

 2. If the theme does not specify thumb centering, this works like a paging operation. In this case Scrollbar::autoscrollPressedPart is called. This method does paging via ScrollableArea::scroll(...), which already properly handles scroll snapping.

I&apos;ve done two things in the new version of the patch:

1. I have renamed ScrollableArea::doPostDragSnapping to ScrollableArea::doPostThumbMoveSnapping since it doesn&apos;t just trigger during dragging.

2. I have added a test to verify that snapping happens during a typical gutter click.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734348</commentid>
    <comment_count>6</comment_count>
      <attachid>421798</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-01 01:18:41 -0800</bug_when>
    <thetext>Created attachment 421798
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734376</commentid>
    <comment_count>7</comment_count>
      <attachid>421809</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-03-01 04:21:12 -0800</bug_when>
    <thetext>Created attachment 421809
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734582</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-03-01 13:32:26 -0800</bug_when>
    <thetext>Committed r273690: &lt;https://commits.webkit.org/r273690&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 421809.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734583</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-03-01 13:33:14 -0800</bug_when>
    <thetext>&lt;rdar://problem/74888135&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421186</attachid>
            <date>2021-02-22 06:51:19 -0800</date>
            <delta_ts>2021-02-23 03:29:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146696-20210222155117.patch</filename>
            <type>text/plain</type>
            <size>15621</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMTM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNWQ3ZjllMjI0NzZiZDBh
Zjk0OGQ3OWMxYjczZGFiYWFiMDA0YzY4ZS4uMTdjN2ZjZGFmNjJjYTZiYzg2NDUyMzE0OTE0N2Fj
YWVjYjAzZTBjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTAyLTIyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBTY3JvbGwgc25h
cHBpbmcgZG9lc24ndCBraWNrIGluIHdoZW4gZHJhZ2dpbmcgc2Nyb2xsYmFycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Njk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBz
dXBwb3J0IGZvciBzY3JvbGwgc25hcCB3aGVuIHRoZSBzY3JvbGxiYXIgdGh1bWIgaXMKKyAgICAg
ICAgcmVsZWFzZWQgZnJvbSBhIGRyYWcgb3BlcmF0aW9uLiBUaGlzIGFuaW1hdGlvbiBpcyBjdXJy
ZW50bHkgZG9uZSB3aXRoCisgICAgICAgIHRoZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvciBm
b3IgYWxsIHBsYXRmb3Jtcywgc2luY2UgdGhhdCBpcyBhbHNvCisgICAgICAgIHdoYXQgaXMgdXNl
ZCBmb3Igc21vb3RoIHNjcm9sbGluZy4KKworICAgICAgICBUaGlzIGNoYW5nZSBhZGp1c3RzIHRo
ZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvcidzIHNtb290aG5lc3MgZmFjdG9yLAorICAgICAg
ICBiZWNhdXNlIGl0IGlzIHRvbyBzbG93IGZvciBzaG9ydCBzY3JvbGwgc25hcHMuIEkgaGF2ZSB2
ZXJpZmllZCB0aGF0IHRoZQorICAgICAgICBuZXcgc21vb3RobmVzcyBmYWN0b3IgaXMgYWxzbyBh
IGdvb2Qgc2VsZWN0aW9uIGZvciBzbW9vdGggc2Nyb2xsaW5nCisgICAgICAgIG9wZXJhdGlvbnMg
KHN0aWxsIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlKS4gQSBmdXJ0aGVyIGNoYW5nZSBzaG91bGQg
dXNlCisgICAgICAgICJuYXRpdmUiIGFuaW1hdGlvbnMgd2hlbiBwb3NzaWJsZSBmb3IgYm90aCBz
bW9vdGggc2Nyb2xsaW5nIGFuZCBzY3JvbGwKKyAgICAgICAgc25hcCBhZnRlciB0aHVtYiBkcmFn
cy4gVGhpcyBpcyB0cmFja2VkIGJ5IHRoZSBmb2xsb3dpbmcgYnVnOgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU3CisKKyAgICAgICAgVGVzdDog
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNjcm9sbGJhci10aHVtYi5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOiBNb2RpZnkgc21v
b3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsIHRvCisgICAgICAgIGEgdmFsdWUgdGhhdCBp
cyBnb29kIGZvciBib3RoIHNjcm9sbCBzbmFwcGluZyBhbmQgc21vb3RoIHNjcm9sbGluZy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6IFRoZSB0aWNrIG1ldGhvZCBmb3Ig
dGhlIG5vbi1uYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbgorICAgICAgICBzaG91bGQgY29udGludWFs
bHkgdXBkYXRlIHRoZSBjdXJyZW50IGFjdGl2ZSBzbmFwIHBvaW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQp
OiBTcGxpdCB0aGlzIGludG8KKyAgICAgICAgdHdvIG1ldGhvZHMuIE9uZSB0aGF0IGhhbmRsZXMg
YSBzaW5nbGUgYXhpcyBhbmQgb25lIHRoYXQgaGFuZGxlcyBib3RoLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6IFVwZGF0ZSBtZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpkb1Bvc3RUaHVtYkRyYWdTbmFwcGluZyk6IEFkZGVkIHRoaXMgbWV0aG9kIHdo
aWNoIGRvZXMKKyAgICAgICAgYXhpYWwgc25hcHBpbmcgYWZ0ZXIgYSBzY3JvbGxiYXIgdGh1bSBk
cmFnLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6bW91c2VV
cCk6IFVzZSB0aGUgbmV3IGRvUG9zdFRodW1iRHJhZ1NuYXBwaW5nIG1ldGhvZC4KKwogMjAyMS0w
Mi0xOSAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
Q2xlYW4gdXAgU2Nyb2xsYWJsZUFyZWEgYW5kIFNjcm9sbEFuaW1hdG9yIEFQSSBhbmQgY29udmVy
dCBsZXNzIGJldHdlZW4gb2Zmc2V0cyBhbmQgcG9zaXRpb25zCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAppbmRleCAyN2UwODM0MzMwODEz
ZDk4YTZlZDVhYjZmNzNjOGIwZDkxOTY0MTAyLi5jZWY4Njg4OTViZGUzZTgyODIzZjUwZTFlMTNj
N2MwNDk3NjUwYmM1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxB
bmltYXRpb25TbW9vdGguY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFu
aW1hdGlvblNtb290aC5jcHAKQEAgLTQwLDcgKzQwLDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
c3RhdGljIGNvbnN0IGRvdWJsZSBmcmFtZVJhdGUgPSA2MDsKIHN0YXRpYyBjb25zdCBTZWNvbmRz
IHRpY2tUaW1lID0gMV9zIC8gZnJhbWVSYXRlOwogc3RhdGljIGNvbnN0IFNlY29uZHMgbWluaW11
bVRpbWVySW50ZXJ2YWwgeyAxX21zIH07Ci1zdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZhY3Rv
ckZvclByb2dyYW1tYXRpY1Njcm9sbCA9IDU7CitzdGF0aWMgY29uc3QgZG91YmxlIHNtb290aEZh
Y3RvckZvclByb2dyYW1tYXRpY1Njcm9sbCA9IDE7CiAKIFNjcm9sbEFuaW1hdGlvblNtb290aDo6
UGVyQXhpc0RhdGE6OlBlckF4aXNEYXRhKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9u
LCBjb25zdCBGbG9hdFBvaW50JiBwb3NpdGlvbiwgU2Nyb2xsRXh0ZW50c0NhbGxiYWNrJiBleHRl
bnRzQ2FsbGJhY2spCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxBbmltYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5j
cHAKaW5kZXggY2Y2OWEyZjZhMDllYzA1NThmMzcwMjk1ZWY5ZjFlN2UyNTJkNTA1Mi4uYWY0ZmQ0
YWI5MTg5NmMxYzMxNWJlMjg2NjRmNjhmOGQ4Nzk2N2ExMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcApAQCAtNjYsNiArNjYsNyBAQCBTY3JvbGxBbmltYXRv
cjo6U2Nyb2xsQW5pbWF0b3IoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhKQogICAgICAg
ICAgICAgRmxvYXRTaXplIGRlbHRhID0gcG9zaXRpb24gLSBtX2N1cnJlbnRQb3NpdGlvbjsKICAg
ICAgICAgICAgIG1fY3VycmVudFBvc2l0aW9uID0gV1RGTW92ZShwb3NpdGlvbik7CiAgICAgICAg
ICAgICBub3RpZnlQb3NpdGlvbkNoYW5nZWQoZGVsdGEpOworICAgICAgICAgICAgdXBkYXRlQWN0
aXZlU2Nyb2xsU25hcEluZGV4Rm9yT2Zmc2V0KCk7CiAgICAgICAgIH0sCiAgICAgICAgIFt0aGlz
XSB7CiAgICAgICAgICAgICBtX3Njcm9sbGFibGVBcmVhLnNldFNjcm9sbEJlaGF2aW9yU3RhdHVz
KFNjcm9sbEJlaGF2aW9yU3RhdHVzOjpOb3RJbkFuaW1hdGlvbik7CkBAIC0zNjAsMjIgKzM2MSwz
NCBAQCBGbG9hdFBvaW50IFNjcm9sbEFuaW1hdG9yOjphZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFw
cGluZ0lmTmVlZGVkKGNvbnN0IEZsb2F0UG9pbgogICAgIGlmICghbV9zY3JvbGxDb250cm9sbGVy
LnVzZXNTY3JvbGxTbmFwKCkpCiAgICAgICAgIHJldHVybiBvZmZzZXQ7CiAKLSAgICBPcHRpb25h
bDxmbG9hdD4gb3JpZ2luYWxYT2Zmc2V0LCBvcmlnaW5hbFlPZmZzZXQ7Ci0gICAgRmxvYXRTaXpl
IHZlbG9jaXR5OworICAgIEZsb2F0UG9pbnQgbmV3T2Zmc2V0ID0gb2Zmc2V0OworICAgIG5ld09m
ZnNldC5zZXRYKGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZl
bnRBeGlzOjpIb3Jpem9udGFsLCBuZXdPZmZzZXQueCgpLCBtZXRob2QpKTsKKyAgICBuZXdPZmZz
ZXQuc2V0WShhZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50
QXhpczo6VmVydGljYWwsIG5ld09mZnNldC55KCksIG1ldGhvZCkpOworICAgIHJldHVybiBuZXdP
ZmZzZXQ7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShtZXRob2QpOworICAgIHJldHVybiBvZmZz
ZXQ7CisjZW5kaWYKK30KKworZmxvYXQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNjcm9sbE9mZnNl
dEZvclNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzIGF4aXMsIGZsb2F0IG5ld09mZnNl
dCwgU2Nyb2xsU25hcFBvaW50U2VsZWN0aW9uTWV0aG9kIG1ldGhvZCkKK3sKKyNpZiBFTkFCTEUo
Q1NTX1NDUk9MTF9TTkFQKQorICAgIGlmICghbV9zY3JvbGxDb250cm9sbGVyLnVzZXNTY3JvbGxT
bmFwKCkpCisgICAgICAgIHJldHVybiBuZXdPZmZzZXQ7CisKKyAgICBPcHRpb25hbDxmbG9hdD4g
b3JpZ2luYWxPZmZzZXQ7CisgICAgZmxvYXQgdmVsb2NpdHkgPSAwLjsKICAgICBpZiAobWV0aG9k
ID09IFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZDo6RGlyZWN0aW9uYWwpIHsKLSAgICAg
ICAgRmxvYXRTaXplIHNjcm9sbE9yaWdpbiA9IHRvRmxvYXRTaXplKG1fc2Nyb2xsYWJsZUFyZWEu
c2Nyb2xsT3JpZ2luKCkpOwotICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBTY3JvbGxhYmxl
QXJlYTo6c2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHRoaXMtPmN1cnJlbnRQb3NpdGlvbigpLCBz
Y3JvbGxPcmlnaW4pOwotICAgICAgICBvcmlnaW5hbFhPZmZzZXQgPSBjdXJyZW50T2Zmc2V0Lngo
KTsKLSAgICAgICAgb3JpZ2luYWxZT2Zmc2V0ID0gY3VycmVudE9mZnNldC55KCk7Ci0gICAgICAg
IHZlbG9jaXR5ID0geyBvZmZzZXQueCgpIC0gY3VycmVudE9mZnNldC54KCksIG9mZnNldC55KCkg
LSBjdXJyZW50T2Zmc2V0LnkoKSB9OworICAgICAgICBhdXRvIGN1cnJlbnRPZmZzZXQgPSBtX3Nj
cm9sbGFibGVBcmVhLnNjcm9sbE9mZnNldCgpOworICAgICAgICBvcmlnaW5hbE9mZnNldCA9IGF4
aXMgPT0gU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsID8gY3VycmVudE9mZnNldC54KCkgOiBj
dXJyZW50T2Zmc2V0LnkoKTsKKyAgICAgICAgdmVsb2NpdHkgPSBuZXdPZmZzZXQgLSBjdXJyZW50
T2Zmc2V0LngoKTsKICAgICB9CiAKLSAgICBGbG9hdFBvaW50IG5ld09mZnNldCA9IG9mZnNldDsK
LSAgICBuZXdPZmZzZXQuc2V0WChtX3Njcm9sbENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGlu
YXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsLCBuZXdPZmZzZXQueCgpLCB2ZWxvY2l0
eS53aWR0aCgpLCBvcmlnaW5hbFhPZmZzZXQpKTsKLSAgICBuZXdPZmZzZXQuc2V0WShtX3Njcm9s
bENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0
aWNhbCwgbmV3T2Zmc2V0LnkoKSwgdmVsb2NpdHkuaGVpZ2h0KCksIG9yaWdpbmFsWU9mZnNldCkp
OwotICAgIHJldHVybiBuZXdPZmZzZXQ7CisgICAgcmV0dXJuIG1fc2Nyb2xsQ29udHJvbGxlci5h
ZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihheGlzLCBuZXdPZmZzZXQsIHZlbG9jaXR5LCBvcmlnaW5h
bE9mZnNldCk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShtZXRob2QpOworICAgIFVOVVNFRF9Q
QVJBTShheGlzKTsKICAgICByZXR1cm4gb2Zmc2V0OwogI2VuZGlmCiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaAppbmRleCBlNDllN2ZmMzYxODNlOGMyYWU3NjNiMTJh
NTkwNDgyZDI2NzJiYTIxLi4wODZhMGUzOTM1YWIzMWM3N2Y2NDBjMWI1YTdhNzExNjE0ZjljNWY2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTE0Miw2ICsx
NDIsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRy
PFdoZWVsRXZlbnRUZXN0TW9uaXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0
TW9uaXRvciA9IHRlc3RNb25pdG9yOyB9CiAKICAgICBGbG9hdFBvaW50IGFkanVzdFNjcm9sbE9m
ZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxT
bmFwUG9pbnRTZWxlY3Rpb25NZXRob2QpOworICAgIGZsb2F0IGFkanVzdFNjcm9sbE9mZnNldEZv
clNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBuZXdPZmZzZXQsIFNjcm9s
bFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZCk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KSB8fCBFTkFCTEUoUlVCQkVSX0JBTkRJTkcpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENv
bnRyb2xsZXJUaW1lcj4gY3JlYXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA2MWY3ZWE1MjA1
ZjA5MjdhNmM3ODk0ZTIyNjQ2OGE5MGQ3Y2M2ZmJmLi5kZGYzYWUzNzIyNTU5YjlkMDFlMzk2YmU0
ZmI5YWM4YTk3ZjRiMTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3Jv
bGxhYmxlQXJlYS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFy
ZWEuY3BwCkBAIC01NTcsMTAgKzU1NywzMSBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVT
Y3JvbGxTbmFwU3RhdGUoKQogICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlv
bihjb3JyZWN0ZWRQb3NpdGlvbik7CiAgICAgfQogfQorCit2b2lkIFNjcm9sbGFibGVBcmVhOjpk
b1Bvc3RUaHVtYkRyYWdTbmFwcGluZyhTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikK
K3sKKyAgICBpZiAoIXVzZXNTY3JvbGxTbmFwKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1
dG8gY3VycmVudE9mZnNldCA9IHNjcm9sbE9mZnNldCgpOworICAgIGF1dG8gbmV3T2Zmc2V0ID0g
Y3VycmVudE9mZnNldDsKKyAgICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJh
cikKKyAgICAgICAgbmV3T2Zmc2V0LnNldFgobV9zY3JvbGxBbmltYXRvci0+YWRqdXN0U2Nyb2xs
T2Zmc2V0Rm9yU25hcHBpbmdJZk5lZWRlZChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGN1
cnJlbnRPZmZzZXQueCgpLCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2Q6OkNsb3Nlc3Qp
KTsKKyAgICBlbHNlCisgICAgICAgIG5ld09mZnNldC5zZXRZKG1fc2Nyb2xsQW5pbWF0b3ItPmFk
anVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0
aWNhbCwgY3VycmVudE9mZnNldC55KCksIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZDo6
Q2xvc2VzdCkpOworICAgIGlmIChuZXdPZmZzZXQgPT0gY3VycmVudE9mZnNldCkKKyAgICAgICAg
cmV0dXJuOworCisgICAgc2Nyb2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldFdpdGhBbmltYXRp
b24obmV3T2Zmc2V0KTsKK30KICNlbHNlCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3Jv
bGxTbmFwU3RhdGUoKQogewogfQorCit2b2lkIFNjcm9sbGFibGVBcmVhOjpkb1Bvc3RUaHVtYkRy
YWdTbmFwcGluZyhTY3JvbGxiYXJPcmllbnRhdGlvbikKK3sKK30KICNlbmRpZgogCiBib29sIFNj
cm9sbGFibGVBcmVhOjppc1Bpbm5lZEZvclNjcm9sbERlbHRhT25BeGlzKGZsb2F0IHNjcm9sbERl
bHRhLCBTY3JvbGxFdmVudEF4aXMgYXhpcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCmluZGV4IDFlOWEyZDM3OTdlZGY2MGRlYmI0NTQwNjYzNjNhOTQ5NzE4
NjNkZDUuLmYyNjY5YTBjNThlNDUyOGNmMjM3OGM1NjcyNDBjOWM5ZmVjNTdkNzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1
YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKTsKKyAgICB2
b2lkIGRvUG9zdFRodW1iRHJhZ1NuYXBwaW5nKFNjcm9sbGJhck9yaWVudGF0aW9uKTsKIAogI2lm
IEVOQUJMRShUT1VDSF9FVkVOVFMpCiAgICAgdmlydHVhbCBib29sIGhhbmRsZVRvdWNoRXZlbnQo
Y29uc3QgUGxhdGZvcm1Ub3VjaEV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxiYXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFy
LmNwcAppbmRleCBhNmI1ODA3Mzg5OTQ2MjZjOTc1YTZjNzI5MGIwMzQxZjFmYmVjNTk0Li4yNzVj
MTA1ZWNjNjlkNzJiNDQwYzU2MTc0YjlmZWZkMTc1Njk4NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGJhci5jcHAKQEAgLTM1Niw2ICszNTYsNyBAQCBib29sIFNjcm9sbGJhcjo6bW91
c2VFeGl0ZWQoKQogCiBib29sIFNjcm9sbGJhcjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNl
RXZlbnQmIG1vdXNlRXZlbnQpCiB7CisgICAgYXV0byBwcmV2aW91c2x5UHJlc3NlZFBhcnQgPSBt
X3ByZXNzZWRQYXJ0OwogICAgIHNldFByZXNzZWRQYXJ0KE5vUGFydCk7CiAgICAgbV9wcmVzc2Vk
UG9zID0gMDsKICAgICBtX2RyYWdnaW5nRG9jdW1lbnQgPSBmYWxzZTsKQEAgLTM2OSw2ICszNzAs
OSBAQCBib29sIFNjcm9sbGJhcjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1v
dXNlRXZlbnQpCiAgICAgaWYgKHBhcnQgPT0gTm9QYXJ0KQogICAgICAgICBtX3Njcm9sbGFibGVB
cmVhLm1vdXNlRXhpdGVkU2Nyb2xsYmFyKHRoaXMpOwogCisgICAgaWYgKHByZXZpb3VzbHlQcmVz
c2VkUGFydCA9PSBUaHVtYlBhcnQpCisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuZG9Qb3N0VGh1
bWJEcmFnU25hcHBpbmcobV9vcmllbnRhdGlvbik7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IGUwNzI0MmM0M2RmNWY3ODI2MDgzYWVhOWE0YmFiNTFiNWI1NzdlMTEuLjQ3NzNhZTIw
Y2U3MDFjZDg1ZTU2ZGMwOTAxYjdhMWYxOTRjNzNiMGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAor
MjAyMS0wMi0yMiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAg
ICAgICAgU2Nyb2xsIHNuYXBwaW5nIGRvZXNuJ3Qga2ljayBpbiB3aGVuIGRyYWdnaW5nIHNjcm9s
bGJhcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0
NjY5NgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBzY3JvbGwgc25hcCBhZnRlciBkcmFnZ2luZyBzY3JvbGxiYXIgdGh1bWIK
KworICAgICAgICBUaGlzIGNoYW5nZSBhZGRzIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFwIHdoZW4g
dGhlIHNjcm9sbGJhciB0aHVtYiBpcworICAgICAgICByZWxlYXNlZCBmcm9tIGEgZHJhZyBvcGVy
YXRpb24uIFRoaXMgYW5pbWF0aW9uIGlzIGN1cnJlbnRseSBkb25lIHdpdGgKKyAgICAgICAgdGhl
IG5vbi1uYXRpdmUgc2Nyb2xsIGFuaW1hdG9yIGZvciBhbGwgcGxhdGZvcm1zLCBzaW5jZSB0aGF0
IGlzIGFsc28KKyAgICAgICAgd2hhdCBpcyB1c2VkIGZvciBzbW9vdGggc2Nyb2xsaW5nLgorCisg
ICAgICAgIFRoaXMgY2hhbmdlIGFkanVzdHMgdGhlIG5vbi1uYXRpdmUgc2Nyb2xsIGFuaW1hdG9y
J3Mgc21vb3RobmVzcyBmYWN0b3IsCisgICAgICAgIGJlY2F1c2UgaXQgaXMgdG9vIHNsb3cgZm9y
IHNob3J0IHNjcm9sbCBzbmFwcy4gSSBoYXZlIHZlcmlmaWVkIHRoYXQgdGhlCisgICAgICAgIG5l
dyBzbW9vdGhuZXNzIGZhY3RvciBpcyBhbHNvIGEgZ29vZCBzZWxlY3Rpb24gZm9yIHNtb290aCBz
Y3JvbGxpbmcKKyAgICAgICAgb3BlcmF0aW9ucyAoc3RpbGwgYW4gZXhwZXJpbWVudGFsIGZlYXR1
cmUpLiBBIGZ1cnRoZXIgY2hhbmdlIHNob3VsZCB1c2UKKyAgICAgICAgIm5hdGl2ZSIgYW5pbWF0
aW9ucyB3aGVuIHBvc3NpYmxlIGZvciBib3RoIHNtb290aCBzY3JvbGxpbmcgYW5kIHNjcm9sbAor
ICAgICAgICBzbmFwIGFmdGVyIHRodW1iIGRyYWdzLiBUaGlzIGlzIHRyYWNrZWQgYnkgdGhlIGZv
bGxvd2luZyBidWc6CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTg4NTcKKworICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJh
Zy1zY3JvbGxiYXItdGh1bWItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBjc3MzL3Nj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLmh0bWw6IEFkZGVkLgor
CiAyMDIxLTAyLTE5ICBKaWV3ZW4gVGFuICA8amlld2VuX3RhbkBhcHBsZS5jb20+CiAKICAgICAg
ICAgUENNOiBSZXF1ZXN0IHNlcnZlciBwdWJsaWMga2V5IHRvIGdlbmVyYXRlIHNlY3JldCB0b2tl
bgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1k
cmFnLXNjcm9sbGJhci10aHVtYi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wZTBhYWNhOTMyZGNhYTIyMzJkNTViMTA4YzBjMDdlZmJjMjRlOTJiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFn
LXNjcm9sbGJhci10aHVtYi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGRyYWdn
aW5nIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciB0aHVtYiBzbmFwcGVkCitQQVNTIGRyYWdnaW5n
IHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgdGh1bWIgc25hcHBlZAorUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRtbCBi
L0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXIt
dGh1bWIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xNmJhYmM4N2UxNDMzNDBjNTliOGZhM2FiMDVmNDJhN2Yy
MzU5YWQ0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9z
Y3JvbGwtc25hcC1kcmFnLXNjcm9sbGJhci10aHVtYi5odG1sCkBAIC0wLDAgKzEsMTAwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorICAgIDxoZWFkPgorICAgICAgICA8dGl0bGU+RHJhZ2dp
bmcgdGhlIHNjcm9sbGJhciB0aHVtYiBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmc8L3Rp
dGxlPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgLyogVXNl
IGN1c3RvbWl6ZWQgc2Nyb2xsYmFyIHRvIGF2b2lkIHBsYXRmb3JtIGRpZmZlcmVuY2VzLiAqLwor
ICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7CisgICAgICAgICAgICAgICAgd2lkdGg6
IDIwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgfQorICAg
ICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24geworICAgICAgICAgICAgICAgIGhl
aWdodDogMjBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjBweDsKKyAgICAgICAgICAgICAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICA6
Oi13ZWJraXQtc2Nyb2xsYmFyLXRyYWNrLXBpZWNlICB7CisgICAgICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogZ3JheTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgOjotd2Via2l0
LXNjcm9sbGJhci10aHVtYiB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAg
ICAgICAgICAgIHdpZHRoOiAyMHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6
IGJsYWNrOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBib2R5IHsKKyAgICAgICAgICAg
ICAgICBtYXJnaW46IDBweDsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmNvbnRhaW5l
ciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0
aDogMjAwcHg7CisgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IGF1dG87CisgICAgICAgICAgICAg
ICAgc2Nyb2xsLXNuYXAtdHlwZTogYm90aCBtYW5kYXRvcnk7CisgICAgICAgICAgICB9CisKKyAg
ICAgICAgICAgIC5ob3Jpem9udGFsLWRyYXdlciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAx
MDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiA1MDBweDsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDI1MHB4OworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLWFsaWdu
OiBzdGFydDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKyAgICAgICAgPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNj
cmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgorICAgICAg
ICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICAg
ICAgYXN5bmMgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAgeworICAgICAgICAgICAgaWYgKHdp
bmRvdy5ldmVudFNlbmRlciA9PSB1bmRlZmluZWQpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVyVGV4dCA9ICJEcmFnZ2luZyB0aGUgc2Ny
b2xsYmFyIHRodW1iIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBzbmFwcGluZy4iOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMjAsIDE5MCk7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oODAsIDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VV
cCgpOworCisgICAgICAgICAgICAgICAgbGV0IGhvcml6b250YWxDb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiaG9yaXpvbnRhbC1jb250YWluZXIiKTsKKyAgICAgICAgICAgICAg
ICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoaG9y
aXpvbnRhbENvbnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShob3Jpem9udGFs
Q29udGFpbmVyLnNjcm9sbExlZnQgPT0gMjUwLCAiZHJhZ2dpbmcgdGhlIGhvcml6b250YWwgc2Ny
b2xsYmFyIHRodW1iIHNuYXBwZWQiKTsKKworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDE5MCwgMjIwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURv
d24oKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDI3MCk7
CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgICAg
IGxldCB2ZXJ0aWNhbENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0aWNh
bC1jb250YWluZXIiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFy
Z2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUodmVydGljYWxDb250YWluZXIpOworICAgICAgICAg
ICAgICAgIGV4cGVjdFRydWUodmVydGljYWxDb250YWluZXIuc2Nyb2xsVG9wID09IDE4MCwgImRy
YWdnaW5nIHRoZSB2ZXJ0aWNhbCBzY3JvbGxiYXIgdGh1bWIgc25hcHBlZCIpOworICAgICAgICAg
ICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgICAgIGNvbnNvbGUubG9nKGUpOworICAgICAg
ICAgICAgfSBmaW5hbGx5IHsKKyAgICAgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgfQorICAgICAgICA8L3NjcmlwdD4KKyAgICA8L2hlYWQ+CisgICAg
PGJvZHkgb25sb2FkPSJvbkxvYWQoKTsiPgorICAgICAgICA8ZGl2IGlkPSJob3Jpem9udGFsLWNv
bnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJob3Jp
em9udGFsLWRyYXdlciI+CisgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxl
PSJmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICAg
ICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogI0ND
NUE3MSI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAg
IDxkaXYgaWQ9InZlcnRpY2FsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAg
ICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2
PgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAjQ0M1
QTcxIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGlkPSJjb25zb2xlIj48L3A+
CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvYm9keT4KKzwvaHRt
bD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421297</attachid>
            <date>2021-02-23 03:29:40 -0800</date>
            <delta_ts>2021-03-01 00:48:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146696-20210223122939.patch</filename>
            <type>text/plain</type>
            <size>16528</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjQwOGJmNWZjMmFjNmQx
MGUyN2U3ZjVkYWMwMTAzZjRmYjE2ZmYzMC4uYTAyOTUzYjA0MDBjNjRiMDQ2YmEzODg0MWIzNGIx
YjdlMDBmMWE3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIxLTAyLTIyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBTY3JvbGwgc25h
cHBpbmcgZG9lc24ndCBraWNrIGluIHdoZW4gZHJhZ2dpbmcgc2Nyb2xsYmFycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Njk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBz
dXBwb3J0IGZvciBzY3JvbGwgc25hcCB3aGVuIHRoZSBzY3JvbGxiYXIgdGh1bWIgaXMKKyAgICAg
ICAgcmVsZWFzZWQgZnJvbSBhIGRyYWcgb3BlcmF0aW9uLiBUaGlzIGFuaW1hdGlvbiBpcyBjdXJy
ZW50bHkgZG9uZSB3aXRoCisgICAgICAgIHRoZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvciBm
b3IgYWxsIHBsYXRmb3Jtcywgc2luY2UgdGhhdCBpcyBhbHNvCisgICAgICAgIHdoYXQgaXMgdXNl
ZCBmb3Igc21vb3RoIHNjcm9sbGluZy4KKworICAgICAgICBUaGlzIGNoYW5nZSBhZGp1c3RzIHRo
ZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvcidzIHNtb290aG5lc3MgZmFjdG9yLAorICAgICAg
ICBiZWNhdXNlIGl0IGlzIHRvbyBzbG93IGZvciBzaG9ydCBzY3JvbGwgc25hcHMuIEkgaGF2ZSB2
ZXJpZmllZCB0aGF0IHRoZQorICAgICAgICBuZXcgc21vb3RobmVzcyBmYWN0b3IgaXMgYWxzbyBh
IGdvb2Qgc2VsZWN0aW9uIGZvciBzbW9vdGggc2Nyb2xsaW5nCisgICAgICAgIG9wZXJhdGlvbnMg
KHN0aWxsIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlKS4gQSBmdXJ0aGVyIGNoYW5nZSBzaG91bGQg
dXNlCisgICAgICAgICJuYXRpdmUiIGFuaW1hdGlvbnMgd2hlbiBwb3NzaWJsZSBmb3IgYm90aCBz
bW9vdGggc2Nyb2xsaW5nIGFuZCBzY3JvbGwKKyAgICAgICAgc25hcCBhZnRlciB0aHVtYiBkcmFn
cy4gVGhpcyBpcyB0cmFja2VkIGJ5IHRoZSBmb2xsb3dpbmcgYnVnOgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU3CisKKyAgICAgICAgVGVzdDog
Y3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNjcm9sbGJhci10aHVtYi5odG1sCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwOiBNb2RpZnkgc21v
b3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsIHRvCisgICAgICAgIGEgdmFsdWUgdGhhdCBp
cyBnb29kIGZvciBib3RoIHNjcm9sbCBzbmFwcGluZyBhbmQgc21vb3RoIHNjcm9sbGluZy4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHA6IFRoZSB0aWNrIG1ldGhvZCBmb3Ig
dGhlIG5vbi1uYXRpdmUgc2Nyb2xsIGFuaW1hdGlvbgorICAgICAgICBzaG91bGQgY29udGludWFs
bHkgdXBkYXRlIHRoZSBjdXJyZW50IGFjdGl2ZSBzbmFwIHBvaW50LgorICAgICAgICAoV2ViQ29y
ZTo6U2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQp
OiBTcGxpdCB0aGlzIGludG8KKyAgICAgICAgdHdvIG1ldGhvZHMuIE9uZSB0aGF0IGhhbmRsZXMg
YSBzaW5nbGUgYXhpcyBhbmQgb25lIHRoYXQgaGFuZGxlcyBib3RoLgorICAgICAgICAqIHBsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmg6IFVwZGF0ZSBtZXRob2QgZGVjbGFyYXRpb25zLgorICAgICAg
ICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9s
bGFibGVBcmVhOjpkb1Bvc3RUaHVtYkRyYWdTbmFwcGluZyk6IEFkZGVkIHRoaXMgbWV0aG9kIHdo
aWNoIGRvZXMKKyAgICAgICAgYXhpYWwgc25hcHBpbmcgYWZ0ZXIgYSBzY3JvbGxiYXIgdGh1bSBk
cmFnLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmg6CisgICAgICAgICogcGxh
dGZvcm0vU2Nyb2xsYmFyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNjcm9sbGJhcjo6bW91c2VV
cCk6IFVzZSB0aGUgbmV3IGRvUG9zdFRodW1iRHJhZ1NuYXBwaW5nIG1ldGhvZC4KKwogMjAyMS0w
Mi0yMyAgUnlvc3VrZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBIYW5kbGUg
UGFnZTo6ZGlkRmluaXNoTG9hZGluZ0ltYWdlRm9yRWxlbWVudCBhc3luY2hyb25vdXNseQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKaW5k
ZXggMjdlMDgzNDMzMDgxM2Q5OGE2ZWQ1YWI2ZjczYzhiMGQ5MTk2NDEwMi4uY2VmODY4ODk1YmRl
M2U4MjgyM2Y1MGUxZTEzYzdjMDQ5NzY1MGJjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCkBAIC00MCw3ICs0MCw3IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIHN0YXRpYyBjb25zdCBkb3VibGUgZnJhbWVSYXRlID0gNjA7CiBzdGF0
aWMgY29uc3QgU2Vjb25kcyB0aWNrVGltZSA9IDFfcyAvIGZyYW1lUmF0ZTsKIHN0YXRpYyBjb25z
dCBTZWNvbmRzIG1pbmltdW1UaW1lckludGVydmFsIHsgMV9tcyB9Owotc3RhdGljIGNvbnN0IGRv
dWJsZSBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgPSA1Oworc3RhdGljIGNvbnN0
IGRvdWJsZSBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgPSAxOwogCiBTY3JvbGxB
bmltYXRpb25TbW9vdGg6OlBlckF4aXNEYXRhOjpQZXJBeGlzRGF0YShTY3JvbGxiYXJPcmllbnRh
dGlvbiBvcmllbnRhdGlvbiwgY29uc3QgRmxvYXRQb2ludCYgcG9zaXRpb24sIFNjcm9sbEV4dGVu
dHNDYWxsYmFjayYgZXh0ZW50c0NhbGxiYWNrKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsQW5pbWF0b3IuY3BwCmluZGV4IDU1NDI0ZTliMmU4MWQyYzc4NjBlNjY4OGExOWE2NzAz
ZTNhMGRjZTguLmQzZjRhZjcxNDhiYjIwZmNlOWU2Mzc3ZjMyNGYyZGFlZmQ5OTM3MTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKQEAgLTY2LDYgKzY2LDcg
QEAgU2Nyb2xsQW5pbWF0b3I6OlNjcm9sbEFuaW1hdG9yKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxh
YmxlQXJlYSkKICAgICAgICAgICAgIEZsb2F0U2l6ZSBkZWx0YSA9IHBvc2l0aW9uIC0gbV9jdXJy
ZW50UG9zaXRpb247CiAgICAgICAgICAgICBtX2N1cnJlbnRQb3NpdGlvbiA9IFdURk1vdmUocG9z
aXRpb24pOwogICAgICAgICAgICAgbm90aWZ5UG9zaXRpb25DaGFuZ2VkKGRlbHRhKTsKKyAgICAg
ICAgICAgIHVwZGF0ZUFjdGl2ZVNjcm9sbFNuYXBJbmRleEZvck9mZnNldCgpOwogICAgICAgICB9
LAogICAgICAgICBbdGhpc10gewogICAgICAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5zZXRTY3Jv
bGxCZWhhdmlvclN0YXR1cyhTY3JvbGxCZWhhdmlvclN0YXR1czo6Tm90SW5BbmltYXRpb24pOwpA
QCAtMzYyLDIzICszNjMsMzYgQEAgRmxvYXRQb2ludCBTY3JvbGxBbmltYXRvcjo6YWRqdXN0U2Ny
b2xsT2Zmc2V0Rm9yU25hcHBpbmdJZk5lZWRlZChjb25zdCBGbG9hdFBvaW4KICAgICBpZiAoIW1f
c2Nyb2xsQ29udHJvbGxlci51c2VzU2Nyb2xsU25hcCgpKQogICAgICAgICByZXR1cm4gb2Zmc2V0
OwogCi0gICAgT3B0aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsWE9mZnNldCwgb3JpZ2luYWxZT2Zmc2V0
OwotICAgIEZsb2F0U2l6ZSB2ZWxvY2l0eTsKKyAgICBGbG9hdFBvaW50IG5ld09mZnNldCA9IG9m
ZnNldDsKKyAgICBuZXdPZmZzZXQuc2V0WChhZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lm
TmVlZGVkKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgbmV3T2Zmc2V0LngoKSwgbWV0aG9k
KSk7CisgICAgbmV3T2Zmc2V0LnNldFkoYWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJZk5l
ZWRlZChTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBuZXdPZmZzZXQueSgpLCBtZXRob2QpKTsK
KyAgICByZXR1cm4gbmV3T2Zmc2V0OworI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0obWV0aG9kKTsK
KyAgICByZXR1cm4gb2Zmc2V0OworI2VuZGlmCit9CisKK2Zsb2F0IFNjcm9sbEFuaW1hdG9yOjph
ZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lmTmVlZGVkKFNjcm9sbEV2ZW50QXhpcyBheGlz
LCBmbG9hdCBuZXdPZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZCBtZXRob2Qp
Cit7CisjaWYgRU5BQkxFKENTU19TQ1JPTExfU05BUCkKKyAgICBpZiAoIW1fc2Nyb2xsQ29udHJv
bGxlci51c2VzU2Nyb2xsU25hcCgpKQorICAgICAgICByZXR1cm4gbmV3T2Zmc2V0OworCisgICAg
T3B0aW9uYWw8ZmxvYXQ+IG9yaWdpbmFsT2Zmc2V0OworICAgIGZsb2F0IHZlbG9jaXR5ID0gMC47
CiAgICAgaWYgKG1ldGhvZCA9PSBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2Q6OkRpcmVj
dGlvbmFsKSB7CiAgICAgICAgIEZsb2F0U2l6ZSBzY3JvbGxPcmlnaW4gPSB0b0Zsb2F0U2l6ZSht
X3Njcm9sbGFibGVBcmVhLnNjcm9sbE9yaWdpbigpKTsKICAgICAgICAgYXV0byBjdXJyZW50T2Zm
c2V0ID0gU2Nyb2xsYWJsZUFyZWE6OnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbih0aGlzLT5jdXJy
ZW50UG9zaXRpb24oKSwgc2Nyb2xsT3JpZ2luKTsKLSAgICAgICAgb3JpZ2luYWxYT2Zmc2V0ID0g
Y3VycmVudE9mZnNldC54KCk7Ci0gICAgICAgIG9yaWdpbmFsWU9mZnNldCA9IGN1cnJlbnRPZmZz
ZXQueSgpOwotICAgICAgICB2ZWxvY2l0eSA9IHsgb2Zmc2V0LngoKSAtIGN1cnJlbnRPZmZzZXQu
eCgpLCBvZmZzZXQueSgpIC0gY3VycmVudE9mZnNldC55KCkgfTsKKyAgICAgICAgb3JpZ2luYWxP
ZmZzZXQgPSBheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCA/IGN1cnJlbnRPZmZz
ZXQueCgpIDogY3VycmVudE9mZnNldC55KCk7CisgICAgICAgIHZlbG9jaXR5ID0gbmV3T2Zmc2V0
IC0gKGF4aXMgPT0gU2Nyb2xsRXZlbnRBeGlzOjpIb3Jpem9udGFsID8gY3VycmVudE9mZnNldC54
KCkgOiBjdXJyZW50T2Zmc2V0LnkoKSk7CiAgICAgfQogCi0gICAgRmxvYXRQb2ludCBuZXdPZmZz
ZXQgPSBvZmZzZXQ7Ci0gICAgbmV3T2Zmc2V0LnNldFgobV9zY3JvbGxDb250cm9sbGVyLmFkanVz
dFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgbmV3T2Zmc2V0
LngoKSwgdmVsb2NpdHkud2lkdGgoKSwgb3JpZ2luYWxYT2Zmc2V0KSk7Ci0gICAgbmV3T2Zmc2V0
LnNldFkobV9zY3JvbGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKFNjcm9sbEV2
ZW50QXhpczo6VmVydGljYWwsIG5ld09mZnNldC55KCksIHZlbG9jaXR5LmhlaWdodCgpLCBvcmln
aW5hbFlPZmZzZXQpKTsKLSAgICByZXR1cm4gbmV3T2Zmc2V0OworICAgIHJldHVybiBtX3Njcm9s
bENvbnRyb2xsZXIuYWRqdXN0U2Nyb2xsRGVzdGluYXRpb24oYXhpcywgbmV3T2Zmc2V0LCB2ZWxv
Y2l0eSwgb3JpZ2luYWxPZmZzZXQpOwogI2Vsc2UKICAgICBVTlVTRURfUEFSQU0obWV0aG9kKTsK
LSAgICByZXR1cm4gb2Zmc2V0OworICAgIFVOVVNFRF9QQVJBTShheGlzKTsKKyAgICByZXR1cm4g
bmV3T2Zmc2V0OwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbEFuaW1hdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmlt
YXRvci5oCmluZGV4IGU0OWU3ZmYzNjE4M2U4YzJhZTc2M2IxMmE1OTA0ODJkMjY3MmJhMjEuLjA4
NmEwZTM5MzVhYjMxYzc3ZjY0MGMxYjVhN2E3MTE2MTRmOWM1ZjYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaApAQCAtMTQyLDYgKzE0Miw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHNldFdoZWVsRXZlbnRUZXN0TW9uaXRvcihSZWZQdHI8V2hlZWxFdmVudFRlc3RNb25p
dG9yPiYmIHRlc3RNb25pdG9yKSB7IG1fd2hlZWxFdmVudFRlc3RNb25pdG9yID0gdGVzdE1vbml0
b3I7IH0KIAogICAgIEZsb2F0UG9pbnQgYWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJZk5l
ZWRlZChjb25zdCBGbG9hdFBvaW50JiBvZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1l
dGhvZCk7CisgICAgZmxvYXQgYWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJZk5lZWRlZChT
Y3JvbGxFdmVudEF4aXMsIGZsb2F0IG5ld09mZnNldCwgU2Nyb2xsU25hcFBvaW50U2VsZWN0aW9u
TWV0aG9kKTsKIAogI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApIHx8IEVOQUJMRShSVUJCRVJf
QkFORElORykKICAgICBzdGQ6OnVuaXF1ZV9wdHI8U2Nyb2xsQ29udHJvbGxlclRpbWVyPiBjcmVh
dGVUaW1lcihGdW5jdGlvbjx2b2lkKCk+JiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IDYxZjdlYTUyMDVmMDkyN2E2Yzc4OTRlMjI2NDY4
YTkwZDdjYzZmYmYuLmRkZjNhZTM3MjI1NTliOWQwMWUzOTZiZTRmYjlhYzhhOTdmNGIxMzEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTU1NywxMCAr
NTU3LDMxIEBAIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpCiAg
ICAgICAgIHNjcm9sbFRvUG9zaXRpb25XaXRob3V0QW5pbWF0aW9uKGNvcnJlY3RlZFBvc2l0aW9u
KTsKICAgICB9CiB9CisKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OmRvUG9zdFRodW1iRHJhZ1NuYXBw
aW5nKFNjcm9sbGJhck9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQoreworICAgIGlmICghdXNlc1Nj
cm9sbFNuYXAoKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgYXV0byBjdXJyZW50T2Zmc2V0ID0g
c2Nyb2xsT2Zmc2V0KCk7CisgICAgYXV0byBuZXdPZmZzZXQgPSBjdXJyZW50T2Zmc2V0OworICAg
IGlmIChvcmllbnRhdGlvbiA9PSBIb3Jpem9udGFsU2Nyb2xsYmFyKQorICAgICAgICBuZXdPZmZz
ZXQuc2V0WChtX3Njcm9sbEFuaW1hdG9yLT5hZGp1c3RTY3JvbGxPZmZzZXRGb3JTbmFwcGluZ0lm
TmVlZGVkKFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCwgY3VycmVudE9mZnNldC54KCksIFNj
cm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZDo6Q2xvc2VzdCkpOworICAgIGVsc2UKKyAgICAg
ICAgbmV3T2Zmc2V0LnNldFkobV9zY3JvbGxBbmltYXRvci0+YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9y
U25hcHBpbmdJZk5lZWRlZChTY3JvbGxFdmVudEF4aXM6OlZlcnRpY2FsLCBjdXJyZW50T2Zmc2V0
LnkoKSwgU2Nyb2xsU25hcFBvaW50U2VsZWN0aW9uTWV0aG9kOjpDbG9zZXN0KSk7CisgICAgaWYg
KG5ld09mZnNldCA9PSBjdXJyZW50T2Zmc2V0KQorICAgICAgICByZXR1cm47CisKKyAgICBzY3Jv
bGxBbmltYXRvcigpLnNjcm9sbFRvT2Zmc2V0V2l0aEFuaW1hdGlvbihuZXdPZmZzZXQpOworfQog
I2Vsc2UKIHZvaWQgU2Nyb2xsYWJsZUFyZWE6OnVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpCiB7CiB9
CisKK3ZvaWQgU2Nyb2xsYWJsZUFyZWE6OmRvUG9zdFRodW1iRHJhZ1NuYXBwaW5nKFNjcm9sbGJh
ck9yaWVudGF0aW9uKQoreworfQogI2VuZGlmCiAKIGJvb2wgU2Nyb2xsYWJsZUFyZWE6OmlzUGlu
bmVkRm9yU2Nyb2xsRGVsdGFPbkF4aXMoZmxvYXQgc2Nyb2xsRGVsdGEsIFNjcm9sbEV2ZW50QXhp
cyBheGlzKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xs
YWJsZUFyZWEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKaW5k
ZXggMWU5YTJkMzc5N2VkZjYwZGViYjQ1NDA2NjM2M2E5NDk3MTg2M2RkNS4uZjI2NjlhMGM1OGU0
NTI4Y2YyMzc4YzU2NzI0MGM5YzlmZWM1N2Q3MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxhYmxlQXJlYS5oCkBAIC0xMDMsNiArMTAzLDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICB2b2lkIHVwZGF0ZVNjcm9sbFNuYXBTdGF0ZSgpOworICAgIHZvaWQgZG9Qb3N0VGh1bWJEcmFn
U25hcHBpbmcoU2Nyb2xsYmFyT3JpZW50YXRpb24pOwogCiAjaWYgRU5BQkxFKFRPVUNIX0VWRU5U
UykKICAgICB2aXJ0dWFsIGJvb2wgaGFuZGxlVG91Y2hFdmVudChjb25zdCBQbGF0Zm9ybVRvdWNo
RXZlbnQmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIuY3BwCmluZGV4IGE2YjU4MDcz
ODk5NDYyNmM5NzVhNmM3MjkwYjAzNDFmMWZiZWM1OTQuLjI3NWMxMDVlY2M2OWQ3MmI0NDBjNTYx
NzRiOWZlZmQxNzU2OTg2M2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Nj
cm9sbGJhci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcApA
QCAtMzU2LDYgKzM1Niw3IEBAIGJvb2wgU2Nyb2xsYmFyOjptb3VzZUV4aXRlZCgpCiAKIGJvb2wg
U2Nyb2xsYmFyOjptb3VzZVVwKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkK
IHsKKyAgICBhdXRvIHByZXZpb3VzbHlQcmVzc2VkUGFydCA9IG1fcHJlc3NlZFBhcnQ7CiAgICAg
c2V0UHJlc3NlZFBhcnQoTm9QYXJ0KTsKICAgICBtX3ByZXNzZWRQb3MgPSAwOwogICAgIG1fZHJh
Z2dpbmdEb2N1bWVudCA9IGZhbHNlOwpAQCAtMzY5LDYgKzM3MCw5IEBAIGJvb2wgU2Nyb2xsYmFy
Ojptb3VzZVVwKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgbW91c2VFdmVudCkKICAgICBpZiAo
cGFydCA9PSBOb1BhcnQpCiAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEubW91c2VFeGl0ZWRTY3Jv
bGxiYXIodGhpcyk7CiAKKyAgICBpZiAocHJldmlvdXNseVByZXNzZWRQYXJ0ID09IFRodW1iUGFy
dCkKKyAgICAgICAgbV9zY3JvbGxhYmxlQXJlYS5kb1Bvc3RUaHVtYkRyYWdTbmFwcGluZyhtX29y
aWVudGF0aW9uKTsKKwogICAgIHJldHVybiB0cnVlOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYmJlODdkMzU0YmQz
OTYzZTEyNjZlYjcyOTJmZmFhYTE0YTc5Zjg2Ny4uZjJhOTYwMTM0ZTQ0MmRkMGYzYTYxNzJkNzgw
OWI5MjM4ZTY5ZTYxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTAyLTIyICBNYXJ0aW4g
Um9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBTY3JvbGwgc25hcHBp
bmcgZG9lc24ndCBraWNrIGluIHdoZW4gZHJhZ2dpbmcgc2Nyb2xsYmFycworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Njk2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHNjcm9s
bCBzbmFwIGFmdGVyIGRyYWdnaW5nIHNjcm9sbGJhciB0aHVtYgorCisgICAgICAgIFRoaXMgY2hh
bmdlIGFkZHMgc3VwcG9ydCBmb3Igc2Nyb2xsIHNuYXAgd2hlbiB0aGUgc2Nyb2xsYmFyIHRodW1i
IGlzCisgICAgICAgIHJlbGVhc2VkIGZyb20gYSBkcmFnIG9wZXJhdGlvbi4gVGhpcyBhbmltYXRp
b24gaXMgY3VycmVudGx5IGRvbmUgd2l0aAorICAgICAgICB0aGUgbm9uLW5hdGl2ZSBzY3JvbGwg
YW5pbWF0b3IgZm9yIGFsbCBwbGF0Zm9ybXMsIHNpbmNlIHRoYXQgaXMgYWxzbworICAgICAgICB3
aGF0IGlzIHVzZWQgZm9yIHNtb290aCBzY3JvbGxpbmcuCisKKyAgICAgICAgVGhpcyBjaGFuZ2Ug
YWRqdXN0cyB0aGUgbm9uLW5hdGl2ZSBzY3JvbGwgYW5pbWF0b3IncyBzbW9vdGhuZXNzIGZhY3Rv
ciwKKyAgICAgICAgYmVjYXVzZSBpdCBpcyB0b28gc2xvdyBmb3Igc2hvcnQgc2Nyb2xsIHNuYXBz
LiBJIGhhdmUgdmVyaWZpZWQgdGhhdCB0aGUKKyAgICAgICAgbmV3IHNtb290aG5lc3MgZmFjdG9y
IGlzIGFsc28gYSBnb29kIHNlbGVjdGlvbiBmb3Igc21vb3RoIHNjcm9sbGluZworICAgICAgICBv
cGVyYXRpb25zIChzdGlsbCBhbiBleHBlcmltZW50YWwgZmVhdHVyZSkuIEEgZnVydGhlciBjaGFu
Z2Ugc2hvdWxkIHVzZQorICAgICAgICAibmF0aXZlIiBhbmltYXRpb25zIHdoZW4gcG9zc2libGUg
Zm9yIGJvdGggc21vb3RoIHNjcm9sbGluZyBhbmQgc2Nyb2xsCisgICAgICAgIHNuYXAgYWZ0ZXIg
dGh1bWIgZHJhZ3MuIFRoaXMgaXMgdHJhY2tlZCBieSB0aGUgZm9sbG93aW5nIGJ1ZzoKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxODg1NworCisgICAg
ICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNjcm9sbGJhci10aHVtYi1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRtbDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0v
aW9zL1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlIG5ldyB0ZXN0IG9uIGlPUyB3aGljaCBkb2Vz
IG5vdAorICAgICAgICBzdXBwb3J0IHNjcm9sbGluZyBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsYmFy
LgorCiAyMDIxLTAyLTIzICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBsZS5jb20+CiAK
ICAgICAgICAgSFRNTENhbnZhc0VsZW1lbnQ6OmNvcGllZEltYWdlKCkgY29udGFpbnMgb2xkIGlt
YWdlIHdpdGggR1BVIFByb2Nlc3Mgb24KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Ny
b2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWItZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNjcm9sbGJhci10
aHVtYi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUwYWFjYTkzMmRjYWEyMjMyZDU1YjEwOGMw
YzA3ZWZiYzI0ZTkyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWItZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorUEFTUyBkcmFnZ2luZyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgdGh1bWIg
c25hcHBlZAorUEFTUyBkcmFnZ2luZyB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1iIHNuYXBw
ZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWct
c2Nyb2xsYmFyLXRodW1iLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZiYWJjODdlMTQz
MzQwYzU5YjhmYTNhYjA1ZjQyYTdmMjM1OWFkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRt
bApAQCAtMCwwICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4K
KyAgICAgICAgPHRpdGxlPkRyYWdnaW5nIHRoZSBzY3JvbGxiYXIgdGh1bWIgc2hvdWxkIHRyaWdn
ZXIgc2Nyb2xsIHNuYXBwaW5nPC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3Nz
Ij4KKyAgICAgICAgICAgIC8qIFVzZSBjdXN0b21pemVkIHNjcm9sbGJhciB0byBhdm9pZCBwbGF0
Zm9ybSBkaWZmZXJlbmNlcy4gKi8KKyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgewor
ICAgICAgICAgICAgICAgIHdpZHRoOiAyMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMjBw
eDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9u
IHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6
IDIwcHg7CisgICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZSAgewor
ICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeworICAgICAgICAgICAgICAg
IGhlaWdodDogMjBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjBweDsKKyAgICAgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAg
ICAgYm9keSB7CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7CisgICAgICAgICAgICB9CisK
KyAgICAgICAgICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7
CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93
OiBhdXRvOworICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5
OworICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAg
ICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7
CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAg
aGVpZ2h0OiAxMDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgICAgICAg
ICAgICBzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwv
c3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+
PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVy
LmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElz
QXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAg
IHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7Cisg
ICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRl
eHQgPSAiRHJhZ2dpbmcgdGhlIHNjcm9sbGJhciB0aHVtYiBzaG91bGQgdHJpZ2dlciBzY3JvbGwg
c25hcHBpbmcuIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIw
LCAxOTApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAg
ICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDgwLCAxOTApOworICAgICAgICAgICAg
ICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGxldCBob3Jpem9u
dGFsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvcml6b250YWwtY29udGFp
bmVyIik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9s
bEFuaW1hdGlvblRvU2V0dGxlKGhvcml6b250YWxDb250YWluZXIpOworICAgICAgICAgICAgICAg
IGV4cGVjdFRydWUoaG9yaXpvbnRhbENvbnRhaW5lci5zY3JvbGxMZWZ0ID09IDI1MCwgImRyYWdn
aW5nIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciB0aHVtYiBzbmFwcGVkIik7CisKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDIyMCk7CisgICAgICAgICAgICAg
ICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIu
bW91c2VNb3ZlVG8oMTkwLCAyNzApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNl
VXAoKTsKKyAgICAgICAgICAgICAgICBsZXQgdmVydGljYWxDb250YWluZXIgPSBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgidmVydGljYWwtY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAgYXdh
aXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKHZlcnRpY2Fs
Q29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHZlcnRpY2FsQ29udGFpbmVy
LnNjcm9sbFRvcCA9PSAxODAsICJkcmFnZ2luZyB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1i
IHNuYXBwZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBj
b25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3Jp
cHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKyAgICAgICAg
PGRpdiBpZD0iaG9yaXpvbnRhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPgorICAgICAg
ICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1kcmF3ZXIiPgorICAgICAgICAgICAgICAgIDxk
aXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQ6ICM4MDQ3NUUi
PjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6
IGxlZnQ7IGJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+Cisg
ICAgICAgIDwvZGl2PgorICAgICAgICA8ZGl2IGlkPSJ2ZXJ0aWNhbC1jb250YWluZXIiIGNsYXNz
PSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNr
Z3JvdW5kOiAjODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBz
dHlsZT0iYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAg
ICA8cCBpZD0iY29uc29sZSI+PC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICA8L3Njcmlw
dD4KKyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zCmluZGV4IDIzZDNkNDcwOWJlOTllZDY2ZTUxZjdlZmU3MzVhZGY4Mzc1NzhhM2Eu
LjA3YTFlZjg3ZmRkYmU3YWQ3MGI1NWI2YTFjZjA3OTJmYjVlNDkyNzcgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzQ5LDYgKzIzNDksNyBAQCBmYXN0
L2RvbS9XaW5kb3cvY2hpbGQtd2luZG93LWZvY3VzLmh0bWwKIAogIyBpT1MgZG9lcyBub3QgYWxs
b3cgeW91IHRvIHNjcm9sbCBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsYmFyIHRodW1iLgogd2Via2l0
Lm9yZy9iLzE1NzIwMSBmYXN0L3Njcm9sbGluZy9ydGwtZHJhZy12ZXJ0aWNhbC1zY3JvbGxlci5o
dG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTU3MjAxIGNzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRtbCBbIEZhaWx1cmUgXQogCiAjIER1bXBS
ZW5kZXJUcmVlIGRvZXNuJ3Qgc3VwcG9ydCBsb2dnaW5nIGNhbGxzIHRvIHJ1bk9wZW5QYW5lbCBh
bmQgaU9TJ3MgV2ViS2l0VGVzdFJ1bm5lciBkb2Vzbid0IHN1cHBvcnQgZXZlbnRTZW5kZXIubW91
c2VEb3duLgogZmFzdC9mb3Jtcy9maWxlL29wZW4tZmlsZS1wYW5lbC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421798</attachid>
            <date>2021-03-01 01:18:41 -0800</date>
            <delta_ts>2021-03-01 04:21:07 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146696-20210301101839.patch</filename>
            <type>text/plain</type>
            <size>21307</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhOTA2YzBhYTI0OGU5
N2MxZGI1MzQxYWE0MDVjYmZjMmQyNTdiMC4uMjk1ODY0ODQxYTNmNDAzNGY0YjdjZWRhMzNjZjY4
MmJjZTY3ODY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTAyLTIyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBTY3JvbGwgc25h
cHBpbmcgZG9lc24ndCBraWNrIGluIHdoZW4gZHJhZ2dpbmcgc2Nyb2xsYmFycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Njk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBz
dXBwb3J0IGZvciBzY3JvbGwgc25hcCB3aGVuIHRoZSBzY3JvbGxiYXIgdGh1bWIgaXMKKyAgICAg
ICAgcmVsZWFzZWQgZnJvbSBhIGRyYWcgb3BlcmF0aW9uLiBUaGlzIGFuaW1hdGlvbiBpcyBjdXJy
ZW50bHkgZG9uZSB3aXRoCisgICAgICAgIHRoZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvciBm
b3IgYWxsIHBsYXRmb3Jtcywgc2luY2UgdGhhdCBpcyBhbHNvCisgICAgICAgIHdoYXQgaXMgdXNl
ZCBmb3Igc21vb3RoIHNjcm9sbGluZy4KKworICAgICAgICBUaGlzIGNoYW5nZSBhZGp1c3RzIHRo
ZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvcidzIHNtb290aG5lc3MgZmFjdG9yLAorICAgICAg
ICBiZWNhdXNlIGl0IGlzIHRvbyBzbG93IGZvciBzaG9ydCBzY3JvbGwgc25hcHMuIEkgaGF2ZSB2
ZXJpZmllZCB0aGF0IHRoZQorICAgICAgICBuZXcgc21vb3RobmVzcyBmYWN0b3IgaXMgYWxzbyBh
IGdvb2Qgc2VsZWN0aW9uIGZvciBzbW9vdGggc2Nyb2xsaW5nCisgICAgICAgIG9wZXJhdGlvbnMg
KHN0aWxsIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlKS4gQSBmdXJ0aGVyIGNoYW5nZSBzaG91bGQg
dXNlCisgICAgICAgICJuYXRpdmUiIGFuaW1hdGlvbnMgd2hlbiBwb3NzaWJsZSBmb3IgYm90aCBz
bW9vdGggc2Nyb2xsaW5nIGFuZCBzY3JvbGwKKyAgICAgICAgc25hcCBhZnRlciB0aHVtYiBkcmFn
cy4gVGhpcyBpcyB0cmFja2VkIGJ5IHRoZSBmb2xsb3dpbmcgYnVnOgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU3CisKKyAgICAgICAgVGVzdHM6
IGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1s
CisgICAgICAgICAgICAgICBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xs
YmFyLXRodW1iLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290
aC5jcHA6IE1vZGlmeSBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgdG8KKyAgICAg
ICAgYSB2YWx1ZSB0aGF0IGlzIGdvb2QgZm9yIGJvdGggc2Nyb2xsIHNuYXBwaW5nIGFuZCBzbW9v
dGggc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDogVGhl
IHRpY2sgbWV0aG9kIGZvciB0aGUgbm9uLW5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uCisgICAgICAg
IHNob3VsZCBjb250aW51YWxseSB1cGRhdGUgdGhlIGN1cnJlbnQgYWN0aXZlIHNuYXAgcG9pbnQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9y
U25hcHBpbmdJZk5lZWRlZCk6IFNwbGl0IHRoaXMgaW50bworICAgICAgICB0d28gbWV0aG9kcy4g
T25lIHRoYXQgaGFuZGxlcyBhIHNpbmdsZSBheGlzIGFuZCBvbmUgdGhhdCBoYW5kbGVzIGJvdGgu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogVXBkYXRlIG1ldGhvZCBkZWNs
YXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmRvUG9zdFRodW1iRHJhZ1NuYXBwaW5nKTogQWRk
ZWQgdGhpcyBtZXRob2Qgd2hpY2ggZG9lcworICAgICAgICBheGlhbCBzbmFwcGluZyBhZnRlciBh
IHNjcm9sbGJhciB0aHVtIGRyYWcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsYmFyOjptb3VzZVVwKTogVXNlIHRoZSBuZXcgZG9Qb3N0VGh1bWJEcmFnU25hcHBpbmcg
bWV0aG9kLgorCiAyMDIxLTAyLTI0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4K
IAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpzcGxpdFRy
ZWVUb05vZGUgdmlhIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmRvQXBwbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCmlu
ZGV4IDI3ZTA4MzQzMzA4MTNkOThhNmVkNWFiNmY3M2M4YjBkOTE5NjQxMDIuLmNlZjg2ODg5NWJk
ZTNlODI4MjNmNTBlMWUxM2M3YzA0OTc2NTBiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgY29uc3QgZG91YmxlIGZyYW1lUmF0ZSA9IDYwOwogc3Rh
dGljIGNvbnN0IFNlY29uZHMgdGlja1RpbWUgPSAxX3MgLyBmcmFtZVJhdGU7CiBzdGF0aWMgY29u
c3QgU2Vjb25kcyBtaW5pbXVtVGltZXJJbnRlcnZhbCB7IDFfbXMgfTsKLXN0YXRpYyBjb25zdCBk
b3VibGUgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsID0gNTsKK3N0YXRpYyBjb25z
dCBkb3VibGUgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsID0gMTsKIAogU2Nyb2xs
QW5pbWF0aW9uU21vb3RoOjpQZXJBeGlzRGF0YTo6UGVyQXhpc0RhdGEoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxFeHRl
bnRzQ2FsbGJhY2smIGV4dGVudHNDYWxsYmFjaykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCA1NTQyNGU5YjJlODFkMmM3ODYwZTY2ODhhMTlhNjcw
M2UzYTBkY2U4Li5kM2Y0YWY3MTQ4YmIyMGZjZTllNjM3N2YzMjRmMmRhZWZkOTkzNzE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC02Niw2ICs2Niw3
IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xs
YWJsZUFyZWEpCiAgICAgICAgICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3Vy
cmVudFBvc2l0aW9uOwogICAgICAgICAgICAgbV9jdXJyZW50UG9zaXRpb24gPSBXVEZNb3ZlKHBv
c2l0aW9uKTsKICAgICAgICAgICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChkZWx0YSk7CisgICAg
ICAgICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKICAgICAgICAg
fSwKICAgICAgICAgW3RoaXNdIHsKICAgICAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsK
QEAgLTM2MiwyMyArMzYzLDM2IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNj
cm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoY29uc3QgRmxvYXRQb2luCiAgICAgaWYgKCFt
X3Njcm9sbENvbnRyb2xsZXIudXNlc1Njcm9sbFNuYXAoKSkKICAgICAgICAgcmV0dXJuIG9mZnNl
dDsKIAotICAgIE9wdGlvbmFsPGZsb2F0PiBvcmlnaW5hbFhPZmZzZXQsIG9yaWdpbmFsWU9mZnNl
dDsKLSAgICBGbG9hdFNpemUgdmVsb2NpdHk7CisgICAgRmxvYXRQb2ludCBuZXdPZmZzZXQgPSBv
ZmZzZXQ7CisgICAgbmV3T2Zmc2V0LnNldFgoYWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJ
Zk5lZWRlZChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIG5ld09mZnNldC54KCksIG1ldGhv
ZCkpOworICAgIG5ld09mZnNldC5zZXRZKGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZO
ZWVkZWQoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgbmV3T2Zmc2V0LnkoKSwgbWV0aG9kKSk7
CisgICAgcmV0dXJuIG5ld09mZnNldDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1ldGhvZCk7
CisgICAgcmV0dXJuIG9mZnNldDsKKyNlbmRpZgorfQorCitmbG9hdCBTY3JvbGxBbmltYXRvcjo6
YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJZk5lZWRlZChTY3JvbGxFdmVudEF4aXMgYXhp
cywgZmxvYXQgbmV3T2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QgbWV0aG9k
KQoreworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgaWYgKCFtX3Njcm9sbENvbnRy
b2xsZXIudXNlc1Njcm9sbFNuYXAoKSkKKyAgICAgICAgcmV0dXJuIG5ld09mZnNldDsKKworICAg
IE9wdGlvbmFsPGZsb2F0PiBvcmlnaW5hbE9mZnNldDsKKyAgICBmbG9hdCB2ZWxvY2l0eSA9IDAu
OwogICAgIGlmIChtZXRob2QgPT0gU2Nyb2xsU25hcFBvaW50U2VsZWN0aW9uTWV0aG9kOjpEaXJl
Y3Rpb25hbCkgewogICAgICAgICBGbG9hdFNpemUgc2Nyb2xsT3JpZ2luID0gdG9GbG9hdFNpemUo
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSk7CiAgICAgICAgIGF1dG8gY3VycmVudE9m
ZnNldCA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24odGhpcy0+Y3Vy
cmVudFBvc2l0aW9uKCksIHNjcm9sbE9yaWdpbik7Ci0gICAgICAgIG9yaWdpbmFsWE9mZnNldCA9
IGN1cnJlbnRPZmZzZXQueCgpOwotICAgICAgICBvcmlnaW5hbFlPZmZzZXQgPSBjdXJyZW50T2Zm
c2V0LnkoKTsKLSAgICAgICAgdmVsb2NpdHkgPSB7IG9mZnNldC54KCkgLSBjdXJyZW50T2Zmc2V0
LngoKSwgb2Zmc2V0LnkoKSAtIGN1cnJlbnRPZmZzZXQueSgpIH07CisgICAgICAgIG9yaWdpbmFs
T2Zmc2V0ID0gYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwgPyBjdXJyZW50T2Zm
c2V0LngoKSA6IGN1cnJlbnRPZmZzZXQueSgpOworICAgICAgICB2ZWxvY2l0eSA9IG5ld09mZnNl
dCAtIChheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCA/IGN1cnJlbnRPZmZzZXQu
eCgpIDogY3VycmVudE9mZnNldC55KCkpOwogICAgIH0KIAotICAgIEZsb2F0UG9pbnQgbmV3T2Zm
c2V0ID0gb2Zmc2V0OwotICAgIG5ld09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1
c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIG5ld09mZnNl
dC54KCksIHZlbG9jaXR5LndpZHRoKCksIG9yaWdpbmFsWE9mZnNldCkpOwotICAgIG5ld09mZnNl
dC5zZXRZKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxF
dmVudEF4aXM6OlZlcnRpY2FsLCBuZXdPZmZzZXQueSgpLCB2ZWxvY2l0eS5oZWlnaHQoKSwgb3Jp
Z2luYWxZT2Zmc2V0KSk7Ci0gICAgcmV0dXJuIG5ld09mZnNldDsKKyAgICByZXR1cm4gbV9zY3Jv
bGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKGF4aXMsIG5ld09mZnNldCwgdmVs
b2NpdHksIG9yaWdpbmFsT2Zmc2V0KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG1ldGhvZCk7
Ci0gICAgcmV0dXJuIG9mZnNldDsKKyAgICBVTlVTRURfUEFSQU0oYXhpcyk7CisgICAgcmV0dXJu
IG5ld09mZnNldDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuaAppbmRleCBlNDllN2ZmMzYxODNlOGMyYWU3NjNiMTJhNTkwNDgyZDI2NzJiYTIxLi4w
ODZhMGUzOTM1YWIzMWM3N2Y2NDBjMWI1YTdhNzExNjE0ZjljNWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTE0Miw2ICsxNDIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9u
aXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25p
dG9yOyB9CiAKICAgICBGbG9hdFBvaW50IGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZO
ZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25N
ZXRob2QpOworICAgIGZsb2F0IGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQo
U2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBuZXdPZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlv
bk1ldGhvZCk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gY3Jl
YXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA2MWY3ZWE1MjA1ZjA5MjdhNmM3ODk0ZTIyNjQ2
OGE5MGQ3Y2M2ZmJmLi43OWY5ZTk4MDk4YThkZGNhMmI0OWNlOTc3ZDIxNDNlMWNiNmNhZjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC01NTcsMTAg
KzU1NywzMSBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKQog
ICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb3JyZWN0ZWRQb3NpdGlv
bik7CiAgICAgfQogfQorCit2b2lkIFNjcm9sbGFibGVBcmVhOjpkb1Bvc3RUaHVtYk1vdmVTbmFw
cGluZyhTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3sKKyAgICBpZiAoIXVzZXNT
Y3JvbGxTbmFwKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gY3VycmVudE9mZnNldCA9
IHNjcm9sbE9mZnNldCgpOworICAgIGF1dG8gbmV3T2Zmc2V0ID0gY3VycmVudE9mZnNldDsKKyAg
ICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKKyAgICAgICAgbmV3T2Zm
c2V0LnNldFgobV9zY3JvbGxBbmltYXRvci0+YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJ
Zk5lZWRlZChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGN1cnJlbnRPZmZzZXQueCgpLCBT
Y3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2Q6OkNsb3Nlc3QpKTsKKyAgICBlbHNlCisgICAg
ICAgIG5ld09mZnNldC5zZXRZKG1fc2Nyb2xsQW5pbWF0b3ItPmFkanVzdFNjcm9sbE9mZnNldEZv
clNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgY3VycmVudE9mZnNl
dC55KCksIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZDo6Q2xvc2VzdCkpOworICAgIGlm
IChuZXdPZmZzZXQgPT0gY3VycmVudE9mZnNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2Ny
b2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3T2Zmc2V0KTsKK30K
ICNlbHNlCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKQogewog
fQorCit2b2lkIFNjcm9sbGFibGVBcmVhOjpkb1Bvc3RUaHVtYk1vdmVTbmFwcGluZyhTY3JvbGxi
YXJPcmllbnRhdGlvbikKK3sKK30KICNlbmRpZgogCiBib29sIFNjcm9sbGFibGVBcmVhOjppc1Bp
bm5lZEZvclNjcm9sbERlbHRhT25BeGlzKGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4
aXMgYXhpcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmlu
ZGV4IDFlOWEyZDM3OTdlZGY2MGRlYmI0NTQwNjYzNjNhOTQ5NzE4NjNkZDUuLjdlYjdiNTQwMjgy
ODQwYWI3YjVmMzFmZGZhNmIyYmZkNThlYjE5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKTsKKyAgICB2b2lkIGRvUG9zdFRodW1iTW92
ZVNuYXBwaW5nKFNjcm9sbGJhck9yaWVudGF0aW9uKTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCiAgICAgdmlydHVhbCBib29sIGhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3Vj
aEV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAppbmRleCBhNmI1ODA3
Mzg5OTQ2MjZjOTc1YTZjNzI5MGIwMzQxZjFmYmVjNTk0Li45NjY1NzcwN2RjZWY4MGVkYjEyZjk3
MGRiY2FlZWVmMWU1NDg3MzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAK
QEAgLTM1Niw2ICszNTYsNyBAQCBib29sIFNjcm9sbGJhcjo6bW91c2VFeGl0ZWQoKQogCiBib29s
IFNjcm9sbGJhcjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQp
CiB7CisgICAgYXV0byBwcmV2aW91c2x5UHJlc3NlZFBhcnQgPSBtX3ByZXNzZWRQYXJ0OwogICAg
IHNldFByZXNzZWRQYXJ0KE5vUGFydCk7CiAgICAgbV9wcmVzc2VkUG9zID0gMDsKICAgICBtX2Ry
YWdnaW5nRG9jdW1lbnQgPSBmYWxzZTsKQEAgLTM2OSw2ICszNzAsOSBAQCBib29sIFNjcm9sbGJh
cjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiAgICAgaWYg
KHBhcnQgPT0gTm9QYXJ0KQogICAgICAgICBtX3Njcm9sbGFibGVBcmVhLm1vdXNlRXhpdGVkU2Ny
b2xsYmFyKHRoaXMpOwogCisgICAgaWYgKHByZXZpb3VzbHlQcmVzc2VkUGFydCA9PSBUaHVtYlBh
cnQpCisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuZG9Qb3N0VGh1bWJNb3ZlU25hcHBpbmcobV9v
cmllbnRhdGlvbik7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNiY2YyMmFjYTll
ZGYyMTJmNTdhNTZkZTgwOWM4ZjMwYjU5NjVlYWMuLjE0OWViZjY2MDVhMDkxZWFlM2RmMDExMjkw
MmVkZjc2YmVhMTBlMjAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMiBAQAorMjAyMS0wMi0yMiAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2Nyb2xsIHNuYXBw
aW5nIGRvZXNuJ3Qga2ljayBpbiB3aGVuIGRyYWdnaW5nIHNjcm9sbGJhcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3Jv
bGwgc25hcCBhZnRlciBkcmFnZ2luZyBzY3JvbGxiYXIgdGh1bWIKKworICAgICAgICBUaGlzIGNo
YW5nZSBhZGRzIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFwIHdoZW4gdGhlIHNjcm9sbGJhciB0aHVt
YiBpcworICAgICAgICByZWxlYXNlZCBmcm9tIGEgZHJhZyBvcGVyYXRpb24uIFRoaXMgYW5pbWF0
aW9uIGlzIGN1cnJlbnRseSBkb25lIHdpdGgKKyAgICAgICAgdGhlIG5vbi1uYXRpdmUgc2Nyb2xs
IGFuaW1hdG9yIGZvciBhbGwgcGxhdGZvcm1zLCBzaW5jZSB0aGF0IGlzIGFsc28KKyAgICAgICAg
d2hhdCBpcyB1c2VkIGZvciBzbW9vdGggc2Nyb2xsaW5nLgorCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkanVzdHMgdGhlIG5vbi1uYXRpdmUgc2Nyb2xsIGFuaW1hdG9yJ3Mgc21vb3RobmVzcyBmYWN0
b3IsCisgICAgICAgIGJlY2F1c2UgaXQgaXMgdG9vIHNsb3cgZm9yIHNob3J0IHNjcm9sbCBzbmFw
cy4gSSBoYXZlIHZlcmlmaWVkIHRoYXQgdGhlCisgICAgICAgIG5ldyBzbW9vdGhuZXNzIGZhY3Rv
ciBpcyBhbHNvIGEgZ29vZCBzZWxlY3Rpb24gZm9yIHNtb290aCBzY3JvbGxpbmcKKyAgICAgICAg
b3BlcmF0aW9ucyAoc3RpbGwgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUpLiBBIGZ1cnRoZXIgY2hh
bmdlIHNob3VsZCB1c2UKKyAgICAgICAgIm5hdGl2ZSIgYW5pbWF0aW9ucyB3aGVuIHBvc3NpYmxl
IGZvciBib3RoIHNtb290aCBzY3JvbGxpbmcgYW5kIHNjcm9sbAorICAgICAgICBzbmFwIGFmdGVy
IHRodW1iIGRyYWdzLiBUaGlzIGlzIHRyYWNrZWQgYnkgdGhlIGZvbGxvd2luZyBidWc6CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKworICAg
ICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRl
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mz
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNj
cm9sbGJhci10aHVtYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3MvVGVzdEV4
cGVjdGF0aW9uczogU2tpcCB0aGUgbmV3IHRlc3Qgb24gaU9TIHdoaWNoIGRvZXMgbm90CisgICAg
ICAgIHN1cHBvcnQgc2Nyb2xsaW5nIGJ5IGRyYWdnaW5nIHRoZSBzY3JvbGxiYXIuCisKIDIwMjEt
MDItMjQgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2FsaWEuY29tPgogCiAgICAgICAgIE51bGxw
dHIgY3Jhc2ggaW4gQ29tcG9zaXRlRWRpdENvbW1hbmQ6OnNwbGl0VHJlZVRvTm9kZSB2aWEgSW5z
ZXJ0UGFyYWdyYXBoU2VwYXJhdG9yQ29tbWFuZDo6ZG9BcHBseQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVy
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAt
Y2xpY2stc2Nyb2xsYmFyLWd1dHRlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzAyZjhiYWQ5
MjM1MWU3Y2RlYWQ5MzI5ODlmYmRlOGRiMTJjYjY0YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRl
ci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitQQVNTIGNsaWNraW5nIHRoZSBob3Jpem9u
dGFsIHNjcm9sbGJhciBndXR0ZXIgc25hcHBlZAorUEFTUyBkcmFnZ2luZyB0aGUgdmVydGljYWwg
c2Nyb2xsYmFyIHRodW1iIHNuYXBwZWQKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRtbCBiL0xheW91dFRlc3Rz
L2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjdiMzUyNmNjNGRkMDdkNTFjOWVjOTNkYzg5ZDQ5MDJiZjBiZDQ2MzIKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFw
LWNsaWNrLXNjcm9sbGJhci1ndXR0ZXIuaHRtbApAQCAtMCwwICsxLDEwMiBAQAorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAgPHRpdGxlPkNsaWNraW5nIGluIHRo
ZSBzY3JvbGxiYXIgZ3V0dGVyIHNob3VsZCB0cmlnZ2VyIHNjcm9sbCBzbmFwcGluZzwvdGl0bGU+
CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+CisgICAgICAgICAgICAvKiBVc2UgY3Vz
dG9taXplZCBzY3JvbGxiYXIgdG8gYXZvaWQgcGxhdGZvcm0gZGlmZmVyZW5jZXMuICovCisgICAg
ICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjBw
eDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7CisgICAgICAgICAgICB9CisgICAgICAg
ICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7CisgICAgICAgICAgICAgICAgaGVpZ2h0
OiAwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDBweDsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZSAgeworICAgICAgICAgICAg
ICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjBw
eDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjBweDsKKyAgICAgICAgICAgICAgICBiYWNrZ3Jv
dW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9keSB7Cisg
ICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IC5jb250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAgICAg
ICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOworICAg
ICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5OworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICAuYmxvY2sgeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAw
MHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgICAgICAgICAgICBzY3Jv
bGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ob3Jp
em9udGFsLWRyYXdlciB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAxMDAlOworICAgICAgICAg
ICAgICAgIHdpZHRoOiAyMDAwcHg7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIC5ob3Jp
em9udGFsLWRyYXdlciAuYmxvY2sgeworICAgICAgICAgICAgICAgIHdpZHRoOiAxMDAwcHg7Cisg
ICAgICAgICAgICAgICAgaGVpZ2h0OiAyNTBweDsKKyAgICAgICAgICAgIH0KKyAgICAgICAgPC9z
dHlsZT4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48
L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIu
anMiPjwvc2NyaXB0PgorICAgICAgICA8c2NyaXB0PgorICAgICAgICB3aW5kb3cuanNUZXN0SXNB
c3luYyA9IHRydWU7CisKKyAgICAgICAgYXN5bmMgZnVuY3Rpb24gb25Mb2FkKCkKKyAgICAgICAg
eworICAgICAgICAgICAgaWYgKHdpbmRvdy5ldmVudFNlbmRlciA9PSB1bmRlZmluZWQpIHsKKyAg
ICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmlubmVyVGV4
dCA9ICJDbGlja2luZyBpbiB0aGUgc2Nyb2xsYmFyIGd1dHRlciBzaG91bGQgdHJpZ2dlciBzY3Jv
bGwgc25hcHBpbmcuIjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9Cisg
ICAgICAgICAgICB0cnkgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRv
KDE3NSwgMTkwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAg
ICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAgICAgICBs
ZXQgaG9yaXpvbnRhbENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3Jpem9u
dGFsLWNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JU
YXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZShob3Jpem9udGFsQ29udGFpbmVyKTsKKyAgICAg
ICAgICAgICAgICBleHBlY3RUcnVlKGhvcml6b250YWxDb250YWluZXIuc2Nyb2xsTGVmdCA9PSAx
MDAwLCAiY2xpY2tpbmcgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIGd1dHRlciBzbmFwcGVkIik7
CisKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDM3MCk7Cisg
ICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAg
ZXZlbnRTZW5kZXIubW91c2VVcCgpOworICAgICAgICAgICAgICAgIGxldCB2ZXJ0aWNhbENvbnRh
aW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ2ZXJ0aWNhbC1jb250YWluZXIiKTsKKyAg
ICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9u
VG9TZXR0bGUodmVydGljYWxDb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRydWUo
dmVydGljYWxDb250YWluZXIuc2Nyb2xsVG9wID09IDEwMDAsICJkcmFnZ2luZyB0aGUgdmVydGlj
YWwgc2Nyb2xsYmFyIHRodW1iIHNuYXBwZWQiKTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
KyAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7
CisgICAgICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAgPC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25M
b2FkKCk7Ij4KKyAgICAgICAgPGRpdiBpZD0iaG9yaXpvbnRhbC1jb250YWluZXIiIGNsYXNzPSJj
b250YWluZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iaG9yaXpvbnRhbC1kcmF3ZXIiPgor
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IGJh
Y2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2PgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJs
b2NrIiBzdHlsZT0id2lkdGg6IDQ1MHB4OyBmbG9hdDogbGVmdDsgYmFja2dyb3VuZDogI0NDNUE3
MSI+PC9kaXY+CisgICAgICAgICAgICA8L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxk
aXYgaWQ9InZlcnRpY2FsLWNvbnRhaW5lciIgY2xhc3M9ImNvbnRhaW5lciI+CisgICAgICAgICAg
ICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2Pgor
ICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJoZWlnaHQ6IDQ1MHB4OyBiYWNr
Z3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgPC9kaXY+CisgICAgICAgIDxwIGlkPSJj
b25zb2xlIj48L3A+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwv
Ym9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAv
c2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNjcm9sbGJhci10aHVtYi1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uMGUwYWFjYTkzMmRjYWEyMjMyZDU1YjEwOGMwYzA3ZWZiYzI0
ZTkyYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Ny
b2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBA
QAorUEFTUyBkcmFnZ2luZyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgdGh1bWIgc25hcHBlZAor
UEFTUyBkcmFnZ2luZyB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1iIHNuYXBwZWQKK1BBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFy
LXRodW1iLmh0bWwgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRy
YWctc2Nyb2xsYmFyLXRodW1iLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTZiYWJjODdlMTQzMzQwYzU5Yjhm
YTNhYjA1ZjQyYTdmMjM1OWFkNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2NzczMv
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRtbApAQCAtMCww
ICsxLDEwMCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKyAgICA8aGVhZD4KKyAgICAgICAg
PHRpdGxlPkRyYWdnaW5nIHRoZSBzY3JvbGxiYXIgdGh1bWIgc2hvdWxkIHRyaWdnZXIgc2Nyb2xs
IHNuYXBwaW5nPC90aXRsZT4KKyAgICAgICAgPHN0eWxlIHR5cGU9InRleHQvY3NzIj4KKyAgICAg
ICAgICAgIC8qIFVzZSBjdXN0b21pemVkIHNjcm9sbGJhciB0byBhdm9pZCBwbGF0Zm9ybSBkaWZm
ZXJlbmNlcy4gKi8KKyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXIgeworICAgICAgICAg
ICAgICAgIHdpZHRoOiAyMHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMjBweDsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItYnV0dG9uIHsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDIwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7Cisg
ICAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIH0KKwor
ICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci10cmFjay1waWVjZSAgeworICAgICAgICAg
ICAgICAgIGJhY2tncm91bmQtY29sb3I6IGdyYXk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdGh1bWIgeworICAgICAgICAgICAgICAgIGhlaWdodDog
MjBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjBweDsKKyAgICAgICAgICAgICAgICBiYWNr
Z3JvdW5kLWNvbG9yOiBibGFjazsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgYm9keSB7
CisgICAgICAgICAgICAgICAgbWFyZ2luOiAwcHg7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIC5jb250YWluZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMjAwcHg7CisgICAgICAg
ICAgICAgICAgd2lkdGg6IDIwMHB4OworICAgICAgICAgICAgICAgIG92ZXJmbG93OiBhdXRvOwor
ICAgICAgICAgICAgICAgIHNjcm9sbC1zbmFwLXR5cGU6IGJvdGggbWFuZGF0b3J5OworICAgICAg
ICAgICAgfQorCisgICAgICAgICAgICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAgICAgICAgICAg
ICAgIGhlaWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogNTAwcHg7CisgICAgICAg
ICAgICB9CisKKyAgICAgICAgICAgIC5ibG9jayB7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAx
MDAlOworICAgICAgICAgICAgICAgIHdpZHRoOiAyNTBweDsKKyAgICAgICAgICAgICAgICBzY3Jv
bGwtc25hcC1hbGlnbjogc3RhcnQ7CisgICAgICAgICAgICB9CisgICAgICAgIDwvc3R5bGU+Cisg
ICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Nj
cmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0
cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisgICAgICAgIHsKKyAgICAg
ICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVkKSB7CisgICAgICAgICAg
ICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5pbm5lclRleHQgPSAiRHJh
Z2dpbmcgdGhlIHNjcm9sbGJhciB0aHVtYiBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmcu
IjsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CisgICAgICAgICAgICB0
cnkgeworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDIwLCAxOTApOwor
ICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKDgwLCAxOTApOworICAgICAgICAgICAgICAgIGV2ZW50
U2VuZGVyLm1vdXNlVXAoKTsKKworICAgICAgICAgICAgICAgIGxldCBob3Jpem9udGFsQ29udGFp
bmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImhvcml6b250YWwtY29udGFpbmVyIik7Cisg
ICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlv
blRvU2V0dGxlKGhvcml6b250YWxDb250YWluZXIpOworICAgICAgICAgICAgICAgIGV4cGVjdFRy
dWUoaG9yaXpvbnRhbENvbnRhaW5lci5zY3JvbGxMZWZ0ID09IDI1MCwgImRyYWdnaW5nIHRoZSBo
b3Jpem9udGFsIHNjcm9sbGJhciB0aHVtYiBzbmFwcGVkIik7CisKKyAgICAgICAgICAgICAgICBl
dmVudFNlbmRlci5tb3VzZU1vdmVUbygxOTAsIDIyMCk7CisgICAgICAgICAgICAgICAgZXZlbnRT
ZW5kZXIubW91c2VEb3duKCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3Zl
VG8oMTkwLCAyNzApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAg
ICAgICAgICAgICAgICBsZXQgdmVydGljYWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidmVydGljYWwtY29udGFpbmVyIik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxw
ZXIud2FpdEZvclRhcmdldFNjcm9sbEFuaW1hdGlvblRvU2V0dGxlKHZlcnRpY2FsQ29udGFpbmVy
KTsKKyAgICAgICAgICAgICAgICBleHBlY3RUcnVlKHZlcnRpY2FsQ29udGFpbmVyLnNjcm9sbFRv
cCA9PSAxODAsICJkcmFnZ2luZyB0aGUgdmVydGljYWwgc2Nyb2xsYmFyIHRodW1iIHNuYXBwZWQi
KTsKKyAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgICAgICAgICBjb25zb2xlLmxv
ZyhlKTsKKyAgICAgICAgICAgIH0gZmluYWxseSB7CisgICAgICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KKyAgICAgICAgPC9zY3JpcHQ+CisgICAg
PC9oZWFkPgorICAgIDxib2R5IG9ubG9hZD0ib25Mb2FkKCk7Ij4KKyAgICAgICAgPGRpdiBpZD0i
aG9yaXpvbnRhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPgorICAgICAgICAgICAgPGRp
diBjbGFzcz0iaG9yaXpvbnRhbC1kcmF3ZXIiPgorICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9
ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQ6ICM4MDQ3NUUiPjwvZGl2Pgor
ICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iZmxvYXQ6IGxlZnQ7IGJh
Y2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwv
ZGl2PgorICAgICAgICA8ZGl2IGlkPSJ2ZXJ0aWNhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWlu
ZXIiPgorICAgICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAj
ODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iYmFj
a2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8cCBpZD0i
Y29uc29sZSI+PC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICA8L3NjcmlwdD4KKyAgICA8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVz
dEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGI3NzVkMzI2MjA1ODNlZDNmZjA2NDIzMzZiNTY3Yzk1ZTUyOTU0MjMuLmNjM2QxYjJm
NTEwOTc4Y2VmZTUyODllMzQ4MTllYzIxMzAxZDdmMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzQ5LDYgKzIzNDksNyBAQCBmYXN0L2RvbS9XaW5k
b3cvY2hpbGQtd2luZG93LWZvY3VzLmh0bWwKIAogIyBpT1MgZG9lcyBub3QgYWxsb3cgeW91IHRv
IHNjcm9sbCBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsYmFyIHRodW1iLgogd2Via2l0Lm9yZy9iLzE1
NzIwMSBmYXN0L3Njcm9sbGluZy9ydGwtZHJhZy12ZXJ0aWNhbC1zY3JvbGxlci5odG1sIFsgRmFp
bHVyZSBdCit3ZWJraXQub3JnL2IvMTU3MjAxIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAt
ZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRtbCBbIEZhaWx1cmUgXQogCiAjIER1bXBSZW5kZXJUcmVl
IGRvZXNuJ3Qgc3VwcG9ydCBsb2dnaW5nIGNhbGxzIHRvIHJ1bk9wZW5QYW5lbCBhbmQgaU9TJ3Mg
V2ViS2l0VGVzdFJ1bm5lciBkb2Vzbid0IHN1cHBvcnQgZXZlbnRTZW5kZXIubW91c2VEb3duLgog
ZmFzdC9mb3Jtcy9maWxlL29wZW4tZmlsZS1wYW5lbC5odG1sIFsgU2tpcCBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>421809</attachid>
            <date>2021-03-01 04:21:12 -0800</date>
            <delta_ts>2021-03-01 13:32:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-146696-20210301132111.patch</filename>
            <type>text/plain</type>
            <size>22180</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjczMzc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDJhOTA2YzBhYTI0OGU5
N2MxZGI1MzQxYWE0MDVjYmZjMmQyNTdiMC4uMjk1ODY0ODQxYTNmNDAzNGY0YjdjZWRhMzNjZjY4
MmJjZTY3ODY0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDIxLTAyLTIyICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KKworICAgICAgICBTY3JvbGwgc25h
cHBpbmcgZG9lc24ndCBraWNrIGluIHdoZW4gZHJhZ2dpbmcgc2Nyb2xsYmFycworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ2Njk2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgYWRkcyBz
dXBwb3J0IGZvciBzY3JvbGwgc25hcCB3aGVuIHRoZSBzY3JvbGxiYXIgdGh1bWIgaXMKKyAgICAg
ICAgcmVsZWFzZWQgZnJvbSBhIGRyYWcgb3BlcmF0aW9uLiBUaGlzIGFuaW1hdGlvbiBpcyBjdXJy
ZW50bHkgZG9uZSB3aXRoCisgICAgICAgIHRoZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvciBm
b3IgYWxsIHBsYXRmb3Jtcywgc2luY2UgdGhhdCBpcyBhbHNvCisgICAgICAgIHdoYXQgaXMgdXNl
ZCBmb3Igc21vb3RoIHNjcm9sbGluZy4KKworICAgICAgICBUaGlzIGNoYW5nZSBhZGp1c3RzIHRo
ZSBub24tbmF0aXZlIHNjcm9sbCBhbmltYXRvcidzIHNtb290aG5lc3MgZmFjdG9yLAorICAgICAg
ICBiZWNhdXNlIGl0IGlzIHRvbyBzbG93IGZvciBzaG9ydCBzY3JvbGwgc25hcHMuIEkgaGF2ZSB2
ZXJpZmllZCB0aGF0IHRoZQorICAgICAgICBuZXcgc21vb3RobmVzcyBmYWN0b3IgaXMgYWxzbyBh
IGdvb2Qgc2VsZWN0aW9uIGZvciBzbW9vdGggc2Nyb2xsaW5nCisgICAgICAgIG9wZXJhdGlvbnMg
KHN0aWxsIGFuIGV4cGVyaW1lbnRhbCBmZWF0dXJlKS4gQSBmdXJ0aGVyIGNoYW5nZSBzaG91bGQg
dXNlCisgICAgICAgICJuYXRpdmUiIGFuaW1hdGlvbnMgd2hlbiBwb3NzaWJsZSBmb3IgYm90aCBz
bW9vdGggc2Nyb2xsaW5nIGFuZCBzY3JvbGwKKyAgICAgICAgc25hcCBhZnRlciB0aHVtYiBkcmFn
cy4gVGhpcyBpcyB0cmFja2VkIGJ5IHRoZSBmb2xsb3dpbmcgYnVnOgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE4ODU3CisKKyAgICAgICAgVGVzdHM6
IGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1s
CisgICAgICAgICAgICAgICBjc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xs
YmFyLXRodW1iLmh0bWwKKworICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290
aC5jcHA6IE1vZGlmeSBzbW9vdGhGYWN0b3JGb3JQcm9ncmFtbWF0aWNTY3JvbGwgdG8KKyAgICAg
ICAgYSB2YWx1ZSB0aGF0IGlzIGdvb2QgZm9yIGJvdGggc2Nyb2xsIHNuYXBwaW5nIGFuZCBzbW9v
dGggc2Nyb2xsaW5nLgorICAgICAgICAqIHBsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcDogVGhl
IHRpY2sgbWV0aG9kIGZvciB0aGUgbm9uLW5hdGl2ZSBzY3JvbGwgYW5pbWF0aW9uCisgICAgICAg
IHNob3VsZCBjb250aW51YWxseSB1cGRhdGUgdGhlIGN1cnJlbnQgYWN0aXZlIHNuYXAgcG9pbnQu
CisgICAgICAgIChXZWJDb3JlOjpTY3JvbGxBbmltYXRvcjo6YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9y
U25hcHBpbmdJZk5lZWRlZCk6IFNwbGl0IHRoaXMgaW50bworICAgICAgICB0d28gbWV0aG9kcy4g
T25lIHRoYXQgaGFuZGxlcyBhIHNpbmdsZSBheGlzIGFuZCBvbmUgdGhhdCBoYW5kbGVzIGJvdGgu
CisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuaDogVXBkYXRlIG1ldGhvZCBkZWNs
YXJhdGlvbnMuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6U2Nyb2xsYWJsZUFyZWE6OmRvUG9zdFRodW1iRHJhZ1NuYXBwaW5nKTogQWRk
ZWQgdGhpcyBtZXRob2Qgd2hpY2ggZG9lcworICAgICAgICBheGlhbCBzbmFwcGluZyBhZnRlciBh
IHNjcm9sbGJhciB0aHVtIGRyYWcuCisgICAgICAgICogcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEu
aDoKKyAgICAgICAgKiBwbGF0Zm9ybS9TY3JvbGxiYXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
U2Nyb2xsYmFyOjptb3VzZVVwKTogVXNlIHRoZSBuZXcgZG9Qb3N0VGh1bWJEcmFnU25hcHBpbmcg
bWV0aG9kLgorCiAyMDIxLTAyLTI0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4K
IAogICAgICAgICBOdWxscHRyIGNyYXNoIGluIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpzcGxpdFRy
ZWVUb05vZGUgdmlhIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmRvQXBwbHkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRpb25TbW9vdGguY3BwCmlu
ZGV4IDI3ZTA4MzQzMzA4MTNkOThhNmVkNWFiNmY3M2M4YjBkOTE5NjQxMDIuLmNlZjg2ODg5NWJk
ZTNlODI4MjNmNTBlMWUxM2M3YzA0OTc2NTBiYzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdGlvblNtb290aC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vU2Nyb2xsQW5pbWF0aW9uU21vb3RoLmNwcApAQCAtNDAsNyArNDAsNyBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiBzdGF0aWMgY29uc3QgZG91YmxlIGZyYW1lUmF0ZSA9IDYwOwogc3Rh
dGljIGNvbnN0IFNlY29uZHMgdGlja1RpbWUgPSAxX3MgLyBmcmFtZVJhdGU7CiBzdGF0aWMgY29u
c3QgU2Vjb25kcyBtaW5pbXVtVGltZXJJbnRlcnZhbCB7IDFfbXMgfTsKLXN0YXRpYyBjb25zdCBk
b3VibGUgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsID0gNTsKK3N0YXRpYyBjb25z
dCBkb3VibGUgc21vb3RoRmFjdG9yRm9yUHJvZ3JhbW1hdGljU2Nyb2xsID0gMTsKIAogU2Nyb2xs
QW5pbWF0aW9uU21vb3RoOjpQZXJBeGlzRGF0YTo6UGVyQXhpc0RhdGEoU2Nyb2xsYmFyT3JpZW50
YXRpb24gb3JpZW50YXRpb24sIGNvbnN0IEZsb2F0UG9pbnQmIHBvc2l0aW9uLCBTY3JvbGxFeHRl
bnRzQ2FsbGJhY2smIGV4dGVudHNDYWxsYmFjaykKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L1Njcm9sbEFuaW1hdG9yLmNwcAppbmRleCA1NTQyNGU5YjJlODFkMmM3ODYwZTY2ODhhMTlhNjcw
M2UzYTBkY2U4Li5kM2Y0YWY3MTQ4YmIyMGZjZTllNjM3N2YzMjRmMmRhZWZkOTkzNzE0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5pbWF0b3IuY3BwCkBAIC02Niw2ICs2Niw3
IEBAIFNjcm9sbEFuaW1hdG9yOjpTY3JvbGxBbmltYXRvcihTY3JvbGxhYmxlQXJlYSYgc2Nyb2xs
YWJsZUFyZWEpCiAgICAgICAgICAgICBGbG9hdFNpemUgZGVsdGEgPSBwb3NpdGlvbiAtIG1fY3Vy
cmVudFBvc2l0aW9uOwogICAgICAgICAgICAgbV9jdXJyZW50UG9zaXRpb24gPSBXVEZNb3ZlKHBv
c2l0aW9uKTsKICAgICAgICAgICAgIG5vdGlmeVBvc2l0aW9uQ2hhbmdlZChkZWx0YSk7CisgICAg
ICAgICAgICB1cGRhdGVBY3RpdmVTY3JvbGxTbmFwSW5kZXhGb3JPZmZzZXQoKTsKICAgICAgICAg
fSwKICAgICAgICAgW3RoaXNdIHsKICAgICAgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuc2V0U2Ny
b2xsQmVoYXZpb3JTdGF0dXMoU2Nyb2xsQmVoYXZpb3JTdGF0dXM6Ok5vdEluQW5pbWF0aW9uKTsK
QEAgLTM2MiwyMyArMzYzLDM2IEBAIEZsb2F0UG9pbnQgU2Nyb2xsQW5pbWF0b3I6OmFkanVzdFNj
cm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQoY29uc3QgRmxvYXRQb2luCiAgICAgaWYgKCFt
X3Njcm9sbENvbnRyb2xsZXIudXNlc1Njcm9sbFNuYXAoKSkKICAgICAgICAgcmV0dXJuIG9mZnNl
dDsKIAotICAgIE9wdGlvbmFsPGZsb2F0PiBvcmlnaW5hbFhPZmZzZXQsIG9yaWdpbmFsWU9mZnNl
dDsKLSAgICBGbG9hdFNpemUgdmVsb2NpdHk7CisgICAgRmxvYXRQb2ludCBuZXdPZmZzZXQgPSBv
ZmZzZXQ7CisgICAgbmV3T2Zmc2V0LnNldFgoYWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJ
Zk5lZWRlZChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIG5ld09mZnNldC54KCksIG1ldGhv
ZCkpOworICAgIG5ld09mZnNldC5zZXRZKGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZO
ZWVkZWQoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgbmV3T2Zmc2V0LnkoKSwgbWV0aG9kKSk7
CisgICAgcmV0dXJuIG5ld09mZnNldDsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKG1ldGhvZCk7
CisgICAgcmV0dXJuIG9mZnNldDsKKyNlbmRpZgorfQorCitmbG9hdCBTY3JvbGxBbmltYXRvcjo6
YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJZk5lZWRlZChTY3JvbGxFdmVudEF4aXMgYXhp
cywgZmxvYXQgbmV3T2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2QgbWV0aG9k
KQoreworI2lmIEVOQUJMRShDU1NfU0NST0xMX1NOQVApCisgICAgaWYgKCFtX3Njcm9sbENvbnRy
b2xsZXIudXNlc1Njcm9sbFNuYXAoKSkKKyAgICAgICAgcmV0dXJuIG5ld09mZnNldDsKKworICAg
IE9wdGlvbmFsPGZsb2F0PiBvcmlnaW5hbE9mZnNldDsKKyAgICBmbG9hdCB2ZWxvY2l0eSA9IDAu
OwogICAgIGlmIChtZXRob2QgPT0gU2Nyb2xsU25hcFBvaW50U2VsZWN0aW9uTWV0aG9kOjpEaXJl
Y3Rpb25hbCkgewogICAgICAgICBGbG9hdFNpemUgc2Nyb2xsT3JpZ2luID0gdG9GbG9hdFNpemUo
bV9zY3JvbGxhYmxlQXJlYS5zY3JvbGxPcmlnaW4oKSk7CiAgICAgICAgIGF1dG8gY3VycmVudE9m
ZnNldCA9IFNjcm9sbGFibGVBcmVhOjpzY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24odGhpcy0+Y3Vy
cmVudFBvc2l0aW9uKCksIHNjcm9sbE9yaWdpbik7Ci0gICAgICAgIG9yaWdpbmFsWE9mZnNldCA9
IGN1cnJlbnRPZmZzZXQueCgpOwotICAgICAgICBvcmlnaW5hbFlPZmZzZXQgPSBjdXJyZW50T2Zm
c2V0LnkoKTsKLSAgICAgICAgdmVsb2NpdHkgPSB7IG9mZnNldC54KCkgLSBjdXJyZW50T2Zmc2V0
LngoKSwgb2Zmc2V0LnkoKSAtIGN1cnJlbnRPZmZzZXQueSgpIH07CisgICAgICAgIG9yaWdpbmFs
T2Zmc2V0ID0gYXhpcyA9PSBTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwgPyBjdXJyZW50T2Zm
c2V0LngoKSA6IGN1cnJlbnRPZmZzZXQueSgpOworICAgICAgICB2ZWxvY2l0eSA9IG5ld09mZnNl
dCAtIChheGlzID09IFNjcm9sbEV2ZW50QXhpczo6SG9yaXpvbnRhbCA/IGN1cnJlbnRPZmZzZXQu
eCgpIDogY3VycmVudE9mZnNldC55KCkpOwogICAgIH0KIAotICAgIEZsb2F0UG9pbnQgbmV3T2Zm
c2V0ID0gb2Zmc2V0OwotICAgIG5ld09mZnNldC5zZXRYKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1
c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIG5ld09mZnNl
dC54KCksIHZlbG9jaXR5LndpZHRoKCksIG9yaWdpbmFsWE9mZnNldCkpOwotICAgIG5ld09mZnNl
dC5zZXRZKG1fc2Nyb2xsQ29udHJvbGxlci5hZGp1c3RTY3JvbGxEZXN0aW5hdGlvbihTY3JvbGxF
dmVudEF4aXM6OlZlcnRpY2FsLCBuZXdPZmZzZXQueSgpLCB2ZWxvY2l0eS5oZWlnaHQoKSwgb3Jp
Z2luYWxZT2Zmc2V0KSk7Ci0gICAgcmV0dXJuIG5ld09mZnNldDsKKyAgICByZXR1cm4gbV9zY3Jv
bGxDb250cm9sbGVyLmFkanVzdFNjcm9sbERlc3RpbmF0aW9uKGF4aXMsIG5ld09mZnNldCwgdmVs
b2NpdHksIG9yaWdpbmFsT2Zmc2V0KTsKICNlbHNlCiAgICAgVU5VU0VEX1BBUkFNKG1ldGhvZCk7
Ci0gICAgcmV0dXJuIG9mZnNldDsKKyAgICBVTlVTRURfUEFSQU0oYXhpcyk7CisgICAgcmV0dXJu
IG5ld09mZnNldDsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9TY3JvbGxBbmltYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsQW5p
bWF0b3IuaAppbmRleCBlNDllN2ZmMzYxODNlOGMyYWU3NjNiMTJhNTkwNDgyZDI2NzJiYTIxLi4w
ODZhMGUzOTM1YWIzMWM3N2Y2NDBjMWI1YTdhNzExNjE0ZjljNWY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxBbmltYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbEFuaW1hdG9yLmgKQEAgLTE0Miw2ICsxNDIsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCBzZXRXaGVlbEV2ZW50VGVzdE1vbml0b3IoUmVmUHRyPFdoZWVsRXZlbnRUZXN0TW9u
aXRvcj4mJiB0ZXN0TW9uaXRvcikgeyBtX3doZWVsRXZlbnRUZXN0TW9uaXRvciA9IHRlc3RNb25p
dG9yOyB9CiAKICAgICBGbG9hdFBvaW50IGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZO
ZWVkZWQoY29uc3QgRmxvYXRQb2ludCYgb2Zmc2V0LCBTY3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25N
ZXRob2QpOworICAgIGZsb2F0IGFkanVzdFNjcm9sbE9mZnNldEZvclNuYXBwaW5nSWZOZWVkZWQo
U2Nyb2xsRXZlbnRBeGlzLCBmbG9hdCBuZXdPZmZzZXQsIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlv
bk1ldGhvZCk7CiAKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKSB8fCBFTkFCTEUoUlVCQkVS
X0JBTkRJTkcpCiAgICAgc3RkOjp1bmlxdWVfcHRyPFNjcm9sbENvbnRyb2xsZXJUaW1lcj4gY3Jl
YXRlVGltZXIoRnVuY3Rpb248dm9pZCgpPiYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL1Njcm9sbGFibGVBcmVhLmNwcAppbmRleCA2MWY3ZWE1MjA1ZjA5MjdhNmM3ODk0ZTIyNjQ2
OGE5MGQ3Y2M2ZmJmLi43OWY5ZTk4MDk4YThkZGNhMmI0OWNlOTc3ZDIxNDNlMWNiNmNhZjg1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYWJsZUFyZWEuY3BwCkBAIC01NTcsMTAg
KzU1NywzMSBAQCB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKQog
ICAgICAgICBzY3JvbGxUb1Bvc2l0aW9uV2l0aG91dEFuaW1hdGlvbihjb3JyZWN0ZWRQb3NpdGlv
bik7CiAgICAgfQogfQorCit2b2lkIFNjcm9sbGFibGVBcmVhOjpkb1Bvc3RUaHVtYk1vdmVTbmFw
cGluZyhTY3JvbGxiYXJPcmllbnRhdGlvbiBvcmllbnRhdGlvbikKK3sKKyAgICBpZiAoIXVzZXNT
Y3JvbGxTbmFwKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGF1dG8gY3VycmVudE9mZnNldCA9
IHNjcm9sbE9mZnNldCgpOworICAgIGF1dG8gbmV3T2Zmc2V0ID0gY3VycmVudE9mZnNldDsKKyAg
ICBpZiAob3JpZW50YXRpb24gPT0gSG9yaXpvbnRhbFNjcm9sbGJhcikKKyAgICAgICAgbmV3T2Zm
c2V0LnNldFgobV9zY3JvbGxBbmltYXRvci0+YWRqdXN0U2Nyb2xsT2Zmc2V0Rm9yU25hcHBpbmdJ
Zk5lZWRlZChTY3JvbGxFdmVudEF4aXM6Okhvcml6b250YWwsIGN1cnJlbnRPZmZzZXQueCgpLCBT
Y3JvbGxTbmFwUG9pbnRTZWxlY3Rpb25NZXRob2Q6OkNsb3Nlc3QpKTsKKyAgICBlbHNlCisgICAg
ICAgIG5ld09mZnNldC5zZXRZKG1fc2Nyb2xsQW5pbWF0b3ItPmFkanVzdFNjcm9sbE9mZnNldEZv
clNuYXBwaW5nSWZOZWVkZWQoU2Nyb2xsRXZlbnRBeGlzOjpWZXJ0aWNhbCwgY3VycmVudE9mZnNl
dC55KCksIFNjcm9sbFNuYXBQb2ludFNlbGVjdGlvbk1ldGhvZDo6Q2xvc2VzdCkpOworICAgIGlm
IChuZXdPZmZzZXQgPT0gY3VycmVudE9mZnNldCkKKyAgICAgICAgcmV0dXJuOworCisgICAgc2Ny
b2xsQW5pbWF0b3IoKS5zY3JvbGxUb09mZnNldFdpdGhBbmltYXRpb24obmV3T2Zmc2V0KTsKK30K
ICNlbHNlCiB2b2lkIFNjcm9sbGFibGVBcmVhOjp1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKQogewog
fQorCit2b2lkIFNjcm9sbGFibGVBcmVhOjpkb1Bvc3RUaHVtYk1vdmVTbmFwcGluZyhTY3JvbGxi
YXJPcmllbnRhdGlvbikKK3sKK30KICNlbmRpZgogCiBib29sIFNjcm9sbGFibGVBcmVhOjppc1Bp
bm5lZEZvclNjcm9sbERlbHRhT25BeGlzKGZsb2F0IHNjcm9sbERlbHRhLCBTY3JvbGxFdmVudEF4
aXMgYXhpcykgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9s
bGFibGVBcmVhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxhYmxlQXJlYS5oCmlu
ZGV4IDFlOWEyZDM3OTdlZGY2MGRlYmI0NTQwNjYzNjNhOTQ5NzE4NjNkZDUuLjdlYjdiNTQwMjgy
ODQwYWI3YjVmMzFmZGZhNmIyYmZkNThlYjE5ZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL1Njcm9sbGFibGVBcmVhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
U2Nyb2xsYWJsZUFyZWEuaApAQCAtMTAzLDYgKzEwMyw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAg
ICAgdm9pZCB1cGRhdGVTY3JvbGxTbmFwU3RhdGUoKTsKKyAgICB2b2lkIGRvUG9zdFRodW1iTW92
ZVNuYXBwaW5nKFNjcm9sbGJhck9yaWVudGF0aW9uKTsKIAogI2lmIEVOQUJMRShUT1VDSF9FVkVO
VFMpCiAgICAgdmlydHVhbCBib29sIGhhbmRsZVRvdWNoRXZlbnQoY29uc3QgUGxhdGZvcm1Ub3Vj
aEV2ZW50Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9TY3JvbGxiYXIu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vU2Nyb2xsYmFyLmNwcAppbmRleCBhNmI1ODA3
Mzg5OTQ2MjZjOTc1YTZjNzI5MGIwMzQxZjFmYmVjNTk0Li45NjY1NzcwN2RjZWY4MGVkYjEyZjk3
MGRiY2FlZWVmMWU1NDg3MzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9T
Y3JvbGxiYXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL1Njcm9sbGJhci5jcHAK
QEAgLTM1Niw2ICszNTYsNyBAQCBib29sIFNjcm9sbGJhcjo6bW91c2VFeGl0ZWQoKQogCiBib29s
IFNjcm9sbGJhcjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQp
CiB7CisgICAgYXV0byBwcmV2aW91c2x5UHJlc3NlZFBhcnQgPSBtX3ByZXNzZWRQYXJ0OwogICAg
IHNldFByZXNzZWRQYXJ0KE5vUGFydCk7CiAgICAgbV9wcmVzc2VkUG9zID0gMDsKICAgICBtX2Ry
YWdnaW5nRG9jdW1lbnQgPSBmYWxzZTsKQEAgLTM2OSw2ICszNzAsOSBAQCBib29sIFNjcm9sbGJh
cjo6bW91c2VVcChjb25zdCBQbGF0Zm9ybU1vdXNlRXZlbnQmIG1vdXNlRXZlbnQpCiAgICAgaWYg
KHBhcnQgPT0gTm9QYXJ0KQogICAgICAgICBtX3Njcm9sbGFibGVBcmVhLm1vdXNlRXhpdGVkU2Ny
b2xsYmFyKHRoaXMpOwogCisgICAgaWYgKHByZXZpb3VzbHlQcmVzc2VkUGFydCA9PSBUaHVtYlBh
cnQpCisgICAgICAgIG1fc2Nyb2xsYWJsZUFyZWEuZG9Qb3N0VGh1bWJNb3ZlU25hcHBpbmcobV9v
cmllbnRhdGlvbik7CisKICAgICByZXR1cm4gdHJ1ZTsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDNiY2YyMmFjYTll
ZGYyMTJmNTdhNTZkZTgwOWM4ZjMwYjU5NjVlYWMuLjBkMTE5NmEwODZkMzVlNDk1YzE0YTBkZTk4
MDk2NWIwMjkzMzc0MzEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0wMi0yMiAgTWFydGlu
IFJvYmluc29uICA8bXJvYmluc29uQHdlYmtpdC5vcmc+CisKKyAgICAgICAgU2Nyb2xsIHNuYXBw
aW5nIGRvZXNuJ3Qga2ljayBpbiB3aGVuIGRyYWdnaW5nIHNjcm9sbGJhcnMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0NjY5NgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBzY3Jv
bGwgc25hcCBhZnRlciBkcmFnZ2luZyBzY3JvbGxiYXIgdGh1bWIKKworICAgICAgICBUaGlzIGNo
YW5nZSBhZGRzIHN1cHBvcnQgZm9yIHNjcm9sbCBzbmFwIHdoZW4gdGhlIHNjcm9sbGJhciB0aHVt
YiBpcworICAgICAgICByZWxlYXNlZCBmcm9tIGEgZHJhZyBvcGVyYXRpb24uIFRoaXMgYW5pbWF0
aW9uIGlzIGN1cnJlbnRseSBkb25lIHdpdGgKKyAgICAgICAgdGhlIG5vbi1uYXRpdmUgc2Nyb2xs
IGFuaW1hdG9yIGZvciBhbGwgcGxhdGZvcm1zLCBzaW5jZSB0aGF0IGlzIGFsc28KKyAgICAgICAg
d2hhdCBpcyB1c2VkIGZvciBzbW9vdGggc2Nyb2xsaW5nLgorCisgICAgICAgIFRoaXMgY2hhbmdl
IGFkanVzdHMgdGhlIG5vbi1uYXRpdmUgc2Nyb2xsIGFuaW1hdG9yJ3Mgc21vb3RobmVzcyBmYWN0
b3IsCisgICAgICAgIGJlY2F1c2UgaXQgaXMgdG9vIHNsb3cgZm9yIHNob3J0IHNjcm9sbCBzbmFw
cy4gSSBoYXZlIHZlcmlmaWVkIHRoYXQgdGhlCisgICAgICAgIG5ldyBzbW9vdGhuZXNzIGZhY3Rv
ciBpcyBhbHNvIGEgZ29vZCBzZWxlY3Rpb24gZm9yIHNtb290aCBzY3JvbGxpbmcKKyAgICAgICAg
b3BlcmF0aW9ucyAoc3RpbGwgYW4gZXhwZXJpbWVudGFsIGZlYXR1cmUpLiBBIGZ1cnRoZXIgY2hh
bmdlIHNob3VsZCB1c2UKKyAgICAgICAgIm5hdGl2ZSIgYW5pbWF0aW9ucyB3aGVuIHBvc3NpYmxl
IGZvciBib3RoIHNtb290aCBzY3JvbGxpbmcgYW5kIHNjcm9sbAorICAgICAgICBzbmFwIGFmdGVy
IHRodW1iIGRyYWdzLiBUaGlzIGlzIHRyYWNrZWQgYnkgdGhlIGZvbGxvd2luZyBidWc6CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTg4NTcKKworICAg
ICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRl
ci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBjc3Mz
L3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLWV4cGVjdGVkLnR4
dDogQWRkZWQuCisgICAgICAgICogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNj
cm9sbGJhci10aHVtYi5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mtd2syL1Rl
c3RFeHBlY3RhdGlvbnM6IE1hcmsgbmV3IHRlc3QgYXMgZmFpbGluZyBvbiBpT1MKKyAgICAgICAg
d2hpY2ggaGFzIGlzc3VlcyB3aXRoIHNjcm9sbGJhcnMuCisgICAgICAgICogcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnM6IFNraXAgdGhlIG5ldyB0ZXN0IG9uIGlPUyB3aGljaCBkb2VzIG5v
dAorICAgICAgICBzdXBwb3J0IHNjcm9sbGluZyBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsYmFyLgor
CiAyMDIxLTAyLTI0ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBOdWxscHRyIGNyYXNoIGluIENvbXBvc2l0ZUVkaXRDb21tYW5kOjpzcGxpdFRyZWVUb05vZGUg
dmlhIEluc2VydFBhcmFncmFwaFNlcGFyYXRvckNvbW1hbmQ6OmRvQXBwbHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFy
LWd1dHRlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9s
bC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0ZXItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjcw
MmY4YmFkOTIzNTFlN2NkZWFkOTMyOTg5ZmJkZThkYjEyY2I2NGMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJh
ci1ndXR0ZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorUEFTUyBjbGlja2luZyB0aGUg
aG9yaXpvbnRhbCBzY3JvbGxiYXIgZ3V0dGVyIHNuYXBwZWQKK1BBU1MgZHJhZ2dpbmcgdGhlIHZl
cnRpY2FsIHNjcm9sbGJhciB0aHVtYiBzbmFwcGVkCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBp
cyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9z
Y3JvbGwtc25hcC9zY3JvbGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVyLmh0bWwgYi9MYXlv
dXRUZXN0cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWNsaWNrLXNjcm9sbGJhci1ndXR0
ZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi43YjM1MjZjYzRkZDA3ZDUxYzllYzkzZGM4OWQ0OTAyYmYwYmQ0
NjMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3Jv
bGwtc25hcC1jbGljay1zY3JvbGxiYXItZ3V0dGVyLmh0bWwKQEAgLTAsMCArMSwxMDIgQEAKKzwh
RE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+CisgICAgICAgIDx0aXRsZT5DbGlja2lu
ZyBpbiB0aGUgc2Nyb2xsYmFyIGd1dHRlciBzaG91bGQgdHJpZ2dlciBzY3JvbGwgc25hcHBpbmc8
L3RpdGxlPgorICAgICAgICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgorICAgICAgICAgICAgLyog
VXNlIGN1c3RvbWl6ZWQgc2Nyb2xsYmFyIHRvIGF2b2lkIHBsYXRmb3JtIGRpZmZlcmVuY2VzLiAq
LworICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhciB7CisgICAgICAgICAgICAgICAgd2lk
dGg6IDIwcHg7CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgfQor
ICAgICAgICAgICAgOjotd2Via2l0LXNjcm9sbGJhci1idXR0b24geworICAgICAgICAgICAgICAg
IGhlaWdodDogMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAwcHg7CisgICAgICAgICAgICB9
CisKKyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2UgIHsKKyAgICAg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDIwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7CisgICAgICAgICAgICAgICAg
YmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGJv
ZHkgeworICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4OworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4OworICAg
ICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzogYXV0
bzsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiBib3RoIG1hbmRhdG9yeTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICBoZWln
aHQ6IDEwMDBweDsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjUwcHg7CisgICAgICAgICAgICAg
ICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAuaG9yaXpvbnRhbC1kcmF3ZXIgeworICAgICAgICAgICAgICAgIGhlaWdodDogMTAwJTsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMjAwMHB4OworICAgICAgICAgICAgfQorCisgICAgICAgICAg
ICAuaG9yaXpvbnRhbC1kcmF3ZXIgLmJsb2NrIHsKKyAgICAgICAgICAgICAgICB3aWR0aDogMTAw
MHB4OworICAgICAgICAgICAgICAgIGhlaWdodDogMjUwcHg7CisgICAgICAgICAgICB9CisgICAg
ICAgIDwvc3R5bGU+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVz
dC5qcyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvdWkt
aGVscGVyLmpzIj48L3NjcmlwdD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgd2luZG93Lmpz
VGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgICAgIGFzeW5jIGZ1bmN0aW9uIG9uTG9hZCgpCisg
ICAgICAgIHsKKyAgICAgICAgICAgIGlmICh3aW5kb3cuZXZlbnRTZW5kZXIgPT0gdW5kZWZpbmVk
KSB7CisgICAgICAgICAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5p
bm5lclRleHQgPSAiQ2xpY2tpbmcgaW4gdGhlIHNjcm9sbGJhciBndXR0ZXIgc2hvdWxkIHRyaWdn
ZXIgc2Nyb2xsIHNuYXBwaW5nLiI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAg
ICAgfQorICAgICAgICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3Vz
ZU1vdmVUbygxNzUsIDE5MCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VEb3du
KCk7CisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworCisgICAgICAgICAg
ICAgICAgbGV0IGhvcml6b250YWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
aG9yaXpvbnRhbC1jb250YWluZXIiKTsKKyAgICAgICAgICAgICAgICBhd2FpdCBVSUhlbHBlci53
YWl0Rm9yVGFyZ2V0U2Nyb2xsQW5pbWF0aW9uVG9TZXR0bGUoaG9yaXpvbnRhbENvbnRhaW5lcik7
CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZShob3Jpem9udGFsQ29udGFpbmVyLnNjcm9sbExl
ZnQgPT0gMTAwMCwgImNsaWNraW5nIHRoZSBob3Jpem9udGFsIHNjcm9sbGJhciBndXR0ZXIgc25h
cHBlZCIpOworCisgICAgICAgICAgICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkwLCAz
NzApOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAg
ICAgICAgIGV2ZW50U2VuZGVyLm1vdXNlVXAoKTsKKyAgICAgICAgICAgICAgICBsZXQgdmVydGlj
YWxDb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidmVydGljYWwtY29udGFpbmVy
Iik7CisgICAgICAgICAgICAgICAgYXdhaXQgVUlIZWxwZXIud2FpdEZvclRhcmdldFNjcm9sbEFu
aW1hdGlvblRvU2V0dGxlKHZlcnRpY2FsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBleHBl
Y3RUcnVlKHZlcnRpY2FsQ29udGFpbmVyLnNjcm9sbFRvcCA9PSAxMDAwLCAiZHJhZ2dpbmcgdGhl
IHZlcnRpY2FsIHNjcm9sbGJhciB0aHVtYiBzbmFwcGVkIik7CisgICAgICAgICAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgICAgICAgICAgY29uc29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZp
bmFsbHkgeworICAgICAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxv
YWQ9Im9uTG9hZCgpOyI+CisgICAgICAgIDxkaXYgaWQ9Imhvcml6b250YWwtY29udGFpbmVyIiBj
bGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZHJh
d2VyIj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyBiYWNrZ3JvdW5kOiAjODA0NzVFIj48L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNs
YXNzPSJibG9jayIgc3R5bGU9IndpZHRoOiA0NTBweDsgZmxvYXQ6IGxlZnQ7IGJhY2tncm91bmQ6
ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICAgICAgPC9kaXY+CisgICAgICAgIDwvZGl2PgorICAg
ICAgICA8ZGl2IGlkPSJ2ZXJ0aWNhbC1jb250YWluZXIiIGNsYXNzPSJjb250YWluZXIiPgorICAg
ICAgICAgICAgPGRpdiBjbGFzcz0iYmxvY2siIHN0eWxlPSJiYWNrZ3JvdW5kOiAjODA0NzVFIj48
L2Rpdj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iaGVpZ2h0OiA0NTBw
eDsgYmFja2dyb3VuZDogI0NDNUE3MSI+PC9kaXY+CisgICAgICAgIDwvZGl2PgorICAgICAgICA8
cCBpZD0iY29uc29sZSI+PC9wPgorICAgICAgICA8c2NyaXB0PgorICAgICAgICA8L3NjcmlwdD4K
KyAgICA8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9jc3MzL3Njcm9s
bC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2NzczMvc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1
bWItZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBlMGFhY2E5MzJkY2FhMjIzMmQ1NWIxMDhjMGMw
N2VmYmMyNGU5MmIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9jc3MzL3Njcm9sbC1z
bmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDYgQEAKK1BBU1MgZHJhZ2dpbmcgdGhlIGhvcml6b250YWwgc2Nyb2xsYmFyIHRodW1iIHNu
YXBwZWQKK1BBU1MgZHJhZ2dpbmcgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciB0aHVtYiBzbmFwcGVk
CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtc25hcC1kcmFnLXNj
cm9sbGJhci10aHVtYi5odG1sIGIvTGF5b3V0VGVzdHMvY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC1kcmFnLXNjcm9sbGJhci10aHVtYi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjE2YmFiYzg3ZTE0MzM0
MGM1OWI4ZmEzYWIwNWY0MmE3ZjIzNTlhZDQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9jc3MzL3Njcm9sbC1zbmFwL3Njcm9sbC1zbmFwLWRyYWctc2Nyb2xsYmFyLXRodW1iLmh0bWwK
QEAgLTAsMCArMSwxMDAgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+CisgICAgPGhlYWQ+Cisg
ICAgICAgIDx0aXRsZT5EcmFnZ2luZyB0aGUgc2Nyb2xsYmFyIHRodW1iIHNob3VsZCB0cmlnZ2Vy
IHNjcm9sbCBzbmFwcGluZzwvdGl0bGU+CisgICAgICAgIDxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+
CisgICAgICAgICAgICAvKiBVc2UgY3VzdG9taXplZCBzY3JvbGxiYXIgdG8gYXZvaWQgcGxhdGZv
cm0gZGlmZmVyZW5jZXMuICovCisgICAgICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyIHsKKyAg
ICAgICAgICAgICAgICB3aWR0aDogMjBweDsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwcHg7
CisgICAgICAgICAgICB9CisgICAgICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLWJ1dHRvbiB7
CisgICAgICAgICAgICAgICAgaGVpZ2h0OiAyMHB4OworICAgICAgICAgICAgICAgIHdpZHRoOiAy
MHB4OworICAgICAgICAgICAgICAgIGJhY2tncm91bmQtY29sb3I6IGJsdWU7CisgICAgICAgICAg
ICB9CisKKyAgICAgICAgICAgIDo6LXdlYmtpdC1zY3JvbGxiYXItdHJhY2stcGllY2UgIHsKKyAg
ICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBncmF5OworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICA6Oi13ZWJraXQtc2Nyb2xsYmFyLXRodW1iIHsKKyAgICAgICAgICAgICAgICBo
ZWlnaHQ6IDIwcHg7CisgICAgICAgICAgICAgICAgd2lkdGg6IDIwcHg7CisgICAgICAgICAgICAg
ICAgYmFja2dyb3VuZC1jb2xvcjogYmxhY2s7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGJvZHkgeworICAgICAgICAgICAgICAgIG1hcmdpbjogMHB4OworICAgICAgICAgICAgfQorCisg
ICAgICAgICAgICAuY29udGFpbmVyIHsKKyAgICAgICAgICAgICAgICBoZWlnaHQ6IDIwMHB4Owor
ICAgICAgICAgICAgICAgIHdpZHRoOiAyMDBweDsKKyAgICAgICAgICAgICAgICBvdmVyZmxvdzog
YXV0bzsKKyAgICAgICAgICAgICAgICBzY3JvbGwtc25hcC10eXBlOiBib3RoIG1hbmRhdG9yeTsK
KyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgLmhvcml6b250YWwtZHJhd2VyIHsKKyAgICAg
ICAgICAgICAgICBoZWlnaHQ6IDEwMCU7CisgICAgICAgICAgICAgICAgd2lkdGg6IDUwMHB4Owor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICAuYmxvY2sgeworICAgICAgICAgICAgICAgIGhl
aWdodDogMTAwJTsKKyAgICAgICAgICAgICAgICB3aWR0aDogMjUwcHg7CisgICAgICAgICAgICAg
ICAgc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0OworICAgICAgICAgICAgfQorICAgICAgICA8L3N0
eWxlPgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwv
c2NyaXB0PgorICAgICAgICA8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5q
cyI+PC9zY3JpcHQ+CisgICAgICAgIDxzY3JpcHQ+CisgICAgICAgIHdpbmRvdy5qc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKworICAgICAgICBhc3luYyBmdW5jdGlvbiBvbkxvYWQoKQorICAgICAgICB7
CisgICAgICAgICAgICBpZiAod2luZG93LmV2ZW50U2VuZGVyID09IHVuZGVmaW5lZCkgeworICAg
ICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuaW5uZXJUZXh0
ID0gIkRyYWdnaW5nIHRoZSBzY3JvbGxiYXIgdGh1bWIgc2hvdWxkIHRyaWdnZXIgc2Nyb2xsIHNu
YXBwaW5nLiI7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorICAgICAg
ICAgICAgdHJ5IHsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbygyMCwg
MTkwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICAgICAg
ICAgICAgICBldmVudFNlbmRlci5tb3VzZU1vdmVUbyg4MCwgMTkwKTsKKyAgICAgICAgICAgICAg
ICBldmVudFNlbmRlci5tb3VzZVVwKCk7CisKKyAgICAgICAgICAgICAgICBsZXQgaG9yaXpvbnRh
bENvbnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJob3Jpem9udGFsLWNvbnRhaW5l
ciIpOworICAgICAgICAgICAgICAgIGF3YWl0IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxB
bmltYXRpb25Ub1NldHRsZShob3Jpem9udGFsQ29udGFpbmVyKTsKKyAgICAgICAgICAgICAgICBl
eHBlY3RUcnVlKGhvcml6b250YWxDb250YWluZXIuc2Nyb2xsTGVmdCA9PSAyNTAsICJkcmFnZ2lu
ZyB0aGUgaG9yaXpvbnRhbCBzY3JvbGxiYXIgdGh1bWIgc25hcHBlZCIpOworCisgICAgICAgICAg
ICAgICAgZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oMTkwLCAyMjApOworICAgICAgICAgICAgICAg
IGV2ZW50U2VuZGVyLm1vdXNlRG93bigpOworICAgICAgICAgICAgICAgIGV2ZW50U2VuZGVyLm1v
dXNlTW92ZVRvKDE5MCwgMjcwKTsKKyAgICAgICAgICAgICAgICBldmVudFNlbmRlci5tb3VzZVVw
KCk7CisgICAgICAgICAgICAgICAgbGV0IHZlcnRpY2FsQ29udGFpbmVyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInZlcnRpY2FsLWNvbnRhaW5lciIpOworICAgICAgICAgICAgICAgIGF3YWl0
IFVJSGVscGVyLndhaXRGb3JUYXJnZXRTY3JvbGxBbmltYXRpb25Ub1NldHRsZSh2ZXJ0aWNhbENv
bnRhaW5lcik7CisgICAgICAgICAgICAgICAgZXhwZWN0VHJ1ZSh2ZXJ0aWNhbENvbnRhaW5lci5z
Y3JvbGxUb3AgPT0gMTgwLCAiZHJhZ2dpbmcgdGhlIHZlcnRpY2FsIHNjcm9sbGJhciB0aHVtYiBz
bmFwcGVkIik7CisgICAgICAgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAgICAgICAgICAgY29u
c29sZS5sb2coZSk7CisgICAgICAgICAgICB9IGZpbmFsbHkgeworICAgICAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgfQorICAgICAgICB9CisgICAgICAgIDwvc2NyaXB0
PgorICAgIDwvaGVhZD4KKyAgICA8Ym9keSBvbmxvYWQ9Im9uTG9hZCgpOyI+CisgICAgICAgIDxk
aXYgaWQ9Imhvcml6b250YWwtY29udGFpbmVyIiBjbGFzcz0iY29udGFpbmVyIj4KKyAgICAgICAg
ICAgIDxkaXYgY2xhc3M9Imhvcml6b250YWwtZHJhd2VyIj4KKyAgICAgICAgICAgICAgICA8ZGl2
IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBsZWZ0OyBiYWNrZ3JvdW5kOiAjODA0NzVFIj48
L2Rpdj4KKyAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5bGU9ImZsb2F0OiBs
ZWZ0OyBiYWNrZ3JvdW5kOiAjQ0M1QTcxIj48L2Rpdj4KKyAgICAgICAgICAgIDwvZGl2PgorICAg
ICAgICA8L2Rpdj4KKyAgICAgICAgPGRpdiBpZD0idmVydGljYWwtY29udGFpbmVyIiBjbGFzcz0i
Y29udGFpbmVyIj4KKyAgICAgICAgICAgIDxkaXYgY2xhc3M9ImJsb2NrIiBzdHlsZT0iYmFja2dy
b3VuZDogIzgwNDc1RSI+PC9kaXY+CisgICAgICAgICAgICA8ZGl2IGNsYXNzPSJibG9jayIgc3R5
bGU9ImJhY2tncm91bmQ6ICNDQzVBNzEiPjwvZGl2PgorICAgICAgICA8L2Rpdj4KKyAgICAgICAg
PHAgaWQ9ImNvbnNvbGUiPjwvcD4KKyAgICAgICAgPHNjcmlwdD4KKyAgICAgICAgPC9zY3JpcHQ+
CisgICAgPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zLXdrMi9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDVmNmRkMzc5MmVmMzVmZTA5NzU4YWYxYTExOTZhYzAzNTJl
YWUxNGEuLjViZWQyNWFjZDY5NDE2Mjk2YjE0ZDVlMTEzZjc4Y2IzZTAxMTQ3YjcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvVGVzdEV4cGVjdGF0aW9ucworKysgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTEzNiw2ICsx
MzYsNyBAQCBzY3JvbGxiYXJzL3Njcm9sbGluZy1ieS1wYWdlLW9uLWtleWJvYXJkLXNwYWNlYmFy
Lmh0bWwgWyBGYWlsdXJlIF0KIHNjcm9sbGJhcnMvc2Nyb2xsYmFycy1vbi1wb3NpdGlvbmVkLWNv
bnRlbnQuaHRtbCBbIEZhaWx1cmUgXQogY3NzMy9zY3JvbGwtc25hcC9zY3JvbGwtcGFkZGluZy1t
YWluZnJhbWUtcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KIGNzczMvc2Nyb2xsLXNuYXAvc2Nyb2xs
LXBhZGRpbmctb3ZlcmZsb3ctcGFnaW5nLmh0bWwgWyBGYWlsdXJlIF0KK2NzczMvc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtY2xpY2stc2Nyb2xsYmFyLWd1dHRlci5odG1sIFsgRmFpbHVyZSBdCiAK
ICMgU1ZHIHRlc3RzIHRoYXQgdGltZSBvdXQgKHRoZXNlIHJlcXVpcmUgRXZlbnRTZW5kZXIpCiBz
dmcvYW5pbWF0aW9ucy9hbmltVmFsLWJhc2ljcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lv
cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGI3NzVkMzI2MjA1ODNlZDNmZjA2NDIzMzZiNTY3Yzk1
ZTUyOTU0MjMuLmNjM2QxYjJmNTEwOTc4Y2VmZTUyODllMzQ4MTllYzIxMzAxZDdmMzAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMzQ5LDYgKzIzNDks
NyBAQCBmYXN0L2RvbS9XaW5kb3cvY2hpbGQtd2luZG93LWZvY3VzLmh0bWwKIAogIyBpT1MgZG9l
cyBub3QgYWxsb3cgeW91IHRvIHNjcm9sbCBieSBkcmFnZ2luZyB0aGUgc2Nyb2xsYmFyIHRodW1i
Lgogd2Via2l0Lm9yZy9iLzE1NzIwMSBmYXN0L3Njcm9sbGluZy9ydGwtZHJhZy12ZXJ0aWNhbC1z
Y3JvbGxlci5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2IvMTU3MjAxIGNzczMvc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtZHJhZy1zY3JvbGxiYXItdGh1bWIuaHRtbCBbIEZhaWx1cmUgXQog
CiAjIER1bXBSZW5kZXJUcmVlIGRvZXNuJ3Qgc3VwcG9ydCBsb2dnaW5nIGNhbGxzIHRvIHJ1bk9w
ZW5QYW5lbCBhbmQgaU9TJ3MgV2ViS2l0VGVzdFJ1bm5lciBkb2Vzbid0IHN1cHBvcnQgZXZlbnRT
ZW5kZXIubW91c2VEb3duLgogZmFzdC9mb3Jtcy9maWxlL29wZW4tZmlsZS1wYW5lbC5odG1sIFsg
U2tpcCBdCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>