<?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>235436</bug_id>
          
          <creation_ts>2022-01-21 06:41:45 -0800</creation_ts>
          <short_desc>[GTK] REGRESSION: Touch scrolling is broken</short_desc>
          <delta_ts>2022-01-26 00:12:05 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alice Mikhaylenko">alicem</reporter>
          <assigned_to name="Alice Mikhaylenko">alicem</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clord</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1832742</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-21 06:41:45 -0800</bug_when>
    <thetext>There are 2 issues, I&apos;m not sure whether they are symptoms of the same thing or not.

1. Scrolling is very very slow and delayed - I&apos;ve investigated this and it&apos;s caused by unwanted smooth scroll animations
2. Kinetic scrolling is too fast

With a quick hack:

```diff
diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
index 559a89bfc027..c940e565bea8 100644
--- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
+++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
@@ -3017,7 +3017,7 @@ void webkitWebViewBaseSynthesizeWheelEvent(WebKitWebViewBase* webViewBase, const
         delta.scale(static_cast&lt;float&gt;(Scrollbar::pixelsPerLineStep()));
 
     priv-&gt;pageProxy-&gt;handleWheelEvent(NativeWebWheelEvent(const_cast&lt;GdkEvent*&gt;(event), { x, y }, widgetRootCoords(GTK_WIDGET(webViewBase), x, y),
-        delta, wheelTicks, toWebKitWheelEventPhase(phase), toWebKitWheelEventPhase(momentumPhase), priv-&gt;wheelHasPreciseDeltas));
+        delta, wheelTicks, toWebKitWheelEventPhase(phase), toWebKitWheelEventPhase(momentumPhase), priv-&gt;wheelHasPreciseDeltas || TRUE));
 }
 
 void webkitWebViewBaseSetWheelHasPreciseDeltas(WebKitWebViewBase* webViewBase, bool hasPreciseDeltas)
```

the lag indeed goes away, but kinetic scrolling just stops working altogether. Without that hack and with smooth scrolling disabled, kinetic scrolling seems like it immediately jumps at the position where it would end up if it was animating. With it enabled I can&apos;t tell if it&apos;s smooth or kinetic scrolling animating.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1832743</commentid>
    <comment_count>1</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-21 06:43:07 -0800</bug_when>
    <thetext>Clarification: this is all only on touchscreen; touchpad scrolling works as expected. Seems to happen with both GTK3 and GTK4 builds too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833216</commentid>
    <comment_count>2</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 01:22:40 -0800</bug_when>
    <thetext>Ok, and no kinetic scrolling boils down to simply:

```diff
--- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
+++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp
@@ -2011,7 +2011,7 @@ static void webkitWebViewBaseTouchSwipe(WebKitWebViewBase* webViewBase, gdouble
                 return;
         }
 
-        webkitWebViewBaseSynthesizeWheelEvent(webViewBase, event, -velocityX / Scrollbar::pixelsPerLineStep(), velocityY / Scrollbar::pixelsPerLineStep(), x, y, WheelEventPhase::NoPhase, WheelEventPhase::Began);
+        webkitWebViewBaseSynthesizeWheelEvent(webViewBase, event, 0, 0, x, y, WheelEventPhase::Ended, WheelEventPhase::NoPhase);
     }
 }
 

```

Since the kinetic scroll handling currently handles event history and everything, we don&apos;t care about the velocity we get from GtkGestureSwipe. On the contrary, it messes things up as the event is no longer a scroll stop event as the deltas are non-0. Makign the event look same as the equivalent touchpad event fixes everything.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833219</commentid>
    <comment_count>3</comment_count>
      <attachid>449789</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 01:40:04 -0800</bug_when>
    <thetext>Created attachment 449789
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833221</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2022-01-24 01:41:29 -0800</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833232</commentid>
    <comment_count>5</comment_count>
      <attachid>449789</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-01-24 02:12:52 -0800</bug_when>
    <thetext>Comment on attachment 449789
Patch

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

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:2014
&gt; +        webkitWebViewBaseSynthesizeWheelEvent(webViewBase, event, 0, 0, x, y, WheelEventPhase::Ended, WheelEventPhase::NoPhase);

Great that this is so simple - I don&apos;t know if this will affect test results anywhere, but EWS ought to tell us soon I suppose. Looks fine to me though.

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:3020
&gt; +        delta, wheelTicks, toWebKitWheelEventPhase(phase), toWebKitWheelEventPhase(momentumPhase), true));

This will definitely cause many tests to fail - precise deltas will need to be conditionally enabled for wheel events synthesised by touch events.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833233</commentid>
    <comment_count>6</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 02:15:02 -0800</bug_when>
    <thetext>That codepath is only used for touch events though. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833234</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-01-24 02:18:53 -0800</bug_when>
    <thetext>(In reply to Alexander Mikhaylenko from comment #6)
&gt; That codepath is only used for touch events though. :)

Is the patch view annotation tripping me up here? webkitWebViewBaseSynthesizeWheelEvent is used by WebKitTestRunner/gtk/EventSenderProxyGtk.cpp for synthesising wheel events in layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833236</commentid>
    <comment_count>8</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 02:24:26 -0800</bug_when>
    <thetext>Ah ok, nevermind then. Once again I&apos;ve only looked in Source/ but not Tools/.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833254</commentid>
    <comment_count>9</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 04:30:14 -0800</bug_when>
    <thetext>Actually I have another idea.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833255</commentid>
    <comment_count>10</comment_count>
      <attachid>449799</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 04:30:37 -0800</bug_when>
    <thetext>Created attachment 449799
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833257</commentid>
    <comment_count>11</comment_count>
      <attachid>449799</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-01-24 04:37:46 -0800</bug_when>
    <thetext>Comment on attachment 449799
Patch

LGTM :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833267</commentid>
    <comment_count>12</comment_count>
      <attachid>449804</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-24 05:55:54 -0800</bug_when>
    <thetext>Created attachment 449804
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833747</commentid>
    <comment_count>13</comment_count>
      <attachid>449804</attachid>
    <who name="Chris Lord">clord</who>
    <bug_when>2022-01-25 09:42:54 -0800</bug_when>
    <thetext>Comment on attachment 449804
Patch

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

LGTM. Wondering about that sign, but I assume you&apos;ve tested it :)

&gt; Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:2013
&gt; +        webkitWebViewBaseSynthesizeWheelEvent(webViewBase, event, -velocityX, -velocityY, x, y, WheelEventPhase::NoPhase, WheelEventPhase::Began, true);

Is flipping the sign of velocityY here intentional?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1833757</commentid>
    <comment_count>14</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2022-01-25 10:05:05 -0800</bug_when>
    <thetext>&gt; but I assume you&apos;ve tested it :)

I had. The path that broke was tests, not touch scrolling - hence adjustments in the new patch.

&gt; Is flipping the sign of velocityY here intentional?

Yes, it was wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834001</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-26 00:12:01 -0800</bug_when>
    <thetext>Committed r288609 (246428@main): &lt;https://commits.webkit.org/246428@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 449804.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449789</attachid>
            <date>2022-01-24 01:40:04 -0800</date>
            <delta_ts>2022-01-24 04:30:30 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235436-20220124144100.patch</filename>
            <type>text/plain</type>
            <size>2479</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDliZmJjOTM5NWRjOWVjMTAy
MWZkYmNjYmI4MzFhY2FlYmQyZTNkNDQuLmE4ZjhjOWI2NWZlMWFlMjYyZjkxYzE2ZjhkZDBhNzY3
NjU4MmY1ZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDEtMjQgIEFsZXhhbmRl
ciBNaWtoYXlsZW5rbyAgPGFsZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBSRUdSRVNT
SU9OOiBUb3VjaCBzY3JvbGxpbmcgaXMgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdC
YXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlVG91Y2hTd2lwZSk6CisgICAgICAg
IEVtdWxhdGUgdG91Y2hwYWQgc2Nyb2xsIHN0b3AgZXZlbnRzIC0gc2V0IHRoZSBtYXRjaGluZyBw
aGFzZSBhbmQgZG9uJ3QgaW5jbHVkZQorICAgICAgICB2ZWxvY2l0eSwgYXMga2luZXRpYyBzY3Jv
bGxpbmcgY29kZSB3aWxsIGNhbGN1bGF0ZSBpdCBmcm9tIGhpc3RvcnkuCisgICAgICAgICh3ZWJr
aXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KToKKyAgICAgICAgQWx3YXlzIHVzZSBw
cmVjaXNlIGRlbHRhcywgYXMgdGhpcyBjb2RlcGF0aCBpcyBvbmx5IHVzZWQgZm9yIHRvdWNoIHNj
cm9sbGluZy4KKwogMjAyMi0wMS0yMSAgS2ltbW8gS2lubnVuZW4gIDxra2lubnVuZW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFN1cHBvcnQgaW4tcHJvY2VzcyB0ZXN0aW5nIG9mIElQQyBtZXNzYWdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXdCYXNlLmNwcAppbmRleCA1NTlhODliZmMwMjc5ZTE2YTdhN2IyMzIxZDBiODkzMWYyMjRkMzMy
Li40MWIwMGI0YTUyNjhlNjBjZjgwNjZkYjdkNjY5MTAwMWI2NTFiNjc3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcApA
QCAtMjAxMSw3ICsyMDExLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VUb3VjaFN3
aXBlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgZ2RvdWJsZQogICAgICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhl
c2l6ZVdoZWVsRXZlbnQod2ViVmlld0Jhc2UsIGV2ZW50LCAtdmVsb2NpdHlYIC8gU2Nyb2xsYmFy
OjpwaXhlbHNQZXJMaW5lU3RlcCgpLCB2ZWxvY2l0eVkgLyBTY3JvbGxiYXI6OnBpeGVsc1Blckxp
bmVTdGVwKCksIHgsIHksIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwgV2hlZWxFdmVudFBoYXNl
OjpCZWdhbik7CisgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQo
d2ViVmlld0Jhc2UsIGV2ZW50LCAwLCAwLCB4LCB5LCBXaGVlbEV2ZW50UGhhc2U6OkVuZGVkLCBX
aGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UpOwogICAgIH0KIH0KIApAQCAtMzAxNyw3ICszMDE3LDcg
QEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJWaWV3QmFzZSwgY29uc3QKICAgICAgICAgZGVsdGEuc2NhbGUoc3RhdGljX2Nh
c3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSkpOwogCiAgICAgcHJpdi0+
cGFnZVByb3h5LT5oYW5kbGVXaGVlbEV2ZW50KE5hdGl2ZVdlYldoZWVsRXZlbnQoY29uc3RfY2Fz
dDxHZGtFdmVudCo+KGV2ZW50KSwgeyB4LCB5IH0sIHdpZGdldFJvb3RDb29yZHMoR1RLX1dJREdF
VCh3ZWJWaWV3QmFzZSksIHgsIHkpLAotICAgICAgICBkZWx0YSwgd2hlZWxUaWNrcywgdG9XZWJL
aXRXaGVlbEV2ZW50UGhhc2UocGhhc2UpLCB0b1dlYktpdFdoZWVsRXZlbnRQaGFzZShtb21lbnR1
bVBoYXNlKSwgcHJpdi0+d2hlZWxIYXNQcmVjaXNlRGVsdGFzKSk7CisgICAgICAgIGRlbHRhLCB3
aGVlbFRpY2tzLCB0b1dlYktpdFdoZWVsRXZlbnRQaGFzZShwaGFzZSksIHRvV2ViS2l0V2hlZWxF
dmVudFBoYXNlKG1vbWVudHVtUGhhc2UpLCB0cnVlKSk7CiB9CiAKIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VTZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXMoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdC
YXNlLCBib29sIGhhc1ByZWNpc2VEZWx0YXMpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449799</attachid>
            <date>2022-01-24 04:30:37 -0800</date>
            <delta_ts>2022-01-24 05:55:46 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235436-20220124173132.patch</filename>
            <type>text/plain</type>
            <size>16038</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDliZmJjOTM5NWRjOWVjMTAy
