<?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>198995</bug_id>
          
          <creation_ts>2019-06-19 05:28:27 -0700</creation_ts>
          <short_desc>[GTK] Enable navigation swipe layout tests</short_desc>
          <delta_ts>2019-06-21 07:05:25 -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 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="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1546030</commentid>
    <comment_count>0</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-19 05:28:27 -0700</bug_when>
    <thetext>See the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546034</commentid>
    <comment_count>1</comment_count>
      <attachid>372455</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-19 05:47:58 -0700</bug_when>
    <thetext>Created attachment 372455
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546035</commentid>
    <comment_count>2</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-19 05:49:16 -0700</bug_when>
    <thetext>Unfortunately, this doesn&apos;t catch the current PSON-related regression, since none of the tests trigger PSON. Some help with that would be appreciated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546037</commentid>
    <comment_count>3</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-19 05:53:09 -0700</bug_when>
    <thetext>(In reply to Alexander Mikhaylenko from comment #2)
&gt; Unfortunately, this doesn&apos;t catch the current PSON-related regression, since
&gt; none of the tests trigger PSON. Some help with that would be appreciated.

what regression?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546039</commentid>
    <comment_count>4</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-19 05:57:02 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #3)
&gt; (In reply to Alexander Mikhaylenko from comment #2)
&gt; &gt; Unfortunately, this doesn&apos;t catch the current PSON-related regression, since
&gt; &gt; none of the tests trigger PSON. Some help with that would be appreciated.
&gt; 
&gt; what regression?

https://bugs.webkit.org/show_bug.cgi?id=198996</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546041</commentid>
    <comment_count>5</comment_count>
      <attachid>372455</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-19 05:59:01 -0700</bug_when>
    <thetext>Comment on attachment 372455
Patch

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

&gt; Source/WebKit/UIProcess/gtk/ViewGestureControllerGtk.cpp:443
&gt; +    GdkEvent* event = createScrollEvent(m_webPageProxy.viewWidget(), delta, 0);

This event is leaked, I think. Better use GUniquePtr to ensure we don&apos;t leak it.

&gt; Source/WebKit/UIProcess/gtk/ViewGestureControllerGtk.cpp:451
&gt; +    GdkEvent* event = createScrollEvent(m_webPageProxy.viewWidget(), 0, 0);

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546055</commentid>
    <comment_count>6</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-19 07:33:48 -0700</bug_when>
    <thetext>Hm, agree. However, when you pass a row pointer to gtk_widget_event(), GUniquePtr destroys it before it can be used.

Which is to be expected, but I don&apos;t understand why it works in WebKitWebViewBase::TouchEventController::startDrag() and other functions there. Isn&apos;t it exactly same situation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546086</commentid>
    <comment_count>7</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-19 09:23:57 -0700</bug_when>
    <thetext>(In reply to Alexander Mikhaylenko from comment #6)
&gt; Hm, agree. However, when you pass a row pointer to gtk_widget_event(),
&gt; GUniquePtr destroys it before it can be used.

Er, what did you mean here? Did you mean to say &quot;raw pointer&quot;?

You currently have:

GdkEvent* event = createScrollEvent(m_webPageProxy.viewWidget(), delta, 0);
gtk_widget_event(m_webPageProxy.viewWidget(), event);
return true;

The suggested fix is:

GUniquePtr&lt;GdkEvent&gt; event(createScrollEvent(m_webPageProxy.viewWidget(), delta, 0);
gtk_widget_event(m_webPageProxy.viewWidget(), event.get()); // event still valid
return true; // event destroyed here</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546108</commentid>
    <comment_count>8</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-19 10:17:06 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #7)
&gt; Er, what did you mean here? Did you mean to say &quot;raw pointer&quot;?

Oops. Yes, that&apos;s what I meant. :)

&gt; The suggested fix is:
&gt; 
&gt; GUniquePtr&lt;GdkEvent&gt; event(createScrollEvent(m_webPageProxy.viewWidget(),
&gt; delta, 0);
&gt; gtk_widget_event(m_webPageProxy.viewWidget(), event.get()); // event still
&gt; valid
&gt; return true; // event destroyed here

That&apos;s exactly what I tried. It crashes. Just as

```
GdkEvent* event = createScrollEvent(m_webPageProxy.viewWidget(), delta, 0);
gtk_widget_event(m_webPageProxy.viewWidget(), event);
g_free(event); // gdk_event_free(event) as well
return true;

```
crashes too.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546185</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-19 12:30:12 -0700</bug_when>
    <thetext>Well where is the crash?

You write: &quot;GUniquePtr destroys it before it can be used.&quot; But GUniquePtr is alive until after the call to gtk_widget_event() completes. Is the crash inside gtk_widget_event() itself?

The event parameter of gtk_widget_event() is not documented to be transfer full, so either we have to free it (in which case GUniquePtr is appropriate), or there is an annotation bug. If we don&apos;t have to free it, you can still use GUniquePtr and then call .release() in order to document ownership and avoid ever assigning ownership to a raw pointer.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546472</commentid>
    <comment_count>10</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-20 01:40:10 -0700</bug_when>
    <thetext>Ok, I completely misinterpreted the crash. Sorry :/

It looks like when the event is freed, event-&gt;scroll.window gets deref&apos;d, so I needed to ref it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546473</commentid>
    <comment_count>11</comment_count>
      <attachid>372547</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-20 01:40:35 -0700</bug_when>
    <thetext>Created attachment 372547
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546513</commentid>
    <comment_count>12</comment_count>
      <attachid>372547</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-20 07:44:01 -0700</bug_when>
    <thetext>Comment on attachment 372547
Patch

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

LGTM

&gt; Source/WebKit/UIProcess/gtk/ViewGestureControllerGtk.cpp:424
&gt; +    g_object_ref(window);
&gt; +    event-&gt;scroll.window = window;

Better/clearer:

event-&gt;scroll.window = g_object_ref(window);

&gt; LayoutTests/platform/gtk/TestExpectations:1228
&gt; +# Flaky, the order of lines in the output may change.
&gt; +webkit.org/b/170484 swipe/main-frame-pinning-requirement.html [ Pass Failure ]

This should be lower in the expectations file under the flaky section, since it&apos;s a failure that should be fixed, rather than a failure that we&apos;re OK with having forever like the other test you&apos;ve added here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546516</commentid>
    <comment_count>13</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-20 07:49:27 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #12)
&gt; Better/clearer:
&gt; 
&gt; event-&gt;scroll.window = g_object_ref(window);

Needs an additional cast. :)

```
../../Source/WebKit/UIProcess/gtk/ViewGestureControllerGtk.cpp: In function ‘WTF::GUniquePtr&lt;_GdkEvent&gt; WebKit::createScrollEvent(GtkWidget*, double, double)’:
../../Source/WebKit/UIProcess/gtk/ViewGestureControllerGtk.cpp:423:40: error: invalid conversion from ‘gpointer’ {aka ‘void*’} to ‘GdkWindow*’ {aka ‘_GdkWindow*’} [-fpermissive]
     event-&gt;scroll.window = g_object_ref(window);
                            ~~~~~~~~~~~~^~~~~~~~
```

If
```
    event-&gt;scroll.window = reinterpret_cast&lt;GdkWindow*&gt;(g_object_ref(window));
```
is still fine (honestly, looks less clean to me), then sure. :)

&gt; This should be lower in the expectations file under the flaky section, since
&gt; it&apos;s a failure that should be fixed, rather than a failure that we&apos;re OK
&gt; with having forever like the other test you&apos;ve added here.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546526</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-20 08:25:20 -0700</bug_when>
    <thetext>(In reply to Alexander Mikhaylenko from comment #13)
&gt; If
&gt; ```
&gt;     event-&gt;scroll.window =
&gt; reinterpret_cast&lt;GdkWindow*&gt;(g_object_ref(window));
&gt; ```
&gt; is still fine (honestly, looks less clean to me), then sure. :)

Meh, how about GDK_WINDOW(g_object_ref(window))?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546530</commentid>
    <comment_count>15</comment_count>
      <attachid>372559</attachid>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-20 08:31:18 -0700</bug_when>
    <thetext>Created attachment 372559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546531</commentid>
    <comment_count>16</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-20 08:32:47 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; Meh, how about GDK_WINDOW(g_object_ref(window))?

Oh, I assumed that was against the code style. Ok then :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546544</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-20 09:35:42 -0700</bug_when>
    <thetext>(In reply to Alexander Mikhaylenko from comment #16)
&gt; Oh, I assumed that was against the code style. Ok then :)

Nope, GObject casts are fine. Even better when the code is not performance-sensitive, since they type-check for us.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546560</commentid>
    <comment_count>18</comment_count>
      <attachid>372559</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-20 10:05:25 -0700</bug_when>
    <thetext>Comment on attachment 372559
Patch

Clearing flags on attachment: 372559

Committed r246639: &lt;https://trac.webkit.org/changeset/246639&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546561</commentid>
    <comment_count>19</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-06-20 10:05:27 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546753</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-20 17:14:22 -0700</bug_when>
    <thetext>By chance, I noticed this pattern from WebKitWebViewBase.cpp:

        scrollEvent-&gt;scroll.window = event-&gt;window ? GDK_WINDOW(g_object_ref(event-&gt;window)) : nullptr;

We probably need to null-check it here too before passing it to g_object_ref()?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546827</commentid>
    <comment_count>21</comment_count>
    <who name="Alice Mikhaylenko">alicem</who>
    <bug_when>2019-06-21 00:22:53 -0700</bug_when>
    <thetext>Hmm, when can window be empty? Note that here we&apos;re using GdkWindow of the WebView. I have a suspicion that if it&apos;s null, it would fail much earlier than here. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1546864</commentid>
    <comment_count>22</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-21 07:05:25 -0700</bug_when>
    <thetext>OK, thanks for checking!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372455</attachid>
            <date>2019-06-19 05:47:58 -0700</date>
            <delta_ts>2019-06-20 01:40:28 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198995-20190619174757.patch</filename>
            <type>text/plain</type>
            <size>17887</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDVmMjFkYmRiZmYzMDg0N2Nj
M2Y5ZDQzYzM0NDg5YjEzNGNjNWIwYWQuLmIxNjQxZGY3M2RjODcyMDAzYjYwYTA3ODNkMzAyZTli
NTZlZWU3YjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTktMDYtMTkgIEFsZXhhbmRl
ciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS10gRW5h
YmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQVBJIGZvciBlbmFibGluZyBhbmQg
Y29udHJvbGxpbmcgc3dpcGVzIGZyb20gV2ViS2l0VGVzdFJ1bm5lci4KKworICAgICAgICBJbXBs
ZW1lbnQgYmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZygpIGFuZCBjb21w
bGV0ZVNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKCkKKyAgICAgICAgaW4gVmll
d0dlc3R1cmVDb250cm9sbGVyIGZvciBjb250cm9sbGluZyB0aGUgdGVzdCBzd2lwZXMuIEFkZCBm
dW5jdGlvbnMgaW4gV2ViS2l0V2ViVmlld0Jhc2UgZm9yIGNhbGxpbmcKKyAgICAgICAgdGhlbS4K
KworICAgICAgICBTaW11bGF0ZSB0aGUgZ2VzdHVyZSBieSBnZW5lcmF0aW5nIHR3byBzY3JvbGwg
ZXZlbnRzOiBvbmUgdG8gYmVnaW4gdGhlIGdlc3R1cmUgYW5kIG9uZSB0byBjb21wbGV0ZSBpdC4K
KworICAgICAgICBTaW5jZSB0aGVyZSdzIG5vIHJlbGlhYmxlIHdheSB0byBzZXQgc291cmNlIGRl
dmljZSB0eXBlIG9mIHRoZSBnZW5lcmF0ZWQgZXZlbnRzIHRvIHRvdWNocGFkLCBkb24ndCBjaGVj
aworICAgICAgICBzb3VyY2UgZGV2aWNlIHR5cGUgZm9yIHNpbXVsYXRlZCBzd2lwZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdT
ZXRFbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlKTogQWRkZWQuCisgICAgICAgIChX
S1ZpZXdCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdLVmlld0Nv
bXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5CYWNr
U3dpcGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUNvbXBs
ZXRlQmFja1N3aXBlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJl
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6c2Nyb2xsRXZlbnRDYW5JbmZsdWVuY2VTd2lwZSk6Cisg
ICAgICAgIFNraXAgc291cmNlIGRldmljZSB0eXBlIGNoZWNrIGZvciBzaW11bGF0ZWQgc3dpcGVz
LiBBbHNvLCByZW1vdmUgYW4gaW5jb3JyZWN0IEZJWE1FLgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVTY3JvbGxFdmVudCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcpOiBJbXBsZW1l
bnRlZC4KKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpjb21wbGV0ZVNp
bXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKTogSW1wbGVtZW50ZWQuCisKIDIwMTkt
MDYtMTggIERlYW4gSmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIEF0dGFjaG1l
bnQgZWxlbWVudHMgYXJlIG1pc3NpbmcgY29udGV4dCBtZW51IHByZXZpZXdzCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwCmluZGV4IDQ4YzQxYWM3N2IxYWFl
MjliN2M3YzllMDczMmE3NGExMmJhZjlmZjIuLjUwMWMxNjRjMDA5ZDJlN2I0YWYyMzViMmU3ODg3
NDM3NWQ1N2Y1MzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0
ay9XS1ZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1Zp
ZXcuY3BwCkBAIC00OCwzICs0OCwxOCBAQCB2b2lkIFdLVmlld1NldEZvY3VzKFdLVmlld1JlZiB2
aWV3UmVmLCBib29sIGZvY3VzZWQpCiB7CiAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXRGb2N1cyh0
b0ltcGwodmlld1JlZiksIGZvY3VzZWQpOwogfQorCit2b2lkIFdLVmlld1NldEVuYWJsZUJhY2tG
b3J3YXJkTmF2aWdhdGlvbkdlc3R1cmUoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZW5hYmxlZCkK
K3sKKyAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdl
c3R1cmUodG9JbXBsKHZpZXdSZWYpLCBlbmFibGVkKTsKK30KKworYm9vbCBXS1ZpZXdCZWdpbkJh
Y2tTd2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZpZXdSZWYpCit7CisgICAgcmV0dXJuIHdlYmtp
dFdlYlZpZXdCYXNlQmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nKHRvSW1wbCh2aWV3UmVmKSk7Cit9
CisKK2Jvb2wgV0tWaWV3Q29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3
UmVmKQoreworICAgIHJldHVybiB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9y
VGVzdGluZyh0b0ltcGwodmlld1JlZikpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9DL2d0ay9XS1ZpZXdQcml2YXRlLmgKaW5kZXggYWNhYmZkM2FmMTk4MjZkNjdiN2Ux
MTk5ZTc2YmZmMTA0YjNjODViNy4uYWFmZDY1NzUzMjhlNDA5NzI2ZTNlMDFiMzhiYmIwNWJhMjIw
ZGJhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmll
d1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3
UHJpdmF0ZS5oCkBAIC0zNCw2ICszNCwxMiBAQCBleHRlcm4gIkMiIHsKIAogV0tfRVhQT1JUIHZv
aWQgV0tWaWV3U2V0Rm9jdXMoV0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZm9jdXNlZCk7CiAKK1dL
X0VYUE9SVCB2b2lkIFdLVmlld1NldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmUo
V0tWaWV3UmVmIHZpZXdSZWYsIGJvb2wgZW5hYmxlZCk7CisKK1dLX0VYUE9SVCBib29sIFdLVmll
d0JlZ2luQmFja1N3aXBlRm9yVGVzdGluZyhXS1ZpZXdSZWYgdmlld1JlZik7CisKK1dLX0VYUE9S
VCBib29sIFdLVmlld0NvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyhXS1ZpZXdSZWYgdmlld1Jl
Zik7CisKICNpZmRlZiBfX2NwbHVzcGx1cwogfQogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCmluZGV4IDI1Yjkz
N2QyOTdhZDNhN2IzNjM2OWMwMmQ2ZDNhODIyY2EzZTBhZTkuLjJkNzgxODE1OWNjNTg4YTY3NjUz
NzZmYTEwY2I4NGVjYWUxYWRhNmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwCkBAIC0xMjY0LDYgKzEyNjQsMjIgQEAg
Vmlld0dlc3R1cmVDb250cm9sbGVyKiB3ZWJraXRXZWJWaWV3QmFzZVZpZXdHZXN0dXJlQ29udHJv
bGxlcihXZWJLaXRXZWJWaWV3QmFzZSoKICAgICByZXR1cm4gd2ViVmlld0Jhc2UtPnByaXYtPnZp
ZXdHZXN0dXJlQ29udHJvbGxlci5nZXQoKTsKIH0KIAorYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUJl
Z2luQmFja1N3aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCit7
CisgICAgaWYgKGF1dG8qIGdlc3R1cmVDb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3
R2VzdHVyZUNvbnRyb2xsZXIod2ViVmlld0Jhc2UpKQorICAgICAgICByZXR1cm4gZ2VzdHVyZUNv
bnRyb2xsZXItPmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcoVmlld0dl
c3R1cmVDb250cm9sbGVyOjpTd2lwZURpcmVjdGlvbjo6QmFjayk7CisKKyAgICByZXR1cm4gRkFM
U0U7Cit9CisKK2Jvb2wgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3Rp
bmcoV2ViS2l0V2ViVmlld0Jhc2UqIHdlYlZpZXdCYXNlKQoreworICAgIGlmIChhdXRvKiBnZXN0
dXJlQ29udHJvbGxlciA9IHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKHdl
YlZpZXdCYXNlKSkKKyAgICAgICAgcmV0dXJuIGdlc3R1cmVDb250cm9sbGVyLT5jb21wbGV0ZVNp
bXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6
U3dpcGVEaXJlY3Rpb246OkJhY2spOworCisgICAgcmV0dXJuIEZBTFNFOworfQorCiBzdGF0aWMg
Z2Jvb2xlYW4gd2Via2l0V2ViVmlld0Jhc2VRdWVyeVRvb2x0aXAoR3RrV2lkZ2V0KiB3aWRnZXQs
IGdpbnQgLyogeCAqLywgZ2ludCAvKiB5ICovLCBnYm9vbGVhbiBrZXlib2FyZE1vZGUsIEd0a1Rv
b2x0aXAqIHRvb2x0aXApCiB7CiAgICAgV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlKiBwcml2ID0g
V0VCS0lUX1dFQl9WSUVXX0JBU0Uod2lkZ2V0KS0+cHJpdjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCmlu
ZGV4IGMwMGUwN2RmNDQyNzNiYzgzNTNhOTY1YTg3MTg0NTVmNTU0MmIxOWIuLmM3NmE0ODQxZGQ0
MTI0YTAwNTk3ZWVkYmU5ZTEwMWIyN2VhZTM2ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaApAQCAt
ODcsNiArODcsOSBAQCBSZWZQdHI8V2ViS2l0OjpWaWV3U25hcHNob3Q+IHdlYmtpdFdlYlZpZXdC
YXNlVGFrZVZpZXdTbmFwc2hvdChXZWJLaXRXZWJWaWV3QmFzZQogdm9pZCB3ZWJraXRXZWJWaWV3
QmFzZVNldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1cmUoV2ViS2l0V2ViVmlld0Jh
c2UqLCBib29sIGVuYWJsZWQpOwogV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtp
dFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9sbGVyKFdlYktpdFdlYlZpZXdCYXNlKik7CiAK
K2Jvb2wgd2Via2l0V2ViVmlld0Jhc2VCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcoV2ViS2l0V2Vi
Vmlld0Jhc2UqKTsKK2Jvb2wgd2Via2l0V2ViVmlld0Jhc2VDb21wbGV0ZUJhY2tTd2lwZUZvclRl
c3RpbmcoV2ViS2l0V2ViVmlld0Jhc2UqKTsKKwogdm9pZCB3ZWJraXRXZWJWaWV3QmFzZURpZFN0
YXJ0UHJvdmlzaW9uYWxMb2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lk
IHdlYmtpdFdlYlZpZXdCYXNlRGlkRmlyc3RWaXN1YWxseU5vbkVtcHR5TGF5b3V0Rm9yTWFpbkZy
YW1lKFdlYktpdFdlYlZpZXdCYXNlKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkRmluaXNo
TG9hZEZvck1haW5GcmFtZShXZWJLaXRXZWJWaWV3QmFzZSopOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvVmlld0dlc3R1cmVDb250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaAppbmRleCBjMTY3MGQzYTk0Y2VmM2Q5
MDZhZjQ5NDljZDU0MTM2MDQ5NDc2MzBiLi5mM2RmMzJmYWFiOWM0YmI5ZTZhZjg1MzJjNzliNDZj
YzBiM2QwNTczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNv
bnRyb2xsZXIuaApAQCAtNDA5LDYgKzQwOSw4IEBAIHByaXZhdGU6CiAgICAgU3dpcGVQcm9ncmVz
c1RyYWNrZXIgbV9zd2lwZVByb2dyZXNzVHJhY2tlcjsKIAogICAgIFJlZlB0cjxjYWlyb19wYXR0
ZXJuX3Q+IG1fY3VycmVudFN3aXBlU25hcHNob3RQYXR0ZXJuOworCisgICAgYm9vbCBtX2lzU2lt
dWxhdGVkU3dpcGUgeyBmYWxzZSB9OwogI2VuZGlmCiAKICAgICBib29sIG1faXNDb25uZWN0ZWRU
b1Byb2Nlc3MgeyBmYWxzZSB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Z3RrL1ZpZXdHZXN0dXJlQ29udHJvbGxlckd0ay5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9ndGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcAppbmRleCA5ZDBiYTIyMDVjNzA0ZmQ0
MmEzOWQ3YjRjZTk3NGU4OGNkOWE1NmM5Li42NDBiY2NjNjkxMWEzMjRiMTk4Mzg0MjZjYzlmMDQ4
YTkzYmIxZTNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsvVmlld0dl
c3R1cmVDb250cm9sbGVyR3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9ndGsv
Vmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcApAQCAtODQsOSArODQsOSBAQCBib29sIFZpZXdH
ZXN0dXJlQ29udHJvbGxlcjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6c2Nyb2xsRXZlbnRDYW5JbmZs
dWVuY2VTd2lwZShHZAogICAgIEdka0RldmljZSogZGV2aWNlID0gZ2RrX2V2ZW50X2dldF9zb3Vy
Y2VfZGV2aWNlKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCkpOwogICAgIEdka0lu
cHV0U291cmNlIHNvdXJjZSA9IGdka19kZXZpY2VfZ2V0X3NvdXJjZShkZXZpY2UpOwogCi0gICAg
Ly8gRklYTUU6IFNob3VsZCBpdCBtYXliZSBiZSBhbGxvd2VkIG9uIG1pY2UvdHJhY2twb2ludHMg
YXMgd2VsbD8gVGhlIEdES19TQ1JPTExfU01PT1RICi0gICAgLy8gcmVxdWlyZW1lbnQgYWxyZWFk
eSBmaWx0ZXJzIG91dCBtb3N0IG1pY2UsIGFuZCBpdCB3b3JrcyBwcmV0dHkgd2VsbCBvbiBhIHRy
YWNrcG9pbnQKLSAgICByZXR1cm4gZ2RrX2V2ZW50X2dldF9zY3JvbGxfZGVsdGFzKHJlaW50ZXJw
cmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksIG51bGxwdHIsIG51bGxwdHIpICYmIChzb3VyY2Ug
PT0gR0RLX1NPVVJDRV9UT1VDSFBBRCB8fCBzb3VyY2UgPT0gR0RLX1NPVVJDRV9UT1VDSFNDUkVF
Tik7CisgICAgYm9vbCBpc0RldmljZUFsbG93ZWQgPSBzb3VyY2UgPT0gR0RLX1NPVVJDRV9UT1VD
SFBBRCB8fCBzb3VyY2UgPT0gR0RLX1NPVVJDRV9UT1VDSFNDUkVFTiB8fCBtX3ZpZXdHZXN0dXJl
Q29udHJvbGxlci5tX2lzU2ltdWxhdGVkU3dpcGU7CisKKyAgICByZXR1cm4gZ2RrX2V2ZW50X2dl
dF9zY3JvbGxfZGVsdGFzKHJlaW50ZXJwcmV0X2Nhc3Q8R2RrRXZlbnQqPihldmVudCksIG51bGxw
dHIsIG51bGxwdHIpICYmIGlzRGV2aWNlQWxsb3dlZDsKIH0KIAogc3RhdGljIGJvb2wgaXNUb3Vj
aEV2ZW50KEdka0V2ZW50U2Nyb2xsKiBldmVudCkKQEAgLTM5NywxNCArMzk3LDYzIEBAIHZvaWQg
Vmlld0dlc3R1cmVDb250cm9sbGVyOjpyZW1vdmVTd2lwZVNuYXBzaG90KCkKICAgICBtX3N3aXBl
UHJvZ3Jlc3NUcmFja2VyLnJlc2V0KCk7CiB9CiAKLWJvb2wgVmlld0dlc3R1cmVDb250cm9sbGVy
OjpiZWdpblNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKFN3aXBlRGlyZWN0aW9u
KQorc3RhdGljIEdka0V2ZW50KiBjcmVhdGVTY3JvbGxFdmVudChHdGtXaWRnZXQqIHdpZGdldCwg
ZG91YmxlIHhEZWx0YSwgZG91YmxlIHlEZWx0YSkKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
R2RrV2luZG93KiB3aW5kb3cgPSBndGtfd2lkZ2V0X2dldF93aW5kb3cod2lkZ2V0KTsKKworICAg
IGludCB4LCB5OworICAgIGdka193aW5kb3dfZ2V0X3Jvb3Rfb3JpZ2luKHdpbmRvdywgJngsICZ5
KTsKKworICAgIGludCB3aWR0aCA9IGdka193aW5kb3dfZ2V0X3dpZHRoKHdpbmRvdyk7CisgICAg
aW50IGhlaWdodCA9IGdka193aW5kb3dfZ2V0X2hlaWdodCh3aW5kb3cpOworCisgICAgR2RrRXZl
bnQqIGV2ZW50ID0gZ2RrX2V2ZW50X25ldyhHREtfU0NST0xMKTsKKyAgICBldmVudC0+c2Nyb2xs
LnRpbWUgPSBHREtfQ1VSUkVOVF9USU1FOworICAgIGV2ZW50LT5zY3JvbGwueCA9IHdpZHRoIC8g
MjsKKyAgICBldmVudC0+c2Nyb2xsLnkgPSBoZWlnaHQgLyAyOworICAgIGV2ZW50LT5zY3JvbGwu
eF9yb290ID0geCArIHdpZHRoIC8gMjsKKyAgICBldmVudC0+c2Nyb2xsLnlfcm9vdCA9IHkgKyBo
ZWlnaHQgLyAyOworICAgIGV2ZW50LT5zY3JvbGwuZGlyZWN0aW9uID0gR0RLX1NDUk9MTF9TTU9P
VEg7CisgICAgZXZlbnQtPnNjcm9sbC5kZWx0YV94ID0geERlbHRhOworICAgIGV2ZW50LT5zY3Jv
bGwuZGVsdGFfeSA9IHlEZWx0YTsKKyAgICBldmVudC0+c2Nyb2xsLnN0YXRlID0gMDsKKyNpZiBH
VEtfQ0hFQ0tfVkVSU0lPTigzLCAyMCwgMCkKKyAgICBldmVudC0+c2Nyb2xsLmlzX3N0b3AgPSAh
eERlbHRhICYmICF5RGVsdGE7CisjZW5kaWYKKyAgICBldmVudC0+c2Nyb2xsLndpbmRvdyA9IHdp
bmRvdzsKKyAgICBnZGtfZXZlbnRfc2V0X3NjcmVlbihldmVudCwgZ2RrX3dpbmRvd19nZXRfc2Ny
ZWVuKHdpbmRvdykpOworICAgIGdka19ldmVudF9zZXRfZGV2aWNlKGV2ZW50LCBnZGtfZGV2aWNl
X21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVyKGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdl
cihnZGtfd2luZG93X2dldF9kaXNwbGF5KHdpbmRvdykpKSk7CisgICAgZ2RrX2V2ZW50X3NldF9z
b3VyY2VfZGV2aWNlKGV2ZW50LCBnZGtfZGV2aWNlX21hbmFnZXJfZ2V0X2NsaWVudF9wb2ludGVy
KGdka19kaXNwbGF5X2dldF9kZXZpY2VfbWFuYWdlcihnZGtfd2luZG93X2dldF9kaXNwbGF5KHdp
bmRvdykpKSk7CisKKyAgICByZXR1cm4gZXZlbnQ7Cit9CisKK2Jvb2wgVmlld0dlc3R1cmVDb250
cm9sbGVyOjpiZWdpblNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKFN3aXBlRGly
ZWN0aW9uIGRpcmVjdGlvbikKK3sKKyAgICBpZiAoIWNhblN3aXBlSW5EaXJlY3Rpb24oZGlyZWN0
aW9uKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworCisgICAgbV9pc1NpbXVsYXRlZFN3aXBlID0g
dHJ1ZTsKKworICAgIGRvdWJsZSBkZWx0YSA9IHN3aXBlVG91Y2hwYWRCYXNlV2lkdGggLyBndGtT
Y3JvbGxEZWx0YU11bHRpcGxpZXIgKiAwLjc1OworCisgICAgaWYgKGlzUGh5c2ljYWxseVN3aXBp
bmdMZWZ0KGRpcmVjdGlvbikpCisgICAgICAgIGRlbHRhID0gLWRlbHRhOworCisgICAgR2RrRXZl
bnQqIGV2ZW50ID0gY3JlYXRlU2Nyb2xsRXZlbnQobV93ZWJQYWdlUHJveHkudmlld1dpZGdldCgp
LCBkZWx0YSwgMCk7CisgICAgZ3RrX3dpZGdldF9ldmVudChtX3dlYlBhZ2VQcm94eS52aWV3V2lk
Z2V0KCksIGV2ZW50KTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiBib29sIFZpZXdHZXN0dXJl
Q29udHJvbGxlcjo6Y29tcGxldGVTaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZyhT
d2lwZURpcmVjdGlvbikKIHsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgR2RrRXZlbnQqIGV2ZW50
ID0gY3JlYXRlU2Nyb2xsRXZlbnQobV93ZWJQYWdlUHJveHkudmlld1dpZGdldCgpLCAwLCAwKTsK
KyAgICBndGtfd2lkZ2V0X2V2ZW50KG1fd2ViUGFnZVByb3h5LnZpZXdXaWRnZXQoKSwgZXZlbnQp
OworCisgICAgbV9pc1NpbXVsYXRlZFN3aXBlID0gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsK
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggMDljY2NjMjQ2N2VkZWI4OTJhYzRiNWIxM2E2M2YzNjM4
NzQxZjdmNS4uYTRkOWRhYmVlYWM2OTUwYzlkNjFmZTg0ZWUwZWYzZTYwYzlmN2U5ZSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIx
IEBACisyMDE5LTA2LTE5ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxleGFsbTc2NTlAZ21haWwu
Y29tPgorCisgICAgICAgIFtHVEtdIEVuYWJsZSBuYXZpZ2F0aW9uIHN3aXBlIGxheW91dCB0ZXN0
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4OTk1
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEg
d2F5IGZvciB0ZXN0cyB0byBlbmFibGUgYW5kIHRoZW4gY29udHJvbCBzd2lwZSBnZXN0dXJlIG9u
IEdUSy4KKworICAgICAgICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2Ny
aXB0Q29udHJvbGxlci5jcHA6IEhpZGUKKyAgICAgICAgZW1wdHkgaW1wbGVtZW50YXRpb25zIG9m
IGJlZ2luQmFja1N3aXBlKCkgYW5kIGNvbXBsZXRlQmFja1N3aXBlKCkgZm9yIEdUSy4KKyAgICAg
ICAgKiBXZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHA6CisgICAgICAgIChXVFI6OlBs
YXRmb3JtV2ViVmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZCk6IEltcGxlbWVudGVk
LgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5j
cHA6IEFkZGVkLgorICAgICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3
aXBlKToKKyAgICAgICAgKFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lw
ZSk6CisKIDIwMTktMDYtMTggIERhbiBCZXJuc3RlaW4gIDxtaXR6QGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXZlcnQgd29ya2Fyb3VuZCBmb3IgYnVnIDE5ODkwNCBmcm9tIHJ1bi13ZWJraXQtYXJj
aGl2ZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMzllZmNhMTZiNTU2YmIxNjkwN2Fi
Y2I5YWYyNDUxN2MxODcxYmFkNi4uMWJlZGQ3ZWIxNmY3NDU5NjE2MTk5ODg1YTRmZDIxMGEzZWVi
NzZkNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC02NzEsNiArNjcxLDcgQEAgdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OmFkZFZpZXdUb1dpbmRvdyhKU1ZhbHVlUmVmKQogewogfQog
CisjaWYgIVBMQVRGT1JNKEdUSykKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tT
d2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewogfQpAQCAtNjc4LDYgKzY3OSw3IEBAIHZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQog
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2Fs
bGJhY2spCiB7CiB9CisjZW5kaWYKIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFNoYXJl
U2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uKGJvb2wpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiZWRhODdiYzIyOWM4MGQzNDU0
ODk1OTA2NzUyZDI3NTNkZmQ5NDA3Li4wYjc4MzJmNTg4OTU5Njg1YzZiYWI3NzAxMTZmZjZmZGE1
ZWIwODBhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEw
LDYgKzEwLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCiAgICAgJHtX
RUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAogICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAogICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCisgICAgJHtX
RUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCiAgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2d0ay9tYWluLmNwcAogKQogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCBiMzY2ODQ0
MWE1Yzc3NGNkZjNmNTUwYmJlMmUwMjE0MDkyODRiMDBkLi5kNGEyNjI5MThmMjM5Y2RkNWIxMTQ5
MzUwYWRlNTMzNDBmMmE1MDE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0
ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAgLTE4NSw4ICsxODUsOSBAQCB2b2lkIFBsYXRmb3Jt
V2ViVmlldzo6ZGlzbWlzc0FsbFBvcHVwTWVudXMoKQogICAgIH0sIG51bGxwdHIpOwogfQogCi12
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQor
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogeworICAgIFdLVmlld1NldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1
cmUocGxhdGZvcm1WaWV3KCksIGVuYWJsZWQpOwogfQogCiBib29sIFBsYXRmb3JtV2ViVmlldzo6
ZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMjFjY2ViMDdjNmYx
MjM3NTllZGRjOThlM2RmYTFkMzJlNGY2OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQWxleGFuZGVyIE1pa2hheWxlbmtvIDxleGFs
bTc2NTlAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdQcml2
YXRlLmg+CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVn
aW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiB3ZWJWaWV3ID0g
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygp
OworCisgICAgV0tWaWV3QmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nKHdlYlZpZXcpOworfQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBhdXRvKiB3ZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
Lm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOworCisgICAgV0tWaWV3Q29tcGxldGVCYWNr
U3dpcGVGb3JUZXN0aW5nKHdlYlZpZXcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBkMWU1NGFkODk5NjIxZjM4MzU4OTNhZjMyOGQxNjM5M2JmNmQzOTA1Li42ZjUxZTNhZmNiNTAy
ODgxMzEyZjIwYTg5OTkxNzQyNWFlYWQ5ZTdhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTkt
MDYtMTkgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CisKKyAg
ICAgICAgW0dUS10gRW5hYmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5OTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgdGhlIGV4aXN0
aW5nIHRlc3RzIGZvciB0aGUgc3dpcGUgZ2VzdHVyZS4KKworICAgICAgICBzd2lwZS9wdXNoU3Rh
dGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sIGlzIG5vdCBhcHBs
aWNhYmxlIGJlY2F1c2UKKyAgICAgICAgaXQgZGVhbHMgd2l0aCBOU0V2ZW50cyBkaXJlY3RseSwg
c2tpcCBpdC4KKworICAgICAgICBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQu
aHRtbCBpcyBmbGFreSwgc2FtZSBhcyBvbiBNYWMuCisKKyAgICAgICAgc3dpcGUvcHVzaHN0YXRl
LXdpdGgtbWFudWFsLXNjcm9sbHJlc3RvcmF0aW9uLmh0bWwgcGFzc2VzLCBkb24ndCBtYXJrIGl0
IGFzIGZhaWx1cmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxOS0wNi0xOCAgWmFuIERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgW1dlYkdMXSBFeHRlbnNpb25zM0RPcGVuR0xFUzo6YmluZFZlcnRleEFycmF5T0VTKCkg
c2hvdWxkIGFsbG93IHplcm8gYXJyYXkgb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGVlOTk1MDY4ZDk3NzdlNDFlOTE1MjliN2RmMTVjYTRkZDY2
ZWE3ZDUuLmE0MzA1MWY0OTI2MDNmOTg2NmI5OWMwMmNjYWFlMGQ3YjU2Njk4YmUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMSw2ICsyMSw3IEBACiAK
IGFjY2Vzc2liaWxpdHkvZ3RrIFsgUGFzcyBdCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZ3RrIFsgUGFz
cyBdCitzd2lwZSBbIFBhc3MgXQogCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KQEAgLTEyMjAsNiArMTIyMSwx
MiBAQCBmYXN0L21lZGlhc3RyZWFtL3NjcmVlbmNhcHR1cmUtdXNlci1nZXN0dXJlLmh0bWwgWyBT
a2lwIF0KICMgTm8gZGlmZmVyZW50IHJlbmRlcmluZyBmb3IgdGV4dC1yZW5kZXJpbmc6IG9wdGlt
aXplTGVnaWJpbGl0eQogZmFzdC90ZXh0L3ZhcmlhdGlvbnMvb3B0aWNhbC1zaXppbmctdHJhay0y
Lmh0bWwgWyBTa2lwIF0KIAorIyBUaGUgdGVzdCBkaXJlY3RseSBzZW5kcyBDb2NvYSBldmVudHMK
K3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0
bWwgWyBTa2lwIF0KKworIyBGbGFreSwgdGhlIG9yZGVyIG9mIGxpbmVzIGluIHRoZSBvdXRwdXQg
bWF5IGNoYW5nZS4KK3dlYmtpdC5vcmcvYi8xNzA0ODQgc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5n
LXJlcXVpcmVtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwogIyBFbmQgb2YgRXhwZWN0ZWQgZmFpbHVyZXMuCiAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372547</attachid>
            <date>2019-06-20 01:40:35 -0700</date>
            <delta_ts>2019-06-20 08:31:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198995-20190620134033.patch</filename>
            <type>text/plain</type>
            <size>18001</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhMjQ1YmViMzk2OWMxNTll
NjdlNTE4YzU1MWI3OGMyNGE4YWU0OGEuLmQ5YTA3NTkxYjIwOTY0YWEwNzlmZjI0ODAxODVmNWU3
OGYzYjU2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTktMDYtMTkgIEFsZXhhbmRl
ciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS10gRW5h
YmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQVBJIGZvciBlbmFibGluZyBhbmQg
Y29udHJvbGxpbmcgc3dpcGVzIGZyb20gV2ViS2l0VGVzdFJ1bm5lci4KKworICAgICAgICBJbXBs
ZW1lbnQgYmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZygpIGFuZCBjb21w
bGV0ZVNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKCkKKyAgICAgICAgaW4gVmll
d0dlc3R1cmVDb250cm9sbGVyIGZvciBjb250cm9sbGluZyB0aGUgdGVzdCBzd2lwZXMuIEFkZCBm
dW5jdGlvbnMgaW4gV2ViS2l0V2ViVmlld0Jhc2UgZm9yIGNhbGxpbmcKKyAgICAgICAgdGhlbS4K
KworICAgICAgICBTaW11bGF0ZSB0aGUgZ2VzdHVyZSBieSBnZW5lcmF0aW5nIHR3byBzY3JvbGwg
ZXZlbnRzOiBvbmUgdG8gYmVnaW4gdGhlIGdlc3R1cmUgYW5kIG9uZSB0byBjb21wbGV0ZSBpdC4K
KworICAgICAgICBTaW5jZSB0aGVyZSdzIG5vIHJlbGlhYmxlIHdheSB0byBzZXQgc291cmNlIGRl
dmljZSB0eXBlIG9mIHRoZSBnZW5lcmF0ZWQgZXZlbnRzIHRvIHRvdWNocGFkLCBkb24ndCBjaGVj
aworICAgICAgICBzb3VyY2UgZGV2aWNlIHR5cGUgZm9yIHNpbXVsYXRlZCBzd2lwZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdT
ZXRFbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlKTogQWRkZWQuCisgICAgICAgIChX
S1ZpZXdCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdLVmlld0Nv
bXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5CYWNr
U3dpcGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUNvbXBs
ZXRlQmFja1N3aXBlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJl
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6c2Nyb2xsRXZlbnRDYW5JbmZsdWVuY2VTd2lwZSk6Cisg
ICAgICAgIFNraXAgc291cmNlIGRldmljZSB0eXBlIGNoZWNrIGZvciBzaW11bGF0ZWQgc3dpcGVz
LiBBbHNvLCByZW1vdmUgYW4gaW5jb3JyZWN0IEZJWE1FLgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVTY3JvbGxFdmVudCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcpOiBJbXBsZW1l
bnRlZC4KKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpjb21wbGV0ZVNp
bXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKTogSW1wbGVtZW50ZWQuCisKIDIwMTkt
MDYtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBVcGRhdGUgcHJldmlldyBBUEkgZGVwcmVjYXRpb24gbWVzc2FnZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHAKaW5kZXggNDhjNDFhYzc3YjFhYWUy
OWI3YzdjOWUwNzMyYTc0YTEyYmFmOWZmMi4uNTAxYzE2NGMwMDlkMmU3YjRhZjIzNWIyZTc4ODc0
Mzc1ZDU3ZjUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3Rr
L1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmll
dy5jcHAKQEAgLTQ4LDMgKzQ4LDE4IEBAIHZvaWQgV0tWaWV3U2V0Rm9jdXMoV0tWaWV3UmVmIHZp
ZXdSZWYsIGJvb2wgZm9jdXNlZCkKIHsKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEZvY3VzKHRv
SW1wbCh2aWV3UmVmKSwgZm9jdXNlZCk7CiB9CisKK3ZvaWQgV0tWaWV3U2V0RW5hYmxlQmFja0Zv
cndhcmROYXZpZ2F0aW9uR2VzdHVyZShXS1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2Vz
dHVyZSh0b0ltcGwodmlld1JlZiksIGVuYWJsZWQpOworfQorCitib29sIFdLVmlld0JlZ2luQmFj
a1N3aXBlRm9yVGVzdGluZyhXS1ZpZXdSZWYgdmlld1JlZikKK3sKKyAgICByZXR1cm4gd2Via2l0
V2ViVmlld0Jhc2VCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcodG9JbXBsKHZpZXdSZWYpKTsKK30K
KworYm9vbCBXS1ZpZXdDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZpZXdS
ZWYpCit7CisgICAgcmV0dXJuIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JU
ZXN0aW5nKHRvSW1wbCh2aWV3UmVmKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaAppbmRleCBhY2FiZmQzYWYxOTgyNmQ2N2I3ZTEx
OTllNzZiZmYxMDRiM2M4NWI3Li5hYWZkNjU3NTMyOGU0MDk3MjZlM2UwMWIzOGJiYjA1YmEyMjBk
YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQ
cml2YXRlLmgKQEAgLTM0LDYgKzM0LDEyIEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQgdm9p
ZCBXS1ZpZXdTZXRGb2N1cyhXS1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBmb2N1c2VkKTsKIAorV0tf
RVhQT1JUIHZvaWQgV0tWaWV3U2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShX
S1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBlbmFibGVkKTsKKworV0tfRVhQT1JUIGJvb2wgV0tWaWV3
QmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKTsKKworV0tfRVhQT1JU
IGJvb2wgV0tWaWV3Q29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVm
KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggNzdlMDQx
NDMxMzBhODQ5NTA1ZmRhZDk3MTRjMDYyMjM0MmExM2FmZC4uODZiZGM2YjllMjc0YjA3ZTlkOWU2
ZWZhMWNkMmYxOWVjMGIxZTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTEyNjQsNiArMTI2NCwyMiBAQCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9s
bGVyKFdlYktpdFdlYlZpZXdCYXNlKgogICAgIHJldHVybiB3ZWJWaWV3QmFzZS0+cHJpdi0+dmll
d0dlc3R1cmVDb250cm9sbGVyLmdldCgpOwogfQogCitib29sIHdlYmtpdFdlYlZpZXdCYXNlQmVn
aW5CYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKK3sK
KyAgICBpZiAoYXV0byogZ2VzdHVyZUNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdH
ZXN0dXJlQ29udHJvbGxlcih3ZWJWaWV3QmFzZSkpCisgICAgICAgIHJldHVybiBnZXN0dXJlQ29u
dHJvbGxlci0+YmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZyhWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrKTsKKworICAgIHJldHVybiBGQUxT
RTsKK30KKworYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGlu
ZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCit7CisgICAgaWYgKGF1dG8qIGdlc3R1
cmVDb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Vi
Vmlld0Jhc2UpKQorICAgICAgICByZXR1cm4gZ2VzdHVyZUNvbnRyb2xsZXItPmNvbXBsZXRlU2lt
dWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcoVmlld0dlc3R1cmVDb250cm9sbGVyOjpT
d2lwZURpcmVjdGlvbjo6QmFjayk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZVF1ZXJ5VG9vbHRpcChHdGtXaWRnZXQqIHdpZGdldCwg
Z2ludCAvKiB4ICovLCBnaW50IC8qIHkgKi8sIGdib29sZWFuIGtleWJvYXJkTW9kZSwgR3RrVG9v
bHRpcCogdG9vbHRpcCkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBX
RUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKaW5k
ZXggZDFhNmYwMjQ2YmY4YjNhZTU4MjkzNTc3ZDVkZWFhZTcwYzY5OTdjMi4uMzNjZjdjNTQzOTIw
ZmIzYTI1ZDI3Y2Y0MGY5NjY5MWFkYjQ5ZjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCkBAIC04
OSw2ICs4OSw5IEBAIFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4gd2Via2l0V2ViVmlld0Jh
c2VUYWtlVmlld1NuYXBzaG90KFdlYktpdFdlYlZpZXdCYXNlCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXRXZWJWaWV3QmFz
ZSosIGJvb2wgZW5hYmxlZCk7CiBXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlciogd2Via2l0
V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIAor
Ym9vbCB3ZWJraXRXZWJWaWV3QmFzZUJlZ2luQmFja1N3aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJW
aWV3QmFzZSopOworYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9yVGVz
dGluZyhXZWJLaXRXZWJWaWV3QmFzZSopOworCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQg
d2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJh
bWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hM
b2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IGMxNjcwZDNhOTRjZWYzZDkw
NmFmNDk0OWNkNTQxMzYwNDk0NzYzMGIuLmYzZGYzMmZhYWI5YzRiYjllNmFmODUzMmM3OWI0NmNj
MGIzZDA1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5oCkBAIC00MDksNiArNDA5LDggQEAgcHJpdmF0ZToKICAgICBTd2lwZVByb2dyZXNz
VHJhY2tlciBtX3N3aXBlUHJvZ3Jlc3NUcmFja2VyOwogCiAgICAgUmVmUHRyPGNhaXJvX3BhdHRl
cm5fdD4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdFBhdHRlcm47CisKKyAgICBib29sIG1faXNTaW11
bGF0ZWRTd2lwZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc0Nvbm5lY3RlZFRv
UHJvY2VzcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9WaWV3R2VzdHVyZUNvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDlkMGJhMjIwNWM3MDRmZDQy
YTM5ZDdiNGNlOTc0ZTg4Y2Q5YTU2YzkuLmI1MDBiZjNmNzkwZWZhN2ViMWYxMGU0Y2ZjODlkZTcw
NjgwOWMyMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJHdGsuY3BwCkBAIC04NCw5ICs4NCw5IEBAIGJvb2wgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpQZW5kaW5nU3dpcGVUcmFja2VyOjpzY3JvbGxFdmVudENhbkluZmx1
ZW5jZVN3aXBlKEdkCiAgICAgR2RrRGV2aWNlKiBkZXZpY2UgPSBnZGtfZXZlbnRfZ2V0X3NvdXJj
ZV9kZXZpY2UocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAgR2RrSW5w
dXRTb3VyY2Ugc291cmNlID0gZ2RrX2RldmljZV9nZXRfc291cmNlKGRldmljZSk7CiAKLSAgICAv
LyBGSVhNRTogU2hvdWxkIGl0IG1heWJlIGJlIGFsbG93ZWQgb24gbWljZS90cmFja3BvaW50cyBh
cyB3ZWxsPyBUaGUgR0RLX1NDUk9MTF9TTU9PVEgKLSAgICAvLyByZXF1aXJlbWVudCBhbHJlYWR5
IGZpbHRlcnMgb3V0IG1vc3QgbWljZSwgYW5kIGl0IHdvcmtzIHByZXR0eSB3ZWxsIG9uIGEgdHJh
Y2twb2ludAotICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kZWx0YXMocmVpbnRlcnBy
ZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgbnVsbHB0ciwgbnVsbHB0cikgJiYgKHNvdXJjZSA9
PSBHREtfU09VUkNFX1RPVUNIUEFEIHx8IHNvdXJjZSA9PSBHREtfU09VUkNFX1RPVUNIU0NSRUVO
KTsKKyAgICBib29sIGlzRGV2aWNlQWxsb3dlZCA9IHNvdXJjZSA9PSBHREtfU09VUkNFX1RPVUNI
UEFEIHx8IHNvdXJjZSA9PSBHREtfU09VUkNFX1RPVUNIU0NSRUVOIHx8IG1fdmlld0dlc3R1cmVD
b250cm9sbGVyLm1faXNTaW11bGF0ZWRTd2lwZTsKKworICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0
X3Njcm9sbF9kZWx0YXMocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgbnVsbHB0
ciwgbnVsbHB0cikgJiYgaXNEZXZpY2VBbGxvd2VkOwogfQogCiBzdGF0aWMgYm9vbCBpc1RvdWNo
RXZlbnQoR2RrRXZlbnRTY3JvbGwqIGV2ZW50KQpAQCAtMzk3LDE0ICszOTcsNjQgQEAgdm9pZCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlbW92ZVN3aXBlU25hcHNob3QoKQogICAgIG1fc3dpcGVQ
cm9ncmVzc1RyYWNrZXIucmVzZXQoKTsKIH0KIAotYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcoU3dpcGVEaXJlY3Rpb24p
CitzdGF0aWMgR1VuaXF1ZVB0cjxHZGtFdmVudD4gY3JlYXRlU2Nyb2xsRXZlbnQoR3RrV2lkZ2V0
KiB3aWRnZXQsIGRvdWJsZSB4RGVsdGEsIGRvdWJsZSB5RGVsdGEpCiB7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdl
dCk7CisKKyAgICBpbnQgeCwgeTsKKyAgICBnZGtfd2luZG93X2dldF9yb290X29yaWdpbih3aW5k
b3csICZ4LCAmeSk7CisKKyAgICBpbnQgd2lkdGggPSBnZGtfd2luZG93X2dldF93aWR0aCh3aW5k
b3cpOworICAgIGludCBoZWlnaHQgPSBnZGtfd2luZG93X2dldF9oZWlnaHQod2luZG93KTsKKwor
ICAgIEdVbmlxdWVQdHI8R2RrRXZlbnQ+IGV2ZW50KGdka19ldmVudF9uZXcoR0RLX1NDUk9MTCkp
OworICAgIGV2ZW50LT5zY3JvbGwudGltZSA9IEdES19DVVJSRU5UX1RJTUU7CisgICAgZXZlbnQt
PnNjcm9sbC54ID0gd2lkdGggLyAyOworICAgIGV2ZW50LT5zY3JvbGwueSA9IGhlaWdodCAvIDI7
CisgICAgZXZlbnQtPnNjcm9sbC54X3Jvb3QgPSB4ICsgd2lkdGggLyAyOworICAgIGV2ZW50LT5z
Y3JvbGwueV9yb290ID0geSArIGhlaWdodCAvIDI7CisgICAgZXZlbnQtPnNjcm9sbC5kaXJlY3Rp
b24gPSBHREtfU0NST0xMX1NNT09USDsKKyAgICBldmVudC0+c2Nyb2xsLmRlbHRhX3ggPSB4RGVs
dGE7CisgICAgZXZlbnQtPnNjcm9sbC5kZWx0YV95ID0geURlbHRhOworICAgIGV2ZW50LT5zY3Jv
bGwuc3RhdGUgPSAwOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQorICAgIGV2ZW50
LT5zY3JvbGwuaXNfc3RvcCA9ICF4RGVsdGEgJiYgIXlEZWx0YTsKKyNlbmRpZgorICAgIGdfb2Jq
ZWN0X3JlZih3aW5kb3cpOworICAgIGV2ZW50LT5zY3JvbGwud2luZG93ID0gd2luZG93OworICAg
IGdka19ldmVudF9zZXRfc2NyZWVuKGV2ZW50LmdldCgpLCBnZGtfd2luZG93X2dldF9zY3JlZW4o
d2luZG93KSk7CisgICAgZ2RrX2V2ZW50X3NldF9kZXZpY2UoZXZlbnQuZ2V0KCksIGdka19kZXZp
Y2VfbWFuYWdlcl9nZXRfY2xpZW50X3BvaW50ZXIoZ2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5h
Z2VyKGdka193aW5kb3dfZ2V0X2Rpc3BsYXkod2luZG93KSkpKTsKKyAgICBnZGtfZXZlbnRfc2V0
X3NvdXJjZV9kZXZpY2UoZXZlbnQuZ2V0KCksIGdka19kZXZpY2VfbWFuYWdlcl9nZXRfY2xpZW50
X3BvaW50ZXIoZ2RrX2Rpc3BsYXlfZ2V0X2RldmljZV9tYW5hZ2VyKGdka193aW5kb3dfZ2V0X2Rp
c3BsYXkod2luZG93KSkpKTsKKworICAgIHJldHVybiBldmVudDsKK30KKworYm9vbCBWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3Rpbmco
U3dpcGVEaXJlY3Rpb24gZGlyZWN0aW9uKQoreworICAgIGlmICghY2FuU3dpcGVJbkRpcmVjdGlv
bihkaXJlY3Rpb24pKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICBtX2lzU2ltdWxhdGVk
U3dpcGUgPSB0cnVlOworCisgICAgZG91YmxlIGRlbHRhID0gc3dpcGVUb3VjaHBhZEJhc2VXaWR0
aCAvIGd0a1Njcm9sbERlbHRhTXVsdGlwbGllciAqIDAuNzU7CisKKyAgICBpZiAoaXNQaHlzaWNh
bGx5U3dpcGluZ0xlZnQoZGlyZWN0aW9uKSkKKyAgICAgICAgZGVsdGEgPSAtZGVsdGE7CisKKyAg
ICBHVW5pcXVlUHRyPEdka0V2ZW50PiBldmVudCA9IGNyZWF0ZVNjcm9sbEV2ZW50KG1fd2ViUGFn
ZVByb3h5LnZpZXdXaWRnZXQoKSwgZGVsdGEsIDApOworICAgIGd0a193aWRnZXRfZXZlbnQobV93
ZWJQYWdlUHJveHkudmlld1dpZGdldCgpLCBldmVudC5nZXQoKSk7CisKKyAgICByZXR1cm4gdHJ1
ZTsKIH0KIAogYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmNvbXBsZXRlU2ltdWxhdGVkU3dp
cGVJbkRpcmVjdGlvbkZvclRlc3RpbmcoU3dpcGVEaXJlY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIEdVbmlxdWVQdHI8R2RrRXZlbnQ+IGV2ZW50ID0gY3JlYXRlU2Nyb2xsRXZlbnQo
bV93ZWJQYWdlUHJveHkudmlld1dpZGdldCgpLCAwLCAwKTsKKyAgICBndGtfd2lkZ2V0X2V2ZW50
KG1fd2ViUGFnZVByb3h5LnZpZXdXaWRnZXQoKSwgZXZlbnQuZ2V0KCkpOworCisgICAgbV9pc1Np
bXVsYXRlZFN3aXBlID0gZmFsc2U7CisKKyAgICByZXR1cm4gdHJ1ZTsKIH0KIAogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VM
b2cKaW5kZXggZjljYmQ1ZDk4Y2ZmYzgxZmE4ODAxMzhiYjY3MTZjZjBkZjRlZjEyZC4uNjQ0NzI1
ZTNjM2E3MDEyNjY3ZjJhMmNlOGM4OTQyNTAyNjUzYzNiZiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hh
bmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTA2LTE5
ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxleGFsbTc2NTlAZ21haWwuY29tPgorCisgICAgICAg
IFtHVEtdIEVuYWJsZSBuYXZpZ2F0aW9uIHN3aXBlIGxheW91dCB0ZXN0cworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4OTk1CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIGEgd2F5IGZvciB0ZXN0cyB0
byBlbmFibGUgYW5kIHRoZW4gY29udHJvbCBzd2lwZSBnZXN0dXJlIG9uIEdUSy4KKworICAgICAg
ICAqIFRlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5j
cHA6IEhpZGUKKyAgICAgICAgZW1wdHkgaW1wbGVtZW50YXRpb25zIG9mIGJlZ2luQmFja1N3aXBl
KCkgYW5kIGNvbXBsZXRlQmFja1N3aXBlKCkgZm9yIEdUSy4KKyAgICAgICAgKiBXZWJLaXRUZXN0
UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvZ3Rr
L1BsYXRmb3JtV2ViVmlld0d0ay5jcHA6CisgICAgICAgIChXVFI6OlBsYXRmb3JtV2ViVmlldzo6
c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZCk6IEltcGxlbWVudGVkLgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHA6IEFkZGVkLgorICAg
ICAgICAoV1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmJlZ2luQmFja1N3aXBlKToKKyAgICAgICAg
KFdUUjo6VUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZSk6CisKIDIwMTktMDYt
MTkgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFVucmV2aWV3ZWQsIGZpeCBidWlsZCB3YXJuaW5ncyBpbiBUZXN0V2ViS2l0QVBJSW5qZWN0ZWRC
dW5kbGUKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0
Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCmluZGV4IDM5ZWZjYTE2YjU1NmJiMTY5MDdh
YmNiOWFmMjQ1MTdjMTg3MWJhZDYuLjFiZWRkN2ViMTZmNzQ1OTYxNjE5OTg4NWE0ZmQyMTBhM2Vl
Yjc2ZDUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRDb250ZXh0
L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKKysrIGIvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNj
cmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNwcApAQCAtNjcxLDYgKzY3MSw3IEBAIHZv
aWQgVUlTY3JpcHRDb250cm9sbGVyOjphZGRWaWV3VG9XaW5kb3coSlNWYWx1ZVJlZikKIHsKIH0K
IAorI2lmICFQTEFURk9STShHVEspCiB2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNr
U3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKIHsKIH0KQEAgLTY3OCw2ICs2NzksNyBAQCB2b2lk
IFVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykK
IHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpjb21wbGV0ZUJhY2tTd2lwZShKU1ZhbHVlUmVmIGNh
bGxiYWNrKQogewogfQorI2VuZGlmCiAKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpzZXRTaGFy
ZVNoZWV0Q29tcGxldGVzSW1tZWRpYXRlbHlXaXRoUmVzb2x1dGlvbihib29sKQogewpkaWZmIC0t
Z2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZSBiL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKaW5kZXggYmVkYTg3YmMyMjljODBkMzQ1
NDg5NTkwNjc1MmQyNzUzZGZkOTQwNy4uMGI3ODMyZjU4ODk1OTY4NWM2YmFiNzcwMTE2ZmY2ZmRh
NWViMDgwYSAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5j
bWFrZQorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlCkBAIC0x
MCw2ICsxMCw3IEBAIGxpc3QoQVBQRU5EIFdlYktpdFRlc3RSdW5uZXJfU09VUkNFUwogICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvRXZlbnRTZW5kZXJQcm94eUd0ay5jcHAKICAgICAk
e1dFQktJVF9URVNUUlVOTkVSX0RJUn0vZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKICAgICAk
e1dFQktJVF9URVNUUlVOTkVSX0RJUn0vZ3RrL1Rlc3RDb250cm9sbGVyR3RrLmNwcAorICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcAogICAg
ICR7V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvbWFpbi5jcHAKICkKIApkaWZmIC0tZ2l0IGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcCBiL1Rvb2xz
L1dlYktpdFRlc3RSdW5uZXIvZ3RrL1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKaW5kZXggYjM2Njg0
NDFhNWM3NzRjZGYzZjU1MGJiZTJlMDIxNDA5Mjg0YjAwZC4uZDRhMjYyOTE4ZjIzOWNkZDViMTE0
OTM1MGFkZTUzMzQwZjJhNTAxNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9n
dGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0
ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCkBAIC0xODUsOCArMTg1LDkgQEAgdm9pZCBQbGF0Zm9y
bVdlYlZpZXc6OmRpc21pc3NBbGxQb3B1cE1lbnVzKCkKICAgICB9LCBudWxscHRyKTsKIH0KIAot
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCkK
K3ZvaWQgUGxhdGZvcm1XZWJWaWV3OjpzZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKGJvb2wg
ZW5hYmxlZCkKIHsKKyAgICBXS1ZpZXdTZXRFbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0
dXJlKHBsYXRmb3JtVmlldygpLCBlbmFibGVkKTsKIH0KIAogYm9vbCBQbGF0Zm9ybVdlYlZpZXc6
OmRyYXdzQmFja2dyb3VuZCgpIGNvbnN0CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVu
bmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MzIxY2NlYjA3YzZm
MTIzNzU5ZWRkYzk4ZTNkZmExZDMyZTRmNjhkCi0tLSAvZGV2L251bGwKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcApAQCAtMCwwICsxLDQ5
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE5IEFsZXhhbmRlciBNaWtoYXlsZW5rbyA8ZXhh
bG03NjU5QGdtYWlsLmNvbT4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
IGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJ
REVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQg
QU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElO
IE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRI
RVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcg
TkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1
ZGUgIlVJU2NyaXB0Q29udHJvbGxlci5oIgorCisjaW5jbHVkZSAiUGxhdGZvcm1XZWJWaWV3Lmgi
CisjaW5jbHVkZSAiVGVzdENvbnRyb2xsZXIuaCIKKyNpbmNsdWRlIDxXZWJLaXQvV0tWaWV3UHJp
dmF0ZS5oPgorCituYW1lc3BhY2UgV1RSIHsKKwordm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmJl
Z2luQmFja1N3aXBlKEpTVmFsdWVSZWYgY2FsbGJhY2spCit7CisgICAgYXV0byogd2ViVmlldyA9
IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24oKS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXco
KTsKKworICAgIFdLVmlld0JlZ2luQmFja1N3aXBlRm9yVGVzdGluZyh3ZWJWaWV3KTsKK30KKwor
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2Fs
bGJhY2spCit7CisgICAgYXV0byogd2ViVmlldyA9IFRlc3RDb250cm9sbGVyOjpzaW5nbGV0b24o
KS5tYWluV2ViVmlldygpLT5wbGF0Zm9ybVZpZXcoKTsKKworICAgIFdLVmlld0NvbXBsZXRlQmFj
a1N3aXBlRm9yVGVzdGluZyh3ZWJWaWV3KTsKK30KKworfSAvLyBuYW1lc3BhY2UgV1RSCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5k
ZXggYmVhZWZiYzNhMjUzOTRkMDc0NmIzODYwMDQwMjUxNDE3ZTY1ZDkwNC4uNWJhY2E1N2E3YzRi
NmM0MWIxMWE3NGViYzM3MDA1N2EwNjJjZmJlYSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5
LTA2LTE5ICBBbGV4YW5kZXIgTWlraGF5bGVua28gIDxleGFsbTc2NTlAZ21haWwuY29tPgorCisg
ICAgICAgIFtHVEtdIEVuYWJsZSBuYXZpZ2F0aW9uIHN3aXBlIGxheW91dCB0ZXN0cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk4OTk1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgRW5hYmxlIHRoZSBleGlz
dGluZyB0ZXN0cyBmb3IgdGhlIHN3aXBlIGdlc3R1cmUuCisKKyAgICAgICAgc3dpcGUvcHVzaFN0
YXRlLXByb2dyYW1tYXRpYy1iYWNrLXdoaWxlLXN3aXBpbmctY3Jhc2guaHRtbCBpcyBub3QgYXBw
bGljYWJsZSBiZWNhdXNlCisgICAgICAgIGl0IGRlYWxzIHdpdGggTlNFdmVudHMgZGlyZWN0bHks
IHNraXAgaXQuCisKKyAgICAgICAgc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5nLXJlcXVpcmVtZW50
Lmh0bWwgaXMgZmxha3ksIHNhbWUgYXMgb24gTWFjLgorCisgICAgICAgIHN3aXBlL3B1c2hzdGF0
ZS13aXRoLW1hbnVhbC1zY3JvbGxyZXN0b3JhdGlvbi5odG1sIHBhc3NlcywgZG9uJ3QgbWFyayBp
dCBhcyBmYWlsdXJlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnM6
CisKIDIwMTktMDYtMTkgIFJ1c3NlbGwgRXBzdGVpbiAgPHJ1c3NlbGxfZUBhcHBsZS5jb20+CiAK
ICAgICAgICAgd2ViZ3B1L2JsZW5kLWNvbG9yLXRyaWFuZ2xlLXN0cmlwLmh0bWwgaXMgYSBmbGFr
ZXkgZmFpbHVyZSBzaW5jZSBpbnRyb2R1Y3Rpb24uCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9U
ZXN0RXhwZWN0YXRpb25zCmluZGV4IGVlOTk1MDY4ZDk3NzdlNDFlOTE1MjliN2RmMTVjYTRkZDY2
ZWE3ZDUuLmE0MzA1MWY0OTI2MDNmOTg2NmI5OWMwMmNjYWFlMGQ3YjU2Njk4YmUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91
dFRlc3RzL3BsYXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zCkBAIC0yMSw2ICsyMSw3IEBACiAK
IGFjY2Vzc2liaWxpdHkvZ3RrIFsgUGFzcyBdCiBlZGl0aW5nL3Bhc3RlYm9hcmQvZ3RrIFsgUGFz
cyBdCitzd2lwZSBbIFBhc3MgXQogCiAjLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
CiAjIEVuZCBwbGF0Zm9ybS1zcGVjaWZpYyBkaXJlY3Rvcmllcy4KQEAgLTEyMjAsNiArMTIyMSwx
MiBAQCBmYXN0L21lZGlhc3RyZWFtL3NjcmVlbmNhcHR1cmUtdXNlci1nZXN0dXJlLmh0bWwgWyBT
a2lwIF0KICMgTm8gZGlmZmVyZW50IHJlbmRlcmluZyBmb3IgdGV4dC1yZW5kZXJpbmc6IG9wdGlt
aXplTGVnaWJpbGl0eQogZmFzdC90ZXh0L3ZhcmlhdGlvbnMvb3B0aWNhbC1zaXppbmctdHJhay0y
Lmh0bWwgWyBTa2lwIF0KIAorIyBUaGUgdGVzdCBkaXJlY3RseSBzZW5kcyBDb2NvYSBldmVudHMK
K3N3aXBlL3B1c2hTdGF0ZS1wcm9ncmFtbWF0aWMtYmFjay13aGlsZS1zd2lwaW5nLWNyYXNoLmh0
bWwgWyBTa2lwIF0KKworIyBGbGFreSwgdGhlIG9yZGVyIG9mIGxpbmVzIGluIHRoZSBvdXRwdXQg
bWF5IGNoYW5nZS4KK3dlYmtpdC5vcmcvYi8xNzA0ODQgc3dpcGUvbWFpbi1mcmFtZS1waW5uaW5n
LXJlcXVpcmVtZW50Lmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCiAjLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLwogIyBFbmQgb2YgRXhwZWN0ZWQgZmFpbHVyZXMuCiAjCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>372559</attachid>
            <date>2019-06-20 08:31:18 -0700</date>
            <delta_ts>2019-06-20 10:05:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-198995-20190620203116.patch</filename>
            <type>text/plain</type>
            <size>18381</size>
            <attacher name="Alice Mikhaylenko">alicem</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQ2NTk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNhMjQ1YmViMzk2OWMxNTll
NjdlNTE4YzU1MWI3OGMyNGE4YWU0OGEuLmQ5YTA3NTkxYjIwOTY0YWEwNzlmZjI0ODAxODVmNWU3
OGYzYjU2NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzggQEAKKzIwMTktMDYtMTkgIEFsZXhhbmRl
ciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CisKKyAgICAgICAgW0dUS10gRW5h
YmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5OTUKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgQVBJIGZvciBlbmFibGluZyBhbmQg
Y29udHJvbGxpbmcgc3dpcGVzIGZyb20gV2ViS2l0VGVzdFJ1bm5lci4KKworICAgICAgICBJbXBs
ZW1lbnQgYmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZygpIGFuZCBjb21w
bGV0ZVNpbXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKCkKKyAgICAgICAgaW4gVmll
d0dlc3R1cmVDb250cm9sbGVyIGZvciBjb250cm9sbGluZyB0aGUgdGVzdCBzd2lwZXMuIEFkZCBm
dW5jdGlvbnMgaW4gV2ViS2l0V2ViVmlld0Jhc2UgZm9yIGNhbGxpbmcKKyAgICAgICAgdGhlbS4K
KworICAgICAgICBTaW11bGF0ZSB0aGUgZ2VzdHVyZSBieSBnZW5lcmF0aW5nIHR3byBzY3JvbGwg
ZXZlbnRzOiBvbmUgdG8gYmVnaW4gdGhlIGdlc3R1cmUgYW5kIG9uZSB0byBjb21wbGV0ZSBpdC4K
KworICAgICAgICBTaW5jZSB0aGVyZSdzIG5vIHJlbGlhYmxlIHdheSB0byBzZXQgc291cmNlIGRl
dmljZSB0eXBlIG9mIHRoZSBnZW5lcmF0ZWQgZXZlbnRzIHRvIHRvdWNocGFkLCBkb24ndCBjaGVj
aworICAgICAgICBzb3VyY2UgZGV2aWNlIHR5cGUgZm9yIHNpbXVsYXRlZCBzd2lwZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHA6CisgICAgICAgIChXS1ZpZXdT
ZXRFbmFibGVCYWNrRm9yd2FyZE5hdmlnYXRpb25HZXN0dXJlKTogQWRkZWQuCisgICAgICAgIChX
S1ZpZXdCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcpOiBBZGRlZC4KKyAgICAgICAgKFdLVmlld0Nv
bXBsZXRlQmFja1N3aXBlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdCYXNlLmNwcDoKKyAgICAgICAgKHdlYmtpdFdlYlZpZXdCYXNlQmVnaW5CYWNr
U3dpcGVGb3JUZXN0aW5nKTogQWRkZWQuCisgICAgICAgICh3ZWJraXRXZWJWaWV3QmFzZUNvbXBs
ZXRlQmFja1N3aXBlRm9yVGVzdGluZyk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXIuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvZ3RrL1ZpZXdHZXN0dXJl
Q29udHJvbGxlckd0ay5jcHA6CisgICAgICAgIChXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxl
cjo6UGVuZGluZ1N3aXBlVHJhY2tlcjo6c2Nyb2xsRXZlbnRDYW5JbmZsdWVuY2VTd2lwZSk6Cisg
ICAgICAgIFNraXAgc291cmNlIGRldmljZSB0eXBlIGNoZWNrIGZvciBzaW11bGF0ZWQgc3dpcGVz
LiBBbHNvLCByZW1vdmUgYW4gaW5jb3JyZWN0IEZJWE1FLgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVTY3JvbGxFdmVudCk6IEFkZGVkLgorICAgICAgICAoV2ViS2l0OjpWaWV3R2VzdHVyZUNvbnRy
b2xsZXI6OmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcpOiBJbXBsZW1l
bnRlZC4KKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpjb21wbGV0ZVNp
bXVsYXRlZFN3aXBlSW5EaXJlY3Rpb25Gb3JUZXN0aW5nKTogSW1wbGVtZW50ZWQuCisKIDIwMTkt
MDYtMTkgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBVcGRhdGUgcHJldmlldyBBUEkgZGVwcmVjYXRpb24gbWVzc2FnZS4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXcuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmlldy5jcHAKaW5kZXggNDhjNDFhYzc3YjFhYWUy
OWI3YzdjOWUwNzMyYTc0YTEyYmFmOWZmMi4uNTAxYzE2NGMwMDlkMmU3YjRhZjIzNWIyZTc4ODc0
Mzc1ZDU3ZjUzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3Rr
L1dLVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvZ3RrL1dLVmll
dy5jcHAKQEAgLTQ4LDMgKzQ4LDE4IEBAIHZvaWQgV0tWaWV3U2V0Rm9jdXMoV0tWaWV3UmVmIHZp
ZXdSZWYsIGJvb2wgZm9jdXNlZCkKIHsKICAgICB3ZWJraXRXZWJWaWV3QmFzZVNldEZvY3VzKHRv
SW1wbCh2aWV3UmVmKSwgZm9jdXNlZCk7CiB9CisKK3ZvaWQgV0tWaWV3U2V0RW5hYmxlQmFja0Zv
cndhcmROYXZpZ2F0aW9uR2VzdHVyZShXS1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBlbmFibGVkKQor
eworICAgIHdlYmtpdFdlYlZpZXdCYXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2Vz
dHVyZSh0b0ltcGwodmlld1JlZiksIGVuYWJsZWQpOworfQorCitib29sIFdLVmlld0JlZ2luQmFj
a1N3aXBlRm9yVGVzdGluZyhXS1ZpZXdSZWYgdmlld1JlZikKK3sKKyAgICByZXR1cm4gd2Via2l0
V2ViVmlld0Jhc2VCZWdpbkJhY2tTd2lwZUZvclRlc3RpbmcodG9JbXBsKHZpZXdSZWYpKTsKK30K
KworYm9vbCBXS1ZpZXdDb21wbGV0ZUJhY2tTd2lwZUZvclRlc3RpbmcoV0tWaWV3UmVmIHZpZXdS
ZWYpCit7CisgICAgcmV0dXJuIHdlYmtpdFdlYlZpZXdCYXNlQ29tcGxldGVCYWNrU3dpcGVGb3JU
ZXN0aW5nKHRvSW1wbCh2aWV3UmVmKSk7Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0MvZ3RrL1dLVmlld1ByaXZhdGUuaAppbmRleCBhY2FiZmQzYWYxOTgyNmQ2N2I3ZTEx
OTllNzZiZmYxMDRiM2M4NWI3Li5hYWZkNjU3NTMyOGU0MDk3MjZlM2UwMWIzOGJiYjA1YmEyMjBk
YmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9ndGsvV0tWaWV3
UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL2d0ay9XS1ZpZXdQ
cml2YXRlLmgKQEAgLTM0LDYgKzM0LDEyIEBAIGV4dGVybiAiQyIgewogCiBXS19FWFBPUlQgdm9p
ZCBXS1ZpZXdTZXRGb2N1cyhXS1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBmb2N1c2VkKTsKIAorV0tf
RVhQT1JUIHZvaWQgV0tWaWV3U2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShX
S1ZpZXdSZWYgdmlld1JlZiwgYm9vbCBlbmFibGVkKTsKKworV0tfRVhQT1JUIGJvb2wgV0tWaWV3
QmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVmKTsKKworV0tfRVhQT1JU
IGJvb2wgV0tWaWV3Q29tcGxldGVCYWNrU3dpcGVGb3JUZXN0aW5nKFdLVmlld1JlZiB2aWV3UmVm
KTsKKwogI2lmZGVmIF9fY3BsdXNwbHVzCiB9CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2UuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKaW5kZXggNzdlMDQx
NDMxMzBhODQ5NTA1ZmRhZDk3MTRjMDYyMjM0MmExM2FmZC4uODZiZGM2YjllMjc0YjA3ZTlkOWU2
ZWZhMWNkMmYxOWVjMGIxZTFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZS5jcHAKQEAgLTEyNjQsNiArMTI2NCwyMiBAQCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXIqIHdlYmtpdFdlYlZpZXdCYXNlVmlld0dlc3R1cmVDb250cm9s
bGVyKFdlYktpdFdlYlZpZXdCYXNlKgogICAgIHJldHVybiB3ZWJWaWV3QmFzZS0+cHJpdi0+dmll
d0dlc3R1cmVDb250cm9sbGVyLmdldCgpOwogfQogCitib29sIHdlYmtpdFdlYlZpZXdCYXNlQmVn
aW5CYWNrU3dpcGVGb3JUZXN0aW5nKFdlYktpdFdlYlZpZXdCYXNlKiB3ZWJWaWV3QmFzZSkKK3sK
KyAgICBpZiAoYXV0byogZ2VzdHVyZUNvbnRyb2xsZXIgPSB3ZWJraXRXZWJWaWV3QmFzZVZpZXdH
ZXN0dXJlQ29udHJvbGxlcih3ZWJWaWV3QmFzZSkpCisgICAgICAgIHJldHVybiBnZXN0dXJlQ29u
dHJvbGxlci0+YmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZyhWaWV3R2Vz
dHVyZUNvbnRyb2xsZXI6OlN3aXBlRGlyZWN0aW9uOjpCYWNrKTsKKworICAgIHJldHVybiBGQUxT
RTsKK30KKworYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9yVGVzdGlu
ZyhXZWJLaXRXZWJWaWV3QmFzZSogd2ViVmlld0Jhc2UpCit7CisgICAgaWYgKGF1dG8qIGdlc3R1
cmVDb250cm9sbGVyID0gd2Via2l0V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIod2Vi
Vmlld0Jhc2UpKQorICAgICAgICByZXR1cm4gZ2VzdHVyZUNvbnRyb2xsZXItPmNvbXBsZXRlU2lt
dWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcoVmlld0dlc3R1cmVDb250cm9sbGVyOjpT
d2lwZURpcmVjdGlvbjo6QmFjayk7CisKKyAgICByZXR1cm4gRkFMU0U7Cit9CisKIHN0YXRpYyBn
Ym9vbGVhbiB3ZWJraXRXZWJWaWV3QmFzZVF1ZXJ5VG9vbHRpcChHdGtXaWRnZXQqIHdpZGdldCwg
Z2ludCAvKiB4ICovLCBnaW50IC8qIHkgKi8sIGdib29sZWFuIGtleWJvYXJkTW9kZSwgR3RrVG9v
bHRpcCogdG9vbHRpcCkKIHsKICAgICBXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUqIHByaXYgPSBX
RUJLSVRfV0VCX1ZJRVdfQkFTRSh3aWRnZXQpLT5wcml2OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgKaW5k
ZXggZDFhNmYwMjQ2YmY4YjNhZTU4MjkzNTc3ZDVkZWFhZTcwYzY5OTdjMi4uMzNjZjdjNTQzOTIw
ZmIzYTI1ZDI3Y2Y0MGY5NjY5MWFkYjQ5ZjJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdCYXNlUHJpdmF0ZS5oCkBAIC04
OSw2ICs4OSw5IEBAIFJlZlB0cjxXZWJLaXQ6OlZpZXdTbmFwc2hvdD4gd2Via2l0V2ViVmlld0Jh
c2VUYWtlVmlld1NuYXBzaG90KFdlYktpdFdlYlZpZXdCYXNlCiB2b2lkIHdlYmtpdFdlYlZpZXdC
YXNlU2V0RW5hYmxlQmFja0ZvcndhcmROYXZpZ2F0aW9uR2VzdHVyZShXZWJLaXRXZWJWaWV3QmFz
ZSosIGJvb2wgZW5hYmxlZCk7CiBXZWJLaXQ6OlZpZXdHZXN0dXJlQ29udHJvbGxlciogd2Via2l0
V2ViVmlld0Jhc2VWaWV3R2VzdHVyZUNvbnRyb2xsZXIoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIAor
Ym9vbCB3ZWJraXRXZWJWaWV3QmFzZUJlZ2luQmFja1N3aXBlRm9yVGVzdGluZyhXZWJLaXRXZWJW
aWV3QmFzZSopOworYm9vbCB3ZWJraXRXZWJWaWV3QmFzZUNvbXBsZXRlQmFja1N3aXBlRm9yVGVz
dGluZyhXZWJLaXRXZWJWaWV3QmFzZSopOworCiB2b2lkIHdlYmtpdFdlYlZpZXdCYXNlRGlkU3Rh
cnRQcm92aXNpb25hbExvYWRGb3JNYWluRnJhbWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQg
d2Via2l0V2ViVmlld0Jhc2VEaWRGaXJzdFZpc3VhbGx5Tm9uRW1wdHlMYXlvdXRGb3JNYWluRnJh
bWUoV2ViS2l0V2ViVmlld0Jhc2UqKTsKIHZvaWQgd2Via2l0V2ViVmlld0Jhc2VEaWRGaW5pc2hM
b2FkRm9yTWFpbkZyYW1lKFdlYktpdFdlYlZpZXdCYXNlKik7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29udHJvbGxlci5oCmluZGV4IGMxNjcwZDNhOTRjZWYzZDkw
NmFmNDk0OWNkNTQxMzYwNDk0NzYzMGIuLmYzZGYzMmZhYWI5YzRiYjllNmFmODUzMmM3OWI0NmNj
MGIzZDA1NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJl
Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlci5oCkBAIC00MDksNiArNDA5LDggQEAgcHJpdmF0ZToKICAgICBTd2lwZVByb2dyZXNz
VHJhY2tlciBtX3N3aXBlUHJvZ3Jlc3NUcmFja2VyOwogCiAgICAgUmVmUHRyPGNhaXJvX3BhdHRl
cm5fdD4gbV9jdXJyZW50U3dpcGVTbmFwc2hvdFBhdHRlcm47CisKKyAgICBib29sIG1faXNTaW11
bGF0ZWRTd2lwZSB7IGZhbHNlIH07CiAjZW5kaWYKIAogICAgIGJvb2wgbV9pc0Nvbm5lY3RlZFRv
UHJvY2VzcyB7IGZhbHNlIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9n
dGsvVmlld0dlc3R1cmVDb250cm9sbGVyR3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2d0ay9WaWV3R2VzdHVyZUNvbnRyb2xsZXJHdGsuY3BwCmluZGV4IDlkMGJhMjIwNWM3MDRmZDQy
YTM5ZDdiNGNlOTc0ZTg4Y2Q5YTU2YzkuLjQ2MzdjYTdiOTBmODU5YzAzYTk2MmVjNzYxYzBjZTM3
Yzk0NDliNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXJHdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2d0ay9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJHdGsuY3BwCkBAIC04NCw5ICs4NCw5IEBAIGJvb2wgVmlld0dl
c3R1cmVDb250cm9sbGVyOjpQZW5kaW5nU3dpcGVUcmFja2VyOjpzY3JvbGxFdmVudENhbkluZmx1
ZW5jZVN3aXBlKEdkCiAgICAgR2RrRGV2aWNlKiBkZXZpY2UgPSBnZGtfZXZlbnRfZ2V0X3NvdXJj
ZV9kZXZpY2UocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSk7CiAgICAgR2RrSW5w
dXRTb3VyY2Ugc291cmNlID0gZ2RrX2RldmljZV9nZXRfc291cmNlKGRldmljZSk7CiAKLSAgICAv
LyBGSVhNRTogU2hvdWxkIGl0IG1heWJlIGJlIGFsbG93ZWQgb24gbWljZS90cmFja3BvaW50cyBh
cyB3ZWxsPyBUaGUgR0RLX1NDUk9MTF9TTU9PVEgKLSAgICAvLyByZXF1aXJlbWVudCBhbHJlYWR5
IGZpbHRlcnMgb3V0IG1vc3QgbWljZSwgYW5kIGl0IHdvcmtzIHByZXR0eSB3ZWxsIG9uIGEgdHJh
Y2twb2ludAotICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0X3Njcm9sbF9kZWx0YXMocmVpbnRlcnBy
ZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgbnVsbHB0ciwgbnVsbHB0cikgJiYgKHNvdXJjZSA9
PSBHREtfU09VUkNFX1RPVUNIUEFEIHx8IHNvdXJjZSA9PSBHREtfU09VUkNFX1RPVUNIU0NSRUVO
KTsKKyAgICBib29sIGlzRGV2aWNlQWxsb3dlZCA9IHNvdXJjZSA9PSBHREtfU09VUkNFX1RPVUNI
UEFEIHx8IHNvdXJjZSA9PSBHREtfU09VUkNFX1RPVUNIU0NSRUVOIHx8IG1fdmlld0dlc3R1cmVD
b250cm9sbGVyLm1faXNTaW11bGF0ZWRTd2lwZTsKKworICAgIHJldHVybiBnZGtfZXZlbnRfZ2V0
X3Njcm9sbF9kZWx0YXMocmVpbnRlcnByZXRfY2FzdDxHZGtFdmVudCo+KGV2ZW50KSwgbnVsbHB0
ciwgbnVsbHB0cikgJiYgaXNEZXZpY2VBbGxvd2VkOwogfQogCiBzdGF0aWMgYm9vbCBpc1RvdWNo
RXZlbnQoR2RrRXZlbnRTY3JvbGwqIGV2ZW50KQpAQCAtMzk3LDE0ICszOTcsNjMgQEAgdm9pZCBW
aWV3R2VzdHVyZUNvbnRyb2xsZXI6OnJlbW92ZVN3aXBlU25hcHNob3QoKQogICAgIG1fc3dpcGVQ
cm9ncmVzc1RyYWNrZXIucmVzZXQoKTsKIH0KIAotYm9vbCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6
OmJlZ2luU2ltdWxhdGVkU3dpcGVJbkRpcmVjdGlvbkZvclRlc3RpbmcoU3dpcGVEaXJlY3Rpb24p
CitzdGF0aWMgR1VuaXF1ZVB0cjxHZGtFdmVudD4gY3JlYXRlU2Nyb2xsRXZlbnQoR3RrV2lkZ2V0
KiB3aWRnZXQsIGRvdWJsZSB4RGVsdGEsIGRvdWJsZSB5RGVsdGEpCiB7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIEdka1dpbmRvdyogd2luZG93ID0gZ3RrX3dpZGdldF9nZXRfd2luZG93KHdpZGdl
dCk7CisKKyAgICBpbnQgeCwgeTsKKyAgICBnZGtfd2luZG93X2dldF9yb290X29yaWdpbih3aW5k
b3csICZ4LCAmeSk7CisKKyAgICBpbnQgd2lkdGggPSBnZGtfd2luZG93X2dldF93aWR0aCh3aW5k
b3cpOworICAgIGludCBoZWlnaHQgPSBnZGtfd2luZG93X2dldF9oZWlnaHQod2luZG93KTsKKwor
ICAgIEdVbmlxdWVQdHI8R2RrRXZlbnQ+IGV2ZW50KGdka19ldmVudF9uZXcoR0RLX1NDUk9MTCkp
OworICAgIGV2ZW50LT5zY3JvbGwudGltZSA9IEdES19DVVJSRU5UX1RJTUU7CisgICAgZXZlbnQt
PnNjcm9sbC54ID0gd2lkdGggLyAyOworICAgIGV2ZW50LT5zY3JvbGwueSA9IGhlaWdodCAvIDI7
CisgICAgZXZlbnQtPnNjcm9sbC54X3Jvb3QgPSB4ICsgd2lkdGggLyAyOworICAgIGV2ZW50LT5z
Y3JvbGwueV9yb290ID0geSArIGhlaWdodCAvIDI7CisgICAgZXZlbnQtPnNjcm9sbC5kaXJlY3Rp
b24gPSBHREtfU0NST0xMX1NNT09USDsKKyAgICBldmVudC0+c2Nyb2xsLmRlbHRhX3ggPSB4RGVs
dGE7CisgICAgZXZlbnQtPnNjcm9sbC5kZWx0YV95ID0geURlbHRhOworICAgIGV2ZW50LT5zY3Jv
bGwuc3RhdGUgPSAwOworI2lmIEdUS19DSEVDS19WRVJTSU9OKDMsIDIwLCAwKQorICAgIGV2ZW50
LT5zY3JvbGwuaXNfc3RvcCA9ICF4RGVsdGEgJiYgIXlEZWx0YTsKKyNlbmRpZgorICAgIGV2ZW50
LT5zY3JvbGwud2luZG93ID0gR0RLX1dJTkRPVyhnX29iamVjdF9yZWYod2luZG93KSk7CisgICAg
Z2RrX2V2ZW50X3NldF9zY3JlZW4oZXZlbnQuZ2V0KCksIGdka193aW5kb3dfZ2V0X3NjcmVlbih3
aW5kb3cpKTsKKyAgICBnZGtfZXZlbnRfc2V0X2RldmljZShldmVudC5nZXQoKSwgZ2RrX2Rldmlj
ZV9tYW5hZ2VyX2dldF9jbGllbnRfcG9pbnRlcihnZGtfZGlzcGxheV9nZXRfZGV2aWNlX21hbmFn
ZXIoZ2RrX3dpbmRvd19nZXRfZGlzcGxheSh3aW5kb3cpKSkpOworICAgIGdka19ldmVudF9zZXRf
c291cmNlX2RldmljZShldmVudC5nZXQoKSwgZ2RrX2RldmljZV9tYW5hZ2VyX2dldF9jbGllbnRf
cG9pbnRlcihnZGtfZGlzcGxheV9nZXRfZGV2aWNlX21hbmFnZXIoZ2RrX3dpbmRvd19nZXRfZGlz
cGxheSh3aW5kb3cpKSkpOworCisgICAgcmV0dXJuIGV2ZW50OworfQorCitib29sIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6YmVnaW5TaW11bGF0ZWRTd2lwZUluRGlyZWN0aW9uRm9yVGVzdGluZyhT
d2lwZURpcmVjdGlvbiBkaXJlY3Rpb24pCit7CisgICAgaWYgKCFjYW5Td2lwZUluRGlyZWN0aW9u
KGRpcmVjdGlvbikpCisgICAgICAgIHJldHVybiBmYWxzZTsKKworICAgIG1faXNTaW11bGF0ZWRT
d2lwZSA9IHRydWU7CisKKyAgICBkb3VibGUgZGVsdGEgPSBzd2lwZVRvdWNocGFkQmFzZVdpZHRo
IC8gZ3RrU2Nyb2xsRGVsdGFNdWx0aXBsaWVyICogMC43NTsKKworICAgIGlmIChpc1BoeXNpY2Fs
bHlTd2lwaW5nTGVmdChkaXJlY3Rpb24pKQorICAgICAgICBkZWx0YSA9IC1kZWx0YTsKKworICAg
IEdVbmlxdWVQdHI8R2RrRXZlbnQ+IGV2ZW50ID0gY3JlYXRlU2Nyb2xsRXZlbnQobV93ZWJQYWdl
UHJveHkudmlld1dpZGdldCgpLCBkZWx0YSwgMCk7CisgICAgZ3RrX3dpZGdldF9ldmVudChtX3dl
YlBhZ2VQcm94eS52aWV3V2lkZ2V0KCksIGV2ZW50LmdldCgpKTsKKworICAgIHJldHVybiB0cnVl
OwogfQogCiBib29sIFZpZXdHZXN0dXJlQ29udHJvbGxlcjo6Y29tcGxldGVTaW11bGF0ZWRTd2lw
ZUluRGlyZWN0aW9uRm9yVGVzdGluZyhTd2lwZURpcmVjdGlvbikKIHsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgR1VuaXF1ZVB0cjxHZGtFdmVudD4gZXZlbnQgPSBjcmVhdGVTY3JvbGxFdmVudCht
X3dlYlBhZ2VQcm94eS52aWV3V2lkZ2V0KCksIDAsIDApOworICAgIGd0a193aWRnZXRfZXZlbnQo
bV93ZWJQYWdlUHJveHkudmlld1dpZGdldCgpLCBldmVudC5nZXQoKSk7CisKKyAgICBtX2lzU2lt
dWxhdGVkU3dpcGUgPSBmYWxzZTsKKworICAgIHJldHVybiB0cnVlOwogfQogCiB9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxv
ZwppbmRleCBmOWNiZDVkOThjZmZjODFmYTg4MDEzOGJiNjcxNmNmMGRmNGVmMTJkLi42NDQ3MjVl
M2MzYTcwMTI2NjdmMmEyY2U4Yzg5NDI1MDI2NTNjM2JmIDEwMDY0NAotLS0gYS9Ub29scy9DaGFu
Z2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTktMDYtMTkg
IEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CisKKyAgICAgICAg
W0dUS10gRW5hYmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5OTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB3YXkgZm9yIHRlc3RzIHRv
IGVuYWJsZSBhbmQgdGhlbiBjb250cm9sIHN3aXBlIGdlc3R1cmUgb24gR1RLLgorCisgICAgICAg
ICogVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQvVUlTY3JpcHRDb250cm9sbGVyLmNw
cDogSGlkZQorICAgICAgICBlbXB0eSBpbXBsZW1lbnRhdGlvbnMgb2YgYmVnaW5CYWNrU3dpcGUo
KSBhbmQgY29tcGxldGVCYWNrU3dpcGUoKSBmb3IgR1RLLgorICAgICAgICAqIFdlYktpdFRlc3RS
dW5uZXIvUGxhdGZvcm1HVEsuY21ha2U6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9ndGsv
UGxhdGZvcm1XZWJWaWV3R3RrLmNwcDoKKyAgICAgICAgKFdUUjo6UGxhdGZvcm1XZWJWaWV3Ojpz
ZXROYXZpZ2F0aW9uR2VzdHVyZXNFbmFibGVkKTogSW1wbGVtZW50ZWQuCisgICAgICAgICogV2Vi
S2l0VGVzdFJ1bm5lci9ndGsvVUlTY3JpcHRDb250cm9sbGVyR3RrLmNwcDogQWRkZWQuCisgICAg
ICAgIChXVFI6OlVJU2NyaXB0Q29udHJvbGxlcjo6YmVnaW5CYWNrU3dpcGUpOgorICAgICAgICAo
V1RSOjpVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKToKKwogMjAxOS0wNi0x
OSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGlnYWxpYS5jb20+CiAKICAgICAgICAg
VW5yZXZpZXdlZCwgZml4IGJ1aWxkIHdhcm5pbmdzIGluIFRlc3RXZWJLaXRBUElJbmplY3RlZEJ1
bmRsZQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmNwcCBiL1Rvb2xzL1Rlc3RSdW5uZXJTaGFyZWQvVUlTY3JpcHRD
b250ZXh0L1VJU2NyaXB0Q29udHJvbGxlci5jcHAKaW5kZXggMzllZmNhMTZiNTU2YmIxNjkwN2Fi
Y2I5YWYyNDUxN2MxODcxYmFkNi4uMWJlZGQ3ZWIxNmY3NDU5NjE2MTk5ODg1YTRmZDIxMGEzZWVi
NzZkNSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFJ1bm5lclNoYXJlZC9VSVNjcmlwdENvbnRleHQv
VUlTY3JpcHRDb250cm9sbGVyLmNwcAorKysgYi9Ub29scy9UZXN0UnVubmVyU2hhcmVkL1VJU2Ny
aXB0Q29udGV4dC9VSVNjcmlwdENvbnRyb2xsZXIuY3BwCkBAIC02NzEsNiArNjcxLDcgQEAgdm9p
ZCBVSVNjcmlwdENvbnRyb2xsZXI6OmFkZFZpZXdUb1dpbmRvdyhKU1ZhbHVlUmVmKQogewogfQog
CisjaWYgIVBMQVRGT1JNKEdUSykKIHZvaWQgVUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tT
d2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQogewogfQpAQCAtNjc4LDYgKzY3OSw3IEBAIHZvaWQg
VUlTY3JpcHRDb250cm9sbGVyOjpiZWdpbkJhY2tTd2lwZShKU1ZhbHVlUmVmIGNhbGxiYWNrKQog
dm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OmNvbXBsZXRlQmFja1N3aXBlKEpTVmFsdWVSZWYgY2Fs
bGJhY2spCiB7CiB9CisjZW5kaWYKIAogdm9pZCBVSVNjcmlwdENvbnRyb2xsZXI6OnNldFNoYXJl
U2hlZXRDb21wbGV0ZXNJbW1lZGlhdGVseVdpdGhSZXNvbHV0aW9uKGJvb2wpCiB7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNtYWtlIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9QbGF0Zm9ybUdUSy5jbWFrZQppbmRleCBiZWRhODdiYzIyOWM4MGQzNDU0
ODk1OTA2NzUyZDI3NTNkZmQ5NDA3Li4wYjc4MzJmNTg4OTU5Njg1YzZiYWI3NzAxMTZmZjZmZGE1
ZWIwODBhIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1BsYXRmb3JtR1RLLmNt
YWtlCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvUGxhdGZvcm1HVEsuY21ha2UKQEAgLTEw
LDYgKzEwLDcgQEAgbGlzdChBUFBFTkQgV2ViS2l0VGVzdFJ1bm5lcl9TT1VSQ0VTCiAgICAgJHtX
RUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2d0ay9FdmVudFNlbmRlclByb3h5R3RrLmNwcAogICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAogICAgICR7
V0VCS0lUX1RFU1RSVU5ORVJfRElSfS9ndGsvVGVzdENvbnRyb2xsZXJHdGsuY3BwCisgICAgJHtX
RUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCiAgICAg
JHtXRUJLSVRfVEVTVFJVTk5FUl9ESVJ9L2d0ay9tYWluLmNwcAogKQogCmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2d0ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9ndGsvUGxhdGZvcm1XZWJWaWV3R3RrLmNwcAppbmRleCBiMzY2ODQ0
MWE1Yzc3NGNkZjNmNTUwYmJlMmUwMjE0MDkyODRiMDBkLi5kNGEyNjI5MThmMjM5Y2RkNWIxMTQ5
MzUwYWRlNTMzNDBmMmE1MDE0IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2d0
ay9QbGF0Zm9ybVdlYlZpZXdHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvZ3Rr
L1BsYXRmb3JtV2ViVmlld0d0ay5jcHAKQEAgLTE4NSw4ICsxODUsOSBAQCB2b2lkIFBsYXRmb3Jt
V2ViVmlldzo6ZGlzbWlzc0FsbFBvcHVwTWVudXMoKQogICAgIH0sIG51bGxwdHIpOwogfQogCi12
b2lkIFBsYXRmb3JtV2ViVmlldzo6c2V0TmF2aWdhdGlvbkdlc3R1cmVzRW5hYmxlZChib29sKQor
dm9pZCBQbGF0Zm9ybVdlYlZpZXc6OnNldE5hdmlnYXRpb25HZXN0dXJlc0VuYWJsZWQoYm9vbCBl
bmFibGVkKQogeworICAgIFdLVmlld1NldEVuYWJsZUJhY2tGb3J3YXJkTmF2aWdhdGlvbkdlc3R1
cmUocGxhdGZvcm1WaWV3KCksIGVuYWJsZWQpOwogfQogCiBib29sIFBsYXRmb3JtV2ViVmlldzo6
ZHJhd3NCYWNrZ3JvdW5kKCkgY29uc3QKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvZ3RrL1VJU2NyaXB0Q29udHJvbGxlckd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYzMjFjY2ViMDdjNmYx
MjM3NTllZGRjOThlM2RmYTFkMzJlNGY2OGQKLS0tIC9kZXYvbnVsbAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2d0ay9VSVNjcmlwdENvbnRyb2xsZXJHdGsuY3BwCkBAIC0wLDAgKzEsNDkg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTkgQWxleGFuZGVyIE1pa2hheWxlbmtvIDxleGFs
bTc2NTlAZ21haWwuY29tPgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUg
bWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVk
ZSAiVUlTY3JpcHRDb250cm9sbGVyLmgiCisKKyNpbmNsdWRlICJQbGF0Zm9ybVdlYlZpZXcuaCIK
KyNpbmNsdWRlICJUZXN0Q29udHJvbGxlci5oIgorI2luY2x1ZGUgPFdlYktpdC9XS1ZpZXdQcml2
YXRlLmg+CisKK25hbWVzcGFjZSBXVFIgeworCit2b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6YmVn
aW5CYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiB3ZWJWaWV3ID0g
VGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygp
OworCisgICAgV0tWaWV3QmVnaW5CYWNrU3dpcGVGb3JUZXN0aW5nKHdlYlZpZXcpOworfQorCit2
b2lkIFVJU2NyaXB0Q29udHJvbGxlcjo6Y29tcGxldGVCYWNrU3dpcGUoSlNWYWx1ZVJlZiBjYWxs
YmFjaykKK3sKKyAgICBhdXRvKiB3ZWJWaWV3ID0gVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigp
Lm1haW5XZWJWaWV3KCktPnBsYXRmb3JtVmlldygpOworCisgICAgV0tWaWV3Q29tcGxldGVCYWNr
U3dpcGVGb3JUZXN0aW5nKHdlYlZpZXcpOworfQorCit9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCBiZWFlZmJjM2EyNTM5NGQwNzQ2YjM4NjAwNDAyNTE0MTdlNjVkOTA0Li41YmFjYTU3YTdjNGI2
YzQxYjExYTc0ZWJjMzcwMDU3YTA2MmNmYmVhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTkt
MDYtMTkgIEFsZXhhbmRlciBNaWtoYXlsZW5rbyAgPGV4YWxtNzY1OUBnbWFpbC5jb20+CisKKyAg
ICAgICAgW0dUS10gRW5hYmxlIG5hdmlnYXRpb24gc3dpcGUgbGF5b3V0IHRlc3RzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTg5OTUKKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBFbmFibGUgdGhlIGV4aXN0
aW5nIHRlc3RzIGZvciB0aGUgc3dpcGUgZ2VzdHVyZS4KKworICAgICAgICBzd2lwZS9wdXNoU3Rh
dGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1sIGlzIG5vdCBhcHBs
aWNhYmxlIGJlY2F1c2UKKyAgICAgICAgaXQgZGVhbHMgd2l0aCBOU0V2ZW50cyBkaXJlY3RseSwg
c2tpcCBpdC4KKworICAgICAgICBzd2lwZS9tYWluLWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQu
aHRtbCBpcyBmbGFreSwgc2FtZSBhcyBvbiBNYWMuCisKKyAgICAgICAgc3dpcGUvcHVzaHN0YXRl
LXdpdGgtbWFudWFsLXNjcm9sbHJlc3RvcmF0aW9uLmh0bWwgcGFzc2VzLCBkb24ndCBtYXJrIGl0
IGFzIGZhaWx1cmUuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ndGsvVGVzdEV4cGVjdGF0aW9uczoK
KwogMjAxOS0wNi0xOSAgUnVzc2VsbCBFcHN0ZWluICA8cnVzc2VsbF9lQGFwcGxlLmNvbT4KIAog
ICAgICAgICB3ZWJncHUvYmxlbmQtY29sb3ItdHJpYW5nbGUtc3RyaXAuaHRtbCBpcyBhIGZsYWtl
eSBmYWlsdXJlIHNpbmNlIGludHJvZHVjdGlvbi4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2d0ay9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rl
c3RFeHBlY3RhdGlvbnMKaW5kZXggZWU5OTUwNjhkOTc3N2U0MWU5MTUyOWI3ZGYxNWNhNGRkNjZl
YTdkNS4uODU5YTlkM2YyMGYwNjY0OTVhYTNkYjI3NWNkNzk0MTlmNWFiOGRmNiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0
VGVzdHMvcGxhdGZvcm0vZ3RrL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIxLDYgKzIxLDcgQEAKIAog
YWNjZXNzaWJpbGl0eS9ndGsgWyBQYXNzIF0KIGVkaXRpbmcvcGFzdGVib2FyZC9ndGsgWyBQYXNz
IF0KK3N3aXBlIFsgUGFzcyBdCiAKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
ICMgRW5kIHBsYXRmb3JtLXNwZWNpZmljIGRpcmVjdG9yaWVzLgpAQCAtMTIyMCw2ICsxMjIxLDkg
QEAgZmFzdC9tZWRpYXN0cmVhbS9zY3JlZW5jYXB0dXJlLXVzZXItZ2VzdHVyZS5odG1sIFsgU2tp
cCBdCiAjIE5vIGRpZmZlcmVudCByZW5kZXJpbmcgZm9yIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6
ZUxlZ2liaWxpdHkKIGZhc3QvdGV4dC92YXJpYXRpb25zL29wdGljYWwtc2l6aW5nLXRyYWstMi5o
dG1sIFsgU2tpcCBdCiAKKyMgVGhlIHRlc3QgZGlyZWN0bHkgc2VuZHMgQ29jb2EgZXZlbnRzCitz
d2lwZS9wdXNoU3RhdGUtcHJvZ3JhbW1hdGljLWJhY2std2hpbGUtc3dpcGluZy1jcmFzaC5odG1s
IFsgU2tpcCBdCisKICMvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBF
eHBlY3RlZCBmYWlsdXJlcy4KICMKQEAgLTIyNDksNiArMjI1Myw4IEBAIHdlYmtpdC5vcmcvYi8x
OTg4MzAgbWVkaWEvdmlkZW8tc3JjLmh0bWwgWyBDcmFzaCBQYXNzIF0KIHdlYmtpdC5vcmcvYi8x
OTg4MzAgbWVkaWEvdmlkZW8tdGltZXVwZGF0ZS1yZXZlcnNlLXBsYXkuaHRtbCBbIENyYXNoIFBh
c3MgXQogd2Via2l0Lm9yZy9iLzE5ODgzMCBtZWRpYS92aWRlby10cmFja21lbnUtc2VsZWN0aW9u
Lmh0bWwgWyBDcmFzaCBUaW1lb3V0IF0KIAord2Via2l0Lm9yZy9iLzE3MDQ4NCBzd2lwZS9tYWlu
LWZyYW1lLXBpbm5pbmctcmVxdWlyZW1lbnQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKICMvLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCiAjIEVuZCBvZiBGbGFreSB0ZXN0cwogIy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8K
</data>

          </attachment>
      

    </bug>

</bugzilla>