<?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>210463</bug_id>
          
          <creation_ts>2020-04-13 16:00:21 -0700</creation_ts>
          <short_desc>[GTK4] Provide an alternative to gtk_widget_{get,is}_toplevel()</short_desc>
          <delta_ts>2020-04-15 07:25:18 -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>WebKitGTK</component>
          <version>WebKit Local 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>
          
          <blocked>210100</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adrian Perez">aperez</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1641154</commentid>
    <comment_count>0</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-13 16:00:21 -0700</bug_when>
    <thetext>Functions gtk_widget_{get,is}_toplevel() are not available in GTK4.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641162</commentid>
    <comment_count>1</comment_count>
      <attachid>396354</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-13 16:14:45 -0700</bug_when>
    <thetext>Created attachment 396354
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641163</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-04-13 16:15:18 -0700</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 http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641250</commentid>
    <comment_count>3</comment_count>
      <attachid>396354</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-13 22:13:36 -0700</bug_when>
    <thetext>Comment on attachment 396354
Patch

We used to have GtkVersioning when we supported gtk2 and 3 where we added the functions not available in one or the other. So, for example, now we would add gtk_widget_get_toplevel and gtk_widget_is_top_level only when building with GTK4 to leave most of the code free of ifdefs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641335</commentid>
    <comment_count>4</comment_count>
      <attachid>396406</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-14 05:57:38 -0700</bug_when>
    <thetext>Created attachment 396406
Patch v2</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641336</commentid>
    <comment_count>5</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-14 05:59:22 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; Comment on attachment 396354 [details]
&gt; Patch
&gt; 
&gt; We used to have GtkVersioning when we supported gtk2 and 3 where we added
&gt; the functions not available in one or the other. So, for example, now we
&gt; would add gtk_widget_get_toplevel and gtk_widget_is_top_level only when
&gt; building with GTK4 to leave most of the code free of ifdefs.

Adding a “GtkVersioning.h” header which provides an implementation for
these functions when building against GTK4 made the patch much simpler,
thanks for the idea!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641754</commentid>
    <comment_count>6</comment_count>
      <attachid>396406</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-15 06:00:10 -0700</bug_when>
    <thetext>Comment on attachment 396406
Patch v2

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

&gt; Source/WebCore/ChangeLog:23
&gt; +2020-04-13  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;

Double changelog.

&gt; Source/WebCore/platform/gtk/GtkUtilities.cpp:50
&gt; +

why?

&gt; Source/WebCore/platform/gtk/GtkVersioning.h:25
&gt; +#if GTK_CHECK_VERSION(3, 90, 0)

why not USE(GTK4)? it&apos;s clearer.

&gt; Source/WebCore/platform/gtk/GtkVersioning.h:43
&gt; +gtk_window_get_position(GtkWindow*, int* x, int *y)

int* y

&gt; Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp:202
&gt; +            // There is no GtkWidget.configure-event in GTK4, move is not supported.

GtkWidget::configure-event</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641757</commentid>
    <comment_count>7</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-15 06:10:42 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #6)
&gt; Comment on attachment 396406 [details]
&gt; Patch v2
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396406&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:23
&gt; &gt; +2020-04-13  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;
&gt; 
&gt; Double changelog.

Ouch 🤦️

&gt; &gt; Source/WebCore/platform/gtk/GtkUtilities.cpp:50
&gt; &gt; +
&gt; 
&gt; why?

This slipped in, I think at some point I tried to move some code
around here and didn&apos;t undo the change completely. I&apos;ll remove it.

&gt; &gt; Source/WebCore/platform/gtk/GtkVersioning.h:25
&gt; &gt; +#if GTK_CHECK_VERSION(3, 90, 0)
&gt; 
&gt; why not USE(GTK4)? it&apos;s clearer.

Putting USE(), PLATFORM(), or ENABLE() macros in headers will make
the style checker complain; but we can rely on GTK_CHECK_VERSION
everywhere. If it&apos;s okay to ignore the style checker complain I can
put USE(GTK4) back here.
&gt; &gt; Source/WebCore/platform/gtk/GtkVersioning.h:43
&gt; &gt; +gtk_window_get_position(GtkWindow*, int* x, int *y)
&gt; 
&gt; int* y

👌️

&gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp:202
&gt; &gt; +            // There is no GtkWidget.configure-event in GTK4, move is not supported.
&gt; 
&gt; GtkWidget::configure-event