MWZkYmNjYmI4MzFhY2FlYmQyZTNkNDQuLjAzMjVlMmZmNjFlMTc4YTU3YTViOWFhZjc3Y2ZhOTEw
NzY0M2UzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjItMDEtMjQgIEFsZXhhbmRl
ciBNaWtoYXlsZW5rbyAgPGFsZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBSRUdSRVNT
SU9OOiBUb3VjaCBzY3JvbGxpbmcgaXMgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgd2Via2l0V2ViVmlld0Jhc2VTZXRXaGVlbEhh
c1ByZWNpc2VEZWx0YXMoKSwgaW5zdGVhZCBhZGQgYSBwYXJhbWV0ZXIKKyAgICAgICAgdG8gd2Vi
a2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudCgpIHRoYXQgc3BlY2lmaWVzIHdoZXRo
ZXIgdGhlIGV2ZW50CisgICAgICAgIHNob3VsZCBoYXZlIHByZWNpc2UgZGVsdGFzIG9yIG5vdC4K
KworICAgICAgICBDb3JyZWN0IHRoZSB0b3VjaCBzd2lwZSB2ZWxvY2l0eSwgc2luY2UgaXQgd29u
J3QgZ2V0IG11bHRpcGxpZWQgYnkKKyAgICAgICAgcGl4ZWxzUGVyTGluZVN0ZXAoKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdCYXNlWm9vbUJlZ2luKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlVG91
Y2hEcmFnQmVnaW4pOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VUb3VjaERyYWdVcGRhdGUp
OgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VUb3VjaFN3aXBlKToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmll
d0Jhc2VTZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZVdoZWVsSW50
ZXJhY3Rpb24pOgorCiAyMDIyLTAxLTIxICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBpbi1wcm9jZXNzIHRlc3Rpbmcgb2YgSVBDIG1lc3Nh
Z2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCmluZGV4IGI4OTUzOGJhOGEyMWRhZDc5MDg4MDcyZWRmYTExZDJhYTFkZjIwNzcuLjUx
NTZmY2Y3MmYzN2I4OWU1M2MzZGM1OWMzMjljYjMxMWI2OWMyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC00NzQsNyAr
NDc0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0
b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
bmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpCiB7Ci0gICAgd2Via2l0V2ViVmlld0Jhc2VTeW50
aGVzaXplV2hlZWxFdmVudChXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCAwLCAw
LCAwLCAwLCBXaGVlbEV2ZW50UGhhc2U6OkJlZ2FuLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2Up
OworICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoV0VCS0lUX1dFQl9W
SUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgMCwgMCwgMCwgMCwgV2hlZWxFdmVudFBoYXNlOjpCZWdh
biwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCB0cnVlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcAppbmRleCA1NTlhODliZmMwMjc5ZTE2YTdhN2IyMzIxZDBiODkzMWYyMjRk
MzMyLi5lZjdiZTY1YzZmZTdjYzZjMzk0NmYzYjMyMmY5ZjU4NDM3MjhmN2Q3IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNw
cApAQCAtMjg0LDcgKzI4NCw2IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsK
ICAgICBUb3VjaEV2ZW50c01hcCB0b3VjaEV2ZW50czsKICAgICBJbnRTaXplIGNvbnRlbnRzU2l6
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vdGlvbkV2ZW50PiBsYXN0TW90aW9uRXZlbnQ7Ci0gICAg
Ym9vbCB3aGVlbEhhc1ByZWNpc2VEZWx0YXMgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNCbGFuazsK
ICAgICBib29sIHNob3VsZE5vdGlmeUZvY3VzRXZlbnRzIHsgdHJ1ZSB9OwogCkBAIC0xODQyLDcg
KzE4NDEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVpvb21CZWdpbihXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIEdka0V2ZW50UwogCiAgICAgYXV0byogZXZlbnQgPSBn
dGtfZ2VzdHVyZV9nZXRfbGFzdF9ldmVudChnZXN0dXJlLCBzZXF1ZW5jZSk7CiAKLSAgICB3ZWJr
aXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBldmVudCwgMCwg
MCwgeCwgeSwgV2hlZWxFdmVudFBoYXNlOjpCZWdhbiwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNl
KTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNl
LCBldmVudCwgMCwgMCwgeCwgeSwgV2hlZWxFdmVudFBoYXNlOjpCZWdhbiwgV2hlZWxFdmVudFBo
YXNlOjpOb1BoYXNlLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2Va
b29tQ2hhbmdlZChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGdkb3VibGUgc2NhbGUs
IEd0a0dlc3R1cmUqIGdlc3R1cmUpCkBAIC0xOTIyLDcgKzE5MjEsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZVRvdWNoRHJhZ0JlZ2luKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSwgZ2RvdQogICAgIGF1dG8qIHNlcXVlbmNlID0gZ3RrX2dlc3R1cmVfc2luZ2xlX2dldF9j
dXJyZW50X3NlcXVlbmNlKEdUS19HRVNUVVJFX1NJTkdMRShnZXN0dXJlKSk7CiAgICAgYXV0byog
ZXZlbnQgPSBndGtfZ2VzdHVyZV9nZXRfbGFzdF9ldmVudChnZXN0dXJlLCBzZXF1ZW5jZSk7CiAK
LSAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBl
dmVudCwgMCwgMCwgc3RhcnRYLCBzdGFydFksIFdoZWVsRXZlbnRQaGFzZTo6QmVnYW4sIFdoZWVs
RXZlbnRQaGFzZTo6Tm9QaGFzZSk7CisgICAgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hl
ZWxFdmVudCh3ZWJWaWV3QmFzZSwgZXZlbnQsIDAsIDAsIHN0YXJ0WCwgc3RhcnRZLCBXaGVlbEV2
ZW50UGhhc2U6OkJlZ2FuLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UsIHRydWUpOwogfQogCiBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVRvdWNoRHJhZ1VwZGF0ZShXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmlld0Jhc2UsIGRvdWJsZSBvZmZzZXRYLCBkb3VibGUgb2Zmc2V0WSwgR3RrR2Vz
dHVyZSogZ2VzdHVyZSkKQEAgLTE5NDksNyArMTk0OCw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdl
YlZpZXdCYXNlVG91Y2hEcmFnVXBkYXRlKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwg
ZG91CiAgICAgICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVNb3VzZUV2ZW50KHdl
YlZpZXdCYXNlLCBNb3VzZUV2ZW50VHlwZTo6TW90aW9uLCAwLCAwLCB4LCB5LCBtb2RpZmllcnMs
IDEsIG1vdXNlUG9pbnRlckV2ZW50VHlwZSgpKTsKICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdC
YXNlU3ludGhlc2l6ZU1vdXNlRXZlbnQod2ViVmlld0Jhc2UsIE1vdXNlRXZlbnRUeXBlOjpQcmVz
cywgR0RLX0JVVFRPTl9QUklNQVJZLCAwLCB4LCB5LCBtb2RpZmllcnMsIDAsIG1vdXNlUG9pbnRl
ckV2ZW50VHlwZSgpKTsKICAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICB3ZWJraXRXZWJWaWV3
QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBldmVudCwgMCwgMCwgeCwgeSwg
V2hlZWxFdmVudFBoYXNlOjpCZWdhbiwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlKTsKKyAgICAg
ICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQod2ViVmlld0Jhc2Us
IGV2ZW50LCAwLCAwLCB4LCB5LCBXaGVlbEV2ZW50UGhhc2U6OkJlZ2FuLCBXaGVlbEV2ZW50UGhh
c2U6Ok5vUGhhc2UsIHRydWUpOwogICAgIH0KIAogICAgIGlmIChwcml2LT5pc0xvbmdQcmVzc2Vk
KQpAQCAtMTk2OCw3ICsxOTY3LDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VUb3Vj
aERyYWdVcGRhdGUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBkb3UKICAgICAgICAg
ICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZVN5
bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBldmVudCwgLWRlbHRhWCwgLWRlbHRhWSwg
eCwgeSwgV2hlZWxFdmVudFBoYXNlOjpDaGFuZ2VkLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2Up
OworICAgICAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdC
YXNlLCBldmVudCwgLWRlbHRhWCwgLWRlbHRhWSwgeCwgeSwgV2hlZWxFdmVudFBoYXNlOjpDaGFu
Z2VkLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UsIHRydWUpOwogICAgIH0KIH0KIApAQCAtMjAx
MSw3ICsyMDEwLDcgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VUb3VjaFN3aXBlKFdl
YktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgZ2RvdWJsZQogICAgICAgICAgICAgICAgIHJl
dHVybjsKICAgICAgICAgfQogCi0gICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdo
ZWVsRXZlbnQod2ViVmlld0Jhc2UsIGV2ZW50LCAtdmVsb2NpdHlYIC8gU2Nyb2xsYmFyOjpwaXhl
bHNQZXJMaW5lU3RlcCgpLCB2ZWxvY2l0eVkgLyBTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVw
KCksIHgsIHksIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwgV2hlZWxFdmVudFBoYXNlOjpCZWdh
bik7CisgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQod2ViVmll
d0Jhc2UsIGV2ZW50LCAtdmVsb2NpdHlYLCAtdmVsb2NpdHlZLCB4LCB5LCBXaGVlbEV2ZW50UGhh
c2U6Ok5vUGhhc2UsIFdoZWVsRXZlbnRQaGFzZTo6QmVnYW4sIHRydWUpOwogICAgIH0KIH0KIApA
QCAtMzAwMCwxMiArMjk5OSwxMiBAQCBzdGF0aWMgaW5saW5lIFdlYldoZWVsRXZlbnQ6OlBoYXNl
IHRvV2ViS2l0V2hlZWxFdmVudFBoYXNlKFdoZWVsRXZlbnRQaGFzZSBwaGFzZQogICAgIFJFTEVB
U0VfQVNTRVJUX05PVF9SRUFDSEVEKCk7CiB9CiAKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50
aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGRvdWJsZSBk
ZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlIHBoYXNl
LCBXaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSkKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VT
eW50aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGRvdWJs
ZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlIHBo
YXNlLCBXaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlRGVsdGFz
KQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQod2ViVmlld0Jh
c2UsIG51bGxwdHIsIGRlbHRhWCwgZGVsdGFZLCB4LCB5LCBwaGFzZSwgbW9tZW50dW1QaGFzZSk7
CisgICAgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudCh3ZWJWaWV3QmFzZSwg
bnVsbHB0ciwgZGVsdGFYLCBkZWx0YVksIHgsIHksIHBoYXNlLCBtb21lbnR1bVBoYXNlLCBoYXNQ
cmVjaXNlRGVsdGFzKTsKIH0KIAotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVl
bEV2ZW50KFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSwgY29uc3QgR2RrRXZlbnQqIGV2
ZW50LCBkb3VibGUgZGVsdGFYLCBkb3VibGUgZGVsdGFZLCBpbnQgeCwgaW50IHksIFdoZWVsRXZl
bnRQaGFzZSBwaGFzZSwgV2hlZWxFdmVudFBoYXNlIG1vbWVudHVtUGhhc2UpCit2b2lkIHdlYmtp
dFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZp
ZXdCYXNlLCBjb25zdCBHZGtFdmVudCogZXZlbnQsIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0
YVksIGludCB4LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlIHBoYXNlLCBXaGVlbEV2ZW50UGhhc2Ug
bW9tZW50dW1QaGFzZSwgYm9vbCBoYXNQcmVjaXNlRGVsdGFzKQogewogICAgIFdlYktpdFdlYlZp
ZXdCYXNlUHJpdmF0ZSogcHJpdiA9IHdlYlZpZXdCYXNlLT5wcml2OwogICAgIGlmIChwcml2LT5k
aWFsb2cpCkBAIC0zMDEzLDE2ICszMDEyLDExIEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50
aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0CiAK
ICAgICBGbG9hdFNpemUgd2hlZWxUaWNrcyhkZWx0YVgsIGRlbHRhWSk7CiAgICAgRmxvYXRTaXpl
IGRlbHRhKHdoZWVsVGlja3MpOwotICAgIGlmICghcHJpdi0+d2hlZWxIYXNQcmVjaXNlRGVsdGFz
KQorICAgIGlmIChoYXNQcmVjaXNlRGVsdGFzKQogICAgICAgICBkZWx0YS5zY2FsZShzdGF0aWNf
Y2FzdDxmbG9hdD4oU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpKSk7CiAKICAgICBwcml2
LT5wYWdlUHJveHktPmhhbmRsZVdoZWVsRXZlbnQoTmF0aXZlV2ViV2hlZWxFdmVudChjb25zdF9j
YXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB7IHgsIHkgfSwgd2lkZ2V0Um9vdENvb3JkcyhHVEtfV0lE
R0VUKHdlYlZpZXdCYXNlKSwgeCwgeSksCi0gICAgICAgIGRlbHRhLCB3aGVlbFRpY2tzLCB0b1dl
YktpdFdoZWVsRXZlbnRQaGFzZShwaGFzZSksIHRvV2ViS2l0V2hlZWxFdmVudFBoYXNlKG1vbWVu
dHVtUGhhc2UpLCBwcml2LT53aGVlbEhhc1ByZWNpc2VEZWx0YXMpKTsKLX0KLQotdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZVNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyhXZWJLaXRXZWJWaWV3QmFzZSog
d2ViVmlld0Jhc2UsIGJvb2wgaGFzUHJlY2lzZURlbHRhcykKLXsKLSAgICB3ZWJWaWV3QmFzZS0+
cHJpdi0+d2hlZWxIYXNQcmVjaXNlRGVsdGFzID0gaGFzUHJlY2lzZURlbHRhczsKKyAgICAgICAg
ZGVsdGEsIHdoZWVsVGlja3MsIHRvV2ViS2l0V2hlZWxFdmVudFBoYXNlKHBoYXNlKSwgdG9XZWJL
aXRXaGVlbEV2ZW50UGhhc2UobW9tZW50dW1QaGFzZSksIHRydWUpKTsKIH0KIAogdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZU1ha2VCbGFuayhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGJv
b2wgbWFrZUJsYW5rKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3QmFzZUludGVybmFsLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaAppbmRleCAwNGRlODQwNGZlMWE0NThk
MTkzMDQ5YjY3MmUyNjM0YThjOTJlN2E4Li5hYTAzNDQxNjIxY2UxODU3Y2ZkNGYzZTk0MzI2MjE5
OGE0MTNjM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaApAQCAtNDQsNiArNDQsNSBAQCBlbnVt
IGNsYXNzIFNob3VsZFRyYW5zbGF0ZUtleWJvYXJkU3RhdGUgeyBObywgWWVzIH07CiBXS19FWFBP
UlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVLZXlFdmVudChXZWJLaXRXZWJWaWV3
QmFzZSosIEtleUV2ZW50VHlwZSwgdW5zaWduZWQga2V5VmFsLCB1bnNpZ25lZCBtb2RpZmllcnMs
IFNob3VsZFRyYW5zbGF0ZUtleWJvYXJkU3RhdGUpOwogCiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQ
aGFzZSB7IE5vUGhhc2UsIEJlZ2FuLCBDaGFuZ2VkLCBFbmRlZCwgQ2FuY2VsbGVkLCBNYXlCZWdp
biB9OwotV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSosIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4
LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlLCBXaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSk7
Ci1XS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldFdoZWVsSGFzUHJlY2lzZURlbHRh
cyhXZWJLaXRXZWJWaWV3QmFzZSosIGJvb2wpOworV0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSosIGRvdWJsZSBkZWx0
YVgsIGRvdWJsZSBkZWx0YVksIGludCB4LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlLCBXaGVlbEV2
ZW50UGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCmluZGV4
IDE4N2RmNWU5MjIxNzA5Nzc2NmE5NGFkMjFlYzYzMTI3M2E5NzY0ZmEuLjlhMWIzMGQ4YTBhNzhi
OTdhNThjNGI3YWIwZWM0MDVmOWRiM2MzODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaApAQCAtMTE0
LDcgKzExNCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRMb3NlUG9pbnRlckxvY2soV2Vi
S2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTZXRJbnB1dE1ldGhvZENv
bnRleHQoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJLaXRJbnB1dE1ldGhvZENvbnRleHQqKTsKIFdl
YktpdElucHV0TWV0aG9kQ29udGV4dCogd2Via2l0V2ViVmlld0Jhc2VHZXRJbnB1dE1ldGhvZENv
bnRleHQoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVz
aXplQ29tcG9zaXRpb25LZXlQcmVzcyhXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0IFN0cmluZyYg
dGV4dCwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+
PiYmLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RWRpdGluZ1JhbmdlPiYmKTsKLXZvaWQgd2Via2l0
V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0
IEdka0V2ZW50KiwgZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgaW50IHgsIGludCB5LCBX
aGVlbEV2ZW50UGhhc2UsIFdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlKTsKK3ZvaWQgd2Vi
a2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSosIGNv
bnN0IEdka0V2ZW50KiwgZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgaW50IHgsIGludCB5
LCBXaGVlbEV2ZW50UGhhc2UsIFdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhh
c1ByZWNpc2VEZWx0YXMpOwogCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlTWFrZUJsYW5rKFdlYktp
dFdlYlZpZXdCYXNlKiwgYm9vbCk7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlUGFnZUdyYWJiZWRU
b3VjaChXZWJLaXRXZWJWaWV3QmFzZSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsu
Y3BwCmluZGV4IDU2MTJkZDU3YzAwMTMxNjNiOTAyNGQ0ZjhhM2FmMDhiYjAxZGQ5YTYuLjEwYjg1
M2Q0MDFiOGQ0YjU5ZjQyNWQ2MWQ2ZjkzMTJmMzYzNjczOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3RrL1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0
aW9uU2Vzc2lvbkd0ay5jcHAKQEAgLTMzNSw3ICszMzUsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25T
ZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlV2hlZWxJbnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBh
Z2UsCiAgICAgYXV0byogdmlld1dpZGdldCA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViS2l0V2ViVmll
d0Jhc2UqPihwYWdlLnZpZXdXaWRnZXQoKSk7CiAgICAgRmxvYXRTaXplIHNjcm9sbERlbHRhKGRl
bHRhKTsKICAgICBzY3JvbGxEZWx0YS5zY2FsZSgxIC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFNjcm9s
bGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSkpOwotICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhl
c2l6ZVdoZWVsRXZlbnQodmlld1dpZGdldCwgLXNjcm9sbERlbHRhLndpZHRoKCksIC1zY3JvbGxE
ZWx0YS5oZWlnaHQoKSwgbG9jYXRpb25JblZpZXdwb3J0LngoKSwgbG9jYXRpb25JblZpZXdwb3J0
LnkoKSwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2Up
OworICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQodmlld1dpZGdldCwg
LXNjcm9sbERlbHRhLndpZHRoKCksIC1zY3JvbGxEZWx0YS5oZWlnaHQoKSwgbG9jYXRpb25JblZp
ZXdwb3J0LngoKSwgbG9jYXRpb25JblZpZXdwb3J0LnkoKSwgV2hlZWxFdmVudFBoYXNlOjpOb1Bo
YXNlLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UsIGZhbHNlKTsKIH0KICNlbmRpZiAvLyBFTkFC
TEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9OUykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDllNmE3OGNjZmFhNDRiMDg2OWRkOTNlMTA4
ZTBjOTYwOTUwMDNjMjUuLjhlODA3ZmNhZWIwNWM0ZTIyZTI5ZDAwZDIxNzJmNzNhMTgxZDgxYjAg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMSBAQAorMjAyMi0wMS0yNCAgQWxleGFuZGVyIE1pa2hheWxlbmtvICA8YWxleG1AZ25v
bWUub3JnPgorCisgICAgICAgIFtHVEtdIFJFR1JFU1NJT046IFRvdWNoIHNjcm9sbGluZyBpcyBi
cm9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
NTQzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0
b3AgdXNpbmcgd2Via2l0V2ViVmlld0Jhc2VTZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXMoKSwgaW5z
dGVhZCBwYXNzIHRoZSBjb3JyZWN0IHBhcmFtZXRlciBpbnRvCisgICAgICAgIHdlYmtpdFdlYlZp
ZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoKS4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvRXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL0V2
ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp+
RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNl
U2Nyb2xsQnkpOgorICAgICAgICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91
c2VTY3JvbGxCeSk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xs
QnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVy
UHJveHk6OnNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyk6CisKIDIwMjItMDEtMjAgIExhdXJvIE1v
dXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQVBJIHRlc3QgL3dlYmtp
dC9XZWJLaXRXZWJzaXRlRGF0YS9jYWNoZSBpcyBmbGFreQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0V2ZW50U2VuZGVyUHJveHkuaAppbmRleCBkMzRhODZkNDI2YjYzYTNkNTUyZDAyYmViZTdmNDJk
ZmIxZjZjMDViLi5hZGI5YzNkMjM5MjM3N2NmODg1ZDgzNDViYmE5MTVhNmM1ZmMxNDQxIDEwMDY0
NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaApAQCAtMTUyLDYgKzE1Miw5
IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaW50IG1fZXZlbnROdW1iZXIg
eyAwIH07CiAjZW5kaWYKKyNpZiBQTEFURk9STShHVEspCisgICAgYm9vbCBtX2hhc1ByZWNpc2VE
ZWx0YXMgeyBmYWxzZSB9OworI2VuZGlmCiAjaWYgUExBVEZPUk0oV1BFKQogICAgIHVpbnQzMl90
IG1fYnV0dG9uU3RhdGUgeyAwIH07CiAgICAgVmVjdG9yPHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hf
ZXZlbnRfcmF3PiBtX3RvdWNoRXZlbnRzOwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1
bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAppbmRleCAyNjgzZWU4ZjgyMjdhMWY3MDVjNGNl
MjQ1NjEwZmE5YTc3OWYyNGRhLi4wMWNmNDNmMTQ2ZDI1YTYxZjhmMmY5NWExN2NkYzVkNDZjODhi
OGU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclBy
b3h5R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclBy
b3h5R3RrLmNwcApAQCAtNzcsNyArNzcsNiBAQCBzdGF0aWMgaW5saW5lIFdlYktpdFdlYlZpZXdC
YXNlKiB0b1dlYktpdEdMaWJBUEkoUGxhdGZvcm1XS1ZpZXcgdmlldykKIAogRXZlbnRTZW5kZXJQ
cm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hl
ZWxIYXNQcmVjaXNlRGVsdGFzKHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWlu
V2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIGZhbHNlKTsKIH0KIAogc3RhdGljIHVuc2lnbmVk
IGV2ZW50U2VuZGVyQnV0dG9uVG9HREtCdXR0b24odW5zaWduZWQgYnV0dG9uKQpAQCAtMjk4LDcg
KzI5Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bW91c2VTY3JvbGxCeShpbnQgaG9yaXpv
bnRhbCwgaW50IHZlcnRpY2FsKQogICAgICAgICByZXR1cm47CiAKICAgICB3ZWJraXRXZWJWaWV3
QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVy
LT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksCi0gICAgICAgIGhvcml6b250YWwsIHZl
cnRpY2FsLCBtX3Bvc2l0aW9uLngsIG1fcG9zaXRpb24ueSwgV2hlZWxFdmVudFBoYXNlOjpOb1Bo
YXNlLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UpOworICAgICAgICBob3Jpem9udGFsLCB2ZXJ0
aWNhbCwgbV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFz
ZSwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCBtX2hhc1ByZWNpc2VEZWx0YXMpOwogfQogCiB2
b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVvdXNNb3VzZVNjcm9sbEJ5KGludCBob3Jpem9u
dGFsLCBpbnQgdmVydGljYWwsIGJvb2wgcGFnZWQpCkBAIC0zMTAsNyArMzA5LDcgQEAgdm9pZCBF
dmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeShpbnQgaG9yaXpvbnRhbCwg
aW50IHZlcnRpY2FsLCBib28KICAgICB9CiAKICAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNp
emVXaGVlbEV2ZW50KHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmll
dygpLT5wbGF0Zm9ybVZpZXcoKSksCi0gICAgICAgIGhvcml6b250YWwgLyBwaXhlbHNQZXJTY3Jv
bGxUaWNrLCB2ZXJ0aWNhbCAvIHBpeGVsc1BlclNjcm9sbFRpY2ssIG1fcG9zaXRpb24ueCwgbV9w
b3NpdGlvbi55LCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UsIFdoZWVsRXZlbnRQaGFzZTo6Tm9Q
aGFzZSk7CisgICAgICAgIGhvcml6b250YWwgLyBwaXhlbHNQZXJTY3JvbGxUaWNrLCB2ZXJ0aWNh
bCAvIHBpeGVsc1BlclNjcm9sbFRpY2ssIG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCBXaGVl
bEV2ZW50UGhhc2U6Ok5vUGhhc2UsIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwgbV9oYXNQcmVj
aXNlRGVsdGFzKTsKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0
aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IGhvcml6b250YWwsIGludCB2ZXJ0aWNhbCwgaW50
IHBoYXNlLCBpbnQgbW9tZW50dW0pCkBAIC0zNTQsMTIgKzM1MywxMiBAQCB2b2lkIEV2ZW50U2Vu
ZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgaG9y
aXpvbnRhbCwgaQogICAgIH0KIAogICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVs
RXZlbnQodG9XZWJLaXRHTGliQVBJKG1fdGVzdENvbnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBs
YXRmb3JtVmlldygpKSwKLSAgICAgICAgaG9yaXpvbnRhbCwgdmVydGljYWwsIG1fcG9zaXRpb24u
eCwgbV9wb3NpdGlvbi55LCBldmVudFBoYXNlLCBldmVudE1vbWVudHVtUGhhc2UpOworICAgICAg
ICBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgbV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9uLnksIGV2ZW50
UGhhc2UsIGV2ZW50TW9tZW50dW1QaGFzZSwgbV9oYXNQcmVjaXNlRGVsdGFzKTsKIH0KIAogdm9p
ZCBFdmVudFNlbmRlclByb3h5OjpzZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXMoYm9vbCBoYXNQcmVj
aXNlRGVsdGFzKQogewotICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hlZWxIYXNQcmVjaXNlRGVs
dGFzKHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0
Zm9ybVZpZXcoKSksIGhhc1ByZWNpc2VEZWx0YXMpOworICAgIG1faGFzUHJlY2lzZURlbHRhcyA9
IGhhc1ByZWNpc2VEZWx0YXM7CiB9CiAKIHZvaWQgRXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndh
cmQoaW50IG1pbGxpc2Vjb25kcykK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449804</attachid>
            <date>2022-01-24 05:55:54 -0800</date>
            <delta_ts>2022-01-26 00:12:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-235436-20220124185649.patch</filename>
            <type>text/plain</type>
            <size>17148</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4MzU0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDliZmJjOTM5NWRjOWVjMTAy
