<?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>237369</bug_id>
          
          <creation_ts>2022-03-02 08:18:38 -0800</creation_ts>
          <short_desc>[content-visibility] Lazily layout children</short_desc>
          <delta_ts>2023-09-22 06:47:30 -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>CSS</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>236238</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Rob Buis">rbuis</reporter>
          <assigned_to name="Rob Buis">rbuis</assigned_to>
          <cc>cathiechen</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>fmalita</cc>
    
    <cc>fred.wang</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>kangil.han</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mifenton</cc>
    
    <cc>ntim</cc>
    
    <cc>pdr</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1847408</commentid>
    <comment_count>0</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-02 08:18:38 -0800</bug_when>
    <thetext>Support forced layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847411</commentid>
    <comment_count>1</comment_count>
      <attachid>453614</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-02 08:20:38 -0800</bug_when>
    <thetext>Created attachment 453614
Initial implementation

Initial implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847606</commentid>
    <comment_count>2</comment_count>
      <attachid>453656</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-03-02 13:56:51 -0800</bug_when>
    <thetext>Created attachment 453656
Improved patch

Improved patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849690</commentid>
    <comment_count>3</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-03-09 08:19:16 -0800</bug_when>
    <thetext>&lt;rdar://problem/90032814&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1863599</commentid>
    <comment_count>4</comment_count>
      <attachid>458128</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-04-22 03:10:31 -0700</bug_when>
    <thetext>Created attachment 458128
Rebase

Rebase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1869996</commentid>
    <comment_count>5</comment_count>
      <attachid>459542</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-18 07:25:04 -0700</bug_when>
    <thetext>Created attachment 459542
Remove ChangeLogs

Remove ChangeLogs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872027</commentid>
    <comment_count>6</comment_count>
      <attachid>459542</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-05-26 09:50:51 -0700</bug_when>
    <thetext>Comment on attachment 459542
Remove ChangeLogs

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

I wonder why Element::offsetTop doesn&apos;t need Document::ForceLayout::Yes?

&gt; Source/WebCore/dom/Element.cpp:1283
&gt; +    document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes);

I wonder why Element::offsetLeft doesn&apos;t need Document::ForceLayout::Yes?

&gt; Source/WebCore/dom/Element.cpp:1443
&gt; +    document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes);

And Element::scrollLeft?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872031</commentid>
    <comment_count>7</comment_count>
      <attachid>459542</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-05-26 09:57:33 -0700</bug_when>
    <thetext>Comment on attachment 459542
Remove ChangeLogs

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

&gt;&gt; Source/WebCore/dom/Element.cpp:1283
&gt;&gt; +    document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes);
&gt; 
&gt; I wonder why Element::offsetLeft doesn&apos;t need Document::ForceLayout::Yes?

It probably needs it as well, checking chromium. I just did the minimum amount to pass the tests.

&gt;&gt; Source/WebCore/dom/Element.cpp:1443
&gt;&gt; +    document().updateLayoutIgnorePendingStylesheets(Document::ForceLayout::Yes);
&gt; 
&gt; And Element::scrollLeft?

Dito.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1873917</commentid>
    <comment_count>8</comment_count>
      <attachid>460015</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-06-03 08:29:07 -0700</bug_when>
    <thetext>Created attachment 460015
Fixed-forced-layout-test-failures-wip.diff

To address the forced layout issues, we need to make sure triggering layout when an element becomes a size containment or vice versa.
Looks like there is no need to change isLayoutForced in layoutContext.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909553</commentid>
    <comment_count>9</comment_count>
      <attachid>463345</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-01 07:51:11 -0700</bug_when>
    <thetext>Created attachment 463345
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1909767</commentid>
    <comment_count>10</comment_count>
      <attachid>463361</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-02 07:24:49 -0700</bug_when>
    <thetext>Created attachment 463361
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914084</commentid>
    <comment_count>11</comment_count>
      <attachid>463668</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-22 07:36:51 -0800</bug_when>
    <thetext>Created attachment 463668
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914311</commentid>
    <comment_count>12</comment_count>
      <attachid>463692</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-23 07:31:05 -0800</bug_when>
    <thetext>Created attachment 463692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914319</commentid>
    <comment_count>13</comment_count>
      <attachid>463692</attachid>
    <who name="cathiechen">cathiechen</who>
    <bug_when>2022-11-23 08:44:20 -0800</bug_when>
    <thetext>Comment on attachment 463692
Patch

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

&gt; Source/WebCore/rendering/style/RenderStyle.cpp:811
&gt; +    if (first.contentVisibility != second.contentVisibility)

// content-visibiliy: hidden enabled contain:size
    if ((static_cast&lt;ContentVisibility&gt;(first.contentVisibility) == ContentVisibility::Hidden) != (static_cast&lt;ContentVisibility&gt;(second.contentVisibility) == ContentVisibility::Hidden))
        return true;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914336</commentid>
    <comment_count>14</comment_count>
      <attachid>463695</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-23 11:06:51 -0800</bug_when>
    <thetext>Created attachment 463695
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914555</commentid>
    <comment_count>15</comment_count>
      <attachid>463718</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-24 13:57:44 -0800</bug_when>
    <thetext>Created attachment 463718
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914650</commentid>
    <comment_count>16</comment_count>
      <attachid>463723</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-25 01:58:40 -0800</bug_when>
    <thetext>Created attachment 463723
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914671</commentid>
    <comment_count>17</comment_count>
      <attachid>463727</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-25 03:36:08 -0800</bug_when>
    <thetext>Created attachment 463727
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1914708</commentid>
    <comment_count>18</comment_count>
      <attachid>463734</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-11-25 10:20:09 -0800</bug_when>
    <thetext>Created attachment 463734
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1915876</commentid>
    <comment_count>19</comment_count>
      <attachid>463827</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-12-01 03:10:37 -0800</bug_when>
    <thetext>Created attachment 463827
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1919855</commentid>
    <comment_count>20</comment_count>
      <attachid>464073</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2022-12-16 01:47:52 -0800</bug_when>
    <thetext>Created attachment 464073
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925774</commentid>
    <comment_count>21</comment_count>
      <attachid>464513</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-16 03:33:25 -0800</bug_when>
    <thetext>Created attachment 464513
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925812</commentid>
    <comment_count>22</comment_count>
      <attachid>464514</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-16 06:47:01 -0800</bug_when>
    <thetext>Created attachment 464514
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1925958</commentid>
    <comment_count>23</comment_count>
      <attachid>464524</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-17 02:18:05 -0800</bug_when>
    <thetext>Created attachment 464524
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926066</commentid>
    <comment_count>24</comment_count>
      <attachid>464527</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-17 12:24:04 -0800</bug_when>
    <thetext>Created attachment 464527
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926067</commentid>
    <comment_count>25</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2023-01-17 12:38:52 -0800</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926238</commentid>
    <comment_count>26</comment_count>
      <attachid>464535</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-18 04:19:59 -0800</bug_when>
    <thetext>Created attachment 464535
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1926250</commentid>
    <comment_count>27</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-18 06:37:10 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/8763</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1927401</commentid>
    <comment_count>28</comment_count>
      <attachid>464602</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-23 01:47:25 -0800</bug_when>
    <thetext>Created attachment 464602
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929285</commentid>
    <comment_count>29</comment_count>
      <attachid>464745</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-29 11:54:24 -0800</bug_when>
    <thetext>Created attachment 464745
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929538</commentid>
    <comment_count>30</comment_count>
      <attachid>464762</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-30 13:45:39 -0800</bug_when>
    <thetext>Created attachment 464762
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1929779</commentid>
    <comment_count>31</comment_count>
      <attachid>464781</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-01-31 09:19:25 -0800</bug_when>
    <thetext>Created attachment 464781
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1930558</commentid>
    <comment_count>32</comment_count>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-02-02 10:39:03 -0800</bug_when>
    <thetext>Pull request: https://github.com/WebKit/WebKit/pull/9537</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1935119</commentid>
    <comment_count>33</comment_count>
      <attachid>465087</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-02-20 09:34:48 -0800</bug_when>
    <thetext>Created attachment 465087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1935237</commentid>
    <comment_count>34</comment_count>
      <attachid>465094</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-02-20 13:31:42 -0800</bug_when>
    <thetext>Created attachment 465094
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1935455</commentid>
    <comment_count>35</comment_count>
      <attachid>465106</attachid>
    <who name="Rob Buis">rbuis</who>
    <bug_when>2023-02-21 02:17:58 -0800</bug_when>
    <thetext>Created attachment 465106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1979061</commentid>
    <comment_count>36</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2023-09-21 10:26:44 -0700</bug_when>
    <thetext>Pull Request: https://github.com/WebKit/WebKit/pull/8763</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1979335</commentid>
    <comment_count>37</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2023-09-22 06:47:25 -0700</bug_when>
    <thetext>Committed 268310@main (faa0935aebd5): &lt;https://commits.webkit.org/268310@main&gt;

Reviewed commits have been landed. Closing PR #8763 and removing active labels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453614</attachid>
            <date>2022-03-02 08:20:38 -0800</date>
            <delta_ts>2022-03-02 13:56:51 -0800</delta_ts>
            <desc>Initial implementation</desc>
            <filename>forcedLayout.diff</filename>
            <type>text/plain</type>
            <size>14800</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDhhN2VhYzU0YTAuLmM3MmY5MzFkNzQ3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTAyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gU3VwcG9ydCBmb3JjZWQgbGF5b3V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjItMDMtMDIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY29udGVu
dC12aXNpYmlsaXR5XSBBZGQgc3VwcG9ydCBmb3IgY3NzIGNvbnRlbnQtdmlzaWJpbGl0eTogaGlk
ZGVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNThhYTM2MmJhYmUuLmNjOGM4ODA3YWFmMSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC00NjE3LDEwICs0NjE3LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1wYWludC0wMDguaHRtbCBbIElt
YWdlT24KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRhaW4tcGFpbnQtMDIxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4tcGFpbnQtY2xpcC0wMTUu
aHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1wYWludC1jbGlwLTAxNi5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi0jIGZvcmNlZCBsYXlvdXQKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDM1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDM4Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDQ0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KICMgYy12OiBhdXRvCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA0OC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA1MC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cKaW5kZXggOWU2MGE4MzI5YzU3Li4yYWRlNDhjMzI3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0MCBAQAorMjAyMi0wMy0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisg
ICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzY5CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQLgorCisgICAgICAg
ICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVM
YXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICog
ZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToK
KyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbFRvcCk6CisgICAgICAgIChXZWJDb3Jl
OjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6
CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWlnaHQpOgorICAgICAgICAo
V2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBl
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKyAgICAgICAg
KiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJh
bWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlld0xh
eW91dENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91
dENvbnRleHQ6OnNldExheW91dEZvcmNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrOjphZGRPdmVyZmxvd0Zyb21D
aGlsZHJlbik6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKyAgICAgICAgKiBy
ZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3Ojps
YXlvdXQpOgorCiAyMDIyLTAzLTAyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW2NvbnRlbnQtdmlzaWJpbGl0eV0gQWRkIHN1cHBvcnQgZm9yIGNzcyBjb250ZW50LXZp
c2liaWxpdHk6IGhpZGRlbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggZDI0ZmM0ZGRkMTc4
Li5hMmY0MTllM2RmNjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjE4Myw3ICsyMTgz
LDcgQEAgYm9vbCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCiAgICAgcmV0dXJuIHRy
dWU7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpCit2b2lkIERvY3VtZW50Ojp1
cGRhdGVMYXlvdXQoRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCiB7CiAgICAgQVNTRVJUKGlzTWFp
blRocmVhZCgpKTsKIApAQCAtMjIwNiwxMSArMjIwNiwxOSBAQCB2b2lkIERvY3VtZW50Ojp1cGRh
dGVMYXlvdXQoKQogCiAgICAgaWYgKCFmcmFtZVZpZXcgfHwgIXJlbmRlclZpZXcoKSkKICAgICAg
ICAgcmV0dXJuOwotICAgIGlmICghZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQ
ZW5kaW5nKCkgJiYgIXJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQoKSkKKyAgICBzdGQ6Om9wdGlv
bmFsPGJvb2w+IG9sZExheW91dEZvcmNlZDsKKyAgICBpZiAoZm9yY2VMYXlvdXQgPT0gRm9yY2VM
YXlvdXQ6OlllcyAmJiB2aWV3KCkpIHsKKyAgICAgICAgb2xkTGF5b3V0Rm9yY2VkID0gdmlldygp
LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKTsKKyAgICAgICAgdmlldygpLT5sYXlv
dXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKHRydWUpOworICAgIH0KKyAgICBpZiAoIWZyYW1l
Vmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJWaWV3KCkt
Pm5lZWRzTGF5b3V0KCkgJiYgZm9yY2VMYXlvdXQgIT0gRm9yY2VMYXlvdXQ6OlllcykKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkubGF5b3V0KCk7CiAK
KyAgICBpZiAob2xkTGF5b3V0Rm9yY2VkKQorICAgICAgICB2aWV3KCktPmxheW91dENvbnRleHQo
KS5zZXRMYXlvdXRGb3JjZWQoKm9sZExheW91dEZvcmNlZCk7CisKICAgICBTdHlsZTo6U2NvcGU6
OlF1ZXJ5Q29udGFpbmVyVXBkYXRlQ29udGV4dCBxdWVyeUNvbnRhaW5lclVwZGF0ZUNvbnRleHQ7
CiAgICAgd2hpbGUgKHN0eWxlU2NvcGUoKS51cGRhdGVRdWVyeUNvbnRhaW5lclN0YXRlKHF1ZXJ5
Q29udGFpbmVyVXBkYXRlQ29udGV4dCkpIHsKICAgICAgICAgdXBkYXRlU3R5bGVJZk5lZWRlZCgp
OwpAQCAtMjIyMiw3ICsyMjMwLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKICAg
ICB9CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cyhEb2N1bWVudDo6UnVuUG9zdExheW91dFRhc2tzIHJ1blBvc3RMYXlvdXRUYXNrcykKK3Zv
aWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVu
dDo6UnVuUG9zdExheW91dFRhc2tzIHJ1blBvc3RMYXlvdXRUYXNrcywgRm9yY2VMYXlvdXQgZm9y
Y2VMYXlvdXQpCiB7CiAgICAgYm9vbCBvbGRJZ25vcmUgPSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0czsKIApAQCAtMjIzMyw3ICsyMjQxLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAg
ICAgICAgICAgIHNjaGVkdWxlRnVsbFN0eWxlUmVidWlsZCgpOwogICAgIH0KIAotICAgIHVwZGF0
ZUxheW91dCgpOworICAgIHVwZGF0ZUxheW91dChmb3JjZUxheW91dCk7CiAKICAgICBpZiAocnVu
UG9zdExheW91dFRhc2tzID09IFJ1blBvc3RMYXlvdXRUYXNrczo6U3luY2hyb25vdXNseSAmJiB2
aWV3KCkpCiAgICAgICAgIHZpZXcoKS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDZmODk0NGY1MTU0Yy4uY2RlMGEwMDNiMDQyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaApAQCAtNjIwLDEyICs2MjAsMTMgQEAgcHVibGljOgogICAgIGJvb2wg
bmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxhc3RTdHlsZVVwZGF0ZVNp
emVGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVz
dGluZzsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQoKTsKLSAgICAK
KyAgICBlbnVtIGNsYXNzIEZvcmNlTGF5b3V0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQ
T1JUIHZvaWQgdXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwog
ICAgIC8vIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlv
dXQgZXZlbiBpZiB3ZSBhcmUgd2FpdGluZyBmb3IgcGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAog
ICAgIC8vIHNvIGNhbGxpbmcgdGhpcyBtYXkgY2F1c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250
ZW50IChGT1VDKS4KICAgICBlbnVtIGNsYXNzIFJ1blBvc3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJv
bm91c2x5LCBTeW5jaHJvbm91c2x5IH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9z
dExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0g
UnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxh
eW91dDo6Tm8pOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckVs
ZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5
bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCA9IFBzZXVkb0lkOjpOb25lKTsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDAzMmZkYjdlOTBlOC4uZjc1NmQ3YjAxNDc5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCkBAIC0xMjgxLDcgKzEyODEsNyBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wRm9y
QmluZGluZ3MoKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wKCkKIHsKLSAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCku
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5
b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5LCBEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAg
ICAgaWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1vZGVsT2Jq
ZWN0KCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4ZWxMYXlv
dXQoKnJlbmRlcmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJldHVybiAwOwpAQCAt
MTQ0MSw3ICsxNDQxLDcgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQgRWxlbWVu
dDo6c2Nyb2xsVG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5
LCBEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3Jv
bGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewogICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1
bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCkBAIC0xNzY2LDcgKzE3NjYsNyBAQCBzdGQ6Om9w
dGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3Q+PiBFbGVtZW50Ojpib3Vu
ZGluZ0Fic29sdXRlUmVjdAogCiBGbG9hdFJlY3QgRWxlbWVudDo6Ym91bmRpbmdDbGllbnRSZWN0
KCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5LCBEb2N1bWVudDo6
Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgYXV0byBwYWlyID0gYm91bmRpbmdBYnNvbHV0ZVJlY3RX
aXRob3V0TGF5b3V0KCk7CiAgICAgaWYgKCFwYWlyKQogICAgICAgICByZXR1cm4geyB9OwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggNzk4ZmU4NmJjNGYzLi5h
YzgyNWIwNmQzNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApA
QCAtNDg1LDkgKzQ4NSw5IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKGJvb2wg
aWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQogICAgIH0KIAogICAgIGlmIChpZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMpCi0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91
c2x5LCBEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgZWxzZQotICAgICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dChE
b2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRl
ckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNTEwLDkgKzUxMCw5IEBAIHVuc2lnbmVkIEhUTUxJ
bWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9
CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9z
dExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSwgRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAg
ICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBpZiAoIWJveCkKQEAgLTYyMSw3
ICs2MjEsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVl
KQogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiB7Ci0gICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9zdExheW91
dFRhc2tzOjpBc3luY2hyb25vdXNseSwgRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAg
IGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpCiAg
ICAgICAgIHJldHVybiAwOwpAQCAtNjMyLDcgKzYzMiw3IEBAIGludCBIVE1MSW1hZ2VFbGVtZW50
Ojp4KCkgY29uc3QKIAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6OnkoKSBjb25zdAogewotICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OlJ1
blBvc3RMYXlvdXRUYXNrczo6QXN5bmNocm9ub3VzbHksIERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJl
bmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi5hMjBjOGI2NzFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdW5zaWduZWQgSW1hZ2VJ
bnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVm
PEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVt
ZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQtPmRvY3VtZW50KCku
dXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIGlmIChhdXRv
KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RG
b3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRIZWln
aHQoKSwgKnJlbmRlcmVyKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCB1bnNpZ25lZCBJbWFnZUlucHV0
VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1M
SW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCi0gICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0
ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYWRqdXN0Rm9yQWJz
b2x1dGVab29tKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5jb250ZW50V2lkdGgoKSwg
KnJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5
b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwCmluZGV4IDJmZjMxMDIzZmFiZi4uMzQ5Y2RiMWZiOTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTIzNiw3ICsyMzYsOCBA
QCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCgpCiAjaWYgRU5BQkxFKExBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgICAgIGxheW91dFVzaW5nRm9ybWF0dGluZ0NvbnRl
eHQoKTsKICNlbmRpZgotICAgICAgICArK21fbGF5b3V0Q291bnQ7CisgICAgICAgIGlmICghbV9s
YXlvdXRGb3JjZWQpCisgICAgICAgICAgICArK21fbGF5b3V0Q291bnQ7CiAjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKICAgICAgICAgYXBwbHlUZXh0U2l6aW5nSWZOZWVkZWQoKmxheW91dFJv
b3QuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5oCmluZGV4IDZmOWViMWUwOTM4Mi4uZGRjNmYwMzBmMzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODQsNiArODQsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2Uo
KSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRy
ZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJ
blJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7
IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQg
JiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5
b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3Vz
VGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9s
YXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlv
dXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTc5LDYgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9u
b3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlv
dXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAg
ICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwg
Tm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3Rl
ZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCAwYzQyZDdmNjYxNzIuLjFlMjAzNGVhMDBl
NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC02NTIsNiAr
NjUyLDggQEAgdm9pZCBSZW5kZXJCbG9jazo6bGF5b3V0QmxvY2soYm9vbCwgTGF5b3V0VW5pdCkK
IAogdm9pZCBSZW5kZXJCbG9jazo6YWRkT3ZlcmZsb3dGcm9tQ2hpbGRyZW4oKQogeworICAgIGlm
IChzaG91bGRTa2lwQ29udGVudCgpICYmICF2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4
dCgpLmlzTGF5b3V0Rm9yY2VkKCkpCisgICAgICAgIHJldHVybjsKICAgICBpZiAoY2hpbGRyZW5J
bmxpbmUoKSkKICAgICAgICAgYWRkT3ZlcmZsb3dGcm9tSW5saW5lQ2hpbGRyZW4oKTsKICAgICBl
bHNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4
IDNhMzE2NTcwMzY0Mi4uZWQ2OGRjZWUxMmQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNTI3LDYgKzUyNyw4IEBAIHZvaWQgUmVuZGVyQmxv
Y2tGbG93OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFn
ZUxvZ2ljYWxICiAgICAgICAgIGlmICghZmlyc3RDaGlsZCgpICYmICFpc0Fub255bW91c0Jsb2Nr
KCkpCiAgICAgICAgICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsKICAgICAgICAgZGlydHlG
b3JMYXlvdXRGcm9tUGVyY2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7CisgICAgICAgIGlmICh2
aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCkgJiYgKChl
bGVtZW50KCkgJiYgZWxlbWVudCgpLT5pc1NraXBwZWRDb250ZW50KCkpIHx8IHNob3VsZFNraXBD
b250ZW50KCkpKQorICAgICAgICAgICAgcmVsYXlvdXRDaGlsZHJlbiA9IHRydWU7CiAgICAgICAg
IGlmIChjaGlsZHJlbklubGluZSgpKQogICAgICAgICAgICAgbGF5b3V0SW5saW5lQ2hpbGRyZW4o
cmVsYXlvdXRDaGlsZHJlbiwgcmVwYWludExvZ2ljYWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90dG9t
KTsKICAgICAgICAgZWxzZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclZpZXcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCmlu
ZGV4IGFhZmQ5ZGNkMDU2OC4uMzU1YTMxYWFhYWRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCkBAIC0xNzYsNyArMTc2LDkgQEAgdm9pZCBSZW5kZXJWaWV3OjpsYXlv
dXQoKQogICAgIH0KIAogICAgIEFTU0VSVCghZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmxh
eW91dFN0YXRlKCkpOwotICAgIGlmICghbmVlZHNMYXlvdXQoKSkKKyAgICBpZiAoZnJhbWVWaWV3
KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCkpIHsKKyAgICAgICAgc2V0Q2hpbGRO
ZWVkc0xheW91dChNYXJrT25seVRoaXMpOworICAgIH0gZWxzZSBpZiAoIW5lZWRzTGF5b3V0KCkp
CiAgICAgICAgIHJldHVybjsKIAogICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1c2hl
cigqdGhpcywgeyB9LCBmYWxzZSwgdmFsdWVPckRlZmF1bHQobV9wYWdlTG9naWNhbFNpemUpLmhl
aWdodCgpLCBtX3BhZ2VMb2dpY2FsSGVpZ2h0Q2hhbmdlZCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453656</attachid>
            <date>2022-03-02 13:56:51 -0800</date>
            <delta_ts>2022-04-22 03:10:31 -0700</delta_ts>
            <desc>Improved patch</desc>
            <filename>forcedLayout2.diff</filename>
            <type>text/plain</type>
            <size>19739</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCBmNDhhN2VhYzU0YTAuLmM3MmY5MzFkNzQ3MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTAzLTAyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gU3VwcG9ydCBmb3JjZWQgbGF5b3V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjItMDMtMDIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY29udGVu
dC12aXNpYmlsaXR5XSBBZGQgc3VwcG9ydCBmb3IgY3NzIGNvbnRlbnQtdmlzaWJpbGl0eTogaGlk
ZGVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAyNThhYTM2MmJhYmUuLjliZWJiMTYzNjY2NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC00NjE3LDIxICs0NjE3LDE2IEBAIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4tcGFpbnQtMDA4Lmh0bWwgWyBJ
bWFnZU9uCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250YWluLXBhaW50LTAyMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLXBhaW50LWNsaXAtMDE1
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4tcGFpbnQtY2xpcC0wMTYuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQotIyBmb3JjZWQgbGF5b3V0Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTAzNS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTAzOC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTA0NC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiAjIGMtdjogYXV0bwogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDguaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNTAuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQor
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNTcuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNjguaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzAuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzEuaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzIuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS13aXRoLXRv
cC1sYXllci0wMDAudGVudGF0aXZlLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktd2l0aC10b3AtbGF5ZXItMDAxLnRlbnRhdGl2ZS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXdpdGgtdG9w
LWxheWVyLTAwMi50ZW50YXRpdmUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY291bnRlci1zY29waW5nLTAw
MS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb3VudGVyLXNjb3BpbmctMDAyLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IDc1ZTNiMjg3OTdiZi4u
OTBjY2FlZDRlZTYwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MiBAQAorMjAyMi0wMy0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAg
IFtjb250ZW50LXZpc2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzY5CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4
LWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wMy0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29t
PgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29u
dGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dAppbmRleCAxZWNlN2E5N2M0
YmYuLmJjZmM3ODlmYTQwYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAot
RkFJTCBNZWFzdXJlIEZvcmNlZCBMYXlvdXQgYXNzZXJ0X2VxdWFsczogc3BhY2VyIHdoZW4gdmlz
aWJsZSBleHBlY3RlZCAxMDggYnV0IGdvdCA4CitQQVNTIE1lYXN1cmUgRm9yY2VkIExheW91dAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cKaW5kZXggOWU2MGE4MzI5YzU3Li4xOTRkZjFhOTNmYWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSw0NCBAQAorMjAyMi0wMy0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgor
CisgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MzY5CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgV0lQLgorCisgICAg
ICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRh
dGVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cyk6CisgICAgICAgICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAg
ICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9w
KToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6OnNjcm9sbFRvcCk6CisgICAgICAgIChXZWJD
b3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QpOgorICAgICAgICAqIGh0bWwvSFRNTElt
YWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0
aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWlnaHQpOgorICAgICAg
ICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpIVE1MSW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3Qp
OgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKyAgICAg
ICAgKiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmll
d0xheW91dENvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRl
eHQ6OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xh
eW91dENvbnRleHQ6OnNldExheW91dEZvcmNlZCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91
dEJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJWaWV3OjpsYXlvdXQpOgorICAgICAgICAqIHN2Zy9TVkdMb2NhdGFibGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToKKyAgICAgICAg
KiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycyk6CisgICAgICAgIChXZWJDb3JlOjpT
VkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCk6CisgICAgICAgIChX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKwog
MjAyMi0wMy0wMiAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjb250
ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBo
aWRkZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGQyNGZjNGRkZDE3OC4uNzk1ODYyZWIy
YzcwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIxODMsNyArMjE4Myw3IEBAIGJvb2wg
RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12
b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0
KEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAKQEAgLTIyMDYsMTEgKzIyMDYsMTkgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkK
IAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYm
ICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBv
bGRMYXlvdXRGb3JjZWQ7CisgICAgaWYgKGZvcmNlTGF5b3V0ID09IEZvcmNlTGF5b3V0OjpZZXMg
JiYgdmlldygpKSB7CisgICAgICAgIG9sZExheW91dEZvcmNlZCA9IHZpZXcoKS0+bGF5b3V0Q29u
dGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7CisgICAgICAgIHZpZXcoKS0+bGF5b3V0Q29udGV4dCgp
LnNldExheW91dEZvcmNlZCh0cnVlKTsKKyAgICB9CisgICAgaWYgKCFmcmFtZVZpZXctPmxheW91
dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91
dCgpICYmIGZvcmNlTGF5b3V0ICE9IEZvcmNlTGF5b3V0OjpZZXMpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmxheW91dCgpOwogCisgICAgaWYgKG9s
ZExheW91dEZvcmNlZCkKKyAgICAgICAgdmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0
Rm9yY2VkKCpvbGRMYXlvdXRGb3JjZWQpOworCiAgICAgU3R5bGU6OlNjb3BlOjpRdWVyeUNvbnRh
aW5lclVwZGF0ZUNvbnRleHQgcXVlcnlDb250YWluZXJVcGRhdGVDb250ZXh0OwogICAgIHdoaWxl
IChzdHlsZVNjb3BlKCkudXBkYXRlUXVlcnlDb250YWluZXJTdGF0ZShxdWVyeUNvbnRhaW5lclVw
ZGF0ZUNvbnRleHQpKSB7CiAgICAgICAgIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKQEAgLTIyMjIs
NyArMjIzMCwxMiBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogICAgIH0KIH0KIAot
dm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3Vt
ZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MgcnVuUG9zdExheW91dFRhc2tzKQordm9pZCBEb2N1bWVu
dDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0IGZvcmNl
TGF5b3V0KQoreworICAgIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Q
b3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5LCBmb3JjZUxheW91dCk7Cit9CisKK3ZvaWQg
RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6
UnVuUG9zdExheW91dFRhc2tzIHJ1blBvc3RMYXlvdXRUYXNrcywgRm9yY2VMYXlvdXQgZm9yY2VM
YXlvdXQpCiB7CiAgICAgYm9vbCBvbGRJZ25vcmUgPSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
czsKIApAQCAtMjIzMyw3ICsyMjQ2LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAg
ICAgICAgIHNjaGVkdWxlRnVsbFN0eWxlUmVidWlsZCgpOwogICAgIH0KIAotICAgIHVwZGF0ZUxh
eW91dCgpOworICAgIHVwZGF0ZUxheW91dChmb3JjZUxheW91dCk7CiAKICAgICBpZiAocnVuUG9z
dExheW91dFRhc2tzID09IFJ1blBvc3RMYXlvdXRUYXNrczo6U3luY2hyb25vdXNseSAmJiB2aWV3
KCkpCiAgICAgICAgIHZpZXcoKS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCmluZGV4IDZmODk0NGY1MTU0Yy4uYTI1YmU0YjgyN2UwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaApAQCAtNjIwLDEyICs2MjAsMTQgQEAgcHVibGljOgogICAgIGJvb2wgbmVl
ZHNTdHlsZVJlY2FsYygpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxhc3RTdHlsZVVwZGF0ZVNpemVG
b3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGlu
ZzsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQoKTsKLSAgICAKKyAg
ICBlbnVtIGNsYXNzIEZvcmNlTGF5b3V0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JU
IHZvaWQgdXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwogICAg
IC8vIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQg
ZXZlbiBpZiB3ZSBhcmUgd2FpdGluZyBmb3IgcGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAg
IC8vIHNvIGNhbGxpbmcgdGhpcyBtYXkgY2F1c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50
IChGT1VDKS4KICAgICBlbnVtIGNsYXNzIFJ1blBvc3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJvbm91
c2x5LCBTeW5jaHJvbm91c2x5IH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExh
eW91dFRhc2tzOjpBc3luY2hyb25vdXNseSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVu
UG9zdExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91
dDo6Tm8pOworICAgIHZvaWQgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZv
cmNlTGF5b3V0KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JF
bGVtZW50SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVldHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0
eWxlKiBwYXJlbnRTdHlsZSwgUHNldWRvSWQgPSBQc2V1ZG9JZDo6Tm9uZSk7CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAppbmRleCAwMzJmZGI3ZTkwZTguLjk3ZmFlZTI4Y2U5ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcApAQCAtMTI4MSw3ICsxMjgxLDcgQEAgaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZv
ckJpbmRpbmdzKCkKIAogaW50IEVsZW1lbnQ6Om9mZnNldFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlv
dXQ6Olllcyk7CiAgICAgaWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRl
ckJveE1vZGVsT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5k
U3VicGl4ZWxMYXlvdXQoKnJlbmRlcmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJl
dHVybiAwOwpAQCAtMTQ0MSw3ICsxNDQxLDcgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQog
CiBpbnQgRWxlbWVudDo6c2Nyb2xsVG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAog
ICAgIGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7CiAgICAgICAg
IGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKQEAgLTE3
NjYsNyArMTc2Niw3IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZs
b2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVt
ZW50Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAg
IGF1dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwogICAgIGlm
ICghcGFpcikKICAgICAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCmluZGV4IDc5OGZlODZiYzRmMy4uMjI1M2UwZDE2OTQ5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTQ4NSw5ICs0ODUsOSBAQCB1bnNp
Z25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVu
dDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9y
Y2VMYXlvdXQ6Olllcyk7CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAg
IGlmICghYm94KQpAQCAtNTEwLDkgKzUxMCw5IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6
OmhlaWdodChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAo
aWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7
CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAg
ICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNjIxLDcg
KzYyMSw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUp
CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJl
bmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKQEAgLTYzMiw3ICs2MzIsNyBAQCBpbnQgSFRNTElt
YWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QK
IHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERv
Y3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVu
ZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi5hMjBjOGI2NzFk
MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNyArMTcz
LDcgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJU
KGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVs
ZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAg
IGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAg
ICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94Pigq
cmVuZGVyZXIpLmNvbnRlbnRIZWlnaHQoKSwgKnJlbmRlcmVyKTsKQEAgLTE5NSw3ICsxOTUsNyBA
QCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVt
ZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50
KCkpOwogCi0gICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICBlbGVt
ZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7
CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAg
ICByZXR1cm4gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRl
cmVyKS5jb250ZW50V2lkdGgoKSwgKnJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmluZGV4IDJmZjMxMDIzZmFiZi4uMzQ5Y2RiMWZi
OTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAKQEAgLTIzNiw3ICsyMzYsOCBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91
dCgpCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgICAgIGxheW91
dFVzaW5nRm9ybWF0dGluZ0NvbnRleHQoKTsKICNlbmRpZgotICAgICAgICArK21fbGF5b3V0Q291
bnQ7CisgICAgICAgIGlmICghbV9sYXlvdXRGb3JjZWQpCisgICAgICAgICAgICArK21fbGF5b3V0
Q291bnQ7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICAgICAgYXBwbHlUZXh0U2l6
aW5nSWZOZWVkZWQoKmxheW91dFJvb3QuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IDZmOWViMWUwOTM4Mi4uZGRjNmYw
MzBmMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
aApAQCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3Qg
eyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQog
ICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFz
ZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFp
bnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNl
OjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5W
aWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5
b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2Vk
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZv
cmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlv
dXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTc5LDYgKzE4
MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXRO
ZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2Vk
IHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6
Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDogdWlu
dDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0
ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5
b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmlu
ZGV4IDNhMzE2NTcwMzY0Mi4uYTJkNWRiMDI4YmYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNTI3LDEwICs1MjcsMTIgQEAgdm9pZCBSZW5k
ZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCBwYWdlTG9naWNhbEgKICAgICAgICAgaWYgKCFmaXJzdENoaWxkKCkgJiYgIWlzQW5vbnltb3Vz
QmxvY2soKSkKICAgICAgICAgICAgIHNldENoaWxkcmVuSW5saW5lKHRydWUpOwogICAgICAgICBk
aXJ0eUZvckxheW91dEZyb21QZXJjZW50YWdlSGVpZ2h0RGVzY2VuZGFudHMoKTsKLSAgICAgICAg
aWYgKGNoaWxkcmVuSW5saW5lKCkpCi0gICAgICAgICAgICBsYXlvdXRJbmxpbmVDaGlsZHJlbihy
ZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20p
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsYXlvdXRCbG9ja0NoaWxkcmVuKHJlbGF5b3V0
Q2hpbGRyZW4sIG1heEZsb2F0TG9naWNhbEJvdHRvbSk7CisgICAgICAgIGlmICghc2hvdWxkU2tp
cENvbnRlbnQoKSB8fCB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0
Rm9yY2VkKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZHJlbklubGluZSgpKQorICAgICAgICAg
ICAgICAgIGxheW91dElubGluZUNoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4gfHwgdmlldygpLmZy
YW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpLCByZXBhaW50TG9naWNh
bFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIGxheW91dEJsb2NrQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbiB8fCB2aWV3KCkuZnJh
bWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCksIG1heEZsb2F0TG9naWNh
bEJvdHRvbSk7CisgICAgICAgIH0KICAgICAgICAgLy8gRXhwYW5kIG91ciBpbnRyaW5zaWMgaGVp
Z2h0IHRvIGVuY29tcGFzcyBmbG9hdHMuCiAgICAgICAgIExheW91dFVuaXQgdG9BZGQgPSBib3Jk
ZXJBbmRQYWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAg
aWYgKGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSgpID4gKGxvZ2ljYWxIZWlnaHQoKSAtIHRvQWRk
KSAmJiBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRleHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAppbmRleCBhYWZkOWRjZDA1NjguLjM1NWEzMWFhYWFkZSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMTc2LDcgKzE3Niw5IEBAIHZv
aWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICB9CiAKICAgICBBU1NFUlQoIWZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpKTsKLSAgICBpZiAoIW5lZWRzTGF5b3V0KCkp
CisgICAgaWYgKGZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKSB7
CisgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICB9IGVsc2Ug
aWYgKCFuZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRTdGF0ZU1h
aW50YWluZXIgc3RhdGVQdXNoZXIoKnRoaXMsIHsgfSwgZmFsc2UsIHZhbHVlT3JEZWZhdWx0KG1f
cGFnZUxvZ2ljYWxTaXplKS5oZWlnaHQoKSwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCA5NWEyNmZmODM2MWEuLmM1ODc3MzM5
ZTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAg
RmxvYXRSZWN0IFNWR0xvY2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHls
ZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXAKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgaWYg
KHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKLSAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50
dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAg
ICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBjMTQ1M2JmYzYwNDAuLmZkOWQ2ODA3MzM1NyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEz
ICs1NSwxMyBAQCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJz
KCk7CiB9CiAKIGZsb2F0IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVu
Z3RoKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5
KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2Vw
dGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVu
c2lnbmVkIGNoYXJudW0pCiAKIGludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1B
dFBvc2l0aW9uKERPTVBvaW50SW5pdCYmIHBvaW50SW5pdCkKIHsKLSAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKICAgICBGbG9hdFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4o
cG9pbnRJbml0LngpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1
cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJh
bnNmb3JtUG9pbnQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>458128</attachid>
            <date>2022-04-22 03:10:31 -0700</date>
            <delta_ts>2022-05-18 07:25:04 -0700</delta_ts>
            <desc>Rebase</desc>
            <filename>forcedLayout3.diff</filename>
            <type>text/plain</type>
            <size>18113</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAwNWY1ZDMyZDBjZGYuLjBkNWM4YWQzN2U0NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBA
CisyMDIyLTA0LTIyICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CisKKyAgICAgICAgW2Nv
bnRlbnQtdmlzaWJpbGl0eV0gU3VwcG9ydCBmb3JjZWQgbGF5b3V0CisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFRlc3RFeHBlY3RhdGlvbnM6CisKIDIw
MjItMDQtMjIgIFJvYiBCdWlzICA8cmJ1aXNAaWdhbGlhLmNvbT4KIAogICAgICAgICBbY29udGVu
dC12aXNpYmlsaXR5XSBBZGQgc3VwcG9ydCBmb3IgY3NzIGNvbnRlbnQtdmlzaWJpbGl0eTogaGlk
ZGVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCAzZjc4MWIzMzRiMzkuLjFkMmY3NDIwNjQ4NyAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC00NjQ4LDYgKzQ2NDgsNyBAQCBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLXBhaW50LWNsaXAtMDE2Lmh0bWwg
WyBJbQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29u
dGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzguaHRtbCBbIEltYWdlT25s
eUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDQuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNTcuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogIyBjLXY6IGF1dG8KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDcwLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDcxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCmluZGV4IDdhYzNiYmYxMzQ2MS4uZDVkNTE5OGU2MjU5IDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMi0wNC0yMiAgUm9iIEJ1aXMgIDxy
YnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIFN1cHBvcnQg
Zm9yY2VkIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3MzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKwogMjAyMi0wNC0yMiAg
Um9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxp
dHldIEFkZCBzdXBwb3J0IGZvciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4
cGVjdGVkLnR4dAppbmRleCAxZWNlN2E5N2M0YmYuLmJjZmM3ODlmYTQwYSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVj
dGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBNZWFzdXJlIEZvcmNlZCBMYXlvdXQgYXNz
ZXJ0X2VxdWFsczogc3BhY2VyIHdoZW4gdmlzaWJsZSBleHBlY3RlZCAxMDggYnV0IGdvdCA4CitQ
QVNTIE1lYXN1cmUgRm9yY2VkIExheW91dAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNmEzNWZhNDczODI2Li42
ZjMwNDgzMzFmYTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NCBAQAorMjAyMi0wNC0yMiAgUm9i
IEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHld
IFN1cHBvcnQgZm9yY2VkIGxheW91dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3MzY5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgV0lQLgorCisgICAgICAgICogZG9tL0RvY3VtZW50LmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQpOgorICAgICAgICAoV2ViQ29yZTo6
RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyk6CisgICAgICAg
ICogZG9tL0RvY3VtZW50Lmg6CisgICAgICAgICogZG9tL0VsZW1lbnQuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKyAgICAgICAgKFdlYkNvcmU6OkVsZW1lbnQ6
OnNjcm9sbFRvcCk6CisgICAgICAgIChXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJl
Y3QpOgorICAgICAgICAqIGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1h
Z2VFbGVtZW50OjpoZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6
eCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToK
KyAgICAgICAgKiBodG1sL0ltYWdlSW5wdXRUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Oklt
YWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6SW1hZ2VJbnB1
dFR5cGU6OndpZHRoIGNvbnN0KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0
KToKKyAgICAgICAgKiBwYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OnNldExheW91dEZvcmNlZCk6
CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJWaWV3OjpsYXlvdXQpOgor
ICAgICAgICAqIHN2Zy9TVkdMb2NhdGFibGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHTG9j
YXRhYmxlOjpnZXRCQm94KToKKyAgICAgICAgKiBzdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZD
aGFycyk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1
dGVkVGV4dExlbmd0aCk6CisgICAgICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6
OmdldENoYXJOdW1BdFBvc2l0aW9uKToKKwogMjAyMi0wNC0yMiAgUm9iIEJ1aXMgIDxyYnVpc0Bp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtjb250ZW50LXZpc2liaWxpdHldIEFkZCBzdXBwb3J0IGZv
ciBjc3MgY29udGVudC12aXNpYmlsaXR5OiBoaWRkZW4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDA3MTk3NjJhNjg3MC4uOWRiMTQxNTBhNjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTIyMTcsNyArMjIxNyw3IEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQo
KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQor
dm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTIyNDAsMTEgKzIyNDAsMTkgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5k
ZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29u
dGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkp
CisgICAgc3RkOjpvcHRpb25hbDxib29sPiBvbGRMYXlvdXRGb3JjZWQ7CisgICAgaWYgKGZvcmNl
TGF5b3V0ID09IEZvcmNlTGF5b3V0OjpZZXMgJiYgdmlldygpKSB7CisgICAgICAgIG9sZExheW91
dEZvcmNlZCA9IHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7CisgICAg
ICAgIHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVlKTsKKyAgICB9
CisgICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAm
JiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpICYmIGZvcmNlTGF5b3V0ICE9IEZvcmNlTGF5
b3V0OjpZZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4
dCgpLmxheW91dCgpOwogCisgICAgaWYgKG9sZExheW91dEZvcmNlZCkKKyAgICAgICAgdmlldygp
LT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKCpvbGRMYXlvdXRGb3JjZWQpOworCiAg
ICAgU3R5bGU6OlNjb3BlOjpRdWVyeUNvbnRhaW5lclVwZGF0ZUNvbnRleHQgcXVlcnlDb250YWlu
ZXJVcGRhdGVDb250ZXh0OwogICAgIHdoaWxlIChzdHlsZVNjb3BlKCkudXBkYXRlUXVlcnlDb250
YWluZXJTdGF0ZShxdWVyeUNvbnRhaW5lclVwZGF0ZUNvbnRleHQpKSB7CiAgICAgICAgIHVwZGF0
ZVN0eWxlSWZOZWVkZWQoKTsKQEAgLTIyNTYsNyArMjI2NCwxMiBAQCB2b2lkIERvY3VtZW50Ojp1
cGRhdGVMYXlvdXQoKQogICAgIH0KIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MgcnVuUG9z
dExheW91dFRhc2tzKQordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQoreworICAgIHVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5
LCBmb3JjZUxheW91dCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9zdExheW91dFRhc2tzIHJ1blBvc3RMYXlv
dXRUYXNrcywgRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCiB7CiAgICAgYm9vbCBvbGRJZ25vcmUg
PSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0czsKIApAQCAtMjI2Nyw3ICsyMjgwLDcgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50
OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAgICAgICAgIHNjaGVkdWxlRnVsbFN0eWxlUmVidWls
ZCgpOwogICAgIH0KIAotICAgIHVwZGF0ZUxheW91dCgpOworICAgIHVwZGF0ZUxheW91dChmb3Jj
ZUxheW91dCk7CiAKICAgICBpZiAocnVuUG9zdExheW91dFRhc2tzID09IFJ1blBvc3RMYXlvdXRU
YXNrczo6U3luY2hyb25vdXNseSAmJiB2aWV3KCkpCiAgICAgICAgIHZpZXcoKS0+Zmx1c2hBbnlQ
ZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IGEwZjYzODJl
NzA0My4uMTFkNTI1MjkwMGZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjIwLDEyICs2MjAs
MTQgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0OwogICAgIHVu
c2lnbmVkIGxhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nKCkgY29uc3QgeyByZXR1cm4gbV9s
YXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGluZzsgfQogCi0gICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB1cGRhdGVMYXlvdXQoKTsKLSAgICAKKyAgICBlbnVtIGNsYXNzIEZvcmNlTGF5b3V0IHsgTm8s
IFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0
ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwogICAgIC8vIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQgZXZlbiBpZiB3ZSBhcmUgd2FpdGluZyBmb3IgcGVu
ZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAgIC8vIHNvIGNhbGxpbmcgdGhpcyBtYXkgY2F1c2Ug
YSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50IChGT1VDKS4KICAgICBlbnVtIGNsYXNzIFJ1blBv
c3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJvbm91c2x5LCBTeW5jaHJvbm91c2x5IH07Ci0gICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoUnVu
UG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25vdXNs
eSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8pOworICAgIHZvaWQgdXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0KTsKIAogICAgIHN0ZDo6dW5pcXVl
X3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVl
dHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgUHNldWRvSWQgPSBQ
c2V1ZG9JZDo6Tm9uZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAwODczMWE3OGYxMjMu
LjRmMGY2ODFlODY3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTI3Nyw3ICsxMjc3LDcg
QEAgaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRpbmdzKCkKIAogaW50IEVsZW1lbnQ6Om9m
ZnNldFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgaWYgKFJlbmRlckJveE1v
ZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1vZGVsT2JqZWN0KCkpCiAgICAgICAgIHJl
dHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4ZWxMYXlvdXQoKnJlbmRlcmVyLCByZW5k
ZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJldHVybiAwOwpAQCAtMTQzNyw3ICsxNDM3LDcgQEAg
aW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQgRWxlbWVudDo6c2Nyb2xsVG9wKCkKIHsK
LSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwor
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3Vt
ZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0Vs
ZW1lbnQoKSA9PSB0aGlzKSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50RnJh
bWVXaXRoTm9uTnVsbFZpZXcoKSkKQEAgLTE3NjIsNyArMTc2Miw3IEBAIHN0ZDo6b3B0aW9uYWw8
c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJz
b2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogewot
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Cisg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1l
bnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIGF1dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVS
ZWN0V2l0aG91dExheW91dCgpOwogICAgIGlmICghcGFpcikKICAgICAgICAgcmV0dXJuIHsgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDAwY2RkNjJmZTA0
Ni4uYTU5YmEyMjgwODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFn
ZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAKQEAgLTQ5OCw5ICs0OTgsOSBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aChi
b29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgZWxz
ZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBSZW5kZXJC
b3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNTIzLDkgKzUyMyw5IEBA
IHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGlnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQotICAg
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwor
ICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhE
b2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVu
dDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgp
OwogICAgIGlmICghYm94KQpAQCAtNjM0LDcgKzYzNCw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVu
dDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkg
Y29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhp
cy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKQEAg
LTY0NSw3ICs2NDUsNyBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBI
VE1MSW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAg
ICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQog
ICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5k
ZXggOTYxNTM0MTFjNzAzLi5hMjBjOGI2NzFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6
OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1
dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1
bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5
b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJl
ciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0
ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRIZWlnaHQoKSwgKnJl
bmRlcmVyKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lk
dGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVt
ZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCi0gICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXQoKTsKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dChE
b2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBl
bGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYWRqdXN0Rm9yQWJzb2x1dGVab29t
KGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5jb250ZW50V2lkdGgoKSwgKnJlbmRlcmVy
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCmlu
ZGV4IDJmZjMxMDIzZmFiZi4uMzQ5Y2RiMWZiOTlhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTIzNiw3ICsyMzYsOCBAQCB2b2lkIEZy
YW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCgpCiAjaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRU
SU5HX0NPTlRFWFQpCiAgICAgICAgIGxheW91dFVzaW5nRm9ybWF0dGluZ0NvbnRleHQoKTsKICNl
bmRpZgotICAgICAgICArK21fbGF5b3V0Q291bnQ7CisgICAgICAgIGlmICghbV9sYXlvdXRGb3Jj
ZWQpCisgICAgICAgICAgICArK21fbGF5b3V0Q291bnQ7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJ
WklORykKICAgICAgICAgYXBwbHlUZXh0U2l6aW5nSWZOZWVkZWQoKmxheW91dFJvb3QuZ2V0KCkp
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
CmluZGV4IDZmOWViMWUwOTM4Mi4uZGRjNmYwMzBmMzEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODQsNiArODQsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlv
dXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQo
KSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRy
ZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBs
YXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0
UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2Uo
KSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7
IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3Jj
ZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQg
PSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5
b3V0Q291bnQ7IH0KIApAQCAtMTc5LDYgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25l
ZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3Mg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBt
X2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNs
YXNzIExheW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVk
LCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsg
TGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDgzY2Y1YTZjYWQzOC4uNGYwMjJmMzBmMTcy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAt
NTI5LDEwICs1MjksMTIgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKGJvb2wg
cmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEgKICAgICAgICAgaWYgKCFm
aXJzdENoaWxkKCkgJiYgIWlzQW5vbnltb3VzQmxvY2soKSkKICAgICAgICAgICAgIHNldENoaWxk
cmVuSW5saW5lKHRydWUpOwogICAgICAgICBkaXJ0eUZvckxheW91dEZyb21QZXJjZW50YWdlSGVp
Z2h0RGVzY2VuZGFudHMoKTsKLSAgICAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkpCi0gICAgICAg
ICAgICBsYXlvdXRJbmxpbmVDaGlsZHJlbihyZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNh
bFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBs
YXlvdXRCbG9ja0NoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4sIG1heEZsb2F0TG9naWNhbEJvdHRv
bSk7CisgICAgICAgIGlmICghc2hvdWxkU2tpcENvbnRlbnQoKSB8fCB2aWV3KCkuZnJhbWVWaWV3
KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCkpIHsKKyAgICAgICAgICAgIGlmIChj
aGlsZHJlbklubGluZSgpKQorICAgICAgICAgICAgICAgIGxheW91dElubGluZUNoaWxkcmVuKHJl
bGF5b3V0Q2hpbGRyZW4gfHwgdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xh
eW91dEZvcmNlZCgpLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOwor
ICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxheW91dEJsb2NrQ2hpbGRyZW4ocmVs
YXlvdXRDaGlsZHJlbiB8fCB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5
b3V0Rm9yY2VkKCksIG1heEZsb2F0TG9naWNhbEJvdHRvbSk7CisgICAgICAgIH0KICAgICAgICAg
Ly8gRXhwYW5kIG91ciBpbnRyaW5zaWMgaGVpZ2h0IHRvIGVuY29tcGFzcyBmbG9hdHMuCiAgICAg
ICAgIExheW91dFVuaXQgdG9BZGQgPSBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJh
ckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSgp
ID4gKGxvZ2ljYWxIZWlnaHQoKSAtIHRvQWRkKSAmJiBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRl
eHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRleCBhYWZkOWRj
ZDA1NjguLjM1NWEzMWFhYWFkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3
LmNwcApAQCAtMTc2LDcgKzE3Niw5IEBAIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICB9
CiAKICAgICBBU1NFUlQoIWZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgp
KTsKLSAgICBpZiAoIW5lZWRzTGF5b3V0KCkpCisgICAgaWYgKGZyYW1lVmlldygpLmxheW91dENv
bnRleHQoKS5pc0xheW91dEZvcmNlZCgpKSB7CisgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQo
TWFya09ubHlUaGlzKTsKKyAgICB9IGVsc2UgaWYgKCFuZWVkc0xheW91dCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIoKnRoaXMsIHsg
fSwgZmFsc2UsIHZhbHVlT3JEZWZhdWx0KG1fcGFnZUxvZ2ljYWxTaXplKS5oZWlnaHQoKSwgbV9w
YWdlTG9naWNhbEhlaWdodENoYW5nZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcApp
bmRleCA5NWEyNmZmODM2MWEuLmM1ODc3MzM5ZTk4YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0
YWJsZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRmxvYXRSZWN0IFNWR0xvY2F0YWJsZTo6Z2V0QkJv
eChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXAKIHsKICAg
ICBBU1NFUlQoZWxlbWVudCk7CiAgICAgaWYgKHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dT
dHlsZVVwZGF0ZSkKLSAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZ
ZXMpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJv
eCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBmODRj
MzRiNDQwMTIuLmUwZTk2YWQxZTZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEzICs1NSwxMyBAQCBTVkdUZXh0Q29udGVudEVsZW1l
bnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBE
b2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMo
KQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
RG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVu
ZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZsb2F0IFNWR1RleHRDb250ZW50
RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVz
KTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0K
IApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0pCiAKIGludCBTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERPTVBvaW50SW5pdCYmIHBvaW50
SW5pdCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBGbG9hdFBvaW50IHRyYW5zZm9y
bVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LngpLCBzdGF0aWNfY2FzdDxmbG9h
dD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNo
YXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJhbnNmb3JtUG9pbnQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>459542</attachid>
            <date>2022-05-18 07:25:04 -0700</date>
            <delta_ts>2022-06-03 08:29:07 -0700</delta_ts>
            <desc>Remove ChangeLogs</desc>
            <filename>forcedLayout4.diff</filename>
            <type>text/plain</type>
            <size>15956</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">Y29tbWl0IGUyODc5YjE0YmJmYmQ0NWFiYzY3MGE1NTQ0YjUzM2RlMzk4ZTc4MGEKQXV0aG9yOiBS
b2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogICBXZWQgTWF5IDE4IDE1OjIyOjE1IDIw
MjIgKzAxMDAKCiAgICBbY29udGVudC12aXNpYmlsaXR5XSBTdXBwb3J0IGZvcmNlZCBsYXlvdXQK
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKICAgIAog
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCiAgICAKICAgICogVGVzdEV4cGVjdGF0aW9u
czoKICAgIFtjb250ZW50LXZpc2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzM2OQogICAgCiAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4
cGVjdGVkLnR4dDoKICAgIFtjb250ZW50LXZpc2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91
dAogICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNzM2OQogICAg
CiAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KICAgIAogICAgV0lQLgogICAgCiAgICAq
IGRvbS9Eb2N1bWVudC5jcHA6CiAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dCk6
CiAgICAoV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cyk6CiAgICAqIGRvbS9Eb2N1bWVudC5oOgogICAgKiBkb20vRWxlbWVudC5jcHA6CiAgICAo
V2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKICAgIChXZWJDb3JlOjpFbGVtZW50OjpzY3Jv
bGxUb3ApOgogICAgKFdlYkNvcmU6OkVsZW1lbnQ6OmJvdW5kaW5nQ2xpZW50UmVjdCk6CiAgICAq
IGh0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CiAgICAoV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6d2lkdGgpOgogICAgKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodCk6CiAgICAo
V2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CiAgICAoV2ViQ29yZTo6SFRNTElt
YWdlRWxlbWVudDo6eSBjb25zdCk6CiAgICAqIGh0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgogICAg
KFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgogICAgKFdlYkNvcmU6Oklt
YWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiAgICAqIHBhZ2UvRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5jcHA6CiAgICAoV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6bGF5b3V0KToK
ICAgICogcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg6CiAgICAoV2ViQ29yZTo6RnJhbWVW
aWV3TGF5b3V0Q29udGV4dDo6aXNMYXlvdXRGb3JjZWQgY29uc3QpOgogICAgKFdlYkNvcmU6OkZy
YW1lVmlld0xheW91dENvbnRleHQ6OnNldExheW91dEZvcmNlZCk6CiAgICAqIHJlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwOgogICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0
QmxvY2spOgogICAgKiByZW5kZXJpbmcvUmVuZGVyVmlldy5jcHA6CiAgICAoV2ViQ29yZTo6UmVu
ZGVyVmlldzo6bGF5b3V0KToKICAgICogc3ZnL1NWR0xvY2F0YWJsZS5jcHA6CiAgICAoV2ViQ29y
ZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToKICAgICogc3ZnL1NWR1RleHRDb250ZW50RWxlbWVu
dC5jcHA6CiAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXROdW1iZXJPZkNo
YXJzKToKICAgIChXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4
dExlbmd0aCk6CiAgICAoV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVt
QXRQb3NpdGlvbik6CgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0CmluZGV4IDBlODgwZTA1NWYwNC4uYmNmYzc4
OWZhNDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmls
aXR5LTAzOC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIE1lYXN1
cmUgRm9yY2VkIExheW91dCBhc3NlcnRfZXF1YWxzOiBzcGFjZXIgZm9yY2VkIGV4cGVjdGVkIDgg
YnV0IGdvdCAxMDgKK1BBU1MgTWVhc3VyZSBGb3JjZWQgTGF5b3V0CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwCmluZGV4IDA2MzZiZDViNDM2My4uODg4ODU2ZjE4YzQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKQEAgLTIyMzMsNyArMjIzMyw3IEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxl
SWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVM
YXlvdXQoKQordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0IGZvcmNlTGF5
b3V0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTIyNTYsMTEgKzIyNTYs
MTkgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3
IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+
bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRz
TGF5b3V0KCkpCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBvbGRMYXlvdXRGb3JjZWQ7CisgICAg
aWYgKGZvcmNlTGF5b3V0ID09IEZvcmNlTGF5b3V0OjpZZXMgJiYgdmlldygpKSB7CisgICAgICAg
IG9sZExheW91dEZvcmNlZCA9IHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2Vk
KCk7CisgICAgICAgIHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVl
KTsKKyAgICB9CisgICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBl
bmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpICYmIGZvcmNlTGF5b3V0ICE9
IEZvcmNlTGF5b3V0OjpZZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5
b3V0Q29udGV4dCgpLmxheW91dCgpOwogCisgICAgaWYgKG9sZExheW91dEZvcmNlZCkKKyAgICAg
ICAgdmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKCpvbGRMYXlvdXRGb3Jj
ZWQpOworCiAgICAgU3R5bGU6OlNjb3BlOjpRdWVyeUNvbnRhaW5lclVwZGF0ZUNvbnRleHQgcXVl
cnlDb250YWluZXJVcGRhdGVDb250ZXh0OwogICAgIHdoaWxlIChzdHlsZVNjb3BlKCkudXBkYXRl
UXVlcnlDb250YWluZXJTdGF0ZShxdWVyeUNvbnRhaW5lclVwZGF0ZUNvbnRleHQpKSB7CiAgICAg
ICAgIHVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKQEAgLTIyNzIsNyArMjI4MCwxMiBAQCB2b2lkIERv
Y3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogICAgIH0KIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFz
a3MgcnVuUG9zdExheW91dFRhc2tzKQordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQoreworICAgIHVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5j
aHJvbm91c2x5LCBmb3JjZUxheW91dCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9zdExheW91dFRhc2tzIHJ1
blBvc3RMYXlvdXRUYXNrcywgRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCiB7CiAgICAgYm9vbCBv
bGRJZ25vcmUgPSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0czsKIApAQCAtMjI4Myw3ICsyMjk2
LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAgICAgICAgIHNjaGVkdWxlRnVsbFN0
eWxlUmVidWlsZCgpOwogICAgIH0KIAotICAgIHVwZGF0ZUxheW91dCgpOworICAgIHVwZGF0ZUxh
eW91dChmb3JjZUxheW91dCk7CiAKICAgICBpZiAocnVuUG9zdExheW91dFRhc2tzID09IFJ1blBv
c3RMYXlvdXRUYXNrczo6U3luY2hyb25vdXNseSAmJiB2aWV3KCkpCiAgICAgICAgIHZpZXcoKS0+
Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4
IDg2NmFiYzZkNzk4Ni4uY2IxZGMzNDJhYzU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtNjIx
LDEyICs2MjEsMTQgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNvbnN0
OwogICAgIHVuc2lnbmVkIGxhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nKCkgY29uc3QgeyBy
ZXR1cm4gbV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGluZzsgfQogCi0gICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQoKTsKLSAgICAKKyAgICBlbnVtIGNsYXNzIEZvcmNlTGF5
b3V0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0KEZv
cmNlTGF5b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwogICAgIC8vIHVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQgZXZlbiBpZiB3ZSBhcmUgd2FpdGlu
ZyBmb3IgcGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAgIC8vIHNvIGNhbGxpbmcgdGhpcyBt
YXkgY2F1c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50IChGT1VDKS4KICAgICBlbnVtIGNs
YXNzIFJ1blBvc3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJvbm91c2x5LCBTeW5jaHJvbm91c2x5IH07
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25v
dXNseSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3lu
Y2hyb25vdXNseSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8pOworICAgIHZvaWQgdXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0KTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5kaW5n
U3R5bGVzaGVldHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgUHNl
dWRvSWQgPSBQc2V1ZG9JZDo6Tm9uZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCBjMzc4
OGYxMTY4ZDEuLmU0NDg2MTY3NDE5OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTI4MCw3
ICsxMjgwLDcgQEAgaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRpbmdzKCkKIAogaW50IEVs
ZW1lbnQ6Om9mZnNldFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgaWYgKFJl
bmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1vZGVsT2JqZWN0KCkpCiAg
ICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4ZWxMYXlvdXQoKnJlbmRl
cmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJldHVybiAwOwpAQCAtMTQ0MCw3ICsx
NDQwLDcgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQgRWxlbWVudDo6c2Nyb2xs
VG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIGlmIChkb2N1bWVudCgpLnNj
cm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7CiAgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
Y3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKQEAgLTE3NjUsNyArMTc2NSw3IEBAIHN0ZDo6
b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJv
dW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJl
Y3QoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIGF1dG8gcGFpciA9IGJvdW5kaW5n
QWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwogICAgIGlmICghcGFpcikKICAgICAgICAgcmV0
dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IGJh
MTc5MTViYTk1MS4uNjhhYTU4M2VjYjNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKQEAgLTQ5OSw5ICs0OTksOSBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50
Ojp3aWR0aChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAo
aWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7
CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAg
ICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNTI0LDkg
KzUyNCw5IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGlnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgZWxzZQotICAgICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJl
bmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNjM1LDcgKzYzNSw3IEBAIHZvaWQgSFRNTElt
YWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiAKIGludCBIVE1MSW1hZ2VFbGVt
ZW50Ojp4KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBhdXRvIHJlbmRl
cmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1
cm4gMDsKQEAgLTY0Niw3ICs2NDYsNyBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0
CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJl
bmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi5hMjBjOGI2NzFkMGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdW5zaWduZWQgSW1hZ2VJ
bnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVm
PEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVt
ZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQtPmRvY3VtZW50KCku
dXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIGlmIChhdXRv
KiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RG
b3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRIZWln
aHQoKSwgKnJlbmRlcmVyKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCB1bnNpZ25lZCBJbWFnZUlucHV0
VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1M
SW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCi0gICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0
ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBpZiAoYXV0byogcmVu
ZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYWRqdXN0Rm9yQWJz
b2x1dGVab29tKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5jb250ZW50V2lkdGgoKSwg
KnJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5
b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuY3BwCmluZGV4IDJmZjMxMDIzZmFiZi4uMzQ5Y2RiMWZiOTlhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAgLTIzNiw3ICsyMzYsOCBA
QCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OmxheW91dCgpCiAjaWYgRU5BQkxFKExBWU9V
VF9GT1JNQVRUSU5HX0NPTlRFWFQpCiAgICAgICAgIGxheW91dFVzaW5nRm9ybWF0dGluZ0NvbnRl
eHQoKTsKICNlbmRpZgotICAgICAgICArK21fbGF5b3V0Q291bnQ7CisgICAgICAgIGlmICghbV9s
YXlvdXRGb3JjZWQpCisgICAgICAgICAgICArK21fbGF5b3V0Q291bnQ7CiAjaWYgRU5BQkxFKFRF
WFRfQVVUT1NJWklORykKICAgICAgICAgYXBwbHlUZXh0U2l6aW5nSWZOZWVkZWQoKmxheW91dFJv
b3QuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5oCmluZGV4IDZmOWViMWUwOTM4Mi4uZGRjNmYwMzBmMzEyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODQsNiArODQsOCBAQCBw
dWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2Uo
KSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRy
ZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJ
blJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7
IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQg
JiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5
b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3Vz
VGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9s
YXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlv
dXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0
dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTc5LDYgKzE4MSw3IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9u
b3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVk
IHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlv
dXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAg
ICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwg
Tm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3Rl
ZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IGE5NTk3MTYyZmZjYS4uNmFm
YmRkMmY0Nzk4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcApAQCAtNTI5LDEwICs1MjksMTIgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJs
b2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCBwYWdlTG9naWNhbEgKICAgICAg
ICAgaWYgKCFmaXJzdENoaWxkKCkgJiYgIWlzQW5vbnltb3VzQmxvY2soKSkKICAgICAgICAgICAg
IHNldENoaWxkcmVuSW5saW5lKHRydWUpOwogICAgICAgICBkaXJ0eUZvckxheW91dEZyb21QZXJj
ZW50YWdlSGVpZ2h0RGVzY2VuZGFudHMoKTsKLSAgICAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkp
Ci0gICAgICAgICAgICBsYXlvdXRJbmxpbmVDaGlsZHJlbihyZWxheW91dENoaWxkcmVuLCByZXBh
aW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBsYXlvdXRCbG9ja0NoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4sIG1heEZsb2F0TG9n
aWNhbEJvdHRvbSk7CisgICAgICAgIGlmICghc2hvdWxkU2tpcENvbnRlbnQoKSB8fCB2aWV3KCku
ZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCkpIHsKKyAgICAgICAg
ICAgIGlmIChjaGlsZHJlbklubGluZSgpKQorICAgICAgICAgICAgICAgIGxheW91dElubGluZUNo
aWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4gfHwgdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRl
eHQoKS5pc0xheW91dEZvcmNlZCgpLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxC
b3R0b20pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAgICAgICAgIGxheW91dEJsb2NrQ2hp
bGRyZW4ocmVsYXlvdXRDaGlsZHJlbiB8fCB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4
dCgpLmlzTGF5b3V0Rm9yY2VkKCksIG1heEZsb2F0TG9naWNhbEJvdHRvbSk7CisgICAgICAgIH0K
ICAgICAgICAgLy8gRXhwYW5kIG91ciBpbnRyaW5zaWMgaGVpZ2h0IHRvIGVuY29tcGFzcyBmbG9h
dHMuCiAgICAgICAgIExheW91dFVuaXQgdG9BZGQgPSBib3JkZXJBbmRQYWRkaW5nQWZ0ZXIoKSAr
IHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAgaWYgKGxvd2VzdEZsb2F0TG9naWNh
bEJvdHRvbSgpID4gKGxvZ2ljYWxIZWlnaHQoKSAtIHRvQWRkKSAmJiBjcmVhdGVzTmV3Rm9ybWF0
dGluZ0NvbnRleHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRl
eCBjNTYzODQ5MGZhY2EuLmYwMDVlMDc5MWU2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcApAQCAtMTc2LDcgKzE3Niw5IEBAIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0
KCkKICAgICB9CiAKICAgICBBU1NFUlQoIWZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlv
dXRTdGF0ZSgpKTsKLSAgICBpZiAoIW5lZWRzTGF5b3V0KCkpCisgICAgaWYgKGZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKSB7CisgICAgICAgIHNldENoaWxkTmVl
ZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICB9IGVsc2UgaWYgKCFuZWVkc0xheW91dCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBMYXlvdXRTdGF0ZU1haW50YWluZXIgc3RhdGVQdXNoZXIo
KnRoaXMsIHsgfSwgZmFsc2UsIHZhbHVlT3JEZWZhdWx0KG1fcGFnZUxvZ2ljYWxTaXplKS5oZWln
aHQoKSwgbV9wYWdlTG9naWNhbEhlaWdodENoYW5nZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRh
YmxlLmNwcAppbmRleCA5NWEyNmZmODM2MWEuLmM1ODc3MzM5ZTk4YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRmxvYXRSZWN0IFNWR0xvY2F0YWJs
ZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxl
VXAKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgaWYgKHN0eWxlVXBkYXRlU3RyYXRlZ3kg
PT0gQWxsb3dTdHlsZVVwZGF0ZSkKLSAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgZWxlbWVudC0+ZG9jdW1l
bnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNl
TGF5b3V0OjpZZXMpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBv
cnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAgaWYgKCFlbGVtZW50LT5yZW5k
ZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApp
bmRleCA1MDcyOTkzOWM1MjMuLmRiMTAxZDI1NTBjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEzICs1NSwxMyBAQCBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0
YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJl
ck9mQ2hhcnMoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIHJldHVybiBTVkdUZXh0
UXVlcnkocmVuZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZsb2F0IFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKLSAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxh
eW91dDo6WWVzKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLnRleHRMZW5n
dGgoKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0
Q29udGVudEVsZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0pCiAKIGlu
dCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERPTVBvaW50SW5p
dCYmIHBvaW50SW5pdCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBGbG9hdFBvaW50
IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LngpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRl
cmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJhbnNmb3JtUG9pbnQpOwogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>460015</attachid>
            <date>2022-06-03 08:29:07 -0700</date>
            <delta_ts>2022-11-01 07:51:04 -0700</delta_ts>
            <desc>Fixed-forced-layout-test-failures-wip.diff</desc>
            <filename>c_v_force_layout-cc-001.diff</filename>
            <type>text/plain</type>
            <size>2791</size>
            <attacher name="cathiechen">cathiechen</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IDEzM2U2NzYwN2E3Li4xNWM0YzEwNDVlZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC00NjE2LDExICs0NjE2LDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1sYXlvdXQtMDE3Lmh0bWwgWyBJbWFnZU8K
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4t
cGFpbnQtMDIxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4tcGFpbnQtY2xpcC0wMTUuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGFpbi1wYWludC1jbGlwLTAxNi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBdCi0jIGZvcmNlZCBsYXlvdXQKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0
bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDQ0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDU3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KICMgYy12OiBhdXRvCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA3MC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3MS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA5YTAw
OWQwZTE3ZC4uZThjMDg4ZDQyZDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0
eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODEyLDEwICs4MTIsMTcgQEAgc3RhdGljIGJvb2wgcmFy
ZU5vbkluaGVyaXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHlsZVJhcmVOb25J
bmhlcml0ZWQKICAgICBpZiAoZmlyc3QuaW5wdXRTZWN1cml0eSAhPSBzZWNvbmQuaW5wdXRTZWN1
cml0eSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICAvLyBXZSBuZWVkIHRvIHRyaWdnZXIg
bGF5b3V0IGlmIGFuIGVsZW1lbnQgYmVjb21lcyBhIHNpemUgY29udGFpbm1lbnQsIG9yIHZpY2Ug
dmVyc2EuIFRoZXJlIGFyZSB0d28ga2luZHMgb2YgQ1NTIHByb3BlcnRpZXMgYWZmZWN0IGl0LAor
ICAgIC8vIENTUyBjb250YWluIGFuZCBDU1MgY29udGVudC12aXNpYmlsaXR5LiBTbyBpbiBoZXJl
LCByZXR1cm5zIHRydWUgaWYgdGhlIHZhbHVlIG9mIHRoZXNlIHByb3BlcnRpZXMgYXJlIGNoYW5n
ZWQuCisgICAgLy8gRm9yIGNvbnRlbnQtdmlzaWJpbGl0eTogYXV0bywgdGhlcmUgYXJlIGNoYW5j
ZXMgdGhhdCBhbiBlbGVtZW50IGJlY29tZXMgYSBzaXplIGNvbnRhaW5tZW50IHdoZW4gaXQgaXMg
cmVsZXZhbnQgdG8gdGhlIHVzZXIsIGZvciB0aGVzZQorICAgIC8vIHNjZW5hcmlvLCB3ZSB0cmln
Z2VyIGxheW91dCBpbiBEb2N1bWVudDo6c2VsZWN0aW9uQ2hhbmdlZCBhbmQgRWxlbWVudDo6Y29u
dGVudFZpc2liaWxpdHlWaWV3cG9ydENoYW5nZS4KICAgICBpZiAoZmlyc3QuZWZmZWN0aXZlQ29u
dGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6U2l6ZSkgIT0gc2Vjb25kLmVmZmVjdGl2
ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OlNpemUpCiAgICAgICAgIHx8IGZp
cnN0LmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6OklubGluZVNp
emUpICE9IHNlY29uZC5lZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50
OjpJbmxpbmVTaXplKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAoZmlyc3QuY29u
dGVudFZpc2liaWxpdHkgIT0gc2Vjb25kLmNvbnRlbnRWaXNpYmlsaXR5KQorICAgICAgICByZXR1
cm4gdHJ1ZTsKKwogICAgIGlmIChmaXJzdC5jb250YWluSW50cmluc2ljV2lkdGggIT0gc2Vjb25k
LmNvbnRhaW5JbnRyaW5zaWNXaWR0aCB8fCBmaXJzdC5jb250YWluSW50cmluc2ljSGVpZ2h0ICE9
IHNlY29uZC5jb250YWluSW50cmluc2ljSGVpZ2h0KQogICAgICAgICByZXR1cm4gdHJ1ZTsKIA==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463345</attachid>
            <date>2022-11-01 07:51:11 -0700</date>
            <delta_ts>2022-11-02 07:24:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221101145110.patch</filename>
            <type>text/plain</type>
            <size>21185</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA2Y2JlNWY0ZDVkMDVkNDMwYzRiNTVhYjEyMzcwMGEwYTA4ZDk1Mzc2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAxIE5vdiAyMDIyIDE0OjQ2OjQxICswMDAwClN1YmplY3Q6IFtQQVRDSF0gW2NvbnRlbnQtdmlz
aWJpbGl0eV0gU3VwcG9ydCBmb3JjZWQgbGF5b3V0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3MzY5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KCldJUC4K
CiogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9uczoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTAzMS1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDgwLWV4cGVjdGVkLnR4dDoKKiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dCk6
CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHA6CihXZWJDb3JlOjpFbGVtZW50OjpvZmZzZXRUb3ApOgooV2ViQ29yZTo6RWxl
bWVudDo6c2Nyb2xsVG9wKToKKFdlYkNvcmU6OkVsZW1lbnQ6OmJvdW5kaW5nQ2xpZW50UmVjdCk6
CiogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhU
TUxJbWFnZUVsZW1lbnQ6OndpZHRoKToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdo
dCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50Ojp4IGNvbnN0KToKKFdlYkNvcmU6OkhUTUxJ
bWFnZUVsZW1lbnQ6OnkgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5
cGUuY3BwOgooV2ViQ29yZTo6SW1hZ2VJbnB1dFR5cGU6OmhlaWdodCBjb25zdCk6CihXZWJDb3Jl
OjpJbWFnZUlucHV0VHlwZTo6d2lkdGggY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3TGF5b3V0Q29udGV4dC5jcHA6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0
OjpwZXJmb3JtTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaDoKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzTGF5b3V0Rm9yY2Vk
IGNvbnN0KToKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OnNldExheW91dEZvcmNl
ZCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CihXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyVmlldy5jcHA6CihXZWJDb3JlOjpSZW5kZXJWaWV3OjpsYXlvdXQpOgoqIFNv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6U1ZHTG9jYXRhYmxl
OjpnZXRCQm94KToKKiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cDoKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycyk6CihX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCk6CihX
ZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKLS0t
CiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAyMSArKysr
KysrKysrKysrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAg
ICAgICAgfCAgOCArKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAg
ICAgICAgICAgfCAgNiArKystLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgICAgICB8IDEyICsrKysrLS0tLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5w
dXRUeXBlLmNwcCAgICAgICAgfCAgNCArKy0tCiAuLi4vV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xh
eW91dENvbnRleHQuY3BwICAgfCAgMyArKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5oICB8ICAzICsrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ckJsb2NrRmxvdy5jcHAgIHwgMTAgKysrKystLS0tCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAgICAgICAgfCAgNCArKystCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9j
YXRhYmxlLmNwcCAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAgIHwgIDYgKysrLS0tCiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRp
b25zICAgICAgICAgICAgICAgICAgfCAgMyArKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDMx
LWV4cGVjdGVkLnR4dCAgICAgICB8ICA2ICsrKy0tLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDIgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDgw
LWV4cGVjdGVkLnR4dCAgICAgICB8IDEwICsrKysrKy0tLQogMTUgZmlsZXMgY2hhbmdlZCwgNjQg
aW5zZXJ0aW9ucygrKSwgMzYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggZjhkY2VjNDkxNmVhLi43MTdlYjM4YTJlZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMjI1MSw3ICsyMjUxLDcgQEAgYm9vbCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLXZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpCit2
b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCiB7CiAg
ICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIApAQCAtMjI3NCwxMyArMjI3NCwyNiBAQCB2b2lk
IERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogCiAgICAgaWYgKCFmcmFtZVZpZXcgfHwgIXJlbmRl
clZpZXcoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghZnJhbWVWaWV3LT5sYXlvdXRDb250
ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkgJiYgIXJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQoKSkK
KyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG9sZExheW91dEZvcmNlZDsKKyAgICBpZiAoZm9yY2VM
YXlvdXQgPT0gRm9yY2VMYXlvdXQ6OlllcyAmJiB2aWV3KCkpIHsKKyAgICAgICAgb2xkTGF5b3V0
Rm9yY2VkID0gdmlldygpLT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKTsKKyAgICAg
ICAgdmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKHRydWUpOworICAgIH0K
KyAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYm
ICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkgJiYgZm9yY2VMYXlvdXQgIT0gRm9yY2VMYXlv
dXQ6OlllcykKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0
KCkubGF5b3V0KCk7CisKKyAgICBpZiAob2xkTGF5b3V0Rm9yY2VkKQorICAgICAgICB2aWV3KCkt
PmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3JjZWQoKm9sZExheW91dEZvcmNlZCk7Cit9CisK
K3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhGb3Jj
ZUxheW91dCBmb3JjZUxheW91dCkKK3sKKyAgICB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSwgZm9yY2VMYXlvdXQp
OwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoRG9jdW1lbnQ6OlJ1blBvc3RMYXlvdXRUYXNrcyBydW5Qb3N0TGF5b3V0VGFza3MpCit2b2lk
IERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6
OlJ1blBvc3RMYXlvdXRUYXNrcyBydW5Qb3N0TGF5b3V0VGFza3MsIEZvcmNlTGF5b3V0IGZvcmNl
TGF5b3V0KQogewogICAgIGJvb2wgb2xkSWdub3JlID0gbV9pZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHM7CiAKQEAgLTIyOTEsNyArMjMwNCw3IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9zdExheW91dFRhc2tzCiAgICAg
ICAgICAgICBzY2hlZHVsZUZ1bGxTdHlsZVJlYnVpbGQoKTsKICAgICB9CiAKLSAgICB1cGRhdGVM
YXlvdXQoKTsKKyAgICB1cGRhdGVMYXlvdXQoZm9yY2VMYXlvdXQpOwogCiAgICAgaWYgKHJ1blBv
c3RMYXlvdXRUYXNrcyA9PSBSdW5Qb3N0TGF5b3V0VGFza3M6OlN5bmNocm9ub3VzbHkgJiYgdmll
dygpKQogICAgICAgICB2aWV3KCktPmZsdXNoQW55UGVuZGluZ1Bvc3RMYXlvdXRUYXNrcygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAppbmRleCAyY2YxYTc0N2JmNzYuLmNlZjZhYjk3ZGY5YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmgKQEAgLTYyOSwxMiArNjI5LDE0IEBAIHB1YmxpYzoKICAgICBib29sIG5l
ZWRzU3R5bGVSZWNhbGMoKSBjb25zdDsKICAgICB1bnNpZ25lZCBsYXN0U3R5bGVVcGRhdGVTaXpl
Rm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3Rp
bmc7IH0KIAotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0KCk7Ci0gICAgCisg
ICAgZW51bSBjbGFzcyBGb3JjZUxheW91dCB7IE5vLCBZZXMgfTsKKyAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVwZGF0ZUxheW91dChGb3JjZUxheW91dCA9IEZvcmNlTGF5b3V0OjpObyk7CisKICAg
ICAvLyB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKSBmb3JjZXMgbGF5b3V0
IGV2ZW4gaWYgd2UgYXJlIHdhaXRpbmcgZm9yIHBlbmRpbmcgc3R5bGVzaGVldCBsb2FkcywKICAg
ICAvLyBzbyBjYWxsaW5nIHRoaXMgbWF5IGNhdXNlIGEgZmxhc2ggb2YgdW5zdHlsZWQgY29udGVu
dCAoRk9VQykuCiAgICAgZW51bSBjbGFzcyBSdW5Qb3N0TGF5b3V0VGFza3MgeyBBc3luY2hyb25v
dXNseSwgU3luY2hyb25vdXNseSB9OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrcyA9IFJ1blBvc3RM
YXlvdXRUYXNrczo6QXN5bmNocm9ub3VzbHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrcyA9IFJ1
blBvc3RMYXlvdXRUYXNrczo6QXN5bmNocm9ub3VzbHksIEZvcmNlTGF5b3V0ID0gRm9yY2VMYXlv
dXQ6Ok5vKTsKKyAgICB2b2lkIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhG
b3JjZUxheW91dCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9y
RWxlbWVudElnbm9yaW5nUGVuZGluZ1N0eWxlc2hlZXRzKEVsZW1lbnQmLCBjb25zdCBSZW5kZXJT
dHlsZSogcGFyZW50U3R5bGUsIFBzZXVkb0lkID0gUHNldWRvSWQ6Ok5vbmUpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggYzgxOWNkMTU2ZDY3Li41NWFhYjdhNmE4NzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTEzMDAsNyArMTMwMCw3IEBAIGludCBFbGVtZW50OjpvZmZzZXRUb3BG
b3JCaW5kaW5ncygpCiAKIGludCBFbGVtZW50OjpvZmZzZXRUb3AoKQogewotICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5
b3V0OjpZZXMpOwogICAgIGlmIChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyZXIgPSByZW5k
ZXJCb3hNb2RlbE9iamVjdCgpKQogICAgICAgICByZXR1cm4gYWRqdXN0T2Zmc2V0Rm9yWm9vbUFu
ZFN1YnBpeGVsTGF5b3V0KCpyZW5kZXJlciwgcmVuZGVyZXItPm9mZnNldFRvcCgpKTsKICAgICBy
ZXR1cm4gMDsKQEAgLTE0NjAsNyArMTQ2MCw3IEBAIGludCBFbGVtZW50OjpzY3JvbGxMZWZ0KCkK
IAogaW50IEVsZW1lbnQ6OnNjcm9sbFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAK
ICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewogICAgICAg
ICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCkBAIC0x
Nzc0LDcgKzE3NzQsNyBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3QqLCBG
bG9hdFJlY3Q+PiBFbGVtZW50Ojpib3VuZGluZ0Fic29sdXRlUmVjdAogCiBGbG9hdFJlY3QgRWxl
bWVudDo6Ym91bmRpbmdDbGllbnRSZWN0KCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAg
ICBhdXRvIHBhaXIgPSBib3VuZGluZ0Fic29sdXRlUmVjdFdpdGhvdXRMYXlvdXQoKTsKICAgICBp
ZiAoIXBhaXIpCiAgICAgICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1h
Z2VFbGVtZW50LmNwcAppbmRleCBjNDg4YzhhNTYyMzYuLmVmMTlmY2VmMDM1NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC01MTQsOSArNTE0LDkgQEAgdW5z
aWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMpCiAgICAgfQogCiAgICAgaWYgKGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKLSAgICAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1l
bnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXQoKTsKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoRG9jdW1lbnQ6OkZv
cmNlTGF5b3V0OjpZZXMpOwogCiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAg
ICBpZiAoIWJveCkKQEAgLTUzOSw5ICs1MzksOSBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50
OjpoZWlnaHQoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCiAgICAgfQogCiAgICAgaWYg
KGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogICAgIGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAg
ICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBpZiAoIWJveCkKQEAgLTY3MSw3
ICs2NzEsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVl
KQogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiB7Ci0gICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6
Olllcyk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFy
ZW5kZXJlcikKICAgICAgICAgcmV0dXJuIDA7CkBAIC02ODIsNyArNjgyLDcgQEAgaW50IEhUTUxJ
bWFnZUVsZW1lbnQ6OngoKSBjb25zdAogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eSgpIGNvbnN0
CiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhE
b2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCmluZGV4IDk2MTUzNDExYzcwMy4uYTIwYzhiNjcx
ZDBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcApAQCAtMTczLDcgKzE3
Myw3IEBAIHVuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjpoZWlnaHQoKSBjb25zdAogICAgIEFTU0VS
VChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5l
bGVtZW50KCkpOwogCi0gICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAg
ICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6
Olllcyk7CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKQog
ICAgICAgICByZXR1cm4gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGRvd25jYXN0PFJlbmRlckJveD4o
KnJlbmRlcmVyKS5jb250ZW50SGVpZ2h0KCksICpyZW5kZXJlcik7CkBAIC0xOTUsNyArMTk1LDcg
QEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKICAgICBBU1NFUlQoZWxl
bWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCgqdGhpcy0+ZWxlbWVu
dCgpKTsKIAotICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CisgICAgZWxl
bWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5k
ZXJlcikuY29udGVudFdpZHRoKCksICpyZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFn
ZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcAppbmRleCBlNGRjNjAxODIzMzMuLmMzODJhMjEw
ZjU5ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250
ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
Y3BwCkBAIC0yNDksNyArMjQ5LDggQEAgdm9pZCBGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpwZXJm
b3JtTGF5b3V0KCkKICNlbmRpZgogICAgICAgICBsYXlvdXRSb290LT5sYXlvdXQoKTsKICAgICAg
ICAgbGF5b3V0VXNpbmdGb3JtYXR0aW5nQ29udGV4dCgpOwotICAgICAgICArK21fbGF5b3V0Q291
bnQ7CisgICAgICAgIGlmICghbV9sYXlvdXRGb3JjZWQpCisgICAgICAgICAgICArK21fbGF5b3V0
Q291bnQ7CiAjaWYgRU5BQkxFKFRFWFRfQVVUT1NJWklORykKICAgICAgICAgYXBwbHlUZXh0U2l6
aW5nSWZOZWVkZWQoKmxheW91dFJvb3QuZ2V0KCkpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IGI5ZjFlNDNiZDQ1NC4uNjkxMjEx
ZGQ5ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
aApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3Qg
eyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQog
ICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFz
ZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFp
bnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNl
OjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5W
aWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5
b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2Vk
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZv
cmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlv
dXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTcxLDYgKzE3
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXRO
ZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2Vk
IHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6
Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDogdWlu
dDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0
ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5
b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmlu
ZGV4IDk3MTI2NmNkYWIyOC4uNGE3OGJhY2FiNDFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNTMyLDEwICs1MzIsMTIgQEAgdm9pZCBSZW5k
ZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5p
dCBwYWdlTG9naWNhbEgKICAgICAgICAgaWYgKCFmaXJzdENoaWxkKCkgJiYgIWlzQW5vbnltb3Vz
QmxvY2soKSkKICAgICAgICAgICAgIHNldENoaWxkcmVuSW5saW5lKHRydWUpOwogICAgICAgICBk
aXJ0eUZvckxheW91dEZyb21QZXJjZW50YWdlSGVpZ2h0RGVzY2VuZGFudHMoKTsKLSAgICAgICAg
aWYgKGNoaWxkcmVuSW5saW5lKCkpCi0gICAgICAgICAgICBsYXlvdXRJbmxpbmVDaGlsZHJlbihy
ZWxheW91dENoaWxkcmVuLCByZXBhaW50TG9naWNhbFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20p
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBsYXlvdXRCbG9ja0NoaWxkcmVuKHJlbGF5b3V0
Q2hpbGRyZW4sIG1heEZsb2F0TG9naWNhbEJvdHRvbSk7CisgICAgICAgIGlmICghc2hvdWxkU2tp
cENvbnRlbnQoKSB8fCB2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0
Rm9yY2VkKCkpIHsKKyAgICAgICAgICAgIGlmIChjaGlsZHJlbklubGluZSgpKQorICAgICAgICAg
ICAgICAgIGxheW91dElubGluZUNoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4gfHwgdmlldygpLmZy
YW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpLCByZXBhaW50TG9naWNh
bFRvcCwgcmVwYWludExvZ2ljYWxCb3R0b20pOworICAgICAgICAgICAgZWxzZQorICAgICAgICAg
ICAgICAgIGxheW91dEJsb2NrQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbiB8fCB2aWV3KCkuZnJh
bWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCksIG1heEZsb2F0TG9naWNh
bEJvdHRvbSk7CisgICAgICAgIH0KICAgICAgICAgLy8gRXhwYW5kIG91ciBpbnRyaW5zaWMgaGVp
Z2h0IHRvIGVuY29tcGFzcyBmbG9hdHMuCiAgICAgICAgIExheW91dFVuaXQgdG9BZGQgPSBib3Jk
ZXJBbmRQYWRkaW5nQWZ0ZXIoKSArIHNjcm9sbGJhckxvZ2ljYWxIZWlnaHQoKTsKICAgICAgICAg
aWYgKGxvd2VzdEZsb2F0TG9naWNhbEJvdHRvbSgpID4gKGxvZ2ljYWxIZWlnaHQoKSAtIHRvQWRk
KSAmJiBjcmVhdGVzTmV3Rm9ybWF0dGluZ0NvbnRleHQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcAppbmRleCAyYmUzYWFlN2E2N2EuLmJmNmRkZGQ0MzUyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMTgzLDcgKzE4Myw5IEBAIHZv
aWQgUmVuZGVyVmlldzo6bGF5b3V0KCkKICAgICB9CiAKICAgICBBU1NFUlQoIWZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpKTsKLSAgICBpZiAoIW5lZWRzTGF5b3V0KCkp
CisgICAgaWYgKGZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKSB7
CisgICAgICAgIHNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICB9IGVsc2Ug
aWYgKCFuZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBlbnN1cmVMYXlvdXRT
dGF0ZSgpLnNldFZpZXdwb3J0U2l6ZShmcmFtZVZpZXcoKS5zaXplKCkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTG9jYXRhYmxlLmNwcAppbmRleCA5NWEyNmZmODM2MWEuLmM1ODc3MzM5ZTk4YiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY2LDcgKzY2LDcgQEAgRmxvYXRSZWN0IFNW
R0xvY2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0
ZWd5IHN0eWxlVXAKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgaWYgKHN0eWxlVXBkYXRl
U3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKLSAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1l
bnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hv
dWxkIHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAgaWYgKCFlbGVt
ZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVt
ZW50LmNwcAppbmRleCBhY2QyZWVhODMwZDMuLjk1MDMzOGMxNjUyNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEzICs1NSwxMyBAQCBT
VkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZp
ZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6
OmdldE51bWJlck9mQ2hhcnMoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIHJldHVy
biBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZs
b2F0IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKLSAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50
OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkp
LnRleHRMZW5ndGgoKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2VwdGlvbk9yPGZsb2F0
PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJu
dW0pCiAKIGludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERP
TVBvaW50SW5pdCYmIHBvaW50SW5pdCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBG
bG9hdFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0Lngp
LCBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1cm4gU1ZHVGV4dFF1
ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJhbnNmb3JtUG9pbnQp
OwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjdjM2IwMTk5NDFmLi5lNzFkMmNhYzMzNTQgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtNDkwMSw2ICs0OTAxLDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWIKICMgZm9yY2VkIGxheW91dAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUu
aHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDU3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktd2l0aC10b3AtbGF5ZXItMDAwLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCkBAIC02MDQ3LDQgKzYwNDgsNCBAQCBmdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZW50ZXIt
Ym90dG9tLXBhZGRpbmctYW5pbWF0aW9uLmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbG9hZGlu
Zy9vYXV0aC5odG1sIFsgRHVtcEpTQ29uc29sZUxvZ0luU3RkRXJyIF0KIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3ZpZGVvLXdpdGgtaHR0cHMtdXJsLWFsbG93ZWQt
YnktY3NwLW1lZGlhLXNyYy1zdGFyLmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jbGlwYm9hcmQtYXBpcy9mZWF0dXJlLXBv
bGljeS9jbGlwYm9hcmQtd3JpdGUvY2xpcGJvYXJkLXdyaXRlLWRpc2FibGVkLWJ5LWZlYXR1cmUt
cG9saWN5LnRlbnRhdGl2ZS5odHRwcy5zdWIuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVy
ciBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUv
dXJscy90ZXJtaW5vbG9neS0wL2RvY3VtZW50LWJhc2UtdXJsLWluaXRpYXRlZC1ncmFuZC1wYXJl
bnQuaHR0cHMud2luZG93Lmh0bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpcIE5vIG5l
d2xpbmUgYXQgZW5kIG9mIGZpbGUKK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9pbmZyYXN0cnVjdHVyZS91cmxzL3Rlcm1pbm9sb2d5LTAvZG9jdW1lbnQtYmFzZS11cmwtaW5p
dGlhdGVkLWdyYW5kLXBhcmVudC5odHRwcy53aW5kb3cuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJ
blN0ZEVyciBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTAzMS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTAzMS1leHBlY3RlZC50eHQKaW5kZXggNWNjOGI4Mjk2ZmY3Li5hMDBlYmVhYmNh
NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDMxLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTAzMS1leHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKLUNPTlNPTEUgTUVTU0FH
RTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogUmVz
aXplT2JzZXZlciBzaG91bGQgbm90IHJ1biBkdXJpbmcgd2hpbGUgdW5yZW5kZXJlZCBleHBlY3Rl
ZCB0cnVlIGJ1dCBnb3QgZmFsc2UKK0NPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2Ug
UmVqZWN0aW9uOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogUmVzaXplT2JzZXZlcnMgc2hvdWxkIG5v
dyBydW4gb25jZSBiZWNvbWluZyB2aXNpYmxlIGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQog
Ci1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFz
c2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXIgc2hvdWxkIG5vdCBydW4gZHVyaW5nIHdoaWxlIHVu
cmVuZGVyZWQgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCitIYXJuZXNzIEVycm9yIChGQUlM
KSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9i
c2V2ZXJzIHNob3VsZCBub3cgcnVuIG9uY2UgYmVjb21pbmcgdmlzaWJsZSBleHBlY3RlZCBmYWxz
ZSBidXQgZ290IHRydWUKIAogVElNRU9VVCBSZXNpemVPYnNlcnZlciBza2lwcGVkIHdoaWxlIGhp
ZGRlbiBUZXN0IHRpbWVkIG91dAogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVu
aGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXIgc2hvdWxkIG5v
dCBydW4gZHVyaW5nIHdoaWxlIHVucmVuZGVyZWQgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNl
CitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFz
c2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXJzIHNob3VsZCBub3cgcnVuIG9uY2UgYmVjb21pbmcg
dmlzaWJsZSBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIAogVElNRU9VVCBSZXNpemVPYnNl
cnZlciBza2lwcGVkIHdoaWxlIGhpZGRlbiBUZXN0IHRpbWVkIG91dAogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50
eHQKaW5kZXggMWVjZTdhOTdjNGJmLi5iY2ZjNzg5ZmE0MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQK
QEAgLTEsMyArMSwzIEBACiAKLUZBSUwgTWVhc3VyZSBGb3JjZWQgTGF5b3V0IGFzc2VydF9lcXVh
bHM6IHNwYWNlciB3aGVuIHZpc2libGUgZXhwZWN0ZWQgMTA4IGJ1dCBnb3QgOAorUEFTUyBNZWFz
dXJlIEZvcmNlZCBMYXlvdXQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wODAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wODAtZXhwZWN0ZWQudHh0CmluZGV4IGQwZjA1YWQ1YTM4Yy4u
MTJhNmY0OGU1OWU4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wODAtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsOCBAQAotQ29udGVu
dCBWaXNpYmlsaXR5OiBjYXJldCBwb3NpdGlvbiB3aXRoIGh0bWwgaGlkZGVuICAgKiB7IGFsbDog
aW5pdGlhbDsgY29udGVudC12aXNpYmlsaXR5OiBoaWRkZW47IH0gdGVzdCgoKSA9PiB7IGNvbnN0
IHJhbmdlID0gZG9jdW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCgpOyBhc3NlcnRfbm90X2VxdWFs
cyhyYW5nZSwgbnVsbCwgInJhbmdlIGV4aXN0cyIpOyBhc3NlcnRfZXF1YWxzKHJhbmdlLnN0YXJ0
Q29udGFpbmVyLCBodG1sLCAic3RhcnRDb250YWluZXIgaXMgaHRtbCIpOyBhc3NlcnRfZXF1YWxz
KHJhbmdlLnN0YXJ0T2Zmc2V0LCAwLCAic3RhcnRPZmZzZXQgaXMgemVybyIpOyBhc3NlcnRfZXF1
YWxzKHJhbmdlLmVuZENvbnRhaW5lciwgaHRtbCwgImVuZENvbnRhaW5lciBpcyBodG1sIik7IGFz
c2VydF9lcXVhbHMocmFuZ2UuZW5kT2Zmc2V0LCAwLCAiZW5kT2Zmc2V0IGlzIHplcm8iKTsgfSwg
IkNhcmV0IHJhbmdlIGZyb20gcG9pbnQiKTsKLUZBSUwgQ2FyZXQgcmFuZ2UgZnJvbSBwb2ludCBh
c3NlcnRfZXF1YWxzOiBzdGFydENvbnRhaW5lciBpcyBodG1sIGV4cGVjdGVkIEVsZW1lbnQgbm9k
ZSA8aHRtbCBpZD0iaHRtbCI+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmOCI+Ci08dGl0bGU+Q29u
dGVuLi4uIGJ1dCBnb3QgVGV4dCBub2RlICJDb250ZW50IFZpc2liaWxpdHk6IGNhcmV0IHBvc2l0
aW9uIHdpdGggaHRtbCBoaWRkZW4iCisKKworCisKKworCisKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463361</attachid>
            <date>2022-11-02 07:24:49 -0700</date>
            <delta_ts>2022-11-22 07:36:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221102142448.patch</filename>
            <type>text/plain</type>
            <size>5947</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAyY2UwNjk4ODkzYzc3OTA0MjVkNTIzY2Q5ODIxMjRlYjUwNTlmNmQ1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAyIE5vdiAyMDIyIDE0OjIzOjM3ICswMDAwClN1YmplY3Q6IFtQQVRDSF0gW2NvbnRlbnQtdmlz
aWJpbGl0eV0gU3VwcG9ydCBmb3JjZWQgbGF5b3V0CiBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM3MzY5CgpSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KClN0YXJ0
IHNraXBwaW5nIGxheW91dCBmb3Igc2tpcHBlZCBjb250ZW50cy4KCiogTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9uczoKKiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTAzMS1leHBlY3RlZC50eHQ6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrQ2hpbGRyZW4p
OgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJGbGV4aWJsZUJveC5jcHA6CihXZWJD
b3JlOjpSZW5kZXJGbGV4aWJsZUJveDo6bGF5b3V0QmxvY2spOgotLS0KIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICAgICAgICAgICAgICAgfCA1ICsrKysrCiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwICAgICAgICAgICAg
IHwgNyArKysrKysrCiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwgMyArKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LTAzMS1leHBlY3RlZC50eHQgfCA2ICsrKy0tLQogNCBmaWxlcyBjaGFuZ2VkLCAx
NyBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggOTcxMjY2Y2RhYjI4Li42ZGZlYjE5Y2IwNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC02
NzAsNiArNjcwLDExIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVu
KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgbWF4CiAgICAgICAgIGlmIChjaGls
ZC5pc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dCgpKQogICAgICAgICAgICAgY29udGludWU7IC8v
IFNraXAgdGhpcyBjaGlsZCwgc2luY2UgaXQgd2lsbCBiZSBwb3NpdGlvbmVkIGJ5IHRoZSBzcGVj
aWFsaXplZCBzdWJjbGFzcyAoZmllbGRzZXRzIGFuZCBydWJ5IHJ1bnMpLgogCisgICAgICAgIGlm
IChzaG91bGRTa2lwQ29udGVudCgpICYmICFjaGlsZC5maXJzdENoaWxkKCkpIHsKKyAgICAgICAg
ICAgIGNoaWxkLmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICB9CisKICAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChy
ZWxheW91dENoaWxkcmVuLCBjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLmlzT3V0T2ZGbG93
UG9zaXRpb25lZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyRmxleGlibGVCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhp
YmxlQm94LmNwcAppbmRleCBiZDM5MzFkYzMwYTcuLmRkZmFhOWUxNjQ3YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckZsZXhpYmxlQm94LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRmxleGlibGVCb3guY3BwCkBAIC0zOCw2ICszOCw3
IEBACiAjaW5jbHVkZSAiTGF5b3V0SW50ZWdyYXRpb25GbGV4TGF5b3V0LmgiCiAjaW5jbHVkZSAi
TGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQ2hpbGRJdGVyYXRvci5oIgorI2lu
Y2x1ZGUgIlJlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIgogI2luY2x1ZGUgIlJlbmRlckxheWVy
LmgiCiAjaW5jbHVkZSAiUmVuZGVyTGF5b3V0U3RhdGUuaCIKICNpbmNsdWRlICJSZW5kZXJPYmpl
Y3RFbnVtcy5oIgpAQCAtNDAyLDYgKzQwMywxMiBAQCB2b2lkIFJlbmRlckZsZXhpYmxlQm94Ojps
YXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQpCiB7CiAgICAgQVNT
RVJUKG5lZWRzTGF5b3V0KCkpOwogCisgICAgaWYgKHNob3VsZFNraXBDb250ZW50KCkpIHsKKyAg
ICAgICAgZm9yIChhdXRvJiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyT2Jq
ZWN0PigqdGhpcykpCisgICAgICAgICAgICBkZXNjZW5kYW50LmNsZWFyTmVlZHNMYXlvdXQoKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAgIGlmICghcmVsYXlvdXRDaGlsZHJlbiAmJiBz
aW1wbGlmaWVkTGF5b3V0KCkpCiAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNjdjM2IwMTk5NDFmLi5lNzFkMmNhYzMzNTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDkw
MSw2ICs0OTAxLDcgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWIKICMgZm9yY2VkIGxheW91dAog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1
dG8KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDU3Lmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktd2l0aC10b3AtbGF5ZXIt
MDAwLnRlbnRhdGl2ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCkBAIC02MDQ3LDQgKzYwNDgs
NCBAQCBmdWxsc2NyZWVuL2Z1bGxzY3JlZW4tZW50ZXItYm90dG9tLXBhZGRpbmctYW5pbWF0aW9u
Lmh0bWwgWyBTa2lwIF0KIGh0dHAvdGVzdHMvbG9hZGluZy9vYXV0aC5odG1sIFsgRHVtcEpTQ29u
c29sZUxvZ0luU3RkRXJyIF0KIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3ZpZGVvLXdpdGgtaHR0cHMtdXJsLWFsbG93ZWQtYnktY3NwLW1lZGlhLXNyYy1zdGFyLmh0
bWwgWyBEdW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jbGlwYm9hcmQtYXBpcy9mZWF0dXJlLXBvbGljeS9jbGlwYm9hcmQtd3JpdGUvY2xp
cGJvYXJkLXdyaXRlLWRpc2FibGVkLWJ5LWZlYXR1cmUtcG9saWN5LnRlbnRhdGl2ZS5odHRwcy5z
dWIuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCi1pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvaW5mcmFzdHJ1Y3R1cmUvdXJscy90ZXJtaW5vbG9neS0wL2RvY3Vt
ZW50LWJhc2UtdXJsLWluaXRpYXRlZC1ncmFuZC1wYXJlbnQuaHR0cHMud2luZG93Lmh0bWwgWyBE
dW1wSlNDb25zb2xlTG9nSW5TdGRFcnIgXQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKK2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9pbmZyYXN0cnVjdHVyZS91cmxzL3Rl
cm1pbm9sb2d5LTAvZG9jdW1lbnQtYmFzZS11cmwtaW5pdGlhdGVkLWdyYW5kLXBhcmVudC5odHRw
cy53aW5kb3cuaHRtbCBbIER1bXBKU0NvbnNvbGVMb2dJblN0ZEVyciBdCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzMS1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzMS1leHBlY3RlZC50
eHQKaW5kZXggNWNjOGI4Mjk2ZmY3Li5hMDBlYmVhYmNhNjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDMxLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzMS1leHBlY3RlZC50eHQK
QEAgLTEsMTAgKzEsMTAgQEAKLUNPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVq
ZWN0aW9uOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogUmVzaXplT2JzZXZlciBzaG91bGQgbm90IHJ1
biBkdXJpbmcgd2hpbGUgdW5yZW5kZXJlZCBleHBlY3RlZCB0cnVlIGJ1dCBnb3QgZmFsc2UKK0NP
TlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBFcnJvcjogYXNzZXJ0
X2VxdWFsczogUmVzaXplT2JzZXZlcnMgc2hvdWxkIG5vdyBydW4gb25jZSBiZWNvbWluZyB2aXNp
YmxlIGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwg
bWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2
ZXIgc2hvdWxkIG5vdCBydW4gZHVyaW5nIHdoaWxlIHVucmVuZGVyZWQgZXhwZWN0ZWQgdHJ1ZSBi
dXQgZ290IGZhbHNlCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCBy
ZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXJzIHNob3VsZCBub3cgcnVuIG9u
Y2UgYmVjb21pbmcgdmlzaWJsZSBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRydWUKIAogVElNRU9V
VCBSZXNpemVPYnNlcnZlciBza2lwcGVkIHdoaWxlIGhpZGRlbiBUZXN0IHRpbWVkIG91dAogCi1I
YXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2Vy
dF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXIgc2hvdWxkIG5vdCBydW4gZHVyaW5nIHdoaWxlIHVucmVu
ZGVyZWQgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCitIYXJuZXNzIEVycm9yIChGQUlMKSwg
bWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2
ZXJzIHNob3VsZCBub3cgcnVuIG9uY2UgYmVjb21pbmcgdmlzaWJsZSBleHBlY3RlZCBmYWxzZSBi
dXQgZ290IHRydWUKIAogVElNRU9VVCBSZXNpemVPYnNlcnZlciBza2lwcGVkIHdoaWxlIGhpZGRl
biBUZXN0IHRpbWVkIG91dAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463668</attachid>
            <date>2022-11-22 07:36:51 -0800</date>
            <delta_ts>2022-11-23 07:31:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221122153650.patch</filename>
            <type>text/plain</type>
            <size>20888</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAxOTcxNjAzNmY5OGVhZmM2MWVlOWE5NzM5M2M4NmVhZTJkNjBiYTk5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dCAKIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV0lQ
LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoqIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDMxLWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQ6CiogTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wODAtZXhwZWN0ZWQudHh0OgoqIFNvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0
KToKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMpOgoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oOgoqIFNvdXJjZS9XZWJDb3JlL2Rv
bS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6Om9mZnNldFRvcCk6CihXZWJDb3JlOjpF
bGVtZW50OjpzY3JvbGxUb3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRpbmdDbGllbnRSZWN0
KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2ViQ29yZTo6
SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6aGVp
Z2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29yZTo6SFRN
TEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToKKFdlYkNv
cmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcDoKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRl
eHQ6OnBlcmZvcm1MYXlvdXQpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0
Q29udGV4dC5oOgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6aXNMYXlvdXRGb3Jj
ZWQgY29uc3QpOgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6c2V0TGF5b3V0Rm9y
Y2VkKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKFdl
YkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2spOgoqIFNvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJWaWV3LmNwcDoKKFdlYkNvcmU6OlJlbmRlclZpZXc6OmxheW91dCk6Ciog
U291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHA6CihXZWJDb3JlOjpTVkdMb2NhdGFi
bGU6OmdldEJCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
Y3BwOgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXROdW1iZXJPZkNoYXJzKToK
KFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKToK
KFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24pOgot
LS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAgICAgICAgICB8IDIxICsr
KysrKysrKysrKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAg
ICAgICAgICB8ICA4ICsrKystLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAg
ICAgICAgICAgICB8ICA2ICsrKy0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVt
ZW50LmNwcCAgICAgIHwgMTIgKysrKystLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwICAgICAgICB8ICA0ICsrLS0KIC4uLi9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3
TGF5b3V0Q29udGV4dC5jcHAgICB8ICAzICsrLQogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmggIHwgIDMgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcCAgfCAxMCArKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcCAgICAgICB8ICA0ICsrKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdM
b2NhdGFibGUuY3BwICAgICAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcCAgfCAgNiArKystLS0KIExheW91dFRlc3RzL1Rlc3RFeHBlY3Rh
dGlvbnMgICAgICAgICAgICAgICAgICB8ICAyICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTAz
MS1leHBlY3RlZC50eHQgICAgICAgfCAgNiArKystLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHkt
MDM4LWV4cGVjdGVkLnR4dCAgICAgICB8ICAyICstCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTA4
MC1leHBlY3RlZC50eHQgICAgICAgfCAxMCArKysrKystLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDYz
IGluc2VydGlvbnMoKyksIDM2IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IDEyYWYxNzFhMzcyNS4uZGFlMmY1Nzc3NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTIyNTgsNyArMjI1OCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQo
KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQor
dm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogewog
ICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTIyODEsMTMgKzIyODEsMjYgQEAgdm9p
ZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5k
ZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29u
dGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkp
CisgICAgc3RkOjpvcHRpb25hbDxib29sPiBvbGRMYXlvdXRGb3JjZWQ7CisgICAgaWYgKGZvcmNl
TGF5b3V0ID09IEZvcmNlTGF5b3V0OjpZZXMgJiYgdmlldygpKSB7CisgICAgICAgIG9sZExheW91
dEZvcmNlZCA9IHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7CisgICAg
ICAgIHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVlKTsKKyAgICB9
CisgICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAm
JiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpICYmIGZvcmNlTGF5b3V0ICE9IEZvcmNlTGF5
b3V0OjpZZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4
dCgpLmxheW91dCgpOworCisgICAgaWYgKG9sZExheW91dEZvcmNlZCkKKyAgICAgICAgdmlldygp
LT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKCpvbGRMYXlvdXRGb3JjZWQpOworfQor
Cit2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRm9y
Y2VMYXlvdXQgZm9yY2VMYXlvdXQpCit7CisgICAgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrczo6QXN5bmNocm9ub3VzbHksIGZvcmNlTGF5b3V0
KTsKIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MgcnVuUG9zdExheW91dFRhc2tzKQordm9p
ZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50
OjpSdW5Qb3N0TGF5b3V0VGFza3MgcnVuUG9zdExheW91dFRhc2tzLCBGb3JjZUxheW91dCBmb3Jj
ZUxheW91dCkKIHsKICAgICBib29sIG9sZElnbm9yZSA9IG1faWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzOwogCkBAIC0yMjk4LDcgKzIzMTEsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OlJ1blBvc3RMYXlvdXRUYXNrcwogICAg
ICAgICAgICAgc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CiAgICAgfQogCi0gICAgdXBkYXRl
TGF5b3V0KCk7CisgICAgdXBkYXRlTGF5b3V0KGZvcmNlTGF5b3V0KTsKIAogICAgIGlmIChydW5Q
b3N0TGF5b3V0VGFza3MgPT0gUnVuUG9zdExheW91dFRhc2tzOjpTeW5jaHJvbm91c2x5ICYmIHZp
ZXcoKSkKICAgICAgICAgdmlldygpLT5mbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2MyYjRiOWEwYzIwLi5hZmUwNGNkZjNkZTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oCkBAIC02MzUsMTIgKzYzNSwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBu
ZWVkc1N0eWxlUmVjYWxjKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbGFzdFN0eWxlVXBkYXRlU2l6
ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0
aW5nOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dCgpOwotICAgIAor
ICAgIGVudW0gY2xhc3MgRm9yY2VMYXlvdXQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9FWFBP
UlQgdm9pZCB1cGRhdGVMYXlvdXQoRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8pOworCiAg
ICAgLy8gdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCkgZm9yY2VzIGxheW91
dCBldmVuIGlmIHdlIGFyZSB3YWl0aW5nIGZvciBwZW5kaW5nIHN0eWxlc2hlZXQgbG9hZHMsCiAg
ICAgLy8gc28gY2FsbGluZyB0aGlzIG1heSBjYXVzZSBhIGZsYXNoIG9mIHVuc3R5bGVkIGNvbnRl
bnQgKEZPVUMpLgogICAgIGVudW0gY2xhc3MgUnVuUG9zdExheW91dFRhc2tzIHsgQXN5bmNocm9u
b3VzbHksIFN5bmNocm9ub3VzbHkgfTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3MgPSBSdW5Qb3N0
TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3MgPSBS
dW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5LCBGb3JjZUxheW91dCA9IEZvcmNlTGF5
b3V0OjpObyk7CisgICAgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
Rm9yY2VMYXlvdXQpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZUZv
ckVsZW1lbnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50JiwgY29uc3QgUmVuZGVy
U3R5bGUqIHBhcmVudFN0eWxlLCBQc2V1ZG9JZCA9IFBzZXVkb0lkOjpOb25lKTsKIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDJhNWMzYjczMDlkYS4uNzVjZGRlM2E1OThhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0VG9w
Rm9yQmluZGluZ3MoKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wKCkKIHsKLSAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxh
eW91dDo6WWVzKTsKICAgICBpZiAoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlcmVyID0gcmVu
ZGVyQm94TW9kZWxPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGFkanVzdE9mZnNldEZvclpvb21B
bmRTdWJwaXhlbExheW91dCgqcmVuZGVyZXIsIHJlbmRlcmVyLT5vZmZzZXRUb3AoKSk7CiAgICAg
cmV0dXJuIDA7CkBAIC0xNDcwLDcgKzE0NzAsNyBAQCBpbnQgRWxlbWVudDo6c2Nyb2xsTGVmdCgp
CiAKIGludCBFbGVtZW50OjpzY3JvbGxUb3AoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwog
CiAgICAgaWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKICAgICAg
ICAgaWYgKGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpKQpAQCAt
MTgxOSw3ICsxODE5LDcgQEAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyT2JqZWN0Kiwg
RmxvYXRSZWN0Pj4gRWxlbWVudDo6Ym91bmRpbmdBYnNvbHV0ZVJlY3QKIAogRmxvYXRSZWN0IEVs
ZW1lbnQ6OmJvdW5kaW5nQ2xpZW50UmVjdCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAg
ICAgYXV0byBwYWlyID0gYm91bmRpbmdBYnNvbHV0ZVJlY3RXaXRob3V0TGF5b3V0KCk7CiAgICAg
aWYgKCFwYWlyKQogICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElt
YWdlRWxlbWVudC5jcHAKaW5kZXggNjI2MjQwMjU2OTczLi4xODVmZmNlOTRlNWEgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNTE2LDkgKzUxNiw5IEBAIHVu
c2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKQogICAgIH0KIAogICAgIGlmIChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCi0gICAgICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAg
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3Vt
ZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0KCk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpG
b3JjZUxheW91dDo6WWVzKTsKIAogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAg
ICAgaWYgKCFib3gpCkBAIC01NDEsOSArNTQxLDkgQEAgdW5zaWduZWQgSFRNTEltYWdlRWxlbWVu
dDo6aGVpZ2h0KGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQogICAgIH0KIAogICAgIGlm
IChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCi0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVz
KTsKICAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CisgICAgICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAog
ICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgaWYgKCFib3gpCkBAIC02NzMs
NyArNjczLDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1
ZSkKIAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogewotICAgIGRvY3VtZW50KCku
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0
OjpZZXMpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwogICAgIGlmICgh
cmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjg0LDcgKzY4NCw3IEBAIGludCBIVE1M
SW1hZ2VFbGVtZW50Ojp4KCkgY29uc3QKIAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6OnkoKSBjb25z
dAogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
RG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5y
ZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA5NjE1MzQxMWM3MDMuLmEyMGM4YjY3
MWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTE3Myw3ICsx
NzMsNyBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KCkgY29uc3QKICAgICBBU1NF
UlQoZWxlbWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCgqdGhpcy0+
ZWxlbWVudCgpKTsKIAotICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7Cisg
ICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0
OjpZZXMpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkK
ICAgICAgICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShkb3duY2FzdDxSZW5kZXJCb3g+
KCpyZW5kZXJlcikuY29udGVudEhlaWdodCgpLCAqcmVuZGVyZXIpOwpAQCAtMTk1LDcgKzE5NSw3
IEBAIHVuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0CiAgICAgQVNTRVJUKGVs
ZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1l
bnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVs
ZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVz
KTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAg
ICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVu
ZGVyZXIpLmNvbnRlbnRXaWR0aCgpLCAqcmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKaW5kZXggZTRkYzYwMTgyMzMzLi5jMzgyYTIx
MGY1OWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0
LmNwcApAQCAtMjQ5LDcgKzI0OSw4IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6cGVy
Zm9ybUxheW91dCgpCiAjZW5kaWYKICAgICAgICAgbGF5b3V0Um9vdC0+bGF5b3V0KCk7CiAgICAg
ICAgIGxheW91dFVzaW5nRm9ybWF0dGluZ0NvbnRleHQoKTsKLSAgICAgICAgKyttX2xheW91dENv
dW50OworICAgICAgICBpZiAoIW1fbGF5b3V0Rm9yY2VkKQorICAgICAgICAgICAgKyttX2xheW91
dENvdW50OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgICAgIGFwcGx5VGV4dFNp
emluZ0lmTmVlZGVkKCpsYXlvdXRSb290LmdldCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAppbmRleCBiOWYxZTQzYmQ0NTQuLjY5MTIx
MWRkOWUzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0
LmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNJbkxheW91dCgpIGNvbnN0
IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQ7IH0K
ICAgICBib29sIGlzSW5SZW5kZXJUcmVlTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhh
c2UoKSA9PSBMYXlvdXRQaGFzZTo6SW5SZW5kZXJUcmVlTGF5b3V0OyB9CiAgICAgYm9vbCBpblBh
aW50YWJsZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFz
ZTo6SW5SZW5kZXJUcmVlTGF5b3V0ICYmIGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6Oklu
Vmlld1NpemVBZGp1c3QgJiYgKGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluUG9zdExh
eW91dCB8fCBpbkFzeW5jaHJvbm91c1Rhc2tzKCkpOyB9CisgICAgYm9vbCBpc0xheW91dEZvcmNl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Rm9yY2VkOyB9CisgICAgdm9pZCBzZXRMYXlvdXRG
b3JjZWQoYm9vbCBmKSB7IG1fbGF5b3V0Rm9yY2VkID0gZjsgfQogCiAgICAgdW5zaWduZWQgbGF5
b3V0Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dENvdW50OyB9CiAKQEAgLTE3MSw2ICsx
NzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVkc0Z1bGxSZXBhaW50IHsgdHJ1ZSB9Owog
ICAgIGJvb2wgbV9pbkFzeW5jaHJvbm91c1Rhc2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2V0
TmVlZHNMYXlvdXRXYXNEZWZlcnJlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2xheW91dEZvcmNl
ZCB7IGZhbHNlIH07CiAgICAgTGF5b3V0UGhhc2UgbV9sYXlvdXRQaGFzZSB7IExheW91dFBoYXNl
OjpPdXRzaWRlTGF5b3V0IH07CiAgICAgZW51bSBjbGFzcyBMYXlvdXROZXN0ZWRTdGF0ZSA6IHVp
bnQ4X3QgIHsgTm90SW5MYXlvdXQsIE5vdE5lc3RlZCwgTmVzdGVkIH07CiAgICAgTGF5b3V0TmVz
dGVkU3RhdGUgbV9sYXlvdXROZXN0ZWRTdGF0ZSB7IExheW91dE5lc3RlZFN0YXRlOjpOb3RJbkxh
eW91dCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApp
bmRleCAzZjIwY2RiNjA2M2QuLjA5MmYwZGIzZDc5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTUzMiwxMCArNTMyLDEyIEBAIHZvaWQgUmVu
ZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVu
aXQgcGFnZUxvZ2ljYWxICiAgICAgICAgIGlmICghZmlyc3RDaGlsZCgpICYmICFpc0Fub255bW91
c0Jsb2NrKCkpCiAgICAgICAgICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsKICAgICAgICAg
ZGlydHlGb3JMYXlvdXRGcm9tUGVyY2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7Ci0gICAgICAg
IGlmIChjaGlsZHJlbklubGluZSgpKQotICAgICAgICAgICAgbGF5b3V0SW5saW5lQ2hpbGRyZW4o
cmVsYXlvdXRDaGlsZHJlbiwgcmVwYWludExvZ2ljYWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90dG9t
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbGF5b3V0QmxvY2tDaGlsZHJlbihyZWxheW91
dENoaWxkcmVuLCBtYXhGbG9hdExvZ2ljYWxCb3R0b20pOworICAgICAgICBpZiAoIXNob3VsZFNr
aXBDb250ZW50KCkgfHwgdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91
dEZvcmNlZCgpKSB7CisgICAgICAgICAgICBpZiAoY2hpbGRyZW5JbmxpbmUoKSkKKyAgICAgICAg
ICAgICAgICBsYXlvdXRJbmxpbmVDaGlsZHJlbihyZWxheW91dENoaWxkcmVuIHx8IHZpZXcoKS5m
cmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKSwgcmVwYWludExvZ2lj
YWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90dG9tKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBsYXlvdXRCbG9ja0NoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4gfHwgdmlldygpLmZy
YW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpLCBtYXhGbG9hdExvZ2lj
YWxCb3R0b20pOworICAgICAgICB9CiAgICAgICAgIC8vIEV4cGFuZCBvdXIgaW50cmluc2ljIGhl
aWdodCB0byBlbmNvbXBhc3MgZmxvYXRzLgogICAgICAgICBMYXlvdXRVbml0IHRvQWRkID0gYm9y
ZGVyQW5kUGFkZGluZ0FmdGVyKCkgKyBzY3JvbGxiYXJMb2dpY2FsSGVpZ2h0KCk7CiAgICAgICAg
IGlmIChsb3dlc3RGbG9hdExvZ2ljYWxCb3R0b20oKSA+IChsb2dpY2FsSGVpZ2h0KCkgLSB0b0Fk
ZCkgJiYgY3JlYXRlc05ld0Zvcm1hdHRpbmdDb250ZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVmlldy5jcHAKaW5kZXggNzRlYzFkZmQwMTg5Li43Mjk5MmI5NzFhYTggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTIwMiw3ICsyMDIsOSBAQCB2
b2lkIFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgfQogCiAgICAgQVNTRVJUKCFmcmFtZVZpZXco
KS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKSk7Ci0gICAgaWYgKCFuZWVkc0xheW91dCgp
KQorICAgIGlmIChmcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKSkg
eworICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgfSBlbHNl
IGlmICghbmVlZHNMYXlvdXQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZW5zdXJlTGF5b3V0
U3RhdGUoKS5zZXRWaWV3cG9ydFNpemUoZnJhbWVWaWV3KCkuc2l6ZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xvY2F0YWJsZS5jcHAKaW5kZXggZDZkOWY5Y2QyNThmLi5mZWJiZWZmOTk4MjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCkBAIC02OCw3ICs2OCw3IEBAIEZsb2F0UmVjdCBT
VkdMb2NhdGFibGU6OmdldEJCb3goU1ZHRWxlbWVudCogZWxlbWVudCwgU3R5bGVVcGRhdGVTdHJh
dGVneSBzdHlsZVVwCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwogICAgIGlmIChzdHlsZVVwZGF0
ZVN0cmF0ZWd5ID09IEFsbG93U3R5bGVVcGRhdGUpCi0gICAgICAgIGVsZW1lbnQtPmRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGVsZW1l
bnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3Vt
ZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHNo
b3VsZCBzdXBwb3J0IGdldEJCb3ggZm9yIGRldGFjaGVkIGVsZW1lbnRzLgogICAgIGlmICghZWxl
bWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAKaW5kZXggYWNkMmVlYTgzMGQzLi45NTAzMzhjMTY1MjYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC01NSwxMyArNTUsMTMgQEAg
U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlm
aWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KIAogdW5zaWduZWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50
OjpnZXROdW1iZXJPZkNoYXJzKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICByZXR1
cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLm51bWJlck9mQ2hhcmFjdGVycygpOwogfQogCiBm
bG9hdCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCgpCiB7Ci0g
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVu
dDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigp
KS50ZXh0TGVuZ3RoKCk7CiB9CiAKQEAgLTEwOSw3ICsxMDksNyBAQCBFeGNlcHRpb25PcjxmbG9h
dD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9mQ2hhcih1bnNpZ25lZCBjaGFy
bnVtKQogCiBpbnQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbihE
T01Qb2ludEluaXQmJiBwb2ludEluaXQpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAg
RmxvYXRQb2ludCB0cmFuc2Zvcm1Qb2ludCB7c3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50SW5pdC54
KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50SW5pdC55KX07CiAgICAgcmV0dXJuIFNWR1RleHRR
dWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHRyYW5zZm9ybVBvaW50
KTsKIH0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRU
ZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IGRkMzM0NjFkMjA2Ni4uMjk1MDZkMWRmZjVmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4NjksMTAgKzQ4NjksMTAgQEAgaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRy
aW5zaWMuaHQKICMgZm9yY2VkIGxheW91dAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDU3Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50
LXZpc2liaWxpdHktYXV0by1zdGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9j
b250ZW50LXZpc2liaWxpdHktZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXdpdGgtdG9wLWxheWVyLTAwMC5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXdpdGgtdG9w
LWxheWVyLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12
aXNpYmlsaXR5LXdpdGgtdG9wLWxheWVyLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzMS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAz
MS1leHBlY3RlZC50eHQKaW5kZXggNWNjOGI4Mjk2ZmY3Li5hMDBlYmVhYmNhNjEgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDMxLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzMS1l
eHBlY3RlZC50eHQKQEAgLTEsMTAgKzEsMTAgQEAKLUNPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVk
IFByb21pc2UgUmVqZWN0aW9uOiBFcnJvcjogYXNzZXJ0X2VxdWFsczogUmVzaXplT2JzZXZlciBz
aG91bGQgbm90IHJ1biBkdXJpbmcgd2hpbGUgdW5yZW5kZXJlZCBleHBlY3RlZCB0cnVlIGJ1dCBn
b3QgZmFsc2UKK0NPTlNPTEUgTUVTU0FHRTogVW5oYW5kbGVkIFByb21pc2UgUmVqZWN0aW9uOiBF
cnJvcjogYXNzZXJ0X2VxdWFsczogUmVzaXplT2JzZXZlcnMgc2hvdWxkIG5vdyBydW4gb25jZSBi
ZWNvbWluZyB2aXNpYmxlIGV4cGVjdGVkIGZhbHNlIGJ1dCBnb3QgdHJ1ZQogCi1IYXJuZXNzIEVy
cm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6
IFJlc2l6ZU9ic2V2ZXIgc2hvdWxkIG5vdCBydW4gZHVyaW5nIHdoaWxlIHVucmVuZGVyZWQgZXhw
ZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCitIYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9
IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXJzIHNob3Vs
ZCBub3cgcnVuIG9uY2UgYmVjb21pbmcgdmlzaWJsZSBleHBlY3RlZCBmYWxzZSBidXQgZ290IHRy
dWUKIAogVElNRU9VVCBSZXNpemVPYnNlcnZlciBza2lwcGVkIHdoaWxlIGhpZGRlbiBUZXN0IHRp
bWVkIG91dAogCi1IYXJuZXNzIEVycm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWpl
Y3Rpb246IGFzc2VydF9lcXVhbHM6IFJlc2l6ZU9ic2V2ZXIgc2hvdWxkIG5vdCBydW4gZHVyaW5n
IHdoaWxlIHVucmVuZGVyZWQgZXhwZWN0ZWQgdHJ1ZSBidXQgZ290IGZhbHNlCitIYXJuZXNzIEVy
cm9yIChGQUlMKSwgbWVzc2FnZSA9IFVuaGFuZGxlZCByZWplY3Rpb246IGFzc2VydF9lcXVhbHM6
IFJlc2l6ZU9ic2V2ZXJzIHNob3VsZCBub3cgcnVuIG9uY2UgYmVjb21pbmcgdmlzaWJsZSBleHBl
Y3RlZCBmYWxzZSBidXQgZ290IHRydWUKIAogVElNRU9VVCBSZXNpemVPYnNlcnZlciBza2lwcGVk
IHdoaWxlIGhpZGRlbiBUZXN0IHRpbWVkIG91dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQKaW5kZXggMWVj
ZTdhOTdjNGJmLi5iY2ZjNzg5ZmE0MGEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwz
IEBACiAKLUZBSUwgTWVhc3VyZSBGb3JjZWQgTGF5b3V0IGFzc2VydF9lcXVhbHM6IHNwYWNlciB3
aGVuIHZpc2libGUgZXhwZWN0ZWQgMTA4IGJ1dCBnb3QgOAorUEFTUyBNZWFzdXJlIEZvcmNlZCBM
YXlvdXQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wODAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wODAtZXhwZWN0ZWQudHh0CmluZGV4IGQwZjA1YWQ1YTM4Yy4uMTJhNmY0OGU1OWU4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4
MC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wODAtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsOCBAQAotQ29udGVudCBWaXNpYmlsaXR5
OiBjYXJldCBwb3NpdGlvbiB3aXRoIGh0bWwgaGlkZGVuICAgKiB7IGFsbDogaW5pdGlhbDsgY29u
dGVudC12aXNpYmlsaXR5OiBoaWRkZW47IH0gdGVzdCgoKSA9PiB7IGNvbnN0IHJhbmdlID0gZG9j
dW1lbnQuY2FyZXRSYW5nZUZyb21Qb2ludCgpOyBhc3NlcnRfbm90X2VxdWFscyhyYW5nZSwgbnVs
bCwgInJhbmdlIGV4aXN0cyIpOyBhc3NlcnRfZXF1YWxzKHJhbmdlLnN0YXJ0Q29udGFpbmVyLCBo
dG1sLCAic3RhcnRDb250YWluZXIgaXMgaHRtbCIpOyBhc3NlcnRfZXF1YWxzKHJhbmdlLnN0YXJ0
T2Zmc2V0LCAwLCAic3RhcnRPZmZzZXQgaXMgemVybyIpOyBhc3NlcnRfZXF1YWxzKHJhbmdlLmVu
ZENvbnRhaW5lciwgaHRtbCwgImVuZENvbnRhaW5lciBpcyBodG1sIik7IGFzc2VydF9lcXVhbHMo
cmFuZ2UuZW5kT2Zmc2V0LCAwLCAiZW5kT2Zmc2V0IGlzIHplcm8iKTsgfSwgIkNhcmV0IHJhbmdl
IGZyb20gcG9pbnQiKTsKLUZBSUwgQ2FyZXQgcmFuZ2UgZnJvbSBwb2ludCBhc3NlcnRfZXF1YWxz
OiBzdGFydENvbnRhaW5lciBpcyBodG1sIGV4cGVjdGVkIEVsZW1lbnQgbm9kZSA8aHRtbCBpZD0i
aHRtbCI+PGhlYWQ+PG1ldGEgY2hhcnNldD0idXRmOCI+Ci08dGl0bGU+Q29udGVuLi4uIGJ1dCBn
b3QgVGV4dCBub2RlICJDb250ZW50IFZpc2liaWxpdHk6IGNhcmV0IHBvc2l0aW9uIHdpdGggaHRt
bCBoaWRkZW4iCisKKworCisKKworCisKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463692</attachid>
            <date>2022-11-23 07:31:05 -0800</date>
            <delta_ts>2022-11-23 11:06:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221123153104.patch</filename>
            <type>text/plain</type>
            <size>19473</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA0NjdiZDFmODczZjRkMzg0MTQ1ZmYwZDAwZjA2MzQ5ZjQ4NWZmZTBiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6cGVyZm9ybUxheW91dCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc0xheW91dEZvcmNl
ZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzZXRMYXlvdXRGb3Jj
ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgooV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJs
ZTo6Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHA6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0t
LQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMjEgKysr
KysrKysrKysrKysrLS0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAg
ICAgICAgIHwgIDggKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAg
ICAgICAgICAgIHwgIDYgKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwICAgICAgfCAxMiArKysrKy0tLS0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAgICAgICAgIHwgIDQgKystLQogLi4uL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdM
YXlvdXRDb250ZXh0LmNwcCAgIHwgIDMgKystCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
d0xheW91dENvbnRleHQuaCAgfCAgMyArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2tGbG93LmNwcCAgfCAxMCArKysrKy0tLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwICAgICB8IDEwICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oICAgICAgIHwgIDIgKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJWaWV3LmNwcCAgICAgICB8ICA0ICsrKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5jcHAgICB8ICAzICsrKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xv
Y2F0YWJsZS5jcHAgICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuY3BwICB8ICA2ICsrKy0tLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzgtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDIgKy0KIDE2IGZpbGVzIGNoYW5nZWQsIDY4IGluc2Vy
dGlvbnMoKyksIDMwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Rv
bS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDEy
YWYxNzFhMzcyNS4uZGFlMmY1Nzc3NGU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIy
NTgsNyArMjI1OCw3IEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAg
IHJldHVybiB0cnVlOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQordm9pZCBE
b2N1bWVudDo6dXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKQEAgLTIyODEsMTMgKzIyODEsMjYgQEAgdm9pZCBEb2N1
bWVudDo6dXBkYXRlTGF5b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3
KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgp
LmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAg
c3RkOjpvcHRpb25hbDxib29sPiBvbGRMYXlvdXRGb3JjZWQ7CisgICAgaWYgKGZvcmNlTGF5b3V0
ID09IEZvcmNlTGF5b3V0OjpZZXMgJiYgdmlldygpKSB7CisgICAgICAgIG9sZExheW91dEZvcmNl
ZCA9IHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7CisgICAgICAgIHZp
ZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVlKTsKKyAgICB9CisgICAg
aWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVu
ZGVyVmlldygpLT5uZWVkc0xheW91dCgpICYmIGZvcmNlTGF5b3V0ICE9IEZvcmNlTGF5b3V0OjpZ
ZXMpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmxh
eW91dCgpOworCisgICAgaWYgKG9sZExheW91dEZvcmNlZCkKKyAgICAgICAgdmlldygpLT5sYXlv
dXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKCpvbGRMYXlvdXRGb3JjZWQpOworfQorCit2b2lk
IERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRm9yY2VMYXlv
dXQgZm9yY2VMYXlvdXQpCit7CisgICAgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKFJ1blBvc3RMYXlvdXRUYXNrczo6QXN5bmNocm9ub3VzbHksIGZvcmNlTGF5b3V0KTsKIH0K
IAotdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERv
Y3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MgcnVuUG9zdExheW91dFRhc2tzKQordm9pZCBEb2N1
bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Q
b3N0TGF5b3V0VGFza3MgcnVuUG9zdExheW91dFRhc2tzLCBGb3JjZUxheW91dCBmb3JjZUxheW91
dCkKIHsKICAgICBib29sIG9sZElnbm9yZSA9IG1faWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzOwog
CkBAIC0yMjk4LDcgKzIzMTEsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OlJ1blBvc3RMYXlvdXRUYXNrcwogICAgICAgICAg
ICAgc2NoZWR1bGVGdWxsU3R5bGVSZWJ1aWxkKCk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0
KCk7CisgICAgdXBkYXRlTGF5b3V0KGZvcmNlTGF5b3V0KTsKIAogICAgIGlmIChydW5Qb3N0TGF5
b3V0VGFza3MgPT0gUnVuUG9zdExheW91dFRhc2tzOjpTeW5jaHJvbm91c2x5ICYmIHZpZXcoKSkK
ICAgICAgICAgdmlldygpLT5mbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggM2MyYjRiOWEwYzIwLi5hZmUwNGNkZjNkZTMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC02MzUsMTIgKzYzNSwxNCBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc1N0
eWxlUmVjYWxjKCkgY29uc3Q7CiAgICAgdW5zaWduZWQgbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRl
c3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nOyB9
CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dCgpOwotICAgIAorICAgIGVu
dW0gY2xhc3MgRm9yY2VMYXlvdXQgeyBObywgWWVzIH07CisgICAgV0VCQ09SRV9FWFBPUlQgdm9p
ZCB1cGRhdGVMYXlvdXQoRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8pOworCiAgICAgLy8g
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCkgZm9yY2VzIGxheW91dCBldmVu
IGlmIHdlIGFyZSB3YWl0aW5nIGZvciBwZW5kaW5nIHN0eWxlc2hlZXQgbG9hZHMsCiAgICAgLy8g
c28gY2FsbGluZyB0aGlzIG1heSBjYXVzZSBhIGZsYXNoIG9mIHVuc3R5bGVkIGNvbnRlbnQgKEZP
VUMpLgogICAgIGVudW0gY2xhc3MgUnVuUG9zdExheW91dFRhc2tzIHsgQXN5bmNocm9ub3VzbHks
IFN5bmNocm9ub3VzbHkgfTsKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3MgPSBSdW5Qb3N0TGF5b3V0
VGFza3M6OkFzeW5jaHJvbm91c2x5KTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3MgPSBSdW5Qb3N0
TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5LCBGb3JjZUxheW91dCA9IEZvcmNlTGF5b3V0OjpO
byk7CisgICAgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRm9yY2VM
YXlvdXQpOwogCiAgICAgc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHlsZUZvckVsZW1l
bnRJZ25vcmluZ1BlbmRpbmdTdHlsZXNoZWV0cyhFbGVtZW50JiwgY29uc3QgUmVuZGVyU3R5bGUq
IHBhcmVudFN0eWxlLCBQc2V1ZG9JZCA9IFBzZXVkb0lkOjpOb25lKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCmluZGV4IDJhNWMzYjczMDlkYS4uNzVjZGRlM2E1OThhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuY3BwCkBAIC0xMzEwLDcgKzEzMTAsNyBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wRm9yQmlu
ZGluZ3MoKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKICAgICBpZiAoUmVuZGVyQm94TW9kZWxPYmplY3QqIHJlbmRlcmVyID0gcmVuZGVyQm94
TW9kZWxPYmplY3QoKSkKICAgICAgICAgcmV0dXJuIGFkanVzdE9mZnNldEZvclpvb21BbmRTdWJw
aXhlbExheW91dCgqcmVuZGVyZXIsIHJlbmRlcmVyLT5vZmZzZXRUb3AoKSk7CiAgICAgcmV0dXJu
IDA7CkBAIC0xNDcwLDcgKzE0NzAsNyBAQCBpbnQgRWxlbWVudDo6c2Nyb2xsTGVmdCgpCiAKIGlu
dCBFbGVtZW50OjpzY3JvbGxUb3AoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAgICAg
aWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKICAgICAgICAgaWYg
KGF1dG8qIGZyYW1lID0gZG9jdW1lbnRGcmFtZVdpdGhOb25OdWxsVmlldygpKQpAQCAtMTgxOSw3
ICsxODE5LDcgQEAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyT2JqZWN0KiwgRmxvYXRS
ZWN0Pj4gRWxlbWVudDo6Ym91bmRpbmdBYnNvbHV0ZVJlY3QKIAogRmxvYXRSZWN0IEVsZW1lbnQ6
OmJvdW5kaW5nQ2xpZW50UmVjdCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAgYXV0
byBwYWlyID0gYm91bmRpbmdBYnNvbHV0ZVJlY3RXaXRob3V0TGF5b3V0KCk7CiAgICAgaWYgKCFw
YWlyKQogICAgICAgICByZXR1cm4geyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKaW5kZXggNjI2MjQwMjU2OTczLi4xODVmZmNlOTRlNWEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNTE2LDkgKzUxNiw5IEBAIHVuc2lnbmVk
IEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQog
ICAgIH0KIAogICAgIGlmIChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCi0gICAgICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpG
b3JjZUxheW91dDo6WWVzKTsKICAgICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0KCk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxh
eW91dDo6WWVzKTsKIAogICAgIFJlbmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgaWYg
KCFib3gpCkBAIC01NDEsOSArNTQxLDkgQEAgdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6aGVp
Z2h0KGJvb2wgaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQogICAgIH0KIAogICAgIGlmIChpZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMpCi0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAg
ICBlbHNlCi0gICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CisgICAgICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIFJl
bmRlckJveCogYm94ID0gcmVuZGVyQm94KCk7CiAgICAgaWYgKCFib3gpCkBAIC02NzMsNyArNjcz
LDcgQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIAog
aW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogewotICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVy
ZXIpCiAgICAgICAgIHJldHVybiAwOwpAQCAtNjg0LDcgKzY4NCw3IEBAIGludCBIVE1MSW1hZ2VF
bGVtZW50Ojp4KCkgY29uc3QKIAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6OnkoKSBjb25zdAogewot
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Cisg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1l
bnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJl
cigpOwogICAgIGlmICghcmVuZGVyZXIpCiAgICAgICAgIHJldHVybiAwOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9o
dG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA5NjE1MzQxMWM3MDMuLmEyMGM4YjY3MWQwYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTE3Myw3ICsxNzMsNyBA
QCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KCkgY29uc3QKICAgICBBU1NFUlQoZWxl
bWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCgqdGhpcy0+ZWxlbWVu
dCgpKTsKIAotICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CisgICAgZWxl
bWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5k
ZXJlcikuY29udGVudEhlaWdodCgpLCAqcmVuZGVyZXIpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIHVu
c2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQo
KSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7
CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQt
PmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAog
ICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJl
dHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIp
LmNvbnRlbnRXaWR0aCgpLCAqcmVuZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJh
bWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKaW5kZXggZTRkYzYwMTgyMzMzLi5jMzgyYTIxMGY1OWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApA
QCAtMjQ5LDcgKzI0OSw4IEBAIHZvaWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6cGVyZm9ybUxh
eW91dCgpCiAjZW5kaWYKICAgICAgICAgbGF5b3V0Um9vdC0+bGF5b3V0KCk7CiAgICAgICAgIGxh
eW91dFVzaW5nRm9ybWF0dGluZ0NvbnRleHQoKTsKLSAgICAgICAgKyttX2xheW91dENvdW50Owor
ICAgICAgICBpZiAoIW1fbGF5b3V0Rm9yY2VkKQorICAgICAgICAgICAgKyttX2xheW91dENvdW50
OwogI2lmIEVOQUJMRShURVhUX0FVVE9TSVpJTkcpCiAgICAgICAgIGFwcGx5VGV4dFNpemluZ0lm
TmVlZGVkKCpsYXlvdXRSb290LmdldCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuaAppbmRleCBiOWYxZTQzYmQ0NTQuLjY5MTIxMWRkOWUz
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKQEAg
LTgyLDYgKzgyLDggQEAgcHVibGljOgogICAgIGJvb2wgaXNJbkxheW91dCgpIGNvbnN0IHsgcmV0
dXJuIGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQ7IH0KICAgICBi
b29sIGlzSW5SZW5kZXJUcmVlTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSA9
PSBMYXlvdXRQaGFzZTo6SW5SZW5kZXJUcmVlTGF5b3V0OyB9CiAgICAgYm9vbCBpblBhaW50YWJs
ZVN0YXRlKCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5S
ZW5kZXJUcmVlTGF5b3V0ICYmIGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluVmlld1Np
emVBZGp1c3QgJiYgKGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluUG9zdExheW91dCB8
fCBpbkFzeW5jaHJvbm91c1Rhc2tzKCkpOyB9CisgICAgYm9vbCBpc0xheW91dEZvcmNlZCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGF5b3V0Rm9yY2VkOyB9CisgICAgdm9pZCBzZXRMYXlvdXRGb3JjZWQo
Ym9vbCBmKSB7IG1fbGF5b3V0Rm9yY2VkID0gZjsgfQogCiAgICAgdW5zaWduZWQgbGF5b3V0Q291
bnQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dENvdW50OyB9CiAKQEAgLTE3MSw2ICsxNzMsNyBA
QCBwcml2YXRlOgogICAgIGJvb2wgbV9uZWVkc0Z1bGxSZXBhaW50IHsgdHJ1ZSB9OwogICAgIGJv
b2wgbV9pbkFzeW5jaHJvbm91c1Rhc2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2V0TmVlZHNM
YXlvdXRXYXNEZWZlcnJlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX2xheW91dEZvcmNlZCB7IGZh
bHNlIH07CiAgICAgTGF5b3V0UGhhc2UgbV9sYXlvdXRQaGFzZSB7IExheW91dFBoYXNlOjpPdXRz
aWRlTGF5b3V0IH07CiAgICAgZW51bSBjbGFzcyBMYXlvdXROZXN0ZWRTdGF0ZSA6IHVpbnQ4X3Qg
IHsgTm90SW5MYXlvdXQsIE5vdE5lc3RlZCwgTmVzdGVkIH07CiAgICAgTGF5b3V0TmVzdGVkU3Rh
dGUgbV9sYXlvdXROZXN0ZWRTdGF0ZSB7IExheW91dE5lc3RlZFN0YXRlOjpOb3RJbkxheW91dCB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDQwMTFlYzUy
NDMzLi4xZjhkOGQzYTljZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9jay5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
LmNwcApAQCAtODM3LDcgKzgzNyw3IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUJsb2NrQ2hp
bGREaXJ0eUJpdHNCZWZvcmVMYXlvdXQoYm9vbCByZWxheW91dENoaWxkcmVuLCBSCiAKICAgICAv
LyBGSVhNRTogVGVjaG5pY2FsbHkgcGVyY2VudGFnZSBoZWlnaHQgb2JqZWN0cyBvbmx5IG5lZWQg
YSByZWxheW91dCBpZiB0aGVpciBwZXJjZW50YWdlIGlzbid0IGdvaW5nIHRvIGJlIHR1cm5lZCBp
bnRvCiAgICAgLy8gYW4gYXV0byB2YWx1ZS4gQWRkIGEgbWV0aG9kIHRvIGRldGVybWluZSB0aGlz
LCBzbyB0aGF0IHdlIGNhbiBhdm9pZCB0aGUgcmVsYXlvdXQuCi0gICAgaWYgKHJlbGF5b3V0Q2hp
bGRyZW4gfHwgKGNoaWxkLmhhc1JlbGF0aXZlTG9naWNhbEhlaWdodCgpICYmICFpc1JlbmRlclZp
ZXcoKSkpCisgICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4gfHwgLypjaGlsZC5pc1NraXBwZWRDb250
ZW50Rm9yTGF5b3V0KCkgfHwqLyAoY2hpbGQuaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgJiYg
IWlzUmVuZGVyVmlldygpKSkKICAgICAgICAgY2hpbGQuc2V0Q2hpbGROZWVkc0xheW91dChNYXJr
T25seVRoaXMpOwogCiAgICAgLy8gSWYgcmVsYXlvdXRDaGlsZHJlbiBpcyBzZXQgYW5kIHRoZSBj
aGlsZCBoYXMgcGVyY2VudGFnZSBwYWRkaW5nIG9yIGFuIGVtYmVkZGVkIGNvbnRlbnQgYm94LCB3
ZSBhbHNvIG5lZWQgdG8gaW52YWxpZGF0ZSB0aGUgY2hpbGRzIHByZWYgd2lkdGhzLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAzZjIwY2RiNjA2
M2QuLjZiYjZhOTVjZmRmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKQEAgLTUzMiwxMCArNTMyLDEyIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93Ojps
YXlvdXRCbG9jayhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQgcGFnZUxvZ2ljYWxI
CiAgICAgICAgIGlmICghZmlyc3RDaGlsZCgpICYmICFpc0Fub255bW91c0Jsb2NrKCkpCiAgICAg
ICAgICAgICBzZXRDaGlsZHJlbklubGluZSh0cnVlKTsKICAgICAgICAgZGlydHlGb3JMYXlvdXRG
cm9tUGVyY2VudGFnZUhlaWdodERlc2NlbmRhbnRzKCk7Ci0gICAgICAgIGlmIChjaGlsZHJlbklu
bGluZSgpKQotICAgICAgICAgICAgbGF5b3V0SW5saW5lQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJl
biwgcmVwYWludExvZ2ljYWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90dG9tKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgbGF5b3V0QmxvY2tDaGlsZHJlbihyZWxheW91dENoaWxkcmVuLCBtYXhG
bG9hdExvZ2ljYWxCb3R0b20pOworICAgICAgICAvL2lmICghc2hvdWxkU2tpcENvbnRlbnRGb3JM
YXlvdXQoKSkgeworICAgICAgICAgICAgaWYgKGNoaWxkcmVuSW5saW5lKCkpCisgICAgICAgICAg
ICAgICAgbGF5b3V0SW5saW5lQ2hpbGRyZW4ocmVsYXlvdXRDaGlsZHJlbiwgcmVwYWludExvZ2lj
YWxUb3AsIHJlcGFpbnRMb2dpY2FsQm90dG9tKTsKKyAgICAgICAgICAgIGVsc2UKKyAgICAgICAg
ICAgICAgICBsYXlvdXRCbG9ja0NoaWxkcmVuKHJlbGF5b3V0Q2hpbGRyZW4sIG1heEZsb2F0TG9n
aWNhbEJvdHRvbSk7CisgICAgICAgIC8vfQogICAgICAgICAvLyBFeHBhbmQgb3VyIGludHJpbnNp
YyBoZWlnaHQgdG8gZW5jb21wYXNzIGZsb2F0cy4KICAgICAgICAgTGF5b3V0VW5pdCB0b0FkZCA9
IGJvcmRlckFuZFBhZGRpbmdBZnRlcigpICsgc2Nyb2xsYmFyTG9naWNhbEhlaWdodCgpOwogICAg
ICAgICBpZiAobG93ZXN0RmxvYXRMb2dpY2FsQm90dG9tKCkgPiAobG9naWNhbEhlaWdodCgpIC0g
dG9BZGQpICYmIGNyZWF0ZXNOZXdGb3JtYXR0aW5nQ29udGV4dCgpKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA1MzcyOGEzNjlmODAuLjQwMWZiM2QzZGY0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI1Nzgs
NiArMjU3OCwxNiBAQCBib29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25z
dAogICAgIHJldHVybiBzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2li
aWxpdHk6OkhpZGRlbjsKIH0KIAorYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50
Rm9yTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0Nv
bnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZv
cmNlZCgpOworfQorCitib29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91
dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkg
JiYgdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOwor
fQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJP
YmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24o
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwN2VlMzNmZjhl
YzAuLjlhMWJkNzQ2ZmI1OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aApAQCAtODAxLDYgKzgwMSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQo
KSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKKyAgICBib29s
IHNob3VsZFNraXBDb250ZW50Rm9yTGF5b3V0KCkgY29uc3Q7CisgICAgYm9vbCBpc1NraXBwZWRD
b250ZW50Rm9yTGF5b3V0KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcAppbmRleCA3NGVjMWRmZDAxODkuLjcyOTkyYjk3MWFhOCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcApAQCAtMjAyLDcgKzIwMiw5IEBAIHZvaWQgUmVu
ZGVyVmlldzo6bGF5b3V0KCkKICAgICB9CiAKICAgICBBU1NFUlQoIWZyYW1lVmlldygpLmxheW91
dENvbnRleHQoKS5sYXlvdXRTdGF0ZSgpKTsKLSAgICBpZiAoIW5lZWRzTGF5b3V0KCkpCisgICAg
aWYgKGZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKSB7CisgICAg
ICAgIHNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICB9IGVsc2UgaWYgKCFu
ZWVkc0xheW91dCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBlbnN1cmVMYXlvdXRTdGF0ZSgp
LnNldFZpZXdwb3J0U2l6ZShmcmFtZVZpZXcoKS5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMmNkZDQzMWEyZDZjLi4xZTg0
OTAzYTQ4NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcApAQCAtODA4LDYgKzgwOCw5IEBAIHN0YXRpYyBib29sIHJhcmVOb25Jbmhlcml0ZWRE
YXRhQ2hhbmdlUmVxdWlyZXNMYXlvdXQoY29uc3QgU3R5bGVSYXJlTm9uSW5oZXJpdGVkCiAgICAg
ICAgIHx8IGZpcnN0LmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFpbnMoQ29udGFpbm1lbnQ6
OklubGluZVNpemUpICE9IHNlY29uZC5lZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENv
bnRhaW5tZW50OjpJbmxpbmVTaXplKSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKKyAgICBpZiAo
Zmlyc3QuY29udGVudFZpc2liaWxpdHkgIT0gc2Vjb25kLmNvbnRlbnRWaXNpYmlsaXR5KQorICAg
ICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChmaXJzdC5zY3JvbGxQYWRkaW5nICE9IHNlY29u
ZC5zY3JvbGxQYWRkaW5nKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TG9jYXRhYmxlLmNwcAppbmRleCBkNmQ5ZjljZDI1OGYuLmZlYmJlZmY5OTgyNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAgRmxvYXRSZWN0IFNWR0xv
Y2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5
IHN0eWxlVXAKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgaWYgKHN0eWxlVXBkYXRlU3Ry
YXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKLSAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICAgICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6
OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hvdWxk
IHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAgaWYgKCFlbGVtZW50
LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcAppbmRleCBhY2QyZWVhODMwZDMuLjk1MDMzOGMxNjUyNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEzICs1NSwxMyBAQCBTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWRO
YW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6Omdl
dE51bWJlck9mQ2hhcnMoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIHJldHVybiBT
VkdUZXh0UXVlcnkocmVuZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZsb2F0
IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKLSAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpG
b3JjZUxheW91dDo6WWVzKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLnRl
eHRMZW5ndGgoKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBT
VkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0p
CiAKIGludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERPTVBv
aW50SW5pdCYmIHBvaW50SW5pdCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBGbG9h
dFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LngpLCBz
dGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5
KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJhbnNmb3JtUG9pbnQpOwog
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzgtZXhwZWN0ZWQudHh0CmluZGV4IDFlY2U3YTk3YzRiZi4uYmNmYzc4OWZhNDBhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIE1lYXN1cmUgRm9yY2VkIExh
eW91dCBhc3NlcnRfZXF1YWxzOiBzcGFjZXIgd2hlbiB2aXNpYmxlIGV4cGVjdGVkIDEwOCBidXQg
Z290IDgKK1BBU1MgTWVhc3VyZSBGb3JjZWQgTGF5b3V0CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463695</attachid>
            <date>2022-11-23 11:06:51 -0800</date>
            <delta_ts>2022-11-24 13:57:39 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221123190650.patch</filename>
            <type>text/plain</type>
            <size>24580</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAwMzY3MjM4NmExOTRlNjNkZmM4MTdmOGNmNDIwNTFkYzE2M2RlODI2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6cGVyZm9ybUxheW91dCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc0xheW91dEZvcmNl
ZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzZXRMYXlvdXRGb3Jj
ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgooV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJs
ZTo6Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHA6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0t
LQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMjEgKysr
KysrKysrKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAg
ICAgfCAgOCArKystLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAgICAgICAg
ICAgICB8ICA2ICsrLS0tCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3Bw
ICAgICAgfCAxMiArKysrLS0tLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
Y3BwICAgICAgICB8ICA0ICstLQogLi4uL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250
ZXh0LmNwcCAgIHwgIDMgKystCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaCAgfCAgMyArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCAgfCAgNSArKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cCAgICAgfCAxMCArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmggICAgICAgfCAgMiArKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclZpZXcuY3Bw
ICAgICAgIHwgIDQgKystCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwICAgfCAgNCArKysKIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwICAgICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cCAgfCAgNiArKy0tLQogLi4uL2NvbnRlbnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0ICAg
ICAgIHwgIDIgKy0KIC4uLi9hdXRvLTAwNi1leHBlY3RlZC50eHQgICAgICAgICAgICAgICAgICAg
ICB8IDI2ICsrKysrKysrKy0tLS0tLS0tLS0KIC4uLi9hdXRvLTAwOC1leHBlY3RlZC50eHQgICAg
ICAgICAgICAgICAgICAgICB8ICA2ICsrLS0tCiAxOCBmaWxlcyBjaGFuZ2VkLCA4NCBpbnNlcnRp
b25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20v
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCAxMmFm
MTcxYTM3MjUuLmRhZTJmNTc3NzRlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMjU4
LDcgKzIyNTgsNyBAQCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkKICAgICBy
ZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKK3ZvaWQgRG9j
dW1lbnQ6OnVwZGF0ZUxheW91dChGb3JjZUxheW91dCBmb3JjZUxheW91dCkKIHsKICAgICBBU1NF
UlQoaXNNYWluVGhyZWFkKCkpOwogCkBAIC0yMjgxLDEzICsyMjgxLDI2IEBAIHZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZUxheW91dCgpCiAKICAgICBpZiAoIWZyYW1lVmlldyB8fCAhcmVuZGVyVmlldygp
KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5p
c0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpKQorICAgIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gb2xkTGF5b3V0Rm9yY2VkOworICAgIGlmIChmb3JjZUxheW91dCA9
PSBGb3JjZUxheW91dDo6WWVzICYmIHZpZXcoKSkgeworICAgICAgICBvbGRMYXlvdXRGb3JjZWQg
PSB2aWV3KCktPmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOworICAgICAgICB2aWV3
KCktPmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3JjZWQodHJ1ZSk7CisgICAgfQorICAgIGlm
ICghZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkgJiYgIXJlbmRl
clZpZXcoKS0+bmVlZHNMYXlvdXQoKSAmJiBmb3JjZUxheW91dCAhPSBGb3JjZUxheW91dDo6WWVz
KQogICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5sYXlv
dXQoKTsKKworICAgIGlmIChvbGRMYXlvdXRGb3JjZWQpCisgICAgICAgIHZpZXcoKS0+bGF5b3V0
Q29udGV4dCgpLnNldExheW91dEZvcmNlZCgqb2xkTGF5b3V0Rm9yY2VkKTsKK30KKwordm9pZCBE
b2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0
IGZvcmNlTGF5b3V0KQoreworICAgIHVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyhSdW5Qb3N0TGF5b3V0VGFza3M6OkFzeW5jaHJvbm91c2x5LCBmb3JjZUxheW91dCk7CiB9CiAK
LXZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1
bWVudDo6UnVuUG9zdExheW91dFRhc2tzIHJ1blBvc3RMYXlvdXRUYXNrcykKK3ZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9z
dExheW91dFRhc2tzIHJ1blBvc3RMYXlvdXRUYXNrcywgRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQp
CiB7CiAgICAgYm9vbCBvbGRJZ25vcmUgPSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0czsKIApA
QCAtMjI5OCw3ICsyMzExLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAgICAgICAg
IHNjaGVkdWxlRnVsbFN0eWxlUmVidWlsZCgpOwogICAgIH0KIAotICAgIHVwZGF0ZUxheW91dCgp
OworICAgIHVwZGF0ZUxheW91dChmb3JjZUxheW91dCk7CiAKICAgICBpZiAocnVuUG9zdExheW91
dFRhc2tzID09IFJ1blBvc3RMYXlvdXRUYXNrczo6U3luY2hyb25vdXNseSAmJiB2aWV3KCkpCiAg
ICAgICAgIHZpZXcoKS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCmluZGV4IDNjMmI0YjlhMGMyMC4uYWZlMDRjZGYzZGUzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9j
dW1lbnQuaApAQCAtNjM1LDEyICs2MzUsMTQgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNTdHls
ZVJlY2FsYygpIGNvbnN0OwogICAgIHVuc2lnbmVkIGxhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0
aW5nKCkgY29uc3QgeyByZXR1cm4gbV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGluZzsgfQog
Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQoKTsKLSAgICAKKyAgICBlbnVt
IGNsYXNzIEZvcmNlTGF5b3V0IHsgTm8sIFllcyB9OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQg
dXBkYXRlTGF5b3V0KEZvcmNlTGF5b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwogICAgIC8vIHVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQgZXZlbiBp
ZiB3ZSBhcmUgd2FpdGluZyBmb3IgcGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAgIC8vIHNv
IGNhbGxpbmcgdGhpcyBtYXkgY2F1c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50IChGT1VD
KS4KICAgICBlbnVtIGNsYXNzIFJ1blBvc3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJvbm91c2x5LCBT
eW5jaHJvbm91c2x5IH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRh
c2tzOjpBc3luY2hyb25vdXNseSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExh
eW91dFRhc2tzOjpBc3luY2hyb25vdXNseSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8p
OworICAgIHZvaWQgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5
b3V0KTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50
SWdub3JpbmdQZW5kaW5nU3R5bGVzaGVldHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBw
YXJlbnRTdHlsZSwgUHNldWRvSWQgPSBQc2V1ZG9JZDo6Tm9uZSk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcAppbmRleCAyYTVjM2I3MzA5ZGEuLjc1Y2RkZTNhNTk4YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcApAQCAtMTMxMCw3ICsxMzEwLDcgQEAgaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRp
bmdzKCkKIAogaW50IEVsZW1lbnQ6Om9mZnNldFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olll
cyk7CiAgICAgaWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1v
ZGVsT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4
ZWxMYXlvdXQoKnJlbmRlcmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJldHVybiAw
OwpAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQg
RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKIAogICAgIGlm
IChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7CiAgICAgICAgIGlmIChh
dXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKQEAgLTE4MTksNyAr
MTgxOSw3IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVj
dD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpi
b3VuZGluZ0NsaWVudFJlY3QoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogICAgIGF1dG8g
cGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwogICAgIGlmICghcGFp
cikKICAgICAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1l
bnQuY3BwCmluZGV4IDYyNjI0MDI1Njk3My4uMTg1ZmZjZTk0ZTVhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUxNiw5ICs1MTYsOSBAQCB1bnNpZ25lZCBI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAg
ICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9y
Y2VMYXlvdXQ6Olllcyk7CiAgICAgZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dCgpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlv
dXQ6Olllcyk7CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICgh
Ym94KQpAQCAtNTQxLDkgKzU0MSw5IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdo
dChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAgICAg
ZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAgICBSZW5k
ZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNjczLDcgKzY3Myw3
IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiAKIGlu
dCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsK
ICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVy
KQogICAgICAgICByZXR1cm4gMDsKQEAgLTY4NCw3ICs2ODQsNyBAQCBpbnQgSFRNTEltYWdlRWxl
bWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKLSAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50
OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIo
KTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi5hMjBjOGI2NzFkMGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAg
dW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1l
bnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQo
KSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1l
bnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsK
IAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAg
IHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVy
ZXIpLmNvbnRlbnRIZWlnaHQoKSwgKnJlbmRlcmVyKTsKQEAgLTE5NSw3ICsxOTUsNyBAQCB1bnNp
Z25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkp
OwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwog
Ci0gICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICBlbGVtZW50LT5k
b2N1bWVudCgpLnVwZGF0ZUxheW91dChEb2N1bWVudDo6Rm9yY2VMYXlvdXQ6Olllcyk7CiAKICAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKQogICAgICAgICByZXR1
cm4gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGRvd25jYXN0PFJlbmRlckJveD4oKnJlbmRlcmVyKS5j
b250ZW50V2lkdGgoKSwgKnJlbmRlcmVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlld0xheW91dENvbnRleHQuY3BwCmluZGV4IGU0ZGM2MDE4MjMzMy4uYzM4MmEyMTBmNTlkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKQEAg
LTI0OSw3ICsyNDksOCBAQCB2b2lkIEZyYW1lVmlld0xheW91dENvbnRleHQ6OnBlcmZvcm1MYXlv
dXQoKQogI2VuZGlmCiAgICAgICAgIGxheW91dFJvb3QtPmxheW91dCgpOwogICAgICAgICBsYXlv
dXRVc2luZ0Zvcm1hdHRpbmdDb250ZXh0KCk7Ci0gICAgICAgICsrbV9sYXlvdXRDb3VudDsKKyAg
ICAgICAgaWYgKCFtX2xheW91dEZvcmNlZCkKKyAgICAgICAgICAgICsrbV9sYXlvdXRDb3VudDsK
ICNpZiBFTkFCTEUoVEVYVF9BVVRPU0laSU5HKQogICAgICAgICBhcHBseVRleHRTaXppbmdJZk5l
ZWRlZCgqbGF5b3V0Um9vdC5nZXQoKSk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9G
cmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKaW5kZXggYjlmMWU0M2JkNDU0Li42OTEyMTFkZDllM2Qg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCkBAIC04
Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5MYXlvdXQoKSBjb25zdCB7IHJldHVy
biBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0OyB9CiAgICAgYm9v
bCBpc0luUmVuZGVyVHJlZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgPT0g
TGF5b3V0UGhhc2U6OkluUmVuZGVyVHJlZUxheW91dDsgfQogICAgIGJvb2wgaW5QYWludGFibGVT
dGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluUmVu
ZGVyVHJlZUxheW91dCAmJiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblZpZXdTaXpl
QWRqdXN0ICYmIChsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblBvc3RMYXlvdXQgfHwg
aW5Bc3luY2hyb25vdXNUYXNrcygpKTsgfQorICAgIGJvb2wgaXNMYXlvdXRGb3JjZWQoKSBjb25z
dCB7IHJldHVybiBtX2xheW91dEZvcmNlZDsgfQorICAgIHZvaWQgc2V0TGF5b3V0Rm9yY2VkKGJv
b2wgZikgeyBtX2xheW91dEZvcmNlZCA9IGY7IH0KIAogICAgIHVuc2lnbmVkIGxheW91dENvdW50
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRDb3VudDsgfQogCkBAIC0xNzEsNiArMTczLDcgQEAg
cHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNGdWxsUmVwYWludCB7IHRydWUgfTsKICAgICBib29s
IG1faW5Bc3luY2hyb25vdXNUYXNrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3NldE5lZWRzTGF5
b3V0V2FzRGVmZXJyZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9sYXlvdXRGb3JjZWQgeyBmYWxz
ZSB9OwogICAgIExheW91dFBoYXNlIG1fbGF5b3V0UGhhc2UgeyBMYXlvdXRQaGFzZTo6T3V0c2lk
ZUxheW91dCB9OwogICAgIGVudW0gY2xhc3MgTGF5b3V0TmVzdGVkU3RhdGUgOiB1aW50OF90ICB7
IE5vdEluTGF5b3V0LCBOb3ROZXN0ZWQsIE5lc3RlZCB9OwogICAgIExheW91dE5lc3RlZFN0YXRl
IG1fbGF5b3V0TmVzdGVkU3RhdGUgeyBMYXlvdXROZXN0ZWRTdGF0ZTo6Tm90SW5MYXlvdXQgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IGQ0MDExZWM1MjQz
My4uMWY4ZDhkM2E5Y2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5j
cHAKQEAgLTgzNyw3ICs4MzcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVCbG9ja0NoaWxk
RGlydHlCaXRzQmVmb3JlTGF5b3V0KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgUgogCiAgICAgLy8g
RklYTUU6IFRlY2huaWNhbGx5IHBlcmNlbnRhZ2UgaGVpZ2h0IG9iamVjdHMgb25seSBuZWVkIGEg
cmVsYXlvdXQgaWYgdGhlaXIgcGVyY2VudGFnZSBpc24ndCBnb2luZyB0byBiZSB0dXJuZWQgaW50
bwogICAgIC8vIGFuIGF1dG8gdmFsdWUuIEFkZCBhIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhpcywg
c28gdGhhdCB3ZSBjYW4gYXZvaWQgdGhlIHJlbGF5b3V0LgotICAgIGlmIChyZWxheW91dENoaWxk
cmVuIHx8IChjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKSAmJiAhaXNSZW5kZXJWaWV3
KCkpKQorICAgIGlmIChyZWxheW91dENoaWxkcmVuIHx8IC8qY2hpbGQuaXNTa2lwcGVkQ29udGVu
dEZvckxheW91dCgpIHx8Ki8gKGNoaWxkLmhhc1JlbGF0aXZlTG9naWNhbEhlaWdodCgpICYmICFp
c1JlbmRlclZpZXcoKSkpCiAgICAgICAgIGNoaWxkLnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09u
bHlUaGlzKTsKIAogICAgIC8vIElmIHJlbGF5b3V0Q2hpbGRyZW4gaXMgc2V0IGFuZCB0aGUgY2hp
bGQgaGFzIHBlcmNlbnRhZ2UgcGFkZGluZyBvciBhbiBlbWJlZGRlZCBjb250ZW50IGJveCwgd2Ug
YWxzbyBuZWVkIHRvIGludmFsaWRhdGUgdGhlIGNoaWxkcyBwcmVmIHdpZHRocy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggM2YyMGNkYjYwNjNk
Li45ODQzZTk4YzIyYWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCkBAIC02NzAsNiArNjcwLDExIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlv
dXRCbG9ja0NoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgbWF4CiAg
ICAgICAgIGlmIChjaGlsZC5pc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dCgpKQogICAgICAgICAg
ICAgY29udGludWU7IC8vIFNraXAgdGhpcyBjaGlsZCwgc2luY2UgaXQgd2lsbCBiZSBwb3NpdGlv
bmVkIGJ5IHRoZSBzcGVjaWFsaXplZCBzdWJjbGFzcyAoZmllbGRzZXRzIGFuZCBydWJ5IHJ1bnMp
LgogCisgICAgICAgIGlmIChzaG91bGRTa2lwQ29udGVudEZvckxheW91dCgpICYmICFjaGlsZC5j
YW5IYXZlQ2hpbGRyZW4oKSkgeworICAgICAgICAgICAgY2hpbGQuY2xlYXJOZWVkc0xheW91dCgp
OworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICB1cGRhdGVCbG9j
a0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNoaWxkKTsKIAog
ICAgICAgICBpZiAoY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNTM3MjhhMzY5ZjgwLi40MDFmYjNk
M2RmNGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0y
NTc4LDYgKzI1NzgsMTYgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50KCkg
Y29uc3QKICAgICByZXR1cm4gc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRW
aXNpYmlsaXR5OjpIaWRkZW47CiB9CiAKK2Jvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29u
dGVudEZvckxheW91dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIHN0eWxlKCkuZWZmZWN0aXZlU2tp
cHNDb250ZW50KCkgJiYgIXZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNMYXlv
dXRGb3JjZWQoKTsKK30KKworYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnRGb3JM
YXlvdXQoKSBjb25zdAoreworICAgIHJldHVybiBzdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVu
dCgpICYmIHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQo
KTsKK30KKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVu
ZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0
aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggMDdlZTMz
ZmY4ZWMwLi45YTFiZDc0NmZiNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmgKQEAgLTgwMSw2ICs4MDEsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NraXBwZWRDb250
ZW50KCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFNraXBDb250ZW50KCkgY29uc3Q7CisgICAg
Ym9vbCBzaG91bGRTa2lwQ29udGVudEZvckxheW91dCgpIGNvbnN0OworICAgIGJvb2wgaXNTa2lw
cGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAgICAgLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVmlldy5jcHAKaW5kZXggNzRlYzFkZmQwMTg5Li43Mjk5MmI5NzFhYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmlldy5jcHAKQEAgLTIwMiw3ICsyMDIsOSBAQCB2b2lk
IFJlbmRlclZpZXc6OmxheW91dCgpCiAgICAgfQogCiAgICAgQVNTRVJUKCFmcmFtZVZpZXcoKS5s
YXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKSk7Ci0gICAgaWYgKCFuZWVkc0xheW91dCgpKQor
ICAgIGlmIChmcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKSkgewor
ICAgICAgICBzZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CisgICAgfSBlbHNlIGlm
ICghbmVlZHNMYXlvdXQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZW5zdXJlTGF5b3V0U3Rh
dGUoKS5zZXRWaWV3cG9ydFNpemUoZnJhbWVWaWV3KCkuc2l6ZSgpKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4IDJjZGQ0MzFhMmQ2Yy4u
ZGNiNzAxZjIwYmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUv
UmVuZGVyU3R5bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5jcHAKQEAgLTgwOCw2ICs4MDgsMTAgQEAgc3RhdGljIGJvb2wgcmFyZU5vbkluaGVy
aXRlZERhdGFDaGFuZ2VSZXF1aXJlc0xheW91dChjb25zdCBTdHlsZVJhcmVOb25Jbmhlcml0ZWQK
ICAgICAgICAgfHwgZmlyc3QuZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlu
bWVudDo6SW5saW5lU2l6ZSkgIT0gc2Vjb25kLmVmZmVjdGl2ZUNvbnRhaW5tZW50KCkuY29udGFp
bnMoQ29udGFpbm1lbnQ6OklubGluZVNpemUpKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAorICAg
IC8vIGNvbnRlbnQtdmlzaWJpbGl5OiBoaWRkZW4gZW5hYmxlZCBjb250YWluOnNpemUKKyAgICBp
ZiAoKHN0YXRpY19jYXN0PENvbnRlbnRWaXNpYmlsaXR5PihmaXJzdC5jb250ZW50VmlzaWJpbGl0
eSkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikgIT0gKHN0YXRpY19jYXN0PENvbnRlbnRW
aXNpYmlsaXR5PihzZWNvbmQuY29udGVudFZpc2liaWxpdHkpID09IENvbnRlbnRWaXNpYmlsaXR5
OjpIaWRkZW4pKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGlmIChmaXJzdC5zY3JvbGxQ
YWRkaW5nICE9IHNlY29uZC5zY3JvbGxQYWRkaW5nKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCBkNmQ5ZjljZDI1OGYuLmZlYmJlZmY5
OTgyNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY4LDcgKzY4LDcgQEAg
RmxvYXRSZWN0IFNWR0xvY2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHls
ZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXAKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7CiAgICAgaWYg
KHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKLSAgICAgICAgZWxlbWVu
dC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAg
ICAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMpOwogCiAgICAgLy8gRklYTUU6IEV2ZW50
dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAg
ICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
c3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBhY2QyZWVhODMwZDMuLjk1MDMzOGMxNjUyNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEz
ICs1NSwxMyBAQCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChj
b25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29u
dGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OkZvcmNlTGF5b3V0OjpZZXMp
OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJz
KCk7CiB9CiAKIGZsb2F0IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVu
Z3RoKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6WWVzKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5
KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KIApAQCAtMTA5LDcgKzEwOSw3IEBAIEV4Y2Vw
dGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVu
c2lnbmVkIGNoYXJudW0pCiAKIGludCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1B
dFBvc2l0aW9uKERPTVBvaW50SW5pdCYmIHBvaW50SW5pdCkKIHsKLSAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpGb3JjZUxheW91dDo6
WWVzKTsKICAgICBGbG9hdFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4o
cG9pbnRJbml0LngpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1
cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJh
bnNmb3JtUG9pbnQpOwogfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0CmluZGV4IDFlY2U3YTk3YzRiZi4uYmNm
Yzc4OWZhNDBhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTAzOC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRl
bnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIE1l
YXN1cmUgRm9yY2VkIExheW91dCBhc3NlcnRfZXF1YWxzOiBzcGFjZXIgd2hlbiB2aXNpYmxlIGV4
cGVjdGVkIDEwOCBidXQgZ290IDgKK1BBU1MgTWVhc3VyZSBGb3JjZWQgTGF5b3V0CiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNi1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5n
L2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDYtZXhwZWN0ZWQudHh0CmluZGV4IGZhZTkw
YzNmNDI1MS4uYTI5Nzk5ZjA3NzNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNp
emUvYXV0by0wMDYtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9h
dXRvLTAwNi1leHBlY3RlZC50eHQKQEAgLTEsMTggKzEsMTggQEAKIAotRkFJTCBCYXNpYyB1c2Fn
ZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAx
MDAgYnV0IGdvdCAxCitGQUlMIEJhc2ljIHVzYWdlIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3Qg
cmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQogRkFJ
TCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4gYmUgMCBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0
IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCi1GQUlM
IExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSBzZXQgdG8gMCBhZnRlciBsb3NpbmcgZGlzcGxh
eTpub25lIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVj
dGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgaXMgbG9naWNhbCBh
c3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAg
YnV0IGdvdCAxCi1GQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGJveCBkZXN0cnVj
dGlvbiBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3Rl
ZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGRpc3Bs
YXkgdHlwZSBjaGFuZ2VzIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdp
ZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMg
bGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xp
ZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVt
b3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBldmVuIGlmIHNpemUgZG9lc24ndCBjaGFuZ2UgYXNz
ZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1
dCBnb3QgMQotRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6
ZSBpbW1lZGlhdGVseSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0
aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExvc2luZyBjaXM6YXV0byBkdXJpbmcgZGlz
cGxheTpub25lIGRvZXNuJ3QgcmVtb3ZlIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVh
bHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEK
LUZBSUwgTGFjayBvZiBjaXM6YXV0byBkdXJpbmcgYm94IGNyZWF0aW9uIHJlbW92ZXMgbGFzdCBy
ZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lk
dGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4g
YmUgcmVtb3ZlZCBzeW5jaHJvbm91c2x5IGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAt
IGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgRGlzY29ubmVjdGVkIGVs
ZW1lbnQgY2FuIGJyaWVmbHkga2VlcCBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxz
OiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1G
QUlMIERpc2Nvbm5lY3RlZCBlbGVtZW50IGVuZHMgdXAgbG9zaW5nIGxhc3QgcmVtZW1iZXJlZCBz
aXplIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVk
IDEwMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJlIHNldCB0byAw
IGFmdGVyIGxvc2luZyBkaXNwbGF5Om5vbmUgYXNzZXJ0X2VxdWFsczogVXNpbmcgdGhlIG5ldyBs
YXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitG
QUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGlzIGxvZ2ljYWwgYXNzZXJ0X2VxdWFsczogVXNpbmcg
bGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAx
CitGQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGJveCBkZXN0cnVjdGlvbiBhc3Nl
cnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVj
dGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgc3Vydml2ZXMgZGlz
cGxheSB0eXBlIGNoYW5nZXMgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNp
emUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExvc2luZyBjaXM6
YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxh
c3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQor
UEFTUyBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBldmVuIGlm
IHNpemUgZG9lc24ndCBjaGFuZ2UKK0ZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFzdCBy
ZW1lbWJlcmVkIHNpemUgaW1tZWRpYXRlbHkgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1l
bWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExv
c2luZyBjaXM6YXV0byBkdXJpbmcgZGlzcGxheTpub25lIGRvZXNuJ3QgcmVtb3ZlIGxhc3QgcmVt
ZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0g
Y2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYWNrIG9mIGNpczphdXRv
IGR1cmluZyBib3ggY3JlYXRpb24gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRf
ZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVk
IDEwMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJlIHJlbW92ZWQg
c3luY2hyb25vdXNseSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAt
IGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgRGlzY29ubmVjdGVkIGVs
ZW1lbnQgY2FuIGJyaWVmbHkga2VlcCBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxz
OiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBi
dXQgZ290IDEKK0ZBSUwgRGlzY29ubmVjdGVkIGVsZW1lbnQgZW5kcyB1cCBsb3NpbmcgbGFzdCBy
ZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUg
LSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCiBQQVNTIERpc2Nvbm5lY3RlZCBl
bGVtZW50IGVuZHMgdXAgbG9zaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIGV2ZW4gaWYgc2l6ZSB3
YXMgMHgwCiBGQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGJlY29taW5nIGlubGlu
ZSBhc3NlcnRfZXF1YWxzOiBTdGlsbCB1c2luZyBwcmV2aW91cyBsYXN0IHJlbWVtYmVyZWQgc2l6
ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKIEZBSUwgTGFzdCByZW1lbWJl
cmVkIHNpemUgY2FuIGJlIHNldCB0byAweDAgYWZ0ZXIgbG9zaW5nIGRpc3BsYXk6aW5saW5lIGFz
c2VydF9lcXVhbHM6IExhc3QgcmVtZW1iZXJlZCBzaXplIGlzIG5vdyAweDAgLSBjbGllbnRXaWR0
aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1z
aXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRv
LTAwOC1leHBlY3RlZC50eHQKaW5kZXggM2IxMzkyN2VmZTNmLi40ZGQ0ODAyNDdmNTIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOC1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNp
emluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4dApAQCAtMSw1
ICsxLDUgQEAKIAotRkFJTCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgYXNzZXJ0X2VxdWFsczogTm8g
bGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCA0MCBidXQgZ290IDEw
MAotUEFTUyBFYXJseSBSZXNpemVPYnNlcnZlcgotUEFTUyBMYXRlIFJlc2l6ZU9ic2VydmVyCitQ
QVNTIHJlcXVlc3RBbmltYXRpb25GcmFtZQorRkFJTCBFYXJseSBSZXNpemVPYnNlcnZlciBhc3Nl
cnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVj
dGVkIDEwMCBidXQgZ290IDQwCitGQUlMIExhdGUgUmVzaXplT2JzZXJ2ZXIgYXNzZXJ0X2VxdWFs
czogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAg
YnV0IGdvdCA0MAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463718</attachid>
            <date>2022-11-24 13:57:44 -0800</date>
            <delta_ts>2022-11-25 01:58:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221124215743.patch</filename>
            <type>text/plain</type>
            <size>25077</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBiNGVjODQ5NjY4OGM3MTM3N2YwZWE1MjY1ZjI3MmFhYjVkYjliYTJkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6cGVyZm9ybUxheW91dCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc0xheW91dEZvcmNl
ZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzZXRMYXlvdXRGb3Jj
ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgooV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJs
ZTo6Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHA6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0t
LQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMjYgKysr
KysrKysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAg
ICAgICAgIHwgIDkgKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAg
ICAgICAgICAgIHwgIDYgKystLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgICAgICB8IDEyICsrKystLS0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAgICAgICAgIHwgIDQgKy0tCiAuLi4vV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuY3BwICAgfCAgMyArKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5
b3V0Q29udGV4dC5oICB8ICAzICsrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcCAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwICB8ICA1ICsrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwICAgICB8IDEwICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaCAgICAgICB8ICAyICsrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVmll
dy5jcHAgICAgICAgfCAgNCArKy0KIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJT
dHlsZS5jcHAgICB8ICA0ICsrKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAg
ICAgICAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuY3BwICB8ICA2ICsrLS0tCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50
eHQgICAgICAgfCAgMiArLQogLi4uL2F1dG8tMDA2LWV4cGVjdGVkLnR4dCAgICAgICAgICAgICAg
ICAgICAgIHwgMjYgKysrKysrKysrLS0tLS0tLS0tLQogLi4uL2F1dG8tMDA4LWV4cGVjdGVkLnR4
dCAgICAgICAgICAgICAgICAgICAgIHwgIDYgKystLS0KIDE4IGZpbGVzIGNoYW5nZWQsIDkwIGlu
c2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4
IDEyYWYxNzFhMzcyNS4uNWI5OWIwZGM3MjFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAg
LTIyNTgsNyArMjI1OCwxMiBAQCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKK0Rv
Y3VtZW50OjpGb3JjZUxheW91dCBEb2N1bWVudDo6ZGV0ZXJtaW5lRm9yY2VMYXlvdXQoY29uc3Qg
RWxlbWVudCYgY29udGV4dCkKK3sKKyAgICByZXR1cm4gY29udGV4dC5yZW5kZXJlcigpICYmIGNv
bnRleHQucmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSA/IEZvcmNl
TGF5b3V0OjpZZXMgOiBGb3JjZUxheW91dDo6Tm87Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0
ZUxheW91dChGb3JjZUxheW91dCBmb3JjZUxheW91dCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCkBAIC0yMjgxLDEzICsyMjg2LDI2IEBAIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxh
eW91dCgpCiAKICAgICBpZiAoIWZyYW1lVmlldyB8fCAhcmVuZGVyVmlldygpKQogICAgICAgICBy
ZXR1cm47Ci0gICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRp
bmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpKQorICAgIHN0ZDo6b3B0aW9uYWw8
Ym9vbD4gb2xkTGF5b3V0Rm9yY2VkOworICAgIGlmIChmb3JjZUxheW91dCA9PSBGb3JjZUxheW91
dDo6WWVzICYmIHZpZXcoKSkgeworICAgICAgICBvbGRMYXlvdXRGb3JjZWQgPSB2aWV3KCktPmxh
eW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOworICAgICAgICB2aWV3KCktPmxheW91dENv
bnRleHQoKS5zZXRMYXlvdXRGb3JjZWQodHJ1ZSk7CisgICAgfQorICAgIGlmICghZnJhbWVWaWV3
LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkgJiYgIXJlbmRlclZpZXcoKS0+bmVl
ZHNMYXlvdXQoKSAmJiBmb3JjZUxheW91dCAhPSBGb3JjZUxheW91dDo6WWVzKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5sYXlvdXQoKTsKKworICAg
IGlmIChvbGRMYXlvdXRGb3JjZWQpCisgICAgICAgIHZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNl
dExheW91dEZvcmNlZCgqb2xkTGF5b3V0Rm9yY2VkKTsKIH0KIAotdm9pZCBEb2N1bWVudDo6dXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0
VGFza3MgcnVuUG9zdExheW91dFRhc2tzKQordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQoreworICAgIHVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhSdW5Qb3N0TGF5b3V0VGFza3M6OkFz
eW5jaHJvbm91c2x5LCBmb3JjZUxheW91dCk7Cit9CisKK3ZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhEb2N1bWVudDo6UnVuUG9zdExheW91dFRhc2tz
IHJ1blBvc3RMYXlvdXRUYXNrcywgRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCiB7CiAgICAgYm9v
bCBvbGRJZ25vcmUgPSBtX2lnbm9yZVBlbmRpbmdTdHlsZXNoZWV0czsKIApAQCAtMjI5OCw3ICsy
MzE2LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MKICAgICAgICAgICAgIHNjaGVkdWxlRnVs
bFN0eWxlUmVidWlsZCgpOwogICAgIH0KIAotICAgIHVwZGF0ZUxheW91dCgpOworICAgIHVwZGF0
ZUxheW91dChmb3JjZUxheW91dCk7CiAKICAgICBpZiAocnVuUG9zdExheW91dFRhc2tzID09IFJ1
blBvc3RMYXlvdXRUYXNrczo6U3luY2hyb25vdXNseSAmJiB2aWV3KCkpCiAgICAgICAgIHZpZXco
KS0+Zmx1c2hBbnlQZW5kaW5nUG9zdExheW91dFRhc2tzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9kb20vRG9jdW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmlu
ZGV4IDNjMmI0YjlhMGMyMC4uYTI5MWY5NmY4YjdmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAt
NjM1LDEyICs2MzUsMTUgQEAgcHVibGljOgogICAgIGJvb2wgbmVlZHNTdHlsZVJlY2FsYygpIGNv
bnN0OwogICAgIHVuc2lnbmVkIGxhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nKCkgY29uc3Qg
eyByZXR1cm4gbV9sYXN0U3R5bGVVcGRhdGVTaXplRm9yVGVzdGluZzsgfQogCi0gICAgV0VCQ09S
RV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXQoKTsKLSAgICAKKyAgICBlbnVtIGNsYXNzIEZvcmNl
TGF5b3V0IHsgTm8sIFllcyB9OworICAgIEZvcmNlTGF5b3V0IGRldGVybWluZUZvcmNlTGF5b3V0
KGNvbnN0IEVsZW1lbnQmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dChG
b3JjZUxheW91dCA9IEZvcmNlTGF5b3V0OjpObyk7CisKICAgICAvLyB1cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKSBmb3JjZXMgbGF5b3V0IGV2ZW4gaWYgd2UgYXJlIHdhaXRp
bmcgZm9yIHBlbmRpbmcgc3R5bGVzaGVldCBsb2FkcywKICAgICAvLyBzbyBjYWxsaW5nIHRoaXMg
bWF5IGNhdXNlIGEgZmxhc2ggb2YgdW5zdHlsZWQgY29udGVudCAoRk9VQykuCiAgICAgZW51bSBj
bGFzcyBSdW5Qb3N0TGF5b3V0VGFza3MgeyBBc3luY2hyb25vdXNseSwgU3luY2hyb25vdXNseSB9
OwotICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrcyA9IFJ1blBvc3RMYXlvdXRUYXNrczo6QXN5bmNocm9u
b3VzbHkpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrcyA9IFJ1blBvc3RMYXlvdXRUYXNrczo6QXN5
bmNocm9ub3VzbHksIEZvcmNlTGF5b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKyAgICB2b2lkIHVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhGb3JjZUxheW91dCk7CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+IHN0eWxlRm9yRWxlbWVudElnbm9yaW5nUGVuZGlu
Z1N0eWxlc2hlZXRzKEVsZW1lbnQmLCBjb25zdCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUsIFBz
ZXVkb0lkID0gUHNldWRvSWQ6Ok5vbmUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9k
b20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMmE1
YzNiNzMwOWRhLi40NGRkZmMyZjNlYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9F
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEzMTAs
NyArMTMxMCw3IEBAIGludCBFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncygpCiAKIGludCBF
bGVtZW50OjpvZmZzZXRUb3AoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykp
OwogICAgIGlmIChSZW5kZXJCb3hNb2RlbE9iamVjdCogcmVuZGVyZXIgPSByZW5kZXJCb3hNb2Rl
bE9iamVjdCgpKQogICAgICAgICByZXR1cm4gYWRqdXN0T2Zmc2V0Rm9yWm9vbUFuZFN1YnBpeGVs
TGF5b3V0KCpyZW5kZXJlciwgcmVuZGVyZXItPm9mZnNldFRvcCgpKTsKICAgICByZXR1cm4gMDsK
QEAgLTE0NzAsNyArMTQ3MCw3IEBAIGludCBFbGVtZW50OjpzY3JvbGxMZWZ0KCkKIAogaW50IEVs
ZW1lbnQ6OnNjcm9sbFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7
CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewogICAg
ICAgICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudEZyYW1lV2l0aE5vbk51bGxWaWV3KCkpCkBA
IC0xODE5LDcgKzE4MTksNyBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3Qq
LCBGbG9hdFJlY3Q+PiBFbGVtZW50Ojpib3VuZGluZ0Fic29sdXRlUmVjdAogCiBGbG9hdFJlY3Qg
RWxlbWVudDo6Ym91bmRpbmdDbGllbnRSZWN0KCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlv
dXQoKnRoaXMpKTsKICAgICBhdXRvIHBhaXIgPSBib3VuZGluZ0Fic29sdXRlUmVjdFdpdGhvdXRM
YXlvdXQoKTsKICAgICBpZiAoIXBhaXIpCiAgICAgICAgIHJldHVybiB7IH07CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCA4ZTM5NDAxOTZhOTkuLjVhNzBlYWVj
NTRiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC01MTUs
OSArNTE1LDkgQEAgdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMpCiAgICAgfQogCiAgICAgaWYgKGlnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cykKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwogICAgIGVs
c2UKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXQoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwog
CiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBpZiAoIWJveCkKQEAgLTU0
MCw5ICs1NDAsOSBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50OjpoZWlnaHQoYm9vbCBpZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMpCiAgICAgfQogCiAgICAgaWYgKGlnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cykKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKKyAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwogICAg
IGVsc2UKLSAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICAgICAgZG9jdW1l
bnQoKS51cGRhdGVMYXlvdXQoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykp
OwogCiAgICAgUmVuZGVyQm94KiBib3ggPSByZW5kZXJCb3goKTsKICAgICBpZiAoIWJveCkKQEAg
LTY3Miw3ICs2NzIsNyBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVk
IHZhbHVlKQogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiB7Ci0gICAgZG9jdW1l
bnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVy
bWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRl
cmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKICAgICAgICAgcmV0dXJuIDA7CkBAIC02ODMsNyAr
NjgzLDcgQEAgaW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogCiBpbnQgSFRNTEltYWdl
RWxlbWVudDo6eSgpIGNvbnN0CiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7
CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJl
cikKICAgICAgICAgcmV0dXJuIDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CmluZGV4IDk2MTUzNDExYzcwMy4uNmE5Nzg5YjgzZWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0lt
YWdlSW5wdXRUeXBlLmNwcApAQCAtMTczLDcgKzE3Myw3IEBAIHVuc2lnbmVkIEltYWdlSW5wdXRU
eXBlOjpoZWlnaHQoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1M
SW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCi0gICAgZWxlbWVudC0+
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0
ZUxheW91dChlbGVtZW50LT5kb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KGVsZW1lbnQu
Z2V0KCkpKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkp
CiAgICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94
PigqcmVuZGVyZXIpLmNvbnRlbnRIZWlnaHQoKSwgKnJlbmRlcmVyKTsKQEAgLTE5NSw3ICsxOTUs
NyBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChl
bGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVt
ZW50KCkpOwogCi0gICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKKyAgICBl
bGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dChlbGVtZW50LT5kb2N1bWVudCgpLmRldGVy
bWluZUZvcmNlTGF5b3V0KGVsZW1lbnQuZ2V0KCkpKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJl
ciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0
ZVpvb20oZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRXaWR0aCgpLCAqcmVu
ZGVyZXIpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5j
cHAKaW5kZXggNGFlYmJkYmRjZjUyLi4xNGY4ODNiZTYwYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmNwcApAQCAtMjQ5LDcgKzI0OSw4IEBAIHZv
aWQgRnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6cGVyZm9ybUxheW91dCgpCiAjZW5kaWYKICAgICAg
ICAgbGF5b3V0Um9vdC0+bGF5b3V0KCk7CiAgICAgICAgIGxheW91dFVzaW5nRm9ybWF0dGluZ0Nv
bnRleHQoKTsKLSAgICAgICAgKyttX2xheW91dENvdW50OworICAgICAgICBpZiAoIW1fbGF5b3V0
Rm9yY2VkKQorICAgICAgICAgICAgKyttX2xheW91dENvdW50OwogI2lmIEVOQUJMRShURVhUX0FV
VE9TSVpJTkcpCiAgICAgICAgIGFwcGx5VGV4dFNpemluZ0lmTmVlZGVkKCpsYXlvdXRSb290Lmdl
dCgpKTsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdM
YXlvdXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuaAppbmRleCBiOWYxZTQzYmQ0NTQuLjY5MTIxMWRkOWUzZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGlj
OgogICAgIGJvb2wgaXNJbkxheW91dCgpIGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgIT0g
TGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQ7IH0KICAgICBib29sIGlzSW5SZW5kZXJUcmVlTGF5
b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSA9PSBMYXlvdXRQaGFzZTo6SW5SZW5k
ZXJUcmVlTGF5b3V0OyB9CiAgICAgYm9vbCBpblBhaW50YWJsZVN0YXRlKCkgY29uc3QgeyByZXR1
cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5SZW5kZXJUcmVlTGF5b3V0ICYmIGxh
eW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluVmlld1NpemVBZGp1c3QgJiYgKGxheW91dFBo
YXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluUG9zdExheW91dCB8fCBpbkFzeW5jaHJvbm91c1Rhc2tz
KCkpOyB9CisgICAgYm9vbCBpc0xheW91dEZvcmNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0
Rm9yY2VkOyB9CisgICAgdm9pZCBzZXRMYXlvdXRGb3JjZWQoYm9vbCBmKSB7IG1fbGF5b3V0Rm9y
Y2VkID0gZjsgfQogCiAgICAgdW5zaWduZWQgbGF5b3V0Q291bnQoKSBjb25zdCB7IHJldHVybiBt
X2xheW91dENvdW50OyB9CiAKQEAgLTE3MSw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wg
bV9uZWVkc0Z1bGxSZXBhaW50IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pbkFzeW5jaHJvbm91c1Rh
c2tzIHsgZmFsc2UgfTsKICAgICBib29sIG1fc2V0TmVlZHNMYXlvdXRXYXNEZWZlcnJlZCB7IGZh
bHNlIH07CisgICAgYm9vbCBtX2xheW91dEZvcmNlZCB7IGZhbHNlIH07CiAgICAgTGF5b3V0UGhh
c2UgbV9sYXlvdXRQaGFzZSB7IExheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0IH07CiAgICAgZW51
bSBjbGFzcyBMYXlvdXROZXN0ZWRTdGF0ZSA6IHVpbnQ4X3QgIHsgTm90SW5MYXlvdXQsIE5vdE5l
c3RlZCwgTmVzdGVkIH07CiAgICAgTGF5b3V0TmVzdGVkU3RhdGUgbV9sYXlvdXROZXN0ZWRTdGF0
ZSB7IExheW91dE5lc3RlZFN0YXRlOjpOb3RJbkxheW91dCB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9jay5jcHAKaW5kZXggZDQwMTFlYzUyNDMzLi4xZjhkOGQzYTljZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcApAQCAtODM3LDcgKzgzNyw3
IEBAIHZvaWQgUmVuZGVyQmxvY2s6OnVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZvcmVMYXlv
dXQoYm9vbCByZWxheW91dENoaWxkcmVuLCBSCiAKICAgICAvLyBGSVhNRTogVGVjaG5pY2FsbHkg
cGVyY2VudGFnZSBoZWlnaHQgb2JqZWN0cyBvbmx5IG5lZWQgYSByZWxheW91dCBpZiB0aGVpciBw
ZXJjZW50YWdlIGlzbid0IGdvaW5nIHRvIGJlIHR1cm5lZCBpbnRvCiAgICAgLy8gYW4gYXV0byB2
YWx1ZS4gQWRkIGEgbWV0aG9kIHRvIGRldGVybWluZSB0aGlzLCBzbyB0aGF0IHdlIGNhbiBhdm9p
ZCB0aGUgcmVsYXlvdXQuCi0gICAgaWYgKHJlbGF5b3V0Q2hpbGRyZW4gfHwgKGNoaWxkLmhhc1Jl
bGF0aXZlTG9naWNhbEhlaWdodCgpICYmICFpc1JlbmRlclZpZXcoKSkpCisgICAgaWYgKHJlbGF5
b3V0Q2hpbGRyZW4gfHwgLypjaGlsZC5pc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgfHwqLyAo
Y2hpbGQuaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgJiYgIWlzUmVuZGVyVmlldygpKSkKICAg
ICAgICAgY2hpbGQuc2V0Q2hpbGROZWVkc0xheW91dChNYXJrT25seVRoaXMpOwogCiAgICAgLy8g
SWYgcmVsYXlvdXRDaGlsZHJlbiBpcyBzZXQgYW5kIHRoZSBjaGlsZCBoYXMgcGVyY2VudGFnZSBw
YWRkaW5nIG9yIGFuIGVtYmVkZGVkIGNvbnRlbnQgYm94LCB3ZSBhbHNvIG5lZWQgdG8gaW52YWxp
ZGF0ZSB0aGUgY2hpbGRzIHByZWYgd2lkdGhzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAzZjIwY2RiNjA2M2QuLjk4NDNlOThjMjJhYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTY3MCw2
ICs2NzAsMTEgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrQ2hpbGRyZW4oYm9v
bCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiBtYXgKICAgICAgICAgaWYgKGNoaWxkLmlz
RXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkpCiAgICAgICAgICAgICBjb250aW51ZTsgLy8gU2tp
cCB0aGlzIGNoaWxkLCBzaW5jZSBpdCB3aWxsIGJlIHBvc2l0aW9uZWQgYnkgdGhlIHNwZWNpYWxp
emVkIHN1YmNsYXNzIChmaWVsZHNldHMgYW5kIHJ1YnkgcnVucykuCiAKKyAgICAgICAgaWYgKHNo
b3VsZFNraXBDb250ZW50Rm9yTGF5b3V0KCkgJiYgIWNoaWxkLmNhbkhhdmVDaGlsZHJlbigpKSB7
CisgICAgICAgICAgICBjaGlsZC5jbGVhck5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZv
cmVMYXlvdXQocmVsYXlvdXRDaGlsZHJlbiwgY2hpbGQpOwogCiAgICAgICAgIGlmIChjaGlsZC5p
c091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAppbmRleCA1MzcyOGEzNjlmODAuLjQwMWZiM2QzZGY0ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI1NzgsNiArMjU3OCwxNiBAQCBi
b29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBz
dHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsK
IH0KIAorYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250ZW50Rm9yTGF5b3V0KCkgY29u
c3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAmJiAhdmll
dygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOworfQorCiti
b29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIHN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkgJiYgdmlldygpLmZyYW1l
VmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOworfQorCiBUZXh0U3RyZWFt
JiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVy
KQogewogICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwN2VlMzNmZjhlYzAuLjlhMWJkNzQ2ZmI1
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtODAxLDYgKzgw
MSw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAogICAg
IGJvb2wgc2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKKyAgICBib29sIHNob3VsZFNraXBDb250
ZW50Rm9yTGF5b3V0KCkgY29uc3Q7CisgICAgYm9vbCBpc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0
KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJWaWV3LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJWaWV3LmNwcAppbmRl
eCA3NGVjMWRmZDAxODkuLjcyOTkyYjk3MWFhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJWaWV3LmNwcApAQCAtMjAyLDcgKzIwMiw5IEBAIHZvaWQgUmVuZGVyVmlldzo6bGF5b3V0
KCkKICAgICB9CiAKICAgICBBU1NFUlQoIWZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5sYXlv
dXRTdGF0ZSgpKTsKLSAgICBpZiAoIW5lZWRzTGF5b3V0KCkpCisgICAgaWYgKGZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKSB7CisgICAgICAgIHNldENoaWxkTmVl
ZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKKyAgICB9IGVsc2UgaWYgKCFuZWVkc0xheW91dCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBlbnN1cmVMYXlvdXRTdGF0ZSgpLnNldFZpZXdwb3J0U2l6
ZShmcmFtZVZpZXcoKS5zaXplKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHls
ZS9SZW5kZXJTdHlsZS5jcHAKaW5kZXggMmNkZDQzMWEyZDZjLi5kY2I3MDFmMjBiZjQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODA4
LDYgKzgwOCwxMCBAQCBzdGF0aWMgYm9vbCByYXJlTm9uSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVp
cmVzTGF5b3V0KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICAgICB8fCBmaXJzdC5l
ZmZlY3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpJbmxpbmVTaXplKSAh
PSBzZWNvbmQuZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6SW5s
aW5lU2l6ZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gY29udGVudC12aXNpYmls
aXk6IGhpZGRlbiBlbmFibGVkIGNvbnRhaW46c2l6ZQorICAgIGlmICgoc3RhdGljX2Nhc3Q8Q29u
dGVudFZpc2liaWxpdHk+KGZpcnN0LmNvbnRlbnRWaXNpYmlsaXR5KSA9PSBDb250ZW50VmlzaWJp
bGl0eTo6SGlkZGVuKSAhPSAoc3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KHNlY29uZC5j
b250ZW50VmlzaWJpbGl0eSkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikpCisgICAgICAg
IHJldHVybiB0cnVlOworCiAgICAgaWYgKGZpcnN0LnNjcm9sbFBhZGRpbmcgIT0gc2Vjb25kLnNj
cm9sbFBhZGRpbmcpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2Nh
dGFibGUuY3BwCmluZGV4IGQ2ZDlmOWNkMjU4Zi4uYjI2MDgzM2RjZWY5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTG9jYXRhYmxlLmNwcApAQCAtNjgsNyArNjgsNyBAQCBGbG9hdFJlY3QgU1ZHTG9jYXRh
YmxlOjpnZXRCQm94KFNWR0VsZW1lbnQqIGVsZW1lbnQsIFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5
bGVVcAogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVn
eSA9PSBBbGxvd1N0eWxlVXBkYXRlKQotICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBlbGVtZW50LT5kb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhlbGVtZW50LT5kb2N1
bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCplbGVtZW50KSk7CiAKICAgICAvLyBGSVhNRTog
RXZlbnR1YWxseSB3ZSBzaG91bGQgc3VwcG9ydCBnZXRCQm94IGZvciBkZXRhY2hlZCBlbGVtZW50
cy4KICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IGFjZDJlZWE4MzBkMy4uMmQwMGY5MDc1Mzhj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAt
NTUsMTMgKzU1LDEzIEBAIFNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVt
ZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiAKIHVuc2lnbmVkIFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycygpCiB7Ci0gICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZv
cmNlTGF5b3V0KCp0aGlzKSk7CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5u
dW1iZXJPZkNoYXJhY3RlcnMoKTsKIH0KIAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpn
ZXRDb21wdXRlZFRleHRMZW5ndGgoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhp
cykpOwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkudGV4dExlbmd0aCgpOwog
fQogCkBAIC0xMDksNyArMTA5LDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50
RWxlbWVudDo6Z2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQgY2hhcm51bSkKIAogaW50IFNWR1Rl
eHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oRE9NUG9pbnRJbml0JiYgcG9p
bnRJbml0KQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwogICAgIEZsb2F0
UG9pbnQgdHJhbnNmb3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueCksIHN0
YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnko
cmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Qb2ludCk7CiB9
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAz
OC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5
LTAzOC1leHBlY3RlZC50eHQKaW5kZXggMWVjZTdhOTdjNGJmLi5iY2ZjNzg5ZmE0MGEgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVj
dGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAz
OC1leHBlY3RlZC50eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgTWVhc3VyZSBGb3JjZWQgTGF5
b3V0IGFzc2VydF9lcXVhbHM6IHNwYWNlciB3aGVuIHZpc2libGUgZXhwZWN0ZWQgMTA4IGJ1dCBn
b3QgOAorUEFTUyBNZWFzdXJlIEZvcmNlZCBMYXlvdXQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2F1dG8tMDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9hdXRvLTAwNi1leHBlY3RlZC50eHQKaW5kZXggZmFlOTBjM2Y0MjUxLi5hMjk3OTlm
MDc3M2UgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNi1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA2LWV4cGVjdGVk
LnR4dApAQCAtMSwxOCArMSwxOCBAQAogCi1GQUlMIEJhc2ljIHVzYWdlIGFzc2VydF9lcXVhbHM6
IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZB
SUwgQmFzaWMgdXNhZ2UgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUg
LSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCiBGQUlMIExhc3QgcmVtZW1iZXJl
ZCBzaXplIGNhbiBiZSAwIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXpl
IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMCBidXQgZ290IDEKLUZBSUwgTGFzdCByZW1lbWJlcmVk
IHNpemUgY2FuIGJlIHNldCB0byAwIGFmdGVyIGxvc2luZyBkaXNwbGF5Om5vbmUgYXNzZXJ0X2Vx
dWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3Qg
MQotRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBpcyBsb2dpY2FsIGFzc2VydF9lcXVhbHM6IFNp
emluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwg
TGFzdCByZW1lbWJlcmVkIHNpemUgc3Vydml2ZXMgYm94IGRlc3RydWN0aW9uIGFzc2VydF9lcXVh
bHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEK
LUZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgc3Vydml2ZXMgZGlzcGxheSB0eXBlIGNoYW5nZXMg
YXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAw
IGJ1dCBnb3QgMQotRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQg
c2l6ZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3Rl
ZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1i
ZXJlZCBzaXplIGV2ZW4gaWYgc2l6ZSBkb2Vzbid0IGNoYW5nZSBhc3NlcnRfZXF1YWxzOiBTaXpp
bmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExv
c2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGltbWVkaWF0ZWx5IGFz
c2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBi
dXQgZ290IDEKLUZBSUwgTG9zaW5nIGNpczphdXRvIGR1cmluZyBkaXNwbGF5Om5vbmUgZG9lc24n
dCByZW1vdmUgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1h
bGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYWNrIG9mIGNp
czphdXRvIGR1cmluZyBib3ggY3JlYXRpb24gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBh
c3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAg
YnV0IGdvdCAxCi1GQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSByZW1vdmVkIHN5bmNo
cm9ub3VzbHkgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhw
ZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBEaXNjb25uZWN0ZWQgZWxlbWVudCBjYW4gYnJpZWZs
eSBrZWVwIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxs
eSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgRGlzY29ubmVjdGVk
IGVsZW1lbnQgZW5kcyB1cCBsb3NpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFs
czogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQor
RkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4gYmUgc2V0IHRvIDAgYWZ0ZXIgbG9zaW5nIGRp
c3BsYXk6bm9uZSBhc3NlcnRfZXF1YWxzOiBVc2luZyB0aGUgbmV3IGxhc3QgcmVtZW1iZXJlZCBz
aXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1lbWJl
cmVkIHNpemUgaXMgbG9naWNhbCBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQg
c2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1l
bWJlcmVkIHNpemUgc3Vydml2ZXMgYm94IGRlc3RydWN0aW9uIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3Qg
MQorRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBzdXJ2aXZlcyBkaXNwbGF5IHR5cGUgY2hhbmdl
cyBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRo
IGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFz
dCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNp
emUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitQQVNTIExvc2luZyBjaXM6
YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGV2ZW4gaWYgc2l6ZSBkb2Vzbid0IGNo
YW5nZQorRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBp
bW1lZGlhdGVseSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNs
aWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgTG9zaW5nIGNpczphdXRvIGR1
cmluZyBkaXNwbGF5Om5vbmUgZG9lc24ndCByZW1vdmUgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNz
ZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBl
Y3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExhY2sgb2YgY2lzOmF1dG8gZHVyaW5nIGJveCBjcmVh
dGlvbiByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxh
c3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQor
RkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4gYmUgcmVtb3ZlZCBzeW5jaHJvbm91c2x5IGFz
c2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhw
ZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBEaXNjb25uZWN0ZWQgZWxlbWVudCBjYW4gYnJpZWZs
eSBrZWVwIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVt
ZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBE
aXNjb25uZWN0ZWQgZWxlbWVudCBlbmRzIHVwIGxvc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBh
c3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4
cGVjdGVkIDEwMCBidXQgZ290IDEKIFBBU1MgRGlzY29ubmVjdGVkIGVsZW1lbnQgZW5kcyB1cCBs
b3NpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgZXZlbiBpZiBzaXplIHdhcyAweDAKIEZBSUwgTGFz
dCByZW1lbWJlcmVkIHNpemUgc3Vydml2ZXMgYmVjb21pbmcgaW5saW5lIGFzc2VydF9lcXVhbHM6
IFN0aWxsIHVzaW5nIHByZXZpb3VzIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGgg
ZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQogRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4gYmUg
c2V0IHRvIDB4MCBhZnRlciBsb3NpbmcgZGlzcGxheTppbmxpbmUgYXNzZXJ0X2VxdWFsczogTGFz
dCByZW1lbWJlcmVkIHNpemUgaXMgbm93IDB4MCAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDAgYnV0
IGdvdCAxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDgtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4
dAppbmRleCAzYjEzOTI3ZWZlM2YuLjRkZDQ4MDI0N2Y1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWlu
LWludHJpbnNpYy1zaXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50
cmluc2ljLXNpemUvYXV0by0wMDgtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlM
IHJlcXVlc3RBbmltYXRpb25GcmFtZSBhc3NlcnRfZXF1YWxzOiBObyBsYXN0IHJlbWVtYmVyZWQg
c2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDQwIGJ1dCBnb3QgMTAwCi1QQVNTIEVhcmx5IFJl
c2l6ZU9ic2VydmVyCi1QQVNTIExhdGUgUmVzaXplT2JzZXJ2ZXIKK1BBU1MgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lCitGQUlMIEVhcmx5IFJlc2l6ZU9ic2VydmVyIGFzc2VydF9lcXVhbHM6IFVzaW5n
IGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3Qg
NDAKK0ZBSUwgTGF0ZSBSZXNpemVPYnNlcnZlciBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJl
bWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDQwCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463723</attachid>
            <date>2022-11-25 01:58:40 -0800</date>
            <delta_ts>2022-11-25 03:36:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221125095839.patch</filename>
            <type>text/plain</type>
            <size>23811</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA4OGJlZWZkNjc2ODhlYTQ4ZjA4ZTNkZDE0MDg1YWRmMzA5ZDE4MDFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuY3BwOgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4
dDo6cGVyZm9ybUxheW91dCk6CiogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRD
b250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0Ojppc0xheW91dEZvcmNl
ZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRDb250ZXh0OjpzZXRMYXlvdXRGb3Jj
ZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2Vi
Q29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9jayk6CiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclZpZXcuY3BwOgooV2ViQ29yZTo6UmVuZGVyVmlldzo6bGF5b3V0KToKKiBT
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJs
ZTo6Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5j
cHA6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgoo
V2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0t
LQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMjYgKysr
KysrKysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAg
ICAgICAgIHwgIDkgKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAg
ICAgICAgICAgIHwgIDYgKystLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAgICAgICB8IDEyICsrKystLS0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAgICAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xh
eW91dENvbnRleHQuaCAgfCAgMyArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9jay5jcHAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcCAgfCAgNSArKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2Jq
ZWN0LmNwcCAgICAgfCAxMCArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmggICAgICAgfCAgMiArKwogLi4uL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmNwcCAgIHwgIDQgKysrCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNw
cCAgICAgICAgICAgfCAgMiArLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAgIHwgIDYgKystLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVk
LnR4dCAgICAgICB8ICAyICstCiAuLi4vYXV0by0wMDYtZXhwZWN0ZWQudHh0ICAgICAgICAgICAg
ICAgICAgICAgfCAyNiArKysrKysrKystLS0tLS0tLS0tCiAuLi4vYXV0by0wMDgtZXhwZWN0ZWQu
dHh0ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKy0tLQogMTYgZmlsZXMgY2hhbmdlZCwgODUg
aW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5k
ZXggMTJhZjE3MWEzNzI1Li41Yjk5YjBkYzcyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApA
QCAtMjI1OCw3ICsyMjU4LDEyIEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQo
KQogICAgIHJldHVybiB0cnVlOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQor
RG9jdW1lbnQ6OkZvcmNlTGF5b3V0IERvY3VtZW50OjpkZXRlcm1pbmVGb3JjZUxheW91dChjb25z
dCBFbGVtZW50JiBjb250ZXh0KQoreworICAgIHJldHVybiBjb250ZXh0LnJlbmRlcmVyKCkgJiYg
Y29udGV4dC5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpID8gRm9y
Y2VMYXlvdXQ6OlllcyA6IEZvcmNlTGF5b3V0OjpObzsKK30KKwordm9pZCBEb2N1bWVudDo6dXBk
YXRlTGF5b3V0KEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogewogICAgIEFTU0VSVChpc01haW5U
aHJlYWQoKSk7CiAKQEAgLTIyODEsMTMgKzIyODYsMjYgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRl
TGF5b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVu
ZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgc3RkOjpvcHRpb25h
bDxib29sPiBvbGRMYXlvdXRGb3JjZWQ7CisgICAgaWYgKGZvcmNlTGF5b3V0ID09IEZvcmNlTGF5
b3V0OjpZZXMgJiYgdmlldygpKSB7CisgICAgICAgIG9sZExheW91dEZvcmNlZCA9IHZpZXcoKS0+
bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7CisgICAgICAgIHZpZXcoKS0+bGF5b3V0
Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVlKTsKKyAgICB9CisgICAgaWYgKCFmcmFtZVZp
ZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5u
ZWVkc0xheW91dCgpICYmIGZvcmNlTGF5b3V0ICE9IEZvcmNlTGF5b3V0OjpZZXMpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmxheW91dCgpOworCisg
ICAgaWYgKG9sZExheW91dEZvcmNlZCkKKyAgICAgICAgdmlldygpLT5sYXlvdXRDb250ZXh0KCku
c2V0TGF5b3V0Rm9yY2VkKCpvbGRMYXlvdXRGb3JjZWQpOwogfQogCi12b2lkIERvY3VtZW50Ojp1
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OlJ1blBvc3RMYXlv
dXRUYXNrcyBydW5Qb3N0TGF5b3V0VGFza3MpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCit7CisgICAg
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrczo6
QXN5bmNocm9ub3VzbHksIGZvcmNlTGF5b3V0KTsKK30KKwordm9pZCBEb2N1bWVudDo6dXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFz
a3MgcnVuUG9zdExheW91dFRhc2tzLCBGb3JjZUxheW91dCBmb3JjZUxheW91dCkKIHsKICAgICBi
b29sIG9sZElnbm9yZSA9IG1faWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzOwogCkBAIC0yMjk4LDcg
KzIzMTYsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoRG9jdW1lbnQ6OlJ1blBvc3RMYXlvdXRUYXNrcwogICAgICAgICAgICAgc2NoZWR1bGVG
dWxsU3R5bGVSZWJ1aWxkKCk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0KCk7CisgICAgdXBk
YXRlTGF5b3V0KGZvcmNlTGF5b3V0KTsKIAogICAgIGlmIChydW5Qb3N0TGF5b3V0VGFza3MgPT0g
UnVuUG9zdExheW91dFRhc2tzOjpTeW5jaHJvbm91c2x5ICYmIHZpZXcoKSkKICAgICAgICAgdmll
dygpLT5mbHVzaEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgK
aW5kZXggM2MyYjRiOWEwYzIwLi5hMjkxZjk2ZjhiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBA
IC02MzUsMTIgKzYzNSwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc1N0eWxlUmVjYWxjKCkg
Y29uc3Q7CiAgICAgdW5zaWduZWQgbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcoKSBjb25z
dCB7IHJldHVybiBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nOyB9CiAKLSAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIHVwZGF0ZUxheW91dCgpOwotICAgIAorICAgIGVudW0gY2xhc3MgRm9y
Y2VMYXlvdXQgeyBObywgWWVzIH07CisgICAgRm9yY2VMYXlvdXQgZGV0ZXJtaW5lRm9yY2VMYXlv
dXQoY29uc3QgRWxlbWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0
KEZvcmNlTGF5b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwogICAgIC8vIHVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQgZXZlbiBpZiB3ZSBhcmUgd2Fp
dGluZyBmb3IgcGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAgIC8vIHNvIGNhbGxpbmcgdGhp
cyBtYXkgY2F1c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50IChGT1VDKS4KICAgICBlbnVt
IGNsYXNzIFJ1blBvc3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJvbm91c2x5LCBTeW5jaHJvbm91c2x5
IH07Ci0gICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hy
b25vdXNseSk7CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpB
c3luY2hyb25vdXNseSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8pOworICAgIHZvaWQg
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0KTsKIAogICAg
IHN0ZDo6dW5pcXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5k
aW5nU3R5bGVzaGVldHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwg
UHNldWRvSWQgPSBQc2V1ZG9JZDo6Tm9uZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAy
YTVjM2I3MzA5ZGEuLjQ0ZGRmYzJmM2ViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTMx
MCw3ICsxMzEwLDcgQEAgaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRpbmdzKCkKIAogaW50
IEVsZW1lbnQ6Om9mZnNldFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlz
KSk7CiAgICAgaWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1v
ZGVsT2JqZWN0KCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4
ZWxMYXlvdXQoKnJlbmRlcmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJldHVybiAw
OwpAQCAtMTQ3MCw3ICsxNDcwLDcgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQg
RWxlbWVudDo6c2Nyb2xsVG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlvdXQoKnRoaXMp
KTsKIAogICAgIGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7CiAg
ICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkK
QEAgLTE4MTksNyArMTgxOSw3IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVj
dCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVj
dCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxh
eW91dCgqdGhpcykpOwogICAgIGF1dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91
dExheW91dCgpOwogICAgIGlmICghcGFpcikKICAgICAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDhlMzk0MDE5NmE5OS4uNWE3MGVh
ZWM1NGI2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUx
NSw5ICs1MTUsOSBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aChib29sIGlnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHls
ZXNoZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAgICAg
ZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dChkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7
CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAt
NTQwLDkgKzU0MCw5IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAg
ICAgZWxzZQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dChkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlz
KSk7CiAKICAgICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpA
QCAtNjcyLDcgKzY3Miw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWdu
ZWQgdmFsdWUpCiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkgY29uc3QKIHsKLSAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0
ZXJtaW5lRm9yY2VMYXlvdXQoKnRoaXMpKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVu
ZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKQEAgLTY4Myw3
ICs2ODMsNyBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1MSW1h
Z2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlvdXQoKnRoaXMp
KTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRl
cmVyKQogICAgICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5j
cHAKaW5kZXggOTYxNTM0MTFjNzAzLi42YTk3ODliODNlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwv
SW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdW5zaWduZWQgSW1hZ2VJbnB1
dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhU
TUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50
LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBk
YXRlTGF5b3V0KGVsZW1lbnQtPmRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlvdXQoZWxlbWVu
dC5nZXQoKSkpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIo
KSkKICAgICAgICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShkb3duY2FzdDxSZW5kZXJC
b3g+KCpyZW5kZXJlcikuY29udGVudEhlaWdodCgpLCAqcmVuZGVyZXIpOwpAQCAtMTk1LDcgKzE5
NSw3IEBAIHVuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0CiAgICAgQVNTRVJU
KGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVs
ZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAg
IGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KGVsZW1lbnQtPmRvY3VtZW50KCkuZGV0
ZXJtaW5lRm9yY2VMYXlvdXQoZWxlbWVudC5nZXQoKSkpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRl
cmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGFkanVzdEZvckFic29s
dXRlWm9vbShkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikuY29udGVudFdpZHRoKCksICpy
ZW5kZXJlcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
CmluZGV4IGI5ZjFlNDNiZDQ1NC4uNjkxMjExZGQ5ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlv
dXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQo
KSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRy
ZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBs
YXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0
UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2Uo
KSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7
IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3Jj
ZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQg
PSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5
b3V0Q291bnQ7IH0KIApAQCAtMTcxLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25l
ZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3Mg
eyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2Ug
fTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBt
X2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNs
YXNzIExheW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVk
LCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsg
TGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckJsb2NrLmNwcAppbmRleCBkNDAxMWVjNTI0MzMuLjFmOGQ4ZDNhOWNlYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC04MzcsNyArODM3LDcgQEAg
dm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChi
b29sIHJlbGF5b3V0Q2hpbGRyZW4sIFIKIAogICAgIC8vIEZJWE1FOiBUZWNobmljYWxseSBwZXJj
ZW50YWdlIGhlaWdodCBvYmplY3RzIG9ubHkgbmVlZCBhIHJlbGF5b3V0IGlmIHRoZWlyIHBlcmNl
bnRhZ2UgaXNuJ3QgZ29pbmcgdG8gYmUgdHVybmVkIGludG8KICAgICAvLyBhbiBhdXRvIHZhbHVl
LiBBZGQgYSBtZXRob2QgdG8gZGV0ZXJtaW5lIHRoaXMsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHRo
ZSByZWxheW91dC4KLSAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiB8fCAoY2hpbGQuaGFzUmVsYXRp
dmVMb2dpY2FsSGVpZ2h0KCkgJiYgIWlzUmVuZGVyVmlldygpKSkKKyAgICBpZiAocmVsYXlvdXRD
aGlsZHJlbiB8fCAvKmNoaWxkLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSB8fCovIChjaGls
ZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKSAmJiAhaXNSZW5kZXJWaWV3KCkpKQogICAgICAg
ICBjaGlsZC5zZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAKICAgICAvLyBJZiBy
ZWxheW91dENoaWxkcmVuIGlzIHNldCBhbmQgdGhlIGNoaWxkIGhhcyBwZXJjZW50YWdlIHBhZGRp
bmcgb3IgYW4gZW1iZWRkZWQgY29udGVudCBib3gsIHdlIGFsc28gbmVlZCB0byBpbnZhbGlkYXRl
IHRoZSBjaGlsZHMgcHJlZiB3aWR0aHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDNmMjBjZGI2MDYzZC4uOTg0M2U5OGMyMmFiIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNjcwLDYgKzY3
MCwxMSBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJl
bGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIG1heAogICAgICAgICBpZiAoY2hpbGQuaXNFeGNs
dWRlZEZyb21Ob3JtYWxMYXlvdXQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRo
aXMgY2hpbGQsIHNpbmNlIGl0IHdpbGwgYmUgcG9zaXRpb25lZCBieSB0aGUgc3BlY2lhbGl6ZWQg
c3ViY2xhc3MgKGZpZWxkc2V0cyBhbmQgcnVieSBydW5zKS4KIAorICAgICAgICBpZiAoc2hvdWxk
U2tpcENvbnRlbnRGb3JMYXlvdXQoKSAmJiAhY2hpbGQuY2FuSGF2ZUNoaWxkcmVuKCkpIHsKKyAg
ICAgICAgICAgIGNoaWxkLmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICB9CisKICAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxh
eW91dChyZWxheW91dENoaWxkcmVuLCBjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLmlzT3V0
T2ZGbG93UG9zaXRpb25lZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuY3BwCmluZGV4IDUzNzI4YTM2OWY4MC4uNDAxZmIzZDNkZjRmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjU3OCw2ICsyNTc4LDE2IEBAIGJvb2wg
UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxl
KCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwogfQog
Citib29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdAor
eworICAgIHJldHVybiBzdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpICYmICF2aWV3KCku
ZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7Cit9CisKK2Jvb2wg
UmVuZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgY29uc3QKK3sKKyAgICBy
ZXR1cm4gc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAmJiB2aWV3KCkuZnJhbWVWaWV3
KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7Cit9CisKIFRleHRTdHJlYW0mIG9w
ZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7
CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVidWdEZXNjcmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDA3ZWUzM2ZmOGVjMC4uOWExYmQ3NDZmYjU5IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCkBAIC04MDEsNiArODAxLDgg
QEAgcHVibGljOgogICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudCgpIGNvbnN0OwogCiAgICAgYm9v
bCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnRG
b3JMYXlvdXQoKSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBj
b25zdDsKIAogcHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1Jl
bmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHls
ZS5jcHAKaW5kZXggMmNkZDQzMWEyZDZjLi5kY2I3MDFmMjBiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODA4LDYgKzgwOCwxMCBA
QCBzdGF0aWMgYm9vbCByYXJlTm9uSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KGNv
bnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICAgICB8fCBmaXJzdC5lZmZlY3RpdmVDb250
YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpJbmxpbmVTaXplKSAhPSBzZWNvbmQuZWZm
ZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6SW5saW5lU2l6ZSkpCiAg
ICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gY29udGVudC12aXNpYmlsaXk6IGhpZGRlbiBl
bmFibGVkIGNvbnRhaW46c2l6ZQorICAgIGlmICgoc3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxp
dHk+KGZpcnN0LmNvbnRlbnRWaXNpYmlsaXR5KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVu
KSAhPSAoc3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KHNlY29uZC5jb250ZW50VmlzaWJp
bGl0eSkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikpCisgICAgICAgIHJldHVybiB0cnVl
OworCiAgICAgaWYgKGZpcnN0LnNjcm9sbFBhZGRpbmcgIT0gc2Vjb25kLnNjcm9sbFBhZGRpbmcp
CiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTG9jYXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCmlu
ZGV4IGQ2ZDlmOWNkMjU4Zi4uYjI2MDgzM2RjZWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRh
YmxlLmNwcApAQCAtNjgsNyArNjgsNyBAQCBGbG9hdFJlY3QgU1ZHTG9jYXRhYmxlOjpnZXRCQm94
KFNWR0VsZW1lbnQqIGVsZW1lbnQsIFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcAogewogICAg
IEFTU0VSVChlbGVtZW50KTsKICAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVneSA9PSBBbGxvd1N0
eWxlVXBkYXRlKQotICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhlbGVtZW50LT5kb2N1bWVudCgpLmRldGVy
bWluZUZvcmNlTGF5b3V0KCplbGVtZW50KSk7CiAKICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3
ZSBzaG91bGQgc3VwcG9ydCBnZXRCQm94IGZvciBkZXRhY2hlZCBlbGVtZW50cy4KICAgICBpZiAo
IWVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
VGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwCmluZGV4IGFjZDJlZWE4MzBkMy4uMmQwMGY5MDc1MzhjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtNTUsMTMgKzU1LDEz
IEBAIFNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1
YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiAKIHVuc2lnbmVkIFNWR1RleHRDb250ZW50RWxl
bWVudDo6Z2V0TnVtYmVyT2ZDaGFycygpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0
aGlzKSk7CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5udW1iZXJPZkNoYXJh
Y3RlcnMoKTsKIH0KIAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRl
eHRMZW5ndGgoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwogICAgIHJl
dHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkudGV4dExlbmd0aCgpOwogfQogCkBAIC0xMDks
NyArMTA5LDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0
Um90YXRpb25PZkNoYXIodW5zaWduZWQgY2hhcm51bSkKIAogaW50IFNWR1RleHRDb250ZW50RWxl
bWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQogewot
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7Cisg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoZG9jdW1l
bnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwogICAgIEZsb2F0UG9pbnQgdHJhbnNm
b3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueCksIHN0YXRpY19jYXN0PGZs
b2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSku
Y2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Qb2ludCk7CiB9CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
Y29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3Rl
ZC50eHQKaW5kZXggMWVjZTdhOTdjNGJmLi5iY2ZjNzg5ZmE0MGEgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50
eHQKQEAgLTEsMyArMSwzIEBACiAKLUZBSUwgTWVhc3VyZSBGb3JjZWQgTGF5b3V0IGFzc2VydF9l
cXVhbHM6IHNwYWNlciB3aGVuIHZpc2libGUgZXhwZWN0ZWQgMTA4IGJ1dCBnb3QgOAorUEFTUyBN
ZWFzdXJlIEZvcmNlZCBMYXlvdXQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1z
aXplL2F1dG8tMDA2LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRv
LTAwNi1leHBlY3RlZC50eHQKaW5kZXggZmFlOTBjM2Y0MjUxLi5hMjk3OTlmMDc3M2UgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNi1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNp
emluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA2LWV4cGVjdGVkLnR4dApAQCAtMSwx
OCArMSwxOCBAQAogCi1GQUlMIEJhc2ljIHVzYWdlIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3Jt
YWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgQmFzaWMgdXNh
Z2UgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0
aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCiBGQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBi
ZSAwIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lk
dGggZXhwZWN0ZWQgMCBidXQgZ290IDEKLUZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJl
IHNldCB0byAwIGFmdGVyIGxvc2luZyBkaXNwbGF5Om5vbmUgYXNzZXJ0X2VxdWFsczogU2l6aW5n
IG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0
IHJlbWVtYmVyZWQgc2l6ZSBpcyBsb2dpY2FsIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxs
eSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTGFzdCByZW1lbWJl
cmVkIHNpemUgc3Vydml2ZXMgYm94IGRlc3RydWN0aW9uIGFzc2VydF9lcXVhbHM6IFNpemluZyBu
b3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTGFzdCBy
ZW1lbWJlcmVkIHNpemUgc3Vydml2ZXMgZGlzcGxheSB0eXBlIGNoYW5nZXMgYXNzZXJ0X2VxdWFs
czogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQot
RkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRf
ZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdv
dCAxCi1GQUlMIExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGV2
ZW4gaWYgc2l6ZSBkb2Vzbid0IGNoYW5nZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkg
LSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExvc2luZyBjaXM6YXV0
byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGltbWVkaWF0ZWx5IGFzc2VydF9lcXVhbHM6
IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZB
SUwgTG9zaW5nIGNpczphdXRvIGR1cmluZyBkaXNwbGF5Om5vbmUgZG9lc24ndCByZW1vdmUgbGFz
dCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50
V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYWNrIG9mIGNpczphdXRvIGR1cmlu
ZyBib3ggY3JlYXRpb24gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxz
OiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1G
QUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSByZW1vdmVkIHN5bmNocm9ub3VzbHkgYXNz
ZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1
dCBnb3QgMQotRkFJTCBEaXNjb25uZWN0ZWQgZWxlbWVudCBjYW4gYnJpZWZseSBrZWVwIGxhc3Qg
cmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdp
ZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgRGlzY29ubmVjdGVkIGVsZW1lbnQgZW5k
cyB1cCBsb3NpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5v
cm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0IHJl
bWVtYmVyZWQgc2l6ZSBjYW4gYmUgc2V0IHRvIDAgYWZ0ZXIgbG9zaW5nIGRpc3BsYXk6bm9uZSBh
c3NlcnRfZXF1YWxzOiBVc2luZyB0aGUgbmV3IGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50
V2lkdGggZXhwZWN0ZWQgMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgaXMg
bG9naWNhbCBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVu
dFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUg
c3Vydml2ZXMgYm94IGRlc3RydWN0aW9uIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1i
ZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0
IHJlbWVtYmVyZWQgc2l6ZSBzdXJ2aXZlcyBkaXNwbGF5IHR5cGUgY2hhbmdlcyBhc3NlcnRfZXF1
YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEw
MCBidXQgZ290IDEKK0ZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVk
IHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitQQVNTIExvc2luZyBjaXM6YXV0byByZW1vdmVz
IGxhc3QgcmVtZW1iZXJlZCBzaXplIGV2ZW4gaWYgc2l6ZSBkb2Vzbid0IGNoYW5nZQorRkFJTCBM
b3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBpbW1lZGlhdGVseSBh
c3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4
cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgTG9zaW5nIGNpczphdXRvIGR1cmluZyBkaXNwbGF5
Om5vbmUgZG9lc24ndCByZW1vdmUgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczog
VXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0
IGdvdCAxCitGQUlMIExhY2sgb2YgY2lzOmF1dG8gZHVyaW5nIGJveCBjcmVhdGlvbiByZW1vdmVz
IGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJl
ZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0IHJl
bWVtYmVyZWQgc2l6ZSBjYW4gYmUgcmVtb3ZlZCBzeW5jaHJvbm91c2x5IGFzc2VydF9lcXVhbHM6
IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1
dCBnb3QgMQorRkFJTCBEaXNjb25uZWN0ZWQgZWxlbWVudCBjYW4gYnJpZWZseSBrZWVwIGxhc3Qg
cmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXpl
IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBEaXNjb25uZWN0ZWQg
ZWxlbWVudCBlbmRzIHVwIGxvc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxz
OiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBi
dXQgZ290IDEKIFBBU1MgRGlzY29ubmVjdGVkIGVsZW1lbnQgZW5kcyB1cCBsb3NpbmcgbGFzdCBy
ZW1lbWJlcmVkIHNpemUgZXZlbiBpZiBzaXplIHdhcyAweDAKIEZBSUwgTGFzdCByZW1lbWJlcmVk
IHNpemUgc3Vydml2ZXMgYmVjb21pbmcgaW5saW5lIGFzc2VydF9lcXVhbHM6IFN0aWxsIHVzaW5n
IHByZXZpb3VzIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAw
IGJ1dCBnb3QgMQogRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4gYmUgc2V0IHRvIDB4MCBh
ZnRlciBsb3NpbmcgZGlzcGxheTppbmxpbmUgYXNzZXJ0X2VxdWFsczogTGFzdCByZW1lbWJlcmVk
IHNpemUgaXMgbm93IDB4MCAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDgtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemlu
Zy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4dAppbmRleCAzYjEz
OTI3ZWZlM2YuLjRkZDQ4MDI0N2Y1MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1z
aXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUv
YXV0by0wMDgtZXhwZWN0ZWQudHh0CkBAIC0xLDUgKzEsNSBAQAogCi1GQUlMIHJlcXVlc3RBbmlt
YXRpb25GcmFtZSBhc3NlcnRfZXF1YWxzOiBObyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVu
dFdpZHRoIGV4cGVjdGVkIDQwIGJ1dCBnb3QgMTAwCi1QQVNTIEVhcmx5IFJlc2l6ZU9ic2VydmVy
Ci1QQVNTIExhdGUgUmVzaXplT2JzZXJ2ZXIKK1BBU1MgcmVxdWVzdEFuaW1hdGlvbkZyYW1lCitG
QUlMIEVhcmx5IFJlc2l6ZU9ic2VydmVyIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1i
ZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgNDAKK0ZBSUwgTGF0
ZSBSZXNpemVPYnNlcnZlciBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6
ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDQwCiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463727</attachid>
            <date>2022-11-25 03:36:08 -0800</date>
            <delta_ts>2022-11-25 10:20:04 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221125113607.patch</filename>
            <type>text/plain</type>
            <size>24383</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAyNjVjYTQ3OGQ2YWMyOWY4MTI3MjRlOGQ2NDY1ZTE1Mzc4YzkzZDgyIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuaDoKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OnNldExheW91dEZvcmNlZCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJsZTo6
Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6
CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgooV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgooV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMjYgKysrKysr
KysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAg
ICAgIHwgIDkgKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAg
ICAgICAgIHwgIDYgKystLS0KIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgICAgICB8IDEyICsrKystLS0tLQogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlw
ZS5jcHAgICAgICAgIHwgIDQgKy0tCiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuaCAgfCAgMyArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
ay5jcHAgICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcCAgfCAgNSArKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCAgICAgfCAgNSArKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmggICAgICAgfCAgMSArCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwICAgfCAgNCArKysKIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwICAgICAg
ICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cCAgfCAgNiArKy0tLQogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAgICAgICAg
ICAgIHwgIDIgLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dCAgICAg
ICB8ICAyICstCiAuLi4vYXV0by0wMDYtZXhwZWN0ZWQudHh0ICAgICAgICAgICAgICAgICAgICAg
fCAyNiArKysrKysrKystLS0tLS0tLS0tCiAuLi4vYXV0by0wMDgtZXhwZWN0ZWQudHh0ICAgICAg
ICAgICAgICAgICAgICAgfCAgNiArKy0tLQogMTcgZmlsZXMgY2hhbmdlZCwgNzkgaW5zZXJ0aW9u
cygrKSwgNDIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMTJhZjE3
MWEzNzI1Li41Yjk5YjBkYzcyMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI1OCw3
ICsyMjU4LDEyIEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIHJl
dHVybiB0cnVlOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQorRG9jdW1lbnQ6
OkZvcmNlTGF5b3V0IERvY3VtZW50OjpkZXRlcm1pbmVGb3JjZUxheW91dChjb25zdCBFbGVtZW50
JiBjb250ZXh0KQoreworICAgIHJldHVybiBjb250ZXh0LnJlbmRlcmVyKCkgJiYgY29udGV4dC5y
ZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpID8gRm9yY2VMYXlvdXQ6
OlllcyA6IEZvcmNlTGF5b3V0OjpObzsKK30KKwordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0
KEZvcmNlTGF5b3V0IGZvcmNlTGF5b3V0KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7
CiAKQEAgLTIyODEsMTMgKzIyODYsMjYgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkK
IAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsK
LSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYm
ICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgc3RkOjpvcHRpb25hbDxib29sPiBv
bGRMYXlvdXRGb3JjZWQ7CisgICAgaWYgKGZvcmNlTGF5b3V0ID09IEZvcmNlTGF5b3V0OjpZZXMg
JiYgdmlldygpKSB7CisgICAgICAgIG9sZExheW91dEZvcmNlZCA9IHZpZXcoKS0+bGF5b3V0Q29u
dGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCk7CisgICAgICAgIHZpZXcoKS0+bGF5b3V0Q29udGV4dCgp
LnNldExheW91dEZvcmNlZCh0cnVlKTsKKyAgICB9CisgICAgaWYgKCFmcmFtZVZpZXctPmxheW91
dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91
dCgpICYmIGZvcmNlTGF5b3V0ICE9IEZvcmNlTGF5b3V0OjpZZXMpCiAgICAgICAgIHJldHVybjsK
IAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmxheW91dCgpOworCisgICAgaWYgKG9s
ZExheW91dEZvcmNlZCkKKyAgICAgICAgdmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0
Rm9yY2VkKCpvbGRMYXlvdXRGb3JjZWQpOwogfQogCi12b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9jdW1lbnQ6OlJ1blBvc3RMYXlvdXRUYXNrcyBy
dW5Qb3N0TGF5b3V0VGFza3MpCit2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoRm9yY2VMYXlvdXQgZm9yY2VMYXlvdXQpCit7CisgICAgdXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKFJ1blBvc3RMYXlvdXRUYXNrczo6QXN5bmNocm9u
b3VzbHksIGZvcmNlTGF5b3V0KTsKK30KKwordm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKERvY3VtZW50OjpSdW5Qb3N0TGF5b3V0VGFza3MgcnVuUG9z
dExheW91dFRhc2tzLCBGb3JjZUxheW91dCBmb3JjZUxheW91dCkKIHsKICAgICBib29sIG9sZEln
bm9yZSA9IG1faWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzOwogCkBAIC0yMjk4LDcgKzIzMTYsNyBA
QCB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoRG9j
dW1lbnQ6OlJ1blBvc3RMYXlvdXRUYXNrcwogICAgICAgICAgICAgc2NoZWR1bGVGdWxsU3R5bGVS
ZWJ1aWxkKCk7CiAgICAgfQogCi0gICAgdXBkYXRlTGF5b3V0KCk7CisgICAgdXBkYXRlTGF5b3V0
KGZvcmNlTGF5b3V0KTsKIAogICAgIGlmIChydW5Qb3N0TGF5b3V0VGFza3MgPT0gUnVuUG9zdExh
eW91dFRhc2tzOjpTeW5jaHJvbm91c2x5ICYmIHZpZXcoKSkKICAgICAgICAgdmlldygpLT5mbHVz
aEFueVBlbmRpbmdQb3N0TGF5b3V0VGFza3MoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2My
YjRiOWEwYzIwLi5hMjkxZjk2ZjhiN2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC02MzUsMTIg
KzYzNSwxNSBAQCBwdWJsaWM6CiAgICAgYm9vbCBuZWVkc1N0eWxlUmVjYWxjKCkgY29uc3Q7CiAg
ICAgdW5zaWduZWQgbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nOyB9CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVwZGF0ZUxheW91dCgpOwotICAgIAorICAgIGVudW0gY2xhc3MgRm9yY2VMYXlvdXQg
eyBObywgWWVzIH07CisgICAgRm9yY2VMYXlvdXQgZGV0ZXJtaW5lRm9yY2VMYXlvdXQoY29uc3Qg
RWxlbWVudCYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgdXBkYXRlTGF5b3V0KEZvcmNlTGF5
b3V0ID0gRm9yY2VMYXlvdXQ6Ok5vKTsKKwogICAgIC8vIHVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpIGZvcmNlcyBsYXlvdXQgZXZlbiBpZiB3ZSBhcmUgd2FpdGluZyBmb3Ig
cGVuZGluZyBzdHlsZXNoZWV0IGxvYWRzLAogICAgIC8vIHNvIGNhbGxpbmcgdGhpcyBtYXkgY2F1
c2UgYSBmbGFzaCBvZiB1bnN0eWxlZCBjb250ZW50IChGT1VDKS4KICAgICBlbnVtIGNsYXNzIFJ1
blBvc3RMYXlvdXRUYXNrcyB7IEFzeW5jaHJvbm91c2x5LCBTeW5jaHJvbm91c2x5IH07Ci0gICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
UnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25vdXNseSk7
CisgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCB1cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoUnVuUG9zdExheW91dFRhc2tzID0gUnVuUG9zdExheW91dFRhc2tzOjpBc3luY2hyb25v
dXNseSwgRm9yY2VMYXlvdXQgPSBGb3JjZUxheW91dDo6Tm8pOworICAgIHZvaWQgdXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKEZvcmNlTGF5b3V0KTsKIAogICAgIHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGVGb3JFbGVtZW50SWdub3JpbmdQZW5kaW5nU3R5bGVz
aGVldHMoRWxlbWVudCYsIGNvbnN0IFJlbmRlclN0eWxlKiBwYXJlbnRTdHlsZSwgUHNldWRvSWQg
PSBQc2V1ZG9JZDo6Tm9uZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyYTVjM2I3MzA5
ZGEuLjQ0ZGRmYzJmM2ViNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTMxMCw3ICsxMzEw
LDcgQEAgaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRpbmdzKCkKIAogaW50IEVsZW1lbnQ6
Om9mZnNldFRvcCgpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAgICAg
aWYgKFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1vZGVsT2JqZWN0
KCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4ZWxMYXlvdXQo
KnJlbmRlcmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwogICAgIHJldHVybiAwOwpAQCAtMTQ3
MCw3ICsxNDcwLDcgQEAgaW50IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQgRWxlbWVudDo6
c2Nyb2xsVG9wKCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlvdXQoKnRoaXMpKTsKIAogICAg
IGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7CiAgICAgICAgIGlm
IChhdXRvKiBmcmFtZSA9IGRvY3VtZW50RnJhbWVXaXRoTm9uTnVsbFZpZXcoKSkKQEAgLTE4MTks
NyArMTgxOSw3IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0
UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50
Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25v
cmVQZW5kaW5nU3R5bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhp
cykpOwogICAgIGF1dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgp
OwogICAgIGlmICghcGFpcikKICAgICAgICAgcmV0dXJuIHsgfTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDhlMzk0MDE5NmE5OS4uNWE3MGVhZWM1NGI2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUxNSw5ICs1MTUs
OSBAQCB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aChib29sIGlnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKQot
ICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAgICAgZWxzZQotICAg
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dChkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAKICAgICBS
ZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNTQwLDkgKzU0
MCw5IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGlnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cykKICAgICB9CiAKICAgICBpZiAoaWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KQotICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOworICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAgICAgZWxzZQot
ICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgICAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dChkb2N1bWVudCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCp0aGlzKSk7CiAKICAg
ICBSZW5kZXJCb3gqIGJveCA9IHJlbmRlckJveCgpOwogICAgIGlmICghYm94KQpAQCAtNjcyLDcg
KzY3Miw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUp
CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0ZXJtaW5lRm9y
Y2VMYXlvdXQoKnRoaXMpKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsK
ICAgICBpZiAoIXJlbmRlcmVyKQogICAgICAgICByZXR1cm4gMDsKQEAgLTY4Myw3ICs2ODMsNyBA
QCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50
Ojp5KCkgY29uc3QKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOworICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKGRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlvdXQoKnRoaXMpKTsKICAgICBh
dXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQogICAg
ICAgICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXgg
OTYxNTM0MTFjNzAzLi42YTk3ODliODNlZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1
dFR5cGUuY3BwCkBAIC0xNzMsNyArMTczLDcgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6Omhl
aWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVs
ZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVu
dCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0
KGVsZW1lbnQtPmRvY3VtZW50KCkuZGV0ZXJtaW5lRm9yY2VMYXlvdXQoZWxlbWVudC5nZXQoKSkp
OwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKICAgICAg
ICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShkb3duY2FzdDxSZW5kZXJCb3g+KCpyZW5k
ZXJlcikuY29udGVudEhlaWdodCgpLCAqcmVuZGVyZXIpOwpAQCAtMTk1LDcgKzE5NSw3IEBAIHVu
c2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQo
KSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7
CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOworICAgIGVsZW1lbnQt
PmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KGVsZW1lbnQtPmRvY3VtZW50KCkuZGV0ZXJtaW5lRm9y
Y2VMYXlvdXQoZWxlbWVudC5nZXQoKSkpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxl
bWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShk
b3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikuY29udGVudFdpZHRoKCksICpyZW5kZXJlcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IGI5
ZjFlNDNiZDQ1NC4uNjkxMjExZGQ5ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1l
Vmlld0xheW91dENvbnRleHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6
T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7
IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7
IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFz
ZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAh
PSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlv
dXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAgICBi
b29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0KKyAg
ICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9CiAK
ICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291bnQ7
IH0KIApAQCAtMTcxLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVsbFJl
cGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxzZSB9
OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAgICBi
b29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91dFBo
YXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExheW91
dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0ZWQg
fTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0TmVz
dGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrLmNwcAppbmRleCBkNDAxMWVjNTI0MzMuLjFmOGQ4ZDNhOWNlYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBSZW5k
ZXJCbG9jazo6dXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChib29sIHJlbGF5
b3V0Q2hpbGRyZW4sIFIKIAogICAgIC8vIEZJWE1FOiBUZWNobmljYWxseSBwZXJjZW50YWdlIGhl
aWdodCBvYmplY3RzIG9ubHkgbmVlZCBhIHJlbGF5b3V0IGlmIHRoZWlyIHBlcmNlbnRhZ2UgaXNu
J3QgZ29pbmcgdG8gYmUgdHVybmVkIGludG8KICAgICAvLyBhbiBhdXRvIHZhbHVlLiBBZGQgYSBt
ZXRob2QgdG8gZGV0ZXJtaW5lIHRoaXMsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHRoZSByZWxheW91
dC4KLSAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiB8fCAoY2hpbGQuaGFzUmVsYXRpdmVMb2dpY2Fs
SGVpZ2h0KCkgJiYgIWlzUmVuZGVyVmlldygpKSkKKyAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiB8
fCAvKmNoaWxkLmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSB8fCovIChjaGlsZC5oYXNSZWxh
dGl2ZUxvZ2ljYWxIZWlnaHQoKSAmJiAhaXNSZW5kZXJWaWV3KCkpKQogICAgICAgICBjaGlsZC5z
ZXRDaGlsZE5lZWRzTGF5b3V0KE1hcmtPbmx5VGhpcyk7CiAKICAgICAvLyBJZiByZWxheW91dENo
aWxkcmVuIGlzIHNldCBhbmQgdGhlIGNoaWxkIGhhcyBwZXJjZW50YWdlIHBhZGRpbmcgb3IgYW4g
ZW1iZWRkZWQgY29udGVudCBib3gsIHdlIGFsc28gbmVlZCB0byBpbnZhbGlkYXRlIHRoZSBjaGls
ZHMgcHJlZiB3aWR0aHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwCmluZGV4IDNmMjBjZGI2MDYzZC4uNTNhNWQ2ZDM2YjdkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNjcwLDYgKzY3MCwxMSBAQCB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQmIG1heAogICAgICAgICBpZiAoY2hpbGQuaXNFeGNsdWRlZEZyb21O
b3JtYWxMYXlvdXQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgY2hpbGQs
IHNpbmNlIGl0IHdpbGwgYmUgcG9zaXRpb25lZCBieSB0aGUgc3BlY2lhbGl6ZWQgc3ViY2xhc3Mg
KGZpZWxkc2V0cyBhbmQgcnVieSBydW5zKS4KIAorICAgICAgICBpZiAoaXNTa2lwcGVkQ29udGVu
dEZvckxheW91dCgpICYmICFjaGlsZC5jYW5IYXZlQ2hpbGRyZW4oKSkgeworICAgICAgICAgICAg
Y2hpbGQuY2xlYXJOZWVkc0xheW91dCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IH0KKwogICAgICAgICB1cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KHJlbGF5
b3V0Q2hpbGRyZW4sIGNoaWxkKTsKIAogICAgICAgICBpZiAoY2hpbGQuaXNPdXRPZkZsb3dQb3Np
dGlvbmVkKCkpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5k
ZXggNTM3MjhhMzY5ZjgwLi4yYzlmNDAxYzc4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNTc4LDYgKzI1NzgsMTEgQEAgYm9vbCBSZW5kZXJPYmpl
Y3Q6OnNob3VsZFNraXBDb250ZW50KCkgY29uc3QKICAgICByZXR1cm4gc3R5bGUoKS5jb250ZW50
VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CiB9CiAKK2Jvb2wgUmVu
ZGVyT2JqZWN0Ojppc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygp
LmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVy
YXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewog
ICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaAppbmRleCAwN2VlMzNmZjhlYzAuLjIyNjg4NWFiYjlmZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtODAxLDYgKzgwMSw3IEBA
IHB1YmxpYzoKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAogICAgIGJvb2wg
c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JM
YXlvdXQoKSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L3N0eWxlL1JlbmRlclN0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9S
ZW5kZXJTdHlsZS5jcHAKaW5kZXggMmNkZDQzMWEyZDZjLi5kY2I3MDFmMjBiZjQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODA4LDYg
KzgwOCwxMCBAQCBzdGF0aWMgYm9vbCByYXJlTm9uSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVz
TGF5b3V0KGNvbnN0IFN0eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICAgICB8fCBmaXJzdC5lZmZl
Y3RpdmVDb250YWlubWVudCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpJbmxpbmVTaXplKSAhPSBz
ZWNvbmQuZWZmZWN0aXZlQ29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6SW5saW5l
U2l6ZSkpCiAgICAgICAgIHJldHVybiB0cnVlOwogCisgICAgLy8gY29udGVudC12aXNpYmlsaXk6
IGhpZGRlbiBlbmFibGVkIGNvbnRhaW46c2l6ZQorICAgIGlmICgoc3RhdGljX2Nhc3Q8Q29udGVu
dFZpc2liaWxpdHk+KGZpcnN0LmNvbnRlbnRWaXNpYmlsaXR5KSA9PSBDb250ZW50VmlzaWJpbGl0
eTo6SGlkZGVuKSAhPSAoc3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KHNlY29uZC5jb250
ZW50VmlzaWJpbGl0eSkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikpCisgICAgICAgIHJl
dHVybiB0cnVlOworCiAgICAgaWYgKGZpcnN0LnNjcm9sbFBhZGRpbmcgIT0gc2Vjb25kLnNjcm9s
bFBhZGRpbmcpCiAgICAgICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFi
bGUuY3BwCmluZGV4IGQ2ZDlmOWNkMjU4Zi4uYjI2MDgzM2RjZWY5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTG9jYXRhYmxlLmNwcApAQCAtNjgsNyArNjgsNyBAQCBGbG9hdFJlY3QgU1ZHTG9jYXRhYmxl
OjpnZXRCQm94KFNWR0VsZW1lbnQqIGVsZW1lbnQsIFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVV
cAogewogICAgIEFTU0VSVChlbGVtZW50KTsKICAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVneSA9
PSBBbGxvd1N0eWxlVXBkYXRlKQotICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgICAgICBlbGVtZW50LT5kb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhlbGVtZW50LT5kb2N1bWVu
dCgpLmRldGVybWluZUZvcmNlTGF5b3V0KCplbGVtZW50KSk7CiAKICAgICAvLyBGSVhNRTogRXZl
bnR1YWxseSB3ZSBzaG91bGQgc3VwcG9ydCBnZXRCQm94IGZvciBkZXRhY2hlZCBlbGVtZW50cy4K
ICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdU
ZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IGFjZDJlZWE4MzBkMy4uMmQwMGY5MDc1MzhjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcApAQCAtNTUs
MTMgKzU1LDEzIEBAIFNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50
KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiAKIHVuc2lnbmVkIFNWR1RleHRD
b250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycygpCiB7Ci0gICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cyhkb2N1bWVudCgpLmRldGVybWluZUZvcmNl
TGF5b3V0KCp0aGlzKSk7CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5udW1i
ZXJPZkNoYXJhY3RlcnMoKTsKIH0KIAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRD
b21wdXRlZFRleHRMZW5ndGgoKQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykp
OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkudGV4dExlbmd0aCgpOwogfQog
CkBAIC0xMDksNyArMTA5LDcgQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxl
bWVudDo6Z2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQgY2hhcm51bSkKIAogaW50IFNWR1RleHRD
b250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oRE9NUG9pbnRJbml0JiYgcG9pbnRJ
bml0KQogewotICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CisgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoZG9jdW1lbnQoKS5kZXRlcm1pbmVGb3JjZUxheW91dCgqdGhpcykpOwogICAgIEZsb2F0UG9p
bnQgdHJhbnNmb3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueCksIHN0YXRp
Y19jYXN0PGZsb2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVu
ZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Qb2ludCk7CiB9CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwppbmRleCBkZjQ0YWFkYmE4MTMuLmY2YzU0OWNkMjcxYiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zCkBAIC00ODg2LDggKzQ4ODYsNiBAQCB3ZWJhbmltYXRpb25zL3RyYW5zbGF0ZS1w
cm9wZXJ0eS1hbmQtdHJhbnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNlZC1sYQog
IyBDU1MgY29udGFpbm1lbnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJmYy1mbG9hdHMt
MDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmluc2ljLmh0bWwg
WyBJbWFnZU9ubHlGYWlsdXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQt
dmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9j
b250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVj
dGVkLnR4dAppbmRleCAxZWNlN2E5N2M0YmYuLmJjZmM3ODlmYTQwYSAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVk
LnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBNZWFzdXJlIEZvcmNlZCBMYXlvdXQgYXNzZXJ0
X2VxdWFsczogc3BhY2VyIHdoZW4gdmlzaWJsZSBleHBlY3RlZCAxMDggYnV0IGdvdCA4CitQQVNT
IE1lYXN1cmUgRm9yY2VkIExheW91dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2lj
LXNpemUvYXV0by0wMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1
dG8tMDA2LWV4cGVjdGVkLnR4dAppbmRleCBmYWU5MGMzZjQyNTEuLmEyOTc5OWYwNzczZSAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA2LWV4cGVjdGVkLnR4dAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mt
c2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDYtZXhwZWN0ZWQudHh0CkBAIC0x
LDE4ICsxLDE4IEBACiAKLUZBSUwgQmFzaWMgdXNhZ2UgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5v
cm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBCYXNpYyB1
c2FnZSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdp
ZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKIEZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2Fu
IGJlIDAgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRX
aWR0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4g
YmUgc2V0IHRvIDAgYWZ0ZXIgbG9zaW5nIGRpc3BsYXk6bm9uZSBhc3NlcnRfZXF1YWxzOiBTaXpp
bmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExh
c3QgcmVtZW1iZXJlZCBzaXplIGlzIGxvZ2ljYWwgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1h
bGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0IHJlbWVt
YmVyZWQgc2l6ZSBzdXJ2aXZlcyBib3ggZGVzdHJ1Y3Rpb24gYXNzZXJ0X2VxdWFsczogU2l6aW5n
IG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0
IHJlbWVtYmVyZWQgc2l6ZSBzdXJ2aXZlcyBkaXNwbGF5IHR5cGUgY2hhbmdlcyBhc3NlcnRfZXF1
YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAx
Ci1GQUlMIExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2Vy
dF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQg
Z290IDEKLUZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUg
ZXZlbiBpZiBzaXplIGRvZXNuJ3QgY2hhbmdlIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxs
eSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTG9zaW5nIGNpczph
dXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUgaW1tZWRpYXRlbHkgYXNzZXJ0X2VxdWFs
czogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQot
RkFJTCBMb3NpbmcgY2lzOmF1dG8gZHVyaW5nIGRpc3BsYXk6bm9uZSBkb2Vzbid0IHJlbW92ZSBs
YXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGll
bnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExhY2sgb2YgY2lzOmF1dG8gZHVy
aW5nIGJveCBjcmVhdGlvbiByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVh
bHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEK
LUZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJlIHJlbW92ZWQgc3luY2hyb25vdXNseSBh
c3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAg
YnV0IGdvdCAxCi1GQUlMIERpc2Nvbm5lY3RlZCBlbGVtZW50IGNhbiBicmllZmx5IGtlZXAgbGFz
dCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50
V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBEaXNjb25uZWN0ZWQgZWxlbWVudCBl
bmRzIHVwIGxvc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcg
bm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExhc3Qg
cmVtZW1iZXJlZCBzaXplIGNhbiBiZSBzZXQgdG8gMCBhZnRlciBsb3NpbmcgZGlzcGxheTpub25l
IGFzc2VydF9lcXVhbHM6IFVzaW5nIHRoZSBuZXcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGll
bnRXaWR0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBp
cyBsb2dpY2FsIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xp
ZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6
ZSBzdXJ2aXZlcyBib3ggZGVzdHJ1Y3Rpb24gYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1l
bWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExh
c3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGRpc3BsYXkgdHlwZSBjaGFuZ2VzIGFzc2VydF9l
cXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQg
MTAwIGJ1dCBnb3QgMQorRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVy
ZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVu
dFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK1BBU1MgTG9zaW5nIGNpczphdXRvIHJlbW92
ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUgZXZlbiBpZiBzaXplIGRvZXNuJ3QgY2hhbmdlCitGQUlM
IExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGltbWVkaWF0ZWx5
IGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGgg
ZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMb3NpbmcgY2lzOmF1dG8gZHVyaW5nIGRpc3Bs
YXk6bm9uZSBkb2Vzbid0IHJlbW92ZSBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxz
OiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBi
dXQgZ290IDEKK0ZBSUwgTGFjayBvZiBjaXM6YXV0byBkdXJpbmcgYm94IGNyZWF0aW9uIHJlbW92
ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJl
cmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExhc3Qg
cmVtZW1iZXJlZCBzaXplIGNhbiBiZSByZW1vdmVkIHN5bmNocm9ub3VzbHkgYXNzZXJ0X2VxdWFs
czogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAg
YnV0IGdvdCAxCitGQUlMIERpc2Nvbm5lY3RlZCBlbGVtZW50IGNhbiBicmllZmx5IGtlZXAgbGFz
dCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNp
emUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIERpc2Nvbm5lY3Rl
ZCBlbGVtZW50IGVuZHMgdXAgbG9zaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVh
bHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAw
IGJ1dCBnb3QgMQogUEFTUyBEaXNjb25uZWN0ZWQgZWxlbWVudCBlbmRzIHVwIGxvc2luZyBsYXN0
IHJlbWVtYmVyZWQgc2l6ZSBldmVuIGlmIHNpemUgd2FzIDB4MAogRkFJTCBMYXN0IHJlbWVtYmVy
ZWQgc2l6ZSBzdXJ2aXZlcyBiZWNvbWluZyBpbmxpbmUgYXNzZXJ0X2VxdWFsczogU3RpbGwgdXNp
bmcgcHJldmlvdXMgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAx
MDAgYnV0IGdvdCAxCiBGQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSBzZXQgdG8gMHgw
IGFmdGVyIGxvc2luZyBkaXNwbGF5OmlubGluZSBhc3NlcnRfZXF1YWxzOiBMYXN0IHJlbWVtYmVy
ZWQgc2l6ZSBpcyBub3cgMHgwIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMCBidXQgZ290IDEKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6
aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDgtZXhwZWN0ZWQudHh0CmluZGV4IDNi
MTM5MjdlZmUzZi4uNGRkNDgwMjQ3ZjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2lj
LXNpemUvYXV0by0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6
ZS9hdXRvLTAwOC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgcmVxdWVzdEFu
aW1hdGlvbkZyYW1lIGFzc2VydF9lcXVhbHM6IE5vIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xp
ZW50V2lkdGggZXhwZWN0ZWQgNDAgYnV0IGdvdCAxMDAKLVBBU1MgRWFybHkgUmVzaXplT2JzZXJ2
ZXIKLVBBU1MgTGF0ZSBSZXNpemVPYnNlcnZlcgorUEFTUyByZXF1ZXN0QW5pbWF0aW9uRnJhbWUK
K0ZBSUwgRWFybHkgUmVzaXplT2JzZXJ2ZXIgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1l
bWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCA0MAorRkFJTCBM
YXRlIFJlc2l6ZU9ic2VydmVyIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBz
aXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgNDAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463734</attachid>
            <date>2022-11-25 10:20:09 -0800</date>
            <delta_ts>2022-12-01 03:10:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221125182008.patch</filename>
            <type>text/plain</type>
            <size>22508</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBkZmYwYjYzYTFiODRmNDI2OTljNTgwNGFjMDI2YTE3YTUwYzg2ODJjIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuaDoKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OnNldExheW91dEZvcmNlZCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJsZTo6
Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6
CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgooV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgooV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMTkgKysrKysr
KysrKysrKy0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgICB8
IDEyICsrKysrKysrLQogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAgICAgICAg
ICAgIHwgIDYgKysrKysKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAg
ICAgICB8ICA2ICsrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCAg
ICAgICAgfCAgNCArKysKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4
dC5oICB8ICAzICsrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAg
ICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3Bw
ICB8ICA1ICsrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAg
ICB8ICA1ICsrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAg
ICB8ICAxICsKIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgICB8
ICA0ICsrKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgIHwg
IDQgKystCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCAgfCAg
MyArKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgICB8ICAy
IC0tCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQgICAgICAgfCAgMiAr
LQogLi4uL2F1dG8tMDA2LWV4cGVjdGVkLnR4dCAgICAgICAgICAgICAgICAgICAgIHwgMjYgKysr
KysrKysrLS0tLS0tLS0tLQogLi4uL2F1dG8tMDA4LWV4cGVjdGVkLnR4dCAgICAgICAgICAgICAg
ICAgICAgIHwgIDYgKystLS0KIDE3IGZpbGVzIGNoYW5nZWQsIDg3IGluc2VydGlvbnMoKyksIDIz
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDEyYWYxNzFhMzcyNS4u
ZWRjMjlkN2Q4ZWUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIyNTgsNiArMjI1OCwy
MyBAQCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJp
bGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVudCYgY29udGV4dCkKKyAgICA6IG1fZG9j
dW1lbnQoY29udGV4dC5kb2N1bWVudCgpKQoreworICAgIGlmIChjb250ZXh0LnJlbmRlcmVyKCkg
JiYgY29udGV4dC5kb2N1bWVudCgpLnZpZXcoKSkgeworICAgICAgICBpZiAoY29udGV4dC5yZW5k
ZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKSB7CisgICAgICAgICAgICBt
X2ZvcmNlTGF5b3V0ID0gbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5pc0xheW91
dEZvcmNlZCgpOworICAgICAgICAgICAgbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQo
KS5zZXRMYXlvdXRGb3JjZWQodHJ1ZSk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK0NvbnRlbnRW
aXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZSgpCit7CisgICAgaWYgKG1fZm9yY2VMYXlvdXQpCisgICAgICAgIG1fZG9jdW1lbnQudmll
dygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKCptX2ZvcmNlTGF5b3V0KTsKK30K
Kwogdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwpAQCAtMjI4MSw3ICsyMjk4LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0
KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVy
bjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygp
ICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgaWYgKCFmcmFtZVZpZXctPmxh
eW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xh
eW91dCgpICYmICFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKQog
ICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5sYXlvdXQo
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggM2MyYjRiOWEwYzIwLi42OTAzYzAwOTk1YjYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNTIsNiArMzUyLDE2IEBAIHByaXZhdGU6CiAgICAgV2Vh
a1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50
OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHsKK3B1Ymxp
YzoKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVudCYp
OworICAgIH5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsKKworcHJpdmF0ZToK
KyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IG1fZm9yY2VMYXlvdXQ7CisgICAgRG9jdW1lbnQmIG1f
ZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5v
ZGUKICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKQEAgLTYzNiw3ICs2NDYsNyBAQCBwdWJsaWM6CiAg
ICAgdW5zaWduZWQgbGFzdFN0eWxlVXBkYXRlU2l6ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVy
biBtX2xhc3RTdHlsZVVwZGF0ZVNpemVGb3JUZXN0aW5nOyB9CiAKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHVwZGF0ZUxheW91dCgpOwotICAgIAorCiAgICAgLy8gdXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCkgZm9yY2VzIGxheW91dCBldmVuIGlmIHdlIGFyZSB3YWl0aW5n
IGZvciBwZW5kaW5nIHN0eWxlc2hlZXQgbG9hZHMsCiAgICAgLy8gc28gY2FsbGluZyB0aGlzIG1h
eSBjYXVzZSBhIGZsYXNoIG9mIHVuc3R5bGVkIGNvbnRlbnQgKEZPVUMpLgogICAgIGVudW0gY2xh
c3MgUnVuUG9zdExheW91dFRhc2tzIHsgQXN5bmNocm9ub3VzbHksIFN5bmNocm9ub3VzbHkgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyYTVjM2I3MzA5ZGEuLmM4MzI3M2JlMmZjMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTMxMCw2ICsxMzEwLDggQEAgaW50IEVsZW1lbnQ6Om9m
ZnNldFRvcEZvckJpbmRpbmdzKCkKIAogaW50IEVsZW1lbnQ6Om9mZnNldFRvcCgpCiB7CisgICAg
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgaWYg
KFJlbmRlckJveE1vZGVsT2JqZWN0KiByZW5kZXJlciA9IHJlbmRlckJveE1vZGVsT2JqZWN0KCkp
CiAgICAgICAgIHJldHVybiBhZGp1c3RPZmZzZXRGb3Jab29tQW5kU3VicGl4ZWxMYXlvdXQoKnJl
bmRlcmVyLCByZW5kZXJlci0+b2Zmc2V0VG9wKCkpOwpAQCAtMTQ3MCw2ICsxNDcyLDggQEAgaW50
IEVsZW1lbnQ6OnNjcm9sbExlZnQoKQogCiBpbnQgRWxlbWVudDo6c2Nyb2xsVG9wKCkKIHsKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAg
IGlmIChkb2N1bWVudCgpLnNjcm9sbGluZ0VsZW1lbnQoKSA9PSB0aGlzKSB7CkBAIC0xODE5LDYg
KzE4MjMsOCBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3QqLCBGbG9hdFJl
Y3Q+PiBFbGVtZW50Ojpib3VuZGluZ0Fic29sdXRlUmVjdAogCiBGbG9hdFJlY3QgRWxlbWVudDo6
Ym91bmRpbmdDbGllbnRSZWN0KCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0
U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBhdXRvIHBhaXIgPSBib3VuZGluZ0Fic29sdXRlUmVj
dFdpdGhvdXRMYXlvdXQoKTsKICAgICBpZiAoIXBhaXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
SW1hZ2VFbGVtZW50LmNwcAppbmRleCA4ZTM5NDAxOTZhOTkuLjQyNTMxNjM0YmRjMSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCkBAIC01MTQsNiArNTE0LDggQEAg
dW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoYm9vbCBpZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMpCiAgICAgICAgICAgICByZXR1cm4gbV9pbWFnZUxvYWRlci0+aW1hZ2UoKS0+aW1hZ2VT
aXplRm9yUmVuZGVyZXIocmVuZGVyZXIoKSwgMS4wZikud2lkdGgoKS50b1Vuc2lnbmVkKCk7CiAg
ICAgfQogCisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlz
KTsKKwogICAgIGlmIChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMpCiAgICAgICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgZWxzZQpAQCAt
NTM5LDYgKzU0MSw4IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodChib29sIGln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVy
LT5pbWFnZSgpLT5pbWFnZVNpemVGb3JSZW5kZXJlcihyZW5kZXJlcigpLCAxLjBmKS5oZWlnaHQo
KS50b1Vuc2lnbmVkKCk7CiAgICAgfQogCisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91
dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGlmIChpZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMp
CiAgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAgICAgZWxzZQpAQCAtNjcyLDYgKzY3Niw3IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6
c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkgY29u
c3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMp
OwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJl
cikKQEAgLTY4Myw2ICs2ODgsNyBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAK
IGludCBIVE1MSW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMt
PnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi42MWYyZjIwN2M4ZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNiArMTczLDggQEAgdW5zaWduZWQg
SW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAg
ICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoZWxlbWVudC5nZXQoKSk7
CisKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogCiAgICAgaWYgKGF1
dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKQEAgLTE5NSw2ICsxOTcsOCBAQCB1
bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50
KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkp
OwogCisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKGVsZW1lbnQu
Z2V0KCkpOworCiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKIAogICAg
IGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IGI5ZjFlNDNiZDQ1NC4uNjkx
MjExZGQ5ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29u
c3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsg
fQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQ
aGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGlu
UGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBo
YXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6
SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0
TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9y
Y2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91
dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBs
YXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTcxLDYg
KzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07
CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9z
ZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9y
Y2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhh
c2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDog
dWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXRO
ZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdElu
TGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCBk
NDAxMWVjNTI0MzMuLjFmOGQ4ZDNhOWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2suY3BwCkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRl
QmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChib29sIHJlbGF5b3V0Q2hpbGRyZW4sIFIK
IAogICAgIC8vIEZJWE1FOiBUZWNobmljYWxseSBwZXJjZW50YWdlIGhlaWdodCBvYmplY3RzIG9u
bHkgbmVlZCBhIHJlbGF5b3V0IGlmIHRoZWlyIHBlcmNlbnRhZ2UgaXNuJ3QgZ29pbmcgdG8gYmUg
dHVybmVkIGludG8KICAgICAvLyBhbiBhdXRvIHZhbHVlLiBBZGQgYSBtZXRob2QgdG8gZGV0ZXJt
aW5lIHRoaXMsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHRoZSByZWxheW91dC4KLSAgICBpZiAocmVs
YXlvdXRDaGlsZHJlbiB8fCAoY2hpbGQuaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgJiYgIWlz
UmVuZGVyVmlldygpKSkKKyAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiB8fCAvKmNoaWxkLmlzU2tp
cHBlZENvbnRlbnRGb3JMYXlvdXQoKSB8fCovIChjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWln
aHQoKSAmJiAhaXNSZW5kZXJWaWV3KCkpKQogICAgICAgICBjaGlsZC5zZXRDaGlsZE5lZWRzTGF5
b3V0KE1hcmtPbmx5VGhpcyk7CiAKICAgICAvLyBJZiByZWxheW91dENoaWxkcmVuIGlzIHNldCBh
bmQgdGhlIGNoaWxkIGhhcyBwZXJjZW50YWdlIHBhZGRpbmcgb3IgYW4gZW1iZWRkZWQgY29udGVu
dCBib3gsIHdlIGFsc28gbmVlZCB0byBpbnZhbGlkYXRlIHRoZSBjaGlsZHMgcHJlZiB3aWR0aHMu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDNm
MjBjZGI2MDYzZC4uNTNhNWQ2ZDM2YjdkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNjcwLDYgKzY3MCwxMSBAQCB2b2lkIFJlbmRlckJsb2Nr
Rmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVu
aXQmIG1heAogICAgICAgICBpZiAoY2hpbGQuaXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoKSkK
ICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgY2hpbGQsIHNpbmNlIGl0IHdpbGwg
YmUgcG9zaXRpb25lZCBieSB0aGUgc3BlY2lhbGl6ZWQgc3ViY2xhc3MgKGZpZWxkc2V0cyBhbmQg
cnVieSBydW5zKS4KIAorICAgICAgICBpZiAoaXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpICYm
ICFjaGlsZC5jYW5IYXZlQ2hpbGRyZW4oKSkgeworICAgICAgICAgICAgY2hpbGQuY2xlYXJOZWVk
c0xheW91dCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICB1
cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNo
aWxkKTsKIAogICAgICAgICBpZiAoY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNTM3MjhhMzY5Zjgw
Li4yYzlmNDAxYzc4NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCkBAIC0yNTc4LDYgKzI1NzgsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBD
b250ZW50KCkgY29uc3QKICAgICByZXR1cm4gc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09
IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CiB9CiAKK2Jvb2wgUmVuZGVyT2JqZWN0Ojppc1Nr
aXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS5lZmZl
Y3RpdmVTa2lwc0NvbnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQo
KS5pc0xheW91dEZvcmNlZCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJl
YW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJlbmRl
cmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaAppbmRleCAwN2VlMzNmZjhlYzAuLjIyNjg4NWFiYjlmZSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtODAxLDYgKzgwMSw3IEBAIHB1YmxpYzoKICAgICBi
b29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxkU2tpcENvbnRl
bnQoKSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdDsK
IAogcHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0
eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAK
aW5kZXggMmNkZDQzMWEyZDZjLi5kY2I3MDFmMjBiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODA4LDYgKzgwOCwxMCBAQCBzdGF0
aWMgYm9vbCByYXJlTm9uSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFN0
eWxlUmFyZU5vbkluaGVyaXRlZAogICAgICAgICB8fCBmaXJzdC5lZmZlY3RpdmVDb250YWlubWVu
dCgpLmNvbnRhaW5zKENvbnRhaW5tZW50OjpJbmxpbmVTaXplKSAhPSBzZWNvbmQuZWZmZWN0aXZl
Q29udGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6SW5saW5lU2l6ZSkpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCisgICAgLy8gY29udGVudC12aXNpYmlsaXk6IGhpZGRlbiBlbmFibGVk
IGNvbnRhaW46c2l6ZQorICAgIGlmICgoc3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KGZp
cnN0LmNvbnRlbnRWaXNpYmlsaXR5KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKSAhPSAo
c3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KHNlY29uZC5jb250ZW50VmlzaWJpbGl0eSkg
PT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbikpCisgICAgICAgIHJldHVybiB0cnVlOworCiAg
ICAgaWYgKGZpcnN0LnNjcm9sbFBhZGRpbmcgIT0gc2Vjb25kLnNjcm9sbFBhZGRpbmcpCiAgICAg
ICAgIHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9j
YXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCmluZGV4IGQ2
ZDlmOWNkMjU4Zi4uMzZhMmUzY2MzYzNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNw
cApAQCAtNjcsOCArNjcsMTAgQEAgU1ZHRWxlbWVudCogU1ZHTG9jYXRhYmxlOjpmYXJ0aGVzdFZp
ZXdwb3J0RWxlbWVudChjb25zdCBTVkdFbGVtZW50KiBlbGVtZW50KQogRmxvYXRSZWN0IFNWR0xv
Y2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5
IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwotICAgIGlmIChz
dHlsZVVwZGF0ZVN0cmF0ZWd5ID09IEFsbG93U3R5bGVVcGRhdGUpCisgICAgaWYgKHN0eWxlVXBk
YXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkgeworICAgICAgICBDb250ZW50VmlzaWJp
bGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKmVsZW1lbnQpOwogICAgICAgICBlbGVtZW50LT5k
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIH0K
IAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHNob3VsZCBzdXBwb3J0IGdldEJCb3ggZm9y
IGRldGFjaGVkIGVsZW1lbnRzLgogICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggYWNkMmVlYTgz
MGQzLi4xOWYyYTE0ZGQ4YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVu
dEVsZW1lbnQuY3BwCkBAIC01NSwxMiArNTUsMTQgQEAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpT
VkdUZXh0Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0K
IAogdW5zaWduZWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXROdW1iZXJPZkNoYXJzKCkKIHsK
KyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOwogICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAg
cmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5udW1iZXJPZkNoYXJhY3RlcnMoKTsKIH0K
IAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgoKQog
eworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CiAg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAg
ICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KQEAgLTEw
OSw2ICsxMTEsNyBAQCBFeGNlcHRpb25PcjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50Ojpn
ZXRSb3RhdGlvbk9mQ2hhcih1bnNpZ25lZCBjaGFybnVtKQogCiBpbnQgU1ZHVGV4dENvbnRlbnRF
bGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbihET01Qb2ludEluaXQmJiBwb2ludEluaXQpCiB7
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKICAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAg
IEZsb2F0UG9pbnQgdHJhbnNmb3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQu
eCksIHN0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdUZXh0
UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Qb2lu
dCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBkZjQ0YWFkYmE4MTMuLmY2YzU0OWNkMjcxYiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCkBAIC00ODg2LDggKzQ4ODYsNiBAQCB3ZWJhbmltYXRpb25zL3RyYW5z
bGF0ZS1wcm9wZXJ0eS1hbmQtdHJhbnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNl
ZC1sYQogIyBDU1MgY29udGFpbm1lbnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJmYy1m
bG9hdHMtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmluc2lj
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KIGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0
eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4
LWV4cGVjdGVkLnR4dAppbmRleCAxZWNlN2E5N2M0YmYuLmJjZmM3ODlmYTQwYSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzgtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4
cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAKIAotRkFJTCBNZWFzdXJlIEZvcmNlZCBMYXlvdXQg
YXNzZXJ0X2VxdWFsczogc3BhY2VyIHdoZW4gdmlzaWJsZSBleHBlY3RlZCAxMDggYnV0IGdvdCA4
CitQQVNTIE1lYXN1cmUgRm9yY2VkIExheW91dAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50
cmluc2ljLXNpemUvYXV0by0wMDYtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1z
aXplL2F1dG8tMDA2LWV4cGVjdGVkLnR4dAppbmRleCBmYWU5MGMzZjQyNTEuLmEyOTc5OWYwNzcz
ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA2LWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDYtZXhwZWN0ZWQudHh0
CkBAIC0xLDE4ICsxLDE4IEBACiAKLUZBSUwgQmFzaWMgdXNhZ2UgYXNzZXJ0X2VxdWFsczogU2l6
aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBC
YXNpYyB1c2FnZSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNs
aWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKIEZBSUwgTGFzdCByZW1lbWJlcmVkIHNp
emUgY2FuIGJlIDAgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBj
bGllbnRXaWR0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6
ZSBjYW4gYmUgc2V0IHRvIDAgYWZ0ZXIgbG9zaW5nIGRpc3BsYXk6bm9uZSBhc3NlcnRfZXF1YWxz
OiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1G
QUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGlzIGxvZ2ljYWwgYXNzZXJ0X2VxdWFsczogU2l6aW5n
IG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMYXN0
IHJlbWVtYmVyZWQgc2l6ZSBzdXJ2aXZlcyBib3ggZGVzdHJ1Y3Rpb24gYXNzZXJ0X2VxdWFsczog
U2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJ
TCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBzdXJ2aXZlcyBkaXNwbGF5IHR5cGUgY2hhbmdlcyBhc3Nl
cnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0
IGdvdCAxCi1GQUlMIExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXpl
IGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEw
MCBidXQgZ290IDEKLUZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVk
IHNpemUgZXZlbiBpZiBzaXplIGRvZXNuJ3QgY2hhbmdlIGFzc2VydF9lcXVhbHM6IFNpemluZyBu
b3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTG9zaW5n
IGNpczphdXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUgaW1tZWRpYXRlbHkgYXNzZXJ0
X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBn
b3QgMQotRkFJTCBMb3NpbmcgY2lzOmF1dG8gZHVyaW5nIGRpc3BsYXk6bm9uZSBkb2Vzbid0IHJl
bW92ZSBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkg
LSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIExhY2sgb2YgY2lzOmF1
dG8gZHVyaW5nIGJveCBjcmVhdGlvbiByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2Vy
dF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQg
Z290IDEKLUZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJlIHJlbW92ZWQgc3luY2hyb25v
dXNseSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3Rl
ZCAxMDAgYnV0IGdvdCAxCi1GQUlMIERpc2Nvbm5lY3RlZCBlbGVtZW50IGNhbiBicmllZmx5IGtl
ZXAgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0g
Y2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBEaXNjb25uZWN0ZWQgZWxl
bWVudCBlbmRzIHVwIGxvc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBT
aXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlM
IExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSBzZXQgdG8gMCBhZnRlciBsb3NpbmcgZGlzcGxh
eTpub25lIGFzc2VydF9lcXVhbHM6IFVzaW5nIHRoZSBuZXcgbGFzdCByZW1lbWJlcmVkIHNpemUg
LSBjbGllbnRXaWR0aCBleHBlY3RlZCAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0IHJlbWVtYmVyZWQg
c2l6ZSBpcyBsb2dpY2FsIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXpl
IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYXN0IHJlbWVtYmVy
ZWQgc2l6ZSBzdXJ2aXZlcyBib3ggZGVzdHJ1Y3Rpb24gYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFz
dCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitG
QUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGRpc3BsYXkgdHlwZSBjaGFuZ2VzIGFz
c2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhw
ZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJl
bWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAt
IGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK1BBU1MgTG9zaW5nIGNpczphdXRv
IHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUgZXZlbiBpZiBzaXplIGRvZXNuJ3QgY2hhbmdl
CitGQUlMIExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxhc3QgcmVtZW1iZXJlZCBzaXplIGltbWVk
aWF0ZWx5IGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50
V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMb3NpbmcgY2lzOmF1dG8gZHVyaW5n
IGRpc3BsYXk6bm9uZSBkb2Vzbid0IHJlbW92ZSBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRf
ZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVk
IDEwMCBidXQgZ290IDEKK0ZBSUwgTGFjayBvZiBjaXM6YXV0byBkdXJpbmcgYm94IGNyZWF0aW9u
IHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCBy
ZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlM
IExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSByZW1vdmVkIHN5bmNocm9ub3VzbHkgYXNzZXJ0
X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3Rl
ZCAxMDAgYnV0IGdvdCAxCitGQUlMIERpc2Nvbm5lY3RlZCBlbGVtZW50IGNhbiBicmllZmx5IGtl
ZXAgbGFzdCByZW1lbWJlcmVkIHNpemUgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJl
cmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIERpc2Nv
bm5lY3RlZCBlbGVtZW50IGVuZHMgdXAgbG9zaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2Vy
dF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0
ZWQgMTAwIGJ1dCBnb3QgMQogUEFTUyBEaXNjb25uZWN0ZWQgZWxlbWVudCBlbmRzIHVwIGxvc2lu
ZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBldmVuIGlmIHNpemUgd2FzIDB4MAogRkFJTCBMYXN0IHJl
bWVtYmVyZWQgc2l6ZSBzdXJ2aXZlcyBiZWNvbWluZyBpbmxpbmUgYXNzZXJ0X2VxdWFsczogU3Rp
bGwgdXNpbmcgcHJldmlvdXMgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBl
Y3RlZCAxMDAgYnV0IGdvdCAxCiBGQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIGNhbiBiZSBzZXQg
dG8gMHgwIGFmdGVyIGxvc2luZyBkaXNwbGF5OmlubGluZSBhc3NlcnRfZXF1YWxzOiBMYXN0IHJl
bWVtYmVyZWQgc2l6ZSBpcyBub3cgMHgwIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMCBidXQgZ290
IDEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDgtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDNiMTM5MjdlZmUzZi4uNGRkNDgwMjQ3ZjUyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50
cmluc2ljLXNpemUvYXV0by0wMDgtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5z
aWMtc2l6ZS9hdXRvLTAwOC1leHBlY3RlZC50eHQKQEAgLTEsNSArMSw1IEBACiAKLUZBSUwgcmVx
dWVzdEFuaW1hdGlvbkZyYW1lIGFzc2VydF9lcXVhbHM6IE5vIGxhc3QgcmVtZW1iZXJlZCBzaXpl
IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgNDAgYnV0IGdvdCAxMDAKLVBBU1MgRWFybHkgUmVzaXpl
T2JzZXJ2ZXIKLVBBU1MgTGF0ZSBSZXNpemVPYnNlcnZlcgorUEFTUyByZXF1ZXN0QW5pbWF0aW9u
RnJhbWUKK0ZBSUwgRWFybHkgUmVzaXplT2JzZXJ2ZXIgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFz
dCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCA0MAor
RkFJTCBMYXRlIFJlc2l6ZU9ic2VydmVyIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1i
ZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgNDAKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>463827</attachid>
            <date>2022-12-01 03:10:37 -0800</date>
            <delta_ts>2022-12-16 01:47:47 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221201111036.patch</filename>
            <type>text/plain</type>
            <size>21943</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAxMjg1NGIzZDMzY2Q5ZGNlYTdiNmNjOGY3NzlkYjFlMTZlMTkyNGEwIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMiBOb3YgMjAyMiAxNDozNDozNCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzEtZXhwZWN0ZWQudHh0OgoqIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM4LWV4cGVjdGVkLnR4dDoKKiBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA4MC1leHBlY3RlZC50eHQ6CiogU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkRvY3VtZW50Ojp1cGRhdGVMYXlvdXQp
OgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cyk6CiogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zmc2V0VG9wKToKKFdlYkNvcmU6OkVs
ZW1lbnQ6OnNjcm9sbFRvcCk6CihXZWJDb3JlOjpFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHA6CihXZWJDb3JlOjpI
VE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCk6CihXZWJDb3JlOjpIVE1MSW1hZ2VFbGVtZW50OjpoZWln
aHQpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6eCBjb25zdCk6CihXZWJDb3JlOjpIVE1M
SW1hZ2VFbGVtZW50Ojp5IGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRU
eXBlLmNwcDoKKFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjpoZWlnaHQgY29uc3QpOgooV2ViQ29y
ZTo6SW1hZ2VJbnB1dFR5cGU6OndpZHRoIGNvbnN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuaDoKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6
OnNldExheW91dEZvcmNlZCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrKToKKiBTb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0YWJsZTo6
Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHA6
CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMpOgooV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgpOgooV2Vi
Q29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6Ci0tLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgIHwgMTcgKysrKysr
KysrKystCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAg
OSArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICAg
fCAgNiArKysrKwogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAg
IHwgIDggKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCAgICAg
ICAgfCAgNCArKysKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
ICB8ICAzICsrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcCAgICAg
IHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwICB8
ICA1ICsrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICB8
ICA1ICsrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAgICB8
ICAxICsKIC4uLi9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAgICB8ICA0
ICsrKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgIHwgIDUg
KysrLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgIHwgIDYg
KysrKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgICB8ICAy
IC0tCiAuLi4vY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBlY3RlZC50eHQgICAgICAgfCAgMiAr
LQogLi4uL2F1dG8tMDA2LWV4cGVjdGVkLnR4dCAgICAgICAgICAgICAgICAgICAgIHwgMjYgKysr
KysrKysrLS0tLS0tLS0tLQogLi4uL2F1dG8tMDA4LWV4cGVjdGVkLnR4dCAgICAgICAgICAgICAg
ICAgICAgIHwgIDYgKystLS0KIDE3IGZpbGVzIGNoYW5nZWQsIDg5IGluc2VydGlvbnMoKyksIDIy
IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IGI0MDRiNmFlMDlhNi4u
YTJkMjJhYTAwYTdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIyNTgsNiArMjI1OCwy
MSBAQCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkKICAgICByZXR1cm4gdHJ1
ZTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJp
bGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVudCYgY29udGV4dCkKKyAgICA6IG1fZG9j
dW1lbnQoY29udGV4dC5kb2N1bWVudCgpKQoreworICAgIGlmIChjb250ZXh0LnJlbmRlcmVyKCkg
JiYgY29udGV4dC5yZW5kZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKSB7
CisgICAgICAgIGlmIChtX2RvY3VtZW50LnZpZXcoKSkKKyAgICAgICAgICAgIG1fZG9jdW1lbnQu
dmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKHRydWUpOworICAgIH0KK30K
KworQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjp+Q29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlKCkKK3sKKyAgICBpZiAobV9kb2N1bWVudC52aWV3KCkpCisgICAgICAg
IG1fZG9jdW1lbnQudmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKGZhbHNl
KTsKK30KKwogdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaXNN
YWluVGhyZWFkKCkpOwpAQCAtMjI4MSw3ICsyMjk2LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRl
TGF5b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAg
IHJldHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVu
ZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgaWYgKCFmcmFtZVZp
ZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5u
ZWVkc0xheW91dCgpICYmICFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNl
ZCgpKQogICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5s
YXlvdXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggN2Q4N2ZmOGE3OTc0Li40M2NiNDVhZDg1
MmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNTIsNiArMzUyLDE1IEBAIHByaXZhdGU6CiAg
ICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2Rv
Y3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHsK
K3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxl
bWVudCYpOworICAgIH5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsKKworcHJp
dmF0ZToKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3VtZW50CiAg
ICAgOiBwdWJsaWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCmluZGV4IDJhNWMzYjczMDlkYS4uYzgzMjczYmUyZmMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCkBAIC0xMzEwLDYgKzEzMTAsOCBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0VG9w
Rm9yQmluZGluZ3MoKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wKCkKIHsKKyAgICBDb250ZW50
VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBpZiAoUmVuZGVy
Qm94TW9kZWxPYmplY3QqIHJlbmRlcmVyID0gcmVuZGVyQm94TW9kZWxPYmplY3QoKSkKICAgICAg
ICAgcmV0dXJuIGFkanVzdE9mZnNldEZvclpvb21BbmRTdWJwaXhlbExheW91dCgqcmVuZGVyZXIs
IHJlbmRlcmVyLT5vZmZzZXRUb3AoKSk7CkBAIC0xNDcwLDYgKzE0NzIsOCBAQCBpbnQgRWxlbWVu
dDo6c2Nyb2xsTGVmdCgpCiAKIGludCBFbGVtZW50OjpzY3JvbGxUb3AoKQogeworICAgIENvbnRl
bnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKGRv
Y3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKQEAgLTE4MTksNiArMTgyMyw4
IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVjdD4+IEVs
ZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpib3VuZGlu
Z0NsaWVudFJlY3QoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBz
Y29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogICAgIGF1dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91
dExheW91dCgpOwogICAgIGlmICghcGFpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCmluZGV4IDkzMmU1YjAwYzI2Ny4uMmNmMTNhZTk2NjQ3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUxNCw2ICs1MTQsOCBAQCB1bnNpZ25l
ZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aChib29sIGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykK
ICAgICAgICAgICAgIHJldHVybiBtX2ltYWdlTG9hZGVyLT5pbWFnZSgpLT5pbWFnZVNpemVGb3JS
ZW5kZXJlcihyZW5kZXJlcigpLCAxLjBmKS53aWR0aCgpLnRvVW5zaWduZWQoKTsKICAgICB9CiAK
KyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAg
ICAgaWYgKGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICAgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBlbHNlCkBAIC01MzksNiAr
NTQxLDggQEAgdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0KGJvb2wgaWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKQogICAgICAgICAgICAgcmV0dXJuIG1faW1hZ2VMb2FkZXItPmltYWdl
KCktPmltYWdlU2l6ZUZvclJlbmRlcmVyKHJlbmRlcmVyKCksIDEuMGYpLmhlaWdodCgpLnRvVW5z
aWduZWQoKTsKICAgICB9CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUg
c2NvcGUoKnRoaXMpOworCiAgICAgaWYgKGlnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cykKICAgICAg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAg
ICBlbHNlCkBAIC02NzIsNiArNjc2LDggQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0
aCh1bnNpZ25lZCB2YWx1ZSkKIAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogewor
ICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAg
IGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpCkBA
IC02ODMsNiArNjg5LDggQEAgaW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogCiBpbnQg
SFRNTEltYWdlRWxlbWVudDo6eSgpIGNvbnN0CiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3Jj
ZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0
SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJl
bmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0
VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi42MWYyZjIwN2M4ZTEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNiArMTczLDggQEAgdW5zaWduZWQgSW1h
Z2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAg
UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKKyAgICBD
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoZWxlbWVudC5nZXQoKSk7CisK
ICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogCiAgICAgaWYgKGF1dG8q
IHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKQEAgLTE5NSw2ICsxOTcsOCBAQCB1bnNp
Z25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkp
OwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwog
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKGVsZW1lbnQuZ2V0
KCkpOworCiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKIAogICAgIGlm
IChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IGI5ZjFlNDNiZDQ1NC4uNjkxMjEx
ZGQ5ZTNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
aApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3Qg
eyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQog
ICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFz
ZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFp
bnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNl
OjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5W
aWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5
b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2Vk
KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZv
cmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlv
dXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTcxLDYgKzE3
Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAg
ICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXRO
ZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2Vk
IHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6
Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDogdWlu
dDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0
ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5
b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2su
Y3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrLmNwcAppbmRleCA2ZTVk
NzU5OTQwN2UuLmVmOTlkZjlmZjY3ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlckJsb2NrLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
QmxvY2suY3BwCkBAIC04MzcsNyArODM3LDcgQEAgdm9pZCBSZW5kZXJCbG9jazo6dXBkYXRlQmxv
Y2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChib29sIHJlbGF5b3V0Q2hpbGRyZW4sIFIKIAog
ICAgIC8vIEZJWE1FOiBUZWNobmljYWxseSBwZXJjZW50YWdlIGhlaWdodCBvYmplY3RzIG9ubHkg
bmVlZCBhIHJlbGF5b3V0IGlmIHRoZWlyIHBlcmNlbnRhZ2UgaXNuJ3QgZ29pbmcgdG8gYmUgdHVy
bmVkIGludG8KICAgICAvLyBhbiBhdXRvIHZhbHVlLiBBZGQgYSBtZXRob2QgdG8gZGV0ZXJtaW5l
IHRoaXMsIHNvIHRoYXQgd2UgY2FuIGF2b2lkIHRoZSByZWxheW91dC4KLSAgICBpZiAocmVsYXlv
dXRDaGlsZHJlbiB8fCAoY2hpbGQuaGFzUmVsYXRpdmVMb2dpY2FsSGVpZ2h0KCkgJiYgIWlzUmVu
ZGVyVmlldygpKSkKKyAgICBpZiAocmVsYXlvdXRDaGlsZHJlbiB8fCAvKmNoaWxkLmlzU2tpcHBl
ZENvbnRlbnRGb3JMYXlvdXQoKSB8fCovIChjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQo
KSAmJiAhaXNSZW5kZXJWaWV3KCkpKQogICAgICAgICBjaGlsZC5zZXRDaGlsZE5lZWRzTGF5b3V0
KE1hcmtPbmx5VGhpcyk7CiAKICAgICAvLyBJZiByZWxheW91dENoaWxkcmVuIGlzIHNldCBhbmQg
dGhlIGNoaWxkIGhhcyBwZXJjZW50YWdlIHBhZGRpbmcgb3IgYW4gZW1iZWRkZWQgY29udGVudCBi
b3gsIHdlIGFsc28gbmVlZCB0byBpbnZhbGlkYXRlIHRoZSBjaGlsZHMgcHJlZiB3aWR0aHMuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDJhZGE5
ZGM1MTZiOC4uNDgwZjY1NGJkM2Q3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcApAQCAtNjcwLDYgKzY3MCwxMSBAQCB2b2lkIFJlbmRlckJsb2NrRmxv
dzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQm
IG1heAogICAgICAgICBpZiAoY2hpbGQuaXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoKSkKICAg
ICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgY2hpbGQsIHNpbmNlIGl0IHdpbGwgYmUg
cG9zaXRpb25lZCBieSB0aGUgc3BlY2lhbGl6ZWQgc3ViY2xhc3MgKGZpZWxkc2V0cyBhbmQgcnVi
eSBydW5zKS4KIAorICAgICAgICBpZiAoaXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpICYmICFj
aGlsZC5jYW5IYXZlQ2hpbGRyZW4oKSkgeworICAgICAgICAgICAgY2hpbGQuY2xlYXJOZWVkc0xh
eW91dCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICB1cGRh
dGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNoaWxk
KTsKIAogICAgICAgICBpZiAoY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNGVmZWViNzNjMTBhLi42
NDdiZTMyY2IwMDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CkBAIC0yNjIyLDYgKzI2MjIsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBDb250
ZW50KCkgY29uc3QKICAgICByZXR1cm4gc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENv
bnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CiB9CiAKK2Jvb2wgUmVuZGVyT2JqZWN0Ojppc1NraXBw
ZWRDb250ZW50Rm9yTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gc3R5bGUoKS5lZmZlY3Rp
dmVTa2lwc0NvbnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5p
c0xheW91dEZvcmNlZCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVy
LmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCA0ZmExZjE3YTc2ZGUuLjY2NmQzMjMxZDRhMyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtODA0LDYgKzgwNCw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQo
KSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdDsKIAog
cHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKaW5k
ZXggMmNkZDQzMWEyZDZjLi5kY2I3MDFmMjBiZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtODA4LDYgKzgwOCwxMCBAQCBzdGF0aWMg
Ym9vbCByYXJlTm9uSW5oZXJpdGVkRGF0YUNoYW5nZVJlcXVpcmVzTGF5b3V0KGNvbnN0IFN0eWxl
UmFyZU5vbkluaGVyaXRlZAogICAgICAgICB8fCBmaXJzdC5lZmZlY3RpdmVDb250YWlubWVudCgp
LmNvbnRhaW5zKENvbnRhaW5tZW50OjpJbmxpbmVTaXplKSAhPSBzZWNvbmQuZWZmZWN0aXZlQ29u
dGFpbm1lbnQoKS5jb250YWlucyhDb250YWlubWVudDo6SW5saW5lU2l6ZSkpCiAgICAgICAgIHJl
dHVybiB0cnVlOwogCisgICAgLy8gY29udGVudC12aXNpYmlsaXk6IGhpZGRlbiBlbmFibGVkIGNv
bnRhaW46c2l6ZQorICAgIGlmICgoc3RhdGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KGZpcnN0
LmNvbnRlbnRWaXNpYmlsaXR5KSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuKSAhPSAoc3Rh
dGljX2Nhc3Q8Q29udGVudFZpc2liaWxpdHk+KHNlY29uZC5jb250ZW50VmlzaWJpbGl0eSkgPT0g
Q29udGVudFZpc2liaWxpdHk6OkhpZGRlbikpCisgICAgICAgIHJldHVybiB0cnVlOworCiAgICAg
aWYgKGZpcnN0LnNjcm9sbFBhZGRpbmcgIT0gc2Vjb25kLnNjcm9sbFBhZGRpbmcpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRh
YmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCmluZGV4IGQ2ZDlm
OWNkMjU4Zi4uM2Y2YWFjNDQ0OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZH
TG9jYXRhYmxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcApA
QCAtNjcsOCArNjcsMTEgQEAgU1ZHRWxlbWVudCogU1ZHTG9jYXRhYmxlOjpmYXJ0aGVzdFZpZXdw
b3J0RWxlbWVudChjb25zdCBTVkdFbGVtZW50KiBlbGVtZW50KQogRmxvYXRSZWN0IFNWR0xvY2F0
YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0
eWxlVXBkYXRlU3RyYXRlZ3kpCiB7CiAgICAgQVNTRVJUKGVsZW1lbnQpOwotICAgIGlmIChzdHls
ZVVwZGF0ZVN0cmF0ZWd5ID09IEFsbG93U3R5bGVVcGRhdGUpCisgICAgaWYgKHN0eWxlVXBkYXRl
U3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkgeworICAgICAgICBDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKmVsZW1lbnQpOworCiAgICAgICAgIGVsZW1lbnQtPmRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgfQog
CiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkgd2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJveCBmb3Ig
ZGV0YWNoZWQgZWxlbWVudHMuCiAgICAgaWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAppbmRleCBhY2QyZWVhODMw
ZDMuLjQ0ODk2ODFjOTkwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50
RWxlbWVudC5jcHAKQEAgLTU1LDEyICs1NSwxNiBAQCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNW
R1RleHRDb250ZW50RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQog
CiB1bnNpZ25lZCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMoKQogewor
ICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAg
ICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAg
IHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9
CiAKIGZsb2F0IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkK
IHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOwor
CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
ICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KQEAg
LTEwOSw2ICsxMTMsOCBAQCBFeGNlcHRpb25PcjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50
OjpnZXRSb3RhdGlvbk9mQ2hhcih1bnNpZ25lZCBjaGFybnVtKQogCiBpbnQgU1ZHVGV4dENvbnRl
bnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbihET01Qb2ludEluaXQmJiBwb2ludEluaXQp
CiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsK
KwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7
CiAgICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1Qb2ludCB7c3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50
SW5pdC54KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50SW5pdC55KX07CiAgICAgcmV0dXJuIFNW
R1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHRyYW5zZm9y
bVBvaW50KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDM5ZjM3ZGVlZDI1OC4uZDJlZDkzMmRkZWYy
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRl
c3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4NTQsOCArNDg1NCw2IEBAIHdlYmFuaW1hdGlvbnMv
dHJhbnNsYXRlLXByb3BlcnR5LWFuZC10cmFuc2xhdGUtYW5pbWF0aW9uLXdpdGgtZGVsYXktb24t
Zm9yY2VkLWxhCiAjIENTUyBjb250YWlubWVudCB0ZXN0cyB0aGF0IGZhaWwKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUt
YmZjLWZsb2F0cy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRy
aW5zaWMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotIyBmb3JjZWQgbGF5b3V0Ci1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0bwogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUg
XQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzgtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzgtZXhwZWN0ZWQudHh0CmluZGV4IDFlY2U3YTk3YzRiZi4uYmNmYzc4OWZhNDBhIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzOC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
MzgtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIE1lYXN1cmUgRm9yY2VkIExh
eW91dCBhc3NlcnRfZXF1YWxzOiBzcGFjZXIgd2hlbiB2aXNpYmxlIGV4cGVjdGVkIDEwOCBidXQg
Z290IDgKK1BBU1MgTWVhc3VyZSBGb3JjZWQgTGF5b3V0CiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFp
bi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmlu
c2ljLXNpemUvYXV0by0wMDYtZXhwZWN0ZWQudHh0CmluZGV4IGZhZTkwYzNmNDI1MS4uYTI5Nzk5
ZjA3NzNlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3Mtc2l6aW5nL2NvbnRhaW4taW50cmluc2ljLXNpemUvYXV0by0wMDYtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwNi1leHBlY3Rl
ZC50eHQKQEAgLTEsMTggKzEsMTggQEAKIAotRkFJTCBCYXNpYyB1c2FnZSBhc3NlcnRfZXF1YWxz
OiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitG
QUlMIEJhc2ljIHVzYWdlIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXpl
IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQogRkFJTCBMYXN0IHJlbWVtYmVy
ZWQgc2l6ZSBjYW4gYmUgMCBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6
ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCi1GQUlMIExhc3QgcmVtZW1iZXJl
ZCBzaXplIGNhbiBiZSBzZXQgdG8gMCBhZnRlciBsb3NpbmcgZGlzcGxheTpub25lIGFzc2VydF9l
cXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290
IDEKLUZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgaXMgbG9naWNhbCBhc3NlcnRfZXF1YWxzOiBT
aXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlM
IExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGJveCBkZXN0cnVjdGlvbiBhc3NlcnRfZXF1
YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAx
Ci1GQUlMIExhc3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGRpc3BsYXkgdHlwZSBjaGFuZ2Vz
IGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEw
MCBidXQgZ290IDEKLUZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVk
IHNpemUgYXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0
ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBMb3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVt
YmVyZWQgc2l6ZSBldmVuIGlmIHNpemUgZG9lc24ndCBjaGFuZ2UgYXNzZXJ0X2VxdWFsczogU2l6
aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQotRkFJTCBM
b3NpbmcgY2lzOmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBpbW1lZGlhdGVseSBh
c3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFsbHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAg
YnV0IGdvdCAxCi1GQUlMIExvc2luZyBjaXM6YXV0byBkdXJpbmcgZGlzcGxheTpub25lIGRvZXNu
J3QgcmVtb3ZlIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFNpemluZyBub3Jt
YWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgTGFjayBvZiBj
aXM6YXV0byBkdXJpbmcgYm94IGNyZWF0aW9uIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUg
YXNzZXJ0X2VxdWFsczogU2l6aW5nIG5vcm1hbGx5IC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAw
IGJ1dCBnb3QgMQotRkFJTCBMYXN0IHJlbWVtYmVyZWQgc2l6ZSBjYW4gYmUgcmVtb3ZlZCBzeW5j
aHJvbm91c2x5IGFzc2VydF9lcXVhbHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4
cGVjdGVkIDEwMCBidXQgZ290IDEKLUZBSUwgRGlzY29ubmVjdGVkIGVsZW1lbnQgY2FuIGJyaWVm
bHkga2VlcCBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBTaXppbmcgbm9ybWFs
bHkgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCi1GQUlMIERpc2Nvbm5lY3Rl
ZCBlbGVtZW50IGVuZHMgdXAgbG9zaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVh
bHM6IFNpemluZyBub3JtYWxseSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEK
K0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJlIHNldCB0byAwIGFmdGVyIGxvc2luZyBk
aXNwbGF5Om5vbmUgYXNzZXJ0X2VxdWFsczogVXNpbmcgdGhlIG5ldyBsYXN0IHJlbWVtYmVyZWQg
c2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDAgYnV0IGdvdCAxCitGQUlMIExhc3QgcmVtZW1i
ZXJlZCBzaXplIGlzIGxvZ2ljYWwgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVk
IHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExhc3QgcmVt
ZW1iZXJlZCBzaXplIHN1cnZpdmVzIGJveCBkZXN0cnVjdGlvbiBhc3NlcnRfZXF1YWxzOiBVc2lu
ZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290
IDEKK0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgc3Vydml2ZXMgZGlzcGxheSB0eXBlIGNoYW5n
ZXMgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0
aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExvc2luZyBjaXM6YXV0byByZW1vdmVzIGxh
c3QgcmVtZW1iZXJlZCBzaXplIGFzc2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBz
aXplIC0gY2xpZW50V2lkdGggZXhwZWN0ZWQgMTAwIGJ1dCBnb3QgMQorUEFTUyBMb3NpbmcgY2lz
OmF1dG8gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBldmVuIGlmIHNpemUgZG9lc24ndCBj
aGFuZ2UKK0ZBSUwgTG9zaW5nIGNpczphdXRvIHJlbW92ZXMgbGFzdCByZW1lbWJlcmVkIHNpemUg
aW1tZWRpYXRlbHkgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBj
bGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCAxCitGQUlMIExvc2luZyBjaXM6YXV0byBk
dXJpbmcgZGlzcGxheTpub25lIGRvZXNuJ3QgcmVtb3ZlIGxhc3QgcmVtZW1iZXJlZCBzaXplIGFz
c2VydF9lcXVhbHM6IFVzaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIC0gY2xpZW50V2lkdGggZXhw
ZWN0ZWQgMTAwIGJ1dCBnb3QgMQorRkFJTCBMYWNrIG9mIGNpczphdXRvIGR1cmluZyBib3ggY3Jl
YXRpb24gcmVtb3ZlcyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBVc2luZyBs
YXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEK
K0ZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJlIHJlbW92ZWQgc3luY2hyb25vdXNseSBh
c3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4
cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwgRGlzY29ubmVjdGVkIGVsZW1lbnQgY2FuIGJyaWVm
bHkga2VlcCBsYXN0IHJlbWVtYmVyZWQgc2l6ZSBhc3NlcnRfZXF1YWxzOiBVc2luZyBsYXN0IHJl
bWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290IDEKK0ZBSUwg
RGlzY29ubmVjdGVkIGVsZW1lbnQgZW5kcyB1cCBsb3NpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUg
YXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCByZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBl
eHBlY3RlZCAxMDAgYnV0IGdvdCAxCiBQQVNTIERpc2Nvbm5lY3RlZCBlbGVtZW50IGVuZHMgdXAg
bG9zaW5nIGxhc3QgcmVtZW1iZXJlZCBzaXplIGV2ZW4gaWYgc2l6ZSB3YXMgMHgwCiBGQUlMIExh
c3QgcmVtZW1iZXJlZCBzaXplIHN1cnZpdmVzIGJlY29taW5nIGlubGluZSBhc3NlcnRfZXF1YWxz
OiBTdGlsbCB1c2luZyBwcmV2aW91cyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRo
IGV4cGVjdGVkIDEwMCBidXQgZ290IDEKIEZBSUwgTGFzdCByZW1lbWJlcmVkIHNpemUgY2FuIGJl
IHNldCB0byAweDAgYWZ0ZXIgbG9zaW5nIGRpc3BsYXk6aW5saW5lIGFzc2VydF9lcXVhbHM6IExh
c3QgcmVtZW1iZXJlZCBzaXplIGlzIG5vdyAweDAgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAwIGJ1
dCBnb3QgMQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWludHJpbnNpYy1zaXplL2F1dG8tMDA4LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
Y3NzL2Nzcy1zaXppbmcvY29udGFpbi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOC1leHBlY3RlZC50
eHQKaW5kZXggM2IxMzkyN2VmZTNmLi40ZGQ0ODAyNDdmNTIgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1zaXppbmcvY29udGFp
bi1pbnRyaW5zaWMtc2l6ZS9hdXRvLTAwOC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLXNpemluZy9jb250YWluLWlu
dHJpbnNpYy1zaXplL2F1dG8tMDA4LWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAotRkFJ
TCByZXF1ZXN0QW5pbWF0aW9uRnJhbWUgYXNzZXJ0X2VxdWFsczogTm8gbGFzdCByZW1lbWJlcmVk
IHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCA0MCBidXQgZ290IDEwMAotUEFTUyBFYXJseSBS
ZXNpemVPYnNlcnZlcgotUEFTUyBMYXRlIFJlc2l6ZU9ic2VydmVyCitQQVNTIHJlcXVlc3RBbmlt
YXRpb25GcmFtZQorRkFJTCBFYXJseSBSZXNpemVPYnNlcnZlciBhc3NlcnRfZXF1YWxzOiBVc2lu
ZyBsYXN0IHJlbWVtYmVyZWQgc2l6ZSAtIGNsaWVudFdpZHRoIGV4cGVjdGVkIDEwMCBidXQgZ290
IDQwCitGQUlMIExhdGUgUmVzaXplT2JzZXJ2ZXIgYXNzZXJ0X2VxdWFsczogVXNpbmcgbGFzdCBy
ZW1lbWJlcmVkIHNpemUgLSBjbGllbnRXaWR0aCBleHBlY3RlZCAxMDAgYnV0IGdvdCA0MAogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464073</attachid>
            <date>2022-12-16 01:47:52 -0800</date>
            <delta_ts>2023-01-16 03:33:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20221216094751.patch</filename>
            <type>text/plain</type>
            <size>14738</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA3ODk4YzNlNzAwYTVkYTlkNTQxZmIzNDkwM2U2M2UzZTI1Mzg0NjkxIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogRnJp
LCAxNiBEZWMgMjAyMiAwOTo0MzoxMiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcDoKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJDb3Jl
OjpFbGVtZW50OjpvZmZzZXRUb3ApOgooV2ViQ29yZTo6RWxlbWVudDo6c2Nyb2xsVG9wKToKKFdl
YkNvcmU6OkVsZW1lbnQ6OmJvdW5kaW5nQ2xpZW50UmVjdCk6CiogU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcDoKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OndpZHRo
KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OmhlaWdodCk6CihXZWJDb3JlOjpIVE1MSW1h
Z2VFbGVtZW50Ojp4IGNvbnN0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnkgY29uc3Qp
OgoqIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwOgooV2ViQ29yZTo6SW1h
Z2VJbnB1dFR5cGU6OmhlaWdodCBjb25zdCk6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6d2lk
dGggY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
OgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6aXNMYXlvdXRGb3JjZWQgY29uc3Qp
OgooV2ViQ29yZTo6RnJhbWVWaWV3TGF5b3V0Q29udGV4dDo6c2V0TGF5b3V0Rm9yY2VkKToKKiBT
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwOgooV2ViQ29yZTo6UmVuZGVy
QmxvY2s6OnVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZvcmVMYXlvdXQpOgoqIFNvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxv
Y2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVuKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcDoKKFdlYkNvcmU6OlJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVu
dEZvckxheW91dCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6U1ZH
TG9jYXRhYmxlOjpnZXRCQm94KToKKiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcDoKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZD
aGFycyk6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExl
bmd0aCk6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0
aW9uKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICB8
IDE3ICsrKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAg
ICAgICAgICAgICB8ICA5ICsrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
ICAgICAgICAgICAgICAgfCAgNiArKysrKysKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAgICAgIHwgIDggKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwICAgICAgIHwgIDQgKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmggfCAgMyArKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9jay5jcHAgICAgIHwgIDIgKy0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwIHwgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuY3BwICAgIHwgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaCAgICAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAg
ICAgICAgICAgfCAgNSArKysrLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxl
bWVudC5jcHAgfCAgNiArKysrKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAg
ICAgICAgICAgIHwgIDIgLS0KIDEzIGZpbGVzIGNoYW5nZWQsIDY4IGluc2VydGlvbnMoKyksIDUg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggYzAyYzU4M2Q2NmViLi5l
YTU2OTA2MWUyYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI1OSw2ICsyMjU5LDIx
IEBAIGJvb2wgRG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVl
OwogfQogCitDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6OkNvbnRlbnRWaXNpYmls
aXR5Rm9yY2VMYXlvdXRTY29wZShjb25zdCBFbGVtZW50JiBjb250ZXh0KQorICAgIDogbV9kb2N1
bWVudChjb250ZXh0LmRvY3VtZW50KCkpCit7CisgICAgaWYgKGNvbnRleHQucmVuZGVyZXIoKSAm
JiBjb250ZXh0LnJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpIHsK
KyAgICAgICAgaWYgKG1fZG9jdW1lbnQudmlldygpKQorICAgICAgICAgICAgbV9kb2N1bWVudC52
aWV3KCktPmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3JjZWQodHJ1ZSk7CisgICAgfQorfQor
CitDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6On5Db250ZW50VmlzaWJpbGl0eUZv
cmNlTGF5b3V0U2NvcGUoKQoreworICAgIGlmIChtX2RvY3VtZW50LnZpZXcoKSkKKyAgICAgICAg
bV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3JjZWQoZmFsc2Up
OworfQorCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogewogICAgIEFTU0VSVChpc01h
aW5UaHJlYWQoKSk7CkBAIC0yMjgyLDcgKzIyOTcsNyBAQCB2b2lkIERvY3VtZW50Ojp1cGRhdGVM
YXlvdXQoKQogCiAgICAgaWYgKCFmcmFtZVZpZXcgfHwgIXJlbmRlclZpZXcoKSkKICAgICAgICAg
cmV0dXJuOwotICAgIGlmICghZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5k
aW5nKCkgJiYgIXJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQoKSkKKyAgICBpZiAoIWZyYW1lVmll
dy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJWaWV3KCktPm5l
ZWRzTGF5b3V0KCkgJiYgIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2Vk
KCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmxh
eW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCBkZGNlZTE4YTVlY2YuLjI5NjdhMjdkNmNh
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM1Miw2ICszNTIsMTUgQEAgcHJpdmF0ZToKICAg
ICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1fZG9j
dW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgewor
cHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZShjb25zdCBFbGVt
ZW50Jik7CisgICAgfkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSgpOworCitwcml2
YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9jdW1lbnQKICAg
ICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3BlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKaW5kZXggZDYyNGZiZGNmMWQxLi42Njg2NzU2MDY0OGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAKQEAgLTEzMjksNiArMTMyOSw4IEBAIGludCBFbGVtZW50OjpvZmZzZXRUb3BG
b3JCaW5kaW5ncygpCiAKIGludCBFbGVtZW50OjpvZmZzZXRUb3AoKQogeworICAgIENvbnRlbnRW
aXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgp
LnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGlmIChSZW5kZXJC
b3hNb2RlbE9iamVjdCogcmVuZGVyZXIgPSByZW5kZXJCb3hNb2RlbE9iamVjdCgpKQogICAgICAg
ICByZXR1cm4gYWRqdXN0T2Zmc2V0Rm9yWm9vbUFuZFN1YnBpeGVsTGF5b3V0KCpyZW5kZXJlciwg
cmVuZGVyZXItPm9mZnNldFRvcCgpKTsKQEAgLTE0ODksNiArMTQ5MSw4IEBAIGludCBFbGVtZW50
OjpzY3JvbGxMZWZ0KCkKIAogaW50IEVsZW1lbnQ6OnNjcm9sbFRvcCgpCiB7CisgICAgQ29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoZG9j
dW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhpcykgewpAQCAtMTgzOCw2ICsxODQyLDgg
QEAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Pj4gRWxl
bWVudDo6Ym91bmRpbmdBYnNvbHV0ZVJlY3QKIAogRmxvYXRSZWN0IEVsZW1lbnQ6OmJvdW5kaW5n
Q2xpZW50UmVjdCgpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNj
b3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0
eWxlc2hlZXRzKCk7CiAgICAgYXV0byBwYWlyID0gYm91bmRpbmdBYnNvbHV0ZVJlY3RXaXRob3V0
TGF5b3V0KCk7CiAgICAgaWYgKCFwYWlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKaW5kZXggNDVmNTAxN2NiZmExLi40YzE5MzAzOWM3MDggMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAtNTAzLDYgKzUwMyw4IEBAIHZvaWQgSFRN
TEltYWdlRWxlbWVudDo6c2V0UGljdHVyZUVsZW1lbnQoSFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0
dXJlRWxlbWVudCkKICAgICAKIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKCkKIHsK
KyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAg
ICAgaWYgKGluUmVuZGVyZWREb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC01MjYsNiArNTI4LDggQEAgdW5z
aWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoKQogCiB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVt
ZW50OjpoZWlnaHQoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBz
Y29wZSgqdGhpcyk7CisKICAgICBpZiAoaW5SZW5kZXJlZERvY3VtZW50KCkpCiAgICAgICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAKQEAgLTY2
OCw2ICs2NzIsOCBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZh
bHVlKQogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiB7CisgICAgQ29udGVudFZp
c2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCku
dXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0byByZW5kZXJl
ciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKQEAgLTY3OSw2ICs2ODUs
OCBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1MSW1hZ2VFbGVt
ZW50Ojp5KCkgY29uc3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUg
c2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5n
U3R5bGVzaGVldHMoKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAg
ICBpZiAoIXJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRl
eCA5NjE1MzQxMWM3MDMuLjYxZjJmMjA3YzhlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
aHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHAKQEAgLTE3Myw2ICsxNzMsOCBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6
aGVpZ2h0KCkgY29uc3QKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0
RWxlbWVudD4gZWxlbWVudCgqdGhpcy0+ZWxlbWVudCgpKTsKIAorICAgIENvbnRlbnRWaXNpYmls
aXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZShlbGVtZW50LmdldCgpKTsKKwogICAgIGVsZW1lbnQt
PmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBl
bGVtZW50LT5yZW5kZXJlcigpKQpAQCAtMTk1LDYgKzE5Nyw4IEBAIHVuc2lnbmVkIEltYWdlSW5w
dXRUeXBlOjp3aWR0aCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhU
TUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKKyAgICBDb250ZW50
VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoZWxlbWVudC5nZXQoKSk7CisKICAgICBl
bGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRl
cmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZp
ZXdMYXlvdXRDb250ZXh0LmgKaW5kZXggYmY2ZTVlZjM1YzhhLi5hMzA2ZmE3Yjg5ZDcgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCkBAIC04Miw2ICs4
Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5MYXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlv
dXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0OyB9CiAgICAgYm9vbCBpc0lu
UmVuZGVyVHJlZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgPT0gTGF5b3V0
UGhhc2U6OkluUmVuZGVyVHJlZUxheW91dDsgfQogICAgIGJvb2wgaW5QYWludGFibGVTdGF0ZSgp
IGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluUmVuZGVyVHJl
ZUxheW91dCAmJiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblZpZXdTaXplQWRqdXN0
ICYmIChsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblBvc3RMYXlvdXQgfHwgaW5Bc3lu
Y2hyb25vdXNUYXNrcygpKTsgfQorICAgIGJvb2wgaXNMYXlvdXRGb3JjZWQoKSBjb25zdCB7IHJl
dHVybiBtX2xheW91dEZvcmNlZDsgfQorICAgIHZvaWQgc2V0TGF5b3V0Rm9yY2VkKGJvb2wgZikg
eyBtX2xheW91dEZvcmNlZCA9IGY7IH0KIAogICAgIHVuc2lnbmVkIGxheW91dENvdW50KCkgY29u
c3QgeyByZXR1cm4gbV9sYXlvdXRDb3VudDsgfQogCkBAIC0xNzEsNiArMTczLDcgQEAgcHJpdmF0
ZToKICAgICBib29sIG1fbmVlZHNGdWxsUmVwYWludCB7IHRydWUgfTsKICAgICBib29sIG1faW5B
c3luY2hyb25vdXNUYXNrcyB7IGZhbHNlIH07CiAgICAgYm9vbCBtX3NldE5lZWRzTGF5b3V0V2Fz
RGVmZXJyZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9sYXlvdXRGb3JjZWQgeyBmYWxzZSB9Owog
ICAgIExheW91dFBoYXNlIG1fbGF5b3V0UGhhc2UgeyBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91
dCB9OwogICAgIGVudW0gY2xhc3MgTGF5b3V0TmVzdGVkU3RhdGUgOiB1aW50OF90ICB7IE5vdElu
TGF5b3V0LCBOb3ROZXN0ZWQsIE5lc3RlZCB9OwogICAgIExheW91dE5lc3RlZFN0YXRlIG1fbGF5
b3V0TmVzdGVkU3RhdGUgeyBMYXlvdXROZXN0ZWRTdGF0ZTo6Tm90SW5MYXlvdXQgfTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2suY3BwCmluZGV4IDhhZDA5YWVhMTRiNC4uMDBl
NzMyZTU1MDIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2suY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9jay5jcHAKQEAg
LTgzNyw3ICs4MzcsNyBAQCB2b2lkIFJlbmRlckJsb2NrOjp1cGRhdGVCbG9ja0NoaWxkRGlydHlC
aXRzQmVmb3JlTGF5b3V0KGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgUgogCiAgICAgLy8gRklYTUU6
IFRlY2huaWNhbGx5IHBlcmNlbnRhZ2UgaGVpZ2h0IG9iamVjdHMgb25seSBuZWVkIGEgcmVsYXlv
dXQgaWYgdGhlaXIgcGVyY2VudGFnZSBpc24ndCBnb2luZyB0byBiZSB0dXJuZWQgaW50bwogICAg
IC8vIGFuIGF1dG8gdmFsdWUuIEFkZCBhIG1ldGhvZCB0byBkZXRlcm1pbmUgdGhpcywgc28gdGhh
dCB3ZSBjYW4gYXZvaWQgdGhlIHJlbGF5b3V0LgotICAgIGlmIChyZWxheW91dENoaWxkcmVuIHx8
IChjaGlsZC5oYXNSZWxhdGl2ZUxvZ2ljYWxIZWlnaHQoKSAmJiAhaXNSZW5kZXJWaWV3KCkpKQor
ICAgIGlmIChyZWxheW91dENoaWxkcmVuIHx8IC8qY2hpbGQuaXNTa2lwcGVkQ29udGVudEZvckxh
eW91dCgpIHx8Ki8gKGNoaWxkLmhhc1JlbGF0aXZlTG9naWNhbEhlaWdodCgpICYmICFpc1JlbmRl
clZpZXcoKSkpCiAgICAgICAgIGNoaWxkLnNldENoaWxkTmVlZHNMYXlvdXQoTWFya09ubHlUaGlz
KTsKIAogICAgIC8vIElmIHJlbGF5b3V0Q2hpbGRyZW4gaXMgc2V0IGFuZCB0aGUgY2hpbGQgaGFz
IHBlcmNlbnRhZ2UgcGFkZGluZyBvciBhbiBlbWJlZGRlZCBjb250ZW50IGJveCwgd2UgYWxzbyBu
ZWVkIHRvIGludmFsaWRhdGUgdGhlIGNoaWxkcyBwcmVmIHdpZHRocy4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMTEwNWIwMWNhYjc1Li44Y2Q2
NDhlNGI3YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCkBAIC03OTMsNiArNzkzLDExIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9j
a0NoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgbWF4CiAgICAgICAg
IGlmIChjaGlsZC5pc0V4Y2x1ZGVkRnJvbU5vcm1hbExheW91dCgpKQogICAgICAgICAgICAgY29u
dGludWU7IC8vIFNraXAgdGhpcyBjaGlsZCwgc2luY2UgaXQgd2lsbCBiZSBwb3NpdGlvbmVkIGJ5
IHRoZSBzcGVjaWFsaXplZCBzdWJjbGFzcyAoZmllbGRzZXRzIGFuZCBydWJ5IHJ1bnMpLgogCisg
ICAgICAgIGlmIChpc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgJiYgIWNoaWxkLmNhbkhhdmVD
aGlsZHJlbigpKSB7CisgICAgICAgICAgICBjaGlsZC5jbGVhck5lZWRzTGF5b3V0KCk7CisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgfQorCiAgICAgICAgIHVwZGF0ZUJsb2NrQ2hpbGRE
aXJ0eUJpdHNCZWZvcmVMYXlvdXQocmVsYXlvdXRDaGlsZHJlbiwgY2hpbGQpOwogCiAgICAgICAg
IGlmIChjaGlsZC5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAppbmRleCA0ZmQ5ZDBmYjgzNjUuLmY5MmUxZjk5N2JjOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI2NDIsNiAr
MjY0MiwxMSBAQCBib29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAog
ICAgIHJldHVybiBzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxp
dHk6OkhpZGRlbjsKIH0KIAorYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnRGb3JM
YXlvdXQoKSBjb25zdAoreworICAgIHJldHVybiBzdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVu
dCgpICYmICF2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9yY2Vk
KCk7Cit9CisKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0IFJl
bmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVidWdEZXNjcmlw
dGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IGJmZTgy
MTMwMmI1Ni4uMGIwMTUwYzIwMDVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oCkBAIC03OTYsNiArNzk2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTa2lwcGVkQ29u
dGVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0OworICAg
IGJvb2wgaXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6CiAg
ICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMb2NhdGFibGUuY3BwCmluZGV4IGQ2ZDlmOWNkMjU4Zi4uM2Y2YWFjNDQ0OWMyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcApAQCAtNjcsOCArNjcsMTEgQEAgU1ZHRWxlbWVu
dCogU1ZHTG9jYXRhYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdFbGVtZW50
KiBlbGVtZW50KQogRmxvYXRSZWN0IFNWR0xvY2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50KiBl
bGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiB7CiAgICAg
QVNTRVJUKGVsZW1lbnQpOwotICAgIGlmIChzdHlsZVVwZGF0ZVN0cmF0ZWd5ID09IEFsbG93U3R5
bGVVcGRhdGUpCisgICAgaWYgKHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0
ZSkgeworICAgICAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKmVs
ZW1lbnQpOworCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3Jl
UGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgfQogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFsbHkg
d2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAgaWYg
KCFlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NW
R1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmNwcAppbmRleCBhY2QyZWVhODMwZDMuLjQ0ODk2ODFjOTkwNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEyICs1NSwx
NiBAQCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25zdCBR
dWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVy
ZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZsb2F0IFNWR1RleHRDb250ZW50RWxl
bWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZv
cmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJl
bmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KQEAgLTEwOSw2ICsxMTMsOCBAQCBFeGNlcHRpb25P
cjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9mQ2hhcih1bnNpZ25l
ZCBjaGFybnVtKQogCiBpbnQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3Np
dGlvbihET01Qb2ludEluaXQmJiBwb2ludEluaXQpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgRmxvYXRQb2ludCB0cmFuc2Zvcm1Q
b2ludCB7c3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50SW5pdC54KSwgc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHBvaW50SW5pdC55KX07CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5jaGFy
YWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHRyYW5zZm9ybVBvaW50KTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCmlu
ZGV4IGFkYzQwOWE2ODk5Zi4uOWM1YmMxODFjNzE3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9U
ZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQ4
MTMsOCArNDgxMyw2IEBAIHdlYmFuaW1hdGlvbnMvdHJhbnNsYXRlLXByb3BlcnR5LWFuZC10cmFu
c2xhdGUtYW5pbWF0aW9uLXdpdGgtZGVsYXktb24tZm9yY2VkLWxhCiAjIENTUyBjb250YWlubWVu
dCB0ZXN0cyB0aGF0IGZhaWwKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtYmZjLWZsb2F0cy0wMDEuaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRyaW5zaWMuaHRtbCBbIEltYWdlT25seUZhaWx1
cmUgXQotIyBmb3JjZWQgbGF5b3V0Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5o
dG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0bwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0w
NzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464513</attachid>
            <date>2023-01-16 03:33:25 -0800</date>
            <delta_ts>2023-01-16 06:46:55 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230116113324.patch</filename>
            <type>text/plain</type>
            <size>14136</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA0NDhiYTNjMWYzNmJhNTNlZDZjNTk1YmE0MDQ4NWViYTljY2I4M2FmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAxNiBKYW4gMjAyMyAxMTozMTozNiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcDoKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJDb3Jl
OjpFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zm
c2V0TGVmdCk6CihXZWJDb3JlOjpFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJD
b3JlOjpFbGVtZW50OjpzY3JvbGxUb3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRpbmdDbGll
bnRSZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0Ojppc0xheW91dEZvcmNlZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0OjpzZXRMYXlvdXRGb3JjZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0No
aWxkcmVuKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToK
KiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycyk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICB8IDE1ICsrKysrKysrKysrKysrLQog
U291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAgICAgICAgICAgfCAgOSArKysrKysr
KysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAgICAgICAgICAgIHwgIDkgKysr
KysrKystCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICB8ICA4
ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCAgICAgICB8
ICA0ICsrKysKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIHwg
IDMgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCB8ICA3
ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgIHwg
IDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAgIHwg
IDEgKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgfCAgNSAr
KysrLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgfCAgNiAr
KysrKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgIHwgIDIg
LS0KIDEyIGZpbGVzIGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjlmNDI3NGFkMTI1Li42NWQxNmY0ZDAwODAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI2Miw2ICsyMjYyLDE5IEBAIGJvb2wgRG9jdW1l
bnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCitDb250ZW50
VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZShjb25zdCBFbGVtZW50JiBjb250ZXh0KQorICAgIDogbV9kb2N1bWVudChjb250ZXh0LmRv
Y3VtZW50KCkpCit7CisgICAgaWYgKG1fZG9jdW1lbnQudmlldygpKQorICAgICAgICBtX2RvY3Vt
ZW50LnZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVlKTsKK30KKwor
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjp+Q29udGVudFZpc2liaWxpdHlGb3Jj
ZUxheW91dFNjb3BlKCkKK3sKKyAgICBpZiAobV9kb2N1bWVudC52aWV3KCkpCisgICAgICAgIG1f
ZG9jdW1lbnQudmlldygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKGZhbHNlKTsK
K30KKwogdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaXNNYWlu
VGhyZWFkKCkpOwpAQCAtMjI4NSw3ICsyMjk4LDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5
b3V0KCkKIAogICAgIGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJl
dHVybjsKLSAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGlu
ZygpICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgaWYgKCFmcmFtZVZpZXct
PmxheW91dENvbnRleHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVk
c0xheW91dCgpICYmICFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgp
KQogICAgICAgICByZXR1cm47CiAKICAgICBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5sYXlv
dXQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODgzZjMyMWY2YzdjLi4wZmM5NGQwYjhkMDAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNTQsNiArMzU0LDE1IEBAIHByaXZhdGU6CiAgICAg
V2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3Vt
ZW50OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHsKK3B1
YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVu
dCYpOworICAgIH5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsKKworcHJpdmF0
ZToKKyAgICBEb2N1bWVudCYgbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3VtZW50CiAgICAg
OiBwdWJsaWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCmluZGV4IDE2YTYyZTM2MDk3ZC4uZGI3MGQ5MTY5MGI0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuY3BwCkBAIC0xMzA0LDYgKzEzMDQsOCBAQCBzdGF0aWMgSGFzaFNldDxUcmVlU2NvcGUq
PiBjb2xsZWN0QW5jZXN0b3JUcmVlU2NvcGVBc0hhc2hTZXQoTm9kZSYgbm9kZSkKIAogaW50IEVs
ZW1lbnQ6Om9mZnNldExlZnRGb3JCaW5kaW5ncygpCiB7CisgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKwogICAgIGF1dG8gb2Zmc2V0ID0gb2Zm
c2V0TGVmdCgpOwogCiAgICAgUmVmUHRyIHBhcmVudCA9IG9mZnNldFBhcmVudCgpOwpAQCAtMTMy
NSw3ICsxMzI3LDYgQEAgaW50IEVsZW1lbnQ6Om9mZnNldExlZnRGb3JCaW5kaW5ncygpCiAKIGlu
dCBFbGVtZW50OjpvZmZzZXRMZWZ0KCkKIHsKLSAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGlmIChSZW5kZXJCb3hNb2RlbE9iamVjdCog
cmVuZGVyZXIgPSByZW5kZXJCb3hNb2RlbE9iamVjdCgpKQogICAgICAgICByZXR1cm4gYWRqdXN0
T2Zmc2V0Rm9yWm9vbUFuZFN1YnBpeGVsTGF5b3V0KCpyZW5kZXJlciwgcmVuZGVyZXItPm9mZnNl
dExlZnQoKSk7CiAgICAgcmV0dXJuIDA7CkBAIC0xMzMzLDYgKzEzMzQsOCBAQCBpbnQgRWxlbWVu
dDo6b2Zmc2V0TGVmdCgpCiAKIGludCBFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncygpCiB7
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwog
ICAgIGF1dG8gb2Zmc2V0ID0gb2Zmc2V0VG9wKCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zm
c2V0UGFyZW50KCk7CkBAIC0xNTE0LDYgKzE1MTcsOCBAQCBpbnQgRWxlbWVudDo6c2Nyb2xsTGVm
dCgpCiAKIGludCBFbGVtZW50OjpzY3JvbGxUb3AoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5
Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuc2Ny
b2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKQEAgLTE4NjMsNiArMTg2OCw4IEBAIHN0ZDo6b3B0
aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5k
aW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3Qo
KQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7
CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygp
OwogICAgIGF1dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwog
ICAgIGlmICghcGFpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmlu
ZGV4IDgzMjJjMzE3N2FhMS4uZWE4ZmNlM2YwODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAKQEAgLTUwNyw2ICs1MDcsOCBAQCB2b2lkIEhUTUxJbWFnZUVsZW1l
bnQ6OnNldFBpY3R1cmVFbGVtZW50KEhUTUxQaWN0dXJlRWxlbWVudCogcGljdHVyZUVsZW1lbnQp
CiAgICAgCiB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCgpCiB7CisgICAgQ29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGlmIChpblJl
bmRlcmVkRG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQ
ZW5kaW5nU3R5bGVzaGVldHMoKTsKIApAQCAtNTMwLDYgKzUzMiw4IEBAIHVuc2lnbmVkIEhUTUxJ
bWFnZUVsZW1lbnQ6OndpZHRoKCkKIAogdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0
KCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMp
OworCiAgICAgaWYgKGluUmVuZGVyZWREb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLnVw
ZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC02NzIsNiArNjc2LDgg
QEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIAogaW50
IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9y
Y2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5y
ZW5kZXJlcigpOwogICAgIGlmICghcmVuZGVyZXIpCkBAIC02ODMsNiArNjg5LDggQEAgaW50IEhU
TUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eSgpIGNv
bnN0CiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlz
KTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5k
ZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFj
NzAzLi42MWYyZjIwN2M4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJ
bnB1dFR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CkBAIC0xNzMsNiArMTczLDggQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNv
bnN0CiAgICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVs
ZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5
b3V0U2NvcGUgc2NvcGUoZWxlbWVudC5nZXQoKSk7CisKICAgICBlbGVtZW50LT5kb2N1bWVudCgp
LnVwZGF0ZUxheW91dCgpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVu
ZGVyZXIoKSkKQEAgLTE5NSw2ICsxOTcsOCBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lk
dGgoKSBjb25zdAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVt
ZW50PiBlbGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKGVsZW1lbnQuZ2V0KCkpOworCiAgICAgZWxlbWVudC0+ZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXQoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1l
bnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
d0xheW91dENvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29u
dGV4dC5oCmluZGV4IGJmNmU1ZWYzNWM4YS4uYTMwNmZhN2I4OWQ3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJs
aWM6CiAgICAgYm9vbCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAh
PSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVM
YXlvdXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJl
bmRlclRyZWVMYXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJl
dHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYg
bGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0
UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFz
a3MoKSk7IH0KKyAgICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlv
dXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRG
b3JjZWQgPSBmOyB9CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJu
IG1fbGF5b3V0Q291bnQ7IH0KIApAQCAtMTcxLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9v
bCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3Vz
VGFza3MgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsg
ZmFsc2UgfTsKKyAgICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQ
aGFzZSBtX2xheW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBl
bnVtIGNsYXNzIExheW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90
TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0
YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDA2NjNkNTk2OWE0OC4uNDZmMGRh
YTI4OTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tG
bG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNw
cApAQCAtNzkzLDYgKzc5MywxMyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tD
aGlsZHJlbihib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIG1heAogICAgICAgICBp
ZiAoY2hpbGQuaXNFeGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoKSkKICAgICAgICAgICAgIGNvbnRp
bnVlOyAvLyBTa2lwIHRoaXMgY2hpbGQsIHNpbmNlIGl0IHdpbGwgYmUgcG9zaXRpb25lZCBieSB0
aGUgc3BlY2lhbGl6ZWQgc3ViY2xhc3MgKGZpZWxkc2V0cyBhbmQgcnVieSBydW5zKS4KIAorICAg
ICAgICBpZiAoaXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpKSB7CisgICAgICAgICAgICBmb3Ig
KGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxSZW5kZXJPYmplY3Q+KGNoaWxk
KSkKKyAgICAgICAgICAgICAgICBkZXNjZW5kYW50LmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAg
ICAgICAgIGNoaWxkLmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgICAgICB9CisKICAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91
dChyZWxheW91dENoaWxkcmVuLCBjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLmlzT3V0T2ZG
bG93UG9zaXRpb25lZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCmluZGV4IDRmZDlkMGZiODM2NS4uYmJhODEyNWY5MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApAQCAtMjY0Miw2ICsyNjQyLDExIEBAIGJvb2wgUmVu
ZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCku
Y29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwogfQogCiti
b29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0Cit7Cisg
ICAgcmV0dXJuIGlzU2tpcHBlZENvbnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91
dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8
KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRz
IDw8IHJlbmRlcmVyLmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuaAppbmRleCA2NjYyMjk4ZGM3ZDUuLjhmOTQwNmJjOTJjOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaApAQCAtNzk4LDYgKzc5OCw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxk
U2tpcENvbnRlbnQoKSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQo
KSBjb25zdDsKIAogcHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCBkNmQ5Zjlj
ZDI1OGYuLjNmNmFhYzQ0NDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xv
Y2F0YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAg
LTY3LDggKzY3LDExIEBAIFNWR0VsZW1lbnQqIFNWR0xvY2F0YWJsZTo6ZmFydGhlc3RWaWV3cG9y
dEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCogZWxlbWVudCkKIEZsb2F0UmVjdCBTVkdMb2NhdGFi
bGU6OmdldEJCb3goU1ZHRWxlbWVudCogZWxlbWVudCwgU3R5bGVVcGRhdGVTdHJhdGVneSBzdHls
ZVVwZGF0ZVN0cmF0ZWd5KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICBpZiAoc3R5bGVV
cGRhdGVTdHJhdGVneSA9PSBBbGxvd1N0eWxlVXBkYXRlKQorICAgIGlmIChzdHlsZVVwZGF0ZVN0
cmF0ZWd5ID09IEFsbG93U3R5bGVVcGRhdGUpIHsKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKCplbGVtZW50KTsKKwogICAgICAgICBlbGVtZW50LT5kb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHNob3VsZCBzdXBwb3J0IGdldEJCb3ggZm9yIGRl
dGFjaGVkIGVsZW1lbnRzLgogICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggYWNkMmVlYTgzMGQz
Li40NDg5NjgxYzk5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuY3BwCkBAIC01NSwxMiArNTUsMTYgQEAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KIAog
dW5zaWduZWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXROdW1iZXJPZkNoYXJzKCkKIHsKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBy
ZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLm51bWJlck9mQ2hhcmFjdGVycygpOwogfQog
CiBmbG9hdCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCgpCiB7
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAg
ICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS50ZXh0TGVuZ3RoKCk7CiB9CkBAIC0x
MDksNiArMTEzLDggQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6
Z2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQgY2hhcm51bSkKIAogaW50IFNWR1RleHRDb250ZW50
RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQog
eworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisK
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
ICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludElu
aXQueCksIHN0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdU
ZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Q
b2ludCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA5OTVmMjU0ZTZiMDMuLmU2ZGNjNDQ0MWZkMCAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODE0LDggKzQ4MTQsNiBAQCB3ZWJhbmltYXRpb25zL3Ry
YW5zbGF0ZS1wcm9wZXJ0eS1hbmQtdHJhbnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZv
cmNlZC1sYQogIyBDU1MgY29udGFpbm1lbnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJm
Yy1mbG9hdHMtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmlu
c2ljLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlz
aWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464514</attachid>
            <date>2023-01-16 06:47:01 -0800</date>
            <delta_ts>2023-01-17 02:18:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230116144659.patch</filename>
            <type>text/plain</type>
            <size>14000</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAyYzEwOGQ3MzE1NGZjYmIxNDczZDQ5ZGE2NjBiNDAyMjE4ZTEyOWI0IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAxNiBKYW4gMjAyMyAxMTozMTozNiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcDoKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJDb3Jl
OjpFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zm
c2V0TGVmdCk6CihXZWJDb3JlOjpFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJD
b3JlOjpFbGVtZW50OjpzY3JvbGxUb3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRpbmdDbGll
bnRSZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0Ojppc0xheW91dEZvcmNlZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0OjpzZXRMYXlvdXRGb3JjZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0No
aWxkcmVuKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToK
KiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycyk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysr
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgIHwgIDkgKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICB8ICA4
ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICB8
ICA4ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCAgICAg
ICB8ICA0ICsrKysKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
IHwgIDMgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCB8
ICA3ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAg
IHwgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAg
IHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgfCAg
NSArKysrLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgfCAg
NiArKysrKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgIHwg
IDIgLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDczIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0p
CgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggMjlmNDI3NGFkMTI1Li42MDM4YmVlZDg5NTEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI2Miw2ICsyMjYyLDIzIEBAIGJvb2wgRG9j
dW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCitDb250
ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlv
dXRTY29wZShjb25zdCBFbGVtZW50JiBjb250ZXh0KQorICAgIDogbV9kb2N1bWVudChjb250ZXh0
LmRvY3VtZW50KCkpCit7CisgICAgaWYgKGNvbnRleHQubmVlZHNTdHlsZVJlY2FsYygpKQorICAg
ICAgICBtX2RvY3VtZW50LnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBpZiAoY29udGV4dC5y
ZW5kZXJlcigpICYmIGNvbnRleHQucmVuZGVyZXIoKS0+c3R5bGUoKS5lZmZlY3RpdmVTa2lwc0Nv
bnRlbnQoKSkgeworICAgICAgICBpZiAobV9kb2N1bWVudC52aWV3KCkpCisgICAgICAgICAgICBt
X2RvY3VtZW50LnZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZCh0cnVlKTsK
KyAgICB9Cit9CisKK0NvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRW
aXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSgpCit7CisgICAgaWYgKG1fZG9jdW1lbnQudmlldygp
KQorICAgICAgICBtX2RvY3VtZW50LnZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZv
cmNlZChmYWxzZSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpCiB7CiAgICAg
QVNTRVJUKGlzTWFpblRocmVhZCgpKTsKQEAgLTIyODUsNyArMjMwMiw3IEBAIHZvaWQgRG9jdW1l
bnQ6OnVwZGF0ZUxheW91dCgpCiAKICAgICBpZiAoIWZyYW1lVmlldyB8fCAhcmVuZGVyVmlldygp
KQogICAgICAgICByZXR1cm47Ci0gICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5p
c0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpKQorICAgIGlm
ICghZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkgJiYgIXJlbmRl
clZpZXcoKS0+bmVlZHNMYXlvdXQoKSAmJiAhZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNM
YXlvdXRGb3JjZWQoKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgZnJhbWVWaWV3LT5sYXlvdXRD
b250ZXh0KCkubGF5b3V0KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCmluZGV4IDg4M2YzMjFmNmM3Yy4u
MGZjOTRkMGI4ZDAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaApAQCAtMzU0LDYgKzM1NCwxNSBAQCBw
cml2YXRlOgogICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50VGFyZ2V0
RGF0YT4gbV9kb2N1bWVudDsKIH07CiAKK2NsYXNzIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlv
dXRTY29wZSB7CitwdWJsaWM6CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3Bl
KGNvbnN0IEVsZW1lbnQmKTsKKyAgICB+Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3Bl
KCk7CisKK3ByaXZhdGU6CisgICAgRG9jdW1lbnQmIG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBE
b2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2Nv
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAxNmE2MmUzNjA5N2QuLmU3Y2FkNThkMjMwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTMwNCw2ICsxMzA0LDggQEAgc3RhdGljIEhhc2hT
ZXQ8VHJlZVNjb3BlKj4gY29sbGVjdEFuY2VzdG9yVHJlZVNjb3BlQXNIYXNoU2V0KE5vZGUmIG5v
ZGUpCiAKIGludCBFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MoKQogeworICAgIENvbnRl
bnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBhdXRvIG9m
ZnNldCA9IG9mZnNldExlZnQoKTsKIAogICAgIFJlZlB0ciBwYXJlbnQgPSBvZmZzZXRQYXJlbnQo
KTsKQEAgLTEzMzMsNiArMTMzNSw4IEBAIGludCBFbGVtZW50OjpvZmZzZXRMZWZ0KCkKIAogaW50
IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRpbmdzKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgYXV0byBvZmZzZXQgPSBvZmZz
ZXRUb3AoKTsKIAogICAgIFJlZlB0ciBwYXJlbnQgPSBvZmZzZXRQYXJlbnQoKTsKQEAgLTE1MTQs
NiArMTUxOCw4IEBAIGludCBFbGVtZW50OjpzY3JvbGxMZWZ0KCkKIAogaW50IEVsZW1lbnQ6OnNj
cm9sbFRvcCgpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3Bl
KCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxl
c2hlZXRzKCk7CiAKICAgICBpZiAoZG9jdW1lbnQoKS5zY3JvbGxpbmdFbGVtZW50KCkgPT0gdGhp
cykgewpAQCAtMTg2Myw2ICsxODY5LDggQEAgc3RkOjpvcHRpb25hbDxzdGQ6OnBhaXI8UmVuZGVy
T2JqZWN0KiwgRmxvYXRSZWN0Pj4gRWxlbWVudDo6Ym91bmRpbmdBYnNvbHV0ZVJlY3QKIAogRmxv
YXRSZWN0IEVsZW1lbnQ6OmJvdW5kaW5nQ2xpZW50UmVjdCgpCiB7CisgICAgQ29udGVudFZpc2li
aWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0byBwYWlyID0gYm91
bmRpbmdBYnNvbHV0ZVJlY3RXaXRob3V0TGF5b3V0KCk7CiAgICAgaWYgKCFwYWlyKQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggODMyMmMzMTc3YWExLi5lYThm
Y2UzZjA4NzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcApAQCAt
NTA3LDYgKzUwNyw4IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0UGljdHVyZUVsZW1lbnQo
SFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0dXJlRWxlbWVudCkKICAgICAKIHVuc2lnbmVkIEhUTUxJ
bWFnZUVsZW1lbnQ6OndpZHRoKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0
U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgaWYgKGluUmVuZGVyZWREb2N1bWVudCgpKQogICAg
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
CkBAIC01MzAsNiArNTMyLDggQEAgdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoKQog
CiB1bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50OjpoZWlnaHQoKQogeworICAgIENvbnRlbnRWaXNp
YmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBpZiAoaW5SZW5kZXJl
ZERvY3VtZW50KCkpCiAgICAgICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGlu
Z1N0eWxlc2hlZXRzKCk7CiAKQEAgLTY3Miw2ICs2NzYsOCBAQCB2b2lkIEhUTUxJbWFnZUVsZW1l
bnQ6OnNldFdpZHRoKHVuc2lnbmVkIHZhbHVlKQogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgp
IGNvbnN0CiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0
aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hl
ZXRzKCk7CiAgICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFy
ZW5kZXJlcikKQEAgLTY4Myw2ICs2ODksOCBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNv
bnN0CiAKIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKKyAgICBDb250ZW50Vmlz
aWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBhdXRvIHJlbmRlcmVy
ID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA5NjE1MzQxMWM3MDMuLjYxZjJmMjA3YzhlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKQEAgLTE3Myw2ICsxNzMsOCBAQCB1
bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KCkgY29uc3QKICAgICBBU1NFUlQoZWxlbWVu
dCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCgqdGhpcy0+ZWxlbWVudCgp
KTsKIAorICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZShlbGVtZW50
LmdldCgpKTsKKwogICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0KCk7CiAKICAg
ICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5yZW5kZXJlcigpKQpAQCAtMTk1LDYgKzE5
Nyw4IEBAIHVuc2lnbmVkIEltYWdlSW5wdXRUeXBlOjp3aWR0aCgpIGNvbnN0CiAgICAgQVNTRVJU
KGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVs
ZW1lbnQoKSk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUo
ZWxlbWVudC5nZXQoKSk7CisKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgp
OwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKaW5kZXggYmY2ZTVlZjM1
YzhhLi5hMzA2ZmE3Yjg5ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVW
aWV3TGF5b3V0Q29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5
b3V0Q29udGV4dC5oCkBAIC04Miw2ICs4Miw4IEBAIHB1YmxpYzoKICAgICBib29sIGlzSW5MYXlv
dXQoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpPdXRzaWRl
TGF5b3V0OyB9CiAgICAgYm9vbCBpc0luUmVuZGVyVHJlZUxheW91dCgpIGNvbnN0IHsgcmV0dXJu
IGxheW91dFBoYXNlKCkgPT0gTGF5b3V0UGhhc2U6OkluUmVuZGVyVHJlZUxheW91dDsgfQogICAg
IGJvb2wgaW5QYWludGFibGVTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgIT0g
TGF5b3V0UGhhc2U6OkluUmVuZGVyVHJlZUxheW91dCAmJiBsYXlvdXRQaGFzZSgpICE9IExheW91
dFBoYXNlOjpJblZpZXdTaXplQWRqdXN0ICYmIChsYXlvdXRQaGFzZSgpICE9IExheW91dFBoYXNl
OjpJblBvc3RMYXlvdXQgfHwgaW5Bc3luY2hyb25vdXNUYXNrcygpKTsgfQorICAgIGJvb2wgaXNM
YXlvdXRGb3JjZWQoKSBjb25zdCB7IHJldHVybiBtX2xheW91dEZvcmNlZDsgfQorICAgIHZvaWQg
c2V0TGF5b3V0Rm9yY2VkKGJvb2wgZikgeyBtX2xheW91dEZvcmNlZCA9IGY7IH0KIAogICAgIHVu
c2lnbmVkIGxheW91dENvdW50KCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRDb3VudDsgfQogCkBA
IC0xNzEsNiArMTczLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fbmVlZHNGdWxsUmVwYWludCB7
IHRydWUgfTsKICAgICBib29sIG1faW5Bc3luY2hyb25vdXNUYXNrcyB7IGZhbHNlIH07CiAgICAg
Ym9vbCBtX3NldE5lZWRzTGF5b3V0V2FzRGVmZXJyZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9s
YXlvdXRGb3JjZWQgeyBmYWxzZSB9OwogICAgIExheW91dFBoYXNlIG1fbGF5b3V0UGhhc2UgeyBM
YXlvdXRQaGFzZTo6T3V0c2lkZUxheW91dCB9OwogICAgIGVudW0gY2xhc3MgTGF5b3V0TmVzdGVk
U3RhdGUgOiB1aW50OF90ICB7IE5vdEluTGF5b3V0LCBOb3ROZXN0ZWQsIE5lc3RlZCB9OwogICAg
IExheW91dE5lc3RlZFN0YXRlIG1fbGF5b3V0TmVzdGVkU3RhdGUgeyBMYXlvdXROZXN0ZWRTdGF0
ZTo6Tm90SW5MYXlvdXQgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2Nr
Rmxvdy5jcHAKaW5kZXggMDY2M2Q1OTY5YTQ4Li40NmYwZGFhMjg5MGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC03OTMsNiArNzkzLDEzIEBA
IHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0NoaWxkcmVuKGJvb2wgcmVsYXlvdXRD
aGlsZHJlbiwgTGF5b3V0VW5pdCYgbWF4CiAgICAgICAgIGlmIChjaGlsZC5pc0V4Y2x1ZGVkRnJv
bU5vcm1hbExheW91dCgpKQogICAgICAgICAgICAgY29udGludWU7IC8vIFNraXAgdGhpcyBjaGls
ZCwgc2luY2UgaXQgd2lsbCBiZSBwb3NpdGlvbmVkIGJ5IHRoZSBzcGVjaWFsaXplZCBzdWJjbGFz
cyAoZmllbGRzZXRzIGFuZCBydWJ5IHJ1bnMpLgogCisgICAgICAgIGlmIChpc1NraXBwZWRDb250
ZW50Rm9yTGF5b3V0KCkpIHsKKyAgICAgICAgICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRl
c2NlbmRhbnRzT2ZUeXBlPFJlbmRlck9iamVjdD4oY2hpbGQpKQorICAgICAgICAgICAgICAgIGRl
c2NlbmRhbnQuY2xlYXJOZWVkc0xheW91dCgpOworICAgICAgICAgICAgY2hpbGQuY2xlYXJOZWVk
c0xheW91dCgpOworICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICB1
cGRhdGVCbG9ja0NoaWxkRGlydHlCaXRzQmVmb3JlTGF5b3V0KHJlbGF5b3V0Q2hpbGRyZW4sIGNo
aWxkKTsKIAogICAgICAgICBpZiAoY2hpbGQuaXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggNGZkOWQwZmI4MzY1
Li5iYmE4MTI1ZjkxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
Y3BwCkBAIC0yNjQyLDYgKzI2NDIsMTEgQEAgYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZFNraXBD
b250ZW50KCkgY29uc3QKICAgICByZXR1cm4gc3R5bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09
IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW47CiB9CiAKK2Jvb2wgUmVuZGVyT2JqZWN0Ojppc1Nr
aXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgY29uc3QKK3sKKyAgICByZXR1cm4gaXNTa2lwcGVkQ29u
dGVudCgpICYmICF2aWV3KCkuZnJhbWVWaWV3KCkubGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0Rm9y
Y2VkKCk7Cit9CisKIFRleHRTdHJlYW0mIG9wZXJhdG9yPDwoVGV4dFN0cmVhbSYgdHMsIGNvbnN0
IFJlbmRlck9iamVjdCYgcmVuZGVyZXIpCiB7CiAgICAgdHMgPDwgcmVuZGVyZXIuZGVidWdEZXNj
cmlwdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9i
amVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmluZGV4IDY2
NjIyOThkYzdkNS4uOGY5NDA2YmM5MmM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5oCkBAIC03OTgsNiArNzk4LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNTa2lwcGVk
Q29udGVudCgpIGNvbnN0OwogCiAgICAgYm9vbCBzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0Owor
ICAgIGJvb2wgaXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0OwogCiBwcm90ZWN0ZWQ6
CiAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwCmluZGV4IGQ2ZDlmOWNkMjU4Zi4uM2Y2YWFjNDQ0OWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcApAQCAtNjcsOCArNjcsMTEgQEAgU1ZHRWxl
bWVudCogU1ZHTG9jYXRhYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdFbGVt
ZW50KiBlbGVtZW50KQogRmxvYXRSZWN0IFNWR0xvY2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50
KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiB7CiAg
ICAgQVNTRVJUKGVsZW1lbnQpOwotICAgIGlmIChzdHlsZVVwZGF0ZVN0cmF0ZWd5ID09IEFsbG93
U3R5bGVVcGRhdGUpCisgICAgaWYgKHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVw
ZGF0ZSkgeworICAgICAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUo
KmVsZW1lbnQpOworCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgfQogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFs
bHkgd2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAg
aWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmNwcAppbmRleCBhY2QyZWVhODMwZDMuLjQ0ODk2ODFjOTkwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEyICs1
NSwxNiBAQCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9y
Y2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVu
ZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZsb2F0IFNWR1RleHRDb250ZW50
RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5
KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KQEAgLTEwOSw2ICsxMTMsOCBAQCBFeGNlcHRp
b25PcjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9mQ2hhcih1bnNp
Z25lZCBjaGFybnVtKQogCiBpbnQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQ
b3NpdGlvbihET01Qb2ludEluaXQmJiBwb2ludEluaXQpCiB7CisgICAgQ29udGVudFZpc2liaWxp
dHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgRmxvYXRQb2ludCB0cmFuc2Zv
cm1Qb2ludCB7c3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50SW5pdC54KSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHBvaW50SW5pdC55KX07CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5j
aGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHRyYW5zZm9ybVBvaW50KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGM4NWNhMDQ0MDMwNC4uNWZiODI0ZDY1NmI0IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTQ4MTMsOCArNDgxMyw2IEBAIHdlYmFuaW1hdGlvbnMvdHJhbnNsYXRlLXByb3BlcnR5LWFuZC10
cmFuc2xhdGUtYW5pbWF0aW9uLXdpdGgtZGVsYXktb24tZm9yY2VkLWxhCiAjIENTUyBjb250YWlu
bWVudCB0ZXN0cyB0aGF0IGZhaWwKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3Nz
L2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtYmZjLWZsb2F0cy0wMDEuaHRtbCBbIElt
YWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRyaW5zaWMuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQotIyBmb3JjZWQgbGF5b3V0Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAz
NS5odG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0bwogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wNzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJp
bGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464524</attachid>
            <date>2023-01-17 02:18:05 -0800</date>
            <delta_ts>2023-01-17 12:23:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230117101804.patch</filename>
            <type>text/plain</type>
            <size>15446</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSA3YjY3ZDY5N2NhZDViODQ5YzI1YmY0YzJmNjA4ODFmMjA1NmNlNTViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAxNiBKYW4gMjAyMyAxMTozMTozNiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcDoKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJDb3Jl
OjpFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zm
c2V0TGVmdCk6CihXZWJDb3JlOjpFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJD
b3JlOjpFbGVtZW50OjpzY3JvbGxUb3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRpbmdDbGll
bnRSZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0Ojppc0xheW91dEZvcmNlZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0OjpzZXRMYXlvdXRGb3JjZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0No
aWxkcmVuKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToK
KiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycyk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICB8IDE5ICsrKysrKysrKysrKysrKysr
Ky0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAgICAgICAgIHwgIDkgKysr
KysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgICAgICAgICAgICAgICB8ICA4
ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAgICB8
ICA4ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcCAgICAg
ICB8ICA0ICsrKysKIFNvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5o
IHwgIDMgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCB8
ICA3ICsrKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAg
IHwgIDUgKysrKysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAg
IHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgfCAg
NSArKysrLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgfCAg
NiArKysrKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgIHwg
IDIgLS0KIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zICAgIHwgIDMg
Ky0tCiAxMyBmaWxlcyBjaGFuZ2VkLCA3NCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQoK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2ZDRhZjQ3ODA1Zi4uNGQyOTQ2YzRlMjI4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIyNjMsNiArMjI2MywyMyBAQCBib29sIERvY3Vt
ZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorQ29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0
U2NvcGUoY29uc3QgRWxlbWVudCYgY29udGV4dCkKKyAgICA6IG1fZG9jdW1lbnQoY29udGV4dC5k
b2N1bWVudCgpKQoreworICAgIGlmIChjb250ZXh0Lm5lZWRzU3R5bGVSZWNhbGMoKSkKKyAgICAg
ICAgbV9kb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgaWYgKGNvbnRleHQucmVu
ZGVyZXIoKSAmJiBjb250ZXh0LnJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250
ZW50KCkpIHsKKyAgICAgICAgaWYgKG1fZG9jdW1lbnQudmlldygpKQorICAgICAgICAgICAgbV9k
b2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3JjZWQodHJ1ZSk7Cisg
ICAgfQorfQorCitDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6On5Db250ZW50Vmlz
aWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKQoreworICAgIGlmIChtX2RvY3VtZW50LnZpZXcoKSkK
KyAgICAgICAgbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3Jj
ZWQoZmFsc2UpOworfQorCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0yMjg2LDcgKzIzMDMsNyBAQCB2b2lkIERvY3VtZW50
Ojp1cGRhdGVMYXlvdXQoKQogCiAgICAgaWYgKCFmcmFtZVZpZXcgfHwgIXJlbmRlclZpZXcoKSkK
ICAgICAgICAgcmV0dXJuOwotICAgIGlmICghZnJhbWVWaWV3LT5sYXlvdXRDb250ZXh0KCkuaXNM
YXlvdXRQZW5kaW5nKCkgJiYgIXJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQoKSkKKyAgICBpZiAo
IWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5kZXJW
aWV3KCktPm5lZWRzTGF5b3V0KCkgJiYgIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5
b3V0Rm9yY2VkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmlldy0+bGF5b3V0Q29u
dGV4dCgpLmxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ODNmMzIxZjZjN2MuLjBm
Yzk0ZDBiOGQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM1NCw2ICszNTQsMTUgQEAgcHJp
dmF0ZToKICAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERh
dGE+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0
U2NvcGUgeworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZShj
b25zdCBFbGVtZW50Jik7CisgICAgfkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSgp
OworCitwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworfTsKKwogY2xhc3MgRG9j
dW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJsaWMgVHJlZVNjb3Bl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzVmN2YyZTBiNTk2Li5lYTQ4MWM0Yjk5YTAgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEzMTUsNiArMTMxNSw4IEBAIHN0YXRpYyBIYXNoU2V0
PFRyZWVTY29wZSo+IGNvbGxlY3RBbmNlc3RvclRyZWVTY29wZUFzSGFzaFNldChOb2RlJiBub2Rl
KQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0TGVmdEZvckJpbmRpbmdzKCkKIHsKKyAgICBDb250ZW50
VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgYXV0byBvZmZz
ZXQgPSBvZmZzZXRMZWZ0KCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7
CkBAIC0xMzQ0LDYgKzEzNDYsOCBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0TGVmdCgpCiAKIGludCBF
bGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncygpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGF1dG8gb2Zmc2V0ID0gb2Zmc2V0
VG9wKCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7CkBAIC0xNTI1LDYg
KzE1MjksOCBAQCBpbnQgRWxlbWVudDo6c2Nyb2xsTGVmdCgpCiAKIGludCBFbGVtZW50OjpzY3Jv
bGxUb3AoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgq
dGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMp
IHsKQEAgLTE4NzQsNiArMTg4MCw4IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpwYWlyPFJlbmRlck9i
amVjdCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVSZWN0CiAKIEZsb2F0
UmVjdCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogeworICAgIENvbnRlbnRWaXNpYmls
aXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGF1dG8gcGFpciA9IGJvdW5k
aW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwogICAgIGlmICghcGFpcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDgzMjJjMzE3N2FhMS4uZWE4ZmNl
M2YwODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKQEAgLTUw
Nyw2ICs1MDcsOCBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFBpY3R1cmVFbGVtZW50KEhU
TUxQaWN0dXJlRWxlbWVudCogcGljdHVyZUVsZW1lbnQpCiAgICAgCiB1bnNpZ25lZCBIVE1MSW1h
Z2VFbGVtZW50Ojp3aWR0aCgpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNj
b3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGlmIChpblJlbmRlcmVkRG9jdW1lbnQoKSkKICAgICAg
ICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApA
QCAtNTMwLDYgKzUzMiw4IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKCkKIAog
dW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0KCkKIHsKKyAgICBDb250ZW50VmlzaWJp
bGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgaWYgKGluUmVuZGVyZWRE
b2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdT
dHlsZXNoZWV0cygpOwogCkBAIC02NzIsNiArNjc2LDggQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50
OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIAogaW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBj
b25zdAogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhp
cyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwogICAgIGlmICghcmVu
ZGVyZXIpCkBAIC02ODMsNiArNjg5LDggQEAgaW50IEhUTUxJbWFnZUVsZW1lbnQ6OngoKSBjb25z
dAogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eSgpIGNvbnN0CiB7CisgICAgQ29udGVudFZpc2li
aWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBk
YXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0byByZW5kZXJlciA9
IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9J
bWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi42MWYyZjIwN2M4ZTEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNiArMTczLDggQEAgdW5z
aWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNTRVJUKGVsZW1lbnQo
KSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMtPmVsZW1lbnQoKSk7
CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoZWxlbWVudC5n
ZXQoKSk7CisKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dCgpOwogCiAgICAg
aWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKQEAgLTE5NSw2ICsxOTcs
OCBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAogICAgIEFTU0VSVChl
bGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50KCp0aGlzLT5lbGVt
ZW50KCkpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKGVs
ZW1lbnQuZ2V0KCkpOworCiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXQoKTsK
IAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4IGJmNmU1ZWYzNWM4
YS4uYTMwNmZhN2I4OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmll
d0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91
dENvbnRleHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0luTGF5b3V0
KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6T3V0c2lkZUxh
eW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25zdCB7IHJldHVybiBs
YXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQ7IH0KICAgICBi
b29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpICE9IExh
eW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQ
aGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6
SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAgICBib29sIGlzTGF5
b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0KKyAgICB2b2lkIHNl
dExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9CiAKICAgICB1bnNp
Z25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291bnQ7IH0KIApAQCAt
MTcxLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVsbFJlcGFpbnQgeyB0
cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxzZSB9OwogICAgIGJv
b2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAgICBib29sIG1fbGF5
b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91dFBoYXNlIHsgTGF5
b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExheW91dE5lc3RlZFN0
YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0ZWQgfTsKICAgICBM
YXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0TmVzdGVkU3RhdGU6
Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zs
b3cuY3BwCmluZGV4IDA2NjNkNTk2OWE0OC4uNDZmMGRhYTI4OTBkIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNzkzLDYgKzc5MywxMyBAQCB2
b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29sIHJlbGF5b3V0Q2hp
bGRyZW4sIExheW91dFVuaXQmIG1heAogICAgICAgICBpZiAoY2hpbGQuaXNFeGNsdWRlZEZyb21O
b3JtYWxMYXlvdXQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lwIHRoaXMgY2hpbGQs
IHNpbmNlIGl0IHdpbGwgYmUgcG9zaXRpb25lZCBieSB0aGUgc3BlY2lhbGl6ZWQgc3ViY2xhc3Mg
KGZpZWxkc2V0cyBhbmQgcnVieSBydW5zKS4KIAorICAgICAgICBpZiAoaXNTa2lwcGVkQ29udGVu
dEZvckxheW91dCgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRhbnQgOiBkZXNj
ZW5kYW50c09mVHlwZTxSZW5kZXJPYmplY3Q+KGNoaWxkKSkKKyAgICAgICAgICAgICAgICBkZXNj
ZW5kYW50LmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNoaWxkLmNsZWFyTmVlZHNM
YXlvdXQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisKICAgICAgICAgdXBk
YXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChyZWxheW91dENoaWxkcmVuLCBjaGls
ZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25lZCgpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDRmZDlkMGZiODM2NS4u
YmJhODEyNWY5MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNw
cApAQCAtMjY0Miw2ICsyNjQyLDExIEBAIGJvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29u
dGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBD
b250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwogfQogCitib29sIFJlbmRlck9iamVjdDo6aXNTa2lw
cGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlzU2tpcHBlZENvbnRl
bnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNl
ZCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVyLmRlYnVnRGVzY3Jp
cHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmpl
Y3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAppbmRleCA2NjYy
Mjk4ZGM3ZDUuLjhmOTQwNmJjOTJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJP
YmplY3QuaApAQCAtNzk4LDYgKzc5OCw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzU2tpcHBlZENv
bnRlbnQoKSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdDsKKyAg
ICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdDsKIAogcHJvdGVjdGVkOgog
ICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCBkNmQ5ZjljZDI1OGYuLjNmNmFhYzQ0NDljMiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY3LDggKzY3LDExIEBAIFNWR0VsZW1l
bnQqIFNWR0xvY2F0YWJsZTo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVu
dCogZWxlbWVudCkKIEZsb2F0UmVjdCBTVkdMb2NhdGFibGU6OmdldEJCb3goU1ZHRWxlbWVudCog
ZWxlbWVudCwgU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0ZVN0cmF0ZWd5KQogewogICAg
IEFTU0VSVChlbGVtZW50KTsKLSAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVneSA9PSBBbGxvd1N0
eWxlVXBkYXRlKQorICAgIGlmIChzdHlsZVVwZGF0ZVN0cmF0ZWd5ID09IEFsbG93U3R5bGVVcGRh
dGUpIHsKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCpl
bGVtZW50KTsKKwogICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIH0KIAogICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5
IHdlIHNob3VsZCBzdXBwb3J0IGdldEJCb3ggZm9yIGRldGFjaGVkIGVsZW1lbnRzLgogICAgIGlm
ICghZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250
ZW50RWxlbWVudC5jcHAKaW5kZXggYWNkMmVlYTgzMGQzLi40NDg5NjgxYzk5MDQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBAIC01NSwxMiArNTUs
MTYgQEAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVsZW1lbnQoY29uc3Qg
UXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KIAogdW5zaWduZWQgU1ZHVGV4dENvbnRlbnRF
bGVtZW50OjpnZXROdW1iZXJPZkNoYXJzKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRl
cmVyKCkpLm51bWJlck9mQ2hhcmFjdGVycygpOwogfQogCiBmbG9hdCBTVkdUZXh0Q29udGVudEVs
ZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCgpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5
b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShy
ZW5kZXJlcigpKS50ZXh0TGVuZ3RoKCk7CiB9CkBAIC0xMDksNiArMTEzLDggQEAgRXhjZXB0aW9u
T3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Um90YXRpb25PZkNoYXIodW5zaWdu
ZWQgY2hhcm51bSkKIAogaW50IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9z
aXRpb24oRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5
Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIEZsb2F0UG9pbnQgdHJhbnNmb3Jt
UG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueCksIHN0YXRpY19jYXN0PGZsb2F0
Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hh
cmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Qb2ludCk7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpp
bmRleCA1ZDE3NmViZjlkNDcuLmEwYjE3NTVkYTZlMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00
ODExLDggKzQ4MTEsNiBAQCB3ZWJhbmltYXRpb25zL3RyYW5zbGF0ZS1wcm9wZXJ0eS1hbmQtdHJh
bnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNlZC1sYQogIyBDU1MgY29udGFpbm1l
bnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJmYy1mbG9hdHMtMDAxLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmluc2ljLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUu
aHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjQxYmNkOWEyYjhjLi4wYjNjNTU1YjQ3OTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zCkBAIC0zNjEzLDcgKzM2MTMs
NyBAQCB3ZWJraXQub3JnL2IvMjM4ODI0IGh0dHAvdGVzdHMvd29ya2Vycy9zZXJ2aWNlL29wZW53
aW5kb3ctZnJvbS1ub3RpZmljYXRpb24tY2xpYwogd2Via2l0Lm9yZy9iLzIzNzQzMyBlZGl0aW5n
L3Bhc3RlYm9hcmQvNDA3NjI2Ny0zLmh0bWwgWyBUaW1lb3V0IFBhc3MgRmFpbHVyZSBdCiB3ZWJr
aXQub3JnL2IvMjM3NDMzIGVkaXRpbmcvcGFzdGVib2FyZC9wYXN0ZS1hbmQtc2FuaXRpemUuaHRt
bCBbIFRpbWVvdXQgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0Lm9yZy9iLzIzNzk1NSBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA0NC5odG1sIFsgRmFpbHVyZSBdCit3ZWJraXQub3JnL2Iv
MjM3OTU1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgWyBGYWlsdXJlIF0K
IAogd2Via2l0Lm9yZy9iLzIzOTYyNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3Ivb3BhY2l0eS1vdmVybGFwcGluZy1sZXR0ZXJzLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIApAQCAtMzY1NSw3ICszNjU1LDYgQEAgd2Via2l0Lm9yZy9iLzI0MDU3OSBodHRw
L3Rlc3RzL3B1c2gtYXBpIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjQwNTc5IGh0dHAvd3B0L3B1
c2gtYXBpIFsgU2tpcCBdCiAKICMgVGhlc2UgdGVzdHMgZmluaXNoIHdpdGggdW5maXJlZCBVSSBz
Y3JpcHQgY2FsbGJhY2tzLCBjYXVzaW5nIGNyYXNoZXMuIFNlZSB3ZWJraXQub3JnL2IvMjM2Nzk0
Ci1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0Ny5odG1sCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LTA0OC5odG1sCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvdXNlci1hY3RpdmF0aW9uL25vLWFjdGl2YXRpb24tdGhydS1lc2NhcGUta2V5Lmh0bWwKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464527</attachid>
            <date>2023-01-17 12:24:04 -0800</date>
            <delta_ts>2023-01-18 04:19:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230117202402.patch</filename>
            <type>text/plain</type>
            <size>15929</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBhMjU0OWQ0Y2M0MWM5MTA1ZjZkMTI3NGYxOTY1N2M4OWNiYTI5YTQ3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAxNiBKYW4gMjAyMyAxMTozMTozNiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIFN1cHBvcnQgZm9yY2VkIGxheW91dAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzNzM2OQoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpXSVAu
CgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmNwcDoKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKFdlYkNvcmU6OkNvbnRlbnRWaXNp
YmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KToKKiBTb3VyY2UvV2ViQ29yZS9k
b20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJDb3Jl
OjpFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6b2Zm
c2V0TGVmdCk6CihXZWJDb3JlOjpFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJD
b3JlOjpFbGVtZW50OjpzY3JvbGxUb3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRpbmdDbGll
bnRSZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2Vi
Q29yZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVu
dDo6aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToK
KFdlYkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0Lmg6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0Ojppc0xheW91dEZvcmNlZCBjb25zdCk6CihXZWJDb3JlOjpGcmFtZVZpZXdMYXlvdXRD
b250ZXh0OjpzZXRMYXlvdXRGb3JjZWQpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJCbG9ja0Zsb3cuY3BwOgooV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9ja0No
aWxkcmVuKToKKiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcDoKKFdl
YkNvcmU6OlJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCBjb25zdCk6Ciog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgoqIFNvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToK
KiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcDoKKFdlYkNvcmU6
OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycyk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCk6CihXZWJDb3JlOjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKToKLS0tCiBTb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAgICAgfCAxOSArKysrKysrKysrKysrKysr
KystCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAgICAgICAgICAgICAgICAgfCAgOSAr
KysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcCAgICAgICAgICAgICAgICB8
ICA4ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwICAg
ICAgfCAgOCArKysrKysrKwogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAg
ICAgICAgIHwgIDQgKysrKwogU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250
ZXh0LmggIHwgIDMgKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93
LmNwcCAgfCAgNyArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCAgICAgfCAgNSArKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVj
dC5oICAgICAgIHwgIDEgKwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAg
ICAgICAgIHwgIDUgKysrKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1l
bnQuY3BwICB8ICA2ICsrKysrKwogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAgICAgICAg
ICAgICAgICAgIHwgIDIgLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgICAgICAg
ICAgICAgICB8ICA0ICsrLS0KIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zICAgICB8ICAyIC0tCiAxNCBmaWxlcyBjaGFuZ2VkLCA3NSBpbnNlcnRpb25zKCspLCA4IGRl
bGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmluZGV4IDQ2ZDRhZjQ3ODA1Zi4uNGQy
OTQ2YzRlMjI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKQEAgLTIyNjMsNiArMjI2MywyMyBA
QCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVkKCkKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVudCYgY29udGV4dCkKKyAgICA6IG1fZG9jdW1l
bnQoY29udGV4dC5kb2N1bWVudCgpKQoreworICAgIGlmIChjb250ZXh0Lm5lZWRzU3R5bGVSZWNh
bGMoKSkKKyAgICAgICAgbV9kb2N1bWVudC51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgaWYg
KGNvbnRleHQucmVuZGVyZXIoKSAmJiBjb250ZXh0LnJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0
aXZlU2tpcHNDb250ZW50KCkpIHsKKyAgICAgICAgaWYgKG1fZG9jdW1lbnQudmlldygpKQorICAg
ICAgICAgICAgbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5zZXRMYXlvdXRGb3Jj
ZWQodHJ1ZSk7CisgICAgfQorfQorCitDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6
On5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKQoreworICAgIGlmIChtX2RvY3Vt
ZW50LnZpZXcoKSkKKyAgICAgICAgbV9kb2N1bWVudC52aWV3KCktPmxheW91dENvbnRleHQoKS5z
ZXRMYXlvdXRGb3JjZWQoZmFsc2UpOworfQorCiB2b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQo
KQogewogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CkBAIC0yMjg2LDcgKzIzMDMsNyBAQCB2
b2lkIERvY3VtZW50Ojp1cGRhdGVMYXlvdXQoKQogCiAgICAgaWYgKCFmcmFtZVZpZXcgfHwgIXJl
bmRlclZpZXcoKSkKICAgICAgICAgcmV0dXJuOwotICAgIGlmICghZnJhbWVWaWV3LT5sYXlvdXRD
b250ZXh0KCkuaXNMYXlvdXRQZW5kaW5nKCkgJiYgIXJlbmRlclZpZXcoKS0+bmVlZHNMYXlvdXQo
KSkKKyAgICBpZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygp
ICYmICFyZW5kZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkgJiYgIWZyYW1lVmlldy0+bGF5b3V0Q29u
dGV4dCgpLmlzTGF5b3V0Rm9yY2VkKCkpCiAgICAgICAgIHJldHVybjsKIAogICAgIGZyYW1lVmll
dy0+bGF5b3V0Q29udGV4dCgpLmxheW91dCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA4ODNm
MzIxZjZjN2MuLjBmYzk0ZDBiOGQwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM1NCw2ICsz
NTQsMTUgQEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhF
dmVudFRhcmdldERhdGE+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUgeworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZShjb25zdCBFbGVtZW50Jik7CisgICAgfkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZSgpOworCitwcml2YXRlOgorICAgIERvY3VtZW50JiBtX2RvY3VtZW50OworfTsK
KwogY2xhc3MgRG9jdW1lbnQKICAgICA6IHB1YmxpYyBDb250YWluZXJOb2RlCiAgICAgLCBwdWJs
aWMgVHJlZVNjb3BlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggNzVmN2YyZTBiNTk2Li5lYTQ4
MWM0Yjk5YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTEzMTUsNiArMTMxNSw4IEBAIHN0
YXRpYyBIYXNoU2V0PFRyZWVTY29wZSo+IGNvbGxlY3RBbmNlc3RvclRyZWVTY29wZUFzSGFzaFNl
dChOb2RlJiBub2RlKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0TGVmdEZvckJpbmRpbmdzKCkKIHsK
KyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAg
ICAgYXV0byBvZmZzZXQgPSBvZmZzZXRMZWZ0KCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zm
c2V0UGFyZW50KCk7CkBAIC0xMzQ0LDYgKzEzNDYsOCBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0TGVm
dCgpCiAKIGludCBFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncygpCiB7CisgICAgQ29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGF1dG8gb2Zm
c2V0ID0gb2Zmc2V0VG9wKCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7
CkBAIC0xNTI1LDYgKzE1MjksOCBAQCBpbnQgRWxlbWVudDo6c2Nyb2xsTGVmdCgpCiAKIGludCBF
bGVtZW50OjpzY3JvbGxUb3AoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVu
dCgpID09IHRoaXMpIHsKQEAgLTE4NzQsNiArMTg4MCw4IEBAIHN0ZDo6b3B0aW9uYWw8c3RkOjpw
YWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1dGVS
ZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogeworICAgIENv
bnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGF1dG8g
cGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwogICAgIGlmICghcGFp
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDgzMjJjMzE3
N2FhMS4uZWE4ZmNlM2YwODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVu
dC5jcHAKQEAgLTUwNyw2ICs1MDcsOCBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFBpY3R1
cmVFbGVtZW50KEhUTUxQaWN0dXJlRWxlbWVudCogcGljdHVyZUVsZW1lbnQpCiAgICAgCiB1bnNp
Z25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCgpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGlmIChpblJlbmRlcmVkRG9jdW1l
bnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKIApAQCAtNTMwLDYgKzUzMiw4IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6
OndpZHRoKCkKIAogdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0KCkKIHsKKyAgICBD
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgaWYg
KGluUmVuZGVyZWREb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC02NzIsNiArNjc2LDggQEAgdm9pZCBIVE1M
SW1hZ2VFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIAogaW50IEhUTUxJbWFnZUVs
ZW1lbnQ6OngoKSBjb25zdAogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRp
bmdTdHlsZXNoZWV0cygpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigpOwog
ICAgIGlmICghcmVuZGVyZXIpCkBAIC02ODMsNiArNjg5LDggQEAgaW50IEhUTUxJbWFnZUVsZW1l
bnQ6OngoKSBjb25zdAogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eSgpIGNvbnN0CiB7CisgICAg
Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0
byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi42MWYyZjIw
N2M4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMsNiAr
MTczLDggQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAgQVNT
RVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRoaXMt
PmVsZW1lbnQoKSk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2Nv
cGUoZWxlbWVudC5nZXQoKSk7CisKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91
dCgpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkKQEAg
LTE5NSw2ICsxOTcsOCBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25zdAog
ICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVtZW50
KCp0aGlzLT5lbGVtZW50KCkpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNj
b3BlIHNjb3BlKGVsZW1lbnQuZ2V0KCkpOworCiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXQoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRlcmVy
KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRl
eHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmluZGV4
IGJmNmU1ZWYzNWM4YS4uYTMwNmZhN2I4OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Zy
YW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAgYm9v
bCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFz
ZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBjb25z
dCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlv
dXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlvdXRQ
aGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhhc2Uo
KSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAhPSBM
YXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0KKyAg
ICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7IH0K
KyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBmOyB9
CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Q291
bnQ7IH0KIApAQCAtMTcxLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRzRnVs
bFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBmYWxz
ZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsKKyAg
ICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xheW91
dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNzIExh
eW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBOZXN0
ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5b3V0
TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDA2NjNkNTk2OWE0OC4uNDZmMGRhYTI4OTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtNzkzLDYg
Kzc5MywxMyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6bGF5b3V0QmxvY2tDaGlsZHJlbihib29s
IHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIG1heAogICAgICAgICBpZiAoY2hpbGQuaXNF
eGNsdWRlZEZyb21Ob3JtYWxMYXlvdXQoKSkKICAgICAgICAgICAgIGNvbnRpbnVlOyAvLyBTa2lw
IHRoaXMgY2hpbGQsIHNpbmNlIGl0IHdpbGwgYmUgcG9zaXRpb25lZCBieSB0aGUgc3BlY2lhbGl6
ZWQgc3ViY2xhc3MgKGZpZWxkc2V0cyBhbmQgcnVieSBydW5zKS4KIAorICAgICAgICBpZiAoaXNT
a2lwcGVkQ29udGVudEZvckxheW91dCgpKSB7CisgICAgICAgICAgICBmb3IgKGF1dG8mIGRlc2Nl
bmRhbnQgOiBkZXNjZW5kYW50c09mVHlwZTxSZW5kZXJPYmplY3Q+KGNoaWxkKSkKKyAgICAgICAg
ICAgICAgICBkZXNjZW5kYW50LmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNoaWxk
LmNsZWFyTmVlZHNMYXlvdXQoKTsKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICB9CisK
ICAgICAgICAgdXBkYXRlQmxvY2tDaGlsZERpcnR5Qml0c0JlZm9yZUxheW91dChyZWxheW91dENo
aWxkcmVuLCBjaGlsZCk7CiAKICAgICAgICAgaWYgKGNoaWxkLmlzT3V0T2ZGbG93UG9zaXRpb25l
ZCgpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCmluZGV4IDRm
ZDlkMGZiODM2NS4uYmJhODEyNWY5MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcApAQCAtMjY0Miw2ICsyNjQyLDExIEBAIGJvb2wgUmVuZGVyT2JqZWN0Ojpz
aG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiAgICAgcmV0dXJuIHN0eWxlKCkuY29udGVudFZpc2li
aWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6SGlkZGVuOwogfQogCitib29sIFJlbmRlck9i
amVjdDo6aXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIGlz
U2tpcHBlZENvbnRlbnQoKSAmJiAhdmlldygpLmZyYW1lVmlldygpLmxheW91dENvbnRleHQoKS5p
c0xheW91dEZvcmNlZCgpOworfQorCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0m
IHRzLCBjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIHRzIDw8IHJlbmRlcmVy
LmRlYnVnRGVzY3JpcHRpb24oKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3Qu
aAppbmRleCA2NjYyMjk4ZGM3ZDUuLjhmOTQwNmJjOTJjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJPYmplY3QuaApAQCAtNzk4LDYgKzc5OCw3IEBAIHB1YmxpYzoKICAgICBib29s
IGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKIAogICAgIGJvb2wgc2hvdWxkU2tpcENvbnRlbnQo
KSBjb25zdDsKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdDsKIAog
cHJvdGVjdGVkOgogICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
LwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCBkNmQ5ZjljZDI1OGYuLjNmNmFh
YzQ0NDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAgLTY3LDggKzY3LDEx
IEBAIFNWR0VsZW1lbnQqIFNWR0xvY2F0YWJsZTo6ZmFydGhlc3RWaWV3cG9ydEVsZW1lbnQoY29u
c3QgU1ZHRWxlbWVudCogZWxlbWVudCkKIEZsb2F0UmVjdCBTVkdMb2NhdGFibGU6OmdldEJCb3go
U1ZHRWxlbWVudCogZWxlbWVudCwgU3R5bGVVcGRhdGVTdHJhdGVneSBzdHlsZVVwZGF0ZVN0cmF0
ZWd5KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVn
eSA9PSBBbGxvd1N0eWxlVXBkYXRlKQorICAgIGlmIChzdHlsZVVwZGF0ZVN0cmF0ZWd5ID09IEFs
bG93U3R5bGVVcGRhdGUpIHsKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNj
b3BlIHNjb3BlKCplbGVtZW50KTsKKwogICAgICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIH0KIAogICAgIC8vIEZJWE1F
OiBFdmVudHVhbGx5IHdlIHNob3VsZCBzdXBwb3J0IGdldEJCb3ggZm9yIGRldGFjaGVkIGVsZW1l
bnRzLgogICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggYWNkMmVlYTgzMGQzLi40NDg5NjgxYzk5
MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCkBA
IC01NSwxMiArNTUsMTYgQEAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdUZXh0Q29udGVudEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KIAogdW5zaWduZWQgU1ZH
VGV4dENvbnRlbnRFbGVtZW50OjpnZXROdW1iZXJPZkNoYXJzKCkKIHsKKyAgICBDb250ZW50Vmlz
aWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gU1ZHVGV4
dFF1ZXJ5KHJlbmRlcmVyKCkpLm51bWJlck9mQ2hhcmFjdGVycygpOwogfQogCiBmbG9hdCBTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCgpCiB7CisgICAgQ29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50
KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJuIFNW
R1RleHRRdWVyeShyZW5kZXJlcigpKS50ZXh0TGVuZ3RoKCk7CiB9CkBAIC0xMDksNiArMTEzLDgg
QEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Um90YXRpb25P
ZkNoYXIodW5zaWduZWQgY2hhcm51bSkKIAogaW50IFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0
Q2hhck51bUF0UG9zaXRpb24oRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQogeworICAgIENvbnRl
bnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIEZsb2F0UG9p
bnQgdHJhbnNmb3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueCksIHN0YXRp
Y19jYXN0PGZsb2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVu
ZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Qb2ludCk7CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwppbmRleCA1ZDE3NmViZjlkNDcuLmEwYjE3NTVkYTZlMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0
YXRpb25zCkBAIC00ODExLDggKzQ4MTEsNiBAQCB3ZWJhbmltYXRpb25zL3RyYW5zbGF0ZS1wcm9w
ZXJ0eS1hbmQtdHJhbnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNlZC1sYQogIyBD
U1MgY29udGFpbm1lbnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJmYy1mbG9hdHMtMDAx
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmluc2ljLmh0bWwgWyBJ
bWFnZU9ubHlGYWlsdXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wMzUuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50
LXZpc2liaWxpdHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sCmluZGV4IGJjODRj
MjhkNGEzNi4uZGMyMjJiZjY5ZDNjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9j
b250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwKQEAgLTQzLDEwICs0MywxMCBAQCBhc3luY190ZXN0
KCh0KSA9PiB7CiAgIH0KIAogICBhc3luYyBmdW5jdGlvbiBmb3JjZUxheW91dFRlc3QoKSB7Ci0g
ICAgdC5zdGVwKCgpID0+IGFzc2VydF9lcXVhbHMoc2xvdHRlZC5vZmZzZXRUb3AsIDApKTsKKyAg
ICB0LnN0ZXAoKCkgPT4gYXNzZXJ0X2FwcHJveF9lcXVhbHMoc2xvdHRlZC5vZmZzZXRUb3AsIDAs
IDEpKTsKICAgICAvLyBBZGQgYSAyMHB4IGRpdiBhYm92ZSB0aGUgc2xvdHRlZCBkaXYuCiAgICAg
Y29udGFpbmVyLmlubmVySFRNTCA9ICI8ZGl2IHN0eWxlPSdoZWlnaHQ6IDIwcHg7Jz48L2Rpdj48
c2xvdD48L3Nsb3Q+IjsKLSAgICB0LnN0ZXAoKCkgPT4gYXNzZXJ0X2VxdWFscyhzbG90dGVkLm9m
ZnNldFRvcCwgMjApKTsKKyAgICB0LnN0ZXAoKCkgPT4gYXNzZXJ0X2FwcHJveF9lcXVhbHMoc2xv
dHRlZC5vZmZzZXRUb3AsIDIwLCAxKSk7CiAgICAgdC5kb25lKCk7CiAgIH0KIApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA2NDFiY2Q5YTJiOGMuLjY5NzZk
MTgxMDMzYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTM2MTMsOCArMzYxMyw2IEBAIHdlYmtpdC5vcmcvYi8yMzg4MjQgaHR0cC90ZXN0cy93b3JrZXJz
L3NlcnZpY2Uvb3BlbndpbmRvdy1mcm9tLW5vdGlmaWNhdGlvbi1jbGljCiB3ZWJraXQub3JnL2Iv
MjM3NDMzIGVkaXRpbmcvcGFzdGVib2FyZC80MDc2MjY3LTMuaHRtbCBbIFRpbWVvdXQgUGFzcyBG
YWlsdXJlIF0KIHdlYmtpdC5vcmcvYi8yMzc0MzMgZWRpdGluZy9wYXN0ZWJvYXJkL3Bhc3RlLWFu
ZC1zYW5pdGl6ZS5odG1sIFsgVGltZW91dCBQYXNzIEZhaWx1cmUgXQogCi13ZWJraXQub3JnL2Iv
MjM3OTU1IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0Lmh0bWwgWyBGYWlsdXJlIF0K
LQogd2Via2l0Lm9yZy9iLzIzOTYyNSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29sb3Ivb3BhY2l0eS1vdmVybGFwcGluZy1sZXR0ZXJzLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KIAogd2Via2l0Lm9yZy9iLzIzOTU2NyB0YWJsZXMvbW96aWxsYS9idWdzL2J1ZzI2
MTc4Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464535</attachid>
            <date>2023-01-18 04:19:59 -0800</date>
            <delta_ts>2023-01-23 01:47:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230118121957.patch</filename>
            <type>text/plain</type>
            <size>13428</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBjNGY5YjJiMTMwYWQ2MWY1NGYyOTBlZTk0NGZjNDIxMDUzMTdkNmUzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAxNiBKYW4gMjAyMyAxMTozMTozNiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhp
cyBwYXRjaCBzdXBwb3J0cyBza2lwcGluZyBsYXlvdXQgb2YgY2hpbGRyZW4gaW4gaGlkZGVuIGNv
bnRlbnQtdmlzaWJpbGl0eSBzdWJ0cmVlcy4KCkhvd2V2ZXIgRE9NIG9wZXJhdGlvbnMgdGhhdCBy
ZXF1aXJlIG1lYXN1cmluZyBkbyBuZWVkIGFuIGFjY3VyYXRlIGxheW91dCwgc28KaW50cm9kdWNl
IHRoZSBoZWxwZXIgY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHRvIG92
ZXJyaWRlIHRoZQpsYXp5IGxheW91dCBtZWNoYW5pc20gZm9yIGhpZGRlbiBjb250ZW50LXZpc2li
aWxpdHkgc3VidHJlZXMuCgoqIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnM6CiogU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcDoKKFdlYkNvcmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9y
Y2VMYXlvdXRTY29wZTo6Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKFdlYkNv
cmU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5
Rm9yY2VMYXlvdXRTY29wZSk6CihXZWJDb3JlOjpEb2N1bWVudDo6dXBkYXRlTGF5b3V0KToKKiBT
b3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVu
dC5jcHA6CihXZWJDb3JlOjpFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MpOgooV2ViQ29y
ZTo6RWxlbWVudDo6b2Zmc2V0VG9wRm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91
bmRpbmdDbGllbnRSZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaDoKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzTGF5b3V0Rm9yY2Vk
IGNvbnN0KToKKFdlYkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OnNldExheW91dEZvcmNl
ZCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CihXZWJD
b3JlOjpSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrQ2hpbGRyZW4pOiBza2lwIGxheW91dCBp
biBoaWRkZW4gY29udGVudC12aXNpYmlsaXR5IHN1YnRyZWUuCiogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlck9iamVjdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU2tpcHBl
ZENvbnRlbnRGb3JMYXlvdXQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJPYmplY3QuaDoKKiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNv
cmU6OlNWR0xvY2F0YWJsZTo6Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRD
b250ZW50RWxlbWVudC5jcHA6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51
bWJlck9mQ2hhcnMpOgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRl
ZFRleHRMZW5ndGgpOgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVt
QXRQb3NpdGlvbik6Ci0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAg
ICAgICAgIHwgMTkgKysrKysrKysrKysrKysrKysrLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3Vt
ZW50LmggICAgICAgICAgICAgICAgIHwgIDkgKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20v
RWxlbWVudC5jcHAgICAgICAgICAgICAgICAgfCAgNiArKysrKysKIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oICB8ICAzICsrKwogU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgIHwgIDcgKysrKysrKwogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgICAgIHwgIDUgKysrKysKIFNvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAgICB8ICAxICsKIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdMb2NhdGFibGUuY3BwICAgICAgICAgICB8ICA1ICsrKystCiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCAgfCAgNiArKysrKysKIExheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgICB8ICAyIC0tCiAuLi4vY29udGVudC12aXNp
YmlsaXR5LTAzNS5odG1sICAgICAgICAgICAgICAgfCAgNCArKy0tCiBMYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucyAgICAgfCAgMiAtLQogMTIgZmlsZXMgY2hhbmdlZCwg
NjEgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApp
bmRleCA0NmQ0YWY0NzgwNWYuLjRkMjk0NmM0ZTIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3Bw
CkBAIC0yMjYzLDYgKzIyNjMsMjMgQEAgYm9vbCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRl
ZCgpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0NvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZTo6Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKGNvbnN0IEVsZW1lbnQmIGNv
bnRleHQpCisgICAgOiBtX2RvY3VtZW50KGNvbnRleHQuZG9jdW1lbnQoKSkKK3sKKyAgICBpZiAo
Y29udGV4dC5uZWVkc1N0eWxlUmVjYWxjKCkpCisgICAgICAgIG1fZG9jdW1lbnQudXBkYXRlU3R5
bGVJZk5lZWRlZCgpOworICAgIGlmIChjb250ZXh0LnJlbmRlcmVyKCkgJiYgY29udGV4dC5yZW5k
ZXJlcigpLT5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKSB7CisgICAgICAgIGlmICht
X2RvY3VtZW50LnZpZXcoKSkKKyAgICAgICAgICAgIG1fZG9jdW1lbnQudmlldygpLT5sYXlvdXRD
b250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKHRydWUpOworICAgIH0KK30KKworQ29udGVudFZpc2li
aWxpdHlGb3JjZUxheW91dFNjb3BlOjp+Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3Bl
KCkKK3sKKyAgICBpZiAobV9kb2N1bWVudC52aWV3KCkpCisgICAgICAgIG1fZG9jdW1lbnQudmll
dygpLT5sYXlvdXRDb250ZXh0KCkuc2V0TGF5b3V0Rm9yY2VkKGZhbHNlKTsKK30KKwogdm9pZCBE
b2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIHsKICAgICBBU1NFUlQoaXNNYWluVGhyZWFkKCkpOwpA
QCAtMjI4Niw3ICsyMzAzLDcgQEAgdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIAogICAg
IGlmICghZnJhbWVWaWV3IHx8ICFyZW5kZXJWaWV3KCkpCiAgICAgICAgIHJldHVybjsKLSAgICBp
ZiAoIWZyYW1lVmlldy0+bGF5b3V0Q29udGV4dCgpLmlzTGF5b3V0UGVuZGluZygpICYmICFyZW5k
ZXJWaWV3KCktPm5lZWRzTGF5b3V0KCkpCisgICAgaWYgKCFmcmFtZVZpZXctPmxheW91dENvbnRl
eHQoKS5pc0xheW91dFBlbmRpbmcoKSAmJiAhcmVuZGVyVmlldygpLT5uZWVkc0xheW91dCgpICYm
ICFmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5pc0xheW91dEZvcmNlZCgpKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBmcmFtZVZpZXctPmxheW91dENvbnRleHQoKS5sYXlvdXQoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9t
L0RvY3VtZW50LmgKaW5kZXggODgzZjMyMWY2YzdjLi4wZmM5NGQwYjhkMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9E
b2N1bWVudC5oCkBAIC0zNTQsNiArMzU0LDE1IEBAIHByaXZhdGU6CiAgICAgV2Vha1B0cjxEb2N1
bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3VtZW50OwogfTsKIAor
Y2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHsKK3B1YmxpYzoKKyAgICBD
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVudCYpOworICAgIH5D
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsKKworcHJpdmF0ZToKKyAgICBEb2N1
bWVudCYgbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3VtZW50CiAgICAgOiBwdWJsaWMgQ29u
dGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvZG9tL0VsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCmlu
ZGV4IDc1ZjdmMmUwYjU5Ni4uYjVkMTQ4Y2E1Y2E2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwCkBA
IC0xMzE1LDYgKzEzMTUsOCBAQCBzdGF0aWMgSGFzaFNldDxUcmVlU2NvcGUqPiBjb2xsZWN0QW5j
ZXN0b3JUcmVlU2NvcGVBc0hhc2hTZXQoTm9kZSYgbm9kZSkKIAogaW50IEVsZW1lbnQ6Om9mZnNl
dExlZnRGb3JCaW5kaW5ncygpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNj
b3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGF1dG8gb2Zmc2V0ID0gb2Zmc2V0TGVmdCgpOwogCiAg
ICAgUmVmUHRyIHBhcmVudCA9IG9mZnNldFBhcmVudCgpOwpAQCAtMTM0NCw2ICsxMzQ2LDggQEAg
aW50IEVsZW1lbnQ6Om9mZnNldExlZnQoKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0VG9wRm9yQmlu
ZGluZ3MoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgq
dGhpcyk7CisKICAgICBhdXRvIG9mZnNldCA9IG9mZnNldFRvcCgpOwogCiAgICAgUmVmUHRyIHBh
cmVudCA9IG9mZnNldFBhcmVudCgpOwpAQCAtMTg3NCw2ICsxODc4LDggQEAgc3RkOjpvcHRpb25h
bDxzdGQ6OnBhaXI8UmVuZGVyT2JqZWN0KiwgRmxvYXRSZWN0Pj4gRWxlbWVudDo6Ym91bmRpbmdB
YnNvbHV0ZVJlY3QKIAogRmxvYXRSZWN0IEVsZW1lbnQ6OmJvdW5kaW5nQ2xpZW50UmVjdCgpCiB7
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAg
ICAgYXV0byBwYWlyID0gYm91bmRpbmdBYnNvbHV0ZVJlY3RXaXRob3V0TGF5b3V0KCk7CiAgICAg
aWYgKCFwYWlyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlv
dXRDb250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQu
aAppbmRleCBiZjZlNWVmMzVjOGEuLmEzMDZmYTdiODlkNyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9GcmFtZVZpZXdMYXlvdXRDb250ZXh0LmgKQEAgLTgyLDYgKzgyLDggQEAgcHVibGljOgog
ICAgIGJvb2wgaXNJbkxheW91dCgpIGNvbnN0IHsgcmV0dXJuIGxheW91dFBoYXNlKCkgIT0gTGF5
b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQ7IH0KICAgICBib29sIGlzSW5SZW5kZXJUcmVlTGF5b3V0
KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSA9PSBMYXlvdXRQaGFzZTo6SW5SZW5kZXJU
cmVlTGF5b3V0OyB9CiAgICAgYm9vbCBpblBhaW50YWJsZVN0YXRlKCkgY29uc3QgeyByZXR1cm4g
bGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5SZW5kZXJUcmVlTGF5b3V0ICYmIGxheW91
dFBoYXNlKCkgIT0gTGF5b3V0UGhhc2U6OkluVmlld1NpemVBZGp1c3QgJiYgKGxheW91dFBoYXNl
KCkgIT0gTGF5b3V0UGhhc2U6OkluUG9zdExheW91dCB8fCBpbkFzeW5jaHJvbm91c1Rhc2tzKCkp
OyB9CisgICAgYm9vbCBpc0xheW91dEZvcmNlZCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0Rm9y
Y2VkOyB9CisgICAgdm9pZCBzZXRMYXlvdXRGb3JjZWQoYm9vbCBmKSB7IG1fbGF5b3V0Rm9yY2Vk
ID0gZjsgfQogCiAgICAgdW5zaWduZWQgbGF5b3V0Q291bnQoKSBjb25zdCB7IHJldHVybiBtX2xh
eW91dENvdW50OyB9CiAKQEAgLTE3MSw2ICsxNzMsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9u
ZWVkc0Z1bGxSZXBhaW50IHsgdHJ1ZSB9OwogICAgIGJvb2wgbV9pbkFzeW5jaHJvbm91c1Rhc2tz
IHsgZmFsc2UgfTsKICAgICBib29sIG1fc2V0TmVlZHNMYXlvdXRXYXNEZWZlcnJlZCB7IGZhbHNl
IH07CisgICAgYm9vbCBtX2xheW91dEZvcmNlZCB7IGZhbHNlIH07CiAgICAgTGF5b3V0UGhhc2Ug
bV9sYXlvdXRQaGFzZSB7IExheW91dFBoYXNlOjpPdXRzaWRlTGF5b3V0IH07CiAgICAgZW51bSBj
bGFzcyBMYXlvdXROZXN0ZWRTdGF0ZSA6IHVpbnQ4X3QgIHsgTm90SW5MYXlvdXQsIE5vdE5lc3Rl
ZCwgTmVzdGVkIH07CiAgICAgTGF5b3V0TmVzdGVkU3RhdGUgbV9sYXlvdXROZXN0ZWRTdGF0ZSB7
IExheW91dE5lc3RlZFN0YXRlOjpOb3RJbkxheW91dCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCAwNjYzZDU5NjlhNDguLjQ2ZjBkYWEyODkw
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAg
LTc5Myw2ICs3OTMsMTMgQEAgdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OmxheW91dEJsb2NrQ2hpbGRy
ZW4oYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRVbml0JiBtYXgKICAgICAgICAgaWYgKGNo
aWxkLmlzRXhjbHVkZWRGcm9tTm9ybWFsTGF5b3V0KCkpCiAgICAgICAgICAgICBjb250aW51ZTsg
Ly8gU2tpcCB0aGlzIGNoaWxkLCBzaW5jZSBpdCB3aWxsIGJlIHBvc2l0aW9uZWQgYnkgdGhlIHNw
ZWNpYWxpemVkIHN1YmNsYXNzIChmaWVsZHNldHMgYW5kIHJ1YnkgcnVucykuCiAKKyAgICAgICAg
aWYgKGlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSkgeworICAgICAgICAgICAgZm9yIChhdXRv
JiBkZXNjZW5kYW50IDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyT2JqZWN0PihjaGlsZCkpCisg
ICAgICAgICAgICAgICAgZGVzY2VuZGFudC5jbGVhck5lZWRzTGF5b3V0KCk7CisgICAgICAgICAg
ICBjaGlsZC5jbGVhck5lZWRzTGF5b3V0KCk7CisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgfQorCiAgICAgICAgIHVwZGF0ZUJsb2NrQ2hpbGREaXJ0eUJpdHNCZWZvcmVMYXlvdXQocmVs
YXlvdXRDaGlsZHJlbiwgY2hpbGQpOwogCiAgICAgICAgIGlmIChjaGlsZC5pc091dE9mRmxvd1Bv
c2l0aW9uZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmNwcApp
bmRleCA0ZmQ5ZDBmYjgzNjUuLmJiYTgxMjVmOTE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI2NDIsNiArMjY0MiwxMSBAQCBib29sIFJlbmRlck9i
amVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAogICAgIHJldHVybiBzdHlsZSgpLmNvbnRl
bnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRlbjsKIH0KIAorYm9vbCBS
ZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBjb25zdAoreworICAgIHJl
dHVybiBpc1NraXBwZWRDb250ZW50KCkgJiYgIXZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250
ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKTsKK30KKwogVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0
U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICB0cyA8PCBy
ZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
T2JqZWN0LmgKaW5kZXggNjY2MjI5OGRjN2Q1Li44Zjk0MDZiYzkyYzkgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTc5OCw2ICs3OTgsNyBAQCBwdWJsaWM6CiAg
ICAgYm9vbCBpc1NraXBwZWRDb250ZW50KCkgY29uc3Q7CiAKICAgICBib29sIHNob3VsZFNraXBD
b250ZW50KCkgY29uc3Q7CisgICAgYm9vbCBpc1NraXBwZWRDb250ZW50Rm9yTGF5b3V0KCkgY29u
c3Q7CiAKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKaW5kZXggZDZkOWY5Y2QyNThm
Li4zZjZhYWM0NDQ5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFi
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCkBAIC02Nyw4
ICs2NywxMSBAQCBTVkdFbGVtZW50KiBTVkdMb2NhdGFibGU6OmZhcnRoZXN0Vmlld3BvcnRFbGVt
ZW50KGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCiBGbG9hdFJlY3QgU1ZHTG9jYXRhYmxlOjpn
ZXRCQm94KFNWR0VsZW1lbnQqIGVsZW1lbnQsIFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRh
dGVTdHJhdGVneSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgaWYgKHN0eWxlVXBkYXRl
U3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKKyAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVn
eSA9PSBBbGxvd1N0eWxlVXBkYXRlKSB7CisgICAgICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZSBzY29wZSgqZWxlbWVudCk7CisKICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICB9CiAKICAgICAv
LyBGSVhNRTogRXZlbnR1YWxseSB3ZSBzaG91bGQgc3VwcG9ydCBnZXRCQm94IGZvciBkZXRhY2hl
ZCBlbGVtZW50cy4KICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IGFjZDJlZWE4MzBkMy4uNDQ4
OTY4MWM5OTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcApAQCAtNTUsMTIgKzU1LDE2IEBAIFNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENv
bnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiAKIHVuc2ln
bmVkIFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycygpCiB7CisgICAgQ29u
dGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJu
IFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5udW1iZXJPZkNoYXJhY3RlcnMoKTsKIH0KIAogZmxv
YXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgoKQogeworICAg
IENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIHJl
dHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkudGV4dExlbmd0aCgpOwogfQpAQCAtMTA5LDYg
KzExMyw4IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFJv
dGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0pCiAKIGludCBTVkdUZXh0Q29udGVudEVsZW1l
bnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERPTVBvaW50SW5pdCYmIHBvaW50SW5pdCkKIHsKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBG
bG9hdFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0Lngp
LCBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1cm4gU1ZHVGV4dFF1
ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJhbnNmb3JtUG9pbnQp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjA1ZTUwMjIzNTAyLi5lM2U1OGNkODY0M2MgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNDgxOCw4ICs0ODE4LDYgQEAgd2ViYW5pbWF0aW9ucy90cmFuc2xh
dGUtcHJvcGVydHktYW5kLXRyYW5zbGF0ZS1hbmltYXRpb24td2l0aC1kZWxheS1vbi1mb3JjZWQt
bGEKICMgQ1NTIGNvbnRhaW5tZW50IHRlc3RzIHRoYXQgZmFpbAogaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1iZmMtZmxv
YXRzLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWludHJpbnNpYy5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi0jIGZvcmNlZCBsYXlvdXQKLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgWyBTa2lwIF0KICMgYy12OiBhdXRvCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbAppbmRl
eCBiYzg0YzI4ZDRhMzYuLmRjMjIyYmY2OWQzYyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sCkBAIC00MywxMCArNDMsMTAgQEAgYXN5
bmNfdGVzdCgodCkgPT4gewogICB9CiAKICAgYXN5bmMgZnVuY3Rpb24gZm9yY2VMYXlvdXRUZXN0
KCkgewotICAgIHQuc3RlcCgoKSA9PiBhc3NlcnRfZXF1YWxzKHNsb3R0ZWQub2Zmc2V0VG9wLCAw
KSk7CisgICAgdC5zdGVwKCgpID0+IGFzc2VydF9hcHByb3hfZXF1YWxzKHNsb3R0ZWQub2Zmc2V0
VG9wLCAwLCAxKSk7CiAgICAgLy8gQWRkIGEgMjBweCBkaXYgYWJvdmUgdGhlIHNsb3R0ZWQgZGl2
LgogICAgIGNvbnRhaW5lci5pbm5lckhUTUwgPSAiPGRpdiBzdHlsZT0naGVpZ2h0OiAyMHB4Oyc+
PC9kaXY+PHNsb3Q+PC9zbG90PiI7Ci0gICAgdC5zdGVwKCgpID0+IGFzc2VydF9lcXVhbHMoc2xv
dHRlZC5vZmZzZXRUb3AsIDIwKSk7CisgICAgdC5zdGVwKCgpID0+IGFzc2VydF9hcHByb3hfZXF1
YWxzKHNsb3R0ZWQub2Zmc2V0VG9wLCAyMCwgMSkpOwogICAgIHQuZG9uZSgpOwogICB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5
b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggZWZkYTczMzliMzgw
Li4xZGUwZGQxZWVhMDQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0
RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCkBAIC0zNjEzLDggKzM2MTMsNiBAQCB3ZWJraXQub3JnL2IvMjM4ODI0IGh0dHAvdGVzdHMv
d29ya2Vycy9zZXJ2aWNlL29wZW53aW5kb3ctZnJvbS1ub3RpZmljYXRpb24tY2xpYwogd2Via2l0
Lm9yZy9iLzIzNzQzMyBlZGl0aW5nL3Bhc3RlYm9hcmQvNDA3NjI2Ny0zLmh0bWwgWyBUaW1lb3V0
IFBhc3MgRmFpbHVyZSBdCiB3ZWJraXQub3JnL2IvMjM3NDMzIGVkaXRpbmcvcGFzdGVib2FyZC9w
YXN0ZS1hbmQtc2FuaXRpemUuaHRtbCBbIFRpbWVvdXQgUGFzcyBGYWlsdXJlIF0KIAotd2Via2l0
Lm9yZy9iLzIzNzk1NSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29u
dGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0NC5odG1sIFsgRmFp
bHVyZSBdCi0KIHdlYmtpdC5vcmcvYi8yMzk2MjUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbG9yL29wYWNpdHktb3ZlcmxhcHBpbmctbGV0dGVycy5odG1sIFsgSW1h
Z2VPbmx5RmFpbHVyZSBdCiAKIHdlYmtpdC5vcmcvYi8yMzk1NjcgdGFibGVzL21vemlsbGEvYnVn
cy9idWcyNjE3OC5odG1sIFsgUGFzcyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464602</attachid>
            <date>2023-01-23 01:47:25 -0800</date>
            <delta_ts>2023-01-29 11:54:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230123094724.patch</filename>
            <type>text/plain</type>
            <size>16813</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAyZTg1NTgxYjQ5MTI5MjNjM2UzY2NiNGY4YjRhMjY5Y2M0ZTM5Njc2IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogV2Vk
LCAxOCBKYW4gMjAyMyAxNjowOTo0MiArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKVGhp
cyBwYXRjaCBzdXBwb3J0cyBza2lwcGluZyBsYXlvdXQgb2YgY2hpbGRyZW4gaW4gaGlkZGVuIGNv
bnRlbnQtdmlzaWJpbGl0eSBzdWJ0cmVlcy4KCkhvd2V2ZXIgRE9NIG9wZXJhdGlvbnMgdGhhdCBy
ZXF1aXJlIG1lYXN1cmluZyBkbyBuZWVkIGFuIGFjY3VyYXRlIGxheW91dCwgc28KaW50cm9kdWNl
IHRoZSBoZWxwZXIgY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHRvIG92
ZXJyaWRlICgiZm9yY2VkIGxheW91dCIpCnRoZSBsYXp5IGxheW91dCBtZWNoYW5pc20gZm9yIGhp
ZGRlbiBjb250ZW50LXZpc2liaWxpdHkgc3VidHJlZXMuCgoqIExheW91dFRlc3RzL1Rlc3RFeHBl
Y3RhdGlvbnM6CiogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUu
aHRtbAoqIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHA6CihXZWJDb3JlOjpDb250ZW50
VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZSk6CihXZWJDb3JlOjpDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6On5Db250
ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUpOgooV2ViQ29yZTo6RG9jdW1lbnQ6OnVwZGF0
ZUxheW91dCk6IHByb2NlZWQgbGF5b3V0IGlmIGl0IGlzIGZvcmNlZC4KKiBTb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHA6CihXZWJD
b3JlOjpFbGVtZW50OjpvZmZzZXRMZWZ0Rm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6
b2Zmc2V0VG9wRm9yQmluZGluZ3MpOgooV2ViQ29yZTo6RWxlbWVudDo6Ym91bmRpbmdDbGllbnRS
ZWN0KToKKiBTb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaDoKKFdl
YkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OmlzTGF5b3V0Rm9yY2VkIGNvbnN0KToKKFdl
YkNvcmU6OkZyYW1lVmlld0xheW91dENvbnRleHQ6OnNldExheW91dEZvcmNlZCk6CiogU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CihXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OmxheW91dEJsb2NrQ2hpbGRyZW4pOiBza2lwIGxheW91dCBpbiBoaWRkZW4gY29u
dGVudC12aXNpYmlsaXR5IHN1YnRyZWUuCiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
ck9iamVjdC5jcHA6CihXZWJDb3JlOjpSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnRGb3JM
YXlvdXQgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaDoK
KiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcDoKKFdlYkNvcmU6OlNWR0xvY2F0
YWJsZTo6Z2V0QkJveCk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVu
dC5jcHA6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMp
OgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgp
OgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQb3NpdGlvbik6
Ci0tLQogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCAgICAgICAgICAgICAgICAgfCAx
NyArKysrKysrKysrKysrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmggICAgICAg
ICAgICAgICAgICAgfCAgOSArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNw
cCAgICAgICAgICAgICAgICAgIHwgIDYgKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJ
bWFnZUVsZW1lbnQuY3BwICAgICAgICB8ICA4ICsrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9odG1s
L0ltYWdlSW5wdXRUeXBlLmNwcCAgICAgICAgICB8ICA0ICsrKysKIFNvdXJjZS9XZWJDb3JlL3Bh
Z2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oICAgIHwgIDMgKysrCiBTb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgICB8ICA2ICsrKysrKwogU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgICAgfCAxNSArKysrKysrKysrKysrKysK
IFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwICAgICAgIHwgIDUgKysr
KysKIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaCAgICAgICAgIHwgIDEg
KwogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgICAgfCAgNSAr
KysrLQogU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgICAgfCAg
NiArKysrKysKIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgICAg
IHwgIDIgLS0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgICAgICAgICAgICAgICAg
IHwgIDIgKy0KIExheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zICAgICAg
IHwgIDIgLS0KIDE1IGZpbGVzIGNoYW5nZWQsIDg1IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25z
KC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKaW5kZXggNDZkNGFmNDc4MDVmLi45MzRiNGVhODU0
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcApAQCAtMjI2Myw2ICsyMjYzLDIzIEBAIGJvb2wg
RG9jdW1lbnQ6OnVwZGF0ZVN0eWxlSWZOZWVkZWQoKQogICAgIHJldHVybiB0cnVlOwogfQogCitD
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6OkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZShjb25zdCBFbGVtZW50JiBjb250ZXh0KQoreworICAgIGNvbnRleHQuZG9jdW1l
bnQoKS51cGRhdGVTdHlsZUlmTmVlZGVkKCk7CisgICAgaWYgKGNvbnRleHQucmVuZGVyZXIoKSAm
JiBjb250ZXh0LnJlbmRlcmVyKCktPnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpIHsK
KyAgICAgICAgY29udGV4dC5yZW5kZXJlcigpLT5zZXROZWVkc0xheW91dCgpOworICAgICAgICBt
X2RvY3VtZW50ID0gY29udGV4dC5kb2N1bWVudCgpOworICAgICAgICBpZiAobV9kb2N1bWVudC0+
dmlldygpKQorICAgICAgICAgICAgbV9kb2N1bWVudC0+dmlldygpLT5sYXlvdXRDb250ZXh0KCku
c2V0TGF5b3V0Rm9yY2VkKHRydWUpOworICAgIH0KK30KKworQ29udGVudFZpc2liaWxpdHlGb3Jj
ZUxheW91dFNjb3BlOjp+Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKCkKK3sKKyAg
ICBpZiAobV9kb2N1bWVudCAmJiBtX2RvY3VtZW50LT52aWV3KCkpCisgICAgICAgIG1fZG9jdW1l
bnQtPnZpZXcoKS0+bGF5b3V0Q29udGV4dCgpLnNldExheW91dEZvcmNlZChmYWxzZSk7Cit9CisK
IHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVh
ZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291cmNl
L1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggODgzZjMyMWY2YzdjLi5iM2FmZjFmMDViOGUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNTQsNiArMzU0LDE1IEBAIHByaXZhdGU6CiAgICAg
V2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2RvY3Vt
ZW50OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHsKK3B1
YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoY29uc3QgRWxlbWVu
dCYpOworICAgIH5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsKKworcHJpdmF0
ZToKKyAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+
IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5l
ck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2RvbS9FbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCA3
NWY3ZjJlMGI1OTYuLmI1ZDE0OGNhNWNhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9t
L0VsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtMTMx
NSw2ICsxMzE1LDggQEAgc3RhdGljIEhhc2hTZXQ8VHJlZVNjb3BlKj4gY29sbGVjdEFuY2VzdG9y
VHJlZVNjb3BlQXNIYXNoU2V0KE5vZGUmIG5vZGUpCiAKIGludCBFbGVtZW50OjpvZmZzZXRMZWZ0
Rm9yQmluZGluZ3MoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBz
Y29wZSgqdGhpcyk7CisKICAgICBhdXRvIG9mZnNldCA9IG9mZnNldExlZnQoKTsKIAogICAgIFJl
ZlB0ciBwYXJlbnQgPSBvZmZzZXRQYXJlbnQoKTsKQEAgLTEzNDQsNiArMTM0Niw4IEBAIGludCBF
bGVtZW50OjpvZmZzZXRMZWZ0KCkKIAogaW50IEVsZW1lbnQ6Om9mZnNldFRvcEZvckJpbmRpbmdz
KCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMp
OworCiAgICAgYXV0byBvZmZzZXQgPSBvZmZzZXRUb3AoKTsKIAogICAgIFJlZlB0ciBwYXJlbnQg
PSBvZmZzZXRQYXJlbnQoKTsKQEAgLTE4NzQsNiArMTg3OCw4IEBAIHN0ZDo6b3B0aW9uYWw8c3Rk
OjpwYWlyPFJlbmRlck9iamVjdCosIEZsb2F0UmVjdD4+IEVsZW1lbnQ6OmJvdW5kaW5nQWJzb2x1
dGVSZWN0CiAKIEZsb2F0UmVjdCBFbGVtZW50Ojpib3VuZGluZ0NsaWVudFJlY3QoKQogeworICAg
IENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGF1
dG8gcGFpciA9IGJvdW5kaW5nQWJzb2x1dGVSZWN0V2l0aG91dExheW91dCgpOwogICAgIGlmICgh
cGFpcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwCmluZGV4IDgzMjJj
MzE3N2FhMS4uZWE4ZmNlM2YwODcyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxJbWFnZUVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxl
bWVudC5jcHAKQEAgLTUwNyw2ICs1MDcsOCBAQCB2b2lkIEhUTUxJbWFnZUVsZW1lbnQ6OnNldFBp
Y3R1cmVFbGVtZW50KEhUTUxQaWN0dXJlRWxlbWVudCogcGljdHVyZUVsZW1lbnQpCiAgICAgCiB1
bnNpZ25lZCBIVE1MSW1hZ2VFbGVtZW50Ojp3aWR0aCgpCiB7CisgICAgQ29udGVudFZpc2liaWxp
dHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGlmIChpblJlbmRlcmVkRG9j
dW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5
bGVzaGVldHMoKTsKIApAQCAtNTMwLDYgKzUzMiw4IEBAIHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1l
bnQ6OndpZHRoKCkKIAogdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6aGVpZ2h0KCkKIHsKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAg
aWYgKGluUmVuZGVyZWREb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC02NzIsNiArNjc2LDggQEAgdm9pZCBI
VE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIAogaW50IEhUTUxJbWFn
ZUVsZW1lbnQ6OngoKSBjb25zdAogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBl
bmRpbmdTdHlsZXNoZWV0cygpOwogICAgIGF1dG8gcmVuZGVyZXIgPSB0aGlzLT5yZW5kZXJlcigp
OwogICAgIGlmICghcmVuZGVyZXIpCkBAIC02ODMsNiArNjg5LDggQEAgaW50IEhUTUxJbWFnZUVs
ZW1lbnQ6OngoKSBjb25zdAogCiBpbnQgSFRNTEltYWdlRWxlbWVudDo6eSgpIGNvbnN0CiB7Cisg
ICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAg
IGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAg
YXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291cmNl
L1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi42MWYy
ZjIwN2M4ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0xNzMs
NiArMTczLDggQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAgICAg
QVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQoKnRo
aXMtPmVsZW1lbnQoKSk7CiAKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUg
c2NvcGUoZWxlbWVudC5nZXQoKSk7CisKICAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxh
eW91dCgpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxlbWVudC0+cmVuZGVyZXIoKSkK
QEAgLTE5NSw2ICsxOTcsOCBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBjb25z
dAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBlbGVt
ZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91
dFNjb3BlIHNjb3BlKGVsZW1lbnQuZ2V0KCkpOworCiAgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51
cGRhdGVMYXlvdXQoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJlbmRl
cmVyKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0ZyYW1lVmlld0xheW91dENv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRnJhbWVWaWV3TGF5b3V0Q29udGV4dC5oCmlu
ZGV4IGJmNmU1ZWYzNWM4YS4uYTMwNmZhN2I4OWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0ZyYW1lVmlld0xheW91dENvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdl
L0ZyYW1lVmlld0xheW91dENvbnRleHQuaApAQCAtODIsNiArODIsOCBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0luTGF5b3V0KCkgY29uc3QgeyByZXR1cm4gbGF5b3V0UGhhc2UoKSAhPSBMYXlvdXRQ
aGFzZTo6T3V0c2lkZUxheW91dDsgfQogICAgIGJvb2wgaXNJblJlbmRlclRyZWVMYXlvdXQoKSBj
b25zdCB7IHJldHVybiBsYXlvdXRQaGFzZSgpID09IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVM
YXlvdXQ7IH0KICAgICBib29sIGluUGFpbnRhYmxlU3RhdGUoKSBjb25zdCB7IHJldHVybiBsYXlv
dXRQaGFzZSgpICE9IExheW91dFBoYXNlOjpJblJlbmRlclRyZWVMYXlvdXQgJiYgbGF5b3V0UGhh
c2UoKSAhPSBMYXlvdXRQaGFzZTo6SW5WaWV3U2l6ZUFkanVzdCAmJiAobGF5b3V0UGhhc2UoKSAh
PSBMYXlvdXRQaGFzZTo6SW5Qb3N0TGF5b3V0IHx8IGluQXN5bmNocm9ub3VzVGFza3MoKSk7IH0K
KyAgICBib29sIGlzTGF5b3V0Rm9yY2VkKCkgY29uc3QgeyByZXR1cm4gbV9sYXlvdXRGb3JjZWQ7
IH0KKyAgICB2b2lkIHNldExheW91dEZvcmNlZChib29sIGYpIHsgbV9sYXlvdXRGb3JjZWQgPSBm
OyB9CiAKICAgICB1bnNpZ25lZCBsYXlvdXRDb3VudCgpIGNvbnN0IHsgcmV0dXJuIG1fbGF5b3V0
Q291bnQ7IH0KIApAQCAtMTcxLDYgKzE3Myw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX25lZWRz
RnVsbFJlcGFpbnQgeyB0cnVlIH07CiAgICAgYm9vbCBtX2luQXN5bmNocm9ub3VzVGFza3MgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9zZXROZWVkc0xheW91dFdhc0RlZmVycmVkIHsgZmFsc2UgfTsK
KyAgICBib29sIG1fbGF5b3V0Rm9yY2VkIHsgZmFsc2UgfTsKICAgICBMYXlvdXRQaGFzZSBtX2xh
eW91dFBoYXNlIHsgTGF5b3V0UGhhc2U6Ok91dHNpZGVMYXlvdXQgfTsKICAgICBlbnVtIGNsYXNz
IExheW91dE5lc3RlZFN0YXRlIDogdWludDhfdCAgeyBOb3RJbkxheW91dCwgTm90TmVzdGVkLCBO
ZXN0ZWQgfTsKICAgICBMYXlvdXROZXN0ZWRTdGF0ZSBtX2xheW91dE5lc3RlZFN0YXRlIHsgTGF5
b3V0TmVzdGVkU3RhdGU6Ok5vdEluTGF5b3V0IH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvTGVnYWN5TGluZUxheW91dC5jcHAKaW5kZXggMzViYzM4YjYwNGJhLi45MDQyOTFiMTkzYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9MZWdhY3lMaW5lTGF5b3V0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvTGVnYWN5TGluZUxheW91dC5jcHAKQEAg
LTE3MTYsNiArMTcxNiwxMiBAQCB2b2lkIExlZ2FjeUxpbmVMYXlvdXQ6OmxheW91dExpbmVCb3hl
cyhib29sIHJlbGF5b3V0Q2hpbGRyZW4sIExheW91dFVuaXQmIHJlcGFpbgogICAgIGlmIChsYXlv
dXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKSAmJiBsYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUo
KS0+bGluZUdyaWQoKSA9PSAmbV9mbG93KQogICAgICAgICBtX2Zsb3cubGF5b3V0TGluZUdyaWRC
b3goKTsKIAorICAgIGlmIChtX2Zsb3cuaXNTa2lwcGVkQ29udGVudEZvckxheW91dCgpKSB7Cisg
ICAgICAgIGZvciAoYXV0byYgZGVzY2VuZGFudCA6IGRlc2NlbmRhbnRzT2ZUeXBlPFJlbmRlck9i
amVjdD4obV9mbG93KSkKKyAgICAgICAgICAgIGRlc2NlbmRhbnQuY2xlYXJOZWVkc0xheW91dCgp
OworICAgICAgICByZXR1cm47CisgICAgfQorCiAgICAgUmVuZGVyRnJhZ21lbnRlZEZsb3cqIGZy
YWdtZW50ZWRGbG93ID0gbV9mbG93LmVuY2xvc2luZ0ZyYWdtZW50ZWRGbG93KCk7CiAgICAgYm9v
bCBjbGVhckxpbmVzRm9yUGFnaW5hdGlvbiA9IGZpcnN0Um9vdEJveCgpICYmIGZyYWdtZW50ZWRG
bG93ICYmICFmcmFnbWVudGVkRmxvdy0+aGFzRnJhZ21lbnRzKCk7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKaW5kZXggMDY2M2Q1OTY5YTQ4Li4xYjI5
NTU1ZmZiNjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cu
Y3BwCkBAIC03NzMsNiArNzczLDEyIEBAIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpsYXlvdXRCbG9j
a0NoaWxkcmVuKGJvb2wgcmVsYXlvdXRDaGlsZHJlbiwgTGF5b3V0VW5pdCYgbWF4CiAgICAgaWYg
KHZpZXcoKS5mcmFtZVZpZXcoKS5sYXlvdXRDb250ZXh0KCkubGF5b3V0U3RhdGUoKS0+bGluZUdy
aWQoKSA9PSB0aGlzKQogICAgICAgICBsYXlvdXRMaW5lR3JpZEJveCgpOwogCisgICAgaWYgKGlz
U2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGRlc2NlbmRh
bnQgOiBkZXNjZW5kYW50c09mVHlwZTxSZW5kZXJPYmplY3Q+KCp0aGlzKSkKKyAgICAgICAgICAg
IGRlc2NlbmRhbnQuY2xlYXJOZWVkc0xheW91dCgpOworICAgICAgICByZXR1cm47CisgICAgfQor
CiAgICAgLy8gVGhlIG1hcmdpbiBzdHJ1Y3QgY2FjaGVzIGFsbCBvdXIgY3VycmVudCBtYXJnaW4g
Y29sbGFwc2luZyBzdGF0ZS4KICAgICBNYXJnaW5JbmZvIG1hcmdpbkluZm8oKnRoaXMsIGJlZm9y
ZUVkZ2UsIGFmdGVyRWRnZSk7CiAKQEAgLTM3NTYsNiArMzc2MiwxNSBAQCB2b2lkIFJlbmRlckJs
b2NrRmxvdzo6bGF5b3V0TW9kZXJuTGluZXMoYm9vbCByZWxheW91dENoaWxkcmVuLCBMYXlvdXRV
bml0JiByZXBhaQogCiAgICAgZm9yIChhdXRvIHdhbGtlciA9IElubGluZVdhbGtlcigqdGhpcyk7
ICF3YWxrZXIuYXRFbmQoKTsgd2Fsa2VyLmFkdmFuY2UoKSkgewogICAgICAgICBhdXRvJiByZW5k
ZXJlciA9ICp3YWxrZXIuY3VycmVudCgpOworICAgICAgICBpZiAocmVuZGVyZXIuaXNTa2lwcGVk
Q29udGVudEZvckxheW91dCgpKSB7CisgICAgICAgICAgICBpZiAoaXM8UmVuZGVyRWxlbWVudD4o
cmVuZGVyZXIpKSB7CisgICAgICAgICAgICAgICAgZm9yIChhdXRvJiBjaGlsZCA6IGRlc2NlbmRh
bnRzT2ZUeXBlPFJlbmRlck9iamVjdD4oZG93bmNhc3Q8UmVuZGVyRWxlbWVudD4ocmVuZGVyZXIp
KSkKKyAgICAgICAgICAgICAgICAgICAgY2hpbGQuY2xlYXJOZWVkc0xheW91dCgpOworICAgICAg
ICAgICAgfQorICAgICAgICAgICAgcmVuZGVyZXIuY2xlYXJOZWVkc0xheW91dCgpOworICAgICAg
ICAgICAgY29udGludWU7CisgICAgICAgIH0KKwogICAgICAgICBpZiAocmVsYXlvdXRDaGlsZHJl
biB8fCAoaXM8UmVuZGVyQm94PihyZW5kZXJlcikgJiYgZG93bmNhc3Q8UmVuZGVyQm94PihyZW5k
ZXJlcikuaGFzUmVsYXRpdmVEaW1lbnNpb25zKCkpKQogICAgICAgICAgICAgcmVuZGVyZXIuc2V0
TmVlZHNMYXlvdXQoTWFya09ubHlUaGlzKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmNwcAppbmRleCA0ZmQ5ZDBmYjgzNjUuLmJiYTgxMjVmOTE2YyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKQEAgLTI2NDIsNiArMjY0MiwxMSBA
QCBib29sIFJlbmRlck9iamVjdDo6c2hvdWxkU2tpcENvbnRlbnQoKSBjb25zdAogICAgIHJldHVy
biBzdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkgPT0gQ29udGVudFZpc2liaWxpdHk6OkhpZGRl
bjsKIH0KIAorYm9vbCBSZW5kZXJPYmplY3Q6OmlzU2tpcHBlZENvbnRlbnRGb3JMYXlvdXQoKSBj
b25zdAoreworICAgIHJldHVybiBpc1NraXBwZWRDb250ZW50KCkgJiYgIXZpZXcoKS5mcmFtZVZp
ZXcoKS5sYXlvdXRDb250ZXh0KCkuaXNMYXlvdXRGb3JjZWQoKTsKK30KKwogVGV4dFN0cmVhbSYg
b3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29uc3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikK
IHsKICAgICB0cyA8PCByZW5kZXJlci5kZWJ1Z0Rlc2NyaXB0aW9uKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKaW5kZXggNjY2MjI5OGRjN2Q1Li44Zjk0MDZiYzkyYzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKQEAgLTc5OCw2ICs3OTgs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc1NraXBwZWRDb250ZW50KCkgY29uc3Q7CiAKICAgICBi
b29sIHNob3VsZFNraXBDb250ZW50KCkgY29uc3Q7CisgICAgYm9vbCBpc1NraXBwZWRDb250ZW50
Rm9yTGF5b3V0KCkgY29uc3Q7CiAKIHByb3RlY3RlZDoKICAgICAvLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9T
VkdMb2NhdGFibGUuY3BwIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKaW5k
ZXggZDZkOWY5Y2QyNThmLi4zZjZhYWM0NDQ5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFi
bGUuY3BwCkBAIC02Nyw4ICs2NywxMSBAQCBTVkdFbGVtZW50KiBTVkdMb2NhdGFibGU6OmZhcnRo
ZXN0Vmlld3BvcnRFbGVtZW50KGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCiBGbG9hdFJlY3Qg
U1ZHTG9jYXRhYmxlOjpnZXRCQm94KFNWR0VsZW1lbnQqIGVsZW1lbnQsIFN0eWxlVXBkYXRlU3Ry
YXRlZ3kgc3R5bGVVcGRhdGVTdHJhdGVneSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAg
aWYgKHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKKyAgICBpZiAoc3R5
bGVVcGRhdGVTdHJhdGVneSA9PSBBbGxvd1N0eWxlVXBkYXRlKSB7CisgICAgICAgIENvbnRlbnRW
aXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqZWxlbWVudCk7CisKICAgICAgICAgZWxl
bWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
KyAgICB9CiAKICAgICAvLyBGSVhNRTogRXZlbnR1YWxseSB3ZSBzaG91bGQgc3VwcG9ydCBnZXRC
Qm94IGZvciBkZXRhY2hlZCBlbGVtZW50cy4KICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IGFj
ZDJlZWE4MzBkMy4uNDQ4OTY4MWM5OTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4
dENvbnRlbnRFbGVtZW50LmNwcApAQCAtNTUsMTIgKzU1LDE2IEBAIFNWR1RleHRDb250ZW50RWxl
bWVudDo6U1ZHVGV4dENvbnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUs
IERvY3VtCiAKIHVuc2lnbmVkIFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFy
cygpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlz
KTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRz
KCk7CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5udW1iZXJPZkNoYXJhY3Rl
cnMoKTsKIH0KIAogZmxvYXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRM
ZW5ndGgoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgq
dGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNo
ZWV0cygpOwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkudGV4dExlbmd0aCgp
OwogfQpAQCAtMTA5LDYgKzExMyw4IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmdldFJvdGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0pCiAKIGludCBTVkdU
ZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERPTVBvaW50SW5pdCYmIHBv
aW50SW5pdCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUo
KnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVz
aGVldHMoKTsKICAgICBGbG9hdFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9h
dD4ocG9pbnRJbml0LngpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICBy
ZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24o
dHJhbnNmb3JtUG9pbnQpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNjA1ZTUwMjIzNTAyLi5lM2U1
OGNkODY0M2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIv
TGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtNDgxOCw4ICs0ODE4LDYgQEAgd2ViYW5p
bWF0aW9ucy90cmFuc2xhdGUtcHJvcGVydHktYW5kLXRyYW5zbGF0ZS1hbmltYXRpb24td2l0aC1k
ZWxheS1vbi1mb3JjZWQtbGEKICMgQ1NTIGNvbnRhaW5tZW50IHRlc3RzIHRoYXQgZmFpbAogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxp
bmUtc2l6ZS1iZmMtZmxvYXRzLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1z
aXplLWludHJpbnNpYy5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi0jIGZvcmNlZCBsYXlvdXQK
LWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDM1Lmh0bWwgWyBTa2lwIF0KICMgYy12OiBh
dXRvCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNp
YmlsaXR5LTAzNS5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0
eS0wMzUuaHRtbAppbmRleCBiYzg0YzI4ZDRhMzYuLmMyZjYyY2E0MzhiMSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFp
bi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sCkBAIC0xMCw3
ICsxMCw3IEBACiA8Ym9keSBzdHlsZT0ibWFyZ2luOiAwIj4KIAogPGRpdiBpZD0iaG9zdCI+Ci0g
IDxpbnB1dCBpZD0ic2xvdHRlZCIgdHlwZT0idGV4dCI+CisgIDxpbnB1dCBpZD0ic2xvdHRlZCIg
dHlwZT0iYnV0dG9uIj4KIDwvZGl2PgogCiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzcy5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
VGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRp
b25zCmluZGV4IGVmZGE3MzM5YjM4MC4uMWRlMGRkMWVlYTA0IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMzYxMyw4ICszNjEzLDYgQEAgd2Via2l0Lm9y
Zy9iLzIzODgyNCBodHRwL3Rlc3RzL3dvcmtlcnMvc2VydmljZS9vcGVud2luZG93LWZyb20tbm90
aWZpY2F0aW9uLWNsaWMKIHdlYmtpdC5vcmcvYi8yMzc0MzMgZWRpdGluZy9wYXN0ZWJvYXJkLzQw
NzYyNjctMy5odG1sIFsgVGltZW91dCBQYXNzIEZhaWx1cmUgXQogd2Via2l0Lm9yZy9iLzIzNzQz
MyBlZGl0aW5nL3Bhc3RlYm9hcmQvcGFzdGUtYW5kLXNhbml0aXplLmh0bWwgWyBUaW1lb3V0IFBh
c3MgRmFpbHVyZSBdCiAKLXdlYmtpdC5vcmcvYi8yMzc5NTUgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS0wNDQuaHRtbCBbIEZhaWx1cmUgXQotCiB3ZWJraXQub3JnL2IvMjM5NjI1IGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb2xvci9vcGFjaXR5LW92ZXJsYXBw
aW5nLWxldHRlcnMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogCiB3ZWJraXQub3JnL2IvMjM5
NTY3IHRhYmxlcy9tb3ppbGxhL2J1Z3MvYnVnMjYxNzguaHRtbCBbIFBhc3MgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464745</attachid>
            <date>2023-01-29 11:54:24 -0800</date>
            <delta_ts>2023-01-30 13:45:33 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230129195423.patch</filename>
            <type>text/plain</type>
            <size>5940</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAwNTYyZGJkYjNlODI2NTYwNWJiN2Y3OTg5ODIwYTFhNDYzYjM4OGViIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogU3Vu
LCAyOSBKYW4gMjAyMyAxOTo1MDo1MyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV0lQ
LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIp
OgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyk6
CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29tcHV0ZUhhc1Zpc2libGVDb250ZW50IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExpc3QpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHA6CihXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUFmdGVyRGVzY2VuZGFudHMpOgotLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllci5jcHAgICAgICB8IDIzICsrKysrKysrKysrKysrKysrLS0KIC4uLi9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwICB8ICAzICstLQogTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucyAgICAgICAgICAgICAgICAgIHwgIDEgLQogMyBmaWxlcyBjaGFuZ2VkLCAyMiBp
bnNlcnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyTGF5ZXIuY3BwCmluZGV4IDZkNWU1OWIxZTI5NS4uMDYyODE3ZmFiNmRiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllci5jcHAKQEAgLTM2Myw2ICszNjMsOSBAQCBSZW5k
ZXJMYXllcjo6UmVuZGVyTGF5ZXIoUmVuZGVyTGF5ZXJNb2RlbE9iamVjdCYgcmVuZGVyZXIpCiAg
ICAgICAgIHJldHVybjsKICNlbmRpZgogCisgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0
aXZlU2tpcHNDb250ZW50KCkgJiYgIXJlbmRlcmVyLnBhcmVudCgpKQorICAgICAgICByZXR1cm47
CisKICAgICBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgPSBmYWxzZTsKICAgICBtX2hhc1Zp
c2libGVDb250ZW50ID0gcmVuZGVyZXIuc3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0
eTo6VmlzaWJsZTsKIH0KQEAgLTE1OTUsNyArMTU5OCwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjp1
cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKQogICAgICAgICBib29sIGhhc05vdElzb2xh
dGVkQmxlbmRpbmdEZXNjZW5kYW50cyA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICAgICAgZm9yIChS
ZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7CisgICAgICAgIGF1dG8gZmlyc3RMYXllckNoaWxkID0gWyZdICgpIC0+
IFJlbmRlckxheWVyKiB7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLmNvbnRl
bnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gZmlyc3RDaGlsZCgpOwor
ICAgICAgICB9KCk7CisgICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RMYXll
ckNoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAg
ICAgY2hpbGQtPnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpOwogCiAgICAgICAgICAg
ICBoYXNWaXNpYmxlRGVzY2VuZGFudCB8PSBjaGlsZC0+bV9oYXNWaXNpYmxlQ29udGVudCB8fCBj
aGlsZC0+bV9oYXNWaXNpYmxlRGVzY2VuZGFudDsKQEAgLTE2MjcsNiArMTYzNSw4IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpCiAgICAgfQogCiAg
ICAgaWYgKG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgeworICAgICAgICBpZiAocmVuZGVy
ZXIoKS5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpICYmICFyZW5kZXJlcigpLnBhcmVu
dCgpKQorICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX2hhc1Zpc2libGVDb250ZW50ID0g
Y29tcHV0ZUhhc1Zpc2libGVDb250ZW50KCk7CiAgICAgICAgIG1fdmlzaWJsZUNvbnRlbnRTdGF0
dXNEaXJ0eSA9IGZhbHNlOwogICAgIH0KQEAgLTE2MzksNiArMTY0OSw4IEBAIGJvb2wgUmVuZGVy
TGF5ZXI6OmNvbXB1dGVIYXNWaXNpYmxlQ29udGVudCgpIGNvbnN0CiAgICAgaWYgKHJlbmRlcmVy
KCkuZG9jdW1lbnQoKS5zZXR0aW5ncygpLmxheWVyQmFzZWRTVkdFbmdpbmVFbmFibGVkKCkgJiYg
bGluZWFnZU9mVHlwZTxSZW5kZXJTVkdIaWRkZW5Db250YWluZXI+KHJlbmRlcmVyKCkpLmZpcnN0
KCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICNlbmRpZgorICAgIGlmIChyZW5kZXJlcigpLmlz
U2tpcHBlZENvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChyZW5kZXJl
cigpLnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGUpCiAgICAgICAg
IHJldHVybiB0cnVlOwogCkBAIC0zNDE1LDcgKzM0MjcsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpw
YWludExpc3QoTGF5ZXJMaXN0IGxheWVySXRlcmF0b3IsIEdyYXBoaWNzQ29udGV4dCYgY29udGV4
dCwgYwogICAgIGlmIChsYXllckl0ZXJhdG9yLmJlZ2luKCkgPT0gbGF5ZXJJdGVyYXRvci5lbmQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFoYXNTZWxmUGFpbnRpbmdMYXllckRlc2Nl
bmRhbnQoKSB8fCByZW5kZXJlcigpLnNob3VsZFNraXBDb250ZW50KCkpCisgICAgaWYgKCFoYXNT
ZWxmUGFpbnRpbmdMYXllckRlc2NlbmRhbnQoKSkKICAgICAgICAgcmV0dXJuOwogCiAjaWYgQVNT
RVJUX0VOQUJMRUQKQEAgLTUzNTMsNiArNTM2NSwxMyBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHls
ZUNoYW5nZWQoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZQogICAgICAgICAvLyBWaXNpYmlsaXR5IGlzIGlucHV0IHRvIGNhblVzZUNvbXBvc2l0ZWRTY3Jv
bGxpbmcoKS4KICAgICAgICAgaWYgKHZpc2liaWxpdHlDaGFuZ2VkICYmIG1fc2Nyb2xsYWJsZUFy
ZWEpCiAgICAgICAgICAgICBtX3Njcm9sbGFibGVBcmVhLT5jb21wdXRlSGFzQ29tcG9zaXRlZFNj
cm9sbGFibGVPdmVyZmxvdygpOworCisgICAgICAgIGlmIChvbGRTdHlsZS0+Y29udGVudFZpc2li
aWxpdHkoKSAhPSByZW5kZXJlcigpLnN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSkKKyAgICAg
ICAgICAgIG1fdmlzaWJsZURlc2NlbmRhbnRTdGF0dXNEaXJ0eSA9IHRydWU7CisgICAgICAgIGVs
c2UgaWYgKG9sZFN0eWxlLT5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAhPSByZW5kZXJlcigpLnN0
eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpIHsKKyAgICAgICAgICAgIG1fdmlzaWJsZURl
c2NlbmRhbnRTdGF0dXNEaXJ0eSA9IHRydWU7CisgICAgICAgICAgICBtX3Zpc2libGVDb250ZW50
U3RhdHVzRGlydHkgPSB0cnVlOworICAgICAgICB9CiAgICAgfQogCiAgICAgaWYgKG1fc2Nyb2xs
YWJsZUFyZWEpIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJM
YXllckJhY2tpbmcuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyQmFj
a2luZy5jcHAKaW5kZXggNTM4M2ViZGZiZjFkLi42M2I0NzJkNzM4ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwCkBAIC0xNjE2LDggKzE2
MTYsNyBAQCB2b2lkIFJlbmRlckxheWVyQmFja2luZzo6dXBkYXRlQWZ0ZXJEZXNjZW5kYW50cygp
CiAgICAgICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNPcGFxdWUoIW1faGFzU3VicGl4
ZWxSb3VuZGluZyAmJiBtX293bmluZ0xheWVyLmJhY2tncm91bmRJc0tub3duVG9CZU9wYXF1ZUlu
UmVjdChjb21wb3NpdGVkQm91bmRzKCkpKTsKICAgICB9CiAKLSAgICBib29sIGlzU2tpcHBlZENv
bnRlbnQgPSByZW5kZXJlcigpLmlzU2tpcHBlZENvbnRlbnQoKTsKLSAgICBtX2dyYXBoaWNzTGF5
ZXItPnNldENvbnRlbnRzVmlzaWJsZSghaXNTa2lwcGVkQ29udGVudCAmJiAobV9vd25pbmdMYXll
ci5oYXNWaXNpYmxlQ29udGVudCgpIHx8IGhhc1Zpc2libGVOb25Db21wb3NpdGVkRGVzY2VuZGFu
dHMoKSkpOworICAgIG1fZ3JhcGhpY3NMYXllci0+c2V0Q29udGVudHNWaXNpYmxlKG1fb3duaW5n
TGF5ZXIuaGFzVmlzaWJsZUNvbnRlbnQoKSB8fCBoYXNWaXNpYmxlTm9uQ29tcG9zaXRlZERlc2Nl
bmRhbnRzKCkpOwogICAgIGlmIChtX3Njcm9sbENvbnRhaW5lckxheWVyKSB7CiAgICAgICAgIG1f
c2Nyb2xsQ29udGFpbmVyTGF5ZXItPnNldENvbnRlbnRzVmlzaWJsZShyZW5kZXJlcigpLnN0eWxl
KCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGUpOwogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCA5YTRkMWQxOTc3NzYuLmVkZmRhZmUxNmQ0ZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBA
IC00ODMwLDcgKzQ4MzAsNiBAQCBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYgogaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRlLWNoYW5nZWQuaHRtbCBbIFNraXAgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVsZHNldC1zaXplLmh0bWwgWyBJbWFnZU9ubHlG
YWlsdXJlIF0KLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktdmlkZW8uaHRtbCBbIEltYWdl
T25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY291bnRlci1zY29waW5nLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb3VudGVyLXNjb3Bp
bmctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL3F1b3RlLXNjb3BpbmctMDAxLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464762</attachid>
            <date>2023-01-30 13:45:39 -0800</date>
            <delta_ts>2023-01-31 09:19:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230130214538.patch</filename>
            <type>text/plain</type>
            <size>7192</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBkNjhhYWE5YmFlNWI1OTQ4NDVmY2IyYTliMjFlMzVkZjZmNzk5NWRlIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogU3Vu
LCAyOSBKYW4gMjAyMyAxOTo1MDo1MyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV0lQ
LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIp
OgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyk6
CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29tcHV0ZUhhc1Zpc2libGVDb250ZW50IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExpc3QpOgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6
OmNhbGN1bGF0ZUNsaXBSZWN0cyBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyQmFja2luZy5jcHA6CihXZWJDb3JlOjpSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0
ZUFmdGVyRGVzY2VuZGFudHMpOgotLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJF
bGVtZW50LmNwcCAgICAgfCAgOCArKysrKysrKwogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckxheWVyLmNwcCAgICAgICB8IDE4ICsrKysrKysrKysrKysrKy0tLQogLi4uL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckxheWVyQmFja2luZy5jcHAgICB8ICAzICstLQogTGF5b3V0VGVzdHMv
VGVzdEV4cGVjdGF0aW9ucyAgICAgICAgICAgICAgICAgICB8ICAxIC0KIDQgZmlsZXMgY2hhbmdl
ZCwgMjQgaW5zZXJ0aW9ucygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXggNmUxM2QyN2RlMTAzLi40MGZkODQ0ODgyMjYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKQEAgLTgxOCw2
ICs4MTgsMTQgQEAgdm9pZCBSZW5kZXJFbGVtZW50OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlJiBuZXcKICAgICAgICAgICAgICAgICAgICAg
bGF5ZXItPmRpcnR5VmlzaWJsZUNvbnRlbnRTdGF0dXMoKTsKICAgICAgICAgICAgIH0KICAgICAg
ICAgfQorICAgICAgICBpZiAobV9zdHlsZS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAhPSBuZXdT
dHlsZS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAmJiBwYXJlbnQoKSAmJiBwYXJlbnQoKS0+c3R5
bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSA9PSBuZXdTdHlsZS5lZmZlY3RpdmVTa2lwc0Nv
bnRlbnQoKSkgeworICAgICAgICAgICAgaWYgKFJlbmRlckxheWVyKiBsYXllciA9IGVuY2xvc2lu
Z0xheWVyKCkpIHsKKyAgICAgICAgICAgICAgICBpZiAoIW5ld1N0eWxlLmVmZmVjdGl2ZVNraXBz
Q29udGVudCgpKQorICAgICAgICAgICAgICAgICAgICBsYXllci0+c2V0SGFzVmlzaWJsZUNvbnRl
bnQoKTsKKyAgICAgICAgICAgICAgICBlbHNlCisgICAgICAgICAgICAgICAgICAgIGxheWVyLT5k
aXJ0eVZpc2libGVDb250ZW50U3RhdHVzKCk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KIAog
ICAgICAgICBhdXRvIG5lZWRzSW52YWxpZGF0ZUV2ZW50UmVnaW9uID0gWyZdIHsKICAgICAgICAg
ICAgIGlmIChtX3N0eWxlLmVmZmVjdGl2ZVBvaW50ZXJFdmVudHMoKSAhPSBuZXdTdHlsZS5lZmZl
Y3RpdmVQb2ludGVyRXZlbnRzKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVy
LmNwcAppbmRleCA2ZDVlNTliMWUyOTUuLmYzMzY1Y2I5NzM4OSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBAIC0zNjMsNiArMzYzLDkgQEAgUmVuZGVyTGF5ZXI6
OlJlbmRlckxheWVyKFJlbmRlckxheWVyTW9kZWxPYmplY3QmIHJlbmRlcmVyKQogICAgICAgICBy
ZXR1cm47CiAjZW5kaWYKIAorICAgIGlmIChyZW5kZXJlci5zdHlsZSgpLmVmZmVjdGl2ZVNraXBz
Q29udGVudCgpICYmICFyZW5kZXJlci5wYXJlbnQoKSkKKyAgICAgICAgcmV0dXJuOworCiAgICAg
bV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAgICAgbV9oYXNWaXNpYmxlQ29u
dGVudCA9IHJlbmRlcmVyLnN0eWxlKCkudmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2li
bGU7CiB9CkBAIC0xNTk1LDcgKzE1OTgsMTIgQEAgdm9pZCBSZW5kZXJMYXllcjo6dXBkYXRlRGVz
Y2VuZGFudERlcGVuZGVudEZsYWdzKCkKICAgICAgICAgYm9vbCBoYXNOb3RJc29sYXRlZEJsZW5k
aW5nRGVzY2VuZGFudHMgPSBmYWxzZTsKICNlbmRpZgogCi0gICAgICAgIGZvciAoUmVuZGVyTGF5
ZXIqIGNoaWxkID0gZmlyc3RDaGlsZCgpOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxp
bmcoKSkgeworICAgICAgICBhdXRvIGZpcnN0TGF5ZXJDaGlsZCA9IFsmXSAoKSAtPiBSZW5kZXJM
YXllciogeworICAgICAgICAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS5jb250ZW50VmlzaWJp
bGl0eSgpICE9IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKQorICAgICAgICAgICAgICAgIHJl
dHVybiBudWxscHRyOworICAgICAgICAgICAgcmV0dXJuIGZpcnN0Q2hpbGQoKTsKKyAgICAgICAg
fSgpOworICAgICAgICBmb3IgKFJlbmRlckxheWVyKiBjaGlsZCA9IGZpcnN0TGF5ZXJDaGlsZDsg
Y2hpbGQ7IGNoaWxkID0gY2hpbGQtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgIGNoaWxk
LT51cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKTsKIAogICAgICAgICAgICAgaGFzVmlz
aWJsZURlc2NlbmRhbnQgfD0gY2hpbGQtPm1faGFzVmlzaWJsZUNvbnRlbnQgfHwgY2hpbGQtPm1f
aGFzVmlzaWJsZURlc2NlbmRhbnQ7CkBAIC0xNjI3LDYgKzE2MzUsOCBAQCB2b2lkIFJlbmRlckxh
eWVyOjp1cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKQogICAgIH0KIAogICAgIGlmICht
X3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkpIHsKKyAgICAgICAgaWYgKHJlbmRlcmVyKCkuc3R5
bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAmJiAhcmVuZGVyZXIoKS5wYXJlbnQoKSkKKyAg
ICAgICAgICAgIHJldHVybjsKICAgICAgICAgbV9oYXNWaXNpYmxlQ29udGVudCA9IGNvbXB1dGVI
YXNWaXNpYmxlQ29udGVudCgpOwogICAgICAgICBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkg
PSBmYWxzZTsKICAgICB9CkBAIC0xNjM5LDYgKzE2NDksOCBAQCBib29sIFJlbmRlckxheWVyOjpj
b21wdXRlSGFzVmlzaWJsZUNvbnRlbnQoKSBjb25zdAogICAgIGlmIChyZW5kZXJlcigpLmRvY3Vt
ZW50KCkuc2V0dGluZ3MoKS5sYXllckJhc2VkU1ZHRW5naW5lRW5hYmxlZCgpICYmIGxpbmVhZ2VP
ZlR5cGU8UmVuZGVyU1ZHSGlkZGVuQ29udGFpbmVyPihyZW5kZXJlcigpKS5maXJzdCgpKQogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAjZW5kaWYKKyAgICBpZiAocmVuZGVyZXIoKS5pc1NraXBwZWRD
b250ZW50KCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAocmVuZGVyZXIoKS5zdHls
ZSgpLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlKQogICAgICAgICByZXR1cm4g
dHJ1ZTsKIApAQCAtMzQxNSw3ICszNDI3LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6cGFpbnRMaXN0
KExheWVyTGlzdCBsYXllckl0ZXJhdG9yLCBHcmFwaGljc0NvbnRleHQmIGNvbnRleHQsIGMKICAg
ICBpZiAobGF5ZXJJdGVyYXRvci5iZWdpbigpID09IGxheWVySXRlcmF0b3IuZW5kKCkpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIGlmICghaGFzU2VsZlBhaW50aW5nTGF5ZXJEZXNjZW5kYW50KCkg
fHwgcmVuZGVyZXIoKS5zaG91bGRTa2lwQ29udGVudCgpKQorICAgIGlmICghaGFzU2VsZlBhaW50
aW5nTGF5ZXJEZXNjZW5kYW50KCkpCiAgICAgICAgIHJldHVybjsKIAogI2lmIEFTU0VSVF9FTkFC
TEVECkBAIC01MzQzLDcgKzUzNTUsNyBAQCB2b2lkIFJlbmRlckxheWVyOjpzdHlsZUNoYW5nZWQo
U3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZQogICAgIC8v
IEZJWE1FOiBSZW5kZXJMYXllciBhbHJlYWR5IGhhbmRsZXMgdmlzaWJpbGl0eSBjaGFuZ2VzIHRo
cm91Z2ggb3VyIHZpc2liaWxpdHkgZGlydHkgYml0cy4gVGhpcyBsb2dpYyBjb3VsZAogICAgIC8v
IGxpa2VseSBiZSBmb2xkZWQgYWxvbmcgd2l0aCB0aGUgcmVzdC4KICAgICBpZiAob2xkU3R5bGUp
IHsKLSAgICAgICAgYm9vbCB2aXNpYmlsaXR5Q2hhbmdlZCA9IG9sZFN0eWxlLT52aXNpYmlsaXR5
KCkgIT0gcmVuZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxpdHkoKTsKKyAgICAgICAgYm9vbCB2aXNp
YmlsaXR5Q2hhbmdlZCA9IG9sZFN0eWxlLT52aXNpYmlsaXR5KCkgIT0gcmVuZGVyZXIoKS5zdHls
ZSgpLnZpc2liaWxpdHkoKSB8fCAob2xkU3R5bGUtPmVmZmVjdGl2ZVNraXBzQ29udGVudCgpICE9
IHJlbmRlcmVyKCkuc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSAmJiByZW5kZXJlcigp
LnBhcmVudCgpICYmIHJlbmRlcmVyKCkucGFyZW50KCktPnN0eWxlKCkuZWZmZWN0aXZlU2tpcHND
b250ZW50KCkgPT0gcmVuZGVyZXIoKS5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKTsK
ICAgICAgICAgaWYgKG9sZFN0eWxlLT51c2VkWkluZGV4KCkgIT0gcmVuZGVyZXIoKS5zdHlsZSgp
LnVzZWRaSW5kZXgoKSB8fCB2aXNpYmlsaXR5Q2hhbmdlZCkgewogICAgICAgICAgICAgZGlydHlT
dGFja2luZ0NvbnRleHRaT3JkZXJMaXN0cygpOwogICAgICAgICAgICAgaWYgKGlzU3RhY2tpbmdD
b250ZXh0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5
ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tp
bmcuY3BwCmluZGV4IDUzODNlYmRmYmYxZC4uNjNiNDcyZDczOGQzIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApAQCAtMTYxNiw4ICsxNjE2
LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUFmdGVyRGVzY2VuZGFudHMoKQog
ICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzT3BhcXVlKCFtX2hhc1N1YnBpeGVs
Um91bmRpbmcgJiYgbV9vd25pbmdMYXllci5iYWNrZ3JvdW5kSXNLbm93blRvQmVPcGFxdWVJblJl
Y3QoY29tcG9zaXRlZEJvdW5kcygpKSk7CiAgICAgfQogCi0gICAgYm9vbCBpc1NraXBwZWRDb250
ZW50ID0gcmVuZGVyZXIoKS5pc1NraXBwZWRDb250ZW50KCk7Ci0gICAgbV9ncmFwaGljc0xheWVy
LT5zZXRDb250ZW50c1Zpc2libGUoIWlzU2tpcHBlZENvbnRlbnQgJiYgKG1fb3duaW5nTGF5ZXIu
aGFzVmlzaWJsZUNvbnRlbnQoKSB8fCBoYXNWaXNpYmxlTm9uQ29tcG9zaXRlZERlc2NlbmRhbnRz
KCkpKTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVmlzaWJsZShtX293bmluZ0xh
eWVyLmhhc1Zpc2libGVDb250ZW50KCkgfHwgaGFzVmlzaWJsZU5vbkNvbXBvc2l0ZWREZXNjZW5k
YW50cygpKTsKICAgICBpZiAobV9zY3JvbGxDb250YWluZXJMYXllcikgewogICAgICAgICBtX3Nj
cm9sbENvbnRhaW5lckxheWVyLT5zZXRDb250ZW50c1Zpc2libGUocmVuZGVyZXIoKS5zdHlsZSgp
LnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlKTsKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMK
aW5kZXggOWE0ZDFkMTk3Nzc2Li5lZGZkYWZlMTZkNGQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwpAQCAt
NDgzMCw3ICs0ODMwLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3Nz
LWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWIKIGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9j
b250ZW50LXZpc2liaWxpdHktYXV0by1zdGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KIGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJp
bGl0eS9jb250ZW50LXZpc2liaWxpdHktZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXZpZGVvLmh0bWwgWyBJbWFnZU9u
bHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvdW50ZXItc2NvcGluZy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY291bnRlci1zY29waW5n
LTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAwMS5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>464781</attachid>
            <date>2023-01-31 09:19:25 -0800</date>
            <delta_ts>2023-02-20 09:34:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230131171923.patch</filename>
            <type>text/plain</type>
            <size>7378</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBiNjNmMzk5NGRiMTRkNTUzOWIzNWI0M2ZlZGMyYTU2NDBhZjI2OTFiIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogU3Vu
LCAyOSBKYW4gMjAyMyAxOTo1MDo1MyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKV0lQ
LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJMYXllci5jcHA6CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6UmVuZGVyTGF5ZXIp
OgooV2ViQ29yZTo6UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncyk6
CihXZWJDb3JlOjpSZW5kZXJMYXllcjo6Y29tcHV0ZUhhc1Zpc2libGVDb250ZW50IGNvbnN0KToK
KFdlYkNvcmU6OlJlbmRlckxheWVyOjpwYWludExpc3QpOiB1bmRvIG9sZCBjaGFuZ2UKKFdlYkNv
cmU6OlJlbmRlckxheWVyOjpjYWxjdWxhdGVDbGlwUmVjdHMgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJMYXllckJhY2tpbmcuY3BwOgooV2ViQ29yZTo6UmVuZGVyTGF5
ZXJCYWNraW5nOjp1cGRhdGVBZnRlckRlc2NlbmRhbnRzKTogdW5kbyBvbGQgY2hhbmdlCi0tLQog
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuY3BwICAgIHwgIDYgKysrKy0t
CiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwICAgICAgfCAyMCArKysr
KysrKysrKysrKysrLS0tCiAuLi4vV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5n
LmNwcCAgfCAgMyArLS0KIExheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgICAgICAgICAgICAg
ICAgICB8ICAxIC0KIDQgZmlsZXMgY2hhbmdlZCwgMjIgaW5zZXJ0aW9ucygrKSwgOCBkZWxldGlv
bnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVu
dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5jcHAKaW5kZXgg
NmUxM2QyN2RlMTAzLi4zNWY2MmRhNjZkMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5jcHAKQEAgLTgxMCw5ICs4MTAsMTEgQEAgdm9pZCBSZW5kZXJFbGVtZW50
OjpzdHlsZVdpbGxDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxl
JiBuZXcKICAgICAgICAgfQogCiAgICAgICAgIC8vIEtlZXAgbGF5ZXIgaGllcmFyY2h5IHZpc2li
aWxpdHkgYml0cyB1cCB0byBkYXRlIGlmIHZpc2liaWxpdHkgY2hhbmdlcy4KLSAgICAgICAgaWYg
KG1fc3R5bGUudmlzaWJpbGl0eSgpICE9IG5ld1N0eWxlLnZpc2liaWxpdHkoKSkgeworICAgICAg
ICBib29sIHdhc1Zpc2libGUgPSBtX3N0eWxlLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpW
aXNpYmxlICYmICFtX3N0eWxlLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpOworICAgICAgICBib29s
IHdpbGxCZVZpc2libGUgPSBuZXdTdHlsZS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0eTo6Vmlz
aWJsZSAmJiAhbmV3U3R5bGUuZWZmZWN0aXZlU2tpcHNDb250ZW50KCk7CisgICAgICAgIGlmICh3
YXNWaXNpYmxlICE9IHdpbGxCZVZpc2libGUpIHsKICAgICAgICAgICAgIGlmIChSZW5kZXJMYXll
ciogbGF5ZXIgPSBlbmNsb3NpbmdMYXllcigpKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG5ld1N0
eWxlLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlKQorICAgICAgICAgICAgICAg
IGlmICh3aWxsQmVWaXNpYmxlKQogICAgICAgICAgICAgICAgICAgICBsYXllci0+c2V0SGFzVmlz
aWJsZUNvbnRlbnQoKTsKICAgICAgICAgICAgICAgICBlbHNlIGlmIChsYXllci0+aGFzVmlzaWJs
ZUNvbnRlbnQoKSAmJiAodGhpcyA9PSAmbGF5ZXItPnJlbmRlcmVyKCkgfHwgbGF5ZXItPnJlbmRl
cmVyKCkuc3R5bGUoKS52aXNpYmlsaXR5KCkgIT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkpCiAgICAg
ICAgICAgICAgICAgICAgIGxheWVyLT5kaXJ0eVZpc2libGVDb250ZW50U3RhdHVzKCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxheWVyLmNwcAppbmRleCA2ZDVlNTliMWUyOTUuLjZh
ODU3OTcyNDdlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckxh
eWVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXIuY3BwCkBA
IC0zNjMsNiArMzYzLDEwIEBAIFJlbmRlckxheWVyOjpSZW5kZXJMYXllcihSZW5kZXJMYXllck1v
ZGVsT2JqZWN0JiByZW5kZXJlcikKICAgICAgICAgcmV0dXJuOwogI2VuZGlmCiAKKyAgICAvLyAg
V2UgbmVlZCB0aGUgcGFyZW50IHRvIGtub3cgaWYgd2UgaGF2ZSBza2lwcGVkIGNvbnRlbnQgb3Ig
Y29udGVudC12aXNpYmlsaXR5IHJvb3QuCisgICAgaWYgKHJlbmRlcmVyLnN0eWxlKCkuZWZmZWN0
aXZlU2tpcHNDb250ZW50KCkgJiYgIXJlbmRlcmVyLnBhcmVudCgpKQorICAgICAgICByZXR1cm47
CisKICAgICBtX3Zpc2libGVDb250ZW50U3RhdHVzRGlydHkgPSBmYWxzZTsKICAgICBtX2hhc1Zp
c2libGVDb250ZW50ID0gcmVuZGVyZXIuc3R5bGUoKS52aXNpYmlsaXR5KCkgPT0gVmlzaWJpbGl0
eTo6VmlzaWJsZTsKIH0KQEAgLTE1OTUsNyArMTU5OSwxMiBAQCB2b2lkIFJlbmRlckxheWVyOjp1
cGRhdGVEZXNjZW5kYW50RGVwZW5kZW50RmxhZ3MoKQogICAgICAgICBib29sIGhhc05vdElzb2xh
dGVkQmxlbmRpbmdEZXNjZW5kYW50cyA9IGZhbHNlOwogI2VuZGlmCiAKLSAgICAgICAgZm9yIChS
ZW5kZXJMYXllciogY2hpbGQgPSBmaXJzdENoaWxkKCk7IGNoaWxkOyBjaGlsZCA9IGNoaWxkLT5u
ZXh0U2libGluZygpKSB7CisgICAgICAgIGF1dG8gZmlyc3RMYXllckNoaWxkID0gWyZdICgpIC0+
IFJlbmRlckxheWVyKiB7CisgICAgICAgICAgICBpZiAocmVuZGVyZXIoKS5zdHlsZSgpLmNvbnRl
bnRWaXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgICAg
ICAgICAgcmV0dXJuIG51bGxwdHI7CisgICAgICAgICAgICByZXR1cm4gZmlyc3RDaGlsZCgpOwor
ICAgICAgICB9KCk7CisgICAgICAgIGZvciAoUmVuZGVyTGF5ZXIqIGNoaWxkID0gZmlyc3RMYXll
ckNoaWxkOyBjaGlsZDsgY2hpbGQgPSBjaGlsZC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAg
ICAgY2hpbGQtPnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpOwogCiAgICAgICAgICAg
ICBoYXNWaXNpYmxlRGVzY2VuZGFudCB8PSBjaGlsZC0+bV9oYXNWaXNpYmxlQ29udGVudCB8fCBj
aGlsZC0+bV9oYXNWaXNpYmxlRGVzY2VuZGFudDsKQEAgLTE2MjcsNiArMTYzNiw5IEBAIHZvaWQg
UmVuZGVyTGF5ZXI6OnVwZGF0ZURlc2NlbmRhbnREZXBlbmRlbnRGbGFncygpCiAgICAgfQogCiAg
ICAgaWYgKG1fdmlzaWJsZUNvbnRlbnRTdGF0dXNEaXJ0eSkgeworICAgICAgICAvLyAgV2UgbmVl
ZCB0aGUgcGFyZW50IHRvIGtub3cgaWYgd2UgaGF2ZSBza2lwcGVkIGNvbnRlbnQgb3IgY29udGVu
dC12aXNpYmlsaXR5IHJvb3QuCisgICAgICAgIGlmIChyZW5kZXJlcigpLnN0eWxlKCkuZWZmZWN0
aXZlU2tpcHNDb250ZW50KCkgJiYgIXJlbmRlcmVyKCkucGFyZW50KCkpCisgICAgICAgICAgICBy
ZXR1cm47CiAgICAgICAgIG1faGFzVmlzaWJsZUNvbnRlbnQgPSBjb21wdXRlSGFzVmlzaWJsZUNv
bnRlbnQoKTsKICAgICAgICAgbV92aXNpYmxlQ29udGVudFN0YXR1c0RpcnR5ID0gZmFsc2U7CiAg
ICAgfQpAQCAtMTYzOSw2ICsxNjUxLDggQEAgYm9vbCBSZW5kZXJMYXllcjo6Y29tcHV0ZUhhc1Zp
c2libGVDb250ZW50KCkgY29uc3QKICAgICBpZiAocmVuZGVyZXIoKS5kb2N1bWVudCgpLnNldHRp
bmdzKCkubGF5ZXJCYXNlZFNWR0VuZ2luZUVuYWJsZWQoKSAmJiBsaW5lYWdlT2ZUeXBlPFJlbmRl
clNWR0hpZGRlbkNvbnRhaW5lcj4ocmVuZGVyZXIoKSkuZmlyc3QoKSkKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogI2VuZGlmCisgICAgaWYgKHJlbmRlcmVyKCkuaXNTa2lwcGVkQ29udGVudCgpKQor
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYgKHJlbmRlcmVyKCkuc3R5bGUoKS52aXNpYmls
aXR5KCkgPT0gVmlzaWJpbGl0eTo6VmlzaWJsZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKQEAg
LTM0MTUsNyArMzQyOSw3IEBAIHZvaWQgUmVuZGVyTGF5ZXI6OnBhaW50TGlzdChMYXllckxpc3Qg
bGF5ZXJJdGVyYXRvciwgR3JhcGhpY3NDb250ZXh0JiBjb250ZXh0LCBjCiAgICAgaWYgKGxheWVy
SXRlcmF0b3IuYmVnaW4oKSA9PSBsYXllckl0ZXJhdG9yLmVuZCgpKQogICAgICAgICByZXR1cm47
CiAKLSAgICBpZiAoIWhhc1NlbGZQYWludGluZ0xheWVyRGVzY2VuZGFudCgpIHx8IHJlbmRlcmVy
KCkuc2hvdWxkU2tpcENvbnRlbnQoKSkKKyAgICBpZiAoIWhhc1NlbGZQYWludGluZ0xheWVyRGVz
Y2VuZGFudCgpKQogICAgICAgICByZXR1cm47CiAKICNpZiBBU1NFUlRfRU5BQkxFRApAQCAtNTM0
NCw3ICs1MzU4LDcgQEAgdm9pZCBSZW5kZXJMYXllcjo6c3R5bGVDaGFuZ2VkKFN0eWxlRGlmZmVy
ZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUKICAgICAvLyBsaWtlbHkgYmUg
Zm9sZGVkIGFsb25nIHdpdGggdGhlIHJlc3QuCiAgICAgaWYgKG9sZFN0eWxlKSB7CiAgICAgICAg
IGJvb2wgdmlzaWJpbGl0eUNoYW5nZWQgPSBvbGRTdHlsZS0+dmlzaWJpbGl0eSgpICE9IHJlbmRl
cmVyKCkuc3R5bGUoKS52aXNpYmlsaXR5KCk7Ci0gICAgICAgIGlmIChvbGRTdHlsZS0+dXNlZFpJ
bmRleCgpICE9IHJlbmRlcmVyKCkuc3R5bGUoKS51c2VkWkluZGV4KCkgfHwgdmlzaWJpbGl0eUNo
YW5nZWQpIHsKKyAgICAgICAgaWYgKG9sZFN0eWxlLT51c2VkWkluZGV4KCkgIT0gcmVuZGVyZXIo
KS5zdHlsZSgpLnVzZWRaSW5kZXgoKSB8fCBvbGRTdHlsZS0+ZWZmZWN0aXZlU2tpcHNDb250ZW50
KCkgIT0gcmVuZGVyZXIoKS5zdHlsZSgpLmVmZmVjdGl2ZVNraXBzQ29udGVudCgpIHx8IHZpc2li
aWxpdHlDaGFuZ2VkKSB7CiAgICAgICAgICAgICBkaXJ0eVN0YWNraW5nQ29udGV4dFpPcmRlckxp
c3RzKCk7CiAgICAgICAgICAgICBpZiAoaXNTdGFja2luZ0NvbnRleHQoKSkKICAgICAgICAgICAg
ICAgICBkaXJ0eVpPcmRlckxpc3RzKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJMYXllckJhY2tpbmcuY3BwCmluZGV4IDUzODNlYmRmYmYxZC4uNjNiNDcyZDczOGQzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyTGF5ZXJCYWNraW5nLmNwcApA
QCAtMTYxNiw4ICsxNjE2LDcgQEAgdm9pZCBSZW5kZXJMYXllckJhY2tpbmc6OnVwZGF0ZUFmdGVy
RGVzY2VuZGFudHMoKQogICAgICAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzT3BhcXVl
KCFtX2hhc1N1YnBpeGVsUm91bmRpbmcgJiYgbV9vd25pbmdMYXllci5iYWNrZ3JvdW5kSXNLbm93
blRvQmVPcGFxdWVJblJlY3QoY29tcG9zaXRlZEJvdW5kcygpKSk7CiAgICAgfQogCi0gICAgYm9v
bCBpc1NraXBwZWRDb250ZW50ID0gcmVuZGVyZXIoKS5pc1NraXBwZWRDb250ZW50KCk7Ci0gICAg
bV9ncmFwaGljc0xheWVyLT5zZXRDb250ZW50c1Zpc2libGUoIWlzU2tpcHBlZENvbnRlbnQgJiYg
KG1fb3duaW5nTGF5ZXIuaGFzVmlzaWJsZUNvbnRlbnQoKSB8fCBoYXNWaXNpYmxlTm9uQ29tcG9z
aXRlZERlc2NlbmRhbnRzKCkpKTsKKyAgICBtX2dyYXBoaWNzTGF5ZXItPnNldENvbnRlbnRzVmlz
aWJsZShtX293bmluZ0xheWVyLmhhc1Zpc2libGVDb250ZW50KCkgfHwgaGFzVmlzaWJsZU5vbkNv
bXBvc2l0ZWREZXNjZW5kYW50cygpKTsKICAgICBpZiAobV9zY3JvbGxDb250YWluZXJMYXllcikg
ewogICAgICAgICBtX3Njcm9sbENvbnRhaW5lckxheWVyLT5zZXRDb250ZW50c1Zpc2libGUocmVu
ZGVyZXIoKS5zdHlsZSgpLnZpc2liaWxpdHkoKSA9PSBWaXNpYmlsaXR5OjpWaXNpYmxlKTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggOWE0ZDFkMTk3Nzc2Li5lZGZkYWZlMTZkNGQgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4
cGVjdGF0aW9ucwpAQCAtNDgzMCw3ICs0ODMwLDYgQEAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWIK
IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQt
dmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRl
bnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktYXV0by1zdGF0ZS1jaGFuZ2VkLmh0bWwg
WyBTa2lwIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktZmllbGRzZXQtc2l6ZS5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nz
cy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXZpZGVv
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvdW50ZXItc2NvcGluZy0wMDEuaHRtbCBbIEltYWdlT25seUZh
aWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4v
Y291bnRlci1zY29waW5nLTAwMi5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9xdW90ZS1zY29waW5nLTAwMS5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465087</attachid>
            <date>2023-02-20 09:34:48 -0800</date>
            <delta_ts>2023-02-20 13:31:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230220173447.patch</filename>
            <type>text/plain</type>
            <size>21404</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBjNTliYWE5YTdlZWMyNzA2Y2Y0NGUyMTdlYThlMGVmMjk4YmE5OTQ5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAyMCBGZWIgMjAyMyAxNzoxMjoxMCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQSB0
ZXN0IHRvIHJlcHJlc2VudCBza2lwcGVkIGNvbnRlbnQgYnkgbm90IGNyZWF0aW5nIHJlbmRlcmVy
cyBmb3IgaXQuIFRoZQpyZW5kZXJlcnMgZG8gbmVlZCB0byBiZSBwcmVzZW50IChhbmQgbGFpZCBv
dXQpIHdoZW4gdXNpbmcgbWV0aG9kcyBsaWtlCm9mZnNldFRvcCB0aG91Z2gsIGluIHRoYXQgY2Fz
ZSB1c2UgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHRvCmJ1aWxkIHRoZSByZW5k
ZXIgc3VidHJlZSBhcyBuZWVkZWQuCgpOYW1pbmcgaXMgbW9zdGx5IG5vdCBhY2N1cmF0ZSwgdGhl
IHBhdGNoIGlzIGp1c3QgYSB0ZXN0LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoq
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4
dDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjp+Q29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50OjppZ25vcmVTa2lwcGVkQ29udGVudCk6CihXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTa2lwcGVkQ29udGVudElnbm9yZWQgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0
KToKKFdlYkNvcmU6OkVsZW1lbnQ6Om9mZnNldExlZnRGb3JCaW5kaW5ncyk6CihXZWJDb3JlOjpF
bGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxU
b3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMpOgooV2ViQ29yZTo6RWxlbWVu
dDo6Ym91bmRpbmdDbGllbnRSZWN0KToKKFdlYkNvcmU6OkVsZW1lbnQ6OmlzU2tpcHBlZENvbnRl
bnQgY29uc3QpOgooV2ViQ29yZTo6RWxlbWVudDo6c3RvcmVTa2lwcGVkQ29udGVudFN0eWxlKToK
KFdlYkNvcmU6OkVsZW1lbnQ6OmlubmVyVGV4dCk6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6
aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29yZTo6
SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToKKFdl
YkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNpemVPYnNlcnZhdGlvbi5jcHA6CihXZWJDb3JlOjpSZXNpemVPYnNlcnZhdGlvbjo6Y29t
cHV0ZU9ic2VydmVkU2l6ZXMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJU
cmVlKToKKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50UmVuZGVyZXIp
OgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVRleHRSZW5kZXJlcik6CiogU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwOgooV2ViQ29yZTo6U3R5bGU6OmRldGVy
bWluZUNoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHA6CihXZWJD
b3JlOjpTVkdMb2NhdGFibGU6OmdldEJCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuY3BwOgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRO
dW1iZXJPZkNoYXJzKToKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0
ZWRUZXh0TGVuZ3RoKToKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51
bUF0UG9zaXRpb24pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAg
ICAgICAgICB8IDIwICsrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAg
ICAgICAgICAgICAgICAgfCAxMyArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgICAgICAgICAgICAgICAgfCAzNSArKysrKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgIHwgIDggKysrKysKIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwICAgICAgICB8ICA4ICsrKy0tCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNwcCAgICAgfCAgMiArKwogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCAgICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8ICA5ICsrKy0tCiBTb3VyY2UvV2ViQ29yZS9z
dHlsZS9TdHlsZUNoYW5nZS5jcHAgICAgICAgICAgfCAgMiArKwogU291cmNlL1dlYkNvcmUvc3Zn
L1NWR0xvY2F0YWJsZS5jcHAgICAgICAgICAgIHwgIDUgKystCiBTb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCAgfCAgNiArKysrCiBMYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zICAgICAgICAgICAgICAgICAgfCAgNCArLS0KIC4uLi9jb250ZW50LXZpc2liaWxp
dHktMDQ0LWV4cGVjdGVkLnR4dCAgICAgICB8ICAxIC0KIDE0IGZpbGVzIGNoYW5nZWQsIDEwNiBp
bnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRl
eCBmNjEwYTIwZjVjODIuLmQ0OTk0ZjhkYTJhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
ZG9tL0RvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBA
IC0yMjc0LDYgKzIyNzQsMjYgQEAgYm9vbCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgp
CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK0NvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29w
ZTo6Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKEVsZW1lbnQmIGNvbnRleHQpCit7
CisgICAgY29udGV4dC5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBpZiAo
Y29udGV4dC5pc1NraXBwZWRDb250ZW50KCkpIHsKKyAgICAgICAgbV9kb2N1bWVudCA9IGNvbnRl
eHQuZG9jdW1lbnQoKTsKKyAgICAgICAgbV9kb2N1bWVudC0+aWdub3JlU2tpcHBlZENvbnRlbnQo
dHJ1ZSk7CisgICAgICAgIGZvciAoYXV0byB0YXJnZXQgPSAmY29udGV4dDsgdGFyZ2V0OyB0YXJn
ZXQgPSB0YXJnZXQtPnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAg
ICB0YXJnZXQtPmludmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICAgICAgICAgIGlmICh0
YXJnZXQtPnJlbmRlcmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRW
aXNpYmlsaXR5KCkgIT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICB9CisgICAgfQorfQorCitDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGU6On5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKQoreworICAg
IGlmIChtX2RvY3VtZW50KQorICAgICAgICBtX2RvY3VtZW50LT5pZ25vcmVTa2lwcGVkQ29udGVu
dChmYWxzZSk7Cit9CisKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpCiB7CiAgICAgQVNT
RVJUKGlzTWFpblRocmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1
bWVudC5oIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggYTczYmNmMDdmNjRh
Li5mMTljODg1NDFiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNTUsNiArMzU1LDE1IEBA
IHByaXZhdGU6CiAgICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJn
ZXREYXRhPiBtX2RvY3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxh
eW91dFNjb3BlIHsKK3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUoRWxlbWVudCYpOworICAgIH5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsK
KworcHJpdmF0ZToKKyAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRh
cmdldERhdGE+IG1fZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGlj
IENvbnRhaW5lck5vZGUKICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKQEAgLTE3NDgsNiArMTc1Nyw5
IEBAIHB1YmxpYzoKICAgICBET01BdWRpb1Nlc3Npb25UeXBlIGF1ZGlvU2Vzc2lvblR5cGUoKSBj
b25zdCB7IHJldHVybiBtX2F1ZGlvU2Vzc2lvblR5cGU7IH0KICNlbmRpZgogCisgICAgdm9pZCBp
Z25vcmVTa2lwcGVkQ29udGVudChib29sIGlnbm9yZSkgeyBtX2lnbm9yZVNraXBwZWRDb250ZW50
ID0gaWdub3JlOyB9CisgICAgYm9vbCBpc1NraXBwZWRDb250ZW50SWdub3JlZCgpIGNvbnN0IHsg
cmV0dXJuIG1faWdub3JlU2tpcHBlZENvbnRlbnQ7IH0KKwogcHJvdGVjdGVkOgogICAgIGVudW0g
Q29uc3RydWN0aW9uRmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xk
ZXIgPSAxIDw8IDEgfTsKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudChGcmFtZSosIGNvbnN0
IFNldHRpbmdzJiwgY29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBj
b25zdHJ1Y3Rpb25GbGFncyA9IDAsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0g
eyB9KTsKQEAgLTIzNjMsNiArMjM3NSw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZERpc3Bh
dGNoVmlld3BvcnRQcm9wZXJ0aWVzQ2hhbmdlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29s
IG1faXNEaXJBdHRyaWJ1dGVEaXJ0eSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lnbm9yZVNraXBw
ZWRDb250ZW50IHsgZmFsc2UgfTsKIAogICAgIHN0YXRpYyBib29sIGhhc0V2ZXJDcmVhdGVkQW5B
WE9iamVjdENhY2hlOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyNjhkNTNhNjMwMzgu
LjczZjFkNzllMjZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNzk2LDYgKzc5Niw5IEBA
IGJvb2wgRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogICAgIGlmICghaXNDb25uZWN0ZWQo
KSB8fCAhc3VwcG9ydHNGb2N1cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAo
aXNTa2lwcGVkQ29udGVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIXJl
bmRlcmVyKCkpIHsKICAgICAgICAgLy8gRWxlbWVudHMgaW4gY2FudmFzIGZhbGxiYWNrIGNvbnRl
bnQgYXJlIG5vdCByZW5kZXJlZCwgYnV0IHRoZXkgYXJlIGFsbG93ZWQgdG8gYmUKICAgICAgICAg
Ly8gZm9jdXNhYmxlIGFzIGxvbmcgYXMgdGhlaXIgY2FudmFzIGlzIGRpc3BsYXllZCBhbmQgdmlz
aWJsZS4KQEAgLTEzMTksNiArMTMyMiw4IEBAIHN0YXRpYyBIYXNoU2V0PFRyZWVTY29wZSo+IGNv
bGxlY3RBbmNlc3RvclRyZWVTY29wZUFzSGFzaFNldChOb2RlJiBub2RlKQogCiBpbnQgRWxlbWVu
dDo6b2Zmc2V0TGVmdEZvckJpbmRpbmdzKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgYXV0byBvZmZzZXQgPSBvZmZzZXRMZWZ0
KCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7CkBAIC0xMzQ4LDYgKzEz
NTMsOCBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0TGVmdCgpCiAKIGludCBFbGVtZW50OjpvZmZzZXRU
b3BGb3JCaW5kaW5ncygpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3Bl
IHNjb3BlKCp0aGlzKTsKKwogICAgIGF1dG8gb2Zmc2V0ID0gb2Zmc2V0VG9wKCk7CiAKICAgICBS
ZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7CkBAIC0xNTI5LDYgKzE1MzYsOCBAQCBpbnQg
RWxlbWVudDo6c2Nyb2xsTGVmdCgpCiAKIGludCBFbGVtZW50OjpzY3JvbGxUb3AoKQogeworICAg
IENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAg
aWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKQEAgLTE4MzQsNiAr
MTg0Myw4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3QqLCBM
YXlvdXRSZWN0Pj4gbGlzdEJveEVsZW1lbnRCb3VuZGluCiAKIFJlZjxET01SZWN0TGlzdD4gRWxl
bWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlv
dXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCk7CkBAIC0xODc4LDYgKzE4ODksOCBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6
cGFpcjxSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3Q+PiBFbGVtZW50Ojpib3VuZGluZ0Fic29sdXRl
UmVjdAogCiBGbG9hdFJlY3QgRWxlbWVudDo6Ym91bmRpbmdDbGllbnRSZWN0KCkKIHsKKyAgICBD
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBhdXRv
IHBhaXIgPSBib3VuZGluZ0Fic29sdXRlUmVjdFdpdGhvdXRMYXlvdXQoKTsKICAgICBpZiAoIXBh
aXIpCkBAIC0yNDQwLDYgKzI0NTMsMjMgQEAgdm9pZCBFbGVtZW50OjpjbGVhckRpc3BsYXlDb250
ZW50c1N0eWxlKCkKICAgICBlbGVtZW50UmFyZURhdGEoKS0+c2V0RGlzcGxheUNvbnRlbnRzU3R5
bGUobnVsbHB0cik7CiB9CiAKK2Jvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0
Cit7CisgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUgPSBlbGVtZW50UmFyZURhdGEoKS0+Y29tcHV0ZWRT
dHlsZSgpOworICAgIHJldHVybiBzdHlsZSAmJiBzdHlsZS0+ZWZmZWN0aXZlU2tpcHNDb250ZW50
KCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c3RvcmVTa2lwcGVkQ29udGVudFN0eWxlKHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUpCit7CisgICAgQVNTRVJUKHN0eWxlICYmIHN0eWxl
LT5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSk7CisgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IGlz
UHNldWRvRWxlbWVudCgpKTsKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRDb21wdXRl
ZFN0eWxlKFdURk1vdmUoc3R5bGUpKTsKKyAgICBjbGVhck5vZGVGbGFnKE5vZGVGbGFnOjpJc0Nv
bXB1dGVkU3R5bGVJbnZhbGlkRmxhZyk7Cit9CisKIC8vIFJldHVybnMgdHJ1ZSBpcyB0aGUgZ2l2
ZW4gYXR0cmlidXRlIGlzIGFuIGV2ZW50IGhhbmRsZXIuCiAvLyBXZSBjb25zaWRlciBhbiBldmVu
dCBoYW5kbGVyIGFueSBhdHRyaWJ1dGUgdGhhdCBiZWdpbnMgd2l0aCAib24iLgogLy8gSXQgaXMg
YSBzaW1wbGUgc29sdXRpb24gdGhhdCBoYXMgdGhlIGFkdmFudGFnZSBvZiBub3QgcmVxdWlyaW5n
IGFueQpAQCAtMzc1OCw4ICszNzg4LDExIEBAIFN0cmluZyBFbGVtZW50Ojppbm5lclRleHQoKQog
ICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRlIGxheW91dCwgc2luY2UgcGxhaW5UZXh0IHVzZXMgbGlu
ZSBib3hlcyBpbiB0aGUgcmVuZGVyIHRyZWUuCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICBp
ZiAoIXJlbmRlcmVyKCkpIHsKKyAgICAgICAgaWYgKGlzU2tpcHBlZENvbnRlbnQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHRleHRDb250ZW50KHRydWUp
OworICAgIH0KIAogICAgIGlmIChyZW5kZXJlcigpLT5pc1NraXBwZWRDb250ZW50KCkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDE1Y2Q0NTMyNGQ3MC4u
OTM4NWE5NDQwNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTY5MSw2ICs2OTEsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdG9yZURpc3BsYXlDb250ZW50c1N0eWxlKHN0ZDo6dW5pcXVlX3B0cjxS
ZW5kZXJTdHlsZT4pOwogICAgIHZvaWQgY2xlYXJEaXNwbGF5Q29udGVudHNTdHlsZSgpOwogCisg
ICAgYm9vbCBpc1NraXBwZWRDb250ZW50KCkgY29uc3Q7CisgICAgdm9pZCBzdG9yZVNraXBwZWRD
b250ZW50U3R5bGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPik7CisKICAgICB1c2luZyBD
b250YWluZXJOb2RlOjpzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyOwogICAgIHZvaWQgc2V0QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYjIzNTlkNTRjOTYw
Li43YWFmZDliOGM0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cApAQCAtNTA3LDYgKzUwNyw4IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0UGljdHVyZUVs
ZW1lbnQoSFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0dXJlRWxlbWVudCkKICAgICAKIHVuc2lnbmVk
IEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsK
KwogICAgIGlmIChpblJlbmRlcmVkRG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApAQCAtNTMwLDYgKzUzMiw4IEBA
IHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKCkKIAogdW5zaWduZWQgSFRNTEltYWdl
RWxlbWVudDo6aGVpZ2h0KCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsKKwogICAgIGlm
IChpblJlbmRlcmVkRG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApAQCAtNjcyLDYgKzY3Niw4IEBAIHZvaWQgSFRN
TEltYWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiAKIGludCBIVE1MSW1hZ2VF
bGVtZW50Ojp4KCkgY29uc3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsKKwogICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0
byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKQEAgLTY4
Myw2ICs2ODksOCBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1M
SW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5
b3V0U2NvcGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsKKwog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAg
ICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi5h
ODM4NWVhNjY2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0x
NzMsNyArMTczLDkgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAg
ICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQo
KnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91
dCgpOworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZShlbGVtZW50
LmdldCgpKTsKKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5y
ZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGRvd25jYXN0
PFJlbmRlckJveD4oKnJlbmRlcmVyKS5jb250ZW50SGVpZ2h0KCksICpyZW5kZXJlcik7CkBAIC0x
OTUsNyArMTk3LDkgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKICAg
ICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCgq
dGhpcy0+ZWxlbWVudCgpKTsKIAotICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0
KCk7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKGVsZW1lbnQu
Z2V0KCkpOworCisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8
UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRXaWR0aCgpLCAqcmVuZGVyZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNwcAppbmRleCBkOWRiNTAwYmUwMjcuLmYw
Y2U1Yjc5MTNiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAK
QEAgLTYxLDYgKzYxLDggQEAgYXV0byBSZXNpemVPYnNlcnZhdGlvbjo6Y29tcHV0ZU9ic2VydmVk
U2l6ZXMoKSBjb25zdCAtPiBzdGQ6Om9wdGlvbmFsPEJveFNpemVzPgogICAgICAgICAgICAgcmV0
dXJuIHsgeyBzaXplLCBzaXplLCBzaXplIH0gfTsKICAgICAgICAgfQogICAgIH0KKyAgICBpZiAo
bV90YXJnZXQtPmlzU2tpcHBlZENvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICBhdXRvKiBib3ggPSBtX3RhcmdldC0+cmVuZGVyQm94KCk7CiAgICAgaWYgKGJveCkg
ewogICAgICAgICBpZiAoYm94LT5pc1NraXBwZWRDb250ZW50KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCA3YTZmYmZkN2JhYzkuLjZhMzA1N2I2YTEwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC05OCw2ICs5OCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkNvbnRhaW5BYnNvbHV0ZWx5UG9zaXRpb25lZE9iamVj
dHMoKSBjb25zdDsKICAgICBib29sIGNhbkVzdGFibGlzaENvbnRhaW5pbmdCbG9ja1dpdGhUcmFu
c2Zvcm0oKSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5t
ZW50KGJvb2wpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgp
IGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSBjb25zdDsKICAg
ICBib29sIHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3Q7CkBAIC0zNjUs
NyArMzY2LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNWaXNpYmxlSW5WaWV3cG9ydCgpIGNv
bnN0OwogCiAgICAgYm9vbCBzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVudChib29s
KSBjb25zdDsKLSAgICBib29sIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChib29s
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBSZW5kZXJFbGVtZW50KENvbnRhaW5lck5vZGUmLCBS
ZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IGRlMzRlYWIy
OTJmZC4uNzA5ZWI4YzMwODg1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTE5Myw3ICsxOTMsNyBAQCB2
b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlKENvbnRhaW5lck5vZGUmIHJv
b3QpCiAgICAgICAgIGF1dG8gbWF5SGF2ZVJlbmRlcmVkRGVzY2VuZGFudHMgPSBbJl0oKSB7CiAg
ICAgICAgICAgICBpZiAoZWxlbWVudC5yZW5kZXJlcigpKQogICAgICAgICAgICAgICAgIHJldHVy
biAhKGVsZW1lbnQuaXNJblRvcExheWVyKCkgJiYgZWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgp
LmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhh
c0Rpc3BsYXlDb250ZW50cygpICYmIHNob3VsZENyZWF0ZVJlbmRlcmVyKGVsZW1lbnQsIHJlbmRl
clRyZWVQb3NpdGlvbigpLnBhcmVudCgpKTsKKyAgICAgICAgICAgIHJldHVybiAoZWxlbWVudC5o
YXNEaXNwbGF5Q29udGVudHMoKSB8fCBlbGVtZW50LmlzU2tpcHBlZENvbnRlbnQoKSkgJiYgc2hv
dWxkQ3JlYXRlUmVuZGVyZXIoZWxlbWVudCwgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkp
OwogICAgICAgICB9KCk7CiAKICAgICAgICAgaWYgKCFtYXlIYXZlUmVuZGVyZWREZXNjZW5kYW50
cykgewpAQCAtMzQyLDEyICszNDIsMTUgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRl
RWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpFbGUKICAgICB9
CiAKICAgICBib29sIGhhc0Rpc3BsYXlDb250ZW50cyA9IGVsZW1lbnRVcGRhdGUuc3R5bGUtPmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6Q29udGVudHM7CisgICAgYm9vbCBpc1NraXBwZWRDb250
ZW50ID0gKGVsZW1lbnQuaXNJblRvcExheWVyKCkgJiYgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFy
ZW50KCkuc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSkgfHwgKCFtX2RvY3VtZW50Lmlz
U2tpcHBlZENvbnRlbnRJZ25vcmVkKCkgJiYgZWxlbWVudFVwZGF0ZS5zdHlsZS0+ZWZmZWN0aXZl
U2tpcHNDb250ZW50KCkgJiYgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkuc2hvdWxkQXBw
bHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnN0
eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpKTsKICAgICBpZiAoaGFzRGlzcGxheUNvbnRl
bnRzKQogICAgICAgICBlbGVtZW50LnN0b3JlRGlzcGxheUNvbnRlbnRzU3R5bGUobWFrZVVuaXF1
ZTxSZW5kZXJTdHlsZT4oV1RGTW92ZShlbGVtZW50VXBkYXRlU3R5bGUpKSk7CisgICAgZWxzZSBp
ZiAoaXNTa2lwcGVkQ29udGVudCkKKyAgICAgICAgZWxlbWVudC5zdG9yZVNraXBwZWRDb250ZW50
U3R5bGUobWFrZVVuaXF1ZTxSZW5kZXJTdHlsZT4oV1RGTW92ZShlbGVtZW50VXBkYXRlU3R5bGUp
KSk7CiAgICAgZWxzZQogICAgICAgICBlbGVtZW50LmNsZWFyRGlzcGxheUNvbnRlbnRzU3R5bGUo
KTsKIAotICAgIGJvb2wgc2hvdWxkQ3JlYXRlTmV3UmVuZGVyZXIgPSAhZWxlbWVudC5yZW5kZXJl
cigpICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYgIShlbGVtZW50LmlzSW5Ub3BMYXllcigpICYm
IHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250
ZW50KCkpOworICAgIGJvb2wgc2hvdWxkQ3JlYXRlTmV3UmVuZGVyZXIgPSAhZWxlbWVudC5yZW5k
ZXJlcigpICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYgIWlzU2tpcHBlZENvbnRlbnQ7CiAgICAg
aWYgKHNob3VsZENyZWF0ZU5ld1JlbmRlcmVyKSB7CiAgICAgICAgIGlmIChlbGVtZW50Lmhhc0N1
c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQogICAgICAgICAgICAgZWxlbWVudC53aWxsQXR0
YWNoUmVuZGVyZXJzKCk7CkBAIC00OTUsNyArNDk4LDcgQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRl
cjo6Y3JlYXRlVGV4dFJlbmRlcmVyKFRleHQmIHRleHROb2RlLCBjb25zdCBTdHlsZTo6VGV4dFVw
ZGEKIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVRleHRSZW5kZXJlcihUZXh0JiB0ZXh0
LCBjb25zdCBTdHlsZTo6VGV4dFVwZGF0ZSogdGV4dFVwZGF0ZSkKIHsKICAgICBhdXRvKiBleGlz
dGluZ1JlbmRlcmVyID0gdGV4dC5yZW5kZXJlcigpOwotICAgIGJvb2wgbmVlZHNSZW5kZXJlciA9
IHRleHRSZW5kZXJlcklzTmVlZGVkKHRleHQpOworICAgIGJvb2wgbmVlZHNSZW5kZXJlciA9IHRl
eHRSZW5kZXJlcklzTmVlZGVkKHRleHQpICYmIChtX2RvY3VtZW50LmlzU2tpcHBlZENvbnRlbnRJ
Z25vcmVkKCkgfHwgIXJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnNob3VsZEFwcGx5U2l6
ZU9yU3R5bGVDb250YWlubWVudChyZW5kZXJUcmVlUG9zaXRpb24oKS5wYXJlbnQoKS5zdHlsZSgp
LmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKSk7CiAKICAgICBpZiAoZXhpc3RpbmdSZW5kZXJlciAm
JiB0ZXh0VXBkYXRlICYmIHRleHRVcGRhdGUtPmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxl
KSB7CiAgICAgICAgIGlmIChleGlzdGluZ1JlbmRlcmVyLT5pbmxpbmVXcmFwcGVyRm9yRGlzcGxh
eUNvbnRlbnRzKCkgfHwgKnRleHRVcGRhdGUtPmluaGVyaXRlZERpc3BsYXlDb250ZW50c1N0eWxl
KSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5nZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5nZS5jcHAKaW5kZXggZjk2MWE4MjZiMDc4Li5m
YTRlNTliMGIwOWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5nZS5jcHAKQEAgLTM1LDYg
KzM1LDggQEAgQ2hhbmdlIGRldGVybWluZUNoYW5nZShjb25zdCBSZW5kZXJTdHlsZSYgczEsIGNv
bnN0IFJlbmRlclN0eWxlJiBzMikKIHsKICAgICBpZiAoczEuZGlzcGxheSgpICE9IHMyLmRpc3Bs
YXkoKSkKICAgICAgICAgcmV0dXJuIENoYW5nZTo6UmVuZGVyZXI7CisgICAgaWYgKHMxLmNvbnRl
bnRWaXNpYmlsaXR5KCkgIT0gczIuY29udGVudFZpc2liaWxpdHkoKSkKKyAgICAgICAgcmV0dXJu
IENoYW5nZTo6UmVuZGVyZXI7CiAgICAgaWYgKHMxLmhhc1BzZXVkb1N0eWxlKFBzZXVkb0lkOjpG
aXJzdExldHRlcikgIT0gczIuaGFzUHNldWRvU3R5bGUoUHNldWRvSWQ6OkZpcnN0TGV0dGVyKSkK
ICAgICAgICAgcmV0dXJuIENoYW5nZTo6UmVuZGVyZXI7CiAgICAgLy8gV2UganVzdCBkZXRhY2gg
aWYgYSByZW5kZXJlciBhY3F1aXJlcyBvciBsb3NlcyBhIGNvbHVtbi1zcGFuLCBzaW5jZSBzcGFu
bmluZyBlbGVtZW50cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAppbmRleCBkNmQ5Zjlj
ZDI1OGYuLjNmNmFhYzQ0NDljMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xv
Y2F0YWJsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKQEAg
LTY3LDggKzY3LDExIEBAIFNWR0VsZW1lbnQqIFNWR0xvY2F0YWJsZTo6ZmFydGhlc3RWaWV3cG9y
dEVsZW1lbnQoY29uc3QgU1ZHRWxlbWVudCogZWxlbWVudCkKIEZsb2F0UmVjdCBTVkdMb2NhdGFi
bGU6OmdldEJCb3goU1ZHRWxlbWVudCogZWxlbWVudCwgU3R5bGVVcGRhdGVTdHJhdGVneSBzdHls
ZVVwZGF0ZVN0cmF0ZWd5KQogewogICAgIEFTU0VSVChlbGVtZW50KTsKLSAgICBpZiAoc3R5bGVV
cGRhdGVTdHJhdGVneSA9PSBBbGxvd1N0eWxlVXBkYXRlKQorICAgIGlmIChzdHlsZVVwZGF0ZVN0
cmF0ZWd5ID09IEFsbG93U3R5bGVVcGRhdGUpIHsKKyAgICAgICAgQ29udGVudFZpc2liaWxpdHlG
b3JjZUxheW91dFNjb3BlIHNjb3BlKCplbGVtZW50KTsKKwogICAgICAgICBlbGVtZW50LT5kb2N1
bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOworICAgIH0KIAog
ICAgIC8vIEZJWE1FOiBFdmVudHVhbGx5IHdlIHNob3VsZCBzdXBwb3J0IGdldEJCb3ggZm9yIGRl
dGFjaGVkIGVsZW1lbnRzLgogICAgIGlmICghZWxlbWVudC0+cmVuZGVyZXIoKSkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKaW5kZXggYWNkMmVlYTgzMGQz
Li40NDg5NjgxYzk5MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29udGVudEVs
ZW1lbnQuY3BwCkBAIC01NSwxMiArNTUsMTYgQEAgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpTVkdU
ZXh0Q29udGVudEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYgdGFnTmFtZSwgRG9jdW0KIAog
dW5zaWduZWQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXROdW1iZXJPZkNoYXJzKCkKIHsKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBy
ZXR1cm4gU1ZHVGV4dFF1ZXJ5KHJlbmRlcmVyKCkpLm51bWJlck9mQ2hhcmFjdGVycygpOwogfQog
CiBmbG9hdCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4dExlbmd0aCgpCiB7
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAg
ICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS50ZXh0TGVuZ3RoKCk7CiB9CkBAIC0x
MDksNiArMTEzLDggQEAgRXhjZXB0aW9uT3I8ZmxvYXQ+IFNWR1RleHRDb250ZW50RWxlbWVudDo6
Z2V0Um90YXRpb25PZkNoYXIodW5zaWduZWQgY2hhcm51bSkKIAogaW50IFNWR1RleHRDb250ZW50
RWxlbWVudDo6Z2V0Q2hhck51bUF0UG9zaXRpb24oRE9NUG9pbnRJbml0JiYgcG9pbnRJbml0KQog
eworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisK
ICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwog
ICAgIEZsb2F0UG9pbnQgdHJhbnNmb3JtUG9pbnQge3N0YXRpY19jYXN0PGZsb2F0Pihwb2ludElu
aXQueCksIHN0YXRpY19jYXN0PGZsb2F0Pihwb2ludEluaXQueSl9OwogICAgIHJldHVybiBTVkdU
ZXh0UXVlcnkocmVuZGVyZXIoKSkuY2hhcmFjdGVyTnVtYmVyQXRQb3NpdGlvbih0cmFuc2Zvcm1Q
b2ludCk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0
VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCBiZmQ5ZTkwNDQ1YjcuLjU2ODg1NjA2MzBiMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00ODY2LDEzICs0ODY2LDExIEBAIHdlYmFuaW1hdGlvbnMv
dHJhbnNsYXRlLXByb3BlcnR5LWFuZC10cmFuc2xhdGUtYW5pbWF0aW9uLXdpdGgtZGVsYXktb24t
Zm9yY2VkLWxhCiAjIENTUyBjb250YWlubWVudCB0ZXN0cyB0aGF0IGZhaWwKIGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUt
YmZjLWZsb2F0cy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1pbnRy
aW5zaWMuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQotIyBmb3JjZWQgbGF5b3V0Ci1pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTAzNS5odG1sIFsgU2tpcCBdCitpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkvY29udGVu
dC12aXNpYmlsaXR5LWlucHV0LWltYWdlLmh0bWwgWyBTa2lwIF0KICMgYy12OiBhdXRvCiBpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2li
aWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3NS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA3Ni5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50
LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LWF1dG8tc3RhdGUtY2hhbmdlZC5odG1sIFsg
U2tpcCBdCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9j
b250ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LWZpZWxkc2V0LXNpemUuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS12aWRlby5o
dG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L2Nzcy9jc3MtY29udGFpbi9jb3VudGVyLXNjb3BpbmctMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWls
dXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
dW50ZXItc2NvcGluZy0wMDIuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDQtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNv
bnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDQtZXhwZWN0ZWQu
dHh0CmluZGV4IGUxMzcyYjhkMmYxYS4uODhiMjk2ODRmYjcwIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250
ZW50LXZpc2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LTA0NC1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRh
aW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDQtZXhwZWN0ZWQudHh0
CkBAIC0xLDQgKzEsMyBAQAogCi0KIFBBU1MgQ29udGVudCBWaXNpYmlsaXR5OiBzbG90IG1vdmVk
IGFmdGVyIGNvbnRhaW5lciBpcyBoaWRkZW4KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465094</attachid>
            <date>2023-02-20 13:31:42 -0800</date>
            <delta_ts>2023-02-21 02:17:52 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230220213140.patch</filename>
            <type>text/plain</type>
            <size>22123</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSBjZGMxMGZlYWZjNDAwYjM0Y2FjNzU5ZTQ3ZmJmYjNlYzM1NTc2Yjc5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogTW9u
LCAyMCBGZWIgMjAyMyAxNzoxMjoxMCArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQSB0
ZXN0IHRvIHJlcHJlc2VudCBza2lwcGVkIGNvbnRlbnQgYnkgbm90IGNyZWF0aW5nIHJlbmRlcmVy
cyBmb3IgaXQuIFRoZQpyZW5kZXJlcnMgZG8gbmVlZCB0byBiZSBwcmVzZW50IChhbmQgbGFpZCBv
dXQpIHdoZW4gdXNpbmcgbWV0aG9kcyBsaWtlCm9mZnNldFRvcCB0aG91Z2gsIGluIHRoYXQgY2Fz
ZSB1c2UgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHRvCmJ1aWxkIHRoZSByZW5k
ZXIgc3VidHJlZSBhcyBuZWVkZWQuCgpOYW1pbmcgaXMgbW9zdGx5IG5vdCBhY2N1cmF0ZSwgdGhl
IHBhdGNoIGlzIGp1c3QgYSB0ZXN0LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoq
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4
dDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjp+Q29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50OjppZ25vcmVTa2lwcGVkQ29udGVudCk6CihXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTa2lwcGVkQ29udGVudElnbm9yZWQgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0
KToKKFdlYkNvcmU6OkVsZW1lbnQ6Om9mZnNldExlZnRGb3JCaW5kaW5ncyk6CihXZWJDb3JlOjpF
bGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxU
b3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMpOgooV2ViQ29yZTo6RWxlbWVu
dDo6Ym91bmRpbmdDbGllbnRSZWN0KToKKFdlYkNvcmU6OkVsZW1lbnQ6OmlzU2tpcHBlZENvbnRl
bnQgY29uc3QpOgooV2ViQ29yZTo6RWxlbWVudDo6c3RvcmVTa2lwcGVkQ29udGVudFN0eWxlKToK
KFdlYkNvcmU6OkVsZW1lbnQ6OmlubmVyVGV4dCk6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6
aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29yZTo6
SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToKKFdl
YkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNpemVPYnNlcnZhdGlvbi5jcHA6CihXZWJDb3JlOjpSZXNpemVPYnNlcnZhdGlvbjo6Y29t
cHV0ZU9ic2VydmVkU2l6ZXMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50Lmg6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRlclRy
ZWVVcGRhdGVyLmNwcDoKKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJU
cmVlKToKKFdlYkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVFbGVtZW50UmVuZGVyZXIp
OgooV2ViQ29yZTo6UmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVRleHRSZW5kZXJlcik6CiogU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwOgooV2ViQ29yZTo6U3R5bGU6OmRldGVy
bWluZUNoYW5nZSk6CiogU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHA6CihXZWJD
b3JlOjpTVkdMb2NhdGFibGU6OmdldEJCb3gpOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0
Q29udGVudEVsZW1lbnQuY3BwOgooV2ViQ29yZTo6U1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRO
dW1iZXJPZkNoYXJzKToKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q29tcHV0
ZWRUZXh0TGVuZ3RoKToKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0Q2hhck51
bUF0UG9zaXRpb24pOgotLS0KIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAgICAgICAg
ICAgICAgICB8IDIwICsrKysrKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaCAg
ICAgICAgICAgICAgICAgfCAxMyArKysrKysrCiBTb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5j
cHAgICAgICAgICAgICAgICAgfCAzNSArKysrKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViQ29y
ZS9kb20vRWxlbWVudC5oICAgICAgICAgICAgICAgICAgfCAgMyArKwogU291cmNlL1dlYkNvcmUv
aHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCAgICAgIHwgIDggKysrKysKIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwICAgICAgICB8ICA4ICsrKy0tCiBTb3VyY2UvV2ViQ29y
ZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNwcCAgICAgfCAgMiArKwogU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaCAgICAgIHwgIDIgKy0KIC4uLi9yZW5kZXJpbmcvdXBk
YXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwICB8IDEzICsrKystLS0KIFNvdXJjZS9XZWJDb3Jl
L3N0eWxlL1N0eWxlQ2hhbmdlLmNwcCAgICAgICAgICB8ICAyICsrCiBTb3VyY2UvV2ViQ29yZS9z
dmcvU1ZHTG9jYXRhYmxlLmNwcCAgICAgICAgICAgfCAgNSArKy0KIFNvdXJjZS9XZWJDb3JlL3N2
Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwICB8ICA2ICsrKysKIExheW91dFRlc3RzL1Rlc3RF
eHBlY3RhdGlvbnMgICAgICAgICAgICAgICAgICB8ICA0ICstLQogLi4uL2NvbnRlbnQtdmlzaWJp
bGl0eS0wNDQtZXhwZWN0ZWQudHh0ICAgICAgIHwgIDEgLQogMTQgZmlsZXMgY2hhbmdlZCwgMTA4
IGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL2RvbS9Eb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCmlu
ZGV4IGY0ODI1NTRkNGFhMy4uYjc0NDU0OGYyMmU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9kb20vRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAK
QEAgLTIyOTksNiArMjI5OSwyNiBAQCBib29sIERvY3VtZW50Ojp1cGRhdGVTdHlsZUlmTmVlZGVk
KCkKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNj
b3BlOjpDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoRWxlbWVudCYgY29udGV4dCkK
K3sKKyAgICBjb250ZXh0LmRvY3VtZW50KCkudXBkYXRlU3R5bGVJZk5lZWRlZCgpOworICAgIGlm
IChjb250ZXh0LmlzU2tpcHBlZENvbnRlbnQoKSkgeworICAgICAgICBtX2RvY3VtZW50ID0gY29u
dGV4dC5kb2N1bWVudCgpOworICAgICAgICBtX2RvY3VtZW50LT5pZ25vcmVTa2lwcGVkQ29udGVu
dCh0cnVlKTsKKyAgICAgICAgZm9yIChhdXRvIHRhcmdldCA9ICZjb250ZXh0OyB0YXJnZXQ7IHRh
cmdldCA9IHRhcmdldC0+cGFyZW50RWxlbWVudEluQ29tcG9zZWRUcmVlKCkpIHsKKyAgICAgICAg
ICAgIHRhcmdldC0+aW52YWxpZGF0ZVN0eWxlRm9yU3VidHJlZSgpOworICAgICAgICAgICAgaWYg
KHRhcmdldC0+cmVuZGVyZXIoKSAmJiB0YXJnZXQtPnJlbmRlcmVyKCktPnN0eWxlKCkuY29udGVu
dFZpc2liaWxpdHkoKSAhPSBDb250ZW50VmlzaWJpbGl0eTo6VmlzaWJsZSkKKyAgICAgICAgICAg
ICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICB9Cit9CisKK0NvbnRlbnRWaXNpYmlsaXR5Rm9y
Y2VMYXlvdXRTY29wZTo6fkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSgpCit7Cisg
ICAgaWYgKG1fZG9jdW1lbnQpCisgICAgICAgIG1fZG9jdW1lbnQtPmlnbm9yZVNraXBwZWRDb250
ZW50KGZhbHNlKTsKK30KKwogdm9pZCBEb2N1bWVudDo6dXBkYXRlTGF5b3V0KCkKIHsKICAgICBB
U1NFUlQoaXNNYWluVGhyZWFkKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvZG9tL0Rv
Y3VtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuaAppbmRleCA0YzIxMjFhYmU1
NjEuLjU0ZjQ0MDZhZjRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKQEAgLTM1NSw2ICszNTUsMTUg
QEAgcHJpdmF0ZToKICAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRh
cmdldERhdGE+IG1fZG9jdW1lbnQ7CiB9OwogCitjbGFzcyBDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGUgeworcHVibGljOgorICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRT
Y29wZShFbGVtZW50Jik7CisgICAgfkNvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSgp
OworCitwcml2YXRlOgorICAgIFdlYWtQdHI8RG9jdW1lbnQsIFdlYWtQdHJJbXBsV2l0aEV2ZW50
VGFyZ2V0RGF0YT4gbV9kb2N1bWVudDsKK307CisKIGNsYXNzIERvY3VtZW50CiAgICAgOiBwdWJs
aWMgQ29udGFpbmVyTm9kZQogICAgICwgcHVibGljIFRyZWVTY29wZQpAQCAtMTc1Myw2ICsxNzYy
LDkgQEAgcHVibGljOgogICAgIERPTUF1ZGlvU2Vzc2lvblR5cGUgYXVkaW9TZXNzaW9uVHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fYXVkaW9TZXNzaW9uVHlwZTsgfQogI2VuZGlmCiAKKyAgICB2b2lk
IGlnbm9yZVNraXBwZWRDb250ZW50KGJvb2wgaWdub3JlKSB7IG1faWdub3JlU2tpcHBlZENvbnRl
bnQgPSBpZ25vcmU7IH0KKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnRJZ25vcmVkKCkgY29uc3Qg
eyByZXR1cm4gbV9pZ25vcmVTa2lwcGVkQ29udGVudDsgfQorCiBwcm90ZWN0ZWQ6CiAgICAgZW51
bSBDb25zdHJ1Y3Rpb25GbGFncyB7IFN5bnRoZXNpemVkID0gMSwgTm9uUmVuZGVyZWRQbGFjZWhv
bGRlciA9IDEgPDwgMSB9OwogICAgIFdFQkNPUkVfRVhQT1JUIERvY3VtZW50KEZyYW1lKiwgY29u
c3QgU2V0dGluZ3MmLCBjb25zdCBVUkwmLCBEb2N1bWVudENsYXNzZXMgPSB7IH0sIHVuc2lnbmVk
IGNvbnN0cnVjdGlvbkZsYWdzID0gMCwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIg
PSB7IH0pOwpAQCAtMjM3MCw2ICsyMzgyLDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fZGlkRGlz
cGF0Y2hWaWV3cG9ydFByb3BlcnRpZXNDaGFuZ2VkIHsgZmFsc2UgfTsKICNlbmRpZgogICAgIGJv
b2wgbV9pc0RpckF0dHJpYnV0ZURpcnR5IHsgZmFsc2UgfTsKKyAgICBib29sIG1faWdub3JlU2tp
cHBlZENvbnRlbnQgeyBmYWxzZSB9OwogCiAgICAgc3RhdGljIGJvb2wgaGFzRXZlckNyZWF0ZWRB
bkFYT2JqZWN0Q2FjaGU7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAppbmRleCAyNjhkNTNhNjMwMzgu
LjczZjFkNzllMjZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcApAQCAtNzk2LDYgKzc5Niw5IEBA
IGJvb2wgRWxlbWVudDo6aXNGb2N1c2FibGUoKSBjb25zdAogICAgIGlmICghaXNDb25uZWN0ZWQo
KSB8fCAhc3VwcG9ydHNGb2N1cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAo
aXNTa2lwcGVkQ29udGVudCgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIXJl
bmRlcmVyKCkpIHsKICAgICAgICAgLy8gRWxlbWVudHMgaW4gY2FudmFzIGZhbGxiYWNrIGNvbnRl
bnQgYXJlIG5vdCByZW5kZXJlZCwgYnV0IHRoZXkgYXJlIGFsbG93ZWQgdG8gYmUKICAgICAgICAg
Ly8gZm9jdXNhYmxlIGFzIGxvbmcgYXMgdGhlaXIgY2FudmFzIGlzIGRpc3BsYXllZCBhbmQgdmlz
aWJsZS4KQEAgLTEzMTksNiArMTMyMiw4IEBAIHN0YXRpYyBIYXNoU2V0PFRyZWVTY29wZSo+IGNv
bGxlY3RBbmNlc3RvclRyZWVTY29wZUFzSGFzaFNldChOb2RlJiBub2RlKQogCiBpbnQgRWxlbWVu
dDo6b2Zmc2V0TGVmdEZvckJpbmRpbmdzKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgYXV0byBvZmZzZXQgPSBvZmZzZXRMZWZ0
KCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7CkBAIC0xMzQ4LDYgKzEz
NTMsOCBAQCBpbnQgRWxlbWVudDo6b2Zmc2V0TGVmdCgpCiAKIGludCBFbGVtZW50OjpvZmZzZXRU
b3BGb3JCaW5kaW5ncygpCiB7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3Bl
IHNjb3BlKCp0aGlzKTsKKwogICAgIGF1dG8gb2Zmc2V0ID0gb2Zmc2V0VG9wKCk7CiAKICAgICBS
ZWZQdHIgcGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7CkBAIC0xNTI5LDYgKzE1MzYsOCBAQCBpbnQg
RWxlbWVudDo6c2Nyb2xsTGVmdCgpCiAKIGludCBFbGVtZW50OjpzY3JvbGxUb3AoKQogeworICAg
IENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAg
aWYgKGRvY3VtZW50KCkuc2Nyb2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKQEAgLTE4MzQsNiAr
MTg0Myw4IEBAIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3QqLCBM
YXlvdXRSZWN0Pj4gbGlzdEJveEVsZW1lbnRCb3VuZGluCiAKIFJlZjxET01SZWN0TGlzdD4gRWxl
bWVudDo6Z2V0Q2xpZW50UmVjdHMoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlv
dXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9y
ZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRo
aXMtPnJlbmRlcmVyKCk7CkBAIC0xODc4LDYgKzE4ODksOCBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6
cGFpcjxSZW5kZXJPYmplY3QqLCBGbG9hdFJlY3Q+PiBFbGVtZW50Ojpib3VuZGluZ0Fic29sdXRl
UmVjdAogCiBGbG9hdFJlY3QgRWxlbWVudDo6Ym91bmRpbmdDbGllbnRSZWN0KCkKIHsKKyAgICBD
b250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9j
dW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBhdXRv
IHBhaXIgPSBib3VuZGluZ0Fic29sdXRlUmVjdFdpdGhvdXRMYXlvdXQoKTsKICAgICBpZiAoIXBh
aXIpCkBAIC0yNDQwLDYgKzI0NTMsMjMgQEAgdm9pZCBFbGVtZW50OjpjbGVhckRpc3BsYXlDb250
ZW50c1N0eWxlKCkKICAgICBlbGVtZW50UmFyZURhdGEoKS0+c2V0RGlzcGxheUNvbnRlbnRzU3R5
bGUobnVsbHB0cik7CiB9CiAKK2Jvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0
Cit7CisgICAgaWYgKCFoYXNSYXJlRGF0YSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBjb25zdCBSZW5kZXJTdHlsZSogc3R5bGUgPSBlbGVtZW50UmFyZURhdGEoKS0+Y29tcHV0ZWRT
dHlsZSgpOworICAgIHJldHVybiBzdHlsZSAmJiBzdHlsZS0+ZWZmZWN0aXZlU2tpcHNDb250ZW50
KCk7Cit9CisKK3ZvaWQgRWxlbWVudDo6c3RvcmVTa2lwcGVkQ29udGVudFN0eWxlKHN0ZDo6dW5p
cXVlX3B0cjxSZW5kZXJTdHlsZT4gc3R5bGUpCit7CisgICAgQVNTRVJUKHN0eWxlICYmIHN0eWxl
LT5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSk7CisgICAgQVNTRVJUKCFyZW5kZXJlcigpIHx8IGlz
UHNldWRvRWxlbWVudCgpKTsKKyAgICBlbnN1cmVFbGVtZW50UmFyZURhdGEoKS5zZXRDb21wdXRl
ZFN0eWxlKFdURk1vdmUoc3R5bGUpKTsKKyAgICBjbGVhck5vZGVGbGFnKE5vZGVGbGFnOjpJc0Nv
bXB1dGVkU3R5bGVJbnZhbGlkRmxhZyk7Cit9CisKIC8vIFJldHVybnMgdHJ1ZSBpcyB0aGUgZ2l2
ZW4gYXR0cmlidXRlIGlzIGFuIGV2ZW50IGhhbmRsZXIuCiAvLyBXZSBjb25zaWRlciBhbiBldmVu
dCBoYW5kbGVyIGFueSBhdHRyaWJ1dGUgdGhhdCBiZWdpbnMgd2l0aCAib24iLgogLy8gSXQgaXMg
YSBzaW1wbGUgc29sdXRpb24gdGhhdCBoYXMgdGhlIGFkdmFudGFnZSBvZiBub3QgcmVxdWlyaW5n
IGFueQpAQCAtMzc1OCw4ICszNzg4LDExIEBAIFN0cmluZyBFbGVtZW50Ojppbm5lclRleHQoKQog
ICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRlIGxheW91dCwgc2luY2UgcGxhaW5UZXh0IHVzZXMgbGlu
ZSBib3hlcyBpbiB0aGUgcmVuZGVyIHRyZWUuCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAotICAgIGlmICghcmVuZGVyZXIoKSkKKyAgICBp
ZiAoIXJlbmRlcmVyKCkpIHsKKyAgICAgICAgaWYgKGlzU2tpcHBlZENvbnRlbnQoKSkKKyAgICAg
ICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICAgICAgcmV0dXJuIHRleHRDb250ZW50KHRydWUp
OworICAgIH0KIAogICAgIGlmIChyZW5kZXJlcigpLT5pc1NraXBwZWRDb250ZW50KCkpCiAgICAg
ICAgIHJldHVybiBTdHJpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCmluZGV4IDE1Y2Q0NTMyNGQ3MC4u
OTM4NWE5NDQwNWI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKQEAgLTY5MSw2ICs2OTEsOSBAQCBwdWJs
aWM6CiAgICAgdm9pZCBzdG9yZURpc3BsYXlDb250ZW50c1N0eWxlKHN0ZDo6dW5pcXVlX3B0cjxS
ZW5kZXJTdHlsZT4pOwogICAgIHZvaWQgY2xlYXJEaXNwbGF5Q29udGVudHNTdHlsZSgpOwogCisg
ICAgYm9vbCBpc1NraXBwZWRDb250ZW50KCkgY29uc3Q7CisgICAgdm9pZCBzdG9yZVNraXBwZWRD
b250ZW50U3R5bGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPik7CisKICAgICB1c2luZyBD
b250YWluZXJOb2RlOjpzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyOwogICAgIHZvaWQgc2V0QXR0
cmlidXRlRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIGF0dHJpYnV0ZU5hbWUsIGNvbnN0IEF0b21TdHJpbmcmIHZhbHVlKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdlRWxlbWVudC5jcHAKaW5kZXggYjIzNTlkNTRjOTYw
Li43YWFmZDliOGM0MWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEltYWdl
RWxlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNw
cApAQCAtNTA3LDYgKzUwNyw4IEBAIHZvaWQgSFRNTEltYWdlRWxlbWVudDo6c2V0UGljdHVyZUVs
ZW1lbnQoSFRNTFBpY3R1cmVFbGVtZW50KiBwaWN0dXJlRWxlbWVudCkKICAgICAKIHVuc2lnbmVk
IEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNl
TGF5b3V0U2NvcGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsK
KwogICAgIGlmIChpblJlbmRlcmVkRG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApAQCAtNTMwLDYgKzUzMiw4IEBA
IHVuc2lnbmVkIEhUTUxJbWFnZUVsZW1lbnQ6OndpZHRoKCkKIAogdW5zaWduZWQgSFRNTEltYWdl
RWxlbWVudDo6aGVpZ2h0KCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsKKwogICAgIGlm
IChpblJlbmRlcmVkRG9jdW1lbnQoKSkKICAgICAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIApAQCAtNjcyLDYgKzY3Niw4IEBAIHZvaWQgSFRN
TEltYWdlRWxlbWVudDo6c2V0V2lkdGgodW5zaWduZWQgdmFsdWUpCiAKIGludCBIVE1MSW1hZ2VF
bGVtZW50Ojp4KCkgY29uc3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsKKwogICAgIGRv
Y3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgYXV0
byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikKQEAgLTY4
Myw2ICs2ODksOCBAQCBpbnQgSFRNTEltYWdlRWxlbWVudDo6eCgpIGNvbnN0CiAKIGludCBIVE1M
SW1hZ2VFbGVtZW50Ojp5KCkgY29uc3QKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5
b3V0U2NvcGUgc2NvcGUoKmNvbnN0X2Nhc3Q8SFRNTEltYWdlRWxlbWVudCo+KHRoaXMpKTsKKwog
ICAgIGRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAg
ICAgYXV0byByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CiAgICAgaWYgKCFyZW5kZXJlcikK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5jcHAKaW5kZXggOTYxNTM0MTFjNzAzLi5h
ODM4NWVhNjY2YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5
cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSW1hZ2VJbnB1dFR5cGUuY3BwCkBAIC0x
NzMsNyArMTczLDkgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OmhlaWdodCgpIGNvbnN0CiAg
ICAgQVNTRVJUKGVsZW1lbnQoKSk7CiAgICAgUmVmPEhUTUxJbnB1dEVsZW1lbnQ+IGVsZW1lbnQo
KnRoaXMtPmVsZW1lbnQoKSk7CiAKLSAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91
dCgpOworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZShlbGVtZW50
LmdldCgpKTsKKworICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVu
ZGluZ1N0eWxlc2hlZXRzKCk7CiAKICAgICBpZiAoYXV0byogcmVuZGVyZXIgPSBlbGVtZW50LT5y
ZW5kZXJlcigpKQogICAgICAgICByZXR1cm4gYWRqdXN0Rm9yQWJzb2x1dGVab29tKGRvd25jYXN0
PFJlbmRlckJveD4oKnJlbmRlcmVyKS5jb250ZW50SGVpZ2h0KCksICpyZW5kZXJlcik7CkBAIC0x
OTUsNyArMTk3LDkgQEAgdW5zaWduZWQgSW1hZ2VJbnB1dFR5cGU6OndpZHRoKCkgY29uc3QKICAg
ICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4gZWxlbWVudCgq
dGhpcy0+ZWxlbWVudCgpKTsKIAotICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0
KCk7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKGVsZW1lbnQu
Z2V0KCkpOworCisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5k
aW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVsZW1lbnQtPnJl
bmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20oZG93bmNhc3Q8
UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRXaWR0aCgpLCAqcmVuZGVyZXIpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNwcAppbmRleCA3OWIzNmRiZDU0NDguLmMz
OWUzYTUzYTkzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9SZXNpemVPYnNlcnZhdGlvbi5jcHAK
QEAgLTY2LDYgKzY2LDggQEAgYXV0byBSZXNpemVPYnNlcnZhdGlvbjo6Y29tcHV0ZU9ic2VydmVk
U2l6ZXMoKSBjb25zdCAtPiBzdGQ6Om9wdGlvbmFsPEJveFNpemVzPgogICAgICAgICAgICAgcmV0
dXJuIHsgeyBzaXplLCBzaXplLCBzaXplIH0gfTsKICAgICAgICAgfQogICAgIH0KKyAgICBpZiAo
bV90YXJnZXQtPmlzU2tpcHBlZENvbnRlbnQoKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9w
dDsKICAgICBhdXRvKiBib3ggPSBtX3RhcmdldC0+cmVuZGVyQm94KCk7CiAgICAgaWYgKGJveCkg
ewogICAgICAgICBpZiAoYm94LT5pc1NraXBwZWRDb250ZW50KCkpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckVsZW1lbnQuaAppbmRleCA3YTZmYmZkN2JhYzkuLjZhMzA1N2I2YTEwOSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckVsZW1lbnQuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCkBAIC05OCw2ICs5OCw3
IEBAIHB1YmxpYzoKICAgICBib29sIGNhbkNvbnRhaW5BYnNvbHV0ZWx5UG9zaXRpb25lZE9iamVj
dHMoKSBjb25zdDsKICAgICBib29sIGNhbkVzdGFibGlzaENvbnRhaW5pbmdCbG9ja1dpdGhUcmFu
c2Zvcm0oKSBjb25zdDsKIAorICAgIGJvb2wgc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5t
ZW50KGJvb2wpIGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQXBwbHlMYXlvdXRDb250YWlubWVudCgp
IGNvbnN0OwogICAgIGJvb2wgc2hvdWxkQXBwbHlTaXplQ29udGFpbm1lbnQoKSBjb25zdDsKICAg
ICBib29sIHNob3VsZEFwcGx5SW5saW5lU2l6ZUNvbnRhaW5tZW50KCkgY29uc3Q7CkBAIC0zNjUs
NyArMzY2LDYgQEAgcHJvdGVjdGVkOgogICAgIGJvb2wgaXNWaXNpYmxlSW5WaWV3cG9ydCgpIGNv
bnN0OwogCiAgICAgYm9vbCBzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVudChib29s
KSBjb25zdDsKLSAgICBib29sIHNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChib29s
KSBjb25zdDsKIAogcHJpdmF0ZToKICAgICBSZW5kZXJFbGVtZW50KENvbnRhaW5lck5vZGUmLCBS
ZW5kZXJTdHlsZSYmLCBCYXNlVHlwZUZsYWdzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4IDc0OTg0ZDk1
ODFjZC4uMzY2Zjg5MDNjYzJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
dXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTE5NCw3ICsxOTQsNyBAQCB2
b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlKENvbnRhaW5lck5vZGUmIHJv
b3QpCiAgICAgICAgIGF1dG8gbWF5SGF2ZVJlbmRlcmVkRGVzY2VuZGFudHMgPSBbJl0oKSB7CiAg
ICAgICAgICAgICBpZiAoZWxlbWVudC5yZW5kZXJlcigpKQogICAgICAgICAgICAgICAgIHJldHVy
biAhKGVsZW1lbnQuaXNJblRvcExheWVyKCkgJiYgZWxlbWVudC5yZW5kZXJlcigpLT5zdHlsZSgp
LmVmZmVjdGl2ZVNraXBzQ29udGVudCgpKTsKLSAgICAgICAgICAgIHJldHVybiBlbGVtZW50Lmhh
c0Rpc3BsYXlDb250ZW50cygpICYmIHNob3VsZENyZWF0ZVJlbmRlcmVyKGVsZW1lbnQsIHJlbmRl
clRyZWVQb3NpdGlvbigpLnBhcmVudCgpKTsKKyAgICAgICAgICAgIHJldHVybiAoZWxlbWVudC5o
YXNEaXNwbGF5Q29udGVudHMoKSB8fCBlbGVtZW50LmlzU2tpcHBlZENvbnRlbnQoKSkgJiYgc2hv
dWxkQ3JlYXRlUmVuZGVyZXIoZWxlbWVudCwgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkp
OwogICAgICAgICB9KCk7CiAKICAgICAgICAgaWYgKCFtYXlIYXZlUmVuZGVyZWREZXNjZW5kYW50
cykgewpAQCAtMzQzLDE1ICszNDMsMTggQEAgdm9pZCBSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRl
RWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQsIGNvbnN0IFN0eWxlOjpFbGUKICAgICB9
CiAKICAgICBib29sIGhhc0Rpc3BsYXlDb250ZW50cyA9IGVsZW1lbnRVcGRhdGUuc3R5bGUtPmRp
c3BsYXkoKSA9PSBEaXNwbGF5VHlwZTo6Q29udGVudHM7CisgICAgYm9vbCBpc1NraXBwZWRDb250
ZW50ID0gKGVsZW1lbnQuaXNJblRvcExheWVyKCkgJiYgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFy
ZW50KCkuc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSkgfHwgKCFtX2RvY3VtZW50Lmlz
U2tpcHBlZENvbnRlbnRJZ25vcmVkKCkgJiYgZWxlbWVudFVwZGF0ZS5zdHlsZS0+ZWZmZWN0aXZl
U2tpcHNDb250ZW50KCkgJiYgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkuc2hvdWxkQXBw
bHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnN0
eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpKTsKICAgICBpZiAoaGFzRGlzcGxheUNvbnRl
bnRzKQogICAgICAgICBlbGVtZW50LnN0b3JlRGlzcGxheUNvbnRlbnRzU3R5bGUobWFrZVVuaXF1
ZTxSZW5kZXJTdHlsZT4oV1RGTW92ZShlbGVtZW50VXBkYXRlU3R5bGUpKSk7CisgICAgZWxzZSBp
ZiAoaXNTa2lwcGVkQ29udGVudCkKKyAgICAgICAgZWxlbWVudC5zdG9yZVNraXBwZWRDb250ZW50
U3R5bGUobWFrZVVuaXF1ZTxSZW5kZXJTdHlsZT4oV1RGTW92ZShlbGVtZW50VXBkYXRlU3R5bGUp
KSk7CiAgICAgZWxzZQogICAgICAgICBlbGVtZW50LmNsZWFyRGlzcGxheUNvbnRlbnRzU3R5bGUo
KTsKIAotICAgIGlmICghaGFzRGlzcGxheUNvbnRlbnRzICYmICFlbGVtZW50VXBkYXRlU3R5bGUu
aGFzQXV0b0xlbmd0aENvbnRhaW5JbnRyaW5zaWNTaXplKCkpCisgICAgaWYgKCFoYXNEaXNwbGF5
Q29udGVudHMgJiYgIWlzU2tpcHBlZENvbnRlbnQgJiYgIWVsZW1lbnRVcGRhdGVTdHlsZS5oYXNB
dXRvTGVuZ3RoQ29udGFpbkludHJpbnNpY1NpemUoKSkKICAgICAgICAgZWxlbWVudC5jbGVhckxh
c3RSZW1lbWJlcmVkU2l6ZSgpOwogICAgIGF1dG8gc2NvcGVFeGl0ID0gbWFrZVNjb3BlRXhpdChb
Jl0gewotICAgICAgICBpZiAoIWhhc0Rpc3BsYXlDb250ZW50cykgeworICAgICAgICBpZiAoIWhh
c0Rpc3BsYXlDb250ZW50cyAmJiAhaXNTa2lwcGVkQ29udGVudCkgewogICAgICAgICAgICAgYXV0
byogYm94ID0gZWxlbWVudC5yZW5kZXJCb3goKTsKICAgICAgICAgICAgIGlmIChib3ggJiYgYm94
LT5zdHlsZSgpLmhhc0F1dG9MZW5ndGhDb250YWluSW50cmluc2ljU2l6ZSgpICYmICFib3gtPnNo
b3VsZFNraXBDb250ZW50KCkpCiAgICAgICAgICAgICAgICAgbV9kb2N1bWVudC5vYnNlcnZlRm9y
Q29udGFpbkludHJpbnNpY1NpemUoZWxlbWVudCk7CkBAIC0zNjAsNyArMzYzLDcgQEAgdm9pZCBS
ZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKEVsZW1lbnQmIGVsZW1lbnQs
IGNvbnN0IFN0eWxlOjpFbGUKICAgICAgICAgfQogICAgIH0pOwogCi0gICAgYm9vbCBzaG91bGRD
cmVhdGVOZXdSZW5kZXJlciA9ICFlbGVtZW50LnJlbmRlcmVyKCkgJiYgIWhhc0Rpc3BsYXlDb250
ZW50cyAmJiAhKGVsZW1lbnQuaXNJblRvcExheWVyKCkgJiYgcmVuZGVyVHJlZVBvc2l0aW9uKCku
cGFyZW50KCkuc3R5bGUoKS5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKSk7CisgICAgYm9vbCBzaG91
bGRDcmVhdGVOZXdSZW5kZXJlciA9ICFlbGVtZW50LnJlbmRlcmVyKCkgJiYgIWhhc0Rpc3BsYXlD
b250ZW50cyAmJiAhaXNTa2lwcGVkQ29udGVudDsKICAgICBpZiAoc2hvdWxkQ3JlYXRlTmV3UmVu
ZGVyZXIpIHsKICAgICAgICAgaWYgKGVsZW1lbnQuaGFzQ3VzdG9tU3R5bGVSZXNvbHZlQ2FsbGJh
Y2tzKCkpCiAgICAgICAgICAgICBlbGVtZW50LndpbGxBdHRhY2hSZW5kZXJlcnMoKTsKQEAgLTUw
OCw3ICs1MTEsNyBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjpjcmVhdGVUZXh0UmVuZGVyZXIo
VGV4dCYgdGV4dE5vZGUsIGNvbnN0IFN0eWxlOjpUZXh0VXBkYQogdm9pZCBSZW5kZXJUcmVlVXBk
YXRlcjo6dXBkYXRlVGV4dFJlbmRlcmVyKFRleHQmIHRleHQsIGNvbnN0IFN0eWxlOjpUZXh0VXBk
YXRlKiB0ZXh0VXBkYXRlKQogewogICAgIGF1dG8qIGV4aXN0aW5nUmVuZGVyZXIgPSB0ZXh0LnJl
bmRlcmVyKCk7Ci0gICAgYm9vbCBuZWVkc1JlbmRlcmVyID0gdGV4dFJlbmRlcmVySXNOZWVkZWQo
dGV4dCk7CisgICAgYm9vbCBuZWVkc1JlbmRlcmVyID0gdGV4dFJlbmRlcmVySXNOZWVkZWQodGV4
dCkgJiYgKG1fZG9jdW1lbnQuaXNTa2lwcGVkQ29udGVudElnbm9yZWQoKSB8fCAhcmVuZGVyVHJl
ZVBvc2l0aW9uKCkucGFyZW50KCkuc2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KHJl
bmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50
KCkpKTsKIAogICAgIGlmIChleGlzdGluZ1JlbmRlcmVyICYmIHRleHRVcGRhdGUgJiYgdGV4dFVw
ZGF0ZS0+aW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpIHsKICAgICAgICAgaWYgKGV4aXN0
aW5nUmVuZGVyZXItPmlubGluZVdyYXBwZXJGb3JEaXNwbGF5Q29udGVudHMoKSB8fCAqdGV4dFVw
ZGF0ZS0+aW5oZXJpdGVkRGlzcGxheUNvbnRlbnRzU3R5bGUpIHsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0
eWxlQ2hhbmdlLmNwcAppbmRleCBmOTYxYTgyNmIwNzguLmZhNGU1OWIwYjA5ZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmNwcApAQCAtMzUsNiArMzUsOCBAQCBDaGFuZ2UgZGV0ZXJt
aW5lQ2hhbmdlKGNvbnN0IFJlbmRlclN0eWxlJiBzMSwgY29uc3QgUmVuZGVyU3R5bGUmIHMyKQog
ewogICAgIGlmIChzMS5kaXNwbGF5KCkgIT0gczIuZGlzcGxheSgpKQogICAgICAgICByZXR1cm4g
Q2hhbmdlOjpSZW5kZXJlcjsKKyAgICBpZiAoczEuY29udGVudFZpc2liaWxpdHkoKSAhPSBzMi5j
b250ZW50VmlzaWJpbGl0eSgpKQorICAgICAgICByZXR1cm4gQ2hhbmdlOjpSZW5kZXJlcjsKICAg
ICBpZiAoczEuaGFzUHNldWRvU3R5bGUoUHNldWRvSWQ6OkZpcnN0TGV0dGVyKSAhPSBzMi5oYXNQ
c2V1ZG9TdHlsZShQc2V1ZG9JZDo6Rmlyc3RMZXR0ZXIpKQogICAgICAgICByZXR1cm4gQ2hhbmdl
OjpSZW5kZXJlcjsKICAgICAvLyBXZSBqdXN0IGRldGFjaCBpZiBhIHJlbmRlcmVyIGFjcXVpcmVz
IG9yIGxvc2VzIGEgY29sdW1uLXNwYW4sIHNpbmNlIHNwYW5uaW5nIGVsZW1lbnRzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3N2Zy9TVkdMb2NhdGFibGUuY3BwCmluZGV4IGQ2ZDlmOWNkMjU4Zi4uM2Y2YWFjNDQ0OWMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRhYmxlLmNwcApAQCAtNjcsOCArNjcsMTEgQEAgU1ZHRWxl
bWVudCogU1ZHTG9jYXRhYmxlOjpmYXJ0aGVzdFZpZXdwb3J0RWxlbWVudChjb25zdCBTVkdFbGVt
ZW50KiBlbGVtZW50KQogRmxvYXRSZWN0IFNWR0xvY2F0YWJsZTo6Z2V0QkJveChTVkdFbGVtZW50
KiBlbGVtZW50LCBTdHlsZVVwZGF0ZVN0cmF0ZWd5IHN0eWxlVXBkYXRlU3RyYXRlZ3kpCiB7CiAg
ICAgQVNTRVJUKGVsZW1lbnQpOwotICAgIGlmIChzdHlsZVVwZGF0ZVN0cmF0ZWd5ID09IEFsbG93
U3R5bGVVcGRhdGUpCisgICAgaWYgKHN0eWxlVXBkYXRlU3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVw
ZGF0ZSkgeworICAgICAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUo
KmVsZW1lbnQpOworCiAgICAgICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBkYXRlTGF5b3V0SWdu
b3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CisgICAgfQogCiAgICAgLy8gRklYTUU6IEV2ZW50dWFs
bHkgd2Ugc2hvdWxkIHN1cHBvcnQgZ2V0QkJveCBmb3IgZGV0YWNoZWQgZWxlbWVudHMuCiAgICAg
aWYgKCFlbGVtZW50LT5yZW5kZXJlcigpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3Zn
L1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENv
bnRlbnRFbGVtZW50LmNwcAppbmRleCBhY2QyZWVhODMwZDMuLjQ0ODk2ODFjOTkwNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3ZnL1NWR1RleHRDb250ZW50RWxlbWVudC5jcHAKQEAgLTU1LDEyICs1
NSwxNiBAQCBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OlNWR1RleHRDb250ZW50RWxlbWVudChjb25z
dCBRdWFsaWZpZWROYW1lJiB0YWdOYW1lLCBEb2N1bQogCiB1bnNpZ25lZCBTVkdUZXh0Q29udGVu
dEVsZW1lbnQ6OmdldE51bWJlck9mQ2hhcnMoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9y
Y2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91
dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIHJldHVybiBTVkdUZXh0UXVlcnkocmVu
ZGVyZXIoKSkubnVtYmVyT2ZDaGFyYWN0ZXJzKCk7CiB9CiAKIGZsb2F0IFNWR1RleHRDb250ZW50
RWxlbWVudDo6Z2V0Q29tcHV0ZWRUZXh0TGVuZ3RoKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0
eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVM
YXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICByZXR1cm4gU1ZHVGV4dFF1ZXJ5
KHJlbmRlcmVyKCkpLnRleHRMZW5ndGgoKTsKIH0KQEAgLTEwOSw2ICsxMTMsOCBAQCBFeGNlcHRp
b25PcjxmbG9hdD4gU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRSb3RhdGlvbk9mQ2hhcih1bnNp
Z25lZCBjaGFybnVtKQogCiBpbnQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDaGFyTnVtQXRQ
b3NpdGlvbihET01Qb2ludEluaXQmJiBwb2ludEluaXQpCiB7CisgICAgQ29udGVudFZpc2liaWxp
dHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3VtZW50KCkudXBkYXRl
TGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgRmxvYXRQb2ludCB0cmFuc2Zv
cm1Qb2ludCB7c3RhdGljX2Nhc3Q8ZmxvYXQ+KHBvaW50SW5pdC54KSwgc3RhdGljX2Nhc3Q8Zmxv
YXQ+KHBvaW50SW5pdC55KX07CiAgICAgcmV0dXJuIFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5j
aGFyYWN0ZXJOdW1iZXJBdFBvc2l0aW9uKHRyYW5zZm9ybVBvaW50KTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CmluZGV4IGMyZThhODkzOTJlZS4uMDJjMDJlMzA0MGZmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTQ4NjEsMTMgKzQ4NjEsMTEgQEAgd2ViYW5pbWF0aW9ucy90cmFuc2xhdGUtcHJvcGVydHktYW5k
LXRyYW5zbGF0ZS1hbmltYXRpb24td2l0aC1kZWxheS1vbi1mb3JjZWQtbGEKICMgQ1NTIGNvbnRh
aW5tZW50IHRlc3RzIHRoYXQgZmFpbAogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9j
c3MvY3NzLWNvbnRhaW4vY29udGFpbi1pbmxpbmUtc2l6ZS1iZmMtZmxvYXRzLTAwMS5odG1sIFsg
SW1hZ2VPbmx5RmFpbHVyZSBdCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9j
c3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWludHJpbnNpYy5odG1sIFsgSW1hZ2VPbmx5
RmFpbHVyZSBdCi0jIGZvcmNlZCBsYXlvdXQKLWltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHkt
MDM1Lmh0bWwgWyBTa2lwIF0KK2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nz
cy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktaW5wdXQtaW1h
Z2UuaHRtbCBbIFNraXAgXQogIyBjLXY6IGF1dG8KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxp
dHktMDc1Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2li
aWxpdHktMDc2Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZp
c2liaWxpdHktYXV0by1zdGF0ZS1jaGFuZ2VkLmh0bWwgWyBTa2lwIF0KLWltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250
ZW50LXZpc2liaWxpdHktZmllbGRzZXQtc2l6ZS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZp
c2liaWxpdHkvY29udGVudC12aXNpYmlsaXR5LXZpZGVvLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJl
IF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvdW50
ZXItc2NvcGluZy0wMDEuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY291bnRlci1zY29waW5nLTAwMi5odG1s
IFsgSW1hZ2VPbmx5RmFpbHVyZSBdCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA0NC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxp
dHkvY29udGVudC12aXNpYmlsaXR5LTA0NC1leHBlY3RlZC50eHQKaW5kZXggZTEzNzJiOGQyZjFh
Li44OGIyOTY4NGZiNzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50
LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250ZW50LXZpc2liaWxpdHkv
Y29udGVudC12aXNpYmlsaXR5LTA0NC1leHBlY3RlZC50eHQKQEAgLTEsNCArMSwzIEBACiAKLQog
UEFTUyBDb250ZW50IFZpc2liaWxpdHk6IHNsb3QgbW92ZWQgYWZ0ZXIgY29udGFpbmVyIGlzIGhp
ZGRlbgogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>465106</attachid>
            <date>2023-02-21 02:17:58 -0800</date>
            <delta_ts>2023-09-21 10:26:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-237369-20230221101757.patch</filename>
            <type>text/plain</type>
            <size>25332</size>
            <attacher name="Rob Buis">rbuis</attacher>
            
              <data encoding="base64">RnJvbSAwNWE4ZTFlYjNhN2M2YzFjM2EzMjMyZTE2YWVlYTE4NmVkZmU3MzY5IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBSb2IgQnVpcyA8cmJ1aXNAaWdhbGlhLmNvbT4KRGF0ZTogVHVl
LCAyMSBGZWIgMjAyMyAxMDowMjozNyArMDAwMApTdWJqZWN0OiBbUEFUQ0hdIFtjb250ZW50LXZp
c2liaWxpdHldIExhemlseSBsYXlvdXQgY2hpbGRyZW4KIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMzczNjkKClJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgoKQSB0
ZXN0IHRvIHJlcHJlc2VudCBza2lwcGVkIGNvbnRlbnQgYnkgbm90IGNyZWF0aW5nIHJlbmRlcmVy
cyBmb3IgaXQuIFRoZQpyZW5kZXJlcnMgZG8gbmVlZCB0byBiZSBwcmVzZW50IChhbmQgbGFpZCBv
dXQpIHdoZW4gdXNpbmcgbWV0aG9kcyBsaWtlCm9mZnNldFRvcCB0aG91Z2gsIGluIHRoYXQgY2Fz
ZSB1c2UgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHRvCmJ1aWxkIHRoZSByZW5k
ZXIgc3VidHJlZSBhcyBuZWVkZWQuCgpOYW1pbmcgaXMgbW9zdGx5IG5vdCBhY2N1cmF0ZSwgdGhl
IHBhdGNoIGlzIGp1c3QgYSB0ZXN0LgoKKiBMYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zOgoq
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250
YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4
dDoKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwOgooV2ViQ29yZTo6Q29udGVudFZp
c2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjpDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2Nv
cGUpOgooV2ViQ29yZTo6Q29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlOjp+Q29udGVu
dFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlKToKKiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuaDoKKFdlYkNvcmU6OkRvY3VtZW50OjppZ25vcmVTa2lwcGVkQ29udGVudCk6CihXZWJDb3Jl
OjpEb2N1bWVudDo6aXNTa2lwcGVkQ29udGVudElnbm9yZWQgY29uc3QpOgoqIFNvdXJjZS9XZWJD
b3JlL2RvbS9FbGVtZW50LmNwcDoKKFdlYkNvcmU6OkVsZW1lbnQ6OmlzRm9jdXNhYmxlIGNvbnN0
KToKKFdlYkNvcmU6OkVsZW1lbnQ6Om9mZnNldExlZnRGb3JCaW5kaW5ncyk6CihXZWJDb3JlOjpF
bGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncyk6CihXZWJDb3JlOjpFbGVtZW50OjpzY3JvbGxU
b3ApOgooV2ViQ29yZTo6RWxlbWVudDo6Z2V0Q2xpZW50UmVjdHMpOgooV2ViQ29yZTo6RWxlbWVu
dDo6Ym91bmRpbmdDbGllbnRSZWN0KToKKFdlYkNvcmU6OkVsZW1lbnQ6OmlzU2tpcHBlZENvbnRl
bnQgY29uc3QpOgooV2ViQ29yZTo6RWxlbWVudDo6c3RvcmVTa2lwcGVkQ29udGVudFN0eWxlKToK
KFdlYkNvcmU6OkVsZW1lbnQ6OmlubmVyVGV4dCk6CiogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1l
bnQuaDoKKiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQuY3BwOgooV2ViQ29y
ZTo6SFRNTEltYWdlRWxlbWVudDo6d2lkdGgpOgooV2ViQ29yZTo6SFRNTEltYWdlRWxlbWVudDo6
aGVpZ2h0KToKKFdlYkNvcmU6OkhUTUxJbWFnZUVsZW1lbnQ6OnggY29uc3QpOgooV2ViQ29yZTo6
SFRNTEltYWdlRWxlbWVudDo6eSBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlu
cHV0VHlwZS5jcHA6CihXZWJDb3JlOjpJbWFnZUlucHV0VHlwZTo6aGVpZ2h0IGNvbnN0KToKKFdl
YkNvcmU6OkltYWdlSW5wdXRUeXBlOjp3aWR0aCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcGFn
ZS9SZXNpemVPYnNlcnZhdGlvbi5jcHA6CihXZWJDb3JlOjpSZXNpemVPYnNlcnZhdGlvbjo6Y29t
cHV0ZU9ic2VydmVkU2l6ZXMgY29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJFbGVtZW50Lmg6CihXZWJDb3JlOjpSZW5kZXJFbGVtZW50OjpzaG91bGRBcHBseVNpemVPclN0
eWxlQ29udGFpbm1lbnQgY29uc3QpOiBEZWxldGVkLgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJPYmplY3QuY3BwOgooV2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29u
dGVudCBjb25zdCk6CiogU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oOgoo
V2ViQ29yZTo6UmVuZGVyT2JqZWN0OjpzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQg
Y29uc3QpOgoqIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBk
YXRlci5jcHA6CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlUmVuZGVyVHJlZSk6
CihXZWJDb3JlOjpSZW5kZXJUcmVlVXBkYXRlcjo6dXBkYXRlRWxlbWVudFJlbmRlcmVyKToKKFdl
YkNvcmU6OlJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVUZXh0UmVuZGVyZXIpOgoqIFNvdXJjZS9X
ZWJDb3JlL3N0eWxlL1N0eWxlQ2hhbmdlLmNwcDoKKFdlYkNvcmU6OlN0eWxlOjpkZXRlcm1pbmVD
aGFuZ2UpOgoqIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwOgooV2ViQ29yZTo6
U1ZHTG9jYXRhYmxlOjpnZXRCQm94KToKKiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRl
bnRFbGVtZW50LmNwcDoKKFdlYkNvcmU6OlNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVy
T2ZDaGFycyk6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENvbXB1dGVkVGV4
dExlbmd0aCk6CihXZWJDb3JlOjpTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldENoYXJOdW1BdFBv
c2l0aW9uKToKLS0tCiBTb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwICAgICAgICAgICAg
ICAgfCAyMCArKysrKysrKysKIFNvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oICAgICAgICAg
ICAgICAgICB8IDEzICsrKysrKwogU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuY3BwICAgICAg
ICAgICAgICAgIHwgNDIgKysrKysrKysrKysrKysrKy0tLQogU291cmNlL1dlYkNvcmUvZG9tL0Vs
ZW1lbnQuaCAgICAgICAgICAgICAgICAgIHwgIDMgKysKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRN
TEltYWdlRWxlbWVudC5jcHAgICAgICB8ICA4ICsrKysKIFNvdXJjZS9XZWJDb3JlL2h0bWwvSW1h
Z2VJbnB1dFR5cGUuY3BwICAgICAgICB8ICA4ICsrKy0KIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUmVz
aXplT2JzZXJ2YXRpb24uY3BwICAgICB8ICA0ICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRWxlbWVudC5oICAgICAgfCAgNiAtLS0KIFNvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJPYmplY3QuY3BwICAgICB8ICAyICstCiBTb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyT2JqZWN0LmggICAgICAgfCAgNyArKysrCiAuLi4vcmVuZGVyaW5nL3VwZGF0aW5nL1JlbmRl
clRyZWVVcGRhdGVyLmNwcCAgfCAxNSArKysrLS0tCiBTb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZUNoYW5nZS5jcHAgICAgICAgICAgfCAgMiArCiBTb3VyY2UvV2ViQ29yZS9zdmcvU1ZHTG9jYXRh
YmxlLmNwcCAgICAgICAgICAgfCAgNSArKy0KIFNvdXJjZS9XZWJDb3JlL3N2Zy9TVkdUZXh0Q29u
dGVudEVsZW1lbnQuY3BwICB8ICA2ICsrKwogTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyAg
ICAgICAgICAgICAgICAgIHwgIDQgKy0KIC4uLi9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVj
dGVkLnR4dCAgICAgICB8ICAxIC0KIDE2IGZpbGVzIGNoYW5nZWQsIDExOCBpbnNlcnRpb25zKCsp
LCAyOCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1l
bnQuY3BwIGIvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcAppbmRleCBmNDgyNTU0ZDRh
YTMuLmI3NDQ1NDhmMjJlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCkBAIC0yMjk5LDYgKzIy
OTksMjYgQEAgYm9vbCBEb2N1bWVudDo6dXBkYXRlU3R5bGVJZk5lZWRlZCgpCiAgICAgcmV0dXJu
IHRydWU7CiB9CiAKK0NvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZTo6Q29udGVudFZp
c2liaWxpdHlGb3JjZUxheW91dFNjb3BlKEVsZW1lbnQmIGNvbnRleHQpCit7CisgICAgY29udGV4
dC5kb2N1bWVudCgpLnVwZGF0ZVN0eWxlSWZOZWVkZWQoKTsKKyAgICBpZiAoY29udGV4dC5pc1Nr
aXBwZWRDb250ZW50KCkpIHsKKyAgICAgICAgbV9kb2N1bWVudCA9IGNvbnRleHQuZG9jdW1lbnQo
KTsKKyAgICAgICAgbV9kb2N1bWVudC0+aWdub3JlU2tpcHBlZENvbnRlbnQodHJ1ZSk7CisgICAg
ICAgIGZvciAoYXV0byB0YXJnZXQgPSAmY29udGV4dDsgdGFyZ2V0OyB0YXJnZXQgPSB0YXJnZXQt
PnBhcmVudEVsZW1lbnRJbkNvbXBvc2VkVHJlZSgpKSB7CisgICAgICAgICAgICB0YXJnZXQtPmlu
dmFsaWRhdGVTdHlsZUZvclN1YnRyZWUoKTsKKyAgICAgICAgICAgIGlmICh0YXJnZXQtPnJlbmRl
cmVyKCkgJiYgdGFyZ2V0LT5yZW5kZXJlcigpLT5zdHlsZSgpLmNvbnRlbnRWaXNpYmlsaXR5KCkg
IT0gQ29udGVudFZpc2liaWxpdHk6OlZpc2libGUpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisgICAgfQorfQorCitDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGU6
On5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKQoreworICAgIGlmIChtX2RvY3Vt
ZW50KQorICAgICAgICBtX2RvY3VtZW50LT5pZ25vcmVTa2lwcGVkQ29udGVudChmYWxzZSk7Cit9
CisKIHZvaWQgRG9jdW1lbnQ6OnVwZGF0ZUxheW91dCgpCiB7CiAgICAgQVNTRVJUKGlzTWFpblRo
cmVhZCgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oIGIvU291
cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmgKaW5kZXggNGMyMTIxYWJlNTYxLi41NGY0NDA2YWY0
YTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5oCkBAIC0zNTUsNiArMzU1LDE1IEBAIHByaXZhdGU6CiAg
ICAgV2Vha1B0cjxEb2N1bWVudCwgV2Vha1B0ckltcGxXaXRoRXZlbnRUYXJnZXREYXRhPiBtX2Rv
Y3VtZW50OwogfTsKIAorY2xhc3MgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHsK
K3B1YmxpYzoKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoRWxlbWVudCYp
OworICAgIH5Db250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUoKTsKKworcHJpdmF0ZToK
KyAgICBXZWFrUHRyPERvY3VtZW50LCBXZWFrUHRySW1wbFdpdGhFdmVudFRhcmdldERhdGE+IG1f
ZG9jdW1lbnQ7Cit9OworCiBjbGFzcyBEb2N1bWVudAogICAgIDogcHVibGljIENvbnRhaW5lck5v
ZGUKICAgICAsIHB1YmxpYyBUcmVlU2NvcGUKQEAgLTE3NTMsNiArMTc2Miw5IEBAIHB1YmxpYzoK
ICAgICBET01BdWRpb1Nlc3Npb25UeXBlIGF1ZGlvU2Vzc2lvblR5cGUoKSBjb25zdCB7IHJldHVy
biBtX2F1ZGlvU2Vzc2lvblR5cGU7IH0KICNlbmRpZgogCisgICAgdm9pZCBpZ25vcmVTa2lwcGVk
Q29udGVudChib29sIGlnbm9yZSkgeyBtX2lnbm9yZVNraXBwZWRDb250ZW50ID0gaWdub3JlOyB9
CisgICAgYm9vbCBpc1NraXBwZWRDb250ZW50SWdub3JlZCgpIGNvbnN0IHsgcmV0dXJuIG1faWdu
b3JlU2tpcHBlZENvbnRlbnQ7IH0KKwogcHJvdGVjdGVkOgogICAgIGVudW0gQ29uc3RydWN0aW9u
RmxhZ3MgeyBTeW50aGVzaXplZCA9IDEsIE5vblJlbmRlcmVkUGxhY2Vob2xkZXIgPSAxIDw8IDEg
fTsKICAgICBXRUJDT1JFX0VYUE9SVCBEb2N1bWVudChGcmFtZSosIGNvbnN0IFNldHRpbmdzJiwg
Y29uc3QgVVJMJiwgRG9jdW1lbnRDbGFzc2VzID0geyB9LCB1bnNpZ25lZCBjb25zdHJ1Y3Rpb25G
bGFncyA9IDAsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyID0geyB9KTsKQEAgLTIz
NzAsNiArMjM4Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2RpZERpc3BhdGNoVmlld3BvcnRQ
cm9wZXJ0aWVzQ2hhbmdlZCB7IGZhbHNlIH07CiAjZW5kaWYKICAgICBib29sIG1faXNEaXJBdHRy
aWJ1dGVEaXJ0eSB7IGZhbHNlIH07CisgICAgYm9vbCBtX2lnbm9yZVNraXBwZWRDb250ZW50IHsg
ZmFsc2UgfTsKIAogICAgIHN0YXRpYyBib29sIGhhc0V2ZXJDcmVhdGVkQW5BWE9iamVjdENhY2hl
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9kb20vRWxlbWVudC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKaW5kZXggMjY4ZDUzYTYzMDM4Li5lOWRiMDEwNTljNWQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9kb20vRWxlbWVudC5jcHAKQEAgLTc3NSw5ICs3NzUsNiBAQCBWZWN0b3I8U3RyaW5n
PiBFbGVtZW50OjpnZXRBdHRyaWJ1dGVOYW1lcygpIGNvbnN0CiAKIGJvb2wgRWxlbWVudDo6aGFz
Rm9jdXNhYmxlU3R5bGUoKSBjb25zdAogewotICAgIGlmIChyZW5kZXJlcigpICYmIHJlbmRlcmVy
KCktPmlzU2tpcHBlZENvbnRlbnQoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCiAgICAgYXV0
byBpc0ZvY3VzYWJsZVN0eWxlID0gW10oY29uc3QgUmVuZGVyU3R5bGUqIHN0eWxlKSB7CiAgICAg
ICAgIHJldHVybiBzdHlsZSAmJiBzdHlsZS0+ZGlzcGxheSgpICE9IERpc3BsYXlUeXBlOjpOb25l
ICYmIHN0eWxlLT5kaXNwbGF5KCkgIT0gRGlzcGxheVR5cGU6OkNvbnRlbnRzCiAgICAgICAgICAg
ICAmJiBzdHlsZS0+dmlzaWJpbGl0eSgpID09IFZpc2liaWxpdHk6OlZpc2libGUgJiYgIXN0eWxl
LT5lZmZlY3RpdmVJbmVydCgpOwpAQCAtNzk2LDYgKzc5Myw5IEBAIGJvb2wgRWxlbWVudDo6aXNG
b2N1c2FibGUoKSBjb25zdAogICAgIGlmICghaXNDb25uZWN0ZWQoKSB8fCAhc3VwcG9ydHNGb2N1
cygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKKyAgICBpZiAoaXNTa2lwcGVkQ29udGVudCgp
KQorICAgICAgICByZXR1cm4gZmFsc2U7CisKICAgICBpZiAoIXJlbmRlcmVyKCkpIHsKICAgICAg
ICAgLy8gRWxlbWVudHMgaW4gY2FudmFzIGZhbGxiYWNrIGNvbnRlbnQgYXJlIG5vdCByZW5kZXJl
ZCwgYnV0IHRoZXkgYXJlIGFsbG93ZWQgdG8gYmUKICAgICAgICAgLy8gZm9jdXNhYmxlIGFzIGxv
bmcgYXMgdGhlaXIgY2FudmFzIGlzIGRpc3BsYXllZCBhbmQgdmlzaWJsZS4KQEAgLTEzMTksNiAr
MTMxOSw4IEBAIHN0YXRpYyBIYXNoU2V0PFRyZWVTY29wZSo+IGNvbGxlY3RBbmNlc3RvclRyZWVT
Y29wZUFzSGFzaFNldChOb2RlJiBub2RlKQogCiBpbnQgRWxlbWVudDo6b2Zmc2V0TGVmdEZvckJp
bmRpbmdzKCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUo
KnRoaXMpOworCiAgICAgYXV0byBvZmZzZXQgPSBvZmZzZXRMZWZ0KCk7CiAKICAgICBSZWZQdHIg
cGFyZW50ID0gb2Zmc2V0UGFyZW50KCk7CkBAIC0xMzQ4LDYgKzEzNTAsOCBAQCBpbnQgRWxlbWVu
dDo6b2Zmc2V0TGVmdCgpCiAKIGludCBFbGVtZW50OjpvZmZzZXRUb3BGb3JCaW5kaW5ncygpCiB7
CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwog
ICAgIGF1dG8gb2Zmc2V0ID0gb2Zmc2V0VG9wKCk7CiAKICAgICBSZWZQdHIgcGFyZW50ID0gb2Zm
c2V0UGFyZW50KCk7CkBAIC0xNTI5LDYgKzE1MzMsOCBAQCBpbnQgRWxlbWVudDo6c2Nyb2xsTGVm
dCgpCiAKIGludCBFbGVtZW50OjpzY3JvbGxUb3AoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5
Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxh
eW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKGRvY3VtZW50KCkuc2Ny
b2xsaW5nRWxlbWVudCgpID09IHRoaXMpIHsKQEAgLTE4MzQsNiArMTg0MCw4IEBAIHN0YXRpYyBz
dGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3QqLCBMYXlvdXRSZWN0Pj4gbGlzdEJv
eEVsZW1lbnRCb3VuZGluCiAKIFJlZjxET01SZWN0TGlzdD4gRWxlbWVudDo6Z2V0Q2xpZW50UmVj
dHMoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhp
cyk7CisKICAgICBkb2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0
cygpOwogCiAgICAgUmVuZGVyT2JqZWN0KiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVyKCk7CkBA
IC0xODc4LDYgKzE4ODYsOCBAQCBzdGQ6Om9wdGlvbmFsPHN0ZDo6cGFpcjxSZW5kZXJPYmplY3Qq
LCBGbG9hdFJlY3Q+PiBFbGVtZW50Ojpib3VuZGluZ0Fic29sdXRlUmVjdAogCiBGbG9hdFJlY3Qg
RWxlbWVudDo6Ym91bmRpbmdDbGllbnRSZWN0KCkKIHsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZv
cmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlv
dXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBhdXRvIHBhaXIgPSBib3VuZGluZ0Fi
c29sdXRlUmVjdFdpdGhvdXRMYXlvdXQoKTsKICAgICBpZiAoIXBhaXIpCkBAIC0yNDQwLDYgKzI0
NTAsMjYgQEAgdm9pZCBFbGVtZW50OjpjbGVhckRpc3BsYXlDb250ZW50c1N0eWxlKCkKICAgICBl
bGVtZW50UmFyZURhdGEoKS0+c2V0RGlzcGxheUNvbnRlbnRzU3R5bGUobnVsbHB0cik7CiB9CiAK
K2Jvb2wgRWxlbWVudDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0Cit7CisgICAgaWYgKCFoYXNS
YXJlRGF0YSgpKSB7CisgICAgICAgIGlmIChhdXRvKiByZW5kZXJlciA9IHRoaXMtPnJlbmRlcmVy
KCkpCisgICAgICAgICAgICByZXR1cm4gcmVuZGVyZXItPmlzU2tpcHBlZENvbnRlbnQoKTsKKyAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIH0KKworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBzdHls
ZSA9IGVsZW1lbnRSYXJlRGF0YSgpLT5jb21wdXRlZFN0eWxlKCk7CisgICAgcmV0dXJuIHN0eWxl
ICYmIHN0eWxlLT5lZmZlY3RpdmVTa2lwc0NvbnRlbnQoKTsKK30KKwordm9pZCBFbGVtZW50Ojpz
dG9yZVNraXBwZWRDb250ZW50U3R5bGUoc3RkOjp1bmlxdWVfcHRyPFJlbmRlclN0eWxlPiBzdHls
ZSkKK3sKKyAgICBBU1NFUlQoc3R5bGUgJiYgc3R5bGUtPmVmZmVjdGl2ZVNraXBzQ29udGVudCgp
KTsKKyAgICBBU1NFUlQoIXJlbmRlcmVyKCkgfHwgaXNQc2V1ZG9FbGVtZW50KCkpOworICAgIGVu
c3VyZUVsZW1lbnRSYXJlRGF0YSgpLnNldENvbXB1dGVkU3R5bGUoV1RGTW92ZShzdHlsZSkpOwor
ICAgIGNsZWFyTm9kZUZsYWcoTm9kZUZsYWc6OklzQ29tcHV0ZWRTdHlsZUludmFsaWRGbGFnKTsK
K30KKwogLy8gUmV0dXJucyB0cnVlIGlzIHRoZSBnaXZlbiBhdHRyaWJ1dGUgaXMgYW4gZXZlbnQg
aGFuZGxlci4KIC8vIFdlIGNvbnNpZGVyIGFuIGV2ZW50IGhhbmRsZXIgYW55IGF0dHJpYnV0ZSB0
aGF0IGJlZ2lucyB3aXRoICJvbiIuCiAvLyBJdCBpcyBhIHNpbXBsZSBzb2x1dGlvbiB0aGF0IGhh
cyB0aGUgYWR2YW50YWdlIG9mIG5vdCByZXF1aXJpbmcgYW55CkBAIC0zNzU4LDEyICszNzg4LDEy
IEBAIFN0cmluZyBFbGVtZW50Ojppbm5lclRleHQoKQogICAgIC8vIFdlIG5lZWQgdG8gdXBkYXRl
IGxheW91dCwgc2luY2UgcGxhaW5UZXh0IHVzZXMgbGluZSBib3hlcyBpbiB0aGUgcmVuZGVyIHRy
ZWUuCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMo
KTsKIAorICAgIGlmIChpc1NraXBwZWRDb250ZW50KCkpCisgICAgICAgIHJldHVybiBTdHJpbmco
KTsKKwogICAgIGlmICghcmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIHRleHRDb250ZW50KHRy
dWUpOwogCi0gICAgaWYgKHJlbmRlcmVyKCktPmlzU2tpcHBlZENvbnRlbnQoKSkKLSAgICAgICAg
cmV0dXJuIFN0cmluZygpOwotCiAgICAgcmV0dXJuIHBsYWluVGV4dChtYWtlUmFuZ2VTZWxlY3Rp
bmdOb2RlQ29udGVudHMoKnRoaXMpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
ZG9tL0VsZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVtZW50LmgKaW5kZXggMTVjZDQ1
MzI0ZDcwLi45Mzg1YTk0NDA1YjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2RvbS9FbGVt
ZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUvZG9tL0VsZW1lbnQuaApAQCAtNjkxLDYgKzY5MSw5
IEBAIHB1YmxpYzoKICAgICB2b2lkIHN0b3JlRGlzcGxheUNvbnRlbnRzU3R5bGUoc3RkOjp1bmlx
dWVfcHRyPFJlbmRlclN0eWxlPik7CiAgICAgdm9pZCBjbGVhckRpc3BsYXlDb250ZW50c1N0eWxl
KCk7CiAKKyAgICBib29sIGlzU2tpcHBlZENvbnRlbnQoKSBjb25zdDsKKyAgICB2b2lkIHN0b3Jl
U2tpcHBlZENvbnRlbnRTdHlsZShzdGQ6OnVuaXF1ZV9wdHI8UmVuZGVyU3R5bGU+KTsKKwogICAg
IHVzaW5nIENvbnRhaW5lck5vZGU6OnNldEF0dHJpYnV0ZUV2ZW50TGlzdGVuZXI7CiAgICAgdm9p
ZCBzZXRBdHRyaWJ1dGVFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcmIGV2ZW50VHlwZSwg
Y29uc3QgUXVhbGlmaWVkTmFtZSYgYXR0cmlidXRlTmFtZSwgY29uc3QgQXRvbVN0cmluZyYgdmFs
dWUpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVsZW1lbnQu
Y3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW1hZ2VFbGVtZW50LmNwcAppbmRleCBiMjM1
OWQ1NGM5NjAuLjdhYWZkOWI4YzQxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MSW1hZ2VFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbWFnZUVs
ZW1lbnQuY3BwCkBAIC01MDcsNiArNTA3LDggQEAgdm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRQ
aWN0dXJlRWxlbWVudChIVE1MUGljdHVyZUVsZW1lbnQqIHBpY3R1cmVFbGVtZW50KQogICAgIAog
dW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoKQogeworICAgIENvbnRlbnRWaXNpYmls
aXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqY29uc3RfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4o
dGhpcykpOworCiAgICAgaWYgKGluUmVuZGVyZWREb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVu
dCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC01MzAsNiAr
NTMyLDggQEAgdW5zaWduZWQgSFRNTEltYWdlRWxlbWVudDo6d2lkdGgoKQogCiB1bnNpZ25lZCBI
VE1MSW1hZ2VFbGVtZW50OjpoZWlnaHQoKQogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZSBzY29wZSgqY29uc3RfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4odGhpcykpOwor
CiAgICAgaWYgKGluUmVuZGVyZWREb2N1bWVudCgpKQogICAgICAgICBkb2N1bWVudCgpLnVwZGF0
ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCkBAIC02NzIsNiArNjc2LDggQEAg
dm9pZCBIVE1MSW1hZ2VFbGVtZW50OjpzZXRXaWR0aCh1bnNpZ25lZCB2YWx1ZSkKIAogaW50IEhU
TUxJbWFnZUVsZW1lbnQ6OngoKSBjb25zdAogeworICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZSBzY29wZSgqY29uc3RfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4odGhpcykpOwor
CiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsK
ICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJlbmRlcmVy
KQpAQCAtNjgzLDYgKzY4OSw4IEBAIGludCBIVE1MSW1hZ2VFbGVtZW50Ojp4KCkgY29uc3QKIAog
aW50IEhUTUxJbWFnZUVsZW1lbnQ6OnkoKSBjb25zdAogeworICAgIENvbnRlbnRWaXNpYmlsaXR5
Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqY29uc3RfY2FzdDxIVE1MSW1hZ2VFbGVtZW50Kj4odGhp
cykpOworCiAgICAgZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVl
dHMoKTsKICAgICBhdXRvIHJlbmRlcmVyID0gdGhpcy0+cmVuZGVyZXIoKTsKICAgICBpZiAoIXJl
bmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0ltYWdlSW5wdXRUeXBlLmNwcAppbmRleCA5NjE1MzQx
MWM3MDMuLmE4Mzg1ZWE2NjZjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFn
ZUlucHV0VHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9JbWFnZUlucHV0VHlwZS5j
cHAKQEAgLTE3Myw3ICsxNzMsOSBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6aGVpZ2h0KCkg
Y29uc3QKICAgICBBU1NFUlQoZWxlbWVudCgpKTsKICAgICBSZWY8SFRNTElucHV0RWxlbWVudD4g
ZWxlbWVudCgqdGhpcy0+ZWxlbWVudCgpKTsKIAotICAgIGVsZW1lbnQtPmRvY3VtZW50KCkudXBk
YXRlTGF5b3V0KCk7CisgICAgQ29udGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3Bl
KGVsZW1lbnQuZ2V0KCkpOworCisgICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJ
Z25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKIAogICAgIGlmIChhdXRvKiByZW5kZXJlciA9IGVs
ZW1lbnQtPnJlbmRlcmVyKCkpCiAgICAgICAgIHJldHVybiBhZGp1c3RGb3JBYnNvbHV0ZVpvb20o
ZG93bmNhc3Q8UmVuZGVyQm94PigqcmVuZGVyZXIpLmNvbnRlbnRIZWlnaHQoKSwgKnJlbmRlcmVy
KTsKQEAgLTE5NSw3ICsxOTcsOSBAQCB1bnNpZ25lZCBJbWFnZUlucHV0VHlwZTo6d2lkdGgoKSBj
b25zdAogICAgIEFTU0VSVChlbGVtZW50KCkpOwogICAgIFJlZjxIVE1MSW5wdXRFbGVtZW50PiBl
bGVtZW50KCp0aGlzLT5lbGVtZW50KCkpOwogCi0gICAgZWxlbWVudC0+ZG9jdW1lbnQoKS51cGRh
dGVMYXlvdXQoKTsKKyAgICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUo
ZWxlbWVudC5nZXQoKSk7CisKKyAgICBlbGVtZW50LT5kb2N1bWVudCgpLnVwZGF0ZUxheW91dEln
bm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogCiAgICAgaWYgKGF1dG8qIHJlbmRlcmVyID0gZWxl
bWVudC0+cmVuZGVyZXIoKSkKICAgICAgICAgcmV0dXJuIGFkanVzdEZvckFic29sdXRlWm9vbShk
b3duY2FzdDxSZW5kZXJCb3g+KCpyZW5kZXJlcikuY29udGVudFdpZHRoKCksICpyZW5kZXJlcik7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0aW9uLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvUmVzaXplT2JzZXJ2YXRpb24uY3BwCmluZGV4IDc5YjM2ZGJk
NTQ0OC4uN2IyYjYzNDVhNTA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6
ZU9ic2VydmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1Jlc2l6ZU9ic2VydmF0
aW9uLmNwcApAQCAtNjYsMTAgKzY2LDEwIEBAIGF1dG8gUmVzaXplT2JzZXJ2YXRpb246OmNvbXB1
dGVPYnNlcnZlZFNpemVzKCkgY29uc3QgLT4gc3RkOjpvcHRpb25hbDxCb3hTaXplcz4KICAgICAg
ICAgICAgIHJldHVybiB7IHsgc2l6ZSwgc2l6ZSwgc2l6ZSB9IH07CiAgICAgICAgIH0KICAgICB9
CisgICAgaWYgKG1fdGFyZ2V0LT5pc1NraXBwZWRDb250ZW50KCkpCisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CiAgICAgYXV0byogYm94ID0gbV90YXJnZXQtPnJlbmRlckJveCgpOwogICAg
IGlmIChib3gpIHsKLSAgICAgICAgaWYgKGJveC0+aXNTa2lwcGVkQ29udGVudCgpKQotICAgICAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAgICAgcmV0dXJuIHsgewogICAgICAgICAg
ICAgYWRqdXN0TGF5b3V0U2l6ZUZvckFic29sdXRlWm9vbShib3gtPmNvbnRlbnRTaXplKCksICpi
b3gpLAogICAgICAgICAgICAgYWRqdXN0TGF5b3V0U2l6ZUZvckFic29sdXRlWm9vbShib3gtPmNv
bnRlbnRMb2dpY2FsU2l6ZSgpLCAqYm94KSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJFbGVtZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
RWxlbWVudC5oCmluZGV4IDdhNmZiZmQ3YmFjOS4uYzU3MTc3N2U3MzA1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRWxlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJFbGVtZW50LmgKQEAgLTM2NSw3ICszNjUsNiBAQCBwcm90ZWN0
ZWQ6CiAgICAgYm9vbCBpc1Zpc2libGVJblZpZXdwb3J0KCkgY29uc3Q7CiAKICAgICBib29sIHNo
b3VsZEFwcGx5TGF5b3V0T3JQYWludENvbnRhaW5tZW50KGJvb2wpIGNvbnN0OwotICAgIGJvb2wg
c2hvdWxkQXBwbHlTaXplT3JTdHlsZUNvbnRhaW5tZW50KGJvb2wpIGNvbnN0OwogCiBwcml2YXRl
OgogICAgIFJlbmRlckVsZW1lbnQoQ29udGFpbmVyTm9kZSYsIFJlbmRlclN0eWxlJiYsIEJhc2VU
eXBlRmxhZ3MpOwpAQCAtNTE3LDExICs1MTYsNiBAQCBpbmxpbmUgYm9vbCBSZW5kZXJFbGVtZW50
OjpzaG91bGRBcHBseUxheW91dE9yUGFpbnRDb250YWlubWVudChib29sIGNvbnRhaW5zQWNjbwog
ICAgIHJldHVybiBjb250YWluc0FjY29yZGluZ1RvU3R5bGUgJiYgKCFpc0lubGluZSgpIHx8IGlz
QXRvbWljSW5saW5lTGV2ZWxCb3goKSkgJiYgIWlzUnVieVRleHQoKSAmJiAoIWlzVGFibGVQYXJ0
KCkgfHwgaXNSZW5kZXJCbG9ja0Zsb3coKSk7CiB9CiAKLWlubGluZSBib29sIFJlbmRlckVsZW1l
bnQ6OnNob3VsZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChib29sIGNvbnRhaW5zQWNjb3Jk
aW5nVG9TdHlsZSkgY29uc3QKLXsKLSAgICByZXR1cm4gY29udGFpbnNBY2NvcmRpbmdUb1N0eWxl
ICYmICghaXNJbmxpbmUoKSB8fCBpc0F0b21pY0lubGluZUxldmVsQm94KCkpICYmICFpc1J1YnlU
ZXh0KCkgJiYgKCFpc1RhYmxlUGFydCgpIHx8IGlzVGFibGVDYXB0aW9uKCkpICYmICFpc1RhYmxl
KCk7Ci19Ci0KIGlubGluZSBib29sIFJlbmRlckVsZW1lbnQ6OnNob3VsZEFwcGx5TGF5b3V0Q29u
dGFpbm1lbnQoKSBjb25zdAogewogICAgIHJldHVybiBzaG91bGRBcHBseUxheW91dE9yUGFpbnRD
b250YWlubWVudChzdHlsZSgpLmNvbnRhaW5zTGF5b3V0KCkgfHwgc3R5bGUoKS5jb250ZW50Vmlz
aWJpbGl0eSgpICE9IENvbnRlbnRWaXNpYmlsaXR5OjpWaXNpYmxlKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlck9iamVjdC5jcHAKaW5kZXggOGEwMTM2YTU5ZDgxLi41MDc5MWEyOWYy
MGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJPYmplY3QuY3BwCkBAIC0yNjU4
LDcgKzI2NTgsNyBAQCBib29sIFJlbmRlck9iamVjdDo6aXNTa2lwcGVkQ29udGVudCgpIGNvbnN0
CiAKIGJvb2wgUmVuZGVyT2JqZWN0OjpzaG91bGRTa2lwQ29udGVudCgpIGNvbnN0CiB7Ci0gICAg
cmV0dXJuIHN0eWxlKCkuY29udGVudFZpc2liaWxpdHkoKSA9PSBDb250ZW50VmlzaWJpbGl0eTo6
SGlkZGVuOworICAgIHJldHVybiBzaG91bGRBcHBseVNpemVPclN0eWxlQ29udGFpbm1lbnQoc3R5
bGUoKS5jb250ZW50VmlzaWJpbGl0eSgpID09IENvbnRlbnRWaXNpYmlsaXR5OjpIaWRkZW4pOwog
fQogCiBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRzLCBjb25zdCBSZW5kZXJP
YmplY3QmIHJlbmRlcmVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlck9iamVjdC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlck9iamVjdC5oCmlu
ZGV4IGI0OGM5OTk1MmNkYi4uYWYwZDM2OThlY2YzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyT2JqZWN0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlck9iamVjdC5oCkBAIC04MzAsNiArODMwLDggQEAgcHJvdGVjdGVkOgogICAgIGVudW0g
Y2xhc3MgRm9yY2VSZXBhaW50IDogdWludDhfdCB7IE5vLCBZZXMgfTsKICAgICB2b2lkIGlzc3Vl
UmVwYWludChzdGQ6Om9wdGlvbmFsPExheW91dFJlY3Q+IHBhcnRpYWxSZXBhaW50UmVjdCA9IHN0
ZDo6bnVsbG9wdCwgQ2xpcFJlcGFpbnRUb0xheWVyID0gQ2xpcFJlcGFpbnRUb0xheWVyOjpObywg
Rm9yY2VSZXBhaW50ID0gRm9yY2VSZXBhaW50OjpObykgY29uc3Q7CiAKKyAgICBib29sIHNob3Vs
ZEFwcGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChib29sKSBjb25zdDsKKwogcHJpdmF0ZToKICAg
ICB2b2lkIGFkZEFic29sdXRlUmVjdEZvckxheWVyKExheW91dFJlY3QmIHJlc3VsdCk7CiAgICAg
dm9pZCBzZXRMYXllck5lZWRzRnVsbFJlcGFpbnQoKTsKQEAgLTEyNjEsNiArMTI2MywxMSBAQCBp
bmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6Omhhc1BvdGVudGlhbGx5U2Nyb2xsYWJsZU92ZXJmbG93
KCkgY29uc3QKICAgICByZXR1cm4gaGFzTm9uVmlzaWJsZU92ZXJmbG93KCkgJiYgc3R5bGUoKS5v
dmVyZmxvd1goKSAhPSBPdmVyZmxvdzo6Q2xpcCAmJiBzdHlsZSgpLm92ZXJmbG93WCgpICE9IE92
ZXJmbG93OjpWaXNpYmxlOwogfQogCitpbmxpbmUgYm9vbCBSZW5kZXJPYmplY3Q6OnNob3VsZEFw
cGx5U2l6ZU9yU3R5bGVDb250YWlubWVudChib29sIGNvbnRhaW5zQWNjb3JkaW5nVG9TdHlsZSkg
Y29uc3QKK3sKKyAgICByZXR1cm4gY29udGFpbnNBY2NvcmRpbmdUb1N0eWxlICYmICghaXNJbmxp
bmUoKSB8fCBpc0F0b21pY0lubGluZUxldmVsQm94KCkpICYmICFpc1J1YnlUZXh0KCkgJiYgKCFp
c1RhYmxlUGFydCgpIHx8IGlzVGFibGVDYXB0aW9uKCkpICYmICFpc1RhYmxlKCk7Cit9CisKIFdU
Rjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0mLCBjb25zdCBSZW5kZXJP
YmplY3QmKTsKIAogI2lmIEVOQUJMRShUUkVFX0RFQlVHR0lORykKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCmluZGV4
IDc0OTg0ZDk1ODFjZC4uODk5OTZlMzI3OWJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvdXBkYXRpbmcvUmVuZGVyVHJlZVVwZGF0ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy91cGRhdGluZy9SZW5kZXJUcmVlVXBkYXRlci5jcHAKQEAgLTE5Myw4ICsx
OTMsOCBAQCB2b2lkIFJlbmRlclRyZWVVcGRhdGVyOjp1cGRhdGVSZW5kZXJUcmVlKENvbnRhaW5l
ck5vZGUmIHJvb3QpCiAKICAgICAgICAgYXV0byBtYXlIYXZlUmVuZGVyZWREZXNjZW5kYW50cyA9
IFsmXSgpIHsKICAgICAgICAgICAgIGlmIChlbGVtZW50LnJlbmRlcmVyKCkpCi0gICAgICAgICAg
ICAgICAgcmV0dXJuICEoZWxlbWVudC5pc0luVG9wTGF5ZXIoKSAmJiBlbGVtZW50LnJlbmRlcmVy
KCktPnN0eWxlKCkuZWZmZWN0aXZlU2tpcHNDb250ZW50KCkpOwotICAgICAgICAgICAgcmV0dXJu
IGVsZW1lbnQuaGFzRGlzcGxheUNvbnRlbnRzKCkgJiYgc2hvdWxkQ3JlYXRlUmVuZGVyZXIoZWxl
bWVudCwgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFyZW50KCkpOworICAgICAgICAgICAgICAgIHJl
dHVybiAhKGVsZW1lbnQuaXNJblRvcExheWVyKCkgJiYgcmVuZGVyVHJlZVBvc2l0aW9uKCkucGFy
ZW50KCkuc2hvdWxkU2tpcENvbnRlbnQoKSk7CisgICAgICAgICAgICByZXR1cm4gKGVsZW1lbnQu
aGFzRGlzcGxheUNvbnRlbnRzKCkgfHwgZWxlbWVudC5pc1NraXBwZWRDb250ZW50KCkpICYmIHNo
b3VsZENyZWF0ZVJlbmRlcmVyKGVsZW1lbnQsIHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgp
KTsKICAgICAgICAgfSgpOwogCiAgICAgICAgIGlmICghbWF5SGF2ZVJlbmRlcmVkRGVzY2VuZGFu
dHMpIHsKQEAgLTM0MywxNSArMzQzLDE4IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0
ZUVsZW1lbnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxlCiAgICAg
fQogCiAgICAgYm9vbCBoYXNEaXNwbGF5Q29udGVudHMgPSBlbGVtZW50VXBkYXRlLnN0eWxlLT5k
aXNwbGF5KCkgPT0gRGlzcGxheVR5cGU6OkNvbnRlbnRzOworICAgIGJvb2wgaXNTa2lwcGVkQ29u
dGVudCA9IChlbGVtZW50LmlzSW5Ub3BMYXllcigpIHx8ICFtX2RvY3VtZW50LmlzU2tpcHBlZENv
bnRlbnRJZ25vcmVkKCkpICYmIHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnNob3VsZFNr
aXBDb250ZW50KCk7CiAgICAgaWYgKGhhc0Rpc3BsYXlDb250ZW50cykKICAgICAgICAgZWxlbWVu
dC5zdG9yZURpc3BsYXlDb250ZW50c1N0eWxlKG1ha2VVbmlxdWU8UmVuZGVyU3R5bGU+KFdURk1v
dmUoZWxlbWVudFVwZGF0ZVN0eWxlKSkpOworICAgIGVsc2UgaWYgKGlzU2tpcHBlZENvbnRlbnQp
CisgICAgICAgIGVsZW1lbnQuc3RvcmVTa2lwcGVkQ29udGVudFN0eWxlKG1ha2VVbmlxdWU8UmVu
ZGVyU3R5bGU+KFdURk1vdmUoZWxlbWVudFVwZGF0ZVN0eWxlKSkpOwogICAgIGVsc2UKICAgICAg
ICAgZWxlbWVudC5jbGVhckRpc3BsYXlDb250ZW50c1N0eWxlKCk7CiAKLSAgICBpZiAoIWhhc0Rp
c3BsYXlDb250ZW50cyAmJiAhZWxlbWVudFVwZGF0ZVN0eWxlLmhhc0F1dG9MZW5ndGhDb250YWlu
SW50cmluc2ljU2l6ZSgpKQorICAgIGlmICghaGFzRGlzcGxheUNvbnRlbnRzICYmICFpc1NraXBw
ZWRDb250ZW50ICYmICFlbGVtZW50VXBkYXRlU3R5bGUuaGFzQXV0b0xlbmd0aENvbnRhaW5JbnRy
aW5zaWNTaXplKCkpCiAgICAgICAgIGVsZW1lbnQuY2xlYXJMYXN0UmVtZW1iZXJlZFNpemUoKTsK
ICAgICBhdXRvIHNjb3BlRXhpdCA9IG1ha2VTY29wZUV4aXQoWyZdIHsKLSAgICAgICAgaWYgKCFo
YXNEaXNwbGF5Q29udGVudHMpIHsKKyAgICAgICAgaWYgKCFoYXNEaXNwbGF5Q29udGVudHMgJiYg
IWlzU2tpcHBlZENvbnRlbnQpIHsKICAgICAgICAgICAgIGF1dG8qIGJveCA9IGVsZW1lbnQucmVu
ZGVyQm94KCk7CiAgICAgICAgICAgICBpZiAoYm94ICYmIGJveC0+c3R5bGUoKS5oYXNBdXRvTGVu
Z3RoQ29udGFpbkludHJpbnNpY1NpemUoKSAmJiAhYm94LT5zaG91bGRTa2lwQ29udGVudCgpKQog
ICAgICAgICAgICAgICAgIG1fZG9jdW1lbnQub2JzZXJ2ZUZvckNvbnRhaW5JbnRyaW5zaWNTaXpl
KGVsZW1lbnQpOwpAQCAtMzYwLDcgKzM2Myw3IEBAIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVw
ZGF0ZUVsZW1lbnRSZW5kZXJlcihFbGVtZW50JiBlbGVtZW50LCBjb25zdCBTdHlsZTo6RWxlCiAg
ICAgICAgIH0KICAgICB9KTsKIAotICAgIGJvb2wgc2hvdWxkQ3JlYXRlTmV3UmVuZGVyZXIgPSAh
ZWxlbWVudC5yZW5kZXJlcigpICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYgIShlbGVtZW50Lmlz
SW5Ub3BMYXllcigpICYmIHJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgpLnN0eWxlKCkuZWZm
ZWN0aXZlU2tpcHNDb250ZW50KCkpOworICAgIGJvb2wgc2hvdWxkQ3JlYXRlTmV3UmVuZGVyZXIg
PSAhZWxlbWVudC5yZW5kZXJlcigpICYmICFoYXNEaXNwbGF5Q29udGVudHMgJiYgIWlzU2tpcHBl
ZENvbnRlbnQ7CiAgICAgaWYgKHNob3VsZENyZWF0ZU5ld1JlbmRlcmVyKSB7CiAgICAgICAgIGlm
IChlbGVtZW50Lmhhc0N1c3RvbVN0eWxlUmVzb2x2ZUNhbGxiYWNrcygpKQogICAgICAgICAgICAg
ZWxlbWVudC53aWxsQXR0YWNoUmVuZGVyZXJzKCk7CkBAIC01MDgsNyArNTExLDcgQEAgdm9pZCBS
ZW5kZXJUcmVlVXBkYXRlcjo6Y3JlYXRlVGV4dFJlbmRlcmVyKFRleHQmIHRleHROb2RlLCBjb25z
dCBTdHlsZTo6VGV4dFVwZGEKIHZvaWQgUmVuZGVyVHJlZVVwZGF0ZXI6OnVwZGF0ZVRleHRSZW5k
ZXJlcihUZXh0JiB0ZXh0LCBjb25zdCBTdHlsZTo6VGV4dFVwZGF0ZSogdGV4dFVwZGF0ZSkKIHsK
ICAgICBhdXRvKiBleGlzdGluZ1JlbmRlcmVyID0gdGV4dC5yZW5kZXJlcigpOwotICAgIGJvb2wg
bmVlZHNSZW5kZXJlciA9IHRleHRSZW5kZXJlcklzTmVlZGVkKHRleHQpOworICAgIGJvb2wgbmVl
ZHNSZW5kZXJlciA9IHRleHRSZW5kZXJlcklzTmVlZGVkKHRleHQpICYmIChtX2RvY3VtZW50Lmlz
U2tpcHBlZENvbnRlbnRJZ25vcmVkKCkgfHwgIXJlbmRlclRyZWVQb3NpdGlvbigpLnBhcmVudCgp
LnNob3VsZFNraXBDb250ZW50KCkpOwogCiAgICAgaWYgKGV4aXN0aW5nUmVuZGVyZXIgJiYgdGV4
dFVwZGF0ZSAmJiB0ZXh0VXBkYXRlLT5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSkgewog
ICAgICAgICBpZiAoZXhpc3RpbmdSZW5kZXJlci0+aW5saW5lV3JhcHBlckZvckRpc3BsYXlDb250
ZW50cygpIHx8ICp0ZXh0VXBkYXRlLT5pbmhlcml0ZWREaXNwbGF5Q29udGVudHNTdHlsZSkgewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwIGIvU291cmNl
L1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwCmluZGV4IGY5NjFhODI2YjA3OC4uZmE0ZTU5
YjBiMDlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUNoYW5nZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVDaGFuZ2UuY3BwCkBAIC0zNSw2ICszNSw4
IEBAIENoYW5nZSBkZXRlcm1pbmVDaGFuZ2UoY29uc3QgUmVuZGVyU3R5bGUmIHMxLCBjb25zdCBS
ZW5kZXJTdHlsZSYgczIpCiB7CiAgICAgaWYgKHMxLmRpc3BsYXkoKSAhPSBzMi5kaXNwbGF5KCkp
CiAgICAgICAgIHJldHVybiBDaGFuZ2U6OlJlbmRlcmVyOworICAgIGlmIChzMS5jb250ZW50Vmlz
aWJpbGl0eSgpICE9IHMyLmNvbnRlbnRWaXNpYmlsaXR5KCkpCisgICAgICAgIHJldHVybiBDaGFu
Z2U6OlJlbmRlcmVyOwogICAgIGlmIChzMS5oYXNQc2V1ZG9TdHlsZShQc2V1ZG9JZDo6Rmlyc3RM
ZXR0ZXIpICE9IHMyLmhhc1BzZXVkb1N0eWxlKFBzZXVkb0lkOjpGaXJzdExldHRlcikpCiAgICAg
ICAgIHJldHVybiBDaGFuZ2U6OlJlbmRlcmVyOwogICAgIC8vIFdlIGp1c3QgZGV0YWNoIGlmIGEg
cmVuZGVyZXIgYWNxdWlyZXMgb3IgbG9zZXMgYSBjb2x1bW4tc3Bhbiwgc2luY2Ugc3Bhbm5pbmcg
ZWxlbWVudHMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0xvY2F0YWJsZS5jcHAKaW5kZXggZDZkOWY5Y2QyNThm
Li4zZjZhYWM0NDQ5YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFi
bGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdMb2NhdGFibGUuY3BwCkBAIC02Nyw4
ICs2NywxMSBAQCBTVkdFbGVtZW50KiBTVkdMb2NhdGFibGU6OmZhcnRoZXN0Vmlld3BvcnRFbGVt
ZW50KGNvbnN0IFNWR0VsZW1lbnQqIGVsZW1lbnQpCiBGbG9hdFJlY3QgU1ZHTG9jYXRhYmxlOjpn
ZXRCQm94KFNWR0VsZW1lbnQqIGVsZW1lbnQsIFN0eWxlVXBkYXRlU3RyYXRlZ3kgc3R5bGVVcGRh
dGVTdHJhdGVneSkKIHsKICAgICBBU1NFUlQoZWxlbWVudCk7Ci0gICAgaWYgKHN0eWxlVXBkYXRl
U3RyYXRlZ3kgPT0gQWxsb3dTdHlsZVVwZGF0ZSkKKyAgICBpZiAoc3R5bGVVcGRhdGVTdHJhdGVn
eSA9PSBBbGxvd1N0eWxlVXBkYXRlKSB7CisgICAgICAgIENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VM
YXlvdXRTY29wZSBzY29wZSgqZWxlbWVudCk7CisKICAgICAgICAgZWxlbWVudC0+ZG9jdW1lbnQo
KS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKKyAgICB9CiAKICAgICAv
LyBGSVhNRTogRXZlbnR1YWxseSB3ZSBzaG91bGQgc3VwcG9ydCBnZXRCQm94IGZvciBkZXRhY2hl
ZCBlbGVtZW50cy4KICAgICBpZiAoIWVsZW1lbnQtPnJlbmRlcmVyKCkpCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50LmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3N2Zy9TVkdUZXh0Q29udGVudEVsZW1lbnQuY3BwCmluZGV4IGFjZDJlZWE4MzBkMy4uNDQ4
OTY4MWM5OTA0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRF
bGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHVGV4dENvbnRlbnRFbGVtZW50
LmNwcApAQCAtNTUsMTIgKzU1LDE2IEBAIFNWR1RleHRDb250ZW50RWxlbWVudDo6U1ZHVGV4dENv
bnRlbnRFbGVtZW50KGNvbnN0IFF1YWxpZmllZE5hbWUmIHRhZ05hbWUsIERvY3VtCiAKIHVuc2ln
bmVkIFNWR1RleHRDb250ZW50RWxlbWVudDo6Z2V0TnVtYmVyT2ZDaGFycygpCiB7CisgICAgQ29u
dGVudFZpc2liaWxpdHlGb3JjZUxheW91dFNjb3BlIHNjb3BlKCp0aGlzKTsKKwogICAgIGRvY3Vt
ZW50KCkudXBkYXRlTGF5b3V0SWdub3JlUGVuZGluZ1N0eWxlc2hlZXRzKCk7CiAgICAgcmV0dXJu
IFNWR1RleHRRdWVyeShyZW5kZXJlcigpKS5udW1iZXJPZkNoYXJhY3RlcnMoKTsKIH0KIAogZmxv
YXQgU1ZHVGV4dENvbnRlbnRFbGVtZW50OjpnZXRDb21wdXRlZFRleHRMZW5ndGgoKQogeworICAg
IENvbnRlbnRWaXNpYmlsaXR5Rm9yY2VMYXlvdXRTY29wZSBzY29wZSgqdGhpcyk7CisKICAgICBk
b2N1bWVudCgpLnVwZGF0ZUxheW91dElnbm9yZVBlbmRpbmdTdHlsZXNoZWV0cygpOwogICAgIHJl
dHVybiBTVkdUZXh0UXVlcnkocmVuZGVyZXIoKSkudGV4dExlbmd0aCgpOwogfQpAQCAtMTA5LDYg
KzExMyw4IEBAIEV4Y2VwdGlvbk9yPGZsb2F0PiBTVkdUZXh0Q29udGVudEVsZW1lbnQ6OmdldFJv
dGF0aW9uT2ZDaGFyKHVuc2lnbmVkIGNoYXJudW0pCiAKIGludCBTVkdUZXh0Q29udGVudEVsZW1l
bnQ6OmdldENoYXJOdW1BdFBvc2l0aW9uKERPTVBvaW50SW5pdCYmIHBvaW50SW5pdCkKIHsKKyAg
ICBDb250ZW50VmlzaWJpbGl0eUZvcmNlTGF5b3V0U2NvcGUgc2NvcGUoKnRoaXMpOworCiAgICAg
ZG9jdW1lbnQoKS51cGRhdGVMYXlvdXRJZ25vcmVQZW5kaW5nU3R5bGVzaGVldHMoKTsKICAgICBG
bG9hdFBvaW50IHRyYW5zZm9ybVBvaW50IHtzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0Lngp
LCBzdGF0aWNfY2FzdDxmbG9hdD4ocG9pbnRJbml0LnkpfTsKICAgICByZXR1cm4gU1ZHVGV4dFF1
ZXJ5KHJlbmRlcmVyKCkpLmNoYXJhY3Rlck51bWJlckF0UG9zaXRpb24odHJhbnNmb3JtUG9pbnQp
OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzJlOGE4OTM5MmVlLi4wMmMwMmUzMDQwZmYgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVz
dEV4cGVjdGF0aW9ucwpAQCAtNDg2MSwxMyArNDg2MSwxMSBAQCB3ZWJhbmltYXRpb25zL3RyYW5z
bGF0ZS1wcm9wZXJ0eS1hbmQtdHJhbnNsYXRlLWFuaW1hdGlvbi13aXRoLWRlbGF5LW9uLWZvcmNl
ZC1sYQogIyBDU1MgY29udGFpbm1lbnQgdGVzdHMgdGhhdCBmYWlsCiBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb250YWluLWlubGluZS1zaXplLWJmYy1m
bG9hdHMtMDAxLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2NvbnRhaW4taW5saW5lLXNpemUtaW50cmluc2lj
Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KLSMgZm9yY2VkIGxheW91dAotaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2Nv
bnRlbnQtdmlzaWJpbGl0eS0wMzUuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5L2NvbnRlbnQtdmlz
aWJpbGl0eS1pbnB1dC1pbWFnZS5odG1sIFsgU2tpcCBdCiAjIGMtdjogYXV0bwogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmlsaXR5
L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzUuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNpYmls
aXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNzYuaHRtbCBbIEltYWdlT25seUZhaWx1cmUgXQogaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12aXNp
YmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1hdXRvLXN0YXRlLWNoYW5nZWQuaHRtbCBbIFNraXAg
XQotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVu
dC12aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS1maWVsZHNldC1zaXplLmh0bWwgWyBJbWFn
ZU9ubHlGYWlsdXJlIF0KIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1j
b250YWluL2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktdmlkZW8uaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3Mv
Y3NzLWNvbnRhaW4vY291bnRlci1zY29waW5nLTAwMS5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBd
CiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Nzcy9jc3MtY29udGFpbi9jb3VudGVy
LXNjb3BpbmctMDAyLmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWlu
L2NvbnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4dApp
bmRleCBlMTM3MmI4ZDJmMWEuLjg4YjI5Njg0ZmI3MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9jc3MvY3NzLWNvbnRhaW4vY29udGVudC12
aXNpYmlsaXR5L2NvbnRlbnQtdmlzaWJpbGl0eS0wNDQtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvY3NzL2Nzcy1jb250YWluL2Nv
bnRlbnQtdmlzaWJpbGl0eS9jb250ZW50LXZpc2liaWxpdHktMDQ0LWV4cGVjdGVkLnR4dApAQCAt
MSw0ICsxLDMgQEAKIAotCiBQQVNTIENvbnRlbnQgVmlzaWJpbGl0eTogc2xvdCBtb3ZlZCBhZnRl
ciBjb250YWluZXIgaXMgaGlkZGVuCiAK
</data>
<flag name="commit-queue"
          id="493196"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>