👌️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641763</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-15 06:38:12 -0700</bug_when>
    <thetext>(In reply to Adrian Perez from comment #7)
&gt; (In reply to Carlos Garcia Campos from comment #6)
&gt; &gt; Comment on attachment 396406 [details]
&gt; &gt; Patch v2
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=396406&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:23
&gt; &gt; &gt; +2020-04-13  Adrian Perez de Castro  &lt;aperez@igalia.com&gt;
&gt; &gt; 
&gt; &gt; Double changelog.
&gt; 
&gt; Ouch 🤦️
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/gtk/GtkUtilities.cpp:50
&gt; &gt; &gt; +
&gt; &gt; 
&gt; &gt; why?
&gt; 
&gt; This slipped in, I think at some point I tried to move some code
&gt; around here and didn&apos;t undo the change completely. I&apos;ll remove it.
&gt; 
&gt; &gt; &gt; Source/WebCore/platform/gtk/GtkVersioning.h:25
&gt; &gt; &gt; +#if GTK_CHECK_VERSION(3, 90, 0)
&gt; &gt; 
&gt; &gt; why not USE(GTK4)? it&apos;s clearer.
&gt; 
&gt; Putting USE(), PLATFORM(), or ENABLE() macros in headers will make
&gt; the style checker complain; but we can rely on GTK_CHECK_VERSION
&gt; everywhere. If it&apos;s okay to ignore the style checker complain I can
&gt; put USE(GTK4) back here.

Why? we use those macros in headers a lot. What&apos;s the exactly error message you get?

&gt; &gt; &gt; Source/WebCore/platform/gtk/GtkVersioning.h:43
&gt; &gt; &gt; +gtk_window_get_position(GtkWindow*, int* x, int *y)
&gt; &gt; 
&gt; &gt; int* y
&gt; 
&gt; 👌️
&gt; 
&gt; &gt; &gt; Source/WebKit/UIProcess/API/glib/WebKitUIClient.cpp:202
&gt; &gt; &gt; +            // There is no GtkWidget.configure-event in GTK4, move is not supported.
&gt; &gt; 
&gt; &gt; GtkWidget::configure-event
&gt; 
&gt; 👌️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641764</commentid>
    <comment_count>9</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-15 06:41:36 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #8)
&gt; (In reply to Adrian Perez from comment #7)
&gt; &gt; (In reply to Carlos Garcia Campos from comment #6)
&gt; &gt;
&gt; &gt; &gt; […]
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/platform/gtk/GtkVersioning.h:25
&gt; &gt; &gt; &gt; +#if GTK_CHECK_VERSION(3, 90, 0)
&gt; &gt; &gt; 
&gt; &gt; &gt; why not USE(GTK4)? it&apos;s clearer.
&gt; &gt; 
&gt; &gt; Putting USE(), PLATFORM(), or ENABLE() macros in headers will make
&gt; &gt; the style checker complain; but we can rely on GTK_CHECK_VERSION
&gt; &gt; everywhere. If it&apos;s okay to ignore the style checker complain I can
&gt; &gt; put USE(GTK4) back here.
&gt; 
&gt; Why? we use those macros in headers a lot. What&apos;s the exactly error message
&gt; you get?

You are right, I re-checked today with USE(GTK4) and only with this
patch on top of “trunk” and the style checker did not complain. It
seems that I mixed it up in my head with some other warning I saw
yesterday.

Let&apos;s USE(GTK4) and land the patch, then =)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641765</commentid>
    <comment_count>10</comment_count>
      <attachid>396525</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-15 06:42:26 -0700</bug_when>
    <thetext>Created attachment 396525
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641766</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-15 06:43:08 -0700</bug_when>
    <thetext>ChangeLog entry in Source/WebKit/ChangeLog contains OOPS!.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641767</commentid>
    <comment_count>12</comment_count>
      <attachid>396526</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2020-04-15 06:44:45 -0700</bug_when>
    <thetext>Created attachment 396526
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641783</commentid>
    <comment_count>13</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-04-15 07:25:18 -0700</bug_when>
    <thetext>Committed r260125: &lt;https://trac.webkit.org/changeset/260125&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 396526.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396354</attachid>
            <date>2020-04-13 16:14:45 -0700</date>
            <delta_ts>2020-04-14 05:57:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210463-20200414021443.patch</filename>
            <type>text/plain</type>
            <size>20157</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDE3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYThmNTgzNTMzMzJlZGZj
NmIyYzFlZWNiNWNlZGNlNzYwMjA4NTM5ZS4uNDQ1MThkNTc5YWJkODZiZTk5NWY0YjA3ZGViMjhk
MjA4MDljNThlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI2IEBACisyMDIwLTA0LTEzICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IFByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdXRp
bGl0eSBmdW5jdGlvbnMgdG8gd29yayB3aXRoICJ0b3BsZXZlbCIgd2lkZ2V0cyB3aGljaCB3b3Jr
IG9uIEdUSzMgYW5kIEdUSzQuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
Z3RrSXNUb3BsZXZlbFdpZGdldCk6IEFkZGVkLiBVc2VzIGd0a193aWRnZXRfaXNfdG9wbGV2ZWwo
KSBvbiBHVEszLCBhbmQgY2hlY2tzCisgICAgICAgIHdoZXRoZXIgdGhlIHdpZGdldCBpcyBhIEd0
a1dpbmRvdyBvbiBHVEs0LCBhcyB0aG9zZSBhcmUgdGhlIG9ubHkgd2lkZ2V0cyB3aGljaCBpbXBs
ZW1lbnQKKyAgICAgICAgR3RrUm9vdCBhbmQgY2FuIGJlIHNob3duIG9uIHNjcmVlbi4KKyAgICAg
ICAgKFdlYkNvcmU6Omd0a0dldFRvcGxldmVsV2lkZ2V0KTogQWRkZWQuIFVzZXMgZ3RrX3dpZGdl
dF9nZXRfdG9wbGV2ZWwoKSBvbiBHVEszLCBhbmQKKyAgICAgICAgZ3RrX3dpZGdldF9nZXRfcm9v
dCgpIG9uIEdUSzQuCisgICAgICAgIChXZWJDb3JlOjpjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVl
blBvaW50KTogVXNlIGd0a3tHZXQsSXN9VG9wbGV2ZWxXaWRnZXQoKSwgYW5kIGFjY291bnQKKyAg
ICAgICAgZm9yIHRoZSBmYWN0IHRoYXQgdW5kZXIgR1RLNCBpdCBpcyBub3QgcG9zc2libGUgdG8g
b2J0YWluIHRoZSBwb3NpdGlvbiBvZiBhIHdpbmRvdy4KKyAgICAgICAgKFdlYkNvcmU6OndpZGdl
dElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0
aWxpdGllcy5oOiBBZGQgcHJvdG90eXBlcyBmb3IgdGhlIG5ldyBndGt7SXMsR2V0fVRvcGxldmVs
V2lkZ2V0KCkKKyAgICAgICAgZnVuY3Rpb25zLgorCiAyMDIwLTA0LTEzICBBZHJpYW4gUGVyZXog
ZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEFkYXB0IHRv
IGN1cnNvciBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YjY2MTVmNWZhYzgzZjgyZjQ0NWM5NzIz
OTZmZDhhYmVjMGQ4OWE3Li5iYmY0N2M4NzQxYWJmZmIxZmY0MmE5NTRiOThmNDdmZjQxYTRhYWZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM3IEBACisyMDIwLTA0LTEzICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRdIFByb3ZpZGUgYW4g
YWx0ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgpCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHVzZSBvZiB0aGUgV2Vi
Q29yZTo6Z3Rre0lzLEdldH1Ub3BsZXZlbFdpZGdldCgpIHV0aWxpdHkgZnVuY3Rpb25zLgorCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcDogTWFrZSB1c2Ug
b2YgV2ViQ29yZTo6Z3Rre0lzLEdldH1Ub3BsZXZlbFdpZGdldCgpLgorICAgICAgICBBbHNvIGFj
Y291bnQgZm9yIHRoZSBmYWN0IHRoYXQgR1RLNCBkb2VzIG5vdCBoYXZlIHRoZSBHdGtXaWRnZXQu
Y29uZmlndXJlLWV2ZW50IHNpZ25hbCwKKyAgICAgICAgYW5kIHRoYXQgaXQgaXMgbm90IHBvc3Np
YmxlIHRvIGdldCB3aW5kb3cgcG9zaXRpb25zLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdFByaW50T3BlcmF0aW9uLmNwcDoKKyAgICAgICAgKHdlYmtpdFByaW50T3BlcmF0aW9u
UnVuRGlhbG9nRm9yRnJhbWUpOiBNYWtlIHVzZSBvZiBXZWJDb3JlOjpndGt7SXMsR2V0fVRvcGxl
dmVsV2lkZ2V0KCkuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jh
c2UuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VIaWVyYXJjaHlDaGFuZ2VkKTogRGl0
dG8uCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUVudGVyRnVsbFNjcmVlbik6IERpdHRvLgor
ICAgICAgICAod2Via2l0V2ViVmlld0Jhc2VFeGl0RnVsbFNjcmVlbik6IERpdHRvLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwOgorICAgICAgICAod2Vi
a2l0V2ViVmlld1J1bkZpbGVDaG9vc2VyKTogRGl0dG8uCisgICAgICAgICh3ZWJraXRXZWJWaWV3
TWF4aW1pemVXaW5kb3cpOiBEaXR0by4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdNaW5pbWl6ZVdp
bmRvdyk6IERpdHRvLgorICAgICAgICAod2Via2l0V2ViVmlld1Jlc3RvcmVXaW5kb3cpOiBEaXR0
by4KKyAgICAgICAgKiBVSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JQcm94eUd0
ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybUJyaW5n
VG9Gcm9udCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxh
dGZvcm1Jc0Zyb250KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybVNhdmUpOiBEaXR0by4KKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1dlYkNvbG9y
UGlja2VyR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29sb3JQaWNrZXJHdGs6OnNob3dD
b2xvclBpY2tlcik6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9ndGsvV2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duR3RrLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRGF0YUxpc3RT
dWdnZXN0aW9uc0Ryb3Bkb3duR3RrOjpzaG93KTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L2d0ay9XZWJQb3B1cE1lbnVQcm94eUd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBvcHVw
TWVudVByb3h5R3RrOjpzaG93UG9wdXBNZW51KTogRGl0dG8uCisKIDIwMjAtMDQtMTMgIFBlciBB
cm5lIFZvbGxhbiAgPHB2b2xsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtpT1NdIEFkZCBtZXNz
YWdlIGZpbHRlcmluZyB0byBhbGwgaW9raXQgb3BlbiBydWxlcwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA4ODFlM2VmOWRiNTgwOGVkMWI1NTVj
NGE2MGUzMjQxNjhhYjIzYjQ5Li5lZTg2YTZkNjAzMzI4OTFiMDE0NjRmMTIxNzljMDI3NDcwOTli
MjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVz
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcApA
QCAtMjUsMzIgKzI1LDYyIEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorYm9vbCBndGtJc1Rv
cGxldmVsV2lkZ2V0KEd0a1dpZGdldCogd2lkZ2V0KQoreworI2lmIFVTRShHVEs0KQorICAgIC8v
IEluIHRoZW9yeSBhbnl0aGluZyB3aGljaCBpbXBsZW1lbnRzIEd0a1Jvb3QgY2FuIGJlIGEgdG9w
bGV2ZWwgd2lkZ2V0LAorICAgIC8vIGluIHByYWN0aWNlLCBvbmx5IHRoZSBvbmVzIHdoaWNoIGFy
ZSBHdGtXaW5kb3cgb3IgZGVyaXZlZCBuZWVkIHRvIGJlCisgICAgLy8gY29uc2lkZXJlZCBoZXJl
LgorICAgIHJldHVybiBHVEtfSVNfV0lORE9XKHdpZGdldCk7CisjZWxzZQorICAgIHJldHVybiBn
dGtfd2lkZ2V0X2lzX3RvcGxldmVsKHdpZGdldCk7CisjZW5kaWYgLy8gVVNFKEdUSzQpCit9CisK
K0d0a1dpZGdldCogZ3RrR2V0VG9wbGV2ZWxXaWRnZXQoR3RrV2lkZ2V0KiB3aWRnZXQpCit7Cisj
aWYgVVNFKEdUSzQpCisgICAgcmV0dXJuIEdUS19XSURHRVQoZ3RrX3dpZGdldF9nZXRfcm9vdCh3
aWRnZXQpKTsKKyNlbHNlCisgICAgcmV0dXJuIGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKHdpZGdl
dCk7CisjZW5kaWYgLy8gVVNFKEdUSzQpCit9CisKIEludFBvaW50IGNvbnZlcnRXaWRnZXRQb2lu
dFRvU2NyZWVuUG9pbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFBvaW50JiBwb2ludCkK
IHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhY3R1YWxseSBhIHZlcnkgdHJpY2t5IG9wZXJhdGlv
biBhbmQgdGhlIHJlc3VsdHMgb2YgdGhpcyBmdW5jdGlvbiBzaG91bGQKICAgICAvLyBvbmx5IGJl
IHRob3VnaHQgb2YgYXMgYSBndWVzcy4gRm9yIGluc3RhbmNlLCBzb21ldGltZXMgaXQgbWF5IG5v
dCBjb3JyZWN0bHkgdGFrZSBpbnRvCiAgICAgLy8gYWNjb3VudCB3aW5kb3cgZGVjb3JhdGlvbnMu
CiAKLSAgICBHdGtXaWRnZXQqIHRvcGxldmVsV2lkZ2V0ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwod2lkZ2V0KTsKLSAgICBpZiAoIXRvcGxldmVsV2lkZ2V0IHx8ICFndGtfd2lkZ2V0X2lzX3Rv
cGxldmVsKHRvcGxldmVsV2lkZ2V0KSB8fCAhR1RLX0lTX1dJTkRPVyh0b3BsZXZlbFdpZGdldCkp
CisgICAgR3RrV2lkZ2V0KiB0b3BsZXZlbFdpZGdldCA9IGd0a0dldFRvcGxldmVsV2lkZ2V0KHdp
ZGdldCk7CisKKyAgICBpZiAoIXRvcGxldmVsV2lkZ2V0IHx8ICFndGtJc1RvcGxldmVsV2lkZ2V0
KHRvcGxldmVsV2lkZ2V0KSB8fCAhR1RLX0lTX1dJTkRPVyh0b3BsZXZlbFdpZGdldCkpCiAgICAg
ICAgIHJldHVybiBwb2ludDsKIAorICAgIGludCB3aW5kb3dPcmlnaW5YID0gMCwgd2luZG93T3Jp
Z2luWSA9IDA7CisjaWYgIVVTRShHVEs0KQogICAgIEdka1dpbmRvdyogZ2RrV2luZG93ID0gZ3Rr
X3dpZGdldF9nZXRfd2luZG93KHRvcGxldmVsV2lkZ2V0KTsKICAgICBpZiAoIWdka1dpbmRvdykK
ICAgICAgICAgcmV0dXJuIHBvaW50OworICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtXaW5k
b3csICZ3aW5kb3dPcmlnaW5YLCAmd2luZG93T3JpZ2luWSk7CisjZW5kaWYgLy8gIVVTRShHVEs0
KQogCiAgICAgaW50IHhJbldpbmRvdywgeUluV2luZG93OwogICAgIGd0a193aWRnZXRfdHJhbnNs
YXRlX2Nvb3JkaW5hdGVzKHdpZGdldCwgdG9wbGV2ZWxXaWRnZXQsIHBvaW50LngoKSwgcG9pbnQu
eSgpLCAmeEluV2luZG93LCAmeUluV2luZG93KTsKIAotICAgIGludCB3aW5kb3dPcmlnaW5YLCB3
aW5kb3dPcmlnaW5ZOwotICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtXaW5kb3csICZ3aW5k
b3dPcmlnaW5YLCAmd2luZG93T3JpZ2luWSk7Ci0KICAgICByZXR1cm4gSW50UG9pbnQod2luZG93
T3JpZ2luWCArIHhJbldpbmRvdywgd2luZG93T3JpZ2luWSArIHlJbldpbmRvdyk7CiB9CiAKIGJv
b2wgd2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KEd0a1dpZGdldCogd2lkZ2V0KQogewot
ICAgIHJldHVybiB3aWRnZXQgJiYgZ3RrX3dpZGdldF9pc190b3BsZXZlbCh3aWRnZXQpICYmIEdU
S19JU19XSU5ET1cod2lkZ2V0KSAmJiAhR1RLX0lTX09GRlNDUkVFTl9XSU5ET1cod2lkZ2V0KTsK
KyAgICBjb25zdCBib29sIGlzVG9wbGV2ZWxXaWRnZXQgPSB3aWRnZXQgJiYgZ3RrSXNUb3BsZXZl
bFdpZGdldCh3aWRnZXQpOworCisjaWYgVVNFKEdUSzQpCisgICAgLy8gQSB0b3BsZXZlbCB3aWRn
ZXQgaW4gR1RLNCBpcyBhbHdheXMgYSB3aW5kb3csIHRoZXJlIGlzIG5vIG5lZWQgZm9yIGZ1cnRo
ZXIgY2hlY2tzLgorICAgIHJldHVybiBpc1RvcGxldmVsV2lkZ2V0OworI2Vsc2UKKyAgICByZXR1
cm4gaXNUb3BsZXZlbFdpZGdldCAmJiBHVEtfSVNfV0lORE9XKHdpZGdldCkgJiYgIUdUS19JU19P
RkZTQ1JFRU5fV0lORE9XKHdpZGdldCk7CisjZW5kaWYgLy8gVVNFKEdUSzQpCiB9CiAKIHRlbXBs
YXRlPD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRp
ZXMuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuaAppbmRleCBm
YTg5NjdlZGI3ZjU2ZmYwM2NhYjM2MmMxYmU0OTU3ZjE4Zjg5YmYyLi41OThjMzcwM2ZiZDE0MmRl
ODI1ZGY3YjIwYTViNWU1YjQ2OWYzMThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Rr
L0d0a1V0aWxpdGllcy5oCkBAIC0yNCwxMCArMjQsMTQgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9D
U3RyaW5nLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK3R5cGVkZWYgc3Ry
dWN0IF9HdGtXaWRnZXQgR3RrV2lkZ2V0OworCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNz
IEludFBvaW50OwogCitib29sIGd0a0lzVG9wbGV2ZWxXaWRnZXQoR3RrV2lkZ2V0Kik7CitHdGtX
aWRnZXQqIGd0a0dldFRvcGxldmVsV2lkZ2V0KEd0a1dpZGdldCopOwogSW50UG9pbnQgY29udmVy
dFdpZGdldFBvaW50VG9TY3JlZW5Qb2ludChHdGtXaWRnZXQqLCBjb25zdCBJbnRQb2ludCYpOwog
Ym9vbCB3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3coR3RrV2lkZ2V0Kik7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50LmNwcApp
bmRleCBlN2E0NzliZmViNTJlNDlmZTdmZWRkMTY3NTdiZWVjNGM2N2RjZTdmLi4wOGQ0NmUzZjc2
ZjNmYzYxYjFiN2FmN2Y3ZjAxNDU0NTAxZjc2YzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0xMzksNyArMTM5LDcg
QEAgcHJpdmF0ZToKICAgICAgICAgd2Via2l0V2luZG93UHJvcGVydGllc1NldFJlc2l6YWJsZSh3
ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19wcm9wZXJ0aWVzKG1fd2ViVmlldyksIHJlc2l6YWJs
ZSk7CiAgICAgfQogCi0jaWYgUExBVEZPUk0oR1RLKQorI2lmIFBMQVRGT1JNKEdUSykgJiYgIVVT
RShHVEs0KQogICAgIHN0YXRpYyBnYm9vbGVhbiB3aW5kb3dDb25maWd1cmVFdmVudENhbGxiYWNr
KEd0a1dpbmRvdyogd2luZG93LCBHZGtFdmVudENvbmZpZ3VyZSosIEdka1JlY3RhbmdsZSogdGFy
Z2V0R2VvbWV0cnkpCiAgICAgewogICAgICAgICBHZGtSZWN0YW5nbGUgZ2VvbWV0cnkgPSB7IDAs
IDAsIDAsIDAgfTsKQEAgLTE2NSwxOSArMTY1LDIxIEBAIHByaXZhdGU6CiAgICAgewogICAgICAg
ICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8vIFBM
QVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogCiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShXZWJQ
YWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3QmIGZyYW1lKSBmaW5hbAogICAgIHsK
ICNpZiBQTEFURk9STShHVEspCiAgICAgICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeSA9IFdlYkNv
cmU6OkludFJlY3QoZnJhbWUpOwotICAgICAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IGd0a193aWRn
ZXRfZ2V0X3RvcGxldmVsKEdUS19XSURHRVQobV93ZWJWaWV3KSk7CisgICAgICAgIEd0a1dpZGdl
dCogd2luZG93ID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2ZWxXaWRnZXQoR1RLX1dJREdFVChtX3dl
YlZpZXcpKTsKICAgICAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19pc19jb250cm9sbGVkX2J5X2F1
dG9tYXRpb24obV93ZWJWaWV3KSAmJiBXZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxX
aW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNpYmxlKHdpbmRvdykpIHsKICAgICAg
ICAgICAgIGJvb2wgbmVlZHNNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAvLyBRdWVyeWluZyBh
bmQgc2V0dGluZyB3aW5kb3cgcG9zaXRpb25zIGlzIG5vdCBzdXBwb3J0ZWQgaW4gR1RLNC4KKyNp
ZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICAvLyBQb3NpdGlvbiBhIHRvcGxldmVsIHdpbmRvdyBp
cyBub3Qgc3VwcG9ydGVkIHVuZGVyIHdheWxhbmQuCiAjaWYgUExBVEZPUk0oV0FZTEFORCkKICAg
ICAgICAgICAgIGlmIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3BsYXkoKS50
eXBlKCkgIT0gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXYXlsYW5kKQotI2VuZGlm
CisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKICAgICAgICAgICAgIHsKICAgICAgICAgICAg
ICAgICBpZiAoZ2VvbWV0cnkueCA+PSAwICYmIGdlb21ldHJ5LnkgPj0gMCkgewogICAgICAgICAg
ICAgICAgICAgICBpbnQgeCwgeTsKQEAgLTE4NSw2ICsxODcsNyBAQCBwcml2YXRlOgogICAgICAg
ICAgICAgICAgICAgICBuZWVkc01vdmUgPSB4ICE9IGdlb21ldHJ5LnggfHwgeSAhPSBnZW9tZXRy
eS55OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyNlbmRpZiAvLyAhVVNFKEdU
SzQpCiAKICAgICAgICAgICAgIGJvb2wgbmVlZHNSZXNpemUgPSBmYWxzZTsKICAgICAgICAgICAg
IGlmIChnZW9tZXRyeS53aWR0aCA+IDAgJiYgZ2VvbWV0cnkuaGVpZ2h0ID4gMCkgewpAQCAtMTk2
LDkgKzE5OSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFuZWVkc01vdmUgJiYgIW5l
ZWRzUmVzaXplKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAgICAgLy8gVGhl
cmUgaXMgbm8gR3RrV2lkZ2V0LmNvbmZpZ3VyZS1ldmVudCBpbiBHVEs0LCBtb3ZlIGlzIG5vdCBz
dXBwb3J0ZWQuCisjaWYgIVVTRShHVEs0KQogICAgICAgICAgICAgYXV0byBzaWduYWxJRCA9IGdf
c2lnbmFsX2Nvbm5lY3Qod2luZG93LCAiY29uZmlndXJlLWV2ZW50IiwgR19DQUxMQkFDSyh3aW5k
b3dDb25maWd1cmVFdmVudENhbGxiYWNrKSwgJmdlb21ldHJ5KTsKICAgICAgICAgICAgIGlmIChu
ZWVkc01vdmUpCiAgICAgICAgICAgICAgICAgZ3RrX3dpbmRvd19tb3ZlKEdUS19XSU5ET1cod2lu
ZG93KSwgZ2VvbWV0cnkueCwgZ2VvbWV0cnkueSk7CisjZW5kaWYgLy8gIVVTRShHVEs0KQogICAg
ICAgICAgICAgaWYgKG5lZWRzUmVzaXplKQogICAgICAgICAgICAgICAgIGd0a193aW5kb3dfcmVz
aXplKEdUS19XSU5ET1cod2luZG93KSwgZ2VvbWV0cnkud2lkdGgsIGdlb21ldHJ5LmhlaWdodCk7
CiAKQEAgLTIxMiwxNiArMjE4LDE4IEBAIHByaXZhdGU6CiAgICAgICAgICAgICBnX3NpZ25hbF9o
YW5kbGVyX2Rpc2Nvbm5lY3Qod2luZG93LCBzaWduYWxJRCk7CiAgICAgICAgIH0gZWxzZQogICAg
ICAgICAgICAgd2Via2l0V2luZG93UHJvcGVydGllc1NldEdlb21ldHJ5KHdlYmtpdF93ZWJfdmll
d19nZXRfd2luZG93X3Byb3BlcnRpZXMobV93ZWJWaWV3KSwgJmdlb21ldHJ5KTsKLSNlbmRpZgor
I2VuZGlmIC8vIFBMQVRGT1JNKEdUSykKICAgICB9CiAKICAgICB2b2lkIHdpbmRvd0ZyYW1lKFdl
YlBhZ2VQcm94eSYsIEZ1bmN0aW9uPHZvaWQoV2ViQ29yZTo6RmxvYXRSZWN0KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikgZmluYWwKICAgICB7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBHZGtS
ZWN0YW5nbGUgZ2VvbWV0cnkgPSB7IDAsIDAsIDAsIDAgfTsKLSAgICAgICAgR3RrV2lkZ2V0KiB3
aW5kb3cgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKG1fd2ViVmlldykpOwor
ICAgICAgICBHdGtXaWRnZXQqIHdpbmRvdyA9IFdlYkNvcmU6Omd0a0dldFRvcGxldmVsV2lkZ2V0
KEdUS19XSURHRVQobV93ZWJWaWV3KSk7CiAgICAgICAgIGlmIChXZWJDb3JlOjp3aWRnZXRJc09u
c2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNpYmxlKHdp
bmRvdykpIHsKKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICBndGtfd2luZG93X2dldF9wb3Np
dGlvbihHVEtfV0lORE9XKHdpbmRvdyksICZnZW9tZXRyeS54LCAmZ2VvbWV0cnkueSk7CisjZW5k
aWYgLy8gIVVTRShHVEs0KQogICAgICAgICAgICAgZ3RrX3dpbmRvd19nZXRfc2l6ZShHVEtfV0lO
RE9XKHdpbmRvdyksICZnZW9tZXRyeS53aWR0aCwgJmdlb21ldHJ5LmhlaWdodCk7CiAgICAgICAg
IH0KICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RmxvYXRSZWN0KGdlb21ldHJ5
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFBy
aW50T3BlcmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpbnRPcGVyYXRpb24uY3BwCmluZGV4IDQwODM0YThlMGIxMzY3M2ZmYTY4M2JjYTdmYjQ4MDdm
NWYzZDBhYWMuLmI1NDE3ODI5ODBiMTdhY2Y4MjhkYzJkN2Y5ZTRiNzFlZmJlYzQ0NDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRP
cGVyYXRpb24uY3BwCkBAIC0zMzQsNyArMzM0LDcgQEAgV2ViS2l0UHJpbnRPcGVyYXRpb25SZXNw
b25zZSB3ZWJraXRQcmludE9wZXJhdGlvblJ1bkRpYWxvZ0ZvckZyYW1lKFdlYktpdFByaW50T3AK
IHsKICAgICBXZWJLaXRQcmludE9wZXJhdGlvblByaXZhdGUqIHByaXYgPSBwcmludE9wZXJhdGlv
bi0+cHJpdjsKICAgICBpZiAoIXBhcmVudCkgewotICAgICAgICBHdGtXaWRnZXQqIHRvcGxldmVs
ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVChwcml2LT53ZWJWaWV3KSk7Cisg
ICAgICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSBXZWJDb3JlOjpndGtHZXRUb3BsZXZlbFdpZGdl
dChHVEtfV0lER0VUKHByaXYtPndlYlZpZXcpKTsKICAgICAgICAgaWYgKFdlYkNvcmU6OndpZGdl
dElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyh0b3BsZXZlbCkpCiAgICAgICAgICAgICBwYXJlbnQg
PSBHVEtfV0lORE9XKHRvcGxldmVsKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IGJlMzg3ZDFiNDcz
MmFmOWJiMWFmMTI0NWJlNDE2M2ZhMzFiNWY3YjMuLjZhYjRjZWVlNTljYzM3NDNmZWIzNTFmYWIy
ZWU0OWRhODYyMGQ0NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0xMzkzLDcgKzEzOTMsNyBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRXZWJWaWV3QmFzZUhpZXJhcmNoeUNoYW5nZWQoR3RrV2lkZ2V0KiB3aWRnZXQs
IEd0a1dpZGdldCogb2xkVAogICAgIH0KIAogICAgIGlmICghb2xkVG9wbGV2ZWwpIHsKLSAgICAg
ICAgR3RrV2lkZ2V0KiB0b3BsZXZlbCA9IGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKHdpZGdldCk7
CisgICAgICAgIEd0a1dpZGdldCogdG9wbGV2ZWwgPSBXZWJDb3JlOjpndGtHZXRUb3BsZXZlbFdp
ZGdldCh3aWRnZXQpOwogICAgICAgICBpZiAod2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93
KHRvcGxldmVsKSkKICAgICAgICAgICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0VG9wbGV2ZWxPblNj
cmVlbldpbmRvdyhXRUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLCBHVEtfV0lORE9XKHRvcGxl
dmVsKSk7CiAgICAgfQpAQCAtMTU1Nyw4ICsxNTU3LDggQEAgdm9pZCB3ZWJraXRXZWJWaWV3QmFz
ZUVudGVyRnVsbFNjcmVlbihXZWJLaXRXZWJWaWV3QmFzZSogd2Via2l0V2ViVmlld0Jhc2UpCiAg
ICAgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eSogZnVsbFNjcmVlbk1hbmFnZXJQcm94eSA9IHBy
aXYtPnBhZ2VQcm94eS0+ZnVsbFNjcmVlbk1hbmFnZXIoKTsKICAgICBmdWxsU2NyZWVuTWFuYWdl
clByb3h5LT53aWxsRW50ZXJGdWxsU2NyZWVuKCk7CiAKLSAgICBHdGtXaWRnZXQqIHRvcExldmVs
V2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3
QmFzZSkpOwotICAgIGlmIChndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcExldmVsV2luZG93KSkK
KyAgICBHdGtXaWRnZXQqIHRvcExldmVsV2luZG93ID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2ZWxX
aWRnZXQoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFzZSkpOworICAgIGlmIChXZWJDb3JlOjpn
dGtJc1RvcGxldmVsV2lkZ2V0KHRvcExldmVsV2luZG93KSkKICAgICAgICAgZ3RrX3dpbmRvd19m
dWxsc2NyZWVuKEdUS19XSU5ET1codG9wTGV2ZWxXaW5kb3cpKTsKICAgICBmdWxsU2NyZWVuTWFu
YWdlclByb3h5LT5kaWRFbnRlckZ1bGxTY3JlZW4oKTsKICAgICBwcml2LT5mdWxsU2NyZWVuTW9k
ZUFjdGl2ZSA9IHRydWU7CkBAIC0xNTc1LDggKzE1NzUsOCBAQCB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlRXhpdEZ1bGxTY3JlZW4oV2ViS2l0V2ViVmlld0Jhc2UqIHdlYmtpdFdlYlZpZXdCYXNlKQog
ICAgIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkqIGZ1bGxTY3JlZW5NYW5hZ2VyUHJveHkgPSBw
cml2LT5wYWdlUHJveHktPmZ1bGxTY3JlZW5NYW5hZ2VyKCk7CiAgICAgZnVsbFNjcmVlbk1hbmFn
ZXJQcm94eS0+d2lsbEV4aXRGdWxsU2NyZWVuKCk7CiAKLSAgICBHdGtXaWRnZXQqIHRvcExldmVs
V2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3
QmFzZSkpOwotICAgIGlmIChndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcExldmVsV2luZG93KSkK
KyAgICBHdGtXaWRnZXQqIHRvcExldmVsV2luZG93ID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2ZWxX
aWRnZXQoR1RLX1dJREdFVCh3ZWJraXRXZWJWaWV3QmFzZSkpOworICAgIGlmIChXZWJDb3JlOjpn
dGtJc1RvcGxldmVsV2lkZ2V0KHRvcExldmVsV2luZG93KSkKICAgICAgICAgZ3RrX3dpbmRvd191
bmZ1bGxzY3JlZW4oR1RLX1dJTkRPVyh0b3BMZXZlbFdpbmRvdykpOwogICAgIGZ1bGxTY3JlZW5N
YW5hZ2VyUHJveHktPmRpZEV4aXRGdWxsU2NyZWVuKCk7CiAgICAgcHJpdi0+ZnVsbFNjcmVlbk1v
ZGVBY3RpdmUgPSBmYWxzZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlld0d0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdHdGsuY3BwCmluZGV4IGFmNzFlM2I0ZDllMzNjYjEzNGFlYjQ0NTc3
MDgxNjgzZDI0MGNjMDguLjkyYmMyMjFlZjU0OGY4ODZiNzQ4MzgxNGIzYjc4NGNhNWU4ZDkxMDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
d0d0ay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3R3RrLmNwcApAQCAtNjcsNyArNjcsNyBAQCBzdGF0aWMgdm9pZCBmaWxlQ2hvb3NlckRpYWxv
Z1Jlc3BvbnNlQ2FsbGJhY2soR3RrRmlsZUNob29zZXIqIGRpYWxvZywgZ2ludCByZXNwbwogCiBn
Ym9vbGVhbiB3ZWJraXRXZWJWaWV3UnVuRmlsZUNob29zZXIoV2ViS2l0V2ViVmlldyogd2ViVmll
dywgV2ViS2l0RmlsZUNob29zZXJSZXF1ZXN0KiByZXF1ZXN0KQogewotICAgIEd0a1dpZGdldCog
dG9wbGV2ZWwgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHdlYlZpZXcpKTsK
KyAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2ZWxXaWRnZXQo
R1RLX1dJREdFVCh3ZWJWaWV3KSk7CiAgICAgaWYgKCFXZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVu
VG9wbGV2ZWxXaW5kb3codG9wbGV2ZWwpKQogICAgICAgICB0b3BsZXZlbCA9IDA7CiAKQEAgLTE1
Niw4ICsxNTYsOCBAQCBzdGF0aWMgZ2Jvb2xlYW4gd2luZG93U3RhdGVFdmVudENhbGxiYWNrKEd0
a1dpZGdldCogd2luZG93LCBHZGtFdmVudFdpbmRvd1N0YXRlKgogCiB2b2lkIHdlYmtpdFdlYlZp
ZXdNYXhpbWl6ZVdpbmRvdyhXZWJLaXRXZWJWaWV3KiB2aWV3LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgYXV0byogdG9wTGV2ZWwgPSBndGtf
d2lkZ2V0X2dldF90b3BsZXZlbChHVEtfV0lER0VUKHZpZXcpKTsKLSAgICBpZiAoIWd0a193aWRn
ZXRfaXNfdG9wbGV2ZWwodG9wTGV2ZWwpKSB7CisgICAgYXV0byogdG9wTGV2ZWwgPSBXZWJDb3Jl
OjpndGtHZXRUb3BsZXZlbFdpZGdldChHVEtfV0lER0VUKHZpZXcpKTsKKyAgICBpZiAoIVdlYkNv
cmU6Omd0a0lzVG9wbGV2ZWxXaWRnZXQodG9wTGV2ZWwpKSB7CiAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xODksOCArMTg5LDggQEAgdm9p
ZCB3ZWJraXRXZWJWaWV3TWF4aW1pemVXaW5kb3coV2ViS2l0V2ViVmlldyogdmlldywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYKIAogdm9pZCB3ZWJraXRXZWJWaWV3TWluaW1pemVXaW5kb3co
V2ViS2l0V2ViVmlldyogdmlldywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIGF1dG8qIHRvcExldmVsID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwoR1RLX1dJREdFVCh2aWV3KSk7Ci0gICAgaWYgKCFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRv
cExldmVsKSkgeworICAgIGF1dG8qIHRvcExldmVsID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2ZWxX
aWRnZXQoR1RLX1dJREdFVCh2aWV3KSk7CisgICAgaWYgKCFXZWJDb3JlOjpndGtJc1RvcGxldmVs
V2lkZ2V0KHRvcExldmVsKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQpAQCAtMjA2LDggKzIwNiw4IEBAIHZvaWQgd2Via2l0V2ViVmlld01p
bmltaXplV2luZG93KFdlYktpdFdlYlZpZXcqIHZpZXcsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mCiAKIHZvaWQgd2Via2l0V2ViVmlld1Jlc3RvcmVXaW5kb3coV2ViS2l0V2ViVmlldyogdmll
dywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAg
IGF1dG8qIHRvcExldmVsID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdFVCh2aWV3
KSk7Ci0gICAgaWYgKCFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcExldmVsKSkgeworICAgIGF1
dG8qIHRvcExldmVsID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2ZWxXaWRnZXQoR1RLX1dJREdFVCh2
aWV3KSk7CisgICAgaWYgKCFXZWJDb3JlOjpndGtJc1RvcGxldmVsV2lkZ2V0KHRvcExldmVsKSkg
ewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogICAgICAgICByZXR1cm47CiAgICAgfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNw
ZWN0b3JQcm94eUd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3Rr
L1dlYkluc3BlY3RvclByb3h5R3RrLmNwcAppbmRleCA4YWQ5MmVkODRjMGE4MzhhNjFlNDA2MjZj
NGMyMDlkMmM2OTNmMWVhLi5kOTRlZWU4NDY1NzRjNDk4NmI1Y2YyM2QzOWU2MDA3MjBlYjAxMzA4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYklu
c3BlY3RvclByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvZ3RrL1dlYkluc3BlY3RvclByb3h5R3RrLmNwcApAQCAtMzE0LDcgKzMxNCw3IEBAIHZvaWQg
V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtQnJpbmdUb0Zyb250KCkKICAgICBpZiAobV9jbGll
bnQgJiYgbV9jbGllbnQtPmJyaW5nVG9Gcm9udCgqdGhpcykpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwobV9pbnNwZWN0
b3JWaWV3KTsKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IFdlYkNvcmU6Omd0a0dldFRvcGxldmVs
V2lkZ2V0KG1faW5zcGVjdG9yVmlldyk7CiAgICAgaWYgKFdlYkNvcmU6OndpZGdldElzT25zY3Jl
ZW5Ub3BsZXZlbFdpbmRvdyhwYXJlbnQpKQogICAgICAgICBndGtfd2luZG93X3ByZXNlbnQoR1RL
X1dJTkRPVyhwYXJlbnQpKTsKIH0KQEAgLTMyNiw3ICszMjYsNyBAQCB2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpwbGF0Zm9ybUJyaW5nSW5zcGVjdGVkUGFnZVRvRnJvbnQoKQogCiBib29sIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9ybUlzRnJvbnQoKQogewotICAgIEd0a1dpZGdldCogcGFyZW50
ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwobV9pbnNwZWN0b3JWaWV3KTsKKyAgICBHdGtXaWRn
ZXQqIHBhcmVudCA9IFdlYkNvcmU6Omd0a0dldFRvcGxldmVsV2lkZ2V0KG1faW5zcGVjdG9yVmll
dyk7CiAgICAgaWYgKFdlYkNvcmU6OndpZGdldElzT25zY3JlZW5Ub3BsZXZlbFdpbmRvdyhwYXJl
bnQpKQogICAgICAgICByZXR1cm4gbV9pc1Zpc2libGUgJiYgZ3RrX3dpbmRvd19pc19hY3RpdmUo
R1RLX1dJTkRPVyhwYXJlbnQpKTsKICAgICByZXR1cm4gZmFsc2U7CkBAIC00ODYsNyArNDg2LDcg
QEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1TYXZlKGNvbnN0IFN0cmluZyYgc3Vn
Z2VzdGVkVVJMLCBjb25zdCBTdHJpbmcmIGMKIHsKICAgICBVTlVTRURfUEFSQU0oZm9yY2VTYXZl
RGlhbG9nKTsKIAotICAgIEd0a1dpZGdldCogcGFyZW50ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwobV9pbnNwZWN0b3JWaWV3KTsKKyAgICBHdGtXaWRnZXQqIHBhcmVudCA9IFdlYkNvcmU6Omd0
a0dldFRvcGxldmVsV2lkZ2V0KG1faW5zcGVjdG9yVmlldyk7CiAgICAgaWYgKCFXZWJDb3JlOjp3
aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cocGFyZW50KSkKICAgICAgICAgcmV0dXJuOwog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJH
dGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkNvbG9yUGlja2VyR3RrLmNw
cAppbmRleCAxNGNmMjExZTdkNDI0YWQzMmFjOTFlMDQ4OWRmN2Q5N2U5YWJmZDIyLi5iODNhZjQ3
MTJlZDczYmYzZGQ4ZmQzZGFmOWNiMzY2M2ZiM2U1YjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9ndGsvV2ViQ29sb3JQaWNrZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL2d0ay9XZWJDb2xvclBpY2tlckd0ay5jcHAKQEAgLTk4LDcgKzk4LDcgQEAg
dm9pZCBXZWJDb2xvclBpY2tlckd0azo6c2hvd0NvbG9yUGlja2VyKGNvbnN0IENvbG9yJiBjb2xv
cikKICAgICBtX2luaXRpYWxDb2xvciA9IGNvbG9yOwogCiAgICAgaWYgKCFtX2NvbG9yQ2hvb3Nl
cikgewotICAgICAgICBHdGtXaWRnZXQqIHRvcGxldmVsID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2
ZWwobV93ZWJWaWV3KTsKKyAgICAgICAgR3RrV2lkZ2V0KiB0b3BsZXZlbCA9IFdlYkNvcmU6Omd0
a0dldFRvcGxldmVsV2lkZ2V0KG1fd2ViVmlldyk7CiAgICAgICAgIG1fY29sb3JDaG9vc2VyID0g
Z3RrX2NvbG9yX2Nob29zZXJfZGlhbG9nX25ldyhfKCJTZWxlY3QgQ29sb3IiKSwgV2ViQ29yZTo6
d2lkZ2V0SXNPbnNjcmVlblRvcGxldmVsV2luZG93KHRvcGxldmVsKSA/IEdUS19XSU5ET1codG9w
bGV2ZWwpIDogbnVsbHB0cik7CiAgICAgICAgIGd0a19jb2xvcl9jaG9vc2VyX3NldF9yZ2JhKEdU
S19DT0xPUl9DSE9PU0VSKG1fY29sb3JDaG9vc2VyKSwgJm1faW5pdGlhbENvbG9yKTsKICAgICAg
ICAgZ19zaWduYWxfY29ubmVjdChtX2NvbG9yQ2hvb3NlciwgIm5vdGlmeTo6cmdiYSIsIEdfQ0FM
TEJBQ0soV2ViQ29sb3JQaWNrZXJHdGs6OmNvbG9yQ2hvb3NlckRpYWxvZ1JHQkFDaGFuZ2VkQ2Fs
bGJhY2spLCB0aGlzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9X
ZWJEYXRhTGlzdFN1Z2dlc3Rpb25zRHJvcGRvd25HdGsuY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvZ3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5jcHAKaW5kZXggNmEz
Njc4OTA0MDJiOTA2YzUxNzEwNGY4ZTBjYTJkNTExZjE5MGFiZC4uMDcyYmM3ODkzMWRkZmRiZDI1
ODAxNWIxZDVhODNjYjc2YzQ5MmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvZ3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bkd0ay5j
cHAKQEAgLTE2Niw3ICsxNjYsNyBAQCB2b2lkIFdlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bkd0azo6c2hvdyhXZWJDb3JlOjpEYXRhTGlzdFN1Z2dlc3Rpb25JbmZvcm1hdAogICAgICAgICBt
ZW51UG9zaXRpb24ubW92ZSgwLCAtbWVudVJlcXVpc2l0aW9uLmhlaWdodCk7CiAgICAgZ3RrX3dp
bmRvd19tb3ZlKEdUS19XSU5ET1cobV9wb3B1cCksIG1lbnVQb3NpdGlvbi54KCksIG1lbnVQb3Np
dGlvbi55KCkpOwogCi0gICAgYXV0byogdG9wbGV2ZWwgPSBndGtfd2lkZ2V0X2dldF90b3BsZXZl
bChtX3dlYlZpZXcpOworICAgIGF1dG8qIHRvcGxldmVsID0gV2ViQ29yZTo6Z3RrR2V0VG9wbGV2
ZWxXaWRnZXQobV93ZWJWaWV3KTsKICAgICBpZiAoR1RLX0lTX1dJTkRPVyh0b3BsZXZlbCkpIHsK
ICAgICAgICAgZ3RrX3dpbmRvd19zZXRfdHJhbnNpZW50X2ZvcihHVEtfV0lORE9XKG1fcG9wdXAp
LCBHVEtfV0lORE9XKHRvcGxldmVsKSk7CiAgICAgICAgIGd0a193aW5kb3dfZ3JvdXBfYWRkX3dp
bmRvdyhndGtfd2luZG93X2dldF9ncm91cChHVEtfV0lORE9XKHRvcGxldmVsKSksIEdUS19XSU5E
T1cobV9wb3B1cCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dl
YlBvcHVwTWVudVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9XZWJQ
b3B1cE1lbnVQcm94eUd0ay5jcHAKaW5kZXggNGVhZDc3ZDEwZDY4NjE4NTQ3YTllYjZiOTc5YmFl
ODFjMjM0NGI0Yi4uYjcwOGJlYmY0NzEwYThhNjI3NjUyOTI2NjYzM2IxMjVlNTA2ZmExYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvZ3RrL1dlYlBvcHVwTWVudVByb3h5R3Rr
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvV2ViUG9wdXBNZW51UHJveHlH
dGsuY3BwCkBAIC0yNTIsNyArMjUyLDcgQEAgdm9pZCBXZWJQb3B1cE1lbnVQcm94eUd0azo6c2hv
d1BvcHVwTWVudShjb25zdCBJbnRSZWN0JiByZWN0LCBUZXh0RGlyZWN0aW9uLCBkb3UKICAgICBp
ZiAoIWl0ZW1IZWlnaHQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1dG8qIHRvcGxldmVsID0g
Z3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwobV93ZWJWaWV3KTsKKyAgICBhdXRvKiB0b3BsZXZlbCA9
IFdlYkNvcmU6Omd0a0dldFRvcGxldmVsV2lkZ2V0KG1fd2ViVmlldyk7CiAgICAgaWYgKEdUS19J
U19XSU5ET1codG9wbGV2ZWwpKSB7CiAgICAgICAgIGd0a193aW5kb3dfc2V0X3RyYW5zaWVudF9m
b3IoR1RLX1dJTkRPVyhtX3BvcHVwKSwgR1RLX1dJTkRPVyh0b3BsZXZlbCkpOwogICAgICAgICBn
dGtfd2luZG93X2dyb3VwX2FkZF93aW5kb3coZ3RrX3dpbmRvd19nZXRfZ3JvdXAoR1RLX1dJTkRP
Vyh0b3BsZXZlbCkpLCBHVEtfV0lORE9XKG1fcG9wdXApKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396406</attachid>
            <date>2020-04-14 05:57:38 -0700</date>
            <delta_ts>2020-04-15 06:42:20 -0700</delta_ts>
            <desc>Patch v2</desc>
            <filename>bug-210463-20200414155737.patch</filename>
            <type>text/plain</type>
            <size>10297</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggODI5MGQ1ZDBlMGY1NTRk
YTQ3NTBjN2NiNTQ1ZDVkNzBkYjBmZDNhMS4uODc5OWUxZDY4NGM4Mzk2MWZjOWRkOTYyMTE0ZTll
Zjc5NmQzMmE4NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ4IEBACisyMDIwLTA0LTE0ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IFByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGFwdCB1
dGlsaXR5IGZ1bmN0aW9ucyB0byBHVEs0LCBhbmQgcHJvdmlkZSByZXBsYWNlbWVudCBpbXBsZW1l
bnRhdGlvbnMgZm9yIHRoZQorICAgICAgICBndGtfd2lkZ2V0X2dldF90b2xldmVsKCkgYW5kIGd0
a193aWRnZXRfaXNfdG9wbGV2ZWwoKSBmdW5jdGlvbnMgZm9yIEdUSzQgYnVpbGRzLgorCisgICAg
ICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvR3RrVXRp
bGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1dpbmRvd0dldE9yaWdpbik6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2ludCk6IE1v
dmUgY29kZSB1c2VkIHRvIGZpbmQgdGhlIHdpbmRvdyBwb3NpdGlvbgorICAgICAgICBpbnRvIGEg
c2VwYXJhdGUgZnVuY3Rpb24sIGFuZCB1c2UgaXQgdG8gYXZvaWQgdGhlIFVTRShHVEs0KSBjb25k
aXRpb25hbCBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6d2lkZ2V0SXNPbnNjcmVlblRvcGxldmVs
V2luZG93KTogQWRhcHQgdG8gbWFrZSBpdCB3b3JrIHdpdGggR1RLNC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKGd0a193aWRnZXRfaXNf
dG9wbGV2ZWwpOiBBbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBmb3IgR1RLNC4KKyAgICAgICAg
KGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKTogRGl0dG8uCisgICAgICAgIChndGtfd2luZG93X2dl
dF9wb3NpdGlvbik6IERpdHRvLgorCisyMDIwLTA0LTEzICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJv
ICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRdIFByb3ZpZGUgYW4gYWx0ZXJu
YXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgpCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgdXRpbGl0eSBmdW5jdGlvbnMgdG8g
d29yayB3aXRoICJ0b3BsZXZlbCIgd2lkZ2V0cyB3aGljaCB3b3JrIG9uIEdUSzMgYW5kIEdUSzQu
CisKKyAgICAgICAgTm8gbmV3IHRlc3RzIG5lZWRlZC4KKworICAgICAgICAqIHBsYXRmb3JtL2d0
ay9HdGtVdGlsaXRpZXMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z3RrSXNUb3BsZXZlbFdpZGdl
dCk6IEFkZGVkLiBVc2VzIGd0a193aWRnZXRfaXNfdG9wbGV2ZWwoKSBvbiBHVEszLCBhbmQgY2hl
Y2tzCisgICAgICAgIHdoZXRoZXIgdGhlIHdpZGdldCBpcyBhIEd0a1dpbmRvdyBvbiBHVEs0LCBh
cyB0aG9zZSBhcmUgdGhlIG9ubHkgd2lkZ2V0cyB3aGljaCBpbXBsZW1lbnQKKyAgICAgICAgR3Rr
Um9vdCBhbmQgY2FuIGJlIHNob3duIG9uIHNjcmVlbi4KKyAgICAgICAgKFdlYkNvcmU6Omd0a0dl
dFRvcGxldmVsV2lkZ2V0KTogQWRkZWQuIFVzZXMgZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoKSBv
biBHVEszLCBhbmQKKyAgICAgICAgZ3RrX3dpZGdldF9nZXRfcm9vdCgpIG9uIEdUSzQuCisgICAg
ICAgIChXZWJDb3JlOjpjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KTogVXNlIGd0a3tH
ZXQsSXN9VG9wbGV2ZWxXaWRnZXQoKSwgYW5kIGFjY291bnQKKyAgICAgICAgZm9yIHRoZSBmYWN0
IHRoYXQgdW5kZXIgR1RLNCBpdCBpcyBub3QgcG9zc2libGUgdG8gb2J0YWluIHRoZSBwb3NpdGlv
biBvZiBhIHdpbmRvdy4KKyAgICAgICAgKFdlYkNvcmU6OndpZGdldElzT25zY3JlZW5Ub3BsZXZl
bFdpbmRvdyk6CisgICAgICAgICogcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5oOiBBZGQgcHJv
dG90eXBlcyBmb3IgdGhlIG5ldyBndGt7SXMsR2V0fVRvcGxldmVsV2lkZ2V0KCkKKyAgICAgICAg
ZnVuY3Rpb25zLgorCiAyMDIwLTA0LTEzICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEFkYXB0IHRvIGN1cnNvciBBUEkgY2hhbmdl
cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwppbmRleCA3OWI4MmQ1ZTQxZTlhZDA4MWE2ZjFiYWMzOTVkZGY5YWYzMTlhM2EyLi41
YzdhMjVhNzcwNTNkZmZiYzEzMjBkYjc5M2NkMDg2MjcyOTVlYWFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDEzIEBACisyMDIwLTA0LTE0ICBBZHJpYW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGln
YWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRdIFByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgdG8gZ3Rr
X3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5j
cHA6IEFkYXB0IHRvIHRha2UgaW50byBhY2NvdW50IHRoYXQgR1RLNCBkb2VzIG5vdAorICAgICAg
ICBwcm92aWRlIHRoZSBHdGtXaWRnZXQuY29uZmlndXJlLWV2ZW50IHNpZ25hbC4KKwogMjAyMC0w
NC0xNCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGxv
Z2dpbmcgaW4gY2FzZSBvZiBXZWJSVEMgc29ja2V0IGVycm9yCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCmluZGV4IDg4MWUzZWY5ZGI1ODA4ZWQxYjU1NWM0
YTYwZTMyNDE2OGFiMjNiNDkuLjhkOGRmMzFmMzdjOTg4YmVjMzdlNzkwMjZkMGViYWY0YTlhMjYw
NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtVdGlsaXRpZXMuY3BwCkBA
IC0xOSwxMiArMTksMjcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJHdGtVdGls
aXRpZXMuaCIKIAorI2luY2x1ZGUgIkd0a1ZlcnNpb25pbmcuaCIKICNpbmNsdWRlICJJbnRQb2lu
dC5oIgogI2luY2x1ZGUgPGd0ay9ndGsuaD4KICNpbmNsdWRlIDx3dGYvZ2xpYi9HVW5pcXVlUHRy
Lmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIEludFBvaW50IGd0a1dpbmRvd0dl
dE9yaWdpbihHdGtXaWRnZXQqIHdpbmRvdykKK3sKKyAgICBpbnQgeCA9IDAsIHkgPSAwOworCisj
aWYgVVNFKEdUSzQpCisgICAgVU5VU0VEX1BBUkFNKHdpbmRvdyk7CisjZWxzZQorICAgIGlmIChh
dXRvKiBnZGtXaW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3cod2luZG93KSkKKyAgICAgICAg
Z2RrX3dpbmRvd19nZXRfb3JpZ2luKGdka1dpbmRvdywgJngsICZ5KTsKKyNlbmRpZiAvLyAhVVNF
KEdUSzQpCisKKyAgICByZXR1cm4gSW50UG9pbnQoeCwgeSk7Cit9CisKIEludFBvaW50IGNvbnZl
cnRXaWRnZXRQb2ludFRvU2NyZWVuUG9pbnQoR3RrV2lkZ2V0KiB3aWRnZXQsIGNvbnN0IEludFBv
aW50JiBwb2ludCkKIHsKICAgICAvLyBGSVhNRTogVGhpcyBpcyBhY3R1YWxseSBhIHZlcnkgdHJp
Y2t5IG9wZXJhdGlvbiBhbmQgdGhlIHJlc3VsdHMgb2YgdGhpcyBmdW5jdGlvbiBzaG91bGQKQEAg
LTMyLDI1ICs0NywyNyBAQCBJbnRQb2ludCBjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50
KEd0a1dpZGdldCogd2lkZ2V0LCBjb25zdCBJbnRQb2ludCYgcG9pbgogICAgIC8vIGFjY291bnQg
d2luZG93IGRlY29yYXRpb25zLgogCiAgICAgR3RrV2lkZ2V0KiB0b3BsZXZlbFdpZGdldCA9IGd0
a193aWRnZXRfZ2V0X3RvcGxldmVsKHdpZGdldCk7CisKICAgICBpZiAoIXRvcGxldmVsV2lkZ2V0
IHx8ICFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcGxldmVsV2lkZ2V0KSB8fCAhR1RLX0lTX1dJ
TkRPVyh0b3BsZXZlbFdpZGdldCkpCiAgICAgICAgIHJldHVybiBwb2ludDsKIAotICAgIEdka1dp
bmRvdyogZ2RrV2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHRvcGxldmVsV2lkZ2V0KTsK
LSAgICBpZiAoIWdka1dpbmRvdykKLSAgICAgICAgcmV0dXJuIHBvaW50OwotCiAgICAgaW50IHhJ
bldpbmRvdywgeUluV2luZG93OwogICAgIGd0a193aWRnZXRfdHJhbnNsYXRlX2Nvb3JkaW5hdGVz
KHdpZGdldCwgdG9wbGV2ZWxXaWRnZXQsIHBvaW50LngoKSwgcG9pbnQueSgpLCAmeEluV2luZG93
LCAmeUluV2luZG93KTsKIAotICAgIGludCB3aW5kb3dPcmlnaW5YLCB3aW5kb3dPcmlnaW5ZOwot
ICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtXaW5kb3csICZ3aW5kb3dPcmlnaW5YLCAmd2lu
ZG93T3JpZ2luWSk7Ci0KLSAgICByZXR1cm4gSW50UG9pbnQod2luZG93T3JpZ2luWCArIHhJbldp
bmRvdywgd2luZG93T3JpZ2luWSArIHlJbldpbmRvdyk7CisgICAgY29uc3QgYXV0byBvcmlnaW4g
PSBndGtXaW5kb3dHZXRPcmlnaW4odG9wbGV2ZWxXaWRnZXQpOworICAgIHJldHVybiBJbnRQb2lu
dChvcmlnaW4ueCgpICsgeEluV2luZG93LCBvcmlnaW4ueSgpICsgeUluV2luZG93KTsKIH0KIAog
Ym9vbCB3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3coR3RrV2lkZ2V0KiB3aWRnZXQpCiB7
Ci0gICAgcmV0dXJuIHdpZGdldCAmJiBndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHdpZGdldCkgJiYg
R1RLX0lTX1dJTkRPVyh3aWRnZXQpICYmICFHVEtfSVNfT0ZGU0NSRUVOX1dJTkRPVyh3aWRnZXQp
OworICAgIGNvbnN0IGJvb2wgaXNUb3BsZXZlbFdpZGdldCA9IHdpZGdldCAmJiBndGtfd2lkZ2V0
X2lzX3RvcGxldmVsKHdpZGdldCk7CisKKyNpZiBVU0UoR1RLNCkKKyAgICAvLyBBIHRvcGxldmVs
IHdpZGdldCBpbiBHVEs0IGlzIGFsd2F5cyBhIHdpbmRvdywgdGhlcmUgaXMgbm8gbmVlZCBmb3Ig
ZnVydGhlciBjaGVja3MuCisgICAgcmV0dXJuIGlzVG9wbGV2ZWxXaWRnZXQ7CisjZWxzZQorICAg
IHJldHVybiBpc1RvcGxldmVsV2lkZ2V0ICYmIEdUS19JU19XSU5ET1cod2lkZ2V0KSAmJiAhR1RL
X0lTX09GRlNDUkVFTl9XSU5ET1cod2lkZ2V0KTsKKyNlbmRpZiAvLyBVU0UoR1RLNCkKIH0KIAog
dGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1Zl
cnNpb25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMWViMGRiOGMwNjc3MDM0MGQyMjEzZDc3ZWUxZGJkNzA2ZGYwMTNhNgotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5n
LmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5M
LgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5z
ZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisg
KiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVy
IHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3Bl
IHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdp
dGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9y
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJh
cnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBz
aG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09Q
WUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBN
QSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRlIDxndGsv
Z3RrLmg+CisKKyNpZiBHVEtfQ0hFQ0tfVkVSU0lPTigzLCA5MCwgMCkKKworc3RhdGljIGlubGlu
ZSBnYm9vbGVhbgorZ3RrX3dpZGdldF9pc190b3BsZXZlbChHdGtXaWRnZXQqIHdpZGdldCkKK3sK
KyAgICAvLyBJbiB0aGVvcnkgYW55dGhpbmcgd2hpY2ggaW1wbGVtZW50cyBHdGtSb290IGNhbiBi
ZSBhIHRvcGxldmVsIHdpZGdldCwKKyAgICAvLyBpbiBwcmFjdGljZSBvbmx5IHRoZSBvbmVzIHdo
aWNoIGFyZSBHdGtXaW5kb3cgb3IgZGVyaXZlZCBuZWVkIHRvIGJlCisgICAgLy8gY29uc2lkZXJl
ZCBoZXJlLgorICAgIHJldHVybiBHVEtfSVNfV0lORE9XKHdpZGdldCk7Cit9CisKK3N0YXRpYyBp
bmxpbmUgR3RrV2lkZ2V0KgorZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR3RrV2lkZ2V0KiB3aWRn
ZXQpCit7CisgICAgcmV0dXJuIEdUS19XSURHRVQoZ3RrX3dpZGdldF9nZXRfcm9vdCh3aWRnZXQp
KTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitndGtfd2luZG93X2dldF9wb3NpdGlvbihHdGtX
aW5kb3cqLCBpbnQqIHgsIGludCAqeSkKK3sKKyAgICAqeCA9ICp5ID0gMDsKK30KKworI2VuZGlm
IC8vIEdUS19DSEVDS19WRVJTSU9OKDMsIDkwLCAwKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IGU3YTQ3OWJmZWI1MmU0
OWZlN2ZlZGQxNjc1N2JlZWM0YzY3ZGNlN2YuLjgyYjlkMzY4ZmU2NDFiNmVmYzRiYTk2NzMyODll
MDQyZThmMTY4YTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFVJQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xp
Yi9XZWJLaXRVSUNsaWVudC5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRlOgogICAgICAg
ICB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0UmVzaXphYmxlKHdlYmtpdF93ZWJfdmlld19nZXRf
d2luZG93X3Byb3BlcnRpZXMobV93ZWJWaWV3KSwgcmVzaXphYmxlKTsKICAgICB9CiAKLSNpZiBQ
TEFURk9STShHVEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAgc3RhdGlj
IGdib29sZWFuIHdpbmRvd0NvbmZpZ3VyZUV2ZW50Q2FsbGJhY2soR3RrV2luZG93KiB3aW5kb3cs
IEdka0V2ZW50Q29uZmlndXJlKiwgR2RrUmVjdGFuZ2xlKiB0YXJnZXRHZW9tZXRyeSkKICAgICB7
CiAgICAgICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeSA9IHsgMCwgMCwgMCwgMCB9OwpAQCAtMTY1
LDcgKzE2NSw3IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCku
c3RvcCgpOwogICAgIH0KLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgJiYgIVVTRShH
VEs0KQogCiAgICAgdm9pZCBzZXRXaW5kb3dGcmFtZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJD
b3JlOjpGbG9hdFJlY3QmIGZyYW1lKSBmaW5hbAogICAgIHsKQEAgLTE3NCwxMCArMTc0LDEyIEBA
IHByaXZhdGU6CiAgICAgICAgIEd0a1dpZGdldCogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9w
bGV2ZWwoR1RLX1dJREdFVChtX3dlYlZpZXcpKTsKICAgICAgICAgaWYgKHdlYmtpdF93ZWJfdmll
d19pc19jb250cm9sbGVkX2J5X2F1dG9tYXRpb24obV93ZWJWaWV3KSAmJiBXZWJDb3JlOjp3aWRn
ZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNp
YmxlKHdpbmRvdykpIHsKICAgICAgICAgICAgIGJvb2wgbmVlZHNNb3ZlID0gZmFsc2U7CisgICAg
ICAgICAgICAvLyBRdWVyeWluZyBhbmQgc2V0dGluZyB3aW5kb3cgcG9zaXRpb25zIGlzIG5vdCBz
dXBwb3J0ZWQgaW4gR1RLNC4KKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICAvLyBQb3NpdGlv
biBhIHRvcGxldmVsIHdpbmRvdyBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyIHdheWxhbmQuCiAjaWYg
UExBVEZPUk0oV0FZTEFORCkKICAgICAgICAgICAgIGlmIChXZWJDb3JlOjpQbGF0Zm9ybURpc3Bs
YXk6OnNoYXJlZERpc3BsYXkoKS50eXBlKCkgIT0gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpU
eXBlOjpXYXlsYW5kKQotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKICAgICAg
ICAgICAgIHsKICAgICAgICAgICAgICAgICBpZiAoZ2VvbWV0cnkueCA+PSAwICYmIGdlb21ldHJ5
LnkgPj0gMCkgewogICAgICAgICAgICAgICAgICAgICBpbnQgeCwgeTsKQEAgLTE4NSw2ICsxODcs
NyBAQCBwcml2YXRlOgogICAgICAgICAgICAgICAgICAgICBuZWVkc01vdmUgPSB4ICE9IGdlb21l
dHJ5LnggfHwgeSAhPSBnZW9tZXRyeS55OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAg
IH0KKyNlbmRpZiAvLyAhVVNFKEdUSzQpCiAKICAgICAgICAgICAgIGJvb2wgbmVlZHNSZXNpemUg
PSBmYWxzZTsKICAgICAgICAgICAgIGlmIChnZW9tZXRyeS53aWR0aCA+IDAgJiYgZ2VvbWV0cnku
aGVpZ2h0ID4gMCkgewpAQCAtMTk2LDkgKzE5OSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAg
aWYgKCFuZWVkc01vdmUgJiYgIW5lZWRzUmVzaXplKQogICAgICAgICAgICAgICAgIHJldHVybjsK
IAorICAgICAgICAgICAgLy8gVGhlcmUgaXMgbm8gR3RrV2lkZ2V0LmNvbmZpZ3VyZS1ldmVudCBp
biBHVEs0LCBtb3ZlIGlzIG5vdCBzdXBwb3J0ZWQuCisjaWYgIVVTRShHVEs0KQogICAgICAgICAg
ICAgYXV0byBzaWduYWxJRCA9IGdfc2lnbmFsX2Nvbm5lY3Qod2luZG93LCAiY29uZmlndXJlLWV2
ZW50IiwgR19DQUxMQkFDSyh3aW5kb3dDb25maWd1cmVFdmVudENhbGxiYWNrKSwgJmdlb21ldHJ5
KTsKICAgICAgICAgICAgIGlmIChuZWVkc01vdmUpCiAgICAgICAgICAgICAgICAgZ3RrX3dpbmRv
d19tb3ZlKEdUS19XSU5ET1cod2luZG93KSwgZ2VvbWV0cnkueCwgZ2VvbWV0cnkueSk7CisjZW5k
aWYgLy8gIVVTRShHVEs0KQogICAgICAgICAgICAgaWYgKG5lZWRzUmVzaXplKQogICAgICAgICAg
ICAgICAgIGd0a193aW5kb3dfcmVzaXplKEdUS19XSU5ET1cod2luZG93KSwgZ2VvbWV0cnkud2lk
dGgsIGdlb21ldHJ5LmhlaWdodCk7CiAKQEAgLTIxMiw3ICsyMTgsNyBAQCBwcml2YXRlOgogICAg
ICAgICAgICAgZ19zaWduYWxfaGFuZGxlcl9kaXNjb25uZWN0KHdpbmRvdywgc2lnbmFsSUQpOwog
ICAgICAgICB9IGVsc2UKICAgICAgICAgICAgIHdlYmtpdFdpbmRvd1Byb3BlcnRpZXNTZXRHZW9t
ZXRyeSh3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dpbmRvd19wcm9wZXJ0aWVzKG1fd2ViVmlldyksICZn
ZW9tZXRyeSk7Ci0jZW5kaWYKKyNlbmRpZiAvLyBQTEFURk9STShHVEspCiAgICAgfQogCiAgICAg
dm9pZCB3aW5kb3dGcmFtZShXZWJQYWdlUHJveHkmLCBGdW5jdGlvbjx2b2lkKFdlYkNvcmU6OkZs
b2F0UmVjdCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGZpbmFsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396525</attachid>
            <date>2020-04-15 06:42:26 -0700</date>
            <delta_ts>2020-04-15 06:44:40 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210463-20200415164224.patch</filename>
            <type>text/plain</type>
            <size>9029</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJkMTc2ZDJhMGMyNzZm
ZDI2N2ZjMTE0MmVkNWI4M2U5N2UxMmM1Mi4uZGI4ZTkzZjdkNTdmZTExM2U3MTIxNGNiMDBiZDYz
MzE4ODEwOTVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA0LTE0ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IFByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBB
ZGFwdCB1dGlsaXR5IGZ1bmN0aW9ucyB0byBHVEs0LCBhbmQgcHJvdmlkZSByZXBsYWNlbWVudCBp
bXBsZW1lbnRhdGlvbnMgZm9yIHRoZQorICAgICAgICBndGtfd2lkZ2V0X2dldF90b2xldmVsKCkg
YW5kIGd0a193aWRnZXRfaXNfdG9wbGV2ZWwoKSBmdW5jdGlvbnMgZm9yIEdUSzQgYnVpbGRzLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1dpbmRvd0dldE9yaWdpbik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2lu
dCk6IE1vdmUgY29kZSB1c2VkIHRvIGZpbmQgdGhlIHdpbmRvdyBwb3NpdGlvbgorICAgICAgICBp
bnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24sIGFuZCB1c2UgaXQgdG8gYXZvaWQgdGhlIFVTRShHVEs0
KSBjb25kaXRpb25hbCBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6d2lkZ2V0SXNPbnNjcmVlblRv
cGxldmVsV2luZG93KTogQWRhcHQgdG8gbWFrZSBpdCB3b3JrIHdpdGggR1RLNC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKGd0a193aWRn
ZXRfaXNfdG9wbGV2ZWwpOiBBbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBmb3IgR1RLNC4KKyAg
ICAgICAgKGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKTogRGl0dG8uCisgICAgICAgIChndGtfd2lu
ZG93X2dldF9wb3NpdGlvbik6IERpdHRvLgorCiAyMDIwLTA0LTE1ICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEFkYXB0IHRvIGN1
cnNvciBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0NTFiMTMwMDllZmU0ZmVlZmQxNTAyNGEwZDQy
OGM4NzE4N2U1NzgxLi5hY2Q0OTY1MTgxNGRmMTg2MjIwZjQwZjFiMDY5Y2FhOGViMzA0ZWVjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTE0ICBBZHJpYW4gUGVyZXogZGUgQ2Fz
dHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRdIFByb3ZpZGUgYW4gYWx0
ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRVSUNsaWVudC5jcHA6IEFkYXB0IHRvIHRha2UgaW50byBhY2NvdW50IHRoYXQgR1RLNCBk
b2VzIG5vdAorICAgICAgICBwcm92aWRlIHRoZSBHdGtXaWRnZXQuY29uZmlndXJlLWV2ZW50IHNp
Z25hbC4KKwogMjAyMC0wNC0xNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxhd2FAYXBw
bGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjU5ODkxLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA0ZjI2ZDQxNDAx
ZDNlODkxZGNjYzRmZGZlYjA3ZjgxODkzMGE3NDIzLi5mMDNlZDU1NTUwNGU3M2I1YjZjNzQ2ZDdi
NWZjZmNhOTM4ZjhlMThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRp
bGl0aWVzLmNwcApAQCAtMTksMTIgKzE5LDI3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiR3RrVXRpbGl0aWVzLmgiCiAKKyNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgiCiAjaW5j
bHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8d3RmL2ds
aWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBJbnRQb2lu
dCBndGtXaW5kb3dHZXRPcmlnaW4oR3RrV2lkZ2V0KiB3aW5kb3cpCit7CisgICAgaW50IHggPSAw
LCB5ID0gMDsKKworI2lmIFVTRShHVEs0KQorICAgIFVOVVNFRF9QQVJBTSh3aW5kb3cpOworI2Vs
c2UKKyAgICBpZiAoYXV0byogZ2RrV2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpbmRv
dykpCisgICAgICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtXaW5kb3csICZ4LCAmeSk7Cisj
ZW5kaWYgLy8gIVVTRShHVEs0KQorCisgICAgcmV0dXJuIEludFBvaW50KHgsIHkpOworfQorCiBJ
bnRQb2ludCBjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KEd0a1dpZGdldCogd2lkZ2V0
LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMgYWN0dWFs
bHkgYSB2ZXJ5IHRyaWNreSBvcGVyYXRpb24gYW5kIHRoZSByZXN1bHRzIG9mIHRoaXMgZnVuY3Rp
b24gc2hvdWxkCkBAIC0zNSwyMiArNTAsMjMgQEAgSW50UG9pbnQgY29udmVydFdpZGdldFBvaW50
VG9TY3JlZW5Qb2ludChHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50UG9pbnQmIHBvaW4KICAg
ICBpZiAoIXRvcGxldmVsV2lkZ2V0IHx8ICFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRvcGxldmVs
V2lkZ2V0KSB8fCAhR1RLX0lTX1dJTkRPVyh0b3BsZXZlbFdpZGdldCkpCiAgICAgICAgIHJldHVy
biBwb2ludDsKIAotICAgIEdka1dpbmRvdyogZ2RrV2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2lu
ZG93KHRvcGxldmVsV2lkZ2V0KTsKLSAgICBpZiAoIWdka1dpbmRvdykKLSAgICAgICAgcmV0dXJu
IHBvaW50OwotCiAgICAgaW50IHhJbldpbmRvdywgeUluV2luZG93OwogICAgIGd0a193aWRnZXRf
dHJhbnNsYXRlX2Nvb3JkaW5hdGVzKHdpZGdldCwgdG9wbGV2ZWxXaWRnZXQsIHBvaW50LngoKSwg
cG9pbnQueSgpLCAmeEluV2luZG93LCAmeUluV2luZG93KTsKIAotICAgIGludCB3aW5kb3dPcmln
aW5YLCB3aW5kb3dPcmlnaW5ZOwotICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtXaW5kb3cs
ICZ3aW5kb3dPcmlnaW5YLCAmd2luZG93T3JpZ2luWSk7Ci0KLSAgICByZXR1cm4gSW50UG9pbnQo
d2luZG93T3JpZ2luWCArIHhJbldpbmRvdywgd2luZG93T3JpZ2luWSArIHlJbldpbmRvdyk7Cisg
ICAgY29uc3QgYXV0byBvcmlnaW4gPSBndGtXaW5kb3dHZXRPcmlnaW4odG9wbGV2ZWxXaWRnZXQp
OworICAgIHJldHVybiBJbnRQb2ludChvcmlnaW4ueCgpICsgeEluV2luZG93LCBvcmlnaW4ueSgp
ICsgeUluV2luZG93KTsKIH0KIAogYm9vbCB3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxXaW5kb3co
R3RrV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgcmV0dXJuIHdpZGdldCAmJiBndGtfd2lkZ2V0X2lz
X3RvcGxldmVsKHdpZGdldCkgJiYgR1RLX0lTX1dJTkRPVyh3aWRnZXQpICYmICFHVEtfSVNfT0ZG
U0NSRUVOX1dJTkRPVyh3aWRnZXQpOworICAgIGNvbnN0IGJvb2wgaXNUb3BsZXZlbFdpZGdldCA9
IHdpZGdldCAmJiBndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHdpZGdldCk7CisKKyNpZiBVU0UoR1RL
NCkKKyAgICAvLyBBIHRvcGxldmVsIHdpZGdldCBpbiBHVEs0IGlzIGFsd2F5cyBhIHdpbmRvdywg
dGhlcmUgaXMgbm8gbmVlZCBmb3IgZnVydGhlciBjaGVja3MuCisgICAgcmV0dXJuIGlzVG9wbGV2
ZWxXaWRnZXQ7CisjZWxzZQorICAgIHJldHVybiBpc1RvcGxldmVsV2lkZ2V0ICYmIEdUS19JU19X
SU5ET1cod2lkZ2V0KSAmJiAhR1RLX0lTX09GRlNDUkVFTl9XSU5ET1cod2lkZ2V0KTsKKyNlbmRp
ZiAvLyBVU0UoR1RLNCkKIH0KIAogdGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2d0ay9HdGtWZXJzaW9uaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMzYmVjY2MwYTAyNzZlMTgyNTUxNmE5
ODY2ODJhNWUwOTNhOTM2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBU
aGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5k
L29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5l
cmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5
b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBidXQgV0lU
SE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgor
ICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBk
ZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhpcyBsaWJy
YXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisgKiB0aGUg
RnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRo
IEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKKyNpZiBVU0UoR1RLNCkKKworc3RhdGljIGlu
bGluZSBnYm9vbGVhbgorZ3RrX3dpZGdldF9pc190b3BsZXZlbChHdGtXaWRnZXQqIHdpZGdldCkK
K3sKKyAgICAvLyBJbiB0aGVvcnkgYW55dGhpbmcgd2hpY2ggaW1wbGVtZW50cyBHdGtSb290IGNh
biBiZSBhIHRvcGxldmVsIHdpZGdldCwKKyAgICAvLyBpbiBwcmFjdGljZSBvbmx5IHRoZSBvbmVz
IHdoaWNoIGFyZSBHdGtXaW5kb3cgb3IgZGVyaXZlZCBuZWVkIHRvIGJlCisgICAgLy8gY29uc2lk
ZXJlZCBoZXJlLgorICAgIHJldHVybiBHVEtfSVNfV0lORE9XKHdpZGdldCk7Cit9CisKK3N0YXRp
YyBpbmxpbmUgR3RrV2lkZ2V0KgorZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR3RrV2lkZ2V0KiB3
aWRnZXQpCit7CisgICAgcmV0dXJuIEdUS19XSURHRVQoZ3RrX3dpZGdldF9nZXRfcm9vdCh3aWRn
ZXQpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitndGtfd2luZG93X2dldF9wb3NpdGlvbihH
dGtXaW5kb3cqLCBpbnQqIHgsIGludCogeSkKK3sKKyAgICAqeCA9ICp5ID0gMDsKK30KKworI2Vu
ZGlmIC8vIFVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IGU3YTQ3OWJmZWI1MmU0OWZlN2ZlZGQxNjc1N2Jl
ZWM0YzY3ZGNlN2YuLjU5MWM0YTYxNTVhM2NkNjEzOTRhNjQ3N2EwOTdmMjZjNzNmZTlmYzIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVu
dC5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRXaW5kb3dQ
cm9wZXJ0aWVzU2V0UmVzaXphYmxlKHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X3Byb3BlcnRp
ZXMobV93ZWJWaWV3KSwgcmVzaXphYmxlKTsKICAgICB9CiAKLSNpZiBQTEFURk9STShHVEspCisj
aWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAgc3RhdGljIGdib29sZWFuIHdpbmRv
d0NvbmZpZ3VyZUV2ZW50Q2FsbGJhY2soR3RrV2luZG93KiB3aW5kb3csIEdka0V2ZW50Q29uZmln
dXJlKiwgR2RrUmVjdGFuZ2xlKiB0YXJnZXRHZW9tZXRyeSkKICAgICB7CiAgICAgICAgIEdka1Jl
Y3RhbmdsZSBnZW9tZXRyeSA9IHsgMCwgMCwgMCwgMCB9OwpAQCAtMTY1LDcgKzE2NSw3IEBAIHBy
aXZhdGU6CiAgICAgewogICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwogICAgIH0K
LSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogCiAgICAgdm9p
ZCBzZXRXaW5kb3dGcmFtZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9hdFJlY3Qm
IGZyYW1lKSBmaW5hbAogICAgIHsKQEAgLTE3NCwxMCArMTc0LDEyIEBAIHByaXZhdGU6CiAgICAg
ICAgIEd0a1dpZGdldCogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RLX1dJREdF
VChtX3dlYlZpZXcpKTsKICAgICAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19pc19jb250cm9sbGVk
X2J5X2F1dG9tYXRpb24obV93ZWJWaWV3KSAmJiBXZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVuVG9w
bGV2ZWxXaW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNpYmxlKHdpbmRvdykpIHsK
ICAgICAgICAgICAgIGJvb2wgbmVlZHNNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAvLyBRdWVy
eWluZyBhbmQgc2V0dGluZyB3aW5kb3cgcG9zaXRpb25zIGlzIG5vdCBzdXBwb3J0ZWQgaW4gR1RL
NC4KKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICAvLyBQb3NpdGlvbiBhIHRvcGxldmVsIHdp
bmRvdyBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyIHdheWxhbmQuCiAjaWYgUExBVEZPUk0oV0FZTEFO
RCkKICAgICAgICAgICAgIGlmIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJlZERpc3Bs
YXkoKS50eXBlKCkgIT0gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXYXlsYW5kKQot
I2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKICAgICAgICAgICAgIHsKICAgICAg
ICAgICAgICAgICBpZiAoZ2VvbWV0cnkueCA+PSAwICYmIGdlb21ldHJ5LnkgPj0gMCkgewogICAg
ICAgICAgICAgICAgICAgICBpbnQgeCwgeTsKQEAgLTE4NSw2ICsxODcsNyBAQCBwcml2YXRlOgog
ICAgICAgICAgICAgICAgICAgICBuZWVkc01vdmUgPSB4ICE9IGdlb21ldHJ5LnggfHwgeSAhPSBn
ZW9tZXRyeS55OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyNlbmRpZiAvLyAh
VVNFKEdUSzQpCiAKICAgICAgICAgICAgIGJvb2wgbmVlZHNSZXNpemUgPSBmYWxzZTsKICAgICAg
ICAgICAgIGlmIChnZW9tZXRyeS53aWR0aCA+IDAgJiYgZ2VvbWV0cnkuaGVpZ2h0ID4gMCkgewpA
QCAtMTk2LDkgKzE5OSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFuZWVkc01vdmUg
JiYgIW5lZWRzUmVzaXplKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICAgICAg
Ly8gVGhlcmUgaXMgbm8gR3RrV2lkZ2V0Ojpjb25maWd1cmUtZXZlbnQgaW4gR1RLNCwgbW92ZSBp
cyBub3Qgc3VwcG9ydGVkLgorI2lmICFVU0UoR1RLNCkKICAgICAgICAgICAgIGF1dG8gc2lnbmFs
SUQgPSBnX3NpZ25hbF9jb25uZWN0KHdpbmRvdywgImNvbmZpZ3VyZS1ldmVudCIsIEdfQ0FMTEJB
Q0sod2luZG93Q29uZmlndXJlRXZlbnRDYWxsYmFjayksICZnZW9tZXRyeSk7CiAgICAgICAgICAg
ICBpZiAobmVlZHNNb3ZlKQogICAgICAgICAgICAgICAgIGd0a193aW5kb3dfbW92ZShHVEtfV0lO
RE9XKHdpbmRvdyksIGdlb21ldHJ5LngsIGdlb21ldHJ5LnkpOworI2VuZGlmIC8vICFVU0UoR1RL
NCkKICAgICAgICAgICAgIGlmIChuZWVkc1Jlc2l6ZSkKICAgICAgICAgICAgICAgICBndGtfd2lu
ZG93X3Jlc2l6ZShHVEtfV0lORE9XKHdpbmRvdyksIGdlb21ldHJ5LndpZHRoLCBnZW9tZXRyeS5o
ZWlnaHQpOwogCkBAIC0yMTIsNyArMjE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAgIGdfc2ln
bmFsX2hhbmRsZXJfZGlzY29ubmVjdCh3aW5kb3csIHNpZ25hbElEKTsKICAgICAgICAgfSBlbHNl
CiAgICAgICAgICAgICB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0R2VvbWV0cnkod2Via2l0X3dl
Yl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhtX3dlYlZpZXcpLCAmZ2VvbWV0cnkpOwotI2Vu
ZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQogICAgIH0KIAogICAgIHZvaWQgd2luZG93RnJh
bWUoV2ViUGFnZVByb3h5JiwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpGbG9hdFJlY3QpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKSBmaW5hbAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396526</attachid>
            <date>2020-04-15 06:44:45 -0700</date>
            <delta_ts>2020-04-15 07:25:18 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-210463-20200415164443.patch</filename>
            <type>text/plain</type>
            <size>9035</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmJkMTc2ZDJhMGMyNzZm
ZDI2N2ZjMTE0MmVkNWI4M2U5N2UxMmM1Mi4uZGI4ZTkzZjdkNTdmZTExM2U3MTIxNGNiMDBiZDYz
MzE4ODEwOTVkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA0LTE0ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRd
IFByb3ZpZGUgYW4gYWx0ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgp
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMK
KworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICBB
ZGFwdCB1dGlsaXR5IGZ1bmN0aW9ucyB0byBHVEs0LCBhbmQgcHJvdmlkZSByZXBsYWNlbWVudCBp
bXBsZW1lbnRhdGlvbnMgZm9yIHRoZQorICAgICAgICBndGtfd2lkZ2V0X2dldF90b2xldmVsKCkg
YW5kIGd0a193aWRnZXRfaXNfdG9wbGV2ZWwoKSBmdW5jdGlvbnMgZm9yIEdUSzQgYnVpbGRzLgor
CisgICAgICAgIE5vIG5ldyB0ZXN0cyBuZWVkZWQuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Omd0a1dpbmRvd0dldE9yaWdpbik6
IEFkZGVkLgorICAgICAgICAoV2ViQ29yZTo6Y29udmVydFdpZGdldFBvaW50VG9TY3JlZW5Qb2lu
dCk6IE1vdmUgY29kZSB1c2VkIHRvIGZpbmQgdGhlIHdpbmRvdyBwb3NpdGlvbgorICAgICAgICBp
bnRvIGEgc2VwYXJhdGUgZnVuY3Rpb24sIGFuZCB1c2UgaXQgdG8gYXZvaWQgdGhlIFVTRShHVEs0
KSBjb25kaXRpb25hbCBoZXJlLgorICAgICAgICAoV2ViQ29yZTo6d2lkZ2V0SXNPbnNjcmVlblRv
cGxldmVsV2luZG93KTogQWRhcHQgdG8gbWFrZSBpdCB3b3JrIHdpdGggR1RLNC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9ndGsvR3RrVmVyc2lvbmluZy5oOiBBZGRlZC4KKyAgICAgICAgKGd0a193aWRn
ZXRfaXNfdG9wbGV2ZWwpOiBBbHRlcm5hdGl2ZSBpbXBsZW1lbnRhdGlvbiBmb3IgR1RLNC4KKyAg
ICAgICAgKGd0a193aWRnZXRfZ2V0X3RvcGxldmVsKTogRGl0dG8uCisgICAgICAgIChndGtfd2lu
ZG93X2dldF9wb3NpdGlvbik6IERpdHRvLgorCiAyMDIwLTA0LTE1ICBBZHJpYW4gUGVyZXogZGUg
Q2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUSzRdIEFkYXB0IHRvIGN1
cnNvciBBUEkgY2hhbmdlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA0NTFiMTMwMDllZmU0ZmVlZmQxNTAyNGEwZDQy
OGM4NzE4N2U1NzgxLi45YzhlMDYwNzg2OTYzNDc1ZmVlN2YyYjM2M2RmN2VlMmIyYzg0NzJhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTA0LTE0ICBBZHJpYW4gUGVyZXogZGUgQ2Fz
dHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUSzRdIFByb3ZpZGUgYW4gYWx0
ZXJuYXRpdmUgdG8gZ3RrX3dpZGdldF97Z2V0LGlzfV90b3BsZXZlbCgpCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTA0NjMKKworICAgICAgICBSZXZp
ZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBvcy4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6IEFkYXB0IHRvIHRha2UgaW50byBhY2NvdW50IHRoYXQg
R1RLNCBkb2VzIG5vdAorICAgICAgICBwcm92aWRlIHRoZSBHdGtXaWRnZXQuY29uZmlndXJlLWV2
ZW50IHNpZ25hbC4KKwogMjAyMC0wNC0xNSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWJvdWhhbGxh
d2FAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjU5ODkxLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1V0aWxpdGllcy5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvR3RrVXRpbGl0aWVzLmNwcAppbmRleCA0ZjI2
ZDQxNDAxZDNlODkxZGNjYzRmZGZlYjA3ZjgxODkzMGE3NDIzLi5mMDNlZDU1NTUwNGU3M2I1YjZj
NzQ2ZDdiNWZjZmNhOTM4ZjhlMThhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ndGsvR3RrVXRpbGl0aWVzLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
R3RrVXRpbGl0aWVzLmNwcApAQCAtMTksMTIgKzE5LDI3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiR3RrVXRpbGl0aWVzLmgiCiAKKyNpbmNsdWRlICJHdGtWZXJzaW9uaW5nLmgi
CiAjaW5jbHVkZSAiSW50UG9pbnQuaCIKICNpbmNsdWRlIDxndGsvZ3RrLmg+CiAjaW5jbHVkZSA8
d3RmL2dsaWIvR1VuaXF1ZVB0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0YXRpYyBJ
bnRQb2ludCBndGtXaW5kb3dHZXRPcmlnaW4oR3RrV2lkZ2V0KiB3aW5kb3cpCit7CisgICAgaW50
IHggPSAwLCB5ID0gMDsKKworI2lmIFVTRShHVEs0KQorICAgIFVOVVNFRF9QQVJBTSh3aW5kb3cp
OworI2Vsc2UKKyAgICBpZiAoYXV0byogZ2RrV2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93
KHdpbmRvdykpCisgICAgICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtXaW5kb3csICZ4LCAm
eSk7CisjZW5kaWYgLy8gIVVTRShHVEs0KQorCisgICAgcmV0dXJuIEludFBvaW50KHgsIHkpOwor
fQorCiBJbnRQb2ludCBjb252ZXJ0V2lkZ2V0UG9pbnRUb1NjcmVlblBvaW50KEd0a1dpZGdldCog
d2lkZ2V0LCBjb25zdCBJbnRQb2ludCYgcG9pbnQpCiB7CiAgICAgLy8gRklYTUU6IFRoaXMgaXMg
YWN0dWFsbHkgYSB2ZXJ5IHRyaWNreSBvcGVyYXRpb24gYW5kIHRoZSByZXN1bHRzIG9mIHRoaXMg
ZnVuY3Rpb24gc2hvdWxkCkBAIC0zNSwyMiArNTAsMjMgQEAgSW50UG9pbnQgY29udmVydFdpZGdl
dFBvaW50VG9TY3JlZW5Qb2ludChHdGtXaWRnZXQqIHdpZGdldCwgY29uc3QgSW50UG9pbnQmIHBv
aW4KICAgICBpZiAoIXRvcGxldmVsV2lkZ2V0IHx8ICFndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHRv
cGxldmVsV2lkZ2V0KSB8fCAhR1RLX0lTX1dJTkRPVyh0b3BsZXZlbFdpZGdldCkpCiAgICAgICAg
IHJldHVybiBwb2ludDsKIAotICAgIEdka1dpbmRvdyogZ2RrV2luZG93ID0gZ3RrX3dpZGdldF9n
ZXRfd2luZG93KHRvcGxldmVsV2lkZ2V0KTsKLSAgICBpZiAoIWdka1dpbmRvdykKLSAgICAgICAg
cmV0dXJuIHBvaW50OwotCiAgICAgaW50IHhJbldpbmRvdywgeUluV2luZG93OwogICAgIGd0a193
aWRnZXRfdHJhbnNsYXRlX2Nvb3JkaW5hdGVzKHdpZGdldCwgdG9wbGV2ZWxXaWRnZXQsIHBvaW50
LngoKSwgcG9pbnQueSgpLCAmeEluV2luZG93LCAmeUluV2luZG93KTsKIAotICAgIGludCB3aW5k
b3dPcmlnaW5YLCB3aW5kb3dPcmlnaW5ZOwotICAgIGdka193aW5kb3dfZ2V0X29yaWdpbihnZGtX
aW5kb3csICZ3aW5kb3dPcmlnaW5YLCAmd2luZG93T3JpZ2luWSk7Ci0KLSAgICByZXR1cm4gSW50
UG9pbnQod2luZG93T3JpZ2luWCArIHhJbldpbmRvdywgd2luZG93T3JpZ2luWSArIHlJbldpbmRv
dyk7CisgICAgY29uc3QgYXV0byBvcmlnaW4gPSBndGtXaW5kb3dHZXRPcmlnaW4odG9wbGV2ZWxX
aWRnZXQpOworICAgIHJldHVybiBJbnRQb2ludChvcmlnaW4ueCgpICsgeEluV2luZG93LCBvcmln
aW4ueSgpICsgeUluV2luZG93KTsKIH0KIAogYm9vbCB3aWRnZXRJc09uc2NyZWVuVG9wbGV2ZWxX
aW5kb3coR3RrV2lkZ2V0KiB3aWRnZXQpCiB7Ci0gICAgcmV0dXJuIHdpZGdldCAmJiBndGtfd2lk
Z2V0X2lzX3RvcGxldmVsKHdpZGdldCkgJiYgR1RLX0lTX1dJTkRPVyh3aWRnZXQpICYmICFHVEtf
SVNfT0ZGU0NSRUVOX1dJTkRPVyh3aWRnZXQpOworICAgIGNvbnN0IGJvb2wgaXNUb3BsZXZlbFdp
ZGdldCA9IHdpZGdldCAmJiBndGtfd2lkZ2V0X2lzX3RvcGxldmVsKHdpZGdldCk7CisKKyNpZiBV
U0UoR1RLNCkKKyAgICAvLyBBIHRvcGxldmVsIHdpZGdldCBpbiBHVEs0IGlzIGFsd2F5cyBhIHdp
bmRvdywgdGhlcmUgaXMgbm8gbmVlZCBmb3IgZnVydGhlciBjaGVja3MuCisgICAgcmV0dXJuIGlz
VG9wbGV2ZWxXaWRnZXQ7CisjZWxzZQorICAgIHJldHVybiBpc1RvcGxldmVsV2lkZ2V0ICYmIEdU
S19JU19XSU5ET1cod2lkZ2V0KSAmJiAhR1RLX0lTX09GRlNDUkVFTl9XSU5ET1cod2lkZ2V0KTsK
KyNlbmRpZiAvLyBVU0UoR1RLNCkKIH0KIAogdGVtcGxhdGU8PgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3RrL0d0a1ZlcnNpb25pbmcuaCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZGMzYmVjY2MwYTAyNzZlMTgy
NTUxNmE5ODY2ODJhNWUwOTNhOTM2NQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2d0ay9HdGtWZXJzaW9uaW5nLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENv
cHlyaWdodCAoQykgMjAyMCBJZ2FsaWEgUy5MLgorICogQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
CisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUg
aXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFy
eSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9y
IChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisgKiBi
dXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50
eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQ
T1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3Ig
bW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2Yg
dGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGggdGhp
cyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCisg
KiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQs
IEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlIDxndGsvZ3RrLmg+CisKKyNpZiBVU0UoR1RLNCkKKworc3Rh
dGljIGlubGluZSBnYm9vbGVhbgorZ3RrX3dpZGdldF9pc190b3BsZXZlbChHdGtXaWRnZXQqIHdp
ZGdldCkKK3sKKyAgICAvLyBJbiB0aGVvcnkgYW55dGhpbmcgd2hpY2ggaW1wbGVtZW50cyBHdGtS
b290IGNhbiBiZSBhIHRvcGxldmVsIHdpZGdldCwKKyAgICAvLyBpbiBwcmFjdGljZSBvbmx5IHRo
ZSBvbmVzIHdoaWNoIGFyZSBHdGtXaW5kb3cgb3IgZGVyaXZlZCBuZWVkIHRvIGJlCisgICAgLy8g
Y29uc2lkZXJlZCBoZXJlLgorICAgIHJldHVybiBHVEtfSVNfV0lORE9XKHdpZGdldCk7Cit9CisK
K3N0YXRpYyBpbmxpbmUgR3RrV2lkZ2V0KgorZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR3RrV2lk
Z2V0KiB3aWRnZXQpCit7CisgICAgcmV0dXJuIEdUS19XSURHRVQoZ3RrX3dpZGdldF9nZXRfcm9v
dCh3aWRnZXQpKTsKK30KKworc3RhdGljIGlubGluZSB2b2lkCitndGtfd2luZG93X2dldF9wb3Np
dGlvbihHdGtXaW5kb3cqLCBpbnQqIHgsIGludCogeSkKK3sKKyAgICAqeCA9ICp5ID0gMDsKK30K
KworI2VuZGlmIC8vIFVTRShHVEs0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCmluZGV4IGU3YTQ3OWJmZWI1MmU0OWZlN2ZlZGQx
Njc1N2JlZWM0YzY3ZGNlN2YuLjU5MWM0YTYxNTVhM2NkNjEzOTRhNjQ3N2EwOTdmMjZjNzNmZTlm
YzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJ
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRV
SUNsaWVudC5jcHAKQEAgLTEzOSw3ICsxMzksNyBAQCBwcml2YXRlOgogICAgICAgICB3ZWJraXRX
aW5kb3dQcm9wZXJ0aWVzU2V0UmVzaXphYmxlKHdlYmtpdF93ZWJfdmlld19nZXRfd2luZG93X3By
b3BlcnRpZXMobV93ZWJWaWV3KSwgcmVzaXphYmxlKTsKICAgICB9CiAKLSNpZiBQTEFURk9STShH
VEspCisjaWYgUExBVEZPUk0oR1RLKSAmJiAhVVNFKEdUSzQpCiAgICAgc3RhdGljIGdib29sZWFu
IHdpbmRvd0NvbmZpZ3VyZUV2ZW50Q2FsbGJhY2soR3RrV2luZG93KiB3aW5kb3csIEdka0V2ZW50
Q29uZmlndXJlKiwgR2RrUmVjdGFuZ2xlKiB0YXJnZXRHZW9tZXRyeSkKICAgICB7CiAgICAgICAg
IEdka1JlY3RhbmdsZSBnZW9tZXRyeSA9IHsgMCwgMCwgMCwgMCB9OwpAQCAtMTY1LDcgKzE2NSw3
IEBAIHByaXZhdGU6CiAgICAgewogICAgICAgICBSdW5Mb29wOjpjdXJyZW50KCkuc3RvcCgpOwog
ICAgIH0KLSNlbmRpZgorI2VuZGlmIC8vIFBMQVRGT1JNKEdUSykgJiYgIVVTRShHVEs0KQogCiAg
ICAgdm9pZCBzZXRXaW5kb3dGcmFtZShXZWJQYWdlUHJveHkmLCBjb25zdCBXZWJDb3JlOjpGbG9h
dFJlY3QmIGZyYW1lKSBmaW5hbAogICAgIHsKQEAgLTE3NCwxMCArMTc0LDEyIEBAIHByaXZhdGU6
CiAgICAgICAgIEd0a1dpZGdldCogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfdG9wbGV2ZWwoR1RL
X1dJREdFVChtX3dlYlZpZXcpKTsKICAgICAgICAgaWYgKHdlYmtpdF93ZWJfdmlld19pc19jb250
cm9sbGVkX2J5X2F1dG9tYXRpb24obV93ZWJWaWV3KSAmJiBXZWJDb3JlOjp3aWRnZXRJc09uc2Ny
ZWVuVG9wbGV2ZWxXaW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNpYmxlKHdpbmRv
dykpIHsKICAgICAgICAgICAgIGJvb2wgbmVlZHNNb3ZlID0gZmFsc2U7CisgICAgICAgICAgICAv
LyBRdWVyeWluZyBhbmQgc2V0dGluZyB3aW5kb3cgcG9zaXRpb25zIGlzIG5vdCBzdXBwb3J0ZWQg
aW4gR1RLNC4KKyNpZiAhVVNFKEdUSzQpCiAgICAgICAgICAgICAvLyBQb3NpdGlvbiBhIHRvcGxl
dmVsIHdpbmRvdyBpcyBub3Qgc3VwcG9ydGVkIHVuZGVyIHdheWxhbmQuCiAjaWYgUExBVEZPUk0o
V0FZTEFORCkKICAgICAgICAgICAgIGlmIChXZWJDb3JlOjpQbGF0Zm9ybURpc3BsYXk6OnNoYXJl
ZERpc3BsYXkoKS50eXBlKCkgIT0gV2ViQ29yZTo6UGxhdGZvcm1EaXNwbGF5OjpUeXBlOjpXYXls
YW5kKQotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oV0FZTEFORCkKICAgICAgICAgICAgIHsK
ICAgICAgICAgICAgICAgICBpZiAoZ2VvbWV0cnkueCA+PSAwICYmIGdlb21ldHJ5LnkgPj0gMCkg
ewogICAgICAgICAgICAgICAgICAgICBpbnQgeCwgeTsKQEAgLTE4NSw2ICsxODcsNyBAQCBwcml2
YXRlOgogICAgICAgICAgICAgICAgICAgICBuZWVkc01vdmUgPSB4ICE9IGdlb21ldHJ5LnggfHwg
eSAhPSBnZW9tZXRyeS55OwogICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgIH0KKyNlbmRp
ZiAvLyAhVVNFKEdUSzQpCiAKICAgICAgICAgICAgIGJvb2wgbmVlZHNSZXNpemUgPSBmYWxzZTsK
ICAgICAgICAgICAgIGlmIChnZW9tZXRyeS53aWR0aCA+IDAgJiYgZ2VvbWV0cnkuaGVpZ2h0ID4g
MCkgewpAQCAtMTk2LDkgKzE5OSwxMiBAQCBwcml2YXRlOgogICAgICAgICAgICAgaWYgKCFuZWVk
c01vdmUgJiYgIW5lZWRzUmVzaXplKQogICAgICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAg
ICAgICAgLy8gVGhlcmUgaXMgbm8gR3RrV2lkZ2V0Ojpjb25maWd1cmUtZXZlbnQgaW4gR1RLNCwg
bW92ZSBpcyBub3Qgc3VwcG9ydGVkLgorI2lmICFVU0UoR1RLNCkKICAgICAgICAgICAgIGF1dG8g
c2lnbmFsSUQgPSBnX3NpZ25hbF9jb25uZWN0KHdpbmRvdywgImNvbmZpZ3VyZS1ldmVudCIsIEdf
Q0FMTEJBQ0sod2luZG93Q29uZmlndXJlRXZlbnRDYWxsYmFjayksICZnZW9tZXRyeSk7CiAgICAg
ICAgICAgICBpZiAobmVlZHNNb3ZlKQogICAgICAgICAgICAgICAgIGd0a193aW5kb3dfbW92ZShH
VEtfV0lORE9XKHdpbmRvdyksIGdlb21ldHJ5LngsIGdlb21ldHJ5LnkpOworI2VuZGlmIC8vICFV
U0UoR1RLNCkKICAgICAgICAgICAgIGlmIChuZWVkc1Jlc2l6ZSkKICAgICAgICAgICAgICAgICBn
dGtfd2luZG93X3Jlc2l6ZShHVEtfV0lORE9XKHdpbmRvdyksIGdlb21ldHJ5LndpZHRoLCBnZW9t
ZXRyeS5oZWlnaHQpOwogCkBAIC0yMTIsNyArMjE4LDcgQEAgcHJpdmF0ZToKICAgICAgICAgICAg
IGdfc2lnbmFsX2hhbmRsZXJfZGlzY29ubmVjdCh3aW5kb3csIHNpZ25hbElEKTsKICAgICAgICAg
fSBlbHNlCiAgICAgICAgICAgICB3ZWJraXRXaW5kb3dQcm9wZXJ0aWVzU2V0R2VvbWV0cnkod2Vi
a2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhtX3dlYlZpZXcpLCAmZ2VvbWV0cnkp
OwotI2VuZGlmCisjZW5kaWYgLy8gUExBVEZPUk0oR1RLKQogICAgIH0KIAogICAgIHZvaWQgd2lu
ZG93RnJhbWUoV2ViUGFnZVByb3h5JiwgRnVuY3Rpb248dm9pZChXZWJDb3JlOjpGbG9hdFJlY3Qp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKSBmaW5hbAo=
</data>

          </attachment>
      

    </bug>

</bugzilla>