MWZkYmNjYmI4MzFhY2FlYmQyZTNkNDQuLjAzMjVlMmZmNjFlMTc4YTU3YTViOWFhZjc3Y2ZhOTEw
NzY0M2UzNTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjItMDEtMjQgIEFsZXhhbmRl
ciBNaWtoYXlsZW5rbyAgPGFsZXhtQGdub21lLm9yZz4KKworICAgICAgICBbR1RLXSBSRUdSRVNT
SU9OOiBUb3VjaCBzY3JvbGxpbmcgaXMgYnJva2VuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzU0MzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgd2Via2l0V2ViVmlld0Jhc2VTZXRXaGVlbEhh
c1ByZWNpc2VEZWx0YXMoKSwgaW5zdGVhZCBhZGQgYSBwYXJhbWV0ZXIKKyAgICAgICAgdG8gd2Vi
a2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudCgpIHRoYXQgc3BlY2lmaWVzIHdoZXRo
ZXIgdGhlIGV2ZW50CisgICAgICAgIHNob3VsZCBoYXZlIHByZWNpc2UgZGVsdGFzIG9yIG5vdC4K
KworICAgICAgICBDb3JyZWN0IHRoZSB0b3VjaCBzd2lwZSB2ZWxvY2l0eSwgc2luY2UgaXQgd29u
J3QgZ2V0IG11bHRpcGxpZWQgYnkKKyAgICAgICAgcGl4ZWxzUGVyTGluZVN0ZXAoKS4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6UGFnZUNsaWVudEltcGw6Om5hdmlnYXRpb25HZXN0dXJlRGlkQmVnaW4pOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdl
YmtpdFdlYlZpZXdCYXNlWm9vbUJlZ2luKToKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlVG91
Y2hEcmFnQmVnaW4pOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VUb3VjaERyYWdVcGRhdGUp
OgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VUb3VjaFN3aXBlKToKKyAgICAgICAgKHdlYmtp
dFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQpOgorICAgICAgICAod2Via2l0V2ViVmll
d0Jhc2VTZXRXaGVlbEhhc1ByZWNpc2VEZWx0YXMpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cGxhdGZvcm1TaW11bGF0ZVdoZWVsSW50
ZXJhY3Rpb24pOgorCiAyMDIyLTAxLTIxICBLaW1tbyBLaW5udW5lbiAgPGtraW5udW5lbkBhcHBs
ZS5jb20+CiAKICAgICAgICAgU3VwcG9ydCBpbi1wcm9jZXNzIHRlc3Rpbmcgb2YgSVBDIG1lc3Nh
Z2VzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1BhZ2VDbGll
bnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudElt
cGwuY3BwCmluZGV4IGI4OTUzOGJhOGEyMWRhZDc5MDg4MDcyZWRmYTExZDJhYTFkZjIwNzcuLjUx
NTZmY2Y3MmYzN2I4OWU1M2MzZGM1OWMzMjljYjMxMWI2OWMyNmYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvUGFnZUNsaWVudEltcGwuY3BwCkBAIC00NzQsNyAr
NDc0LDcgQEAgdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGlkRmluaXNoTG9hZGluZ0RhdGFGb3JDdXN0
b21Db250ZW50UHJvdmlkZXIoY29uc3QgU3RyaW5nJiwKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6
bmF2aWdhdGlvbkdlc3R1cmVEaWRCZWdpbigpCiB7Ci0gICAgd2Via2l0V2ViVmlld0Jhc2VTeW50
aGVzaXplV2hlZWxFdmVudChXRUJLSVRfV0VCX1ZJRVdfQkFTRShtX3ZpZXdXaWRnZXQpLCAwLCAw
LCAwLCAwLCBXaGVlbEV2ZW50UGhhc2U6OkJlZ2FuLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2Up
OworICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoV0VCS0lUX1dFQl9W
SUVXX0JBU0UobV92aWV3V2lkZ2V0KSwgMCwgMCwgMCwgMCwgV2hlZWxFdmVudFBoYXNlOjpCZWdh
biwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCB0cnVlKTsKIH0KIAogdm9pZCBQYWdlQ2xpZW50
SW1wbDo6bmF2aWdhdGlvbkdlc3R1cmVXaWxsRW5kKGJvb2wsIFdlYkJhY2tGb3J3YXJkTGlzdEl0
ZW0mKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdCYXNlLmNwcAppbmRleCA1NTlhODliZmMwMjc5ZTE2YTdhN2IyMzIxZDBiODkzMWYyMjRk
MzMyLi5iMjUxYzYyZGFiMjNjMDViODQ1M2Y0N2U5MTY1MzdlMmEwNDFlODMxIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNw
cApAQCAtMjg0LDcgKzI4NCw2IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlIHsK
ICAgICBUb3VjaEV2ZW50c01hcCB0b3VjaEV2ZW50czsKICAgICBJbnRTaXplIGNvbnRlbnRzU2l6
ZTsKICAgICBzdGQ6Om9wdGlvbmFsPE1vdGlvbkV2ZW50PiBsYXN0TW90aW9uRXZlbnQ7Ci0gICAg
Ym9vbCB3aGVlbEhhc1ByZWNpc2VEZWx0YXMgeyBmYWxzZSB9OwogICAgIGJvb2wgaXNCbGFuazsK
ICAgICBib29sIHNob3VsZE5vdGlmeUZvY3VzRXZlbnRzIHsgdHJ1ZSB9OwogCkBAIC0xODQyLDcg
KzE4NDEsNyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVpvb21CZWdpbihXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIEdka0V2ZW50UwogCiAgICAgYXV0byogZXZlbnQgPSBn
dGtfZ2VzdHVyZV9nZXRfbGFzdF9ldmVudChnZXN0dXJlLCBzZXF1ZW5jZSk7CiAKLSAgICB3ZWJr
aXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBldmVudCwgMCwg
MCwgeCwgeSwgV2hlZWxFdmVudFBoYXNlOjpCZWdhbiwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNl
KTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNl
LCBldmVudCwgMCwgMCwgeCwgeSwgV2hlZWxFdmVudFBoYXNlOjpCZWdhbiwgV2hlZWxFdmVudFBo
YXNlOjpOb1BoYXNlLCB0cnVlKTsKIH0KIAogc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld0Jhc2Va
b29tQ2hhbmdlZChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGdkb3VibGUgc2NhbGUs
IEd0a0dlc3R1cmUqIGdlc3R1cmUpCkBAIC0xOTIyLDcgKzE5MjEsNyBAQCBzdGF0aWMgdm9pZCB3
ZWJraXRXZWJWaWV3QmFzZVRvdWNoRHJhZ0JlZ2luKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3
QmFzZSwgZ2RvdQogICAgIGF1dG8qIHNlcXVlbmNlID0gZ3RrX2dlc3R1cmVfc2luZ2xlX2dldF9j
dXJyZW50X3NlcXVlbmNlKEdUS19HRVNUVVJFX1NJTkdMRShnZXN0dXJlKSk7CiAgICAgYXV0byog
ZXZlbnQgPSBndGtfZ2VzdHVyZV9nZXRfbGFzdF9ldmVudChnZXN0dXJlLCBzZXF1ZW5jZSk7CiAK
LSAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBl
dmVudCwgMCwgMCwgc3RhcnRYLCBzdGFydFksIFdoZWVsRXZlbnRQaGFzZTo6QmVnYW4sIFdoZWVs
RXZlbnRQaGFzZTo6Tm9QaGFzZSk7CisgICAgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hl
ZWxFdmVudCh3ZWJWaWV3QmFzZSwgZXZlbnQsIDAsIDAsIHN0YXJ0WCwgc3RhcnRZLCBXaGVlbEV2
ZW50UGhhc2U6OkJlZ2FuLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UsIHRydWUpOwogfQogCiBz
dGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVRvdWNoRHJhZ1VwZGF0ZShXZWJLaXRXZWJWaWV3
QmFzZSogd2ViVmlld0Jhc2UsIGRvdWJsZSBvZmZzZXRYLCBkb3VibGUgb2Zmc2V0WSwgR3RrR2Vz
dHVyZSogZ2VzdHVyZSkKQEAgLTE5NDksMjYgKzE5NDgsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VUb3VjaERyYWdVcGRhdGUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNl
LCBkb3UKICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZU1vdXNlRXZlbnQo
d2ViVmlld0Jhc2UsIE1vdXNlRXZlbnRUeXBlOjpNb3Rpb24sIDAsIDAsIHgsIHksIG1vZGlmaWVy
cywgMSwgbW91c2VQb2ludGVyRXZlbnRUeXBlKCkpOwogICAgICAgICAgICAgd2Via2l0V2ViVmll
d0Jhc2VTeW50aGVzaXplTW91c2VFdmVudCh3ZWJWaWV3QmFzZSwgTW91c2VFdmVudFR5cGU6OlBy
ZXNzLCBHREtfQlVUVE9OX1BSSU1BUlksIDAsIHgsIHksIG1vZGlmaWVycywgMCwgbW91c2VQb2lu
dGVyRXZlbnRUeXBlKCkpOwogICAgICAgICB9IGVsc2UKLSAgICAgICAgICAgIHdlYmtpdFdlYlZp
ZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQod2ViVmlld0Jhc2UsIGV2ZW50LCAwLCAwLCB4LCB5
LCBXaGVlbEV2ZW50UGhhc2U6OkJlZ2FuLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UpOworICAg
ICAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudCh3ZWJWaWV3QmFz
ZSwgZXZlbnQsIDAsIDAsIHgsIHksIFdoZWVsRXZlbnRQaGFzZTo6QmVnYW4sIFdoZWVsRXZlbnRQ
aGFzZTo6Tm9QaGFzZSwgdHJ1ZSk7CiAgICAgfQogCiAgICAgaWYgKHByaXYtPmlzTG9uZ1ByZXNz
ZWQpCiAgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZU1vdXNlRXZlbnQod2ViVmll
d0Jhc2UsIE1vdXNlRXZlbnRUeXBlOjpNb3Rpb24sIEdES19CVVRUT05fUFJJTUFSWSwgR0RLX0JV
VFRPTjFfTUFTSywgeCArIG9mZnNldFgsIHkgKyBvZmZzZXRZLCBtb2RpZmllcnMsIDAsIG1vdXNl
UG9pbnRlckV2ZW50VHlwZSgpKTsKICAgICBlbHNlIHsKLSAgICAgICAgZG91YmxlIGRlbHRhWCA9
IChwcml2LT5kcmFnT2Zmc2V0LngoKSAtIG9mZnNldFgpIC8gU2Nyb2xsYmFyOjpwaXhlbHNQZXJM
aW5lU3RlcCgpOwotICAgICAgICBkb3VibGUgZGVsdGFZID0gKHByaXYtPmRyYWdPZmZzZXQueSgp
IC0gb2Zmc2V0WSkgLyBTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCk7CisgICAgICAgIGRv
dWJsZSBkZWx0YVggPSBwcml2LT5kcmFnT2Zmc2V0LngoKSAtIG9mZnNldFg7CisgICAgICAgIGRv
dWJsZSBkZWx0YVkgPSBwcml2LT5kcmFnT2Zmc2V0LnkoKSAtIG9mZnNldFk7CiAgICAgICAgIHBy
aXYtPmRyYWdPZmZzZXQuc2V0KG9mZnNldFgsIG9mZnNldFkpOwogCiAgICAgICAgIFZpZXdHZXN0
dXJlQ29udHJvbGxlciogY29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVD
b250cm9sbGVyKHdlYlZpZXdCYXNlKTsKICAgICAgICAgaWYgKGNvbnRyb2xsZXIgJiYgY29udHJv
bGxlci0+aXNTd2lwZUdlc3R1cmVFbmFibGVkKCkpIHsKLSAgICAgICAgICAgIEZsb2F0U2l6ZSBk
ZWx0YShkZWx0YVgsIGRlbHRhWSk7CisgICAgICAgICAgICBGbG9hdFNpemUgZGVsdGEoZGVsdGFY
IC8gU2Nyb2xsYmFyOjpwaXhlbHNQZXJMaW5lU3RlcCgpLCBkZWx0YVkgLyBTY3JvbGxiYXI6OnBp
eGVsc1BlckxpbmVTdGVwKCkpOwogICAgICAgICAgICAgaW50MzJfdCBldmVudFRpbWUgPSBzdGF0
aWNfY2FzdDxpbnQzMl90PihndGtfZXZlbnRfY29udHJvbGxlcl9nZXRfY3VycmVudF9ldmVudF90
aW1lKEdUS19FVkVOVF9DT05UUk9MTEVSKGdlc3R1cmUpKSk7CiAgICAgICAgICAgICBQbGF0Zm9y
bUd0a1Njcm9sbERhdGEgc2Nyb2xsRGF0YSA9IHsgLmRlbHRhID0gZGVsdGEsIC5ldmVudFRpbWUg
PSBldmVudFRpbWUsIC5zb3VyY2UgPSBHREtfU09VUkNFX1RPVUNIU0NSRUVOLCAuaXNFbmQgPSBm
YWxzZSB9OwogICAgICAgICAgICAgaWYgKGNvbnRyb2xsZXItPmhhbmRsZVNjcm9sbFdoZWVsRXZl
bnQoJnNjcm9sbERhdGEpKQogICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0g
ICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQod2ViVmlld0Jhc2Us
IGV2ZW50LCAtZGVsdGFYLCAtZGVsdGFZLCB4LCB5LCBXaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQs
IFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSk7CisgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3lu
dGhlc2l6ZVdoZWVsRXZlbnQod2ViVmlld0Jhc2UsIGV2ZW50LCAtZGVsdGFYLCAtZGVsdGFZLCB4
LCB5LCBXaGVlbEV2ZW50UGhhc2U6OkNoYW5nZWQsIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwg
dHJ1ZSk7CiAgICAgfQogfQogCkBAIC0yMDExLDcgKzIwMTAsNyBAQCBzdGF0aWMgdm9pZCB3ZWJr
aXRXZWJWaWV3QmFzZVRvdWNoU3dpcGUoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBn
ZG91YmxlCiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgd2Vi
a2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudCh3ZWJWaWV3QmFzZSwgZXZlbnQsIC12
ZWxvY2l0eVggLyBTY3JvbGxiYXI6OnBpeGVsc1BlckxpbmVTdGVwKCksIHZlbG9jaXR5WSAvIFNj
cm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSwgeCwgeSwgV2hlZWxFdmVudFBoYXNlOjpOb1Bo
YXNlLCBXaGVlbEV2ZW50UGhhc2U6OkJlZ2FuKTsKKyAgICAgICAgd2Via2l0V2ViVmlld0Jhc2VT
eW50aGVzaXplV2hlZWxFdmVudCh3ZWJWaWV3QmFzZSwgZXZlbnQsIC12ZWxvY2l0eVgsIC12ZWxv
Y2l0eVksIHgsIHksIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwgV2hlZWxFdmVudFBoYXNlOjpC
ZWdhbiwgdHJ1ZSk7CiAgICAgfQogfQogCkBAIC0zMDAwLDEyICsyOTk5LDEyIEBAIHN0YXRpYyBp
bmxpbmUgV2ViV2hlZWxFdmVudDo6UGhhc2UgdG9XZWJLaXRXaGVlbEV2ZW50UGhhc2UoV2hlZWxF
dmVudFBoYXNlIHBoYXNlCiAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNIRUQoKTsKIH0KIAot
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJWaWV3QmFzZSwgZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgaW50IHgsIGlu
dCB5LCBXaGVlbEV2ZW50UGhhc2UgcGhhc2UsIFdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNl
KQordm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KFdlYktpdFdlYlZp
ZXdCYXNlKiB3ZWJWaWV3QmFzZSwgZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgaW50IHgs
IGludCB5LCBXaGVlbEV2ZW50UGhhc2UgcGhhc2UsIFdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBo
YXNlLCBib29sIGhhc1ByZWNpc2VEZWx0YXMpCiB7Ci0gICAgd2Via2l0V2ViVmlld0Jhc2VTeW50
aGVzaXplV2hlZWxFdmVudCh3ZWJWaWV3QmFzZSwgbnVsbHB0ciwgZGVsdGFYLCBkZWx0YVksIHgs
IHksIHBoYXNlLCBtb21lbnR1bVBoYXNlKTsKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNp
emVXaGVlbEV2ZW50KHdlYlZpZXdCYXNlLCBudWxscHRyLCBkZWx0YVgsIGRlbHRhWSwgeCwgeSwg
cGhhc2UsIG1vbWVudHVtUGhhc2UsIGhhc1ByZWNpc2VEZWx0YXMpOwogfQogCi12b2lkIHdlYmtp
dFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZp
ZXdCYXNlLCBjb25zdCBHZGtFdmVudCogZXZlbnQsIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0
YVksIGludCB4LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlIHBoYXNlLCBXaGVlbEV2ZW50UGhhc2Ug
bW9tZW50dW1QaGFzZSkKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGNvbnN0IEdka0V2ZW50KiBldmVudCwg
ZG91YmxlIGRlbHRhWCwgZG91YmxlIGRlbHRhWSwgaW50IHgsIGludCB5LCBXaGVlbEV2ZW50UGhh
c2UgcGhhc2UsIFdoZWVsRXZlbnRQaGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VE
ZWx0YXMpCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0gd2ViVmlld0Jh
c2UtPnByaXY7CiAgICAgaWYgKHByaXYtPmRpYWxvZykKQEAgLTMwMTMsMTYgKzMwMTIsMTEgQEAg
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KFdlYktpdFdlYlZpZXdC
YXNlKiB3ZWJWaWV3QmFzZSwgY29uc3QKIAogICAgIEZsb2F0U2l6ZSB3aGVlbFRpY2tzKGRlbHRh
WCwgZGVsdGFZKTsKICAgICBGbG9hdFNpemUgZGVsdGEod2hlZWxUaWNrcyk7Ci0gICAgaWYgKCFw
cml2LT53aGVlbEhhc1ByZWNpc2VEZWx0YXMpCisgICAgaWYgKCFoYXNQcmVjaXNlRGVsdGFzKQog
ICAgICAgICBkZWx0YS5zY2FsZShzdGF0aWNfY2FzdDxmbG9hdD4oU2Nyb2xsYmFyOjpwaXhlbHNQ
ZXJMaW5lU3RlcCgpKSk7CiAKICAgICBwcml2LT5wYWdlUHJveHktPmhhbmRsZVdoZWVsRXZlbnQo
TmF0aXZlV2ViV2hlZWxFdmVudChjb25zdF9jYXN0PEdka0V2ZW50Kj4oZXZlbnQpLCB7IHgsIHkg
fSwgd2lkZ2V0Um9vdENvb3JkcyhHVEtfV0lER0VUKHdlYlZpZXdCYXNlKSwgeCwgeSksCi0gICAg
ICAgIGRlbHRhLCB3aGVlbFRpY2tzLCB0b1dlYktpdFdoZWVsRXZlbnRQaGFzZShwaGFzZSksIHRv
V2ViS2l0V2hlZWxFdmVudFBoYXNlKG1vbWVudHVtUGhhc2UpLCBwcml2LT53aGVlbEhhc1ByZWNp
c2VEZWx0YXMpKTsKLX0KLQotdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVNldFdoZWVsSGFzUHJlY2lz
ZURlbHRhcyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGJvb2wgaGFzUHJlY2lzZURl
bHRhcykKLXsKLSAgICB3ZWJWaWV3QmFzZS0+cHJpdi0+d2hlZWxIYXNQcmVjaXNlRGVsdGFzID0g
aGFzUHJlY2lzZURlbHRhczsKKyAgICAgICAgZGVsdGEsIHdoZWVsVGlja3MsIHRvV2ViS2l0V2hl
ZWxFdmVudFBoYXNlKHBoYXNlKSwgdG9XZWJLaXRXaGVlbEV2ZW50UGhhc2UobW9tZW50dW1QaGFz
ZSksIHRydWUpKTsKIH0KIAogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZU1ha2VCbGFuayhXZWJLaXRX
ZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UsIGJvb2wgbWFrZUJsYW5rKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZUludGVybmFsLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJu
YWwuaAppbmRleCAwNGRlODQwNGZlMWE0NThkMTkzMDQ5YjY3MmUyNjM0YThjOTJlN2E4Li5hYTAz
NDQxNjIxY2UxODU3Y2ZkNGYzZTk0MzI2MjE5OGE0MTNjM2RiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJuYWwuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlSW50ZXJu
YWwuaApAQCAtNDQsNiArNDQsNSBAQCBlbnVtIGNsYXNzIFNob3VsZFRyYW5zbGF0ZUtleWJvYXJk
U3RhdGUgeyBObywgWWVzIH07CiBXS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3QmFzZVN5bnRo
ZXNpemVLZXlFdmVudChXZWJLaXRXZWJWaWV3QmFzZSosIEtleUV2ZW50VHlwZSwgdW5zaWduZWQg
a2V5VmFsLCB1bnNpZ25lZCBtb2RpZmllcnMsIFNob3VsZFRyYW5zbGF0ZUtleWJvYXJkU3RhdGUp
OwogCiBlbnVtIGNsYXNzIFdoZWVsRXZlbnRQaGFzZSB7IE5vUGhhc2UsIEJlZ2FuLCBDaGFuZ2Vk
LCBFbmRlZCwgQ2FuY2VsbGVkLCBNYXlCZWdpbiB9OwotV0tfRVhQT1JUIHZvaWQgd2Via2l0V2Vi
Vmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudChXZWJLaXRXZWJWaWV3QmFzZSosIGRvdWJsZSBk
ZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4LCBpbnQgeSwgV2hlZWxFdmVudFBoYXNlLCBXaGVl
bEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSk7Ci1XS19FWFBPUlQgdm9pZCB3ZWJraXRXZWJWaWV3
QmFzZVNldFdoZWVsSGFzUHJlY2lzZURlbHRhcyhXZWJLaXRXZWJWaWV3QmFzZSosIGJvb2wpOwor
V0tfRVhQT1JUIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVudChXZWJL
aXRXZWJWaWV3QmFzZSosIGRvdWJsZSBkZWx0YVgsIGRvdWJsZSBkZWx0YVksIGludCB4LCBpbnQg
eSwgV2hlZWxFdmVudFBoYXNlLCBXaGVlbEV2ZW50UGhhc2UgbW9tZW50dW1QaGFzZSwgYm9vbCk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlld0Jhc2VQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdCYXNlUHJpdmF0ZS5oCmluZGV4IDE4N2RmNWU5MjIxNzA5Nzc2NmE5NGFkMjFlYzYz
MTI3M2E5NzY0ZmEuLjlhMWIzMGQ4YTBhNzhiOTdhNThjNGI3YWIwZWM0MDVmOWRiM2MzODEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jh
c2VQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUuaApAQCAtMTE0LDcgKzExNCw3IEBAIHZvaWQgd2Via2l0V2ViVmll
d0Jhc2VEaWRMb3NlUG9pbnRlckxvY2soV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0
V2ViVmlld0Jhc2VTZXRJbnB1dE1ldGhvZENvbnRleHQoV2ViS2l0V2ViVmlld0Jhc2UqLCBXZWJL
aXRJbnB1dE1ldGhvZENvbnRleHQqKTsKIFdlYktpdElucHV0TWV0aG9kQ29udGV4dCogd2Via2l0
V2ViVmlld0Jhc2VHZXRJbnB1dE1ldGhvZENvbnRleHQoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZv
aWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplQ29tcG9zaXRpb25LZXlQcmVzcyhXZWJLaXRX
ZWJWaWV3QmFzZSosIGNvbnN0IFN0cmluZyYgdGV4dCwgc3RkOjpvcHRpb25hbDxWZWN0b3I8V2Vi
Q29yZTo6Q29tcG9zaXRpb25VbmRlcmxpbmU+PiYmLCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RWRp
dGluZ1JhbmdlPiYmKTsKLXZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxFdmVu
dChXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0IEdka0V2ZW50KiwgZG91YmxlIGRlbHRhWCwgZG91
YmxlIGRlbHRhWSwgaW50IHgsIGludCB5LCBXaGVlbEV2ZW50UGhhc2UsIFdoZWVsRXZlbnRQaGFz
ZSBtb21lbnR1bVBoYXNlKTsKK3ZvaWQgd2Via2l0V2ViVmlld0Jhc2VTeW50aGVzaXplV2hlZWxF
dmVudChXZWJLaXRXZWJWaWV3QmFzZSosIGNvbnN0IEdka0V2ZW50KiwgZG91YmxlIGRlbHRhWCwg
ZG91YmxlIGRlbHRhWSwgaW50IHgsIGludCB5LCBXaGVlbEV2ZW50UGhhc2UsIFdoZWVsRXZlbnRQ
aGFzZSBtb21lbnR1bVBoYXNlLCBib29sIGhhc1ByZWNpc2VEZWx0YXMpOwogCiB2b2lkIHdlYmtp
dFdlYlZpZXdCYXNlTWFrZUJsYW5rKFdlYktpdFdlYlZpZXdCYXNlKiwgYm9vbCk7CiB2b2lkIHdl
YmtpdFdlYlZpZXdCYXNlUGFnZUdyYWJiZWRUb3VjaChXZWJLaXRXZWJWaWV3QmFzZSopOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9ndGsvV2ViQXV0b21h
dGlvblNlc3Npb25HdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9n
dGsvV2ViQXV0b21hdGlvblNlc3Npb25HdGsuY3BwCmluZGV4IDU2MTJkZDU3YzAwMTMxNjNiOTAy
NGQ0ZjhhM2FmMDhiYjAxZGQ5YTYuLjEwYjg1M2Q0MDFiOGQ0YjU5ZjQyNWQ2MWQ2ZjkzMTJmMzYz
NjczOWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vZ3Rr
L1dlYkF1dG9tYXRpb25TZXNzaW9uR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BdXRvbWF0aW9uL2d0ay9XZWJBdXRvbWF0aW9uU2Vzc2lvbkd0ay5jcHAKQEAgLTMzNSw3ICsz
MzUsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpwbGF0Zm9ybVNpbXVsYXRlV2hlZWxJ
bnRlcmFjdGlvbihXZWJQYWdlUHJveHkmIHBhZ2UsCiAgICAgYXV0byogdmlld1dpZGdldCA9IHJl
aW50ZXJwcmV0X2Nhc3Q8V2ViS2l0V2ViVmlld0Jhc2UqPihwYWdlLnZpZXdXaWRnZXQoKSk7CiAg
ICAgRmxvYXRTaXplIHNjcm9sbERlbHRhKGRlbHRhKTsKICAgICBzY3JvbGxEZWx0YS5zY2FsZSgx
IC8gc3RhdGljX2Nhc3Q8ZmxvYXQ+KFNjcm9sbGJhcjo6cGl4ZWxzUGVyTGluZVN0ZXAoKSkpOwot
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQodmlld1dpZGdldCwgLXNj
cm9sbERlbHRhLndpZHRoKCksIC1zY3JvbGxEZWx0YS5oZWlnaHQoKSwgbG9jYXRpb25JblZpZXdw
b3J0LngoKSwgbG9jYXRpb25JblZpZXdwb3J0LnkoKSwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNl
LCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UpOworICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhl
c2l6ZVdoZWVsRXZlbnQodmlld1dpZGdldCwgLXNjcm9sbERlbHRhLndpZHRoKCksIC1zY3JvbGxE
ZWx0YS5oZWlnaHQoKSwgbG9jYXRpb25JblZpZXdwb3J0LngoKSwgbG9jYXRpb25JblZpZXdwb3J0
LnkoKSwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2Us
IGZhbHNlKTsKIH0KICNlbmRpZiAvLyBFTkFCTEUoV0VCRFJJVkVSX1dIRUVMX0lOVEVSQUNUSU9O
UykKIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IDllNmE3OGNjZmFhNDRiMDg2OWRkOTNlMTA4ZTBjOTYwOTUwMDNjMjUuLjhlODA3ZmNhZWIwNWM0
ZTIyZTI5ZDAwZDIxNzJmNzNhMTgxZDgxYjAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMSBAQAorMjAyMi0wMS0yNCAgQWxleGFu
ZGVyIE1pa2hheWxlbmtvICA8YWxleG1AZ25vbWUub3JnPgorCisgICAgICAgIFtHVEtdIFJFR1JF
U1NJT046IFRvdWNoIHNjcm9sbGluZyBpcyBicm9rZW4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNTQzNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIFN0b3AgdXNpbmcgd2Via2l0V2ViVmlld0Jhc2VTZXRX
aGVlbEhhc1ByZWNpc2VEZWx0YXMoKSwgaW5zdGVhZCBwYXNzIHRoZSBjb3JyZWN0IHBhcmFtZXRl
ciBpbnRvCisgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQoKS4K
KworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvRXZlbnRTZW5kZXJQcm94eS5oOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL0V2ZW50U2VuZGVyUHJveHlHdGsuY3BwOgorICAgICAg
ICAoV1RSOjpFdmVudFNlbmRlclByb3h5Ojp+RXZlbnRTZW5kZXJQcm94eSk6CisgICAgICAgIChX
VFI6OkV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnkpOgorICAgICAgICAoV1RSOjpFdmVu
dFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91c2VTY3JvbGxCeSk6CisgICAgICAgIChXVFI6OkV2
ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hlZWxBbmRNb21lbnR1bVBoYXNlcyk6
CisgICAgICAgIChXVFI6OkV2ZW50U2VuZGVyUHJveHk6OnNldFdoZWVsSGFzUHJlY2lzZURlbHRh
cyk6CisKIDIwMjItMDEtMjAgIExhdXJvIE1vdXJhICA8bG1vdXJhQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW0dUS10gQVBJIHRlc3QgL3dlYmtpdC9XZWJLaXRXZWJzaXRlRGF0YS9jYWNoZSBpcyBm
bGFreQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9FdmVudFNlbmRlclByb3h5
LmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2VuZGVyUHJveHkuaAppbmRleCBkMzRh
ODZkNDI2YjYzYTNkNTUyZDAyYmViZTdmNDJkZmIxZjZjMDViLi5hZGI5YzNkMjM5MjM3N2NmODg1
ZDgzNDViYmE5MTVhNmM1ZmMxNDQxIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L0V2ZW50U2VuZGVyUHJveHkuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0V2ZW50U2Vu
ZGVyUHJveHkuaApAQCAtMTUyLDYgKzE1Miw5IEBAIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgaW50IG1fZXZlbnROdW1iZXIgeyAwIH07CiAjZW5kaWYKKyNpZiBQTEFURk9STShH
VEspCisgICAgYm9vbCBtX2hhc1ByZWNpc2VEZWx0YXMgeyBmYWxzZSB9OworI2VuZGlmCiAjaWYg
UExBVEZPUk0oV1BFKQogICAgIHVpbnQzMl90IG1fYnV0dG9uU3RhdGUgeyAwIH07CiAgICAgVmVj
dG9yPHN0cnVjdCB3cGVfaW5wdXRfdG91Y2hfZXZlbnRfcmF3PiBtX3RvdWNoRXZlbnRzOwpkaWZm
IC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5j
cHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcApp
bmRleCAyNjgzZWU4ZjgyMjdhMWY3MDVjNGNlMjQ1NjEwZmE5YTc3OWYyNGRhLi4wMWNmNDNmMTQ2
ZDI1YTYxZjhmMmY5NWExN2NkYzVkNDZjODhiOGU2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcApAQCAtNzcsNyArNzcsNiBAQCBz
dGF0aWMgaW5saW5lIFdlYktpdFdlYlZpZXdCYXNlKiB0b1dlYktpdEdMaWJBUEkoUGxhdGZvcm1X
S1ZpZXcgdmlldykKIAogRXZlbnRTZW5kZXJQcm94eTo6fkV2ZW50U2VuZGVyUHJveHkoKQogewot
ICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0V2hlZWxIYXNQcmVjaXNlRGVsdGFzKHRvV2ViS2l0R0xp
YkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIGZh
bHNlKTsKIH0KIAogc3RhdGljIHVuc2lnbmVkIGV2ZW50U2VuZGVyQnV0dG9uVG9HREtCdXR0b24o
dW5zaWduZWQgYnV0dG9uKQpAQCAtMjk4LDcgKzI5Nyw3IEBAIHZvaWQgRXZlbnRTZW5kZXJQcm94
eTo6bW91c2VTY3JvbGxCeShpbnQgaG9yaXpvbnRhbCwgaW50IHZlcnRpY2FsKQogICAgICAgICBy
ZXR1cm47CiAKICAgICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHRvV2Vi
S2l0R0xpYkFQSShtX3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXco
KSksCi0gICAgICAgIGhvcml6b250YWwsIHZlcnRpY2FsLCBtX3Bvc2l0aW9uLngsIG1fcG9zaXRp
b24ueSwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2Up
OworICAgICAgICBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgbV9wb3NpdGlvbi54LCBtX3Bvc2l0aW9u
LnksIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSwgV2hlZWxFdmVudFBoYXNlOjpOb1BoYXNlLCBt
X2hhc1ByZWNpc2VEZWx0YXMpOwogfQogCiB2b2lkIEV2ZW50U2VuZGVyUHJveHk6OmNvbnRpbnVv
dXNNb3VzZVNjcm9sbEJ5KGludCBob3Jpem9udGFsLCBpbnQgdmVydGljYWwsIGJvb2wgcGFnZWQp
CkBAIC0zMTAsNyArMzA5LDcgQEAgdm9pZCBFdmVudFNlbmRlclByb3h5Ojpjb250aW51b3VzTW91
c2VTY3JvbGxCeShpbnQgaG9yaXpvbnRhbCwgaW50IHZlcnRpY2FsLCBib28KICAgICB9CiAKICAg
ICB3ZWJraXRXZWJWaWV3QmFzZVN5bnRoZXNpemVXaGVlbEV2ZW50KHRvV2ViS2l0R0xpYkFQSSht
X3Rlc3RDb250cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksCi0gICAgICAg
IGhvcml6b250YWwgLyBwaXhlbHNQZXJTY3JvbGxUaWNrLCB2ZXJ0aWNhbCAvIHBpeGVsc1BlclNj
cm9sbFRpY2ssIG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCBXaGVlbEV2ZW50UGhhc2U6Ok5v
UGhhc2UsIFdoZWVsRXZlbnRQaGFzZTo6Tm9QaGFzZSk7CisgICAgICAgIGhvcml6b250YWwgLyBw
aXhlbHNQZXJTY3JvbGxUaWNrLCB2ZXJ0aWNhbCAvIHBpeGVsc1BlclNjcm9sbFRpY2ssIG1fcG9z
aXRpb24ueCwgbV9wb3NpdGlvbi55LCBXaGVlbEV2ZW50UGhhc2U6Ok5vUGhhc2UsIFdoZWVsRXZl
bnRQaGFzZTo6Tm9QaGFzZSwgbV9oYXNQcmVjaXNlRGVsdGFzKTsKIH0KIAogdm9pZCBFdmVudFNl
bmRlclByb3h5Ojptb3VzZVNjcm9sbEJ5V2l0aFdoZWVsQW5kTW9tZW50dW1QaGFzZXMoaW50IGhv
cml6b250YWwsIGludCB2ZXJ0aWNhbCwgaW50IHBoYXNlLCBpbnQgbW9tZW50dW0pCkBAIC0zNTQs
MTIgKzM1MywxMiBAQCB2b2lkIEV2ZW50U2VuZGVyUHJveHk6Om1vdXNlU2Nyb2xsQnlXaXRoV2hl
ZWxBbmRNb21lbnR1bVBoYXNlcyhpbnQgaG9yaXpvbnRhbCwgaQogICAgIH0KIAogICAgIHdlYmtp
dFdlYlZpZXdCYXNlU3ludGhlc2l6ZVdoZWVsRXZlbnQodG9XZWJLaXRHTGliQVBJKG1fdGVzdENv
bnRyb2xsZXItPm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpKSwKLSAgICAgICAgaG9yaXpv
bnRhbCwgdmVydGljYWwsIG1fcG9zaXRpb24ueCwgbV9wb3NpdGlvbi55LCBldmVudFBoYXNlLCBl
dmVudE1vbWVudHVtUGhhc2UpOworICAgICAgICBob3Jpem9udGFsLCB2ZXJ0aWNhbCwgbV9wb3Np
dGlvbi54LCBtX3Bvc2l0aW9uLnksIGV2ZW50UGhhc2UsIGV2ZW50TW9tZW50dW1QaGFzZSwgbV9o
YXNQcmVjaXNlRGVsdGFzKTsKIH0KIAogdm9pZCBFdmVudFNlbmRlclByb3h5OjpzZXRXaGVlbEhh
c1ByZWNpc2VEZWx0YXMoYm9vbCBoYXNQcmVjaXNlRGVsdGFzKQogewotICAgIHdlYmtpdFdlYlZp
ZXdCYXNlU2V0V2hlZWxIYXNQcmVjaXNlRGVsdGFzKHRvV2ViS2l0R0xpYkFQSShtX3Rlc3RDb250
cm9sbGVyLT5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKSksIGhhc1ByZWNpc2VEZWx0YXMp
OworICAgIG1faGFzUHJlY2lzZURlbHRhcyA9IGhhc1ByZWNpc2VEZWx0YXM7CiB9CiAKIHZvaWQg
RXZlbnRTZW5kZXJQcm94eTo6bGVhcEZvcndhcmQoaW50IG1pbGxpc2Vjb25kcykK
</data>

          </attachment>
      

    </bug>

</bugzilla>