<?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>226010</bug_id>
          
          <creation_ts>2021-05-20 04:20:29 -0700</creation_ts>
          <short_desc>[css-scroll-snap] Scroll snap is broken with non-horizontal writing modes</short_desc>
          <delta_ts>2021-06-02 05:37:11 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Scrolling</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc>https://codepen.io/smfr/pen/qBrEEBB</bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>218115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jamesr</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>luiz</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tonikitoo</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1761897</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-05-20 04:20:29 -0700</bug_when>
    <thetext>The example linked above does not work and, in addition, several WPT scroll-snap tests using `writing-mode` are failing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761901</commentid>
    <comment_count>1</comment_count>
      <attachid>429156</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-05-20 04:53:27 -0700</bug_when>
    <thetext>Created attachment 429156
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761911</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-05-20 05:33:39 -0700</bug_when>
    <thetext>Upon reading the spec a bit more, it seems the example listed above should only work if the writing-mode declaration is applied to the scroll container.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761953</commentid>
    <comment_count>3</comment_count>
      <attachid>429173</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-05-20 07:47:02 -0700</bug_when>
    <thetext>Created attachment 429173
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763190</commentid>
    <comment_count>4</comment_count>
      <attachid>429173</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-05-24 10:40:03 -0700</bug_when>
    <thetext>Comment on attachment 429173
Patch

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

&gt; Source/WebCore/page/FrameView.cpp:957
&gt; +    WritingMode writingMode = (bodyRenderer ? bodyRenderer-&gt;style() : rootRenderer-&gt;style()).writingMode();
&gt; +    TextDirection direction = (bodyRenderer ? bodyRenderer-&gt;style() : rootRenderer-&gt;style()).direction();

resolveForDocument() already does this computation I think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763454</commentid>
    <comment_count>5</comment_count>
      <attachid>429634</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-05-25 00:27:38 -0700</bug_when>
    <thetext>Created attachment 429634
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763455</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-05-25 00:30:29 -0700</bug_when>
    <thetext>(In reply to Simon Fraser (smfr) from comment #4)
&gt; Comment on attachment 429173 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=429173&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/FrameView.cpp:957
&gt; &gt; +    WritingMode writingMode = (bodyRenderer ? bodyRenderer-&gt;style() : rootRenderer-&gt;style()).writingMode();
&gt; &gt; +    TextDirection direction = (bodyRenderer ? bodyRenderer-&gt;style() : rootRenderer-&gt;style()).direction();
&gt; 
&gt; resolveForDocument() already does this computation I think.

It seems that it does. I&apos;m not sure exactly why I thought I was observing a difference here, but I removed this bogus workaround and the tests still pass so I was probably just confused. Thanks for taking a look at this. I&apos;ve uploaded the new version of the change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1764287</commentid>
    <comment_count>7</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-27 04:21:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/78562512&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765524</commentid>
    <comment_count>8</comment_count>
      <attachid>430235</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-01 00:28:27 -0700</bug_when>
    <thetext>Created attachment 430235
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765525</commentid>
    <comment_count>9</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-01 00:33:23 -0700</bug_when>
    <thetext>I rebased this change, removed a comment that is no longer applicable, and removed a stray debugging print statement.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765598</commentid>
    <comment_count>10</comment_count>
      <attachid>430235</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-06-01 06:50:32 -0700</bug_when>
    <thetext>Comment on attachment 430235
Patch

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

This looks good to me overall, but I have a few comments inline...

&gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:224
&gt; +    bool scrollerHasVerticalWritingMode = isVerticalWritingMode(writingMode);

I&apos;m not really clear how CSS direction and writing-mode properties interact together, and with scrop-snap-axis. Can you please explain, or do you have a link to the relevant part of the specs?

&gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:259
&gt; +        ScrollSnapAxisAlignType yAlign = !scrollerHasVerticalWritingMode ? alignment.blockAlign : alignment.inlineAlign;

nit: I would do

xAlign = scrollerHasVerticalWritingMode ? alignment.blockAlign : alignment.inlineAlign 
yAlign = scrollerHasVerticalWritingMode ? alignment.inlineAlign : alignment.blockAlign

&gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:277
&gt; +            auto absoluteScrollYPosition = computeScrollSnapAlignOffset(scrollSnapArea.y(), scrollSnapArea.maxY(), yAlign, false) - computeScrollSnapAlignOffset(scrollSnapPort.y(), scrollSnapPort.maxY(), yAlign, false);

For example, here I wonder what happens with an exotic setup like &quot;writing-mode: vertical-lr; and direction: rtl;&quot;. Shouldn&apos;t we pass scrollerIsRTL too? Is it covered by existing WPT tests?

&gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:290
&gt; +

This seems an unrelated change that does not affect tests. Can you please explain it? (probably it can be moved into a separate patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765922</commentid>
    <comment_count>11</comment_count>
      <attachid>430329</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-02 02:39:48 -0700</bug_when>
    <thetext>Created attachment 430329
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765925</commentid>
    <comment_count>12</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-02 03:03:47 -0700</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #10)
&gt; Comment on attachment 430235 [details]
&gt; Patch
&gt; 

Thanks for the review!


&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430235&amp;action=review
&gt; 
&gt; This looks good to me overall, but I have a few comments inline...
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:224
&gt; &gt; +    bool scrollerHasVerticalWritingMode = isVerticalWritingMode(writingMode);
&gt; 
&gt; I&apos;m not really clear how CSS direction and writing-mode properties interact
&gt; together, and with scrop-snap-axis. Can you please explain, or do you have a
&gt; link to the relevant part of the specs?

This is a really good point. I&apos;ve rewritten this a bit so that it&apos;s more complete and understandable. In addition, I&apos;ve added a comment explaining everything.

&gt; &gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:259
&gt; &gt; +        ScrollSnapAxisAlignType yAlign = !scrollerHasVerticalWritingMode ? alignment.blockAlign : alignment.inlineAlign;
&gt; 
&gt; nit: I would do

Fixed.


&gt; xAlign = scrollerHasVerticalWritingMode ? alignment.blockAlign :
&gt; alignment.inlineAlign 
&gt; yAlign = scrollerHasVerticalWritingMode ? alignment.inlineAlign :
&gt; alignment.blockAlign
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:277
&gt; &gt; +            auto absoluteScrollYPosition = computeScrollSnapAlignOffset(scrollSnapArea.y(), scrollSnapArea.maxY(), yAlign, false) - computeScrollSnapAlignOffset(scrollSnapPort.y(), scrollSnapPort.maxY(), yAlign, false);
&gt; 
&gt; For example, here I wonder what happens with an exotic setup like
&gt; &quot;writing-mode: vertical-lr; and direction: rtl;&quot;. Shouldn&apos;t we pass
&gt; scrollerIsRTL too? Is it covered by existing WPT tests?

I&apos;ve fixed this. This is covered by an existing WPT reference test, but it combines a bunch of test cases. The test progresses, but overall the test still fails.

&gt; &gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:290
&gt; &gt; +
&gt; 
&gt; This seems an unrelated change that does not affect tests. Can you please
&gt; explain it? (probably it can be moved into a separate patch).

Okay. I&apos;ve removed this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765926</commentid>
    <comment_count>13</comment_count>
      <attachid>430329</attachid>
    <who name="Frédéric Wang Nélar">fred.wang</who>
    <bug_when>2021-06-02 03:36:50 -0700</bug_when>
    <thetext>Comment on attachment 430329
Patch

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

&gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:241
&gt; +    }

Maybe this whole block would be easier to read with just a switch (scrollSnapType.axis)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765931</commentid>
    <comment_count>14</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-02 03:46:50 -0700</bug_when>
    <thetext>(In reply to Frédéric Wang (:fredw) from comment #13)
&gt; Comment on attachment 430329 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=430329&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/page/scrolling/ScrollSnapOffsetsInfo.cpp:241
&gt; &gt; +    }
&gt; 
&gt; Maybe this whole block would be easier to read with just a switch
&gt; (scrollSnapType.axis)

I did try this out at first (and again just now). The result is quite a bit longer and, in my opinion, a bit harder to read.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765949</commentid>
    <comment_count>15</comment_count>
      <attachid>430329</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2021-06-02 05:19:22 -0700</bug_when>
    <thetext>Comment on attachment 430329
Patch

Thanks for the reviews!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765952</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-02 05:37:06 -0700</bug_when>
    <thetext>Committed r278350 (238382@main): &lt;https://commits.webkit.org/238382@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430329.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429156</attachid>
            <date>2021-05-20 04:53:27 -0700</date>
            <delta_ts>2021-05-20 07:46:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226010-20210520135325.patch</filename>
            <type>text/plain</type>
            <size>23274</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZhYjExMmU0ODQwNzQy
ZTM2OWE4YWZjZjRjMWNlNGE2ZTIxZTQ4Ni4uZGFhNTQ2NDAxMjYyMzBkYTc3MGE2OGRiNmNkOGVl
MWJlNmE2ZDhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA1LTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9s
bC1zbmFwXSBTY3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5n
IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggaXNzdWVzIHJlbGF0ZWQgdG8gdmVydGljYWwgd3JpdGluZyBtb2RlcyBhbmQgc2Nyb2xsIHNu
YXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdGhyZWUgZXhpc3RpbmcgV1BUIHRlc3Rz
LgorICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50Lmh0bWwKKyAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2suaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvclNjcm9sbFNu
YXBBbGlnbm1lbnQpOiBVcGRhdGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzIG9mIFNjcm9s
bFNuYXBBbGlnbi4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKTogUGFzcyBpbiB0aGUgdGV4dCBkaXJl
Y3Rpb24gYW5kIHdyaXRpbmcgbW9kZSBvZiB0aGUKKyAgICAgICAgY29udGFpbmVyLCBhbGxvd2lu
ZyB0aGUgdmFsdWVzIHNwZWNpZmllZCBvbiB0aGUgYm9keSB0byBvdmVycmlkZSB0aG9zZSBzcGVj
aWZpZWQgb24gdGhlIHJvb3QKKyAgICAgICAgZWxlbWVudC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
U25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSk6IFByb3Blcmx5IGhhbmRsZSB0aGUgd3JpdGlu
ZyBtb2RlIGFuZCB0aGUKKyAgICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5lci4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaDogVXBkYXRl
IGZ1bmN0aW9uIHNpZ25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxTbmFwQ29udGFpbmVyUmVxdWly
ZXNVcGRhdGVGb3JTdHlsZVVwZGF0ZSk6IFBhc3MgaW4gdGhlIHdyaXRpbmcgbW9kZSBhbmQKKyAg
ICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMpOiBVcGRh
dGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzCisgICAgICAgIG9mIFNjcm9sbFNuYXBBbGln
bi4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc1NuYXBQb3NpdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDogQ2hhbmdlIHRo
ZSBuYW1lIG9mIHRoZSBtZW1iZXJzIG9mIFNjcm9sbFNuYXBBbGlnbgorICAgICAgICB0byBtYXRj
aCB3aGF0IGlzIGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gVGhlIHZhbHVlcyBwcm92
aWRlZCBhcmUgZm9yIGJsb2NrIGFuZAorICAgICAgICBpbmxpbmUgZGlyZWN0aW9ucywgYnV0IGRl
cGVuZGluZyBvbiB0aGUgc2Nyb2xsIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPT0pOiBEaXR0by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xs
U25hcEFsaWduKTogRGl0dG8uCisKIDIwMjEtMDUtMTggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5
Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNvcmQgZ3JhZGllbnQgYW5kIHBhdHRlcm4gZmls
bGVkIGNhbnZhcyB0ZXh0IGluIHRoZSBjb3JyZWN0IGNvb3JkaW5hdGUgc3lzdGVtLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCBiYWM1Mjk4NDEwMmViMDA0NWRjNjUzNWFlNjhlNjhiOWI0NjY4ZDAzLi4zZTc3ZWI4NzE3MjQ4
YTk0ZjVmNGY1ZjhhYTFhODI2Yjg0ZDIxMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTEwMCw5ICsxMTAwLDkgQEAg
c3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9yU2Nyb2xsU25hcFR5cGUoY29uc3QgU2Ny
b2xsU25hcFR5cGUmIHR5cGUpCiBzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gdmFsdWVGb3JTY3Jv
bGxTbmFwQWxpZ25tZW50KGNvbnN0IFNjcm9sbFNuYXBBbGlnbiYgYWxpZ25tZW50KQogewogICAg
IGF1dG8gdmFsdWUgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAg
dmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVudC55KSk7Ci0g
ICAgaWYgKGFsaWdubWVudC54ICE9IGFsaWdubWVudC55KQotICAgICAgICB2YWx1ZS0+YXBwZW5k
KENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50LngpKTsKKyAgICB2YWx1ZS0+YXBw
ZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50LmJsb2NrQWxpZ24pKTsKKyAg
ICBpZiAoYWxpZ25tZW50LmlubGluZUFsaWduICE9IGFsaWdubWVudC5ibG9ja0FsaWduKQorICAg
ICAgICB2YWx1ZS0+YXBwZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50Lmlu
bGluZUFsaWduKSk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggNjU4M2MzNjlmZGExYzA2ZDk0Mzc1Y2NkYzIzZmM4YjcyMjMwYmY1YS4uMjFl
MmVhOWEzY2U2MzNkZTUyZmEzYjE3ODQyOThmYTdhZDM1MDk1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtOTQ4LDcgKzk0OCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlU25h
cE9mZnNldHMoKQogICAgIExheW91dFJlY3Qgdmlld3BvcnQgPSBMYXlvdXRSZWN0KEludFBvaW50
KCksIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUoKSk7CiAgICAgdmlld3BvcnQubW92ZSgtcm9vdFJl
bmRlcmVyLT5tYXJnaW5MZWZ0KCksIC1yb290UmVuZGVyZXItPm1hcmdpblRvcCgpKTsKIAotICAg
IHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoKnRoaXMsICpyb290UmVuZGVyZXIs
ICpzdHlsZVRvVXNlLCB2aWV3cG9ydCk7CisgICAgLy8gRnJvbSBodHRwczovL3d3dy53My5vcmcv
VFIvY3NzLXdyaXRpbmctbW9kZXMtMy8KKyAgICAvLyAiQXMgYSBzcGVjaWFsIGNhc2UgZm9yIGhh
bmRsaW5nIEhUTUwgZG9jdW1lbnRzLCBpZiB0aGUgcm9vdCBlbGVtZW50IGhhcyBhIGJvZHkgY2hp
bGQgZWxlbWVudAorICAgIC8vIFtIVE1MXSwgdGhlIHVzZWQgdmFsdWUgb2YgdGhlIG9mIHdyaXRp
bmctbW9kZSBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMgb24gcm9vdCBlbGVtZW50IGFyZQorICAg
IC8vIHRha2VuIGZyb20gdGhlIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBhbmQgZGlyZWN0aW9uIG9m
IHRoZSBmaXJzdCBzdWNoIGNoaWxkIGVsZW1lbnQgaW5zdGVhZCBvZgorICAgIC8vIGZyb20gdGhl
IHJvb3QgZWxlbWVudOKAmXMgb3duIHZhbHVlcy4iCisgICAgV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUgPSAoYm9keVJlbmRlcmVyID8gYm9keVJlbmRlcmVyLT5zdHlsZSgpIDogcm9vdFJlbmRlcmVy
LT5zdHlsZSgpKS53cml0aW5nTW9kZSgpOworICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0g
KGJvZHlSZW5kZXJlciA/IGJvZHlSZW5kZXJlci0+c3R5bGUoKSA6IHJvb3RSZW5kZXJlci0+c3R5
bGUoKSkuZGlyZWN0aW9uKCk7CisKKyAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVB
cmVhKCp0aGlzLCAqcm9vdFJlbmRlcmVyLCAqc3R5bGVUb1VzZSwgdmlld3BvcnQsIHdyaXRpbmdN
b2RlLCBkaXJlY3Rpb24pOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNTY3JvbGxTbmFwSW5Qcm9n
cmVzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAppbmRleCAzN2I2NjM3YjQ4NjBkOThjZTM4MDY4ZjUx
YjMxZmVjZTY4YWM2ZDE1Li43YTVlNmU0MTVhNGY4ZWQ1Y2IwNmM3ZDhhOWU1OGVmMjFlNmRiYmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zm
c2V0c0luZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0aWMgTGF5b3V0VW5pdCBj
b21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KExheW91dFVuaXQgbWluTG9jYXRpb24sIExheW91
dFVuaQogICAgIH0KIH0KIAotdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVh
KFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxp
bmdFbGVtZW50Qm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBM
YXlvdXRSZWN0IHZpZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMpCit2b2lkIHVwZGF0
ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVB
cmVhLCBjb25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0
eWxlJiBzY3JvbGxpbmdFbGVtZW50U3R5bGUsIExheW91dFJlY3Qgdmlld3BvcnRSZWN0SW5Cb3Jk
ZXJCb3hDb29yZGluYXRlcywgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24g
dGV4dERpcmVjdGlvbikKIHsKICAgICBhdXRvIHNjcm9sbFNuYXBUeXBlID0gc2Nyb2xsaW5nRWxl
bWVudFN0eWxlLnNjcm9sbFNuYXBUeXBlKCk7CiAgICAgY29uc3QgYXV0byYgYm94ZXNXaXRoU2Ny
b2xsU25hcFBvc2l0aW9ucyA9IHNjcm9sbGluZ0VsZW1lbnRCb3gudmlldygpLmJveGVzV2l0aFNj
cm9sbFNuYXBQb3NpdGlvbnMoKTsKQEAgLTIxOCwxMiArMjE4LDIyIEBAIHZvaWQgdXBkYXRlU25h
cE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEs
IGNvbnN0IFJlCiAgICAgSGFzaE1hcDxmbG9hdCwgU25hcE9mZnNldDxMYXlvdXRVbml0Pj4gdmVy
dGljYWxTbmFwT2Zmc2V0c01hcDsKICAgICBIYXNoTWFwPGZsb2F0LCBTbmFwT2Zmc2V0PExheW91
dFVuaXQ+PiBob3Jpem9udGFsU25hcE9mZnNldHNNYXA7CiAgICAgVmVjdG9yPExheW91dFJlY3Q+
IHNuYXBBcmVhczsKLSAgICBib29sIGhhc0hvcml6b250YWxTbmFwT2Zmc2V0cyA9IHNjcm9sbFNu
YXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5cGUuYXhp
cyA9PSBTY3JvbGxTbmFwQXhpczo6WEF4aXMgfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3Jv
bGxTbmFwQXhpczo6SW5saW5lOwotICAgIGJvb2wgaGFzVmVydGljYWxTbmFwT2Zmc2V0cyA9IHNj
cm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5
cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6WUF4aXMgfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9
PSBTY3JvbGxTbmFwQXhpczo6QmxvY2s7CiAKICAgICBhdXRvIG1heFNjcm9sbE9mZnNldCA9IHNj
cm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxPZmZzZXQoKTsKICAgICBhdXRvIHNjcm9sbFBvc2l0
aW9uID0gTGF5b3V0UG9pbnQgeyBzY3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIH07Ci0g
ICAgYm9vbCBzY3JvbGxlcklzUlRMID0gIXNjcm9sbGluZ0VsZW1lbnRCb3guc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CisgICAgYm9vbCBzY3JvbGxlcklzUlRMID0gdGV4dERpcmVj
dGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpSVEwgfHwgd3JpdGluZ01vZGUgPT0gV3JpdGluZ01vZGU6
OlJpZ2h0VG9MZWZ0OworICAgIGJvb2wgc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID0g
aXNWZXJ0aWNhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKworICAgIGJvb2wgaGFzSG9yaXpv
bnRhbFNuYXBPZmZzZXRzID0gc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6
Qm90aCB8fCBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpYQXhpczsKKyAg
ICBib29sIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNj
cm9sbFNuYXBBeGlzOjpCb3RoIHx8IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4
aXM6OllBeGlzOworICAgIGlmIChzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlz
OjpCbG9jaykgeworICAgICAgICBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgPSBzY3JvbGxlckhh
c1ZlcnRpY2FsV3JpdGluZ01vZGU7CisgICAgICAgIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSAh
c2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlOworICAgIH0KKyAgICBpZiAoc2Nyb2xsU25h
cFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6SW5saW5lKSB7CisgICAgICAgIGhhc0hvcml6
b250YWxTbmFwT2Zmc2V0cyA9ICFzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01vZGU7CisgICAg
ICAgIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSBzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01v
ZGU7CisgICAgfQogCiAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5l
cidzIHNuYXAgcG9ydCwgd2hlcmUgdGhlIHRvcCBsZWZ0IG9mIHRoZSBzY3JvbGxpbmcgY29udGFp
bmVyJ3MgYm9yZGVyIGJveCBpcyB0aGUgb3JpZ2luLgogICAgIGF1dG8gc2Nyb2xsU25hcFBvcnQg
PSBjb21wdXRlU2Nyb2xsU25hcFBvcnRPckFyZWFSZWN0KHZpZXdwb3J0UmVjdEluQm9yZGVyQm94
Q29vcmRpbmF0ZXMsIHNjcm9sbGluZ0VsZW1lbnRTdHlsZS5zY3JvbGxQYWRkaW5nKCksIEluc2V0
T3JPdXRzZXQ6Okluc2V0KTsKQEAgLTI0Nyw4ICsyNTcsMTEgQEAgdm9pZCB1cGRhdGVTbmFwT2Zm
c2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29u
c3QgUmUKICAgICAgICAgYXV0byBhbGlnbm1lbnQgPSBjaGlsZC0+c3R5bGUoKS5zY3JvbGxTbmFw
QWxpZ24oKTsKICAgICAgICAgYXV0byBzdG9wID0gY2hpbGQtPnN0eWxlKCkuc2Nyb2xsU25hcFN0
b3AoKTsKIAotICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNu
YXBPZmZzZXRzICYmIGFsaWdubWVudC54ICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25l
OwotICAgICAgICBib29sIHNuYXBzVmVydGljYWxseSA9IGhhc1ZlcnRpY2FsU25hcE9mZnNldHMg
JiYgYWxpZ25tZW50LnkgIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CisgICAgICAg
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHhBbGlnbiA9ICFzY3JvbGxlckhhc1ZlcnRpY2FsV3Jp
dGluZ01vZGUgPyBhbGlnbm1lbnQuaW5saW5lQWxpZ24gOiBhbGlnbm1lbnQuYmxvY2tBbGlnbjsK
KyAgICAgICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgeUFsaWduID0gIXNjcm9sbGVySGFzVmVy
dGljYWxXcml0aW5nTW9kZSA/IGFsaWdubWVudC5ibG9ja0FsaWduIDogYWxpZ25tZW50LmlubGlu
ZUFsaWduOworICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNu
YXBPZmZzZXRzICYmIHhBbGlnbiAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAg
ICAgICAgYm9vbCBzbmFwc1ZlcnRpY2FsbHkgPSBoYXNWZXJ0aWNhbFNuYXBPZmZzZXRzICYmIHlB
bGlnbiAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKwogICAgICAgICBpZiAoIXNu
YXBzSG9yaXpvbnRhbGx5ICYmICFzbmFwc1ZlcnRpY2FsbHkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIApAQCAtMjU4LDE4ICsyNzEsMTUgQEAgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9s
bGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmUKICAgICAg
ICAgc25hcEFyZWFzLmFwcGVuZChzY3JvbGxTbmFwQXJlYUFzT2Zmc2V0cyk7CiAKICAgICAgICAg
aWYgKHNuYXBzSG9yaXpvbnRhbGx5KSB7Ci0gICAgICAgICAgICBhdXRvIGFic29sdXRlU2Nyb2xs
WFBvc2l0aW9uID0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwQXJlYS54
KCksIHNjcm9sbFNuYXBBcmVhLm1heFgoKSwgYWxpZ25tZW50LngsIHNjcm9sbGVySXNSVEwpIC0g
Y29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC54KCksIHNjcm9sbFNu
YXBQb3J0Lm1heFgoKSwgYWxpZ25tZW50LngsIHNjcm9sbGVySXNSVEwpOworICAgICAgICAgICAg
YXV0byBhYnNvbHV0ZVNjcm9sbFhQb3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZz
ZXQoc2Nyb2xsU25hcEFyZWEueCgpLCBzY3JvbGxTbmFwQXJlYS5tYXhYKCksIHhBbGlnbiwgc2Ny
b2xsZXJJc1JUTCkgLSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBQb3J0
LngoKSwgc2Nyb2xsU25hcFBvcnQubWF4WCgpLCB4QWxpZ24sIHNjcm9sbGVySXNSVEwpOwogICAg
ICAgICAgICAgYXV0byBhYnNvbHV0ZVNjcm9sbE9mZnNldCA9IGNsYW1wVG88aW50PihzY3JvbGxh
YmxlQXJlYS5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oeyByb3VuZFRvSW50KGFic29sdXRlU2Ny
b2xsWFBvc2l0aW9uKSwgMCB9KS54KCksIDAsIG1heFNjcm9sbE9mZnNldC54KCkpOwogICAgICAg
ICAgICAgYWRkT3JVcGRhdGVTdG9wRm9yU25hcE9mZnNldChob3Jpem9udGFsU25hcE9mZnNldHNN
YXAsIHsgYWJzb2x1dGVTY3JvbGxPZmZzZXQsIHN0b3AsIHNuYXBBcmVhcy5zaXplKCkgLSAxIH0p
OwogICAgICAgICB9CiAgICAgICAgIGlmIChzbmFwc1ZlcnRpY2FsbHkpIHsKLSAgICAgICAgICAg
IGF1dG8gYWJzb2x1dGVTY3JvbGxZUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zm
c2V0KHNjcm9sbFNuYXBBcmVhLnkoKSwgc2Nyb2xsU25hcEFyZWEubWF4WSgpLCBhbGlnbm1lbnQu
eSwgZmFsc2UpIC0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC55
KCksIHNjcm9sbFNuYXBQb3J0Lm1heFkoKSwgYWxpZ25tZW50LnksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGF1dG8gYWJzb2x1dGVTY3JvbGxZUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWdu
T2Zmc2V0KHNjcm9sbFNuYXBBcmVhLnkoKSwgc2Nyb2xsU25hcEFyZWEubWF4WSgpLCB5QWxpZ24s
IGZhbHNlKSAtIGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcFBvcnQueSgp
LCBzY3JvbGxTbmFwUG9ydC5tYXhZKCksIHlBbGlnbiwgZmFsc2UpOwogICAgICAgICAgICAgYXV0
byBhYnNvbHV0ZVNjcm9sbE9mZnNldCA9IGNsYW1wVG88aW50PihzY3JvbGxhYmxlQXJlYS5zY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oeyAwLCByb3VuZFRvSW50KGFic29sdXRlU2Nyb2xsWVBvc2l0
aW9uKSB9KS55KCksIDAsIG1heFNjcm9sbE9mZnNldC55KCkpOwogICAgICAgICAgICAgYWRkT3JV
cGRhdGVTdG9wRm9yU25hcE9mZnNldCh2ZXJ0aWNhbFNuYXBPZmZzZXRzTWFwLCB7IGFic29sdXRl
U2Nyb2xsT2Zmc2V0LCBzdG9wLCBzbmFwQXJlYXMuc2l6ZSgpIC0gMSB9KTsKICAgICAgICAgfQot
Ci0gICAgICAgIGlmICghc25hcEFyZWFzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxTbmFwLCBzdHJlYW0gPDwgIiA9PiBDb21wdXRlZCBzbmFwIGFyZWFzOiAi
IDw8IHNuYXBBcmVhcyk7CiAgICAgfQogCiAgICAgYXV0byBjb21wYXJlU25hcE9mZnNldHMgPSBb
XShjb25zdCBTbmFwT2Zmc2V0PExheW91dFVuaXQ+JiBhLCBjb25zdCBTbmFwT2Zmc2V0PExheW91
dFVuaXQ+JiBiKQpAQCAtMjc3LDYgKzI4Nyw5IEBAIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlCiAg
ICAgICAgIHJldHVybiBhLm9mZnNldCA8IGIub2Zmc2V0OwogICAgIH07CiAKKyAgICBpZiAoIXNu
YXBBcmVhcy5pc0VtcHR5KCkpCisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxTbmFwLCBz
dHJlYW0gPDwgIiA9PiBDb21wdXRlZCBzbmFwIGFyZWFzOiAiIDw8IHNuYXBBcmVhcyk7CisKICAg
ICBWZWN0b3I8U25hcE9mZnNldDxMYXlvdXRVbml0Pj4gaG9yaXpvbnRhbFNuYXBPZmZzZXRzID0g
Y29weVRvVmVjdG9yKGhvcml6b250YWxTbmFwT2Zmc2V0c01hcC52YWx1ZXMoKSk7CiAgICAgaWYg
KCFob3Jpem9udGFsU25hcE9mZnNldHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6c29ydCho
b3Jpem9udGFsU25hcE9mZnNldHMuYmVnaW4oKSwgaG9yaXpvbnRhbFNuYXBPZmZzZXRzLmVuZCgp
LCBjb21wYXJlU25hcE9mZnNldHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaAppbmRleCBkMTYwYzk1YmM0M2ZmOTgxYzBh
NDdiZjM2MDNjNDAwNmRjZWUzMWNjLi42OTJiZDM2MTVjMDU0OWJkMTFlM2U0NGM4MjZjMzA5Yjg3
ODM2ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxT
bmFwT2Zmc2V0c0luZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxTbmFwT2Zmc2V0c0luZm8uaApAQCAtOTYsNyArOTYsNyBAQCBjb25zdCB1bnNpZ25lZCBpbnZh
bGlkU25hcE9mZnNldEluZGV4ID0gVUlOVF9NQVg7CiAvLyBVcGRhdGUgdGhlIHNuYXAgb2Zmc2V0
cyBmb3IgdGhpcyBzY3JvbGxhYmxlIGFyZWEsIGdpdmVuIHRoZSBSZW5kZXJCb3ggb2YgdGhlIHNj
cm9sbCBjb250YWluZXIsIHRoZSBSZW5kZXJTdHlsZQogLy8gd2hpY2ggZGVmaW5lcyB0aGUgc2Ny
b2xsLXNuYXAgcHJvcGVydGllcywgYW5kIHRoZSB2aWV3cG9ydCByZWN0YW5nbGUgd2l0aCB0aGUg
b3JpZ2luIGF0IHRoZSB0b3AgbGVmdCBvZgogLy8gdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBi
b3JkZXIgYm94Lgotdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9s
bGFibGVBcmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94LCBjb25zdCBS
ZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZpZXdwb3J0UmVj
dEluQm9yZGVyQm94Q29vcmRpbmF0ZXMpOwordm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9s
bGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVt
ZW50Qm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRS
ZWN0IHZpZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMsIFdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBTbmFwT2Zmc2V0PFQ+IG9mZnNldCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cAppbmRleCAyYmI1YTU1Mjg5ZjY0ODk4MDE0Zjc0NWViNGUxYjEzMDEwYTUxNDlmLi44NjFlMjE1
YWRlZjY2N2VmN2EyOTg5ODEzYWM4ZjBkNmJhNmVkYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0xMTAsNyArMTEw
LDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVE
aWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclMKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KQogc3RhdGljIGJvb2wgc2Nyb2xsU25hcENvbnRhaW5lclJlcXVpcmVzVXBkYXRlRm9yU3R5bGVV
cGRhdGUoY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3
U3R5bGUpCiB7Ci0gICAgcmV0dXJuIG9sZFN0eWxlLnNjcm9sbFBhZGRpbmcoKSAhPSBuZXdTdHls
ZS5zY3JvbGxQYWRkaW5nKCkgfHwgb2xkU3R5bGUuc2Nyb2xsU25hcFR5cGUoKSAhPSBuZXdTdHls
ZS5zY3JvbGxTbmFwVHlwZSgpOworICAgIHJldHVybiBvbGRTdHlsZS5zY3JvbGxQYWRkaW5nKCkg
IT0gbmV3U3R5bGUuc2Nyb2xsUGFkZGluZygpIHx8IG9sZFN0eWxlLnNjcm9sbFNuYXBUeXBlKCkg
IT0gbmV3U3R5bGUuc2Nyb2xsU25hcFR5cGUoKSB8fCBvbGRTdHlsZS53cml0aW5nTW9kZSgpICE9
IG5ld1N0eWxlLndyaXRpbmdNb2RlKCkgfHwgb2xkU3R5bGUuZGlyZWN0aW9uKCkgIT0gbmV3U3R5
bGUuZGlyZWN0aW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGRlMmJjZTUxZmE5
YjhkMTFhMGU0OWU5MWY0ZmE5ZmQxZDUwNTg1ODMuLmJhNDY2YzhjMGEyNTgzNjExZmNkODNmYzVk
MDVjNDYyZDI5ZmYwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0NjksNyArMTQ2OSw4IEBAIHZvaWQg
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IG1fbGF5ZXIuZW5jbG9zaW5nRWxlbWVudCgp
LT5yZW5kZXJCb3goKTsKLSAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0
aGlzLCAqYm94LCBib3gtPnN0eWxlKCksIGJveC0+cGFkZGluZ0JveFJlY3QoKSk7CisgICAgZnBy
aW50ZihzdGRlcnIsICJ2ZXJ0aWNhbDogJWlcbiIsIGJveC0+c3R5bGUoKS5pc1ZlcnRpY2FsV3Jp
dGluZ01vZGUoKSk7CisgICAgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhp
cywgKmJveCwgYm94LT5zdHlsZSgpLCBib3gtPnBhZGRpbmdCb3hSZWN0KCksIGJveC0+c3R5bGUo
KS53cml0aW5nTW9kZSgpLCBib3gtPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwogfQogCiBib29sIFJl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXgg
YzQyMTNlNzgwYmUxMDcxZDI1MmU3YWEyZjk4NTc0M2RlMzc2MDY5Zi4uM2Y4NDhhZGQwYjk1OGVj
N2FlYmFmMjlmYjVkMzYzZjA1MjM5ZmExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTczLDcgKzI1NzMsNyBAQCB2b2lkIFJlbmRl
clN0eWxlOjpzZXRTY3JvbGxTbmFwU3RvcChjb25zdCBTY3JvbGxTbmFwU3RvcCBzdG9wKQogYm9v
bCBSZW5kZXJTdHlsZTo6aGFzU25hcFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBjb25zdCBTY3Jv
bGxTbmFwQWxpZ24mIGFsaWdubWVudCA9IHRoaXMtPnNjcm9sbFNuYXBBbGlnbigpOwotICAgIHJl
dHVybiBhbGlnbm1lbnQueCAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB8fCBhbGln
bm1lbnQueSAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gYWxp
Z25tZW50LmJsb2NrQWxpZ24gIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfHwgYWxp
Z25tZW50LmlubGluZUFsaWduICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaAppbmRleCBiZjUzNTVkMGEwYmFmZDU4YjFmYTM4MGNiNGVjYzYx
YjNlZDMzZGY0Li5hMzcxNDA1MWY4NDA1NGVlOGRjOGZiNmRmYzNhNDViYWM0NGNjNjY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9p
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5oCkBAIC00OCwxMyArNDgsMTMgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBTY3JvbGxTbmFwVHlwZSYgYSwgY29uc3QgU2Nyb2xsU25hcFR5cGUmIGIpCiBpbmxpbmUgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IFNjcm9sbFNuYXBUeXBlJiBhLCBjb25zdCBTY3JvbGxTbmFwVHlw
ZSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CiAKIHN0cnVjdCBTY3JvbGxTbmFwQWxpZ24gewot
ICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHggeyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6
Tm9uZSB9OwotICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHkgeyBTY3JvbGxTbmFwQXhpc0Fs
aWduVHlwZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGJsb2NrQWxpZ24g
eyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxp
Z25UeXBlIGlubGluZUFsaWduIHsgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfTsKIH07
CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU2Nyb2xsU25hcEFsaWduJiBhLCBjb25z
dCBTY3JvbGxTbmFwQWxpZ24mIGIpCiB7Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09
IGIueTsKKyAgICByZXR1cm4gYS5ibG9ja0FsaWduID09IGIuYmxvY2tBbGlnbiAmJiBhLmlubGlu
ZUFsaWduID09IGIuaW5saW5lQWxpZ247CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29u
c3QgU2Nyb2xsU25hcEFsaWduJiBhLCBjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGIpIHsgcmV0dXJu
ICEoYSA9PSBiKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWls
ZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaAppbmRleCA0ZmZmYTJiMDgxM2Y0YjlkNTZlNjMwYjdmMmZiMGUwOTViMzk4NDA3Li5mZjIy
NTBkNTNjMzRkYjIyYjNiZDI5OTcwMDg0MmI2OTkyYTBjZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtOTIwLDExICs5MjAsMTEgQEAgaW5s
aW5lIFNjcm9sbFNuYXBBbGlnbiBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xsU25hcEFs
aWduKEJ1aWxkZXJTdGF0ZSYsIGMKIHsKICAgICBhdXRvJiB2YWx1ZXMgPSBkb3duY2FzdDxDU1NW
YWx1ZUxpc3Q+KHZhbHVlKTsKICAgICBTY3JvbGxTbmFwQWxpZ24gYWxpZ25tZW50OwotICAgIGFs
aWdubWVudC55ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZXMuaXRlbSgwKSk7
CisgICAgYWxpZ25tZW50LmJsb2NrQWxpZ24gPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnZhbHVlcy5pdGVtKDApKTsKICAgICBpZiAodmFsdWVzLmxlbmd0aCgpID09IDEpCi0gICAgICAg
IGFsaWdubWVudC54ID0gYWxpZ25tZW50Lnk7CisgICAgICAgIGFsaWdubWVudC5pbmxpbmVBbGln
biA9IGFsaWdubWVudC5ibG9ja0FsaWduOwogICAgIGVsc2UKLSAgICAgICAgYWxpZ25tZW50Lngg
PSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDEpKTsKKyAgICAgICAg
YWxpZ25tZW50LmlubGluZUFsaWduID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1
ZXMuaXRlbSgxKSk7CiAgICAgcmV0dXJuIGFsaWdubWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxNzZiMDky
YjUxMjQwNTU2YTgwZmVkYzM1NGZmMGI5ZjY1NTJkNTUuLjcxNmUyZjY5ODk2ZDI0NWM2ZDUwMTJl
ZTIxMjUzM2QwOWVjYTQ5NmIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0wNS0yMCAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1zY3Jv
bGwtc25hcF0gU2Nyb2xsIHNuYXAgaXMgYnJva2VuIHdpdGggbm9uLWhvcml6b250YWwgd3JpdGlu
ZyBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI2MDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOiBNYXJrIG9uZSB0ZXN0IGFzIHBhc3NpbmcuCisKIDIwMjEtMDUt
MTggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNv
cmQgZ3JhZGllbnQgYW5kIHBhdHRlcm4gZmlsbGVkIGNhbnZhcyB0ZXh0IGluIHRoZSBjb3JyZWN0
IGNvb3JkaW5hdGUgc3lzdGVtLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggNjE4
ZTJkMzIwNTk1YmY4YjAxYWY5OGM3NmQzYmQ5M2Q2NTQxZjUzZS4uYWM1NDY0YjUyZjczYzAzMmUx
M2M2OWU0ZGE5ODcwN2YzMzg3ZGU2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBA
IC0xLDMgKzEsMTMgQEAKKzIwMjEtMDUtMjAgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtjc3Mtc2Nyb2xsLXNuYXBdIFNjcm9sbCBzbmFwIGlzIGJy
b2tlbiB3aXRoIG5vbi1ob3Jpem9udGFsIHdyaXRpbmcgbW9kZXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNjAxMAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQu
dHh0OiBVcGRhdGUgZXhwZWN0YXRpb25zIHRvIG1hcmsgdGVzdHMgYXMgcGFzc2luZy4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1i
bG9jay1leHBlY3RlZC50eHQ6IERpdHRvLgorCiAyMDIxLTA1LTE4ICBLZWl0aCBNaWxsZXIgIDxr
ZWl0aF9taWxsZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFRlbXBvcmFyaWx5IHJldmVydCByMjc2
NTkyIGFzIGl0IGJyZWFrcyBzb21lIG5hdGl2ZSBhcHBzCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2
ZTA3ZTk3ZjZhNjk2NjkxMjQwZjY1Y2FmNjdlNDM2OWNmZGMwYzljLi5kNmM2MWRlNjRhYzcyOGY2
YmY5MGE0ZDQwOWUzYWM2NDhiMmIwYWU2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1NDAsNyAr
NDU0MCw2IEBAIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwt
c25hcC9zY3JvbGwtdGFyZ2V0LXNuYXAtMDAzLmh0bWwKIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L2Rp
cmVjdGlvbi1ydGwuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtYWZ0ZXItaW5pdGlhbC1sYXlv
dXQvc2Nyb2xsLXNuYXAtaW5pdGlhbC1sYXlvdXQtMDAwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3Njcm9sbC1zbmFwLXdyaXRpbmctbW9kZS0wMDAuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtYWZ0ZXItaW5pdGlhbC1sYXlvdXQvd3JpdGluZy1tb2Rl
LXZlcnRpY2FsLWxyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTgz
MjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Nj
cm9sbC10YXJnZXQtbWFyZ2luLTAwMS5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdl
YmtpdC5vcmcvYi8yMTgzMjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LXNjcm9sbC1zbmFwL3Njcm9sbC10YXJnZXQtbWFyZ2luLTAwMy5odG1sIFsgUGFzcyBJbWFnZU9u
bHlGYWlsdXJlIF0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9v
dC1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3Qt
ZWxlbWVudC1leHBlY3RlZC50eHQKaW5kZXggMzA4OWZjYWIxNmQxY2U5ZmY4OWZjZDhkZmE3NzYw
YjlmMjYyNTQzNS4uMjM5ZmU3NDllMzFjNTQ3MjJjMmVlYzUyM2JiYzM4Y2ZlYzdiMmEwZiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0
ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCiBQQVNTIFRoZSBzY3JvbGwtc25hcC10eXBlIG9uIHRo
ZSByb290IGVsZW1lbnQgaXMgYXBwbGllZAotRkFJTCBUaGUgd3JpdGluZy1tb2RlICh2ZXJ0aWNh
bC1scikgb24gdGhlIGJvZHkgaXMgdXNlZCBhc3NlcnRfZXF1YWxzOiBpbmxpbmUgc2hvdWxkIHNu
YXAgZXhwZWN0ZWQgNTE1IGJ1dCBnb3QgODAwCitQQVNTIFRoZSB3cml0aW5nLW1vZGUgKHZlcnRp
Y2FsLWxyKSBvbiB0aGUgYm9keSBpcyB1c2VkCiBQQVNTIFRoZSB3cml0aW5nLW1vZGUgKGhvcml6
b250YWwtdGIpIG9uIHRoZSBib2R5IGlzIHVzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAt
aW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBl
Y3RlZC50eHQKaW5kZXggZDZiNzc5NTcyYjY0MzE5NmNjYjlkN2RlZGJjYTIwMTBlOTE4N2UxZi4u
ZjY3OGYyZDEyNTkzZWViYWQzZTI3YzE5MjI4NDM4ZDUzOTA3NWRlZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1z
bmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxp
bmUtYmxvY2stZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29y
cmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1h
bGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0
aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcg
YWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAx
MTUgYnV0IGdvdCAzMDAKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAzMDAgYnV0IGdvdCAx
NjUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3
aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFs
czogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDAKLUZBSUwgU25h
cHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNu
YXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3Jy
ZWN0bHkgb24geCBleHBlY3RlZCAzMDAgYnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBm
b3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFy
dCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhw
ZWN0ZWQgMTY1IGJ1dCBnb3QgMzAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlv
bjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNz
ZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDAK
LUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1z
bmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29y
cmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAorUEFTUyBTbmFwcyBjb3JyZWN0bHkg
Zm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQKK1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3
cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50
CitQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0
aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNv
cnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBzdGFydCBlbmQnIGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRp
Y2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBh
bGlnbm1lbnQKK1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3Jy
ZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0
IGVuZCcgYWxpZ25tZW50CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429173</attachid>
            <date>2021-05-20 07:47:02 -0700</date>
            <delta_ts>2021-05-25 00:27:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226010-20210520164701.patch</filename>
            <type>text/plain</type>
            <size>26483</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZhYjExMmU0ODQwNzQy
ZTM2OWE4YWZjZjRjMWNlNGE2ZTIxZTQ4Ni4uZGFhNTQ2NDAxMjYyMzBkYTc3MGE2OGRiNmNkOGVl
MWJlNmE2ZDhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA1LTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9s
bC1zbmFwXSBTY3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5n
IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggaXNzdWVzIHJlbGF0ZWQgdG8gdmVydGljYWwgd3JpdGluZyBtb2RlcyBhbmQgc2Nyb2xsIHNu
YXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdGhyZWUgZXhpc3RpbmcgV1BUIHRlc3Rz
LgorICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50Lmh0bWwKKyAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2suaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvclNjcm9sbFNu
YXBBbGlnbm1lbnQpOiBVcGRhdGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzIG9mIFNjcm9s
bFNuYXBBbGlnbi4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKTogUGFzcyBpbiB0aGUgdGV4dCBkaXJl
Y3Rpb24gYW5kIHdyaXRpbmcgbW9kZSBvZiB0aGUKKyAgICAgICAgY29udGFpbmVyLCBhbGxvd2lu
ZyB0aGUgdmFsdWVzIHNwZWNpZmllZCBvbiB0aGUgYm9keSB0byBvdmVycmlkZSB0aG9zZSBzcGVj
aWZpZWQgb24gdGhlIHJvb3QKKyAgICAgICAgZWxlbWVudC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
U25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSk6IFByb3Blcmx5IGhhbmRsZSB0aGUgd3JpdGlu
ZyBtb2RlIGFuZCB0aGUKKyAgICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5lci4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaDogVXBkYXRl
IGZ1bmN0aW9uIHNpZ25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxTbmFwQ29udGFpbmVyUmVxdWly
ZXNVcGRhdGVGb3JTdHlsZVVwZGF0ZSk6IFBhc3MgaW4gdGhlIHdyaXRpbmcgbW9kZSBhbmQKKyAg
ICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMpOiBVcGRh
dGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzCisgICAgICAgIG9mIFNjcm9sbFNuYXBBbGln
bi4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc1NuYXBQb3NpdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDogQ2hhbmdlIHRo
ZSBuYW1lIG9mIHRoZSBtZW1iZXJzIG9mIFNjcm9sbFNuYXBBbGlnbgorICAgICAgICB0byBtYXRj
aCB3aGF0IGlzIGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gVGhlIHZhbHVlcyBwcm92
aWRlZCBhcmUgZm9yIGJsb2NrIGFuZAorICAgICAgICBpbmxpbmUgZGlyZWN0aW9ucywgYnV0IGRl
cGVuZGluZyBvbiB0aGUgc2Nyb2xsIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPT0pOiBEaXR0by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xs
U25hcEFsaWduKTogRGl0dG8uCisKIDIwMjEtMDUtMTggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5
Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNvcmQgZ3JhZGllbnQgYW5kIHBhdHRlcm4gZmls
bGVkIGNhbnZhcyB0ZXh0IGluIHRoZSBjb3JyZWN0IGNvb3JkaW5hdGUgc3lzdGVtLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCBiYWM1Mjk4NDEwMmViMDA0NWRjNjUzNWFlNjhlNjhiOWI0NjY4ZDAzLi4zZTc3ZWI4NzE3MjQ4
YTk0ZjVmNGY1ZjhhYTFhODI2Yjg0ZDIxMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTEwMCw5ICsxMTAwLDkgQEAg
c3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9yU2Nyb2xsU25hcFR5cGUoY29uc3QgU2Ny
b2xsU25hcFR5cGUmIHR5cGUpCiBzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gdmFsdWVGb3JTY3Jv
bGxTbmFwQWxpZ25tZW50KGNvbnN0IFNjcm9sbFNuYXBBbGlnbiYgYWxpZ25tZW50KQogewogICAg
IGF1dG8gdmFsdWUgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAg
dmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVudC55KSk7Ci0g
ICAgaWYgKGFsaWdubWVudC54ICE9IGFsaWdubWVudC55KQotICAgICAgICB2YWx1ZS0+YXBwZW5k
KENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50LngpKTsKKyAgICB2YWx1ZS0+YXBw
ZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50LmJsb2NrQWxpZ24pKTsKKyAg
ICBpZiAoYWxpZ25tZW50LmlubGluZUFsaWduICE9IGFsaWdubWVudC5ibG9ja0FsaWduKQorICAg
ICAgICB2YWx1ZS0+YXBwZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50Lmlu
bGluZUFsaWduKSk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggNjU4M2MzNjlmZGExYzA2ZDk0Mzc1Y2NkYzIzZmM4YjcyMjMwYmY1YS4uMjFl
MmVhOWEzY2U2MzNkZTUyZmEzYjE3ODQyOThmYTdhZDM1MDk1OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtOTQ4LDcgKzk0OCwxNSBAQCB2b2lkIEZyYW1lVmlldzo6dXBkYXRlU25h
cE9mZnNldHMoKQogICAgIExheW91dFJlY3Qgdmlld3BvcnQgPSBMYXlvdXRSZWN0KEludFBvaW50
KCksIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUoKSk7CiAgICAgdmlld3BvcnQubW92ZSgtcm9vdFJl
bmRlcmVyLT5tYXJnaW5MZWZ0KCksIC1yb290UmVuZGVyZXItPm1hcmdpblRvcCgpKTsKIAotICAg
IHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoKnRoaXMsICpyb290UmVuZGVyZXIs
ICpzdHlsZVRvVXNlLCB2aWV3cG9ydCk7CisgICAgLy8gRnJvbSBodHRwczovL3d3dy53My5vcmcv
VFIvY3NzLXdyaXRpbmctbW9kZXMtMy8KKyAgICAvLyAiQXMgYSBzcGVjaWFsIGNhc2UgZm9yIGhh
bmRsaW5nIEhUTUwgZG9jdW1lbnRzLCBpZiB0aGUgcm9vdCBlbGVtZW50IGhhcyBhIGJvZHkgY2hp
bGQgZWxlbWVudAorICAgIC8vIFtIVE1MXSwgdGhlIHVzZWQgdmFsdWUgb2YgdGhlIG9mIHdyaXRp
bmctbW9kZSBhbmQgZGlyZWN0aW9uIHByb3BlcnRpZXMgb24gcm9vdCBlbGVtZW50IGFyZQorICAg
IC8vIHRha2VuIGZyb20gdGhlIGNvbXB1dGVkIHdyaXRpbmctbW9kZSBhbmQgZGlyZWN0aW9uIG9m
IHRoZSBmaXJzdCBzdWNoIGNoaWxkIGVsZW1lbnQgaW5zdGVhZCBvZgorICAgIC8vIGZyb20gdGhl
IHJvb3QgZWxlbWVudOKAmXMgb3duIHZhbHVlcy4iCisgICAgV3JpdGluZ01vZGUgd3JpdGluZ01v
ZGUgPSAoYm9keVJlbmRlcmVyID8gYm9keVJlbmRlcmVyLT5zdHlsZSgpIDogcm9vdFJlbmRlcmVy
LT5zdHlsZSgpKS53cml0aW5nTW9kZSgpOworICAgIFRleHREaXJlY3Rpb24gZGlyZWN0aW9uID0g
KGJvZHlSZW5kZXJlciA/IGJvZHlSZW5kZXJlci0+c3R5bGUoKSA6IHJvb3RSZW5kZXJlci0+c3R5
bGUoKSkuZGlyZWN0aW9uKCk7CisKKyAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVB
cmVhKCp0aGlzLCAqcm9vdFJlbmRlcmVyLCAqc3R5bGVUb1VzZSwgdmlld3BvcnQsIHdyaXRpbmdN
b2RlLCBkaXJlY3Rpb24pOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNTY3JvbGxTbmFwSW5Qcm9n
cmVzcygpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9T
Y3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAppbmRleCAzN2I2NjM3YjQ4NjBkOThjZTM4MDY4ZjUx
YjMxZmVjZTY4YWM2ZDE1Li43YTVlNmU0MTVhNGY4ZWQ1Y2IwNmM3ZDhhOWU1OGVmMjFlNmRiYmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zm
c2V0c0luZm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNu
YXBPZmZzZXRzSW5mby5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0aWMgTGF5b3V0VW5pdCBj
b21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KExheW91dFVuaXQgbWluTG9jYXRpb24sIExheW91
dFVuaQogICAgIH0KIH0KIAotdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVh
KFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxp
bmdFbGVtZW50Qm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBM
YXlvdXRSZWN0IHZpZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMpCit2b2lkIHVwZGF0
ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVB
cmVhLCBjb25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0
eWxlJiBzY3JvbGxpbmdFbGVtZW50U3R5bGUsIExheW91dFJlY3Qgdmlld3BvcnRSZWN0SW5Cb3Jk
ZXJCb3hDb29yZGluYXRlcywgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24g
dGV4dERpcmVjdGlvbikKIHsKICAgICBhdXRvIHNjcm9sbFNuYXBUeXBlID0gc2Nyb2xsaW5nRWxl
bWVudFN0eWxlLnNjcm9sbFNuYXBUeXBlKCk7CiAgICAgY29uc3QgYXV0byYgYm94ZXNXaXRoU2Ny
b2xsU25hcFBvc2l0aW9ucyA9IHNjcm9sbGluZ0VsZW1lbnRCb3gudmlldygpLmJveGVzV2l0aFNj
cm9sbFNuYXBQb3NpdGlvbnMoKTsKQEAgLTIxOCwxMiArMjE4LDIyIEBAIHZvaWQgdXBkYXRlU25h
cE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEs
IGNvbnN0IFJlCiAgICAgSGFzaE1hcDxmbG9hdCwgU25hcE9mZnNldDxMYXlvdXRVbml0Pj4gdmVy
dGljYWxTbmFwT2Zmc2V0c01hcDsKICAgICBIYXNoTWFwPGZsb2F0LCBTbmFwT2Zmc2V0PExheW91
dFVuaXQ+PiBob3Jpem9udGFsU25hcE9mZnNldHNNYXA7CiAgICAgVmVjdG9yPExheW91dFJlY3Q+
IHNuYXBBcmVhczsKLSAgICBib29sIGhhc0hvcml6b250YWxTbmFwT2Zmc2V0cyA9IHNjcm9sbFNu
YXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5cGUuYXhp
cyA9PSBTY3JvbGxTbmFwQXhpczo6WEF4aXMgfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3Jv
bGxTbmFwQXhpczo6SW5saW5lOwotICAgIGJvb2wgaGFzVmVydGljYWxTbmFwT2Zmc2V0cyA9IHNj
cm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5
cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6WUF4aXMgfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9
PSBTY3JvbGxTbmFwQXhpczo6QmxvY2s7CiAKICAgICBhdXRvIG1heFNjcm9sbE9mZnNldCA9IHNj
cm9sbGFibGVBcmVhLm1heGltdW1TY3JvbGxPZmZzZXQoKTsKICAgICBhdXRvIHNjcm9sbFBvc2l0
aW9uID0gTGF5b3V0UG9pbnQgeyBzY3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIH07Ci0g
ICAgYm9vbCBzY3JvbGxlcklzUlRMID0gIXNjcm9sbGluZ0VsZW1lbnRCb3guc3R5bGUoKS5pc0xl
ZnRUb1JpZ2h0RGlyZWN0aW9uKCk7CisgICAgYm9vbCBzY3JvbGxlcklzUlRMID0gdGV4dERpcmVj
dGlvbiA9PSBUZXh0RGlyZWN0aW9uOjpSVEwgfHwgd3JpdGluZ01vZGUgPT0gV3JpdGluZ01vZGU6
OlJpZ2h0VG9MZWZ0OworICAgIGJvb2wgc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID0g
aXNWZXJ0aWNhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKworICAgIGJvb2wgaGFzSG9yaXpv
bnRhbFNuYXBPZmZzZXRzID0gc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6
Qm90aCB8fCBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpYQXhpczsKKyAg
ICBib29sIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNj
cm9sbFNuYXBBeGlzOjpCb3RoIHx8IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4
aXM6OllBeGlzOworICAgIGlmIChzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlz
OjpCbG9jaykgeworICAgICAgICBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgPSBzY3JvbGxlckhh
c1ZlcnRpY2FsV3JpdGluZ01vZGU7CisgICAgICAgIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSAh
c2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlOworICAgIH0KKyAgICBpZiAoc2Nyb2xsU25h
cFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6SW5saW5lKSB7CisgICAgICAgIGhhc0hvcml6
b250YWxTbmFwT2Zmc2V0cyA9ICFzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01vZGU7CisgICAg
ICAgIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSBzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01v
ZGU7CisgICAgfQogCiAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5l
cidzIHNuYXAgcG9ydCwgd2hlcmUgdGhlIHRvcCBsZWZ0IG9mIHRoZSBzY3JvbGxpbmcgY29udGFp
bmVyJ3MgYm9yZGVyIGJveCBpcyB0aGUgb3JpZ2luLgogICAgIGF1dG8gc2Nyb2xsU25hcFBvcnQg
PSBjb21wdXRlU2Nyb2xsU25hcFBvcnRPckFyZWFSZWN0KHZpZXdwb3J0UmVjdEluQm9yZGVyQm94
Q29vcmRpbmF0ZXMsIHNjcm9sbGluZ0VsZW1lbnRTdHlsZS5zY3JvbGxQYWRkaW5nKCksIEluc2V0
T3JPdXRzZXQ6Okluc2V0KTsKQEAgLTI0Nyw4ICsyNTcsMTEgQEAgdm9pZCB1cGRhdGVTbmFwT2Zm
c2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29u
c3QgUmUKICAgICAgICAgYXV0byBhbGlnbm1lbnQgPSBjaGlsZC0+c3R5bGUoKS5zY3JvbGxTbmFw
QWxpZ24oKTsKICAgICAgICAgYXV0byBzdG9wID0gY2hpbGQtPnN0eWxlKCkuc2Nyb2xsU25hcFN0
b3AoKTsKIAotICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNu
YXBPZmZzZXRzICYmIGFsaWdubWVudC54ICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25l
OwotICAgICAgICBib29sIHNuYXBzVmVydGljYWxseSA9IGhhc1ZlcnRpY2FsU25hcE9mZnNldHMg
JiYgYWxpZ25tZW50LnkgIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CisgICAgICAg
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHhBbGlnbiA9ICFzY3JvbGxlckhhc1ZlcnRpY2FsV3Jp
dGluZ01vZGUgPyBhbGlnbm1lbnQuaW5saW5lQWxpZ24gOiBhbGlnbm1lbnQuYmxvY2tBbGlnbjsK
KyAgICAgICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgeUFsaWduID0gIXNjcm9sbGVySGFzVmVy
dGljYWxXcml0aW5nTW9kZSA/IGFsaWdubWVudC5ibG9ja0FsaWduIDogYWxpZ25tZW50LmlubGlu
ZUFsaWduOworICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNu
YXBPZmZzZXRzICYmIHhBbGlnbiAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAg
ICAgICAgYm9vbCBzbmFwc1ZlcnRpY2FsbHkgPSBoYXNWZXJ0aWNhbFNuYXBPZmZzZXRzICYmIHlB
bGlnbiAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKwogICAgICAgICBpZiAoIXNu
YXBzSG9yaXpvbnRhbGx5ICYmICFzbmFwc1ZlcnRpY2FsbHkpCiAgICAgICAgICAgICBjb250aW51
ZTsKIApAQCAtMjU4LDE4ICsyNzEsMTUgQEAgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9s
bGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmUKICAgICAg
ICAgc25hcEFyZWFzLmFwcGVuZChzY3JvbGxTbmFwQXJlYUFzT2Zmc2V0cyk7CiAKICAgICAgICAg
aWYgKHNuYXBzSG9yaXpvbnRhbGx5KSB7Ci0gICAgICAgICAgICBhdXRvIGFic29sdXRlU2Nyb2xs
WFBvc2l0aW9uID0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwQXJlYS54
KCksIHNjcm9sbFNuYXBBcmVhLm1heFgoKSwgYWxpZ25tZW50LngsIHNjcm9sbGVySXNSVEwpIC0g
Y29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC54KCksIHNjcm9sbFNu
YXBQb3J0Lm1heFgoKSwgYWxpZ25tZW50LngsIHNjcm9sbGVySXNSVEwpOworICAgICAgICAgICAg
YXV0byBhYnNvbHV0ZVNjcm9sbFhQb3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZz
ZXQoc2Nyb2xsU25hcEFyZWEueCgpLCBzY3JvbGxTbmFwQXJlYS5tYXhYKCksIHhBbGlnbiwgc2Ny
b2xsZXJJc1JUTCkgLSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBQb3J0
LngoKSwgc2Nyb2xsU25hcFBvcnQubWF4WCgpLCB4QWxpZ24sIHNjcm9sbGVySXNSVEwpOwogICAg
ICAgICAgICAgYXV0byBhYnNvbHV0ZVNjcm9sbE9mZnNldCA9IGNsYW1wVG88aW50PihzY3JvbGxh
YmxlQXJlYS5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oeyByb3VuZFRvSW50KGFic29sdXRlU2Ny
b2xsWFBvc2l0aW9uKSwgMCB9KS54KCksIDAsIG1heFNjcm9sbE9mZnNldC54KCkpOwogICAgICAg
ICAgICAgYWRkT3JVcGRhdGVTdG9wRm9yU25hcE9mZnNldChob3Jpem9udGFsU25hcE9mZnNldHNN
YXAsIHsgYWJzb2x1dGVTY3JvbGxPZmZzZXQsIHN0b3AsIHNuYXBBcmVhcy5zaXplKCkgLSAxIH0p
OwogICAgICAgICB9CiAgICAgICAgIGlmIChzbmFwc1ZlcnRpY2FsbHkpIHsKLSAgICAgICAgICAg
IGF1dG8gYWJzb2x1dGVTY3JvbGxZUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zm
c2V0KHNjcm9sbFNuYXBBcmVhLnkoKSwgc2Nyb2xsU25hcEFyZWEubWF4WSgpLCBhbGlnbm1lbnQu
eSwgZmFsc2UpIC0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC55
KCksIHNjcm9sbFNuYXBQb3J0Lm1heFkoKSwgYWxpZ25tZW50LnksIGZhbHNlKTsKKyAgICAgICAg
ICAgIGF1dG8gYWJzb2x1dGVTY3JvbGxZUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWdu
T2Zmc2V0KHNjcm9sbFNuYXBBcmVhLnkoKSwgc2Nyb2xsU25hcEFyZWEubWF4WSgpLCB5QWxpZ24s
IGZhbHNlKSAtIGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcFBvcnQueSgp
LCBzY3JvbGxTbmFwUG9ydC5tYXhZKCksIHlBbGlnbiwgZmFsc2UpOwogICAgICAgICAgICAgYXV0
byBhYnNvbHV0ZVNjcm9sbE9mZnNldCA9IGNsYW1wVG88aW50PihzY3JvbGxhYmxlQXJlYS5zY3Jv
bGxPZmZzZXRGcm9tUG9zaXRpb24oeyAwLCByb3VuZFRvSW50KGFic29sdXRlU2Nyb2xsWVBvc2l0
aW9uKSB9KS55KCksIDAsIG1heFNjcm9sbE9mZnNldC55KCkpOwogICAgICAgICAgICAgYWRkT3JV
cGRhdGVTdG9wRm9yU25hcE9mZnNldCh2ZXJ0aWNhbFNuYXBPZmZzZXRzTWFwLCB7IGFic29sdXRl
U2Nyb2xsT2Zmc2V0LCBzdG9wLCBzbmFwQXJlYXMuc2l6ZSgpIC0gMSB9KTsKICAgICAgICAgfQot
Ci0gICAgICAgIGlmICghc25hcEFyZWFzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPR19XSVRI
X1NUUkVBTShTY3JvbGxTbmFwLCBzdHJlYW0gPDwgIiA9PiBDb21wdXRlZCBzbmFwIGFyZWFzOiAi
IDw8IHNuYXBBcmVhcyk7CiAgICAgfQogCiAgICAgYXV0byBjb21wYXJlU25hcE9mZnNldHMgPSBb
XShjb25zdCBTbmFwT2Zmc2V0PExheW91dFVuaXQ+JiBhLCBjb25zdCBTbmFwT2Zmc2V0PExheW91
dFVuaXQ+JiBiKQpAQCAtMjc3LDYgKzI4Nyw5IEBAIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlCiAg
ICAgICAgIHJldHVybiBhLm9mZnNldCA8IGIub2Zmc2V0OwogICAgIH07CiAKKyAgICBpZiAoIXNu
YXBBcmVhcy5pc0VtcHR5KCkpCisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxTbmFwLCBz
dHJlYW0gPDwgIiA9PiBDb21wdXRlZCBzbmFwIGFyZWFzOiAiIDw8IHNuYXBBcmVhcyk7CisKICAg
ICBWZWN0b3I8U25hcE9mZnNldDxMYXlvdXRVbml0Pj4gaG9yaXpvbnRhbFNuYXBPZmZzZXRzID0g
Y29weVRvVmVjdG9yKGhvcml6b250YWxTbmFwT2Zmc2V0c01hcC52YWx1ZXMoKSk7CiAgICAgaWYg
KCFob3Jpem9udGFsU25hcE9mZnNldHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6c29ydCho
b3Jpem9udGFsU25hcE9mZnNldHMuYmVnaW4oKSwgaG9yaXpvbnRhbFNuYXBPZmZzZXRzLmVuZCgp
LCBjb21wYXJlU25hcE9mZnNldHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9z
Y3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Nj
cm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaAppbmRleCBkMTYwYzk1YmM0M2ZmOTgxYzBh
NDdiZjM2MDNjNDAwNmRjZWUzMWNjLi42OTJiZDM2MTVjMDU0OWJkMTFlM2U0NGM4MjZjMzA5Yjg3
ODM2ZGEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxT
bmFwT2Zmc2V0c0luZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3Jv
bGxTbmFwT2Zmc2V0c0luZm8uaApAQCAtOTYsNyArOTYsNyBAQCBjb25zdCB1bnNpZ25lZCBpbnZh
bGlkU25hcE9mZnNldEluZGV4ID0gVUlOVF9NQVg7CiAvLyBVcGRhdGUgdGhlIHNuYXAgb2Zmc2V0
cyBmb3IgdGhpcyBzY3JvbGxhYmxlIGFyZWEsIGdpdmVuIHRoZSBSZW5kZXJCb3ggb2YgdGhlIHNj
cm9sbCBjb250YWluZXIsIHRoZSBSZW5kZXJTdHlsZQogLy8gd2hpY2ggZGVmaW5lcyB0aGUgc2Ny
b2xsLXNuYXAgcHJvcGVydGllcywgYW5kIHRoZSB2aWV3cG9ydCByZWN0YW5nbGUgd2l0aCB0aGUg
b3JpZ2luIGF0IHRoZSB0b3AgbGVmdCBvZgogLy8gdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBi
b3JkZXIgYm94Lgotdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9s
bGFibGVBcmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94LCBjb25zdCBS
ZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZpZXdwb3J0UmVj
dEluQm9yZGVyQm94Q29vcmRpbmF0ZXMpOwordm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9s
bGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVt
ZW50Qm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRS
ZWN0IHZpZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMsIFdyaXRpbmdNb2RlLCBUZXh0
RGlyZWN0aW9uKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFdURjo6VGV4dFN0cmVhbSYgb3Bl
cmF0b3I8PChXVEY6OlRleHRTdHJlYW0mIHRzLCBTbmFwT2Zmc2V0PFQ+IG9mZnNldCkKIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNw
cAppbmRleCAyYmI1YTU1Mjg5ZjY0ODk4MDE0Zjc0NWViNGUxYjEzMDEwYTUxNDlmLi44NjFlMjE1
YWRlZjY2N2VmN2EyOTg5ODEzYWM4ZjBkNmJhNmVkYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0xMTAsNyArMTEw
LDcgQEAgdm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVE
aWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclMKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQ
KQogc3RhdGljIGJvb2wgc2Nyb2xsU25hcENvbnRhaW5lclJlcXVpcmVzVXBkYXRlRm9yU3R5bGVV
cGRhdGUoY29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3
U3R5bGUpCiB7Ci0gICAgcmV0dXJuIG9sZFN0eWxlLnNjcm9sbFBhZGRpbmcoKSAhPSBuZXdTdHls
ZS5zY3JvbGxQYWRkaW5nKCkgfHwgb2xkU3R5bGUuc2Nyb2xsU25hcFR5cGUoKSAhPSBuZXdTdHls
ZS5zY3JvbGxTbmFwVHlwZSgpOworICAgIHJldHVybiBvbGRTdHlsZS5zY3JvbGxQYWRkaW5nKCkg
IT0gbmV3U3R5bGUuc2Nyb2xsUGFkZGluZygpIHx8IG9sZFN0eWxlLnNjcm9sbFNuYXBUeXBlKCkg
IT0gbmV3U3R5bGUuc2Nyb2xsU25hcFR5cGUoKSB8fCBvbGRTdHlsZS53cml0aW5nTW9kZSgpICE9
IG5ld1N0eWxlLndyaXRpbmdNb2RlKCkgfHwgb2xkU3R5bGUuZGlyZWN0aW9uKCkgIT0gbmV3U3R5
bGUuZGlyZWN0aW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGRlMmJjZTUxZmE5
YjhkMTFhMGU0OWU5MWY0ZmE5ZmQxZDUwNTg1ODMuLmJhNDY2YzhjMGEyNTgzNjExZmNkODNmYzVk
MDVjNDYyZDI5ZmYwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0NjksNyArMTQ2OSw4IEBAIHZvaWQg
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IG1fbGF5ZXIuZW5jbG9zaW5nRWxlbWVudCgp
LT5yZW5kZXJCb3goKTsKLSAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0
aGlzLCAqYm94LCBib3gtPnN0eWxlKCksIGJveC0+cGFkZGluZ0JveFJlY3QoKSk7CisgICAgZnBy
aW50ZihzdGRlcnIsICJ2ZXJ0aWNhbDogJWlcbiIsIGJveC0+c3R5bGUoKS5pc1ZlcnRpY2FsV3Jp
dGluZ01vZGUoKSk7CisgICAgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhp
cywgKmJveCwgYm94LT5zdHlsZSgpLCBib3gtPnBhZGRpbmdCb3hSZWN0KCksIGJveC0+c3R5bGUo
KS53cml0aW5nTW9kZSgpLCBib3gtPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwogfQogCiBib29sIFJl
bmRlckxheWVyU2Nyb2xsYWJsZUFyZWE6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXgg
YzQyMTNlNzgwYmUxMDcxZDI1MmU3YWEyZjk4NTc0M2RlMzc2MDY5Zi4uM2Y4NDhhZGQwYjk1OGVj
N2FlYmFmMjlmYjVkMzYzZjA1MjM5ZmExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTczLDcgKzI1NzMsNyBAQCB2b2lkIFJlbmRl
clN0eWxlOjpzZXRTY3JvbGxTbmFwU3RvcChjb25zdCBTY3JvbGxTbmFwU3RvcCBzdG9wKQogYm9v
bCBSZW5kZXJTdHlsZTo6aGFzU25hcFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBjb25zdCBTY3Jv
bGxTbmFwQWxpZ24mIGFsaWdubWVudCA9IHRoaXMtPnNjcm9sbFNuYXBBbGlnbigpOwotICAgIHJl
dHVybiBhbGlnbm1lbnQueCAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB8fCBhbGln
bm1lbnQueSAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gYWxp
Z25tZW50LmJsb2NrQWxpZ24gIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfHwgYWxp
Z25tZW50LmlubGluZUFsaWduICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOwogfQog
I2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHls
ZVNjcm9sbFNuYXBQb2ludHMuaAppbmRleCBiZjUzNTVkMGEwYmFmZDU4YjFmYTM4MGNiNGVjYzYx
YjNlZDMzZGY0Li5hMzcxNDA1MWY4NDA1NGVlOGRjOGZiNmRmYzNhNDViYWM0NGNjNjY3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9p
bnRzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5oCkBAIC00OCwxMyArNDgsMTMgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25z
dCBTY3JvbGxTbmFwVHlwZSYgYSwgY29uc3QgU2Nyb2xsU25hcFR5cGUmIGIpCiBpbmxpbmUgYm9v
bCBvcGVyYXRvciE9KGNvbnN0IFNjcm9sbFNuYXBUeXBlJiBhLCBjb25zdCBTY3JvbGxTbmFwVHlw
ZSYgYikgeyByZXR1cm4gIShhID09IGIpOyB9CiAKIHN0cnVjdCBTY3JvbGxTbmFwQWxpZ24gewot
ICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHggeyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6
Tm9uZSB9OwotICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHkgeyBTY3JvbGxTbmFwQXhpc0Fs
aWduVHlwZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGJsb2NrQWxpZ24g
eyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxp
Z25UeXBlIGlubGluZUFsaWduIHsgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfTsKIH07
CiAKIGlubGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU2Nyb2xsU25hcEFsaWduJiBhLCBjb25z
dCBTY3JvbGxTbmFwQWxpZ24mIGIpCiB7Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09
IGIueTsKKyAgICByZXR1cm4gYS5ibG9ja0FsaWduID09IGIuYmxvY2tBbGlnbiAmJiBhLmlubGlu
ZUFsaWduID09IGIuaW5saW5lQWxpZ247CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29u
c3QgU2Nyb2xsU25hcEFsaWduJiBhLCBjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGIpIHsgcmV0dXJu
ICEoYSA9PSBiKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWls
ZGVyQ29udmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaAppbmRleCA0ZmZmYTJiMDgxM2Y0YjlkNTZlNjMwYjdmMmZiMGUwOTViMzk4NDA3Li5mZjIy
NTBkNTNjMzRkYjIyYjNiZDI5OTcwMDg0MmI2OTkyYTBjZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtOTIwLDExICs5MjAsMTEgQEAgaW5s
aW5lIFNjcm9sbFNuYXBBbGlnbiBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xsU25hcEFs
aWduKEJ1aWxkZXJTdGF0ZSYsIGMKIHsKICAgICBhdXRvJiB2YWx1ZXMgPSBkb3duY2FzdDxDU1NW
YWx1ZUxpc3Q+KHZhbHVlKTsKICAgICBTY3JvbGxTbmFwQWxpZ24gYWxpZ25tZW50OwotICAgIGFs
aWdubWVudC55ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZXMuaXRlbSgwKSk7
CisgICAgYWxpZ25tZW50LmJsb2NrQWxpZ24gPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4o
KnZhbHVlcy5pdGVtKDApKTsKICAgICBpZiAodmFsdWVzLmxlbmd0aCgpID09IDEpCi0gICAgICAg
IGFsaWdubWVudC54ID0gYWxpZ25tZW50Lnk7CisgICAgICAgIGFsaWdubWVudC5pbmxpbmVBbGln
biA9IGFsaWdubWVudC5ibG9ja0FsaWduOwogICAgIGVsc2UKLSAgICAgICAgYWxpZ25tZW50Lngg
PSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDEpKTsKKyAgICAgICAg
YWxpZ25tZW50LmlubGluZUFsaWduID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1
ZXMuaXRlbSgxKSk7CiAgICAgcmV0dXJuIGFsaWdubWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxNzZiMDky
YjUxMjQwNTU2YTgwZmVkYzM1NGZmMGI5ZjY1NTJkNTUuLjcyY2JmYTY1MmRmZTE1YzkwZWFmMzEz
Yzg0NTI2N2RkZmNkNzY1ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNS0yMCAgTWFy
dGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1zY3Jv
bGwtc25hcF0gU2Nyb2xsIHNuYXAgaXMgYnJva2VuIHdpdGggbm9uLWhvcml6b250YWwgd3JpdGlu
ZyBtb2RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjI2MDEwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBUZXN0RXhwZWN0YXRpb25zOiBNYXJrIG9uZSB0ZXN0IGFzIHBhc3NpbmcuCisgICAgICAgICog
cGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0
OiBSZW1vdmVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQu
dHh0OgorCiAyMDIxLTA1LTE4ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+
CiAKICAgICAgICAgUmVjb3JkIGdyYWRpZW50IGFuZCBwYXR0ZXJuIGZpbGxlZCBjYW52YXMgdGV4
dCBpbiB0aGUgY29ycmVjdCBjb29yZGluYXRlIHN5c3RlbS4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IDYxOGUyZDMyMDU5NWJmOGIwMWFmOThjNzZkM2JkOTNkNjU0MWY1M2UuLmFj
NTQ2NGI1MmY3M2MwMzJlMTNjNjllNGRhOTg3MDdmMzM4N2RlNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA1LTIwICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBT
Y3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5nIG1vZGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1l
bGVtZW50LWV4cGVjdGVkLnR4dDogVXBkYXRlIGV4cGVjdGF0aW9ucyB0byBtYXJrIHRlc3RzIGFz
IHBhc3NpbmcuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNu
YXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0OiBEaXR0by4KKwogMjAyMS0wNS0xOCAg
S2VpdGggTWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3Jh
cmlseSByZXZlcnQgcjI3NjU5MiBhcyBpdCBicmVha3Mgc29tZSBuYXRpdmUgYXBwcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnMKaW5kZXggNmUwN2U5N2Y2YTY5NjY5MTI0MGY2NWNhZjY3ZTQzNjljZmRjMGM5Yy4u
ZDZjNjFkZTY0YWM3MjhmNmJmOTBhNGQ0MDllM2FjNjQ4YjJiMGFlNiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zCkBAIC00NTQwLDcgKzQ1NDAsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1zbmFwLTAwMy5odG1sCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1p
bml0aWFsLWxheW91dC9kaXJlY3Rpb24tcnRsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFm
dGVyLWluaXRpYWwtbGF5b3V0L3Njcm9sbC1zbmFwLWluaXRpYWwtbGF5b3V0LTAwMC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91dC9zY3JvbGwtc25hcC13cml0
aW5nLW1vZGUtMDAwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWluaXRpYWwtbGF5
b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3
ZWJraXQub3JnL2IvMjE4MzI1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDEuaHRtbCBbIFBhc3MgSW1hZ2VP
bmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE4MzI1IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDMuaHRt
bCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwt
c25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDMwODlmY2FiMTZkMWNl
OWZmODlmY2Q4ZGZhNzc2MGI5ZjI2MjU0MzUuLjIzOWZlNzQ5ZTMxYzU0NzIyYzJlZWM1MjNiYmMz
OGNmZWM3YjJhMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3Qt
ZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9v
dC1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAogUEFTUyBUaGUgc2Nyb2xs
LXNuYXAtdHlwZSBvbiB0aGUgcm9vdCBlbGVtZW50IGlzIGFwcGxpZWQKLUZBSUwgVGhlIHdyaXRp
bmctbW9kZSAodmVydGljYWwtbHIpIG9uIHRoZSBib2R5IGlzIHVzZWQgYXNzZXJ0X2VxdWFsczog
aW5saW5lIHNob3VsZCBzbmFwIGV4cGVjdGVkIDUxNSBidXQgZ290IDgwMAorUEFTUyBUaGUgd3Jp
dGluZy1tb2RlICh2ZXJ0aWNhbC1scikgb24gdGhlIGJvZHkgaXMgdXNlZAogUEFTUyBUaGUgd3Jp
dGluZy1tb2RlIChob3Jpem9udGFsLXRiKSBvbiB0aGUgYm9keSBpcyB1c2VkCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1z
Y3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1p
bmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IGQ2Yjc3OTU3MmI2NDMxOTZjY2I5ZDdkZWRi
Y2EyMDEwZTkxODdlMWYuLmY2NzhmMmQxMjU5M2VlYmFkM2UyN2MxOTIyODQzOGQ1MzkwNzVkZWYg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9s
bC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAog
CiBQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0
aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50Ci1GQUlMIFNuYXBzIGNv
cnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5
IG9uIHggZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMzAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
dmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3Rh
cnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0
ZWQgMzAwIGJ1dCBnb3QgMTY1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10
YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25t
ZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0
IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2Rl
IHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1
YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAotRkFJTCBT
bmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwt
c25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNv
cnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDMwMAotRkFJTCBTbmFwcyBjb3JyZWN0
bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFy
dCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3Rl
ZCAxNjUgYnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRs
JyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDMwMCBidXQgZ290IDAKK1BBU1Mg
U25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xs
LXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNvcnJlY3RseSBm
b3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQg
c3RhcnQnIGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIg
d3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVu
dAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRo
ICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQKK1BBU1MgU25hcHMgY29y
cmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxp
Z246IHN0YXJ0IGVuZCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVj
dGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQK
K1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1z
bmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxl
bWVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMzZjYTlk
ZWVmMTVlNmZkNmY3MWY0Nzg5MDY1M2E5Mzg4MTk1NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEs
NSArMCwwIEBACi0KLVBBU1MgVGhlIHNjcm9sbC1zbmFwLXR5cGUgb24gdGhlIHJvb3QgZWxlbWVu
dCBpcyBhcHBsaWVkCi1GQUlMIFRoZSB3cml0aW5nLW1vZGUgKHZlcnRpY2FsLWxyKSBvbiB0aGUg
Ym9keSBpcyB1c2VkIGFzc2VydF9lcXVhbHM6IGlubGluZSBzaG91bGQgc25hcCBleHBlY3RlZCA1
MDAgYnV0IGdvdCA4MDAKLVBBU1MgVGhlIHdyaXRpbmctbW9kZSAoaG9yaXpvbnRhbC10Yikgb24g
dGhlIGJvZHkgaXMgdXNlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAt
aW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxp
bmUtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IDY4ZDhlZDdjNDMwNzYzNjNlZjIzNTNjZmVhZDIx
NGE2NzRlZDUyYWIuLjM0OGEyNDBkNjkyMTc0ZWRlOGNjMTMyNjUwMzgxY2Q3MWU5MDY5MTEgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQu
dHh0CkBAIC0xLDEwICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9u
dGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBh
bGlnbm1lbnQKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1v
ZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9l
cXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAzMDAKK1BB
U1MgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CiBGQUlMIFNuYXBzIGNvcnJlY3Rs
eSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBl
bmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHgg
ZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciBob3Jp
em9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5k
JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVk
IDExNSBidXQgZ290IDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAzMDAgYnV0IGdvdCAw
CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25h
cHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWdu
OiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9u
IHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAn
ZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBi
dXQgZ290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdp
dGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxz
OiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC0zMDAKK0ZBSUwg
U25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5
IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC00ODUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429634</attachid>
            <date>2021-05-25 00:27:38 -0700</date>
            <delta_ts>2021-06-01 00:28:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226010-20210525092736.patch</filename>
            <type>text/plain</type>
            <size>25907</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc3NzE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTZhYjExMmU0ODQwNzQy
ZTM2OWE4YWZjZjRjMWNlNGE2ZTIxZTQ4Ni4uZGFhNTQ2NDAxMjYyMzBkYTc3MGE2OGRiNmNkOGVl
MWJlNmE2ZDhkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA1LTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9s
bC1zbmFwXSBTY3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5n
IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggaXNzdWVzIHJlbGF0ZWQgdG8gdmVydGljYWwgd3JpdGluZyBtb2RlcyBhbmQgc2Nyb2xsIHNu
YXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdGhyZWUgZXhpc3RpbmcgV1BUIHRlc3Rz
LgorICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50Lmh0bWwKKyAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2suaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvclNjcm9sbFNu
YXBBbGlnbm1lbnQpOiBVcGRhdGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzIG9mIFNjcm9s
bFNuYXBBbGlnbi4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKTogUGFzcyBpbiB0aGUgdGV4dCBkaXJl
Y3Rpb24gYW5kIHdyaXRpbmcgbW9kZSBvZiB0aGUKKyAgICAgICAgY29udGFpbmVyLCBhbGxvd2lu
ZyB0aGUgdmFsdWVzIHNwZWNpZmllZCBvbiB0aGUgYm9keSB0byBvdmVycmlkZSB0aG9zZSBzcGVj
aWZpZWQgb24gdGhlIHJvb3QKKyAgICAgICAgZWxlbWVudC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
U25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSk6IFByb3Blcmx5IGhhbmRsZSB0aGUgd3JpdGlu
ZyBtb2RlIGFuZCB0aGUKKyAgICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5lci4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaDogVXBkYXRl
IGZ1bmN0aW9uIHNpZ25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxTbmFwQ29udGFpbmVyUmVxdWly
ZXNVcGRhdGVGb3JTdHlsZVVwZGF0ZSk6IFBhc3MgaW4gdGhlIHdyaXRpbmcgbW9kZSBhbmQKKyAg
ICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMpOiBVcGRh
dGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzCisgICAgICAgIG9mIFNjcm9sbFNuYXBBbGln
bi4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc1NuYXBQb3NpdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDogQ2hhbmdlIHRo
ZSBuYW1lIG9mIHRoZSBtZW1iZXJzIG9mIFNjcm9sbFNuYXBBbGlnbgorICAgICAgICB0byBtYXRj
aCB3aGF0IGlzIGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gVGhlIHZhbHVlcyBwcm92
aWRlZCBhcmUgZm9yIGJsb2NrIGFuZAorICAgICAgICBpbmxpbmUgZGlyZWN0aW9ucywgYnV0IGRl
cGVuZGluZyBvbiB0aGUgc2Nyb2xsIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPT0pOiBEaXR0by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xs
U25hcEFsaWduKTogRGl0dG8uCisKIDIwMjEtMDUtMTggIENhbWVyb24gTWNDb3JtYWNrICA8aGV5
Y2FtQGFwcGxlLmNvbT4KIAogICAgICAgICBSZWNvcmQgZ3JhZGllbnQgYW5kIHBhdHRlcm4gZmls
bGVkIGNhbnZhcyB0ZXh0IGluIHRoZSBjb3JyZWN0IGNvb3JkaW5hdGUgc3lzdGVtLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAppbmRl
eCBiYWM1Mjk4NDEwMmViMDA0NWRjNjUzNWFlNjhlNjhiOWI0NjY4ZDAzLi4zZTc3ZWI4NzE3MjQ4
YTk0ZjVmNGY1ZjhhYTFhODI2Yjg0ZDIxMmQwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9j
c3MvQ1NTQ29tcHV0ZWRTdHlsZURlY2xhcmF0aW9uLmNwcApAQCAtMTEwMCw5ICsxMTAwLDkgQEAg
c3RhdGljIFJlZjxDU1NWYWx1ZUxpc3Q+IHZhbHVlRm9yU2Nyb2xsU25hcFR5cGUoY29uc3QgU2Ny
b2xsU25hcFR5cGUmIHR5cGUpCiBzdGF0aWMgUmVmPENTU1ZhbHVlTGlzdD4gdmFsdWVGb3JTY3Jv
bGxTbmFwQWxpZ25tZW50KGNvbnN0IFNjcm9sbFNuYXBBbGlnbiYgYWxpZ25tZW50KQogewogICAg
IGF1dG8gdmFsdWUgPSBDU1NWYWx1ZUxpc3Q6OmNyZWF0ZVNwYWNlU2VwYXJhdGVkKCk7Ci0gICAg
dmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVudC55KSk7Ci0g
ICAgaWYgKGFsaWdubWVudC54ICE9IGFsaWdubWVudC55KQotICAgICAgICB2YWx1ZS0+YXBwZW5k
KENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50LngpKTsKKyAgICB2YWx1ZS0+YXBw
ZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50LmJsb2NrQWxpZ24pKTsKKyAg
ICBpZiAoYWxpZ25tZW50LmlubGluZUFsaWduICE9IGFsaWdubWVudC5ibG9ja0FsaWduKQorICAg
ICAgICB2YWx1ZS0+YXBwZW5kKENTU1ByaW1pdGl2ZVZhbHVlOjpjcmVhdGUoYWxpZ25tZW50Lmlu
bGluZUFsaWduKSk7CiAgICAgcmV0dXJuIHZhbHVlOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
dy5jcHAKaW5kZXggNjU4M2MzNjlmZGExYzA2ZDk0Mzc1Y2NkYzIzZmM4YjcyMjMwYmY1YS4uM2Nl
MzM2NmEyZjhmZjI5OTMxNzYyYmM1OTI4YmFkOTA3Mjg1ZGRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3LmNwcApAQCAtOTQ4LDcgKzk0OCw3IEBAIHZvaWQgRnJhbWVWaWV3Ojp1cGRhdGVTbmFw
T2Zmc2V0cygpCiAgICAgTGF5b3V0UmVjdCB2aWV3cG9ydCA9IExheW91dFJlY3QoSW50UG9pbnQo
KSwgYmFzZUxheW91dFZpZXdwb3J0U2l6ZSgpKTsKICAgICB2aWV3cG9ydC5tb3ZlKC1yb290UmVu
ZGVyZXItPm1hcmdpbkxlZnQoKSwgLXJvb3RSZW5kZXJlci0+bWFyZ2luVG9wKCkpOwogCi0gICAg
dXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhpcywgKnJvb3RSZW5kZXJlciwg
KnN0eWxlVG9Vc2UsIHZpZXdwb3J0KTsKKyAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFi
bGVBcmVhKCp0aGlzLCAqcm9vdFJlbmRlcmVyLCAqc3R5bGVUb1VzZSwgdmlld3BvcnQsIHJvb3RS
ZW5kZXJlci0+c3R5bGUoKS53cml0aW5nTW9kZSgpLCByb290UmVuZGVyZXItPnN0eWxlKCkuZGly
ZWN0aW9uKCkpOwogfQogCiBib29sIEZyYW1lVmlldzo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygp
IGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxT
bmFwT2Zmc2V0c0luZm8uY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
U25hcE9mZnNldHNJbmZvLmNwcAppbmRleCAzN2I2NjM3YjQ4NjBkOThjZTM4MDY4ZjUxYjMxZmVj
ZTY4YWM2ZDE1Li43YTVlNmU0MTVhNGY4ZWQ1Y2IwNmM3ZDhhOWU1OGVmMjFlNmRiYmM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0lu
Zm8uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZz
ZXRzSW5mby5jcHAKQEAgLTE5OCw3ICsxOTgsNyBAQCBzdGF0aWMgTGF5b3V0VW5pdCBjb21wdXRl
U2Nyb2xsU25hcEFsaWduT2Zmc2V0KExheW91dFVuaXQgbWluTG9jYXRpb24sIExheW91dFVuaQog
ICAgIH0KIH0KIAotdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9s
bGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVt
ZW50Qm94LCBjb25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRS
ZWN0IHZpZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMpCit2b2lkIHVwZGF0ZVNuYXBP
ZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBj
b25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBz
Y3JvbGxpbmdFbGVtZW50U3R5bGUsIExheW91dFJlY3Qgdmlld3BvcnRSZWN0SW5Cb3JkZXJCb3hD
b29yZGluYXRlcywgV3JpdGluZ01vZGUgd3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24gdGV4dERp
cmVjdGlvbikKIHsKICAgICBhdXRvIHNjcm9sbFNuYXBUeXBlID0gc2Nyb2xsaW5nRWxlbWVudFN0
eWxlLnNjcm9sbFNuYXBUeXBlKCk7CiAgICAgY29uc3QgYXV0byYgYm94ZXNXaXRoU2Nyb2xsU25h
cFBvc2l0aW9ucyA9IHNjcm9sbGluZ0VsZW1lbnRCb3gudmlldygpLmJveGVzV2l0aFNjcm9sbFNu
YXBQb3NpdGlvbnMoKTsKQEAgLTIxOCwxMiArMjE4LDIyIEBAIHZvaWQgdXBkYXRlU25hcE9mZnNl
dHNGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0
IFJlCiAgICAgSGFzaE1hcDxmbG9hdCwgU25hcE9mZnNldDxMYXlvdXRVbml0Pj4gdmVydGljYWxT
bmFwT2Zmc2V0c01hcDsKICAgICBIYXNoTWFwPGZsb2F0LCBTbmFwT2Zmc2V0PExheW91dFVuaXQ+
PiBob3Jpem9udGFsU25hcE9mZnNldHNNYXA7CiAgICAgVmVjdG9yPExheW91dFJlY3Q+IHNuYXBB
cmVhczsKLSAgICBib29sIGhhc0hvcml6b250YWxTbmFwT2Zmc2V0cyA9IHNjcm9sbFNuYXBUeXBl
LmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBT
Y3JvbGxTbmFwQXhpczo6WEF4aXMgfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFw
QXhpczo6SW5saW5lOwotICAgIGJvb2wgaGFzVmVydGljYWxTbmFwT2Zmc2V0cyA9IHNjcm9sbFNu
YXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5cGUuYXhp
cyA9PSBTY3JvbGxTbmFwQXhpczo6WUF4aXMgfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3Jv
bGxTbmFwQXhpczo6QmxvY2s7CiAKICAgICBhdXRvIG1heFNjcm9sbE9mZnNldCA9IHNjcm9sbGFi
bGVBcmVhLm1heGltdW1TY3JvbGxPZmZzZXQoKTsKICAgICBhdXRvIHNjcm9sbFBvc2l0aW9uID0g
TGF5b3V0UG9pbnQgeyBzY3JvbGxhYmxlQXJlYS5zY3JvbGxQb3NpdGlvbigpIH07Ci0gICAgYm9v
bCBzY3JvbGxlcklzUlRMID0gIXNjcm9sbGluZ0VsZW1lbnRCb3guc3R5bGUoKS5pc0xlZnRUb1Jp
Z2h0RGlyZWN0aW9uKCk7CisgICAgYm9vbCBzY3JvbGxlcklzUlRMID0gdGV4dERpcmVjdGlvbiA9
PSBUZXh0RGlyZWN0aW9uOjpSVEwgfHwgd3JpdGluZ01vZGUgPT0gV3JpdGluZ01vZGU6OlJpZ2h0
VG9MZWZ0OworICAgIGJvb2wgc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID0gaXNWZXJ0
aWNhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKworICAgIGJvb2wgaGFzSG9yaXpvbnRhbFNu
YXBPZmZzZXRzID0gc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6Qm90aCB8
fCBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpYQXhpczsKKyAgICBib29s
IGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNu
YXBBeGlzOjpCb3RoIHx8IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OllB
eGlzOworICAgIGlmIChzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpCbG9j
aykgeworICAgICAgICBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgPSBzY3JvbGxlckhhc1ZlcnRp
Y2FsV3JpdGluZ01vZGU7CisgICAgICAgIGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgPSAhc2Nyb2xs
ZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlOworICAgIH0KKyAgICBpZiAoc2Nyb2xsU25hcFR5cGUu
YXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6SW5saW5lKSB7CisgICAgICAgIGhhc0hvcml6b250YWxT
bmFwT2Zmc2V0cyA9ICFzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01vZGU7CisgICAgICAgIGhh
c1ZlcnRpY2FsU25hcE9mZnNldHMgPSBzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01vZGU7Cisg
ICAgfQogCiAgICAgLy8gVGhlIGJvdW5kcyBvZiB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lcidzIHNu
YXAgcG9ydCwgd2hlcmUgdGhlIHRvcCBsZWZ0IG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3Mg
Ym9yZGVyIGJveCBpcyB0aGUgb3JpZ2luLgogICAgIGF1dG8gc2Nyb2xsU25hcFBvcnQgPSBjb21w
dXRlU2Nyb2xsU25hcFBvcnRPckFyZWFSZWN0KHZpZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRp
bmF0ZXMsIHNjcm9sbGluZ0VsZW1lbnRTdHlsZS5zY3JvbGxQYWRkaW5nKCksIEluc2V0T3JPdXRz
ZXQ6Okluc2V0KTsKQEAgLTI0Nyw4ICsyNTcsMTEgQEAgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0Zv
clNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmUK
ICAgICAgICAgYXV0byBhbGlnbm1lbnQgPSBjaGlsZC0+c3R5bGUoKS5zY3JvbGxTbmFwQWxpZ24o
KTsKICAgICAgICAgYXV0byBzdG9wID0gY2hpbGQtPnN0eWxlKCkuc2Nyb2xsU25hcFN0b3AoKTsK
IAotICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNuYXBPZmZz
ZXRzICYmIGFsaWdubWVudC54ICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOwotICAg
ICAgICBib29sIHNuYXBzVmVydGljYWxseSA9IGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgJiYgYWxp
Z25tZW50LnkgIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CisgICAgICAgIFNjcm9s
bFNuYXBBeGlzQWxpZ25UeXBlIHhBbGlnbiA9ICFzY3JvbGxlckhhc1ZlcnRpY2FsV3JpdGluZ01v
ZGUgPyBhbGlnbm1lbnQuaW5saW5lQWxpZ24gOiBhbGlnbm1lbnQuYmxvY2tBbGlnbjsKKyAgICAg
ICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgeUFsaWduID0gIXNjcm9sbGVySGFzVmVydGljYWxX
cml0aW5nTW9kZSA/IGFsaWdubWVudC5ibG9ja0FsaWduIDogYWxpZ25tZW50LmlubGluZUFsaWdu
OworICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNuYXBPZmZz
ZXRzICYmIHhBbGlnbiAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAgICAgICAg
Ym9vbCBzbmFwc1ZlcnRpY2FsbHkgPSBoYXNWZXJ0aWNhbFNuYXBPZmZzZXRzICYmIHlBbGlnbiAh
PSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKwogICAgICAgICBpZiAoIXNuYXBzSG9y
aXpvbnRhbGx5ICYmICFzbmFwc1ZlcnRpY2FsbHkpCiAgICAgICAgICAgICBjb250aW51ZTsKIApA
QCAtMjU4LDE4ICsyNzEsMTUgQEAgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVB
cmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmUKICAgICAgICAgc25h
cEFyZWFzLmFwcGVuZChzY3JvbGxTbmFwQXJlYUFzT2Zmc2V0cyk7CiAKICAgICAgICAgaWYgKHNu
YXBzSG9yaXpvbnRhbGx5KSB7Ci0gICAgICAgICAgICBhdXRvIGFic29sdXRlU2Nyb2xsWFBvc2l0
aW9uID0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwQXJlYS54KCksIHNj
cm9sbFNuYXBBcmVhLm1heFgoKSwgYWxpZ25tZW50LngsIHNjcm9sbGVySXNSVEwpIC0gY29tcHV0
ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC54KCksIHNjcm9sbFNuYXBQb3J0
Lm1heFgoKSwgYWxpZ25tZW50LngsIHNjcm9sbGVySXNSVEwpOworICAgICAgICAgICAgYXV0byBh
YnNvbHV0ZVNjcm9sbFhQb3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Ny
b2xsU25hcEFyZWEueCgpLCBzY3JvbGxTbmFwQXJlYS5tYXhYKCksIHhBbGlnbiwgc2Nyb2xsZXJJ
c1JUTCkgLSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBQb3J0LngoKSwg
c2Nyb2xsU25hcFBvcnQubWF4WCgpLCB4QWxpZ24sIHNjcm9sbGVySXNSVEwpOwogICAgICAgICAg
ICAgYXV0byBhYnNvbHV0ZVNjcm9sbE9mZnNldCA9IGNsYW1wVG88aW50PihzY3JvbGxhYmxlQXJl
YS5zY3JvbGxPZmZzZXRGcm9tUG9zaXRpb24oeyByb3VuZFRvSW50KGFic29sdXRlU2Nyb2xsWFBv
c2l0aW9uKSwgMCB9KS54KCksIDAsIG1heFNjcm9sbE9mZnNldC54KCkpOwogICAgICAgICAgICAg
YWRkT3JVcGRhdGVTdG9wRm9yU25hcE9mZnNldChob3Jpem9udGFsU25hcE9mZnNldHNNYXAsIHsg
YWJzb2x1dGVTY3JvbGxPZmZzZXQsIHN0b3AsIHNuYXBBcmVhcy5zaXplKCkgLSAxIH0pOwogICAg
ICAgICB9CiAgICAgICAgIGlmIChzbmFwc1ZlcnRpY2FsbHkpIHsKLSAgICAgICAgICAgIGF1dG8g
YWJzb2x1dGVTY3JvbGxZUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KHNj
cm9sbFNuYXBBcmVhLnkoKSwgc2Nyb2xsU25hcEFyZWEubWF4WSgpLCBhbGlnbm1lbnQueSwgZmFs
c2UpIC0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC55KCksIHNj
cm9sbFNuYXBQb3J0Lm1heFkoKSwgYWxpZ25tZW50LnksIGZhbHNlKTsKKyAgICAgICAgICAgIGF1
dG8gYWJzb2x1dGVTY3JvbGxZUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0
KHNjcm9sbFNuYXBBcmVhLnkoKSwgc2Nyb2xsU25hcEFyZWEubWF4WSgpLCB5QWxpZ24sIGZhbHNl
KSAtIGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcFBvcnQueSgpLCBzY3Jv
bGxTbmFwUG9ydC5tYXhZKCksIHlBbGlnbiwgZmFsc2UpOwogICAgICAgICAgICAgYXV0byBhYnNv
bHV0ZVNjcm9sbE9mZnNldCA9IGNsYW1wVG88aW50PihzY3JvbGxhYmxlQXJlYS5zY3JvbGxPZmZz
ZXRGcm9tUG9zaXRpb24oeyAwLCByb3VuZFRvSW50KGFic29sdXRlU2Nyb2xsWVBvc2l0aW9uKSB9
KS55KCksIDAsIG1heFNjcm9sbE9mZnNldC55KCkpOwogICAgICAgICAgICAgYWRkT3JVcGRhdGVT
dG9wRm9yU25hcE9mZnNldCh2ZXJ0aWNhbFNuYXBPZmZzZXRzTWFwLCB7IGFic29sdXRlU2Nyb2xs
T2Zmc2V0LCBzdG9wLCBzbmFwQXJlYXMuc2l6ZSgpIC0gMSB9KTsKICAgICAgICAgfQotCi0gICAg
ICAgIGlmICghc25hcEFyZWFzLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIExPR19XSVRIX1NUUkVB
TShTY3JvbGxTbmFwLCBzdHJlYW0gPDwgIiA9PiBDb21wdXRlZCBzbmFwIGFyZWFzOiAiIDw8IHNu
YXBBcmVhcyk7CiAgICAgfQogCiAgICAgYXV0byBjb21wYXJlU25hcE9mZnNldHMgPSBbXShjb25z
dCBTbmFwT2Zmc2V0PExheW91dFVuaXQ+JiBhLCBjb25zdCBTbmFwT2Zmc2V0PExheW91dFVuaXQ+
JiBiKQpAQCAtMjc3LDYgKzI4Nyw5IEBAIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxh
YmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlCiAgICAgICAg
IHJldHVybiBhLm9mZnNldCA8IGIub2Zmc2V0OwogICAgIH07CiAKKyAgICBpZiAoIXNuYXBBcmVh
cy5pc0VtcHR5KCkpCisgICAgICAgIExPR19XSVRIX1NUUkVBTShTY3JvbGxTbmFwLCBzdHJlYW0g
PDwgIiA9PiBDb21wdXRlZCBzbmFwIGFyZWFzOiAiIDw8IHNuYXBBcmVhcyk7CisKICAgICBWZWN0
b3I8U25hcE9mZnNldDxMYXlvdXRVbml0Pj4gaG9yaXpvbnRhbFNuYXBPZmZzZXRzID0gY29weVRv
VmVjdG9yKGhvcml6b250YWxTbmFwT2Zmc2V0c01hcC52YWx1ZXMoKSk7CiAgICAgaWYgKCFob3Jp
em9udGFsU25hcE9mZnNldHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIHN0ZDo6c29ydChob3Jpem9u
dGFsU25hcE9mZnNldHMuYmVnaW4oKSwgaG9yaXpvbnRhbFNuYXBPZmZzZXRzLmVuZCgpLCBjb21w
YXJlU25hcE9mZnNldHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxp
bmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGlu
Zy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaAppbmRleCBkMTYwYzk1YmM0M2ZmOTgxYzBhNDdiZjM2
MDNjNDAwNmRjZWUzMWNjLi42OTJiZDM2MTVjMDU0OWJkMTFlM2U0NGM4MjZjMzA5Yjg3ODM2ZGEz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zm
c2V0c0luZm8uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFw
T2Zmc2V0c0luZm8uaApAQCAtOTYsNyArOTYsNyBAQCBjb25zdCB1bnNpZ25lZCBpbnZhbGlkU25h
cE9mZnNldEluZGV4ID0gVUlOVF9NQVg7CiAvLyBVcGRhdGUgdGhlIHNuYXAgb2Zmc2V0cyBmb3Ig
dGhpcyBzY3JvbGxhYmxlIGFyZWEsIGdpdmVuIHRoZSBSZW5kZXJCb3ggb2YgdGhlIHNjcm9sbCBj
b250YWluZXIsIHRoZSBSZW5kZXJTdHlsZQogLy8gd2hpY2ggZGVmaW5lcyB0aGUgc2Nyb2xsLXNu
YXAgcHJvcGVydGllcywgYW5kIHRoZSB2aWV3cG9ydCByZWN0YW5nbGUgd2l0aCB0aGUgb3JpZ2lu
IGF0IHRoZSB0b3AgbGVmdCBvZgogLy8gdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBib3JkZXIg
Ym94Lgotdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVB
cmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94LCBjb25zdCBSZW5kZXJT
dHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZpZXdwb3J0UmVjdEluQm9y
ZGVyQm94Q29vcmRpbmF0ZXMpOwordm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVB
cmVhKFNjcm9sbGFibGVBcmVhJiwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94
LCBjb25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZp
ZXdwb3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMsIFdyaXRpbmdNb2RlLCBUZXh0RGlyZWN0
aW9uKTsKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+IFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8
PChXVEY6OlRleHRTdHJlYW0mIHRzLCBTbmFwT2Zmc2V0PFQ+IG9mZnNldCkKIHsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllck1vZGVsT2JqZWN0LmNwcAppbmRl
eCAyYmI1YTU1Mjg5ZjY0ODk4MDE0Zjc0NWViNGUxYjEzMDEwYTUxNDlmLi44NjFlMjE1YWRlZjY2
N2VmN2EyOTg5ODEzYWM4ZjBkNmJhNmVkYTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2RlbE9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyTW9kZWxPYmplY3QuY3BwCkBAIC0xMTAsNyArMTEwLDcgQEAg
dm9pZCBSZW5kZXJMYXllck1vZGVsT2JqZWN0OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJl
bmNlIGRpZmYsIGNvbnN0IFJlbmRlclMKICNpZiBFTkFCTEUoQ1NTX1NDUk9MTF9TTkFQKQogc3Rh
dGljIGJvb2wgc2Nyb2xsU25hcENvbnRhaW5lclJlcXVpcmVzVXBkYXRlRm9yU3R5bGVVcGRhdGUo
Y29uc3QgUmVuZGVyU3R5bGUmIG9sZFN0eWxlLCBjb25zdCBSZW5kZXJTdHlsZSYgbmV3U3R5bGUp
CiB7Ci0gICAgcmV0dXJuIG9sZFN0eWxlLnNjcm9sbFBhZGRpbmcoKSAhPSBuZXdTdHlsZS5zY3Jv
bGxQYWRkaW5nKCkgfHwgb2xkU3R5bGUuc2Nyb2xsU25hcFR5cGUoKSAhPSBuZXdTdHlsZS5zY3Jv
bGxTbmFwVHlwZSgpOworICAgIHJldHVybiBvbGRTdHlsZS5zY3JvbGxQYWRkaW5nKCkgIT0gbmV3
U3R5bGUuc2Nyb2xsUGFkZGluZygpIHx8IG9sZFN0eWxlLnNjcm9sbFNuYXBUeXBlKCkgIT0gbmV3
U3R5bGUuc2Nyb2xsU25hcFR5cGUoKSB8fCBvbGRTdHlsZS53cml0aW5nTW9kZSgpICE9IG5ld1N0
eWxlLndyaXRpbmdNb2RlKCkgfHwgb2xkU3R5bGUuZGlyZWN0aW9uKCkgIT0gbmV3U3R5bGUuZGly
ZWN0aW9uKCk7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGRlMmJjZTUxZmE5YjhkMTFh
MGU0OWU5MWY0ZmE5ZmQxZDUwNTg1ODMuLmJhNDY2YzhjMGEyNTgzNjExZmNkODNmYzVkMDVjNDYy
ZDI5ZmYwODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXll
clNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0NjksNyArMTQ2OSw4IEBAIHZvaWQgUmVuZGVy
TGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgICAgICByZXR1cm47
CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IG1fbGF5ZXIuZW5jbG9zaW5nRWxlbWVudCgpLT5yZW5k
ZXJCb3goKTsKLSAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0aGlzLCAq
Ym94LCBib3gtPnN0eWxlKCksIGJveC0+cGFkZGluZ0JveFJlY3QoKSk7CisgICAgZnByaW50Zihz
dGRlcnIsICJ2ZXJ0aWNhbDogJWlcbiIsIGJveC0+c3R5bGUoKS5pc1ZlcnRpY2FsV3JpdGluZ01v
ZGUoKSk7CisgICAgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhpcywgKmJv
eCwgYm94LT5zdHlsZSgpLCBib3gtPnBhZGRpbmdCb3hSZWN0KCksIGJveC0+c3R5bGUoKS53cml0
aW5nTW9kZSgpLCBib3gtPnN0eWxlKCkuZGlyZWN0aW9uKCkpOwogfQogCiBib29sIFJlbmRlckxh
eWVyU2Nyb2xsYWJsZUFyZWE6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggYzQyMTNl
NzgwYmUxMDcxZDI1MmU3YWEyZjk4NTc0M2RlMzc2MDY5Zi4uM2Y4NDhhZGQwYjk1OGVjN2FlYmFm
MjlmYjVkMzYzZjA1MjM5ZmExZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0yNTczLDcgKzI1NzMsNyBAQCB2b2lkIFJlbmRlclN0eWxl
OjpzZXRTY3JvbGxTbmFwU3RvcChjb25zdCBTY3JvbGxTbmFwU3RvcCBzdG9wKQogYm9vbCBSZW5k
ZXJTdHlsZTo6aGFzU25hcFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBjb25zdCBTY3JvbGxTbmFw
QWxpZ24mIGFsaWdubWVudCA9IHRoaXMtPnNjcm9sbFNuYXBBbGlnbigpOwotICAgIHJldHVybiBh
bGlnbm1lbnQueCAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB8fCBhbGlnbm1lbnQu
eSAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gYWxpZ25tZW50
LmJsb2NrQWxpZ24gIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfHwgYWxpZ25tZW50
LmlubGluZUFsaWduICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOwogfQogI2VuZGlm
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9s
bFNuYXBQb2ludHMuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9s
bFNuYXBQb2ludHMuaAppbmRleCBiZjUzNTVkMGEwYmFmZDU4YjFmYTM4MGNiNGVjYzYxYjNlZDMz
ZGY0Li5hMzcxNDA1MWY4NDA1NGVlOGRjOGZiNmRmYzNhNDViYWM0NGNjNjY3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50
cy5oCkBAIC00OCwxMyArNDgsMTMgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3Jv
bGxTbmFwVHlwZSYgYSwgY29uc3QgU2Nyb2xsU25hcFR5cGUmIGIpCiBpbmxpbmUgYm9vbCBvcGVy
YXRvciE9KGNvbnN0IFNjcm9sbFNuYXBUeXBlJiBhLCBjb25zdCBTY3JvbGxTbmFwVHlwZSYgYikg
eyByZXR1cm4gIShhID09IGIpOyB9CiAKIHN0cnVjdCBTY3JvbGxTbmFwQWxpZ24gewotICAgIFNj
cm9sbFNuYXBBeGlzQWxpZ25UeXBlIHggeyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9
OwotICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHkgeyBTY3JvbGxTbmFwQXhpc0FsaWduVHlw
ZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGJsb2NrQWxpZ24geyBTY3Jv
bGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBl
IGlubGluZUFsaWduIHsgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfTsKIH07CiAKIGlu
bGluZSBib29sIG9wZXJhdG9yPT0oY29uc3QgU2Nyb2xsU25hcEFsaWduJiBhLCBjb25zdCBTY3Jv
bGxTbmFwQWxpZ24mIGIpCiB7Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsK
KyAgICByZXR1cm4gYS5ibG9ja0FsaWduID09IGIuYmxvY2tBbGlnbiAmJiBhLmlubGluZUFsaWdu
ID09IGIuaW5saW5lQWxpZ247CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU2Ny
b2xsU25hcEFsaWduJiBhLCBjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGIpIHsgcmV0dXJuICEoYSA9
PSBiKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29u
dmVydGVyLmggYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApp
bmRleCA0ZmZmYTJiMDgxM2Y0YjlkNTZlNjMwYjdmMmZiMGUwOTViMzk4NDA3Li5mZjIyNTBkNTNj
MzRkYjIyYjNiZDI5OTcwMDg0MmI2OTkyYTBjZmEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaApAQCAtOTIwLDExICs5MjAsMTEgQEAgaW5saW5lIFNj
cm9sbFNuYXBBbGlnbiBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xsU25hcEFsaWduKEJ1
aWxkZXJTdGF0ZSYsIGMKIHsKICAgICBhdXRvJiB2YWx1ZXMgPSBkb3duY2FzdDxDU1NWYWx1ZUxp
c3Q+KHZhbHVlKTsKICAgICBTY3JvbGxTbmFwQWxpZ24gYWxpZ25tZW50OwotICAgIGFsaWdubWVu
dC55ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZXMuaXRlbSgwKSk7CisgICAg
YWxpZ25tZW50LmJsb2NrQWxpZ24gPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVl
cy5pdGVtKDApKTsKICAgICBpZiAodmFsdWVzLmxlbmd0aCgpID09IDEpCi0gICAgICAgIGFsaWdu
bWVudC54ID0gYWxpZ25tZW50Lnk7CisgICAgICAgIGFsaWdubWVudC5pbmxpbmVBbGlnbiA9IGFs
aWdubWVudC5ibG9ja0FsaWduOwogICAgIGVsc2UKLSAgICAgICAgYWxpZ25tZW50LnggPSBkb3du
Y2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDEpKTsKKyAgICAgICAgYWxpZ25t
ZW50LmlubGluZUFsaWduID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZXMuaXRl
bSgxKSk7CiAgICAgcmV0dXJuIGFsaWdubWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGYxNzZiMDkyYjUxMjQw
NTU2YTgwZmVkYzM1NGZmMGI5ZjY1NTJkNTUuLjcyY2JmYTY1MmRmZTE1YzkwZWFmMzEzYzg0NTI2
N2RkZmNkNzY1ODAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNS0yMCAgTWFydGluIFJv
Ymluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1zY3JvbGwtc25h
cF0gU2Nyb2xsIHNuYXAgaXMgYnJva2VuIHdpdGggbm9uLWhvcml6b250YWwgd3JpdGluZyBtb2Rl
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDEw
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0
RXhwZWN0YXRpb25zOiBNYXJrIG9uZSB0ZXN0IGFzIHBhc3NpbmcuCisgICAgICAgICogcGxhdGZv
cm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBSZW1v
dmVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0Ogor
CiAyMDIxLTA1LTE4ICBDYW1lcm9uIE1jQ29ybWFjayAgPGhleWNhbUBhcHBsZS5jb20+CiAKICAg
ICAgICAgUmVjb3JkIGdyYWRpZW50IGFuZCBwYXR0ZXJuIGZpbGxlZCBjYW52YXMgdGV4dCBpbiB0
aGUgY29ycmVjdCBjb29yZGluYXRlIHN5c3RlbS4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CmluZGV4IDYxOGUyZDMyMDU5NWJmOGIwMWFmOThjNzZkM2JkOTNkNjU0MWY1M2UuLmFjNTQ2NGI1
MmY3M2MwMzJlMTNjNjllNGRhOTg3MDdmMzM4N2RlNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA1LTIwICBNYXJ0aW4gUm9iaW5zb24gIDxt
cm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBTY3JvbGwg
c25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5nIG1vZGVzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMTAKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50
LWV4cGVjdGVkLnR4dDogVXBkYXRlIGV4cGVjdGF0aW9ucyB0byBtYXJrIHRlc3RzIGFzIHBhc3Np
bmcuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25h
cC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0OiBEaXR0by4KKwogMjAyMS0wNS0xOCAgS2VpdGgg
TWlsbGVyICA8a2VpdGhfbWlsbGVyQGFwcGxlLmNvbT4KIAogICAgICAgICBUZW1wb3JhcmlseSBy
ZXZlcnQgcjI3NjU5MiBhcyBpdCBicmVha3Mgc29tZSBuYXRpdmUgYXBwcwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlv
bnMKaW5kZXggNmUwN2U5N2Y2YTY5NjY5MTI0MGY2NWNhZjY3ZTQzNjljZmRjMGM5Yy4uZDZjNjFk
ZTY0YWM3MjhmNmJmOTBhNGQ0MDllM2FjNjQ4YjJiMGFlNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBA
IC00NTQwLDcgKzQ1NDAsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1zbmFwLTAwMy5odG1sCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFs
LWxheW91dC9kaXJlY3Rpb24tcnRsLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWlu
aXRpYWwtbGF5b3V0L3Njcm9sbC1zbmFwLWluaXRpYWwtbGF5b3V0LTAwMC5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Ny
b2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91dC9zY3JvbGwtc25hcC13cml0aW5nLW1v
ZGUtMDAwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dy
aXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQu
b3JnL2IvMjE4MzI1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDEuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFp
bHVyZSBdCiB3ZWJraXQub3JnL2IvMjE4MzI1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDMuaHRtbCBbIFBh
c3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10
eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtdHlw
ZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4IDMwODlmY2FiMTZkMWNlOWZmODlm
Y2Q4ZGZhNzc2MGI5ZjI2MjU0MzUuLjIzOWZlNzQ5ZTMxYzU0NzIyYzJlZWM1MjNiYmMzOGNmZWM3
YjJhMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVu
dC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVt
ZW50LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAogUEFTUyBUaGUgc2Nyb2xsLXNuYXAt
dHlwZSBvbiB0aGUgcm9vdCBlbGVtZW50IGlzIGFwcGxpZWQKLUZBSUwgVGhlIHdyaXRpbmctbW9k
ZSAodmVydGljYWwtbHIpIG9uIHRoZSBib2R5IGlzIHVzZWQgYXNzZXJ0X2VxdWFsczogaW5saW5l
IHNob3VsZCBzbmFwIGV4cGVjdGVkIDUxNSBidXQgZ290IDgwMAorUEFTUyBUaGUgd3JpdGluZy1t
b2RlICh2ZXJ0aWNhbC1scikgb24gdGhlIGJvZHkgaXMgdXNlZAogUEFTUyBUaGUgd3JpdGluZy1t
b2RlIChob3Jpem9udGFsLXRiKSBvbiB0aGUgYm9keSBpcyB1c2VkCiAKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwt
c25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUt
YmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IGQ2Yjc3OTU3MmI2NDMxOTZjY2I5ZDdkZWRiY2EyMDEw
ZTkxODdlMWYuLmY2NzhmMmQxMjU5M2VlYmFkM2UyN2MxOTIyODQzOGQ1MzkwNzVkZWYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFw
L3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAtMSwxMCArMSwxMCBAQAogCiBQQVNT
IFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Ny
b2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50Ci1GQUlMIFNuYXBzIGNvcnJlY3Rs
eSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBl
bmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHgg
ZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMzAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGlj
YWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFs
aWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMzAw
IGJ1dCBnb3QgMTY1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0
aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFz
c2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAw
Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMAotRkFJTCBTbmFwcyBj
b3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3Rs
eSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDMwMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9y
ICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxp
Z25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAxNjUg
YnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRo
ICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczog
YWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDMwMCBidXQgZ290IDAKK1BBU1MgU25hcHMg
Y29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAt
YWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVy
dGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQn
IGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGlu
ZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudAorUEFT
UyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3Jv
bGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQKK1BBU1MgU25hcHMgY29ycmVjdGx5
IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0
YXJ0IGVuZCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjog
cnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQKK1BBU1Mg
U25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBzdGFydCBlbmQnIGFsaWdubWVudAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1l
eHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUxMzZjYTlkZWVmMTVl
NmZkNmY3MWY0Nzg5MDY1M2E5Mzg4MTk1NjEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXdrMi9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNuYXAtdHlw
ZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNSArMCww
IEBACi0KLVBBU1MgVGhlIHNjcm9sbC1zbmFwLXR5cGUgb24gdGhlIHJvb3QgZWxlbWVudCBpcyBh
cHBsaWVkCi1GQUlMIFRoZSB3cml0aW5nLW1vZGUgKHZlcnRpY2FsLWxyKSBvbiB0aGUgYm9keSBp
cyB1c2VkIGFzc2VydF9lcXVhbHM6IGlubGluZSBzaG91bGQgc25hcCBleHBlY3RlZCA1MDAgYnV0
IGdvdCA4MDAKLVBBU1MgVGhlIHdyaXRpbmctbW9kZSAoaG9yaXpvbnRhbC10Yikgb24gdGhlIGJv
ZHkgaXMgdXNlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5l
LWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxv
Y2stZXhwZWN0ZWQudHh0CmluZGV4IDY4ZDhlZDdjNDMwNzYzNjNlZjIzNTNjZmVhZDIxNGE2NzRl
ZDUyYWIuLjM0OGEyNDBkNjkyMTc0ZWRlOGNjMTMyNjUwMzgxY2Q3MWU5MDY5MTEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CkBA
IC0xLDEwICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRi
IHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1l
bnQKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0
aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6
IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAzMDAKK1BBU1MgU25h
cHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNu
YXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
dmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3Rh
cnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0
ZWQgLTMxNSBidXQgZ290IC0zMDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciBob3Jpem9udGFs
LXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGln
bm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4cGVjdGVkIDExNSBi
dXQgZ290IDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1v
ZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9l
cXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAzMDAgYnV0IGdvdCAwCiBGQUlM
IFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMg
Y29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQg
c3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhw
ZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0
aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBh
c3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290
IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Nj
cm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGln
bnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC0zMDAKK0ZBSUwgU25hcHMg
Y29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBz
dGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHgg
ZXhwZWN0ZWQgLTMxNSBidXQgZ290IC00ODUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430235</attachid>
            <date>2021-06-01 00:28:27 -0700</date>
            <delta_ts>2021-06-02 02:39:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226010-20210601092826.patch</filename>
            <type>text/plain</type>
            <size>25757</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZhYjlkMzBkN2EyZjhh
ZDQ0NGJhZjZmMDUwNjc2MmE4YmUzZDQ0Ny4uZWVhYzgyNDNhNzAxMDI0YWU2NDBlYWUwODZiOTg2
MzUzNjk3NTYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA1LTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9s
bC1zbmFwXSBTY3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5n
IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggaXNzdWVzIHJlbGF0ZWQgdG8gdmVydGljYWwgd3JpdGluZyBtb2RlcyBhbmQgc2Nyb2xsIHNu
YXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdGhyZWUgZXhpc3RpbmcgV1BUIHRlc3Rz
LgorICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50Lmh0bWwKKyAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2suaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvclNjcm9sbFNu
YXBBbGlnbm1lbnQpOiBVcGRhdGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzIG9mIFNjcm9s
bFNuYXBBbGlnbi4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKTogUGFzcyBpbiB0aGUgdGV4dCBkaXJl
Y3Rpb24gYW5kIHdyaXRpbmcgbW9kZSBvZiB0aGUKKyAgICAgICAgY29udGFpbmVyLCBhbGxvd2lu
ZyB0aGUgdmFsdWVzIHNwZWNpZmllZCBvbiB0aGUgYm9keSB0byBvdmVycmlkZSB0aG9zZSBzcGVj
aWZpZWQgb24gdGhlIHJvb3QKKyAgICAgICAgZWxlbWVudC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
U25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSk6IFByb3Blcmx5IGhhbmRsZSB0aGUgd3JpdGlu
ZyBtb2RlIGFuZCB0aGUKKyAgICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5lci4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaDogVXBkYXRl
IGZ1bmN0aW9uIHNpZ25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxTbmFwQ29udGFpbmVyUmVxdWly
ZXNVcGRhdGVGb3JTdHlsZVVwZGF0ZSk6IFBhc3MgaW4gdGhlIHdyaXRpbmcgbW9kZSBhbmQKKyAg
ICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMpOiBVcGRh
dGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzCisgICAgICAgIG9mIFNjcm9sbFNuYXBBbGln
bi4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc1NuYXBQb3NpdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDogQ2hhbmdlIHRo
ZSBuYW1lIG9mIHRoZSBtZW1iZXJzIG9mIFNjcm9sbFNuYXBBbGlnbgorICAgICAgICB0byBtYXRj
aCB3aGF0IGlzIGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gVGhlIHZhbHVlcyBwcm92
aWRlZCBhcmUgZm9yIGJsb2NrIGFuZAorICAgICAgICBpbmxpbmUgZGlyZWN0aW9ucywgYnV0IGRl
cGVuZGluZyBvbiB0aGUgc2Nyb2xsIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPT0pOiBEaXR0by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xs
U25hcEFsaWduKTogRGl0dG8uCisKIDIwMjEtMDUtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEdvIHRvIG5ldHdvcmsgaW4gY2FzZSBmZXRjaCBldmVudCBp
cyBub3QgeWV0IHJlc3BvbmRlZCB3aGVuIGJlaW5nIGRlc3Ryb3llZCBpbnN0ZWFkIG9mIGZhaWxp
bmcgdGhlIGxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKaW5kZXggYzRiYjk2NTE3OTdlZGY3YzZhMzJhYjEwYjI3OGQ1Mjk4ZTM5
MjZhZC4uYTUwZWRmZTJjZWNjMmZlOTk0NTAxYTcwMzdiNmQwMmE2ZTI3M2ZlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTExMDAsOSArMTEwMCw5IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWVMaXN0PiB2YWx1ZUZvclNjcm9s
bFNuYXBUeXBlKGNvbnN0IFNjcm9sbFNuYXBUeXBlJiB0eXBlKQogc3RhdGljIFJlZjxDU1NWYWx1
ZUxpc3Q+IHZhbHVlRm9yU2Nyb2xsU25hcEFsaWdubWVudChjb25zdCBTY3JvbGxTbmFwQWxpZ24m
IGFsaWdubWVudCkKIHsKICAgICBhdXRvIHZhbHVlID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOwotICAgIHZhbHVlLT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZShhbGlnbm1lbnQueSkpOwotICAgIGlmIChhbGlnbm1lbnQueCAhPSBhbGlnbm1lbnQueSkKLSAg
ICAgICAgdmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVudC54
KSk7CisgICAgdmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVu
dC5ibG9ja0FsaWduKSk7CisgICAgaWYgKGFsaWdubWVudC5pbmxpbmVBbGlnbiAhPSBhbGlnbm1l
bnQuYmxvY2tBbGlnbikKKyAgICAgICAgdmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKGFsaWdubWVudC5pbmxpbmVBbGlnbikpOwogICAgIHJldHVybiB2YWx1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDJhOTU2YzI5YTM3NGUwYjFkODczNGMxYzdl
ODllZDQ4NGFhZWVmNmUuLjA1YTU3OGY0MTUwNDdlMjRkOGY0Y2E2ZWYwZjZmNjMyOGQyYmM1NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTk0OSw3ICs5NDksNyBAQCB2b2lkIEZy
YW1lVmlldzo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgIExheW91dFJlY3Qgdmlld3BvcnQgPSBM
YXlvdXRSZWN0KEludFBvaW50KCksIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUoKSk7CiAgICAgdmll
d3BvcnQubW92ZSgtcm9vdFJlbmRlcmVyLT5tYXJnaW5MZWZ0KCksIC1yb290UmVuZGVyZXItPm1h
cmdpblRvcCgpKTsKIAotICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoKnRo
aXMsICpyb290UmVuZGVyZXIsICpzdHlsZVRvVXNlLCB2aWV3cG9ydCk7CisgICAgdXBkYXRlU25h
cE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhpcywgKnJvb3RSZW5kZXJlciwgKnN0eWxlVG9V
c2UsIHZpZXdwb3J0LCByb290UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSwgcm9vdFJl
bmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpKTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6OmlzU2Ny
b2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHAKaW5kZXggZGExMWVjMDVmYzU3
Nzc5ODZiZDA4ZGQ0ZmYyZjY4Yzg4OTgzNTFkYi4uODhkYjQyMDIyZmY0MDQ2Mjc3ZTc3OGJmYWEw
NGMzM2RiOTc5OWRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgc3RhdGlj
IExheW91dFVuaXQgY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChMYXlvdXRVbml0IG1pbkxv
Y2F0aW9uLCBMYXlvdXRVbmkKICAgICB9CiB9CiAKLXZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlbmRl
ckJveCYgc2Nyb2xsaW5nRWxlbWVudEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHNjcm9sbGluZ0Vs
ZW1lbnRTdHlsZSwgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJvcmRlckJveENvb3JkaW5hdGVz
KQordm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94LCBj
b25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZpZXdw
b3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBU
ZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24pCiB7CiAgICAgYXV0byBzY3JvbGxTbmFwVHlwZSA9
IHNjcm9sbGluZ0VsZW1lbnRTdHlsZS5zY3JvbGxTbmFwVHlwZSgpOwogICAgIGNvbnN0IGF1dG8m
IGJveGVzV2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMgPSBzY3JvbGxpbmdFbGVtZW50Qm94LnZpZXco
KS5ib3hlc1dpdGhTY3JvbGxTbmFwUG9zaXRpb25zKCk7CkBAIC0yMTcsMTIgKzIxNywyMiBAQCB2
b2lkIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNj
cm9sbGFibGVBcmVhLCBjb25zdCBSZQogICAgIEhhc2hNYXA8ZmxvYXQsIFNuYXBPZmZzZXQ8TGF5
b3V0VW5pdD4+IHZlcnRpY2FsU25hcE9mZnNldHNNYXA7CiAgICAgSGFzaE1hcDxmbG9hdCwgU25h
cE9mZnNldDxMYXlvdXRVbml0Pj4gaG9yaXpvbnRhbFNuYXBPZmZzZXRzTWFwOwogICAgIFZlY3Rv
cjxMYXlvdXRSZWN0PiBzbmFwQXJlYXM7Ci0gICAgYm9vbCBoYXNIb3Jpem9udGFsU25hcE9mZnNl
dHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpCb3RoIHx8IHNjcm9s
bFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OlhBeGlzIHx8IHNjcm9sbFNuYXBUeXBl
LmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OklubGluZTsKLSAgICBib29sIGhhc1ZlcnRpY2FsU25h
cE9mZnNldHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpCb3RoIHx8
IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OllBeGlzIHx8IHNjcm9sbFNu
YXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJsb2NrOwogCiAgICAgYXV0byBtYXhTY3Jv
bGxPZmZzZXQgPSBzY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsT2Zmc2V0KCk7CiAgICAgYXV0
byBzY3JvbGxQb3NpdGlvbiA9IExheW91dFBvaW50IHsgc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsUG9z
aXRpb24oKSB9OwotICAgIGJvb2wgc2Nyb2xsZXJJc1JUTCA9ICFzY3JvbGxpbmdFbGVtZW50Qm94
LnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOworICAgIGJvb2wgc2Nyb2xsZXJJc1JU
TCA9IHRleHREaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6UlRMIHx8IHdyaXRpbmdNb2RlID09
IFdyaXRpbmdNb2RlOjpSaWdodFRvTGVmdDsKKyAgICBib29sIHNjcm9sbGVySGFzVmVydGljYWxX
cml0aW5nTW9kZSA9IGlzVmVydGljYWxXcml0aW5nTW9kZSh3cml0aW5nTW9kZSk7CisKKyAgICBi
b29sIGhhc0hvcml6b250YWxTbmFwT2Zmc2V0cyA9IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Ny
b2xsU25hcEF4aXM6OkJvdGggfHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhp
czo6WEF4aXM7CisgICAgYm9vbCBoYXNWZXJ0aWNhbFNuYXBPZmZzZXRzID0gc2Nyb2xsU25hcFR5
cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6Qm90aCB8fCBzY3JvbGxTbmFwVHlwZS5heGlzID09
IFNjcm9sbFNuYXBBeGlzOjpZQXhpczsKKyAgICBpZiAoc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBT
Y3JvbGxTbmFwQXhpczo6QmxvY2spIHsKKyAgICAgICAgaGFzSG9yaXpvbnRhbFNuYXBPZmZzZXRz
ID0gc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlOworICAgICAgICBoYXNWZXJ0aWNhbFNu
YXBPZmZzZXRzID0gIXNjcm9sbGVySGFzVmVydGljYWxXcml0aW5nTW9kZTsKKyAgICB9CisgICAg
aWYgKHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OklubGluZSkgeworICAg
ICAgICBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgPSAhc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRp
bmdNb2RlOworICAgICAgICBoYXNWZXJ0aWNhbFNuYXBPZmZzZXRzID0gc2Nyb2xsZXJIYXNWZXJ0
aWNhbFdyaXRpbmdNb2RlOworICAgIH0KIAogICAgIC8vIFRoZSBib3VuZHMgb2YgdGhlIHNjcm9s
bGluZyBjb250YWluZXIncyBzbmFwIHBvcnQsIHdoZXJlIHRoZSB0b3AgbGVmdCBvZiB0aGUgc2Ny
b2xsaW5nIGNvbnRhaW5lcidzIGJvcmRlciBib3ggaXMgdGhlIG9yaWdpbi4KICAgICBhdXRvIHNj
cm9sbFNuYXBQb3J0ID0gY29tcHV0ZVNjcm9sbFNuYXBQb3J0T3JBcmVhUmVjdCh2aWV3cG9ydFJl
Y3RJbkJvcmRlckJveENvb3JkaW5hdGVzLCBzY3JvbGxpbmdFbGVtZW50U3R5bGUuc2Nyb2xsUGFk
ZGluZygpLCBJbnNldE9yT3V0c2V0OjpJbnNldCk7CkBAIC0yMzMsNyArMjQzLDYgQEAgdm9pZCB1
cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxh
YmxlQXJlYSwgY29uc3QgUmUKIAogICAgICAgICAvLyBUaGUgYm91bmRzIG9mIHRoZSBjaGlsZCBl
bGVtZW50J3Mgc25hcCBhcmVhLCB3aGVyZSB0aGUgdG9wIGxlZnQgb2YgdGhlIHNjcm9sbGluZyBj
b250YWluZXIncyBib3JkZXIgYm94IGlzIHRoZSBvcmlnaW4uCiAgICAgICAgIC8vIFRoZSBzbmFw
IGFyZWEgaXMgdGhlIGJvdW5kaW5nIGJveCBvZiB0aGUgY2hpbGQgZWxlbWVudCdzIGJvcmRlciBi
b3gsIGFmdGVyIGFwcGx5aW5nIHRyYW5zZm9ybWF0aW9ucy4KLSAgICAgICAgLy8gRklYTUU6IEZv
ciBub3csIGp1c3QgY29uc2lkZXIgd2hldGhlciB0aGUgc2Nyb2xsZXIgaXMgUlRMLiBUaGUgYmVo
YXZpb3Igb2YgTFRSIGJveGVzIGluc2lkZSBhIFJUTCBzY3JvbGxlciBpcyBwb29ybHkgZGVmaW5l
ZDogaHR0cHM6Ly9naXRodWIuY29tL3czYy9jc3N3Zy1kcmFmdHMvaXNzdWVzLzUzNjEuCiAgICAg
ICAgIGF1dG8gc2Nyb2xsU25hcEFyZWEgPSBMYXlvdXRSZWN0KGNoaWxkLT5sb2NhbFRvQ29udGFp
bmVyUXVhZChGbG9hdFF1YWQoY2hpbGQtPmJvcmRlckJvdW5kaW5nQm94KCkpLCAmc2Nyb2xsaW5n
RWxlbWVudEJveCkuYm91bmRpbmdCb3goKSk7CiAKICAgICAgICAgLy8gbG9jYWxUb0NvbnRhaW5l
clF1YWQgd2lsbCB0cmFuc2Zvcm0gdGhlIHNjcm9sbCBzbmFwIGFyZWEgYnkgdGhlIHNjcm9sbCBw
b3NpdGlvbiwgZXhjZXB0IGluIHRoZSBjYXNlIHRoYXQgdGhpcyBwb3NpdGlvbiBpcwpAQCAtMjQ2
LDggKzI1NSwxMSBAQCB2b2lkIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Ny
b2xsYWJsZUFyZWEmIHNjcm9sbGFibGVBcmVhLCBjb25zdCBSZQogICAgICAgICBhdXRvIGFsaWdu
bWVudCA9IGNoaWxkLT5zdHlsZSgpLnNjcm9sbFNuYXBBbGlnbigpOwogICAgICAgICBhdXRvIHN0
b3AgPSBjaGlsZC0+c3R5bGUoKS5zY3JvbGxTbmFwU3RvcCgpOwogCi0gICAgICAgIGJvb2wgc25h
cHNIb3Jpem9udGFsbHkgPSBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgJiYgYWxpZ25tZW50Lngg
IT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7Ci0gICAgICAgIGJvb2wgc25hcHNWZXJ0
aWNhbGx5ID0gaGFzVmVydGljYWxTbmFwT2Zmc2V0cyAmJiBhbGlnbm1lbnQueSAhPSBTY3JvbGxT
bmFwQXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAgICAgICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUg
eEFsaWduID0gIXNjcm9sbGVySGFzVmVydGljYWxXcml0aW5nTW9kZSA/IGFsaWdubWVudC5pbmxp
bmVBbGlnbiA6IGFsaWdubWVudC5ibG9ja0FsaWduOworICAgICAgICBTY3JvbGxTbmFwQXhpc0Fs
aWduVHlwZSB5QWxpZ24gPSAhc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID8gYWxpZ25t
ZW50LmJsb2NrQWxpZ24gOiBhbGlnbm1lbnQuaW5saW5lQWxpZ247CisgICAgICAgIGJvb2wgc25h
cHNIb3Jpem9udGFsbHkgPSBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgJiYgeEFsaWduICE9IFNj
cm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOworICAgICAgICBib29sIHNuYXBzVmVydGljYWxs
eSA9IGhhc1ZlcnRpY2FsU25hcE9mZnNldHMgJiYgeUFsaWduICE9IFNjcm9sbFNuYXBBeGlzQWxp
Z25UeXBlOjpOb25lOworCiAgICAgICAgIGlmICghc25hcHNIb3Jpem9udGFsbHkgJiYgIXNuYXBz
VmVydGljYWxseSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogCkBAIC0yNTcsMTggKzI2OSwxNSBA
QCB2b2lkIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEm
IHNjcm9sbGFibGVBcmVhLCBjb25zdCBSZQogICAgICAgICBzbmFwQXJlYXMuYXBwZW5kKHNjcm9s
bFNuYXBBcmVhQXNPZmZzZXRzKTsKIAogICAgICAgICBpZiAoc25hcHNIb3Jpem9udGFsbHkpIHsK
LSAgICAgICAgICAgIGF1dG8gYWJzb2x1dGVTY3JvbGxYUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xs
U25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBBcmVhLngoKSwgc2Nyb2xsU25hcEFyZWEubWF4WCgp
LCBhbGlnbm1lbnQueCwgc2Nyb2xsZXJJc1JUTCkgLSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zm
c2V0KHNjcm9sbFNuYXBQb3J0LngoKSwgc2Nyb2xsU25hcFBvcnQubWF4WCgpLCBhbGlnbm1lbnQu
eCwgc2Nyb2xsZXJJc1JUTCk7CisgICAgICAgICAgICBhdXRvIGFic29sdXRlU2Nyb2xsWFBvc2l0
aW9uID0gY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChzY3JvbGxTbmFwQXJlYS54KCksIHNj
cm9sbFNuYXBBcmVhLm1heFgoKSwgeEFsaWduLCBzY3JvbGxlcklzUlRMKSAtIGNvbXB1dGVTY3Jv
bGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcFBvcnQueCgpLCBzY3JvbGxTbmFwUG9ydC5tYXhY
KCksIHhBbGlnbiwgc2Nyb2xsZXJJc1JUTCk7CiAgICAgICAgICAgICBhdXRvIGFic29sdXRlU2Ny
b2xsT2Zmc2V0ID0gY2xhbXBUbzxpbnQ+KHNjcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNldEZyb21Q
b3NpdGlvbih7IHJvdW5kVG9JbnQoYWJzb2x1dGVTY3JvbGxYUG9zaXRpb24pLCAwIH0pLngoKSwg
MCwgbWF4U2Nyb2xsT2Zmc2V0LngoKSk7CiAgICAgICAgICAgICBhZGRPclVwZGF0ZVN0b3BGb3JT
bmFwT2Zmc2V0KGhvcml6b250YWxTbmFwT2Zmc2V0c01hcCwgeyBhYnNvbHV0ZVNjcm9sbE9mZnNl
dCwgc3RvcCwgc25hcEFyZWFzLnNpemUoKSAtIDEgfSk7CiAgICAgICAgIH0KICAgICAgICAgaWYg
KHNuYXBzVmVydGljYWxseSkgewotICAgICAgICAgICAgYXV0byBhYnNvbHV0ZVNjcm9sbFlQb3Np
dGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcEFyZWEueSgpLCBz
Y3JvbGxTbmFwQXJlYS5tYXhZKCksIGFsaWdubWVudC55LCBmYWxzZSkgLSBjb21wdXRlU2Nyb2xs
U25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBQb3J0LnkoKSwgc2Nyb2xsU25hcFBvcnQubWF4WSgp
LCBhbGlnbm1lbnQueSwgZmFsc2UpOworICAgICAgICAgICAgYXV0byBhYnNvbHV0ZVNjcm9sbFlQ
b3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcEFyZWEueSgp
LCBzY3JvbGxTbmFwQXJlYS5tYXhZKCksIHlBbGlnbiwgZmFsc2UpIC0gY29tcHV0ZVNjcm9sbFNu
YXBBbGlnbk9mZnNldChzY3JvbGxTbmFwUG9ydC55KCksIHNjcm9sbFNuYXBQb3J0Lm1heFkoKSwg
eUFsaWduLCBmYWxzZSk7CiAgICAgICAgICAgICBhdXRvIGFic29sdXRlU2Nyb2xsT2Zmc2V0ID0g
Y2xhbXBUbzxpbnQ+KHNjcm9sbGFibGVBcmVhLnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbih7IDAs
IHJvdW5kVG9JbnQoYWJzb2x1dGVTY3JvbGxZUG9zaXRpb24pIH0pLnkoKSwgMCwgbWF4U2Nyb2xs
T2Zmc2V0LnkoKSk7CiAgICAgICAgICAgICBhZGRPclVwZGF0ZVN0b3BGb3JTbmFwT2Zmc2V0KHZl
cnRpY2FsU25hcE9mZnNldHNNYXAsIHsgYWJzb2x1dGVTY3JvbGxPZmZzZXQsIHN0b3AsIHNuYXBB
cmVhcy5zaXplKCkgLSAxIH0pOwogICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFzbmFwQXJlYXMu
aXNFbXB0eSgpKQotICAgICAgICAgICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbFNuYXAsIHN0cmVh
bSA8PCAiID0+IENvbXB1dGVkIHNuYXAgYXJlYXM6ICIgPDwgc25hcEFyZWFzKTsKICAgICB9CiAK
ICAgICBhdXRvIGNvbXBhcmVTbmFwT2Zmc2V0cyA9IFtdKGNvbnN0IFNuYXBPZmZzZXQ8TGF5b3V0
VW5pdD4mIGEsIGNvbnN0IFNuYXBPZmZzZXQ8TGF5b3V0VW5pdD4mIGIpCkBAIC0yNzYsNiArMjg1
LDkgQEAgdm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVB
cmVhJiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmUKICAgICAgICAgcmV0dXJuIGEub2Zmc2V0IDwg
Yi5vZmZzZXQ7CiAgICAgfTsKIAorICAgIGlmICghc25hcEFyZWFzLmlzRW1wdHkoKSkKKyAgICAg
ICAgTE9HX1dJVEhfU1RSRUFNKFNjcm9sbFNuYXAsIHN0cmVhbSA8PCAiID0+IENvbXB1dGVkIHNu
YXAgYXJlYXM6ICIgPDwgc25hcEFyZWFzKTsKKwogICAgIFZlY3RvcjxTbmFwT2Zmc2V0PExheW91
dFVuaXQ+PiBob3Jpem9udGFsU25hcE9mZnNldHMgPSBjb3B5VG9WZWN0b3IoaG9yaXpvbnRhbFNu
YXBPZmZzZXRzTWFwLnZhbHVlcygpKTsKICAgICBpZiAoIWhvcml6b250YWxTbmFwT2Zmc2V0cy5p
c0VtcHR5KCkpIHsKICAgICAgICAgc3RkOjpzb3J0KGhvcml6b250YWxTbmFwT2Zmc2V0cy5iZWdp
bigpLCBob3Jpem9udGFsU25hcE9mZnNldHMuZW5kKCksIGNvbXBhcmVTbmFwT2Zmc2V0cyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0
c0luZm8uaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRz
SW5mby5oCmluZGV4IDE1NWE5NzQ2MWQyMGMwNzU2N2RlYmZiZGViOGZiNjA0MjQ1YmQ1ZGIuLjFh
OTNhNGY4MTk4YzI0ZGQ1NWM2OGFiNTQ3MzdjNjNkZjdiMDU5NGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5oCkBAIC05
Niw3ICs5Niw3IEBAIGNvbnN0IHVuc2lnbmVkIGludmFsaWRTbmFwT2Zmc2V0SW5kZXggPSBVSU5U
X01BWDsKIC8vIFVwZGF0ZSB0aGUgc25hcCBvZmZzZXRzIGZvciB0aGlzIHNjcm9sbGFibGUgYXJl
YSwgZ2l2ZW4gdGhlIFJlbmRlckJveCBvZiB0aGUgc2Nyb2xsIGNvbnRhaW5lciwgdGhlIFJlbmRl
clN0eWxlCiAvLyB3aGljaCBkZWZpbmVzIHRoZSBzY3JvbGwtc25hcCBwcm9wZXJ0aWVzLCBhbmQg
dGhlIHZpZXdwb3J0IHJlY3RhbmdsZSB3aXRoIHRoZSBvcmlnaW4gYXQgdGhlIHRvcCBsZWZ0IG9m
CiAvLyB0aGUgc2Nyb2xsaW5nIGNvbnRhaW5lcidzIGJvcmRlciBib3guCi12b2lkIHVwZGF0ZVNu
YXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmLCBjb25zdCBSZW5kZXJC
b3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0eWxlJiBzY3JvbGxpbmdFbGVt
ZW50U3R5bGUsIExheW91dFJlY3Qgdmlld3BvcnRSZWN0SW5Cb3JkZXJCb3hDb29yZGluYXRlcyk7
Cit2b2lkIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEm
LCBjb25zdCBSZW5kZXJCb3gmIHNjcm9sbGluZ0VsZW1lbnRCb3gsIGNvbnN0IFJlbmRlclN0eWxl
JiBzY3JvbGxpbmdFbGVtZW50U3R5bGUsIExheW91dFJlY3Qgdmlld3BvcnRSZWN0SW5Cb3JkZXJC
b3hDb29yZGluYXRlcywgV3JpdGluZ01vZGUsIFRleHREaXJlY3Rpb24pOwogCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVD4gV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYg
dHMsIFNuYXBPZmZzZXQ8VD4gb2Zmc2V0KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCmluZGV4IGI0MGQwYjg5MWQy
NGM5YmJkMWZjYTkzZjQ0NzdmN2VkNThlYzNmMTYuLjU5MmM2NGMxYjBmZWNmN2MwNzRmMGY4ZDVh
MjdjOWE0YjBkMzQ1ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKQEAgLTE0NjksNyArMTQ2OSw3IEBAIHZvaWQg
UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IG1fbGF5ZXIuZW5jbG9zaW5nRWxlbWVudCgp
LT5yZW5kZXJCb3goKTsKLSAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0
aGlzLCAqYm94LCBib3gtPnN0eWxlKCksIGJveC0+cGFkZGluZ0JveFJlY3QoKSk7CisgICAgdXBk
YXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhpcywgKmJveCwgYm94LT5zdHlsZSgp
LCBib3gtPnBhZGRpbmdCb3hSZWN0KCksIGJveC0+c3R5bGUoKS53cml0aW5nTW9kZSgpLCBib3gt
PnN0eWxlKCkuZGlyZWN0aW9uKCkpOwogfQogCiBib29sIFJlbmRlckxheWVyU2Nyb2xsYWJsZUFy
ZWE6OmlzU2Nyb2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggYWNkZGZkMDMxZjJiMjk3ZTk1MzVi
MjYyYjg1YWJhN2E3NDhmYmZkYS4uNjI2MTFmZmFmYTczOWY5MzQ5MWMzMGM0OTUzZjBmYjFiYWM4
YmZkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwCkBAIC0yNTc4LDcgKzI1NzgsNyBAQCB2b2lkIFJlbmRlclN0eWxlOjpzZXRTY3JvbGxTbmFw
U3RvcChjb25zdCBTY3JvbGxTbmFwU3RvcCBzdG9wKQogYm9vbCBSZW5kZXJTdHlsZTo6aGFzU25h
cFBvc2l0aW9uKCkgY29uc3QKIHsKICAgICBjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGFsaWdubWVu
dCA9IHRoaXMtPnNjcm9sbFNuYXBBbGlnbigpOwotICAgIHJldHVybiBhbGlnbm1lbnQueCAhPSBT
Y3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB8fCBhbGlnbm1lbnQueSAhPSBTY3JvbGxTbmFw
QXhpc0FsaWduVHlwZTo6Tm9uZTsKKyAgICByZXR1cm4gYWxpZ25tZW50LmJsb2NrQWxpZ24gIT0g
U2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfHwgYWxpZ25tZW50LmlubGluZUFsaWduICE9
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaApp
bmRleCBiZjUzNTVkMGEwYmFmZDU4YjFmYTM4MGNiNGVjYzYxYjNlZDMzZGY0Li5hMzcxNDA1MWY4
NDA1NGVlOGRjOGZiNmRmYzNhNDViYWM0NGNjNjY3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2Nyb2xsU25hcFBvaW50cy5oCkBAIC00OCwxMyAr
NDgsMTMgQEAgaW5saW5lIGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JvbGxTbmFwVHlwZSYgYSwg
Y29uc3QgU2Nyb2xsU25hcFR5cGUmIGIpCiBpbmxpbmUgYm9vbCBvcGVyYXRvciE9KGNvbnN0IFNj
cm9sbFNuYXBUeXBlJiBhLCBjb25zdCBTY3JvbGxTbmFwVHlwZSYgYikgeyByZXR1cm4gIShhID09
IGIpOyB9CiAKIHN0cnVjdCBTY3JvbGxTbmFwQWxpZ24gewotICAgIFNjcm9sbFNuYXBBeGlzQWxp
Z25UeXBlIHggeyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9OwotICAgIFNjcm9sbFNu
YXBBeGlzQWxpZ25UeXBlIHkgeyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9OworICAg
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGJsb2NrQWxpZ24geyBTY3JvbGxTbmFwQXhpc0FsaWdu
VHlwZTo6Tm9uZSB9OworICAgIFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIGlubGluZUFsaWduIHsg
U2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmUgfTsKIH07CiAKIGlubGluZSBib29sIG9wZXJh
dG9yPT0oY29uc3QgU2Nyb2xsU25hcEFsaWduJiBhLCBjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGIp
CiB7Ci0gICAgcmV0dXJuIGEueCA9PSBiLnggJiYgYS55ID09IGIueTsKKyAgICByZXR1cm4gYS5i
bG9ja0FsaWduID09IGIuYmxvY2tBbGlnbiAmJiBhLmlubGluZUFsaWduID09IGIuaW5saW5lQWxp
Z247CiB9CiAKIGlubGluZSBib29sIG9wZXJhdG9yIT0oY29uc3QgU2Nyb2xsU25hcEFsaWduJiBh
LCBjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGIpIHsgcmV0dXJuICEoYSA9PSBiKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaAppbmRleCBiZjUyNzQ0YTM4
NDAzMmYwYzYzNThmMDc0MWJiYWU4YmJmMWViYmQxLi44Y2Y0MTY5YzE3MWY1ZjIzZjNlMzk4Mzlh
Y2NjZGU0MmUyMWY0YzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1
aWxkZXJDb252ZXJ0ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJD
b252ZXJ0ZXIuaApAQCAtOTIyLDExICs5MjIsMTEgQEAgaW5saW5lIFNjcm9sbFNuYXBBbGlnbiBC
dWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xsU25hcEFsaWduKEJ1aWxkZXJTdGF0ZSYsIGMK
IHsKICAgICBhdXRvJiB2YWx1ZXMgPSBkb3duY2FzdDxDU1NWYWx1ZUxpc3Q+KHZhbHVlKTsKICAg
ICBTY3JvbGxTbmFwQWxpZ24gYWxpZ25tZW50OwotICAgIGFsaWdubWVudC55ID0gZG93bmNhc3Q8
Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZXMuaXRlbSgwKSk7CisgICAgYWxpZ25tZW50LmJsb2Nr
QWxpZ24gPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDApKTsKICAg
ICBpZiAodmFsdWVzLmxlbmd0aCgpID09IDEpCi0gICAgICAgIGFsaWdubWVudC54ID0gYWxpZ25t
ZW50Lnk7CisgICAgICAgIGFsaWdubWVudC5pbmxpbmVBbGlnbiA9IGFsaWdubWVudC5ibG9ja0Fs
aWduOwogICAgIGVsc2UKLSAgICAgICAgYWxpZ25tZW50LnggPSBkb3duY2FzdDxDU1NQcmltaXRp
dmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDEpKTsKKyAgICAgICAgYWxpZ25tZW50LmlubGluZUFsaWdu
ID0gZG93bmNhc3Q8Q1NTUHJpbWl0aXZlVmFsdWU+KCp2YWx1ZXMuaXRlbSgxKSk7CiAgICAgcmV0
dXJuIGFsaWdubWVudDsKIH0KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGFmZWM1OWNmNWMzNzhmYmUzOWYxZTIwZGI2YjJi
YWI2MTQxZDI1MDguLjAzMWUwOTNkOGRiYzU2NTJkNjQyZjcwOGY3NGNjMGI0MGM0MmU0YzMgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSwxNCBAQAorMjAyMS0wNS0yMCAgTWFydGluIFJvYmluc29uICA8bXJvYmlu
c29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gU2Nyb2xsIHNuYXAg
aXMgYnJva2VuIHdpdGggbm9uLWhvcml6b250YWwgd3JpdGluZyBtb2RlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDEwCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOiBN
YXJrIG9uZSB0ZXN0IGFzIHBhc3NpbmcuCisgICAgICAgICogcGxhdGZvcm0vaW9zLXdrMi9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXNu
YXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAq
IHBsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Ny
b2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0OgorCiAyMDIxLTA1LTMxICBZ
b3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBHbyB0byBuZXR3b3Jr
IGluIGNhc2UgZmV0Y2ggZXZlbnQgaXMgbm90IHlldCByZXNwb25kZWQgd2hlbiBiZWluZyBkZXN0
cm95ZWQgaW5zdGVhZCBvZiBmYWlsaW5nIHRoZSBsb2FkCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwppbmRleCBhZmUwYTc5MWI5ZTE4ZWNlNTBjMTNkZTg1N2YwNTVmZTA0MGZmNmNkLi41Zjcz
OWNlODc5ZTYxYWExMGRmMTg4ODczNzI4MzM4OGMwNDE1NmJhIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAyMS0wNS0yMCAgTWFydGluIFJvYmluc29u
ICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nzcy1zY3JvbGwtc25hcF0gU2Ny
b2xsIHNuYXAgaXMgYnJva2VuIHdpdGggbm9uLWhvcml6b250YWwgd3JpdGluZyBtb2RlcworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI2MDEwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxl
bWVudC1leHBlY3RlZC50eHQ6IFVwZGF0ZSBleHBlY3RhdGlvbnMgdG8gbWFyayB0ZXN0cyBhcyBw
YXNzaW5nLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFw
L3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dDogRGl0dG8uCisKIDIwMjEtMDUtMjggIFJv
YiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBXZWJraXQgZG9lc24ndCBjYWxj
dWxhdGUgcGFkZGluZy10b3AvLWJvdHRvbSBpbiAlIGNvcnJlY3RseSB3aGVuIHBhcmVudCBoYXMg
cGFkZGluZwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWI3ZWExNzgyOTZkM2UwMGQ5ZDM2ZGUwY2Uz
ZDhmYmMwYzg4NzExYi4uOGQzM2NjMmI0YWQ2ZjdiYzU4YzQ5YTIyMDY0ODQ5Y2EwZjQ4NmY2ZSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00NTQwLDcgKzQ1NDAsNiBAQCBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc2Nyb2xsLXRhcmdldC1zbmFwLTAw
My5odG1sCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNu
YXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91dC9kaXJlY3Rpb24tcnRsLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zbmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3Njcm9sbC1zbmFwLWluaXRpYWwtbGF5
b3V0LTAwMC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1hZnRlci1pbml0aWFsLWxheW91dC9z
Y3JvbGwtc25hcC13cml0aW5nLW1vZGUtMDAwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFm
dGVyLWluaXRpYWwtbGF5b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sIFsgSW1hZ2VP
bmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE4MzI1IGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0LW1hcmdpbi0wMDEuaHRt
bCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjE4MzI1IGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFyZ2V0
LW1hcmdpbi0wMDMuaHRtbCBbIFBhc3MgSW1hZ2VPbmx5RmFpbHVyZSBdCiAKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3Jv
bGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CmluZGV4
IDMwODlmY2FiMTZkMWNlOWZmODlmY2Q4ZGZhNzc2MGI5ZjI2MjU0MzUuLjIzOWZlNzQ5ZTMxYzU0
NzIyYzJlZWM1MjNiYmMzOGNmZWM3YjJhMGYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25h
cC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1z
bmFwLXR5cGUtb24tcm9vdC1lbGVtZW50LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAog
UEFTUyBUaGUgc2Nyb2xsLXNuYXAtdHlwZSBvbiB0aGUgcm9vdCBlbGVtZW50IGlzIGFwcGxpZWQK
LUZBSUwgVGhlIHdyaXRpbmctbW9kZSAodmVydGljYWwtbHIpIG9uIHRoZSBib2R5IGlzIHVzZWQg
YXNzZXJ0X2VxdWFsczogaW5saW5lIHNob3VsZCBzbmFwIGV4cGVjdGVkIDUxNSBidXQgZ290IDgw
MAorUEFTUyBUaGUgd3JpdGluZy1tb2RlICh2ZXJ0aWNhbC1scikgb24gdGhlIGJvZHkgaXMgdXNl
ZAogUEFTUyBUaGUgd3JpdGluZy1tb2RlIChob3Jpem9udGFsLXRiKSBvbiB0aGUgYm9keSBpcyB1
c2VkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Ny
b2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IGQ2Yjc3OTU3MmI2
NDMxOTZjY2I5ZDdkZWRiY2EyMDEwZTkxODdlMWYuLmY2NzhmMmQxMjU5M2VlYmFkM2UyN2MxOTIy
ODQzOGQ1MzkwNzVkZWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dApAQCAt
MSwxMCArMSwxMCBAQAogCiBQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3
cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50
Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMzAwCi1GQUlMIFNuYXBz
IGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFw
LWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVj
dGx5IG9uIHkgZXhwZWN0ZWQgMzAwIGJ1dCBnb3QgMTY1Ci1GQUlMIFNuYXBzIGNvcnJlY3RseSBm
b3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0
YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBl
eHBlY3RlZCAxMTUgYnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwt
bHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdu
bWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMzAwIGJ1
dCBnb3QgMAotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcgbW9k
ZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2Vx
dWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDMwMAotRkFJ
TCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAt
YWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0
bHkgb24geSBleHBlY3RlZCAxNjUgYnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3Ig
J2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGln
bm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDMwMCBi
dXQgZ290IDAKK1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1v
ZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CitQQVNTIFNu
YXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1z
bmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9y
IGhvcml6b250YWwtdGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFy
dCBlbmQnIGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdy
aXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQK
K1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAn
c2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNvcnJl
Y3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0
YXJ0JyBhbGlnbm1lbnQKK1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwn
IHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxl
bWVudC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10
eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IGUxMzZjYTlkZWVmMTVlNmZkNmY3MWY0Nzg5MDY1M2E5Mzg4MTk1NjEuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vaW9zLXdrMi9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsNSArMCwwIEBACi0KLVBBU1MgVGhlIHNjcm9sbC1zbmFwLXR5cGUgb24g
dGhlIHJvb3QgZWxlbWVudCBpcyBhcHBsaWVkCi1GQUlMIFRoZSB3cml0aW5nLW1vZGUgKHZlcnRp
Y2FsLWxyKSBvbiB0aGUgYm9keSBpcyB1c2VkIGFzc2VydF9lcXVhbHM6IGlubGluZSBzaG91bGQg
c25hcCBleHBlY3RlZCA1MDAgYnV0IGdvdCA4MDAKLVBBU1MgVGhlIHdyaXRpbmctbW9kZSAoaG9y
aXpvbnRhbC10Yikgb24gdGhlIGJvZHkgaXMgdXNlZAotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
cm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0CmluZGV4IDY4ZDhlZDdjNDMwNzYz
NjNlZjIzNTNjZmVhZDIxNGE2NzRlZDUyYWIuLjM0OGEyNDBkNjkyMTc0ZWRlOGNjMTMyNjUwMzgx
Y2Q3MWU5MDY5MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUt
YmxvY2stZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUt
YmxvY2stZXhwZWN0ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVj
dGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGln
bjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNh
bC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxp
Z25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUg
YnV0IGdvdCAzMDAKK1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5n
IG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CiBGQUlM
IFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMg
Y29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKIEZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1h
bGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3Rs
eSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2
ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVu
ZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3Rl
ZCAzMDAgYnV0IGdvdCAwCiBGQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwgd3Jp
dGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBh
c3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290
IC00ODUKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Nj
cm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGln
bnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQgZ290IC00ODUKLUZBSUwgU25hcHMg
Y29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBz
dGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHgg
ZXhwZWN0ZWQgLTMxNSBidXQgZ290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGly
ZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVu
dCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTUwMCBidXQg
Z290IC0zMDAKK0ZBSUwgU25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGgg
J3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBh
bGlnbnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgLTMxNSBidXQgZ290IC00ODUKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430329</attachid>
            <date>2021-06-02 02:39:48 -0700</date>
            <delta_ts>2021-06-02 05:37:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-226010-20210602113946.patch</filename>
            <type>text/plain</type>
            <size>25426</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc4Mjc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGZhYjlkMzBkN2EyZjhh
ZDQ0NGJhZjZmMDUwNjc2MmE4YmUzZDQ0Ny4uZWVhYzgyNDNhNzAxMDI0YWU2NDBlYWUwODZiOTg2
MzUzNjk3NTYxNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDIxLTA1LTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9s
bC1zbmFwXSBTY3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5n
IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBG
aXggaXNzdWVzIHJlbGF0ZWQgdG8gdmVydGljYWwgd3JpdGluZyBtb2RlcyBhbmQgc2Nyb2xsIHNu
YXAuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgZml4ZXMgdGhyZWUgZXhpc3RpbmcgV1BUIHRlc3Rz
LgorICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNj
cm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50Lmh0bWwKKyAgICAgICAg
ICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L3dyaXRpbmctbW9kZS12ZXJ0aWNhbC1sci5odG1sCisg
ICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xs
LXNuYXAvc25hcC1pbmxpbmUtYmxvY2suaHRtbAorCisgICAgICAgICogY3NzL0NTU0NvbXB1dGVk
U3R5bGVEZWNsYXJhdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjp2YWx1ZUZvclNjcm9sbFNu
YXBBbGlnbm1lbnQpOiBVcGRhdGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzIG9mIFNjcm9s
bFNuYXBBbGlnbi4KKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlldy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpGcmFtZVZpZXc6OnVwZGF0ZVNuYXBPZmZzZXRzKTogUGFzcyBpbiB0aGUgdGV4dCBkaXJl
Y3Rpb24gYW5kIHdyaXRpbmcgbW9kZSBvZiB0aGUKKyAgICAgICAgY29udGFpbmVyLCBhbGxvd2lu
ZyB0aGUgdmFsdWVzIHNwZWNpZmllZCBvbiB0aGUgYm9keSB0byBvdmVycmlkZSB0aG9zZSBzcGVj
aWZpZWQgb24gdGhlIHJvb3QKKyAgICAgICAgZWxlbWVudC4KKyAgICAgICAgKiBwYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwOgorICAgICAgICAoV2ViQ29yZTo6dXBkYXRl
U25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSk6IFByb3Blcmx5IGhhbmRsZSB0aGUgd3JpdGlu
ZyBtb2RlIGFuZCB0aGUKKyAgICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIGNvbnRhaW5lci4K
KyAgICAgICAgKiBwYWdlL3Njcm9sbGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uaDogVXBkYXRl
IGZ1bmN0aW9uIHNpZ25hdHVyZS4KKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyTGF5ZXJNb2Rl
bE9iamVjdC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpzY3JvbGxTbmFwQ29udGFpbmVyUmVxdWly
ZXNVcGRhdGVGb3JTdHlsZVVwZGF0ZSk6IFBhc3MgaW4gdGhlIHdyaXRpbmcgbW9kZSBhbmQKKyAg
ICAgICAgdGV4dCBkaXJlY3Rpb24gb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIuCisgICAgICAg
ICogcmVuZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6UmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYTo6dXBkYXRlU25hcE9mZnNldHMpOiBVcGRh
dGUgdG8gcmVmbGVjdCBuZXcgbWVtYmVyIG5hbWVzCisgICAgICAgIG9mIFNjcm9sbFNuYXBBbGln
bi4KKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyU3R5bGU6Omhhc1NuYXBQb3NpdGlvbiBjb25zdCk6IERpdHRvLgorICAg
ICAgICAqIHJlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaDogQ2hhbmdlIHRo
ZSBuYW1lIG9mIHRoZSBtZW1iZXJzIG9mIFNjcm9sbFNuYXBBbGlnbgorICAgICAgICB0byBtYXRj
aCB3aGF0IGlzIGRlc2NyaWJlZCBpbiB0aGUgc3BlY2lmaWNhdGlvbi4gVGhlIHZhbHVlcyBwcm92
aWRlZCBhcmUgZm9yIGJsb2NrIGFuZAorICAgICAgICBpbmxpbmUgZGlyZWN0aW9ucywgYnV0IGRl
cGVuZGluZyBvbiB0aGUgc2Nyb2xsIGNvbnRhaW5lci4KKyAgICAgICAgKFdlYkNvcmU6Om9wZXJh
dG9yPT0pOiBEaXR0by4KKyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0U2Nyb2xs
U25hcEFsaWduKTogRGl0dG8uCisKIDIwMjEtMDUtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgogCiAgICAgICAgIEdvIHRvIG5ldHdvcmsgaW4gY2FzZSBmZXRjaCBldmVudCBp
cyBub3QgeWV0IHJlc3BvbmRlZCB3aGVuIGJlaW5nIGRlc3Ryb3llZCBpbnN0ZWFkIG9mIGZhaWxp
bmcgdGhlIGxvYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NDb21wdXRlZFN0
eWxlRGVjbGFyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVE
ZWNsYXJhdGlvbi5jcHAKaW5kZXggYzRiYjk2NTE3OTdlZGY3YzZhMzJhYjEwYjI3OGQ1Mjk4ZTM5
MjZhZC4uYTUwZWRmZTJjZWNjMmZlOTk0NTAxYTcwMzdiNmQwMmE2ZTI3M2ZlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0NvbXB1dGVkU3R5bGVEZWNsYXJhdGlvbi5jcHAKQEAg
LTExMDAsOSArMTEwMCw5IEBAIHN0YXRpYyBSZWY8Q1NTVmFsdWVMaXN0PiB2YWx1ZUZvclNjcm9s
bFNuYXBUeXBlKGNvbnN0IFNjcm9sbFNuYXBUeXBlJiB0eXBlKQogc3RhdGljIFJlZjxDU1NWYWx1
ZUxpc3Q+IHZhbHVlRm9yU2Nyb2xsU25hcEFsaWdubWVudChjb25zdCBTY3JvbGxTbmFwQWxpZ24m
IGFsaWdubWVudCkKIHsKICAgICBhdXRvIHZhbHVlID0gQ1NTVmFsdWVMaXN0OjpjcmVhdGVTcGFj
ZVNlcGFyYXRlZCgpOwotICAgIHZhbHVlLT5hcHBlbmQoQ1NTUHJpbWl0aXZlVmFsdWU6OmNyZWF0
ZShhbGlnbm1lbnQueSkpOwotICAgIGlmIChhbGlnbm1lbnQueCAhPSBhbGlnbm1lbnQueSkKLSAg
ICAgICAgdmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVudC54
KSk7CisgICAgdmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6Y3JlYXRlKGFsaWdubWVu
dC5ibG9ja0FsaWduKSk7CisgICAgaWYgKGFsaWdubWVudC5pbmxpbmVBbGlnbiAhPSBhbGlnbm1l
bnQuYmxvY2tBbGlnbikKKyAgICAgICAgdmFsdWUtPmFwcGVuZChDU1NQcmltaXRpdmVWYWx1ZTo6
Y3JlYXRlKGFsaWdubWVudC5pbmxpbmVBbGlnbikpOwogICAgIHJldHVybiB2YWx1ZTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXcuY3BwCmluZGV4IDJhOTU2YzI5YTM3NGUwYjFkODczNGMxYzdl
ODllZDQ4NGFhZWVmNmUuLjA1YTU3OGY0MTUwNDdlMjRkOGY0Y2E2ZWYwZjZmNjMyOGQyYmM1NWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlldy5jcHAKQEAgLTk0OSw3ICs5NDksNyBAQCB2b2lkIEZy
YW1lVmlldzo6dXBkYXRlU25hcE9mZnNldHMoKQogICAgIExheW91dFJlY3Qgdmlld3BvcnQgPSBM
YXlvdXRSZWN0KEludFBvaW50KCksIGJhc2VMYXlvdXRWaWV3cG9ydFNpemUoKSk7CiAgICAgdmll
d3BvcnQubW92ZSgtcm9vdFJlbmRlcmVyLT5tYXJnaW5MZWZ0KCksIC1yb290UmVuZGVyZXItPm1h
cmdpblRvcCgpKTsKIAotICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoKnRo
aXMsICpyb290UmVuZGVyZXIsICpzdHlsZVRvVXNlLCB2aWV3cG9ydCk7CisgICAgdXBkYXRlU25h
cE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYSgqdGhpcywgKnJvb3RSZW5kZXJlciwgKnN0eWxlVG9V
c2UsIHZpZXdwb3J0LCByb290UmVuZGVyZXItPnN0eWxlKCkud3JpdGluZ01vZGUoKSwgcm9vdFJl
bmRlcmVyLT5zdHlsZSgpLmRpcmVjdGlvbigpKTsKIH0KIAogYm9vbCBGcmFtZVZpZXc6OmlzU2Ny
b2xsU25hcEluUHJvZ3Jlc3MoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFn
ZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2Uvc2Nyb2xsaW5nL1Njcm9sbFNuYXBPZmZzZXRzSW5mby5jcHAKaW5kZXggZGExMWVjMDVmYzU3
Nzc5ODZiZDA4ZGQ0ZmYyZjY4Yzg4OTgzNTFkYi4uZDA5NGU0OTAxZTdhNjBjODY0OGVhNGM5ODVh
MWM0ZTZhODI4NmUzZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcv
U2Nyb2xsU25hcE9mZnNldHNJbmZvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL3Njcm9s
bGluZy9TY3JvbGxTbmFwT2Zmc2V0c0luZm8uY3BwCkBAIC0xOTcsNyArMTk3LDcgQEAgc3RhdGlj
IExheW91dFVuaXQgY29tcHV0ZVNjcm9sbFNuYXBBbGlnbk9mZnNldChMYXlvdXRVbml0IG1pbkxv
Y2F0aW9uLCBMYXlvdXRVbmkKICAgICB9CiB9CiAKLXZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JT
Y3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlbmRl
ckJveCYgc2Nyb2xsaW5nRWxlbWVudEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHNjcm9sbGluZ0Vs
ZW1lbnRTdHlsZSwgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJvcmRlckJveENvb3JkaW5hdGVz
KQordm9pZCB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVh
JiBzY3JvbGxhYmxlQXJlYSwgY29uc3QgUmVuZGVyQm94JiBzY3JvbGxpbmdFbGVtZW50Qm94LCBj
b25zdCBSZW5kZXJTdHlsZSYgc2Nyb2xsaW5nRWxlbWVudFN0eWxlLCBMYXlvdXRSZWN0IHZpZXdw
b3J0UmVjdEluQm9yZGVyQm94Q29vcmRpbmF0ZXMsIFdyaXRpbmdNb2RlIHdyaXRpbmdNb2RlLCBU
ZXh0RGlyZWN0aW9uIHRleHREaXJlY3Rpb24pCiB7CiAgICAgYXV0byBzY3JvbGxTbmFwVHlwZSA9
IHNjcm9sbGluZ0VsZW1lbnRTdHlsZS5zY3JvbGxTbmFwVHlwZSgpOwogICAgIGNvbnN0IGF1dG8m
IGJveGVzV2l0aFNjcm9sbFNuYXBQb3NpdGlvbnMgPSBzY3JvbGxpbmdFbGVtZW50Qm94LnZpZXco
KS5ib3hlc1dpdGhTY3JvbGxTbmFwUG9zaXRpb25zKCk7CkBAIC0yMTcsMTIgKzIxNywyOCBAQCB2
b2lkIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xsYWJsZUFyZWEoU2Nyb2xsYWJsZUFyZWEmIHNj
cm9sbGFibGVBcmVhLCBjb25zdCBSZQogICAgIEhhc2hNYXA8ZmxvYXQsIFNuYXBPZmZzZXQ8TGF5
b3V0VW5pdD4+IHZlcnRpY2FsU25hcE9mZnNldHNNYXA7CiAgICAgSGFzaE1hcDxmbG9hdCwgU25h
cE9mZnNldDxMYXlvdXRVbml0Pj4gaG9yaXpvbnRhbFNuYXBPZmZzZXRzTWFwOwogICAgIFZlY3Rv
cjxMYXlvdXRSZWN0PiBzbmFwQXJlYXM7Ci0gICAgYm9vbCBoYXNIb3Jpem9udGFsU25hcE9mZnNl
dHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpCb3RoIHx8IHNjcm9s
bFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OlhBeGlzIHx8IHNjcm9sbFNuYXBUeXBl
LmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OklubGluZTsKLSAgICBib29sIGhhc1ZlcnRpY2FsU25h
cE9mZnNldHMgPSBzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpCb3RoIHx8
IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OllBeGlzIHx8IHNjcm9sbFNu
YXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJsb2NrOwogCiAgICAgYXV0byBtYXhTY3Jv
bGxPZmZzZXQgPSBzY3JvbGxhYmxlQXJlYS5tYXhpbXVtU2Nyb2xsT2Zmc2V0KCk7CiAgICAgYXV0
byBzY3JvbGxQb3NpdGlvbiA9IExheW91dFBvaW50IHsgc2Nyb2xsYWJsZUFyZWEuc2Nyb2xsUG9z
aXRpb24oKSB9OwotICAgIGJvb2wgc2Nyb2xsZXJJc1JUTCA9ICFzY3JvbGxpbmdFbGVtZW50Qm94
LnN0eWxlKCkuaXNMZWZ0VG9SaWdodERpcmVjdGlvbigpOworCisgICAgLy8gdGV4dC1kaXJlY3Rp
b24gZmxpcHMgdGhlIGlubGluZSBheGlzIGFuZCB3cml0aW5nLW1vZGUgY2FuIGZsaXAgdGhlIGJs
b2NrIGF4aXMuIFdoZXRoZXIgb3IKKyAgICAvLyBub3QgdGhlIHdyaXRpbmctbW9kZSBpcyB2ZXJ0
aWNhbCBkZXRlcm1pbmVzIHRoZSBwaHlzaWNhbCBvcmllbnRhdGlvbiBvZiB0aGUgYmxvY2sgYW5k
IGlubGluZSBheGVzLgorICAgIGJvb2wgc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID0g
aXNWZXJ0aWNhbFdyaXRpbmdNb2RlKHdyaXRpbmdNb2RlKTsKKyAgICBib29sIGJsb2NrQXhpc0Zs
aXBwZWQgPSBpc0ZsaXBwZWRXcml0aW5nTW9kZSh3cml0aW5nTW9kZSk7CisgICAgYm9vbCBpbmxp
bmVBeGlzRmxpcHBlZCA9IHRleHREaXJlY3Rpb24gPT0gVGV4dERpcmVjdGlvbjo6UlRMOworICAg
IGJvb2wgeEF4aXNGbGlwcGVkID0gc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID8gYmxv
Y2tBeGlzRmxpcHBlZCA6IGlubGluZUF4aXNGbGlwcGVkOworICAgIGJvb2wgeUF4aXNGbGlwcGVk
ID0gc2Nyb2xsZXJIYXNWZXJ0aWNhbFdyaXRpbmdNb2RlID8gaW5saW5lQXhpc0ZsaXBwZWQgOiBi
bG9ja0F4aXNGbGlwcGVkOworCisgICAgYm9vbCBoYXNIb3Jpem9udGFsU25hcE9mZnNldHMgPSBz
Y3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9sbFNuYXBBeGlzOjpCb3RoIHx8IHNjcm9sbFNuYXBU
eXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OlhBeGlzOworICAgIGJvb2wgaGFzVmVydGljYWxT
bmFwT2Zmc2V0cyA9IHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJvdGgg
fHwgc2Nyb2xsU25hcFR5cGUuYXhpcyA9PSBTY3JvbGxTbmFwQXhpczo6WUF4aXM7CisgICAgaWYg
KHNjcm9sbFNuYXBUeXBlLmF4aXMgPT0gU2Nyb2xsU25hcEF4aXM6OkJsb2NrKSB7CisgICAgICAg
IGhhc0hvcml6b250YWxTbmFwT2Zmc2V0cyA9IHNjcm9sbGVySGFzVmVydGljYWxXcml0aW5nTW9k
ZTsKKyAgICAgICAgaGFzVmVydGljYWxTbmFwT2Zmc2V0cyA9ICFzY3JvbGxlckhhc1ZlcnRpY2Fs
V3JpdGluZ01vZGU7CisgICAgfQorICAgIGlmIChzY3JvbGxTbmFwVHlwZS5heGlzID09IFNjcm9s
bFNuYXBBeGlzOjpJbmxpbmUpIHsKKyAgICAgICAgaGFzSG9yaXpvbnRhbFNuYXBPZmZzZXRzID0g
IXNjcm9sbGVySGFzVmVydGljYWxXcml0aW5nTW9kZTsKKyAgICAgICAgaGFzVmVydGljYWxTbmFw
T2Zmc2V0cyA9IHNjcm9sbGVySGFzVmVydGljYWxXcml0aW5nTW9kZTsKKyAgICB9CiAKICAgICAv
LyBUaGUgYm91bmRzIG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3Mgc25hcCBwb3J0LCB3aGVy
ZSB0aGUgdG9wIGxlZnQgb2YgdGhlIHNjcm9sbGluZyBjb250YWluZXIncyBib3JkZXIgYm94IGlz
IHRoZSBvcmlnaW4uCiAgICAgYXV0byBzY3JvbGxTbmFwUG9ydCA9IGNvbXB1dGVTY3JvbGxTbmFw
UG9ydE9yQXJlYVJlY3Qodmlld3BvcnRSZWN0SW5Cb3JkZXJCb3hDb29yZGluYXRlcywgc2Nyb2xs
aW5nRWxlbWVudFN0eWxlLnNjcm9sbFBhZGRpbmcoKSwgSW5zZXRPck91dHNldDo6SW5zZXQpOwpA
QCAtMjMzLDcgKzI0OSw2IEBAIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJl
YShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlCiAKICAgICAgICAgLy8g
VGhlIGJvdW5kcyBvZiB0aGUgY2hpbGQgZWxlbWVudCdzIHNuYXAgYXJlYSwgd2hlcmUgdGhlIHRv
cCBsZWZ0IG9mIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3MgYm9yZGVyIGJveCBpcyB0aGUgb3Jp
Z2luLgogICAgICAgICAvLyBUaGUgc25hcCBhcmVhIGlzIHRoZSBib3VuZGluZyBib3ggb2YgdGhl
IGNoaWxkIGVsZW1lbnQncyBib3JkZXIgYm94LCBhZnRlciBhcHBseWluZyB0cmFuc2Zvcm1hdGlv
bnMuCi0gICAgICAgIC8vIEZJWE1FOiBGb3Igbm93LCBqdXN0IGNvbnNpZGVyIHdoZXRoZXIgdGhl
IHNjcm9sbGVyIGlzIFJUTC4gVGhlIGJlaGF2aW9yIG9mIExUUiBib3hlcyBpbnNpZGUgYSBSVEwg
c2Nyb2xsZXIgaXMgcG9vcmx5IGRlZmluZWQ6IGh0dHBzOi8vZ2l0aHViLmNvbS93M2MvY3Nzd2ct
ZHJhZnRzL2lzc3Vlcy81MzYxLgogICAgICAgICBhdXRvIHNjcm9sbFNuYXBBcmVhID0gTGF5b3V0
UmVjdChjaGlsZC0+bG9jYWxUb0NvbnRhaW5lclF1YWQoRmxvYXRRdWFkKGNoaWxkLT5ib3JkZXJC
b3VuZGluZ0JveCgpKSwgJnNjcm9sbGluZ0VsZW1lbnRCb3gpLmJvdW5kaW5nQm94KCkpOwogCiAg
ICAgICAgIC8vIGxvY2FsVG9Db250YWluZXJRdWFkIHdpbGwgdHJhbnNmb3JtIHRoZSBzY3JvbGwg
c25hcCBhcmVhIGJ5IHRoZSBzY3JvbGwgcG9zaXRpb24sIGV4Y2VwdCBpbiB0aGUgY2FzZSB0aGF0
IHRoaXMgcG9zaXRpb24gaXMKQEAgLTI0Niw4ICsyNjEsMTEgQEAgdm9pZCB1cGRhdGVTbmFwT2Zm
c2V0c0ZvclNjcm9sbGFibGVBcmVhKFNjcm9sbGFibGVBcmVhJiBzY3JvbGxhYmxlQXJlYSwgY29u
c3QgUmUKICAgICAgICAgYXV0byBhbGlnbm1lbnQgPSBjaGlsZC0+c3R5bGUoKS5zY3JvbGxTbmFw
QWxpZ24oKTsKICAgICAgICAgYXV0byBzdG9wID0gY2hpbGQtPnN0eWxlKCkuc2Nyb2xsU25hcFN0
b3AoKTsKIAotICAgICAgICBib29sIHNuYXBzSG9yaXpvbnRhbGx5ID0gaGFzSG9yaXpvbnRhbFNu
YXBPZmZzZXRzICYmIGFsaWdubWVudC54ICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25l
OwotICAgICAgICBib29sIHNuYXBzVmVydGljYWxseSA9IGhhc1ZlcnRpY2FsU25hcE9mZnNldHMg
JiYgYWxpZ25tZW50LnkgIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CisgICAgICAg
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlIHhBbGlnbiA9IHNjcm9sbGVySGFzVmVydGljYWxXcml0
aW5nTW9kZSA/IGFsaWdubWVudC5ibG9ja0FsaWduIDogYWxpZ25tZW50LmlubGluZUFsaWduOwor
ICAgICAgICBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZSB5QWxpZ24gPSBzY3JvbGxlckhhc1ZlcnRp
Y2FsV3JpdGluZ01vZGUgPyBhbGlnbm1lbnQuaW5saW5lQWxpZ24gOiBhbGlnbm1lbnQuYmxvY2tB
bGlnbjsKKyAgICAgICAgYm9vbCBzbmFwc0hvcml6b250YWxseSA9IGhhc0hvcml6b250YWxTbmFw
T2Zmc2V0cyAmJiB4QWxpZ24gIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CisgICAg
ICAgIGJvb2wgc25hcHNWZXJ0aWNhbGx5ID0gaGFzVmVydGljYWxTbmFwT2Zmc2V0cyAmJiB5QWxp
Z24gIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CisKICAgICAgICAgaWYgKCFzbmFw
c0hvcml6b250YWxseSAmJiAhc25hcHNWZXJ0aWNhbGx5KQogICAgICAgICAgICAgY29udGludWU7
CiAKQEAgLTI1NywxMiArMjc1LDEyIEBAIHZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxh
YmxlQXJlYShTY3JvbGxhYmxlQXJlYSYgc2Nyb2xsYWJsZUFyZWEsIGNvbnN0IFJlCiAgICAgICAg
IHNuYXBBcmVhcy5hcHBlbmQoc2Nyb2xsU25hcEFyZWFBc09mZnNldHMpOwogCiAgICAgICAgIGlm
IChzbmFwc0hvcml6b250YWxseSkgewotICAgICAgICAgICAgYXV0byBhYnNvbHV0ZVNjcm9sbFhQ
b3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcEFyZWEueCgp
LCBzY3JvbGxTbmFwQXJlYS5tYXhYKCksIGFsaWdubWVudC54LCBzY3JvbGxlcklzUlRMKSAtIGNv
bXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcFBvcnQueCgpLCBzY3JvbGxTbmFw
UG9ydC5tYXhYKCksIGFsaWdubWVudC54LCBzY3JvbGxlcklzUlRMKTsKKyAgICAgICAgICAgIGF1
dG8gYWJzb2x1dGVTY3JvbGxYUG9zaXRpb24gPSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0
KHNjcm9sbFNuYXBBcmVhLngoKSwgc2Nyb2xsU25hcEFyZWEubWF4WCgpLCB4QWxpZ24sIHhBeGlz
RmxpcHBlZCkgLSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBQb3J0Lngo
KSwgc2Nyb2xsU25hcFBvcnQubWF4WCgpLCB4QWxpZ24sIHhBeGlzRmxpcHBlZCk7CiAgICAgICAg
ICAgICBhdXRvIGFic29sdXRlU2Nyb2xsT2Zmc2V0ID0gY2xhbXBUbzxpbnQ+KHNjcm9sbGFibGVB
cmVhLnNjcm9sbE9mZnNldEZyb21Qb3NpdGlvbih7IHJvdW5kVG9JbnQoYWJzb2x1dGVTY3JvbGxY
UG9zaXRpb24pLCAwIH0pLngoKSwgMCwgbWF4U2Nyb2xsT2Zmc2V0LngoKSk7CiAgICAgICAgICAg
ICBhZGRPclVwZGF0ZVN0b3BGb3JTbmFwT2Zmc2V0KGhvcml6b250YWxTbmFwT2Zmc2V0c01hcCwg
eyBhYnNvbHV0ZVNjcm9sbE9mZnNldCwgc3RvcCwgc25hcEFyZWFzLnNpemUoKSAtIDEgfSk7CiAg
ICAgICAgIH0KICAgICAgICAgaWYgKHNuYXBzVmVydGljYWxseSkgewotICAgICAgICAgICAgYXV0
byBhYnNvbHV0ZVNjcm9sbFlQb3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQo
c2Nyb2xsU25hcEFyZWEueSgpLCBzY3JvbGxTbmFwQXJlYS5tYXhZKCksIGFsaWdubWVudC55LCBm
YWxzZSkgLSBjb21wdXRlU2Nyb2xsU25hcEFsaWduT2Zmc2V0KHNjcm9sbFNuYXBQb3J0LnkoKSwg
c2Nyb2xsU25hcFBvcnQubWF4WSgpLCBhbGlnbm1lbnQueSwgZmFsc2UpOworICAgICAgICAgICAg
YXV0byBhYnNvbHV0ZVNjcm9sbFlQb3NpdGlvbiA9IGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZz
ZXQoc2Nyb2xsU25hcEFyZWEueSgpLCBzY3JvbGxTbmFwQXJlYS5tYXhZKCksIHlBbGlnbiwgeUF4
aXNGbGlwcGVkKSAtIGNvbXB1dGVTY3JvbGxTbmFwQWxpZ25PZmZzZXQoc2Nyb2xsU25hcFBvcnQu
eSgpLCBzY3JvbGxTbmFwUG9ydC5tYXhZKCksIHlBbGlnbiwgeUF4aXNGbGlwcGVkKTsKICAgICAg
ICAgICAgIGF1dG8gYWJzb2x1dGVTY3JvbGxPZmZzZXQgPSBjbGFtcFRvPGludD4oc2Nyb2xsYWJs
ZUFyZWEuc2Nyb2xsT2Zmc2V0RnJvbVBvc2l0aW9uKHsgMCwgcm91bmRUb0ludChhYnNvbHV0ZVNj
cm9sbFlQb3NpdGlvbikgfSkueSgpLCAwLCBtYXhTY3JvbGxPZmZzZXQueSgpKTsKICAgICAgICAg
ICAgIGFkZE9yVXBkYXRlU3RvcEZvclNuYXBPZmZzZXQodmVydGljYWxTbmFwT2Zmc2V0c01hcCwg
eyBhYnNvbHV0ZVNjcm9sbE9mZnNldCwgc3RvcCwgc25hcEFyZWFzLnNpemUoKSAtIDEgfSk7CiAg
ICAgICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2Uvc2Nyb2xsaW5nL1Njcm9s
bFNuYXBPZmZzZXRzSW5mby5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xs
U25hcE9mZnNldHNJbmZvLmgKaW5kZXggMTU1YTk3NDYxZDIwYzA3NTY3ZGViZmJkZWI4ZmI2MDQy
NDViZDVkYi4uMWE5M2E0ZjgxOThjMjRkZDU1YzY4YWI1NDczN2M2M2RmN2IwNTk0YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJbmZv
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9zY3JvbGxpbmcvU2Nyb2xsU25hcE9mZnNldHNJ
bmZvLmgKQEAgLTk2LDcgKzk2LDcgQEAgY29uc3QgdW5zaWduZWQgaW52YWxpZFNuYXBPZmZzZXRJ
bmRleCA9IFVJTlRfTUFYOwogLy8gVXBkYXRlIHRoZSBzbmFwIG9mZnNldHMgZm9yIHRoaXMgc2Ny
b2xsYWJsZSBhcmVhLCBnaXZlbiB0aGUgUmVuZGVyQm94IG9mIHRoZSBzY3JvbGwgY29udGFpbmVy
LCB0aGUgUmVuZGVyU3R5bGUKIC8vIHdoaWNoIGRlZmluZXMgdGhlIHNjcm9sbC1zbmFwIHByb3Bl
cnRpZXMsIGFuZCB0aGUgdmlld3BvcnQgcmVjdGFuZ2xlIHdpdGggdGhlIG9yaWdpbiBhdCB0aGUg
dG9wIGxlZnQgb2YKIC8vIHRoZSBzY3JvbGxpbmcgY29udGFpbmVyJ3MgYm9yZGVyIGJveC4KLXZv
aWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYShTY3JvbGxhYmxlQXJlYSYsIGNv
bnN0IFJlbmRlckJveCYgc2Nyb2xsaW5nRWxlbWVudEJveCwgY29uc3QgUmVuZGVyU3R5bGUmIHNj
cm9sbGluZ0VsZW1lbnRTdHlsZSwgTGF5b3V0UmVjdCB2aWV3cG9ydFJlY3RJbkJvcmRlckJveENv
b3JkaW5hdGVzKTsKK3ZvaWQgdXBkYXRlU25hcE9mZnNldHNGb3JTY3JvbGxhYmxlQXJlYShTY3Jv
bGxhYmxlQXJlYSYsIGNvbnN0IFJlbmRlckJveCYgc2Nyb2xsaW5nRWxlbWVudEJveCwgY29uc3Qg
UmVuZGVyU3R5bGUmIHNjcm9sbGluZ0VsZW1lbnRTdHlsZSwgTGF5b3V0UmVjdCB2aWV3cG9ydFJl
Y3RJbkJvcmRlckJveENvb3JkaW5hdGVzLCBXcml0aW5nTW9kZSwgVGV4dERpcmVjdGlvbik7CiAK
IHRlbXBsYXRlIDx0eXBlbmFtZSBUPiBXVEY6OlRleHRTdHJlYW0mIG9wZXJhdG9yPDwoV1RGOjpU
ZXh0U3RyZWFtJiB0cywgU25hcE9mZnNldDxUPiBvZmZzZXQpCiB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJTY3JvbGxhYmxlQXJlYS5jcHAKaW5kZXgg
YjQwZDBiODkxZDI0YzliYmQxZmNhOTNmNDQ3N2Y3ZWQ1OGVjM2YxNi4uNTkyYzY0YzFiMGZlY2Y3
YzA3NGYwZjhkNWEyN2M5YTRiMGQzNDU4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckxheWVyU2Nyb2xsYWJsZUFyZWEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllclNjcm9sbGFibGVBcmVhLmNwcApAQCAtMTQ2OSw3ICsxNDY5
LDcgQEAgdm9pZCBSZW5kZXJMYXllclNjcm9sbGFibGVBcmVhOjp1cGRhdGVTbmFwT2Zmc2V0cygp
CiAgICAgICAgIHJldHVybjsKIAogICAgIFJlbmRlckJveCogYm94ID0gbV9sYXllci5lbmNsb3Np
bmdFbGVtZW50KCktPnJlbmRlckJveCgpOwotICAgIHVwZGF0ZVNuYXBPZmZzZXRzRm9yU2Nyb2xs
YWJsZUFyZWEoKnRoaXMsICpib3gsIGJveC0+c3R5bGUoKSwgYm94LT5wYWRkaW5nQm94UmVjdCgp
KTsKKyAgICB1cGRhdGVTbmFwT2Zmc2V0c0ZvclNjcm9sbGFibGVBcmVhKCp0aGlzLCAqYm94LCBi
b3gtPnN0eWxlKCksIGJveC0+cGFkZGluZ0JveFJlY3QoKSwgYm94LT5zdHlsZSgpLndyaXRpbmdN
b2RlKCksIGJveC0+c3R5bGUoKS5kaXJlY3Rpb24oKSk7CiB9CiAKIGJvb2wgUmVuZGVyTGF5ZXJT
Y3JvbGxhYmxlQXJlYTo6aXNTY3JvbGxTbmFwSW5Qcm9ncmVzcygpIGNvbnN0CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCBhY2RkZmQwMzFm
MmIyOTdlOTUzNWIyNjJiODVhYmE3YTc0OGZiZmRhLi42MjYxMWZmYWZhNzM5ZjkzNDkxYzMwYzQ5
NTNmMGZiMWJhYzhiZmQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5
bGUvUmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKQEAgLTI1NzgsNyArMjU3OCw3IEBAIHZvaWQgUmVuZGVyU3R5bGU6OnNl
dFNjcm9sbFNuYXBTdG9wKGNvbnN0IFNjcm9sbFNuYXBTdG9wIHN0b3ApCiBib29sIFJlbmRlclN0
eWxlOjpoYXNTbmFwUG9zaXRpb24oKSBjb25zdAogewogICAgIGNvbnN0IFNjcm9sbFNuYXBBbGln
biYgYWxpZ25tZW50ID0gdGhpcy0+c2Nyb2xsU25hcEFsaWduKCk7Ci0gICAgcmV0dXJuIGFsaWdu
bWVudC54ICE9IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lIHx8IGFsaWdubWVudC55ICE9
IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lOworICAgIHJldHVybiBhbGlnbm1lbnQuYmxv
Y2tBbGlnbiAhPSBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB8fCBhbGlnbm1lbnQuaW5s
aW5lQWxpZ24gIT0gU2Nyb2xsU25hcEF4aXNBbGlnblR5cGU6Ok5vbmU7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1N0eWxlU2Nyb2xsU25h
cFBvaW50cy5oCmluZGV4IGJmNTM1NWQwYTBiYWZkNThiMWZhMzgwY2I0ZWNjNjFiM2VkMzNkZjQu
LmEzNzE0MDUxZjg0MDU0ZWU4ZGM4ZmI2ZGZjM2E0NWJhYzQ0Y2M2NjcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9TdHlsZVNjcm9sbFNuYXBQb2ludHMuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvU3R5bGVTY3JvbGxTbmFwUG9pbnRzLmgK
QEAgLTQ4LDEzICs0OCwxMyBAQCBpbmxpbmUgYm9vbCBvcGVyYXRvcj09KGNvbnN0IFNjcm9sbFNu
YXBUeXBlJiBhLCBjb25zdCBTY3JvbGxTbmFwVHlwZSYgYikKIGlubGluZSBib29sIG9wZXJhdG9y
IT0oY29uc3QgU2Nyb2xsU25hcFR5cGUmIGEsIGNvbnN0IFNjcm9sbFNuYXBUeXBlJiBiKSB7IHJl
dHVybiAhKGEgPT0gYik7IH0KIAogc3RydWN0IFNjcm9sbFNuYXBBbGlnbiB7Ci0gICAgU2Nyb2xs
U25hcEF4aXNBbGlnblR5cGUgeCB7IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpOb25lIH07Ci0g
ICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgeSB7IFNjcm9sbFNuYXBBeGlzQWxpZ25UeXBlOjpO
b25lIH07CisgICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgYmxvY2tBbGlnbiB7IFNjcm9sbFNu
YXBBeGlzQWxpZ25UeXBlOjpOb25lIH07CisgICAgU2Nyb2xsU25hcEF4aXNBbGlnblR5cGUgaW5s
aW5lQWxpZ24geyBTY3JvbGxTbmFwQXhpc0FsaWduVHlwZTo6Tm9uZSB9OwogfTsKIAogaW5saW5l
IGJvb2wgb3BlcmF0b3I9PShjb25zdCBTY3JvbGxTbmFwQWxpZ24mIGEsIGNvbnN0IFNjcm9sbFNu
YXBBbGlnbiYgYikKIHsKLSAgICByZXR1cm4gYS54ID09IGIueCAmJiBhLnkgPT0gYi55OworICAg
IHJldHVybiBhLmJsb2NrQWxpZ24gPT0gYi5ibG9ja0FsaWduICYmIGEuaW5saW5lQWxpZ24gPT0g
Yi5pbmxpbmVBbGlnbjsKIH0KIAogaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBTY3JvbGxT
bmFwQWxpZ24mIGEsIGNvbnN0IFNjcm9sbFNuYXBBbGlnbiYgYikgeyByZXR1cm4gIShhID09IGIp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCmluZGV4
IGJmNTI3NDRhMzg0MDMyZjBjNjM1OGYwNzQxYmJhZThiYmYxZWJiZDEuLjhjZjQxNjljMTcxZjVm
MjNmM2UzOTgzOWFjY2NkZTQyZTIxZjRjNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0
eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQnVpbGRlckNvbnZlcnRlci5oCkBAIC05MjIsMTEgKzkyMiwxMSBAQCBpbmxpbmUgU2Nyb2xs
U25hcEFsaWduIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZlcnRTY3JvbGxTbmFwQWxpZ24oQnVpbGRl
clN0YXRlJiwgYwogewogICAgIGF1dG8mIHZhbHVlcyA9IGRvd25jYXN0PENTU1ZhbHVlTGlzdD4o
dmFsdWUpOwogICAgIFNjcm9sbFNuYXBBbGlnbiBhbGlnbm1lbnQ7Ci0gICAgYWxpZ25tZW50Lnkg
PSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDApKTsKKyAgICBhbGln
bm1lbnQuYmxvY2tBbGlnbiA9IGRvd25jYXN0PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWVzLml0
ZW0oMCkpOwogICAgIGlmICh2YWx1ZXMubGVuZ3RoKCkgPT0gMSkKLSAgICAgICAgYWxpZ25tZW50
LnggPSBhbGlnbm1lbnQueTsKKyAgICAgICAgYWxpZ25tZW50LmlubGluZUFsaWduID0gYWxpZ25t
ZW50LmJsb2NrQWxpZ247CiAgICAgZWxzZQotICAgICAgICBhbGlnbm1lbnQueCA9IGRvd25jYXN0
PENTU1ByaW1pdGl2ZVZhbHVlPigqdmFsdWVzLml0ZW0oMSkpOworICAgICAgICBhbGlnbm1lbnQu
aW5saW5lQWxpZ24gPSBkb3duY2FzdDxDU1NQcmltaXRpdmVWYWx1ZT4oKnZhbHVlcy5pdGVtKDEp
KTsKICAgICByZXR1cm4gYWxpZ25tZW50OwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggYWZlYzU5Y2Y1YzM3OGZiZTM5
ZjFlMjBkYjZiMmJhYjYxNDFkMjUwOC4uMDMxZTA5M2Q4ZGJjNTY1MmQ2NDJmNzA4Zjc0Y2MwYjQw
YzQyZTRjMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIxLTA1LTIwICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBT
Y3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5nIG1vZGVzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjYwMTAKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBl
Y3RhdGlvbnM6IE1hcmsgb25lIHRlc3QgYXMgcGFzc2luZy4KKyAgICAgICAgKiBwbGF0Zm9ybS9p
b3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25h
cC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3RlZC50eHQ6IFJlbW92ZWQu
CisgICAgICAgICogcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQ6CisKIDIw
MjEtMDUtMzEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEdv
IHRvIG5ldHdvcmsgaW4gY2FzZSBmZXRjaCBldmVudCBpcyBub3QgeWV0IHJlc3BvbmRlZCB3aGVu
IGJlaW5nIGRlc3Ryb3llZCBpbnN0ZWFkIG9mIGZhaWxpbmcgdGhlIGxvYWQKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2MvQ2hhbmdlTG9nCmluZGV4IGFmZTBhNzkxYjllMThlY2U1MGMxM2RlODU3ZjA1NWZlMDQw
ZmY2Y2QuLjVmNzM5Y2U4NzllNjFhYTEwZGYxODg4NzM3MjgzMzg4YzA0MTU2YmEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTA1LTIwICBNYXJ0
aW4gUm9iaW5zb24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KKworICAgICAgICBbY3NzLXNjcm9s
bC1zbmFwXSBTY3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5n
IG1vZGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MjYwMTAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUt
b24tcm9vdC1lbGVtZW50LWV4cGVjdGVkLnR4dDogVXBkYXRlIGV4cGVjdGF0aW9ucyB0byBtYXJr
IHRlc3RzIGFzIHBhc3NpbmcuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0OiBEaXR0by4KKwogMjAy
MS0wNS0yOCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFdlYmtpdCBk
b2Vzbid0IGNhbGN1bGF0ZSBwYWRkaW5nLXRvcC8tYm90dG9tIGluICUgY29ycmVjdGx5IHdoZW4g
cGFyZW50IGhhcyBwYWRkaW5nCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBlYjdlYTE3ODI5NmQzZTAw
ZDlkMzZkZTBjZTNkOGZiYzBjODg3MTFiLi44ZDMzY2MyYjRhZDZmN2JjNThjNDlhMjIwNjQ4NDlj
YTBmNDg2ZjZlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ1NDAsNyArNDU0MCw2IEBAIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtdGFy
Z2V0LXNuYXAtMDAzLmh0bWwKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWluaXRpYWwtbGF5b3V0L2RpcmVjdGlvbi1ydGwuaHRt
bCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtYWZ0ZXItaW5pdGlhbC1sYXlvdXQvc2Nyb2xsLXNuYXAt
aW5pdGlhbC1sYXlvdXQtMDAwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWFmdGVyLWluaXRp
YWwtbGF5b3V0L3Njcm9sbC1zbmFwLXdyaXRpbmctbW9kZS0wMDAuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1z
bmFwL3NuYXAtYWZ0ZXItaW5pdGlhbC1sYXlvdXQvd3JpdGluZy1tb2RlLXZlcnRpY2FsLWxyLmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTgzMjUgaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC10YXJnZXQtbWFy
Z2luLTAwMS5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMTgz
MjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Nj
cm9sbC10YXJnZXQtbWFyZ2luLTAwMy5odG1sIFsgUGFzcyBJbWFnZU9ubHlGYWlsdXJlIF0KIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3Rl
ZC50eHQKaW5kZXggMzA4OWZjYWIxNmQxY2U5ZmY4OWZjZDhkZmE3NzYwYjlmMjYyNTQzNS4uMjM5
ZmU3NDllMzFjNTQ3MjJjMmVlYzUyM2JiYzM4Y2ZlYzdiMmEwZiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFw
L3Njcm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50LWV4cGVjdGVkLnR4dAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNu
YXAvc2Nyb2xsLXNuYXAtdHlwZS1vbi1yb290LWVsZW1lbnQtZXhwZWN0ZWQudHh0CkBAIC0xLDUg
KzEsNSBAQAogCiBQQVNTIFRoZSBzY3JvbGwtc25hcC10eXBlIG9uIHRoZSByb290IGVsZW1lbnQg
aXMgYXBwbGllZAotRkFJTCBUaGUgd3JpdGluZy1tb2RlICh2ZXJ0aWNhbC1scikgb24gdGhlIGJv
ZHkgaXMgdXNlZCBhc3NlcnRfZXF1YWxzOiBpbmxpbmUgc2hvdWxkIHNuYXAgZXhwZWN0ZWQgNTE1
IGJ1dCBnb3QgODAwCitQQVNTIFRoZSB3cml0aW5nLW1vZGUgKHZlcnRpY2FsLWxyKSBvbiB0aGUg
Ym9keSBpcyB1c2VkCiBQQVNTIFRoZSB3cml0aW5nLW1vZGUgKGhvcml6b250YWwtdGIpIG9uIHRo
ZSBib2R5IGlzIHVzZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5lLWJsb2NrLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKaW5kZXgg
ZDZiNzc5NTcyYjY0MzE5NmNjYjlkN2RlZGJjYTIwMTBlOTE4N2UxZi4uZjY3OGYyZDEyNTkzZWVi
YWQzZTI3YzE5MjI4NDM4ZDUzOTA3NWRlZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3NuYXAtaW5saW5l
LWJsb2NrLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0
ZWQudHh0CkBAIC0xLDEwICsxLDEwIEBACiAKIFBBU1MgU25hcHMgY29ycmVjdGx5IGZvciBob3Jp
em9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0
JyBhbGlnbm1lbnQKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1sciB3cml0aW5n
IG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2Vy
dF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAxMTUgYnV0IGdvdCAzMDAK
LUZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAn
c2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFs
aWducyBjb3JyZWN0bHkgb24geSBleHBlY3RlZCAzMDAgYnV0IGdvdCAxNjUKLUZBSUwgU25hcHMg
Y29ycmVjdGx5IGZvciBob3Jpem9udGFsLXRiIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25h
cC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJl
Y3RseSBvbiB4IGV4cGVjdGVkIDExNSBidXQgZ290IDAKLUZBSUwgU25hcHMgY29ycmVjdGx5IGZv
ciB2ZXJ0aWNhbC1sciB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0
IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBl
Y3RlZCAzMDAgYnV0IGdvdCAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVydGljYWwtcmwg
d3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVu
dCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhwZWN0ZWQgMTY1IGJ1dCBn
b3QgMzAwCi1GQUlMIFNuYXBzIGNvcnJlY3RseSBmb3IgJ2RpcmVjdGlvbjogcnRsJyB3aXRoICdz
Y3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxp
Z25zIGNvcnJlY3RseSBvbiB5IGV4cGVjdGVkIDE2NSBidXQgZ290IDAKLUZBSUwgU25hcHMgY29y
cmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFy
dCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGlnbnMgY29ycmVjdGx5IG9uIHkgZXhw
ZWN0ZWQgMzAwIGJ1dCBnb3QgMAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLWxy
IHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGlnbm1l
bnQKK1BBU1MgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0
aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNv
cnJlY3RseSBmb3IgaG9yaXpvbnRhbC10YiB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAt
YWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50CitQQVNTIFNuYXBzIGNvcnJlY3RseSBmb3IgdmVy
dGljYWwtbHIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQn
IGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2FsLXJsIHdyaXRpbmcg
bW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogc3RhcnQgZW5kJyBhbGlnbm1lbnQKK1BBU1Mg
U25hcHMgY29ycmVjdGx5IGZvciAnZGlyZWN0aW9uOiBydGwnIHdpdGggJ3Njcm9sbC1zbmFwLWFs
aWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJl
Y3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13azIvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Njcm9sbC1zbmFwLXR5cGUt
b24tcm9vdC1lbGVtZW50LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy13
azIvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNjcm9sbC1zbmFwL3Nj
cm9sbC1zbmFwLXR5cGUtb24tcm9vdC1lbGVtZW50LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggZTEzNmNhOWRlZWYxNWU2ZmQ2ZjcxZjQ3ODkwNjUzYTkzODgxOTU2
MS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3Mtd2syL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zY3JvbGwtc25hcC9zY3JvbGwtc25hcC10eXBlLW9uLXJvb3QtZWxlbWVudC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw1ICswLDAgQEAKLQotUEFTUyBUaGUgc2Nyb2xsLXNu
YXAtdHlwZSBvbiB0aGUgcm9vdCBlbGVtZW50IGlzIGFwcGxpZWQKLUZBSUwgVGhlIHdyaXRpbmct
bW9kZSAodmVydGljYWwtbHIpIG9uIHRoZSBib2R5IGlzIHVzZWQgYXNzZXJ0X2VxdWFsczogaW5s
aW5lIHNob3VsZCBzbmFwIGV4cGVjdGVkIDUwMCBidXQgZ290IDgwMAotUEFTUyBUaGUgd3JpdGlu
Zy1tb2RlIChob3Jpem9udGFsLXRiKSBvbiB0aGUgYm9keSBpcyB1c2VkCi0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3Mtc2Nyb2xsLXNuYXAvc25hcC1pbmxpbmUtYmxvY2stZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zY3JvbGwtc25hcC9zbmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKaW5kZXggNjhk
OGVkN2M0MzA3NjM2M2VmMjM1M2NmZWFkMjE0YTY3NGVkNTJhYi4uMzQ4YTI0MGQ2OTIxNzRlZGU4
Y2MxMzI2NTAzODFjZDcxZTkwNjkxMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
aW9zL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zY3JvbGwtc25hcC9z
bmFwLWlubGluZS1ibG9jay1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKIAogUEFTUyBT
bmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2RlIHdpdGggJ3Njcm9s
bC1zbmFwLWFsaWduOiBlbmQgc3RhcnQnIGFsaWdubWVudAotRkFJTCBTbmFwcyBjb3JyZWN0bHkg
Zm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5k
IHN0YXJ0JyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBvbiB4IGV4
cGVjdGVkIDExNSBidXQgZ290IDMwMAorUEFTUyBTbmFwcyBjb3JyZWN0bHkgZm9yIHZlcnRpY2Fs
LWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGlnbjogZW5kIHN0YXJ0JyBhbGln
bm1lbnQKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0aWNhbC1ybCB3cml0aW5nIG1vZGUg
d2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9lcXVh
bHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTMwMAogRkFJ
TCBTbmFwcyBjb3JyZWN0bHkgZm9yIGhvcml6b250YWwtdGIgd3JpdGluZyBtb2RlIHdpdGggJ3Nj
cm9sbC1zbmFwLWFsaWduOiBzdGFydCBlbmQnIGFsaWdubWVudCBhc3NlcnRfZXF1YWxzOiBhbGln
bnMgY29ycmVjdGx5IG9uIHggZXhwZWN0ZWQgMTE1IGJ1dCBnb3QgMAogRkFJTCBTbmFwcyBjb3Jy
ZWN0bHkgZm9yIHZlcnRpY2FsLWxyIHdyaXRpbmcgbW9kZSB3aXRoICdzY3JvbGwtc25hcC1hbGln
bjogc3RhcnQgZW5kJyBhbGlnbm1lbnQgYXNzZXJ0X2VxdWFsczogYWxpZ25zIGNvcnJlY3RseSBv
biB4IGV4cGVjdGVkIDMwMCBidXQgZ290IDAKIEZBSUwgU25hcHMgY29ycmVjdGx5IGZvciB2ZXJ0
aWNhbC1ybCB3cml0aW5nIG1vZGUgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcg
YWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAt
NTAwIGJ1dCBnb3QgLTQ4NQotRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0
bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFydCcgYWxpZ25tZW50IGFzc2VydF9l
cXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtNTAwIGJ1dCBnb3QgLTQ4NQot
RkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNu
YXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3Jy
ZWN0bHkgb24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0
bHkgZm9yICdkaXJlY3Rpb246IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IGVuZCBzdGFy
dCcgYWxpZ25tZW50IGFzc2VydF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3Rl
ZCAtNTAwIGJ1dCBnb3QgLTMwMAorRkFJTCBTbmFwcyBjb3JyZWN0bHkgZm9yICdkaXJlY3Rpb246
IHJ0bCcgd2l0aCAnc2Nyb2xsLXNuYXAtYWxpZ246IHN0YXJ0IGVuZCcgYWxpZ25tZW50IGFzc2Vy
dF9lcXVhbHM6IGFsaWducyBjb3JyZWN0bHkgb24geCBleHBlY3RlZCAtMzE1IGJ1dCBnb3QgLTQ4
NQogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>