<?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>200216</bug_id>
          
          <creation_ts>2019-07-28 22:48:44 -0700</creation_ts>
          <short_desc>[iPadOS] slides.google.com: tapping near cursor in a slide title focuses the speaker notes</short_desc>
          <delta_ts>2019-08-06 20:15:21 -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>UI Events</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=193565</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Ryosuke Niwa">rniwa</assigned_to>
          <cc>bdakin</cc>
    
    <cc>dbates</cc>
    
    <cc>jond</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1556493</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2019-07-28 22:48:44 -0700</bug_when>
    <thetext>Tapping the near cursor in a title in a slides.google.com slide focuses the speaker notes.

Steps to reproduce:
0) Install iOS 13 beta or newer on a non-mini iPad (no hardware keyboard attached)
1) Visit https://slides.google.com/ and log in with a Google account (if not already logged in)
2) Create a new presentation using the orange &apos;Your big idea&apos; presentation template.
3) Go to the second slide (e.g. by tapping it in the sidebar).
3) Tap the title on the slide.
     (The cursor appears at this point, but, consistent with Google Docs and Google Sheets, it takes ab extra tap near the cursor to bring up the keyboard)
4) Tap near the cursor.

Results:
- Focus is placed in speaker notes instead of the title.
- The slide shrinks to really tiny.

It&apos;s possible these behaviors are connected somehow, both seem undesirable.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556495</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-07-28 22:49:13 -0700</bug_when>
    <thetext>&lt;rdar://problem/53648131&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1556508</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2019-07-29 00:26:42 -0700</bug_when>
    <thetext>None of this weirdness happens with a physical keyboard attached, by the way.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557729</commentid>
    <comment_count>3</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-01 13:55:02 -0700</bug_when>
    <thetext>slides.google.com has seems to always have an &lt;iframe&gt; as their active element whose content document&apos;s &lt;body&gt; has inputMode = &quot;none&quot; even when you tap once. When you tap twice, slides remove&apos;s the inputMode HTML attribute entirely =&gt; unspecified input mode =&gt; default behavior and we show the keyboard.

As to why the site works when you have a hardware keyboard attached...because we do not respect inputMode when you have one attached 😀.

Haven&apos;t tried what happens on a Chromebook or Surface, but in absence of doing so, I&apos;m leaning towards this bug being a site issue. Might be able to add a site quirk though for slides.google.com. Here&apos;s what we know towards a quirk:

1. The user explicitly tapped on something
2. The tapped thing causes a focusing/re-focusing of a content editable element (their active element &lt;iframe&gt;&apos;s content document&apos;s &lt;body&gt; is content editable)
3. Slides does not appear to have custom keyboard UI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557731</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-01 14:00:27 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #3)
&gt; slides.google.com has seems to always have an &lt;iframe&gt; as their active
&gt; element whose content document&apos;s &lt;body&gt; has inputMode = &quot;none&quot; even when you
&gt; tap once. When you tap twice, slides remove&apos;s the inputMode HTML attribute
&gt; entirely =&gt; unspecified input mode =&gt; default behavior and we show the
&gt; keyboard.
&gt; 
&gt; As to why the site works when you have a hardware keyboard
&gt; attached...because we do not respect inputMode when you have one attached 😀.
&gt; 
&gt; Haven&apos;t tried what happens on a Chromebook or Surface, but in absence of
&gt; doing so, I&apos;m leaning towards this bug being a site issue. Might be able to
&gt; add a site quirk though for slides.google.com. Here&apos;s what we know towards a
&gt; quirk:
&gt; 
&gt; 1. The user explicitly tapped on something
&gt; 2. The tapped thing causes a focusing/re-focusing of a content editable
&gt; element (their active element &lt;iframe&gt;&apos;s content document&apos;s &lt;body&gt; is
&gt; content editable)

Cannot use this as a factor because every tapped element (tapping a slide thumbnail etc etc) seems to refocus &lt;body&gt; and &lt;body&gt; is always content editable. That sucks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557732</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-01 14:01:16 -0700</bug_when>
    <thetext>Over to Evangelism...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1557998</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2019-08-02 11:16:48 -0700</bug_when>
    <thetext>Taking this bug back.... WebKit does not consider the fact that causing the keyboard to show or hide as a result of an HTML inputmode change can effect the position of touchevents (and mouse events) that are being processed. More specifically, the bug on slides.google.com occurs because the UI process is notified of the HTML inputMode change and we reload the input views between the touchdown and touchup as debug logging shows:

### -_webTouchEventsRecognized:; type: TouchStart
### -_webTouchEventsRecognized:; type: TouchEnd
### -_webTouchEventsRecognized:; type: TouchStart
### -_didUpdateInputMode:
### -_keyboardWillShow:
### -_webTouchEventsRecognized:; type: TouchEnd
### -_keyboardDidShow:

My guess is that Google changes focus on touchup (aka TouchEnd) and the showing of the keyboard effects the tapped point on the page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559024</commentid>
    <comment_count>8</comment_count>
      <attachid>375672</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-06 17:50:13 -0700</bug_when>
    <thetext>Created attachment 375672
Fixes the bug</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559033</commentid>
    <comment_count>9</comment_count>
      <attachid>375674</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-06 19:00:03 -0700</bug_when>
    <thetext>Created attachment 375674
EWS build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559034</commentid>
    <comment_count>10</comment_count>
      <attachid>375674</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2019-08-06 19:08:42 -0700</bug_when>
    <thetext>Comment on attachment 375674
EWS build fix

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

&gt; Source/WebKit/ChangeLog:16
&gt; +        touchend / pointerup evnets are dispatched but this is rather risky since that could affact random

Nit - evnets =&gt; events, affact =&gt; affect

&gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:944
&gt; +    if (m_pendingInputModeChange)
&gt; +        pageClient().focusedElementDidChangeInputMode(*m_pendingInputModeChange);

Would it make sense to clear out m_pendingInputModeChange after we use it here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559051</commentid>
    <comment_count>11</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-06 20:12:12 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #10)
&gt; Comment on attachment 375674 [details]
&gt; EWS build fix
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=375674&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/ChangeLog:16
&gt; &gt; +        touchend / pointerup evnets are dispatched but this is rather risky since that could affact random
&gt; 
&gt; Nit - evnets =&gt; events, affact =&gt; affect


&gt; &gt; Source/WebKit/UIProcess/ios/WebPageProxyIOS.mm:944
&gt; &gt; +    if (m_pendingInputModeChange)
&gt; &gt; +        pageClient().focusedElementDidChangeInputMode(*m_pendingInputModeChange);
&gt; 
&gt; Would it make sense to clear out m_pendingInputModeChange after we use it
&gt; here?

Yeah, we should surely do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1559052</commentid>
    <comment_count>12</comment_count>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2019-08-06 20:15:21 -0700</bug_when>
    <thetext>Committed r248338: &lt;https://trac.webkit.org/changeset/248338&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375672</attachid>
            <date>2019-08-06 17:50:13 -0700</date>
            <delta_ts>2019-08-06 19:00:02 -0700</delta_ts>
            <desc>Fixes the bug</desc>
            <filename>bug-200216-20190806175012.patch</filename>
            <type>text/plain</type>
            <size>17081</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDgzMzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA4LTA2ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFtpUGFkT1NdIHNsaWRlcy5nb29nbGUu
Y29tOiB0YXBwaW5nIG5lYXIgY3Vyc29yIGluIGEgc2xpZGUgdGl0bGUgZm9jdXNlcyB0aGUgc3Bl
YWtlciBub3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAwMjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiBHb29nbGUg
c2xpZGVzIHJlbW92aW5nIGlucHV0bW9kZT0ibm9uZSIgZnJvbSB0aGUgaGlkZGVuCisgICAgICAg
IGNvbnRlbnQgZWRpdGFibGUgYW5kIHVwZGF0aW5nIHRoZSBmb2N1c2VkIHJlZ2lvbiB1cG9uIHJl
Y2VpdmluZyBhIHBvaW50ZXJ1cCBldmVudCwgd2hpY2ggaGFwcGVucyBhZnRlcgorICAgICAgICB0
aGUgR29vZ2xlIHNsaWRlcyBoYWQgYWxyZWFkeSB1cGRhdGVkIGl0cyBwYWdlIGxheW91dCAmIGNv
b3JkaW5hdGVzIGJhc2VkIG9uIG5ldyB2aXN1YWwgdmlld3BvcnQgd2l0aAorICAgICAgICB0aGUg
c29mdHdhcmUga2V5Ym9hcmQncyBib3VkbmluZyByZWN0IHRha2VuIGludG8gYWNjb3VudC4KKwor
ICAgICAgICBEZWxheSBicmluZ2luZyB1cCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgZm9yIGEgaW5w
dXRtb2RlIGNoYW5nZSB1bnRpbCBhbGwgdG91Y2hlcyBhcmUgcmVsZWFzZWQuCisKKyAgICAgICAg
SW4gdGhlIGZ1dHVyZSwgd2UgY291bGQgY29uc2lkZXIgYWxzbyBkZWxheWluZyB0aGUgc29mdHdh
cmUga2V5Ym9hcmQgdG8gYmUgYnJvdWdodCBpbiBnZW5lcmFsIHVudGlsCisgICAgICAgIHRvdWNo
ZW5kIC8gcG9pbnRlcnVwIGV2bmV0cyBhcmUgZGlzcGF0Y2hlZCBidXQgdGhpcyBpcyByYXRoZXIg
cmlza3kgc2luY2UgdGhhdCBjb3VsZCBhZmZhY3QgcmFuZG9tCisgICAgICAgIG90aGVyIHdlYnNp
dGVzIHdoaWxlIEdvb2dsZSBzdWl0ZXMgaXMgdGhlIG9ubHkgbWFqb3Igc2l0ZSB0byBtYWtlIHVz
ZSBvZiBpbnB1dG1vZGU9Im5vbmUiLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZXZlcnRz
IHIyNDMwNDQsIHdoaWNoIHdhcyBhZGRlZCBmb3IgR29vZ2xlIHNsaWRlcywgc2luY2UgaXQncyBu
byBsb25nZXIgbmVlZGVkIGFuZAorICAgICAgICBpbnRlcmZlcmVzIHdpdGggdGhpcyBwYXRjaCBi
eSBhZGRpbmcgYW5vdGhlciB3YXkgdG8gYnJpbmcgdXAgdGhlIHNvZnR3YXJlIGtleWJvYXJkLgor
CisgICAgICAgIE5vdGU6IEFkanVzdGluZyB0b3VjaGVuZCAvIHBvaW50ZXJ1cCBjb29yZGluYXRl
cyB3aGlsZSB0aGUga2V5Ym9hcmQgaXMgYmVpbmcgYnJvdWdodCB1cCBkb2Vzbid0IHdvcmsKKyAg
ICAgICAgYmVjYXVzZSB0aGUgcGFnZSBoYWQgYWxyZWFkeSB1cGRhdGVkIHRoZSBsYXlvdXQgYnkg
dGhlbiBiYXNlZCBvbiBuZXcgdmlzdWFsIHZpZXdwb3J0IHNpemUuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9mb3Jtcy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQtYWZ0ZXItcG9p
bnRlcnVwLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5
KTogQ2FsbCBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMgd2hlbiBhbGwKKyAgICAgICAgdG91Y2hl
cyBhcmUgcmVsZWFzZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91
Y2hFdmVudEFzeW5jaHJvbm91c2x5KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGFuZGxlVG91Y2hFdmVudCk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxs
VG91Y2hQb2ludHMpOiBBZGRlZCBmb3Igbm9uLWlPUyBwbGF0Zm9ybXMuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKTogQWRkZWQuIFVzZWQg
d2hlbiBpbnB1dG1vZGUgaXMgY2hhbmdlZCB3aGlsZQorICAgICAgICB0aGVyZSBpcyBhbiBvbi1n
b2luZyB0b3VjaCBpbnRlcmFjdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjplbGVtZW50RGlkRm9j
dXMpOiBDbGVhciBtX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2Ugd2hlbiBhIG5ldyBlbGVtZW50IGlz
IGZvY3VzZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZWxlbWVudERpZEJsdXIp
OiBEaXR0byBmb3IgYmx1cmluZy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1
c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZSk6IERvbid0IGJyaW5nIHVwIHRoZSBzb2Z0d2Fy
ZSBrZXlib2FyZCBub3cgaWYKKyAgICAgICAgdGhlcmUgYXJlIG9uLWdvaW5nIHRvdWNoZXMgYnkg
ZXhpdGluZyBlYXJseSBhZnRlciBzZXR0aW5nIG1fcGVuZGluZ0lucHV0TW9kZUNoYW5nZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMpOiBC
cmluZyB1cCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaWYgaW5wdXRtb2RlCisgICAgICAgIGhhZCBj
aGFuZ2VkIGZyb20gIm5vbmUiIHRvIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzcGF0
Y2hUb3VjaEV2ZW50KTogUmVtb3ZlZCB0aGUgY29kZSBhZGRlZCBieSByMjQzMDQ0LgorCiAyMDE5
LTA4LTA2ICBBbGFuIENvb24gIDxhbGFuY29vbkBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwbHkg
cGF0Y2guIHJkYXI6Ly9wcm9ibGVtLzUzOTkyMTYwCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0ODA5MykKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NzcsOCArMjY3
NywxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNoCiAgICAgcGFn
ZUNsaWVudCgpLmRvbmVXaXRoVG91Y2hFdmVudChldmVudCwgaGFuZGxlZCk7CiAgICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOwogCi0gICAgaWYgKGV2ZW50LmFsbFRv
dWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKKyAgICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVS
ZWxlYXNlZCgpKSB7CiAgICAgICAgIG1fdG91Y2hBbmRQb2ludGVyRXZlbnRUcmFja2luZy5yZXNl
dCgpOworICAgICAgICBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMoKTsKKyAgICB9CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXNldFBvdGVudGlhbFRhcFNlY3VyaXR5T3JpZ2luKCkKQEAgLTI3
MDAsOCArMjcwMiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5j
CiAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hF
dmVudChtX3BhZ2VJRCwgZXZlbnQpLCAwKTsKIAotICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50
c0FyZVJlbGVhc2VkKCkpCisgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQo
KSkgewogICAgICAgICBtX3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcucmVzZXQoKTsKKyAg
ICAgICAgZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCk7CisgICAgfQogfQogCiAjZWxpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjczNCw4ICsyNzM4LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVUb3VjaEV2ZW50KGNvbnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChldmVu
dC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCisgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9p
bnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBtX3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tp
bmcucmVzZXQoKTsKKyAgICAgICAgZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCk7CisgICAgfQog
fQogI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNDgwOTMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTk0NCw2ICsxOTQ0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlv
dXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlT
dGF0ZUNoYW5nZXMsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cigp
OwogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5w
dXRNb2RlKTsKKyAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1cygpOwogCiAgICAgdm9pZCBzaG93
SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOwpAQCAtMTk1Miw2
ICsxOTUzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuYWJsZUluc3BlY3Rvck5vZGVTZWFyY2go
KTsKICAgICB2b2lkIGRpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCk7CiAgICAgdm9pZCBmb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uQ2FsbGJhY2soY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbiYsIENhbGxiYWNrSUQpOworI2Vsc2UKKyAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBv
aW50cygpIHsgfQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCkBAIC0yMTcxLDYgKzIxNzQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OklucHV0TW9k
ZT4gbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlOwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAgICAgVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbyBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU7CiAgICAg
dWludDY0X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQg
eyAwIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0JKHJldmlzaW9uIDI0ODA5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTkwNSw2ICs5MDUsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0SXNTaG93aW5nSW5wdXRWaWV3CiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjplbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5m
b3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwg
T3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFu
Z2VzLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CisgICAgbV9wZW5kaW5nSW5wdXRNb2Rl
Q2hhbmdlID0gV1RGOjpudWxsb3B0OwogICAgIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JT
dGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ID0gdHJ1ZTsKIAogICAgIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YU9iamVjdCA9IHByb2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVz
ZXJEYXRhLm9iamVjdCgpKS5nZXQoKTsKQEAgLTkxOSw2ICs5MjAsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZWxlbWVudERpZEZvY3VzKGNvbnN0CiAKIHZvaWQgV2ViUGFnZVByb3h5OjplbGVtZW50
RGlkQmx1cigpCiB7CisgICAgbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlID0gV1RGOjpudWxsb3B0
OwogICAgIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNp
bmdFbGVtZW50ID0gZmFsc2U7CiAgICAgbV9kZWZlcnJlZEVsZW1lbnREaWRGb2N1c0FyZ3VtZW50
cyA9IG51bGxwdHI7CiAgICAgcGFnZUNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCk7CkBAIC05MjYs
OSArOTI4LDIwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjplbGVtZW50RGlkQmx1cigpCiAKIHZvaWQg
V2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJ
bnB1dE1vZGUgbW9kZSkKIHsKKyAgICBpZiAobV90b3VjaEFuZFBvaW50ZXJFdmVudFRyYWNraW5n
LmlzVHJhY2tpbmdBbnl0aGluZygpKSB7CisgICAgICAgIG1fcGVuZGluZ0lucHV0TW9kZUNoYW5n
ZSA9IG1vZGU7CisgICAgICAgIHJldHVybjsKKyAgICB9CisKICAgICBwYWdlQ2xpZW50KCkuZm9j
dXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUobW9kZSk7CiB9CiAKK3ZvaWQgV2ViUGFnZVBy
b3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMoKQoreworICAgIGlmIChtX3BlbmRpbmdJbnB1
dE1vZGVDaGFuZ2UpCisgICAgICAgIHBhZ2VDbGllbnQoKS5mb2N1c2VkRWxlbWVudERpZENoYW5n
ZUlucHV0TW9kZSgqbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKTsKK30KKwogdm9pZCBXZWJQYWdl
UHJveHk6OmF1dG9maWxsTG9naW5DcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIHVzZXJuYW1lLCBj
b25zdCBTdHJpbmcmIHBhc3N3b3JkKQogewogICAgIG1fcHJvY2Vzcy0+c2VuZChNZXNzYWdlczo6
V2ViUGFnZTo6QXV0b2ZpbGxMb2dpbkNyZWRlbnRpYWxzKHVzZXJuYW1lLCBwYXNzd29yZCksIG1f
cGFnZUlEKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2Uu
Y3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwCShyZXZpc2lvbiAyNDgwOTMpCisrKyBTb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjg5MSwyMSArMjg5MSwxMCBAQCBz
dGF0aWMgYm9vbCBoYW5kbGVUb3VjaEV2ZW50KGNvbnN0IFdlYlRvCiB2b2lkIFdlYlBhZ2U6OmRp
c3BhdGNoVG91Y2hFdmVudChjb25zdCBXZWJUb3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBib29sJiBo
YW5kbGVkKQogewogICAgIFNldEZvclNjb3BlPGJvb2w+IHVzZXJJc0ludGVyYWN0aW5nQ2hhbmdl
IHsgbV91c2VySXNJbnRlcmFjdGluZywgdHJ1ZSB9OwotCi0gICAgYXV0byBvbGRGb2N1c2VkRnJh
bWUgPSBtYWtlUmVmUHRyKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZEZyYW1lKCkp
OwotICAgIGF1dG8gb2xkRm9jdXNlZEVsZW1lbnQgPSBtYWtlUmVmUHRyKG9sZEZvY3VzZWRGcmFt
ZSA/IG9sZEZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVsZW1lbnQoKSA6IG51bGxw
dHIpOwotCiAgICAgbV9sYXN0SW50ZXJhY3Rpb25Mb2NhdGlvbiA9IHRvdWNoRXZlbnQucG9zaXRp
b24oKTsKICAgICBDdXJyZW50RXZlbnQgY3VycmVudEV2ZW50KHRvdWNoRXZlbnQpOwogICAgIGhh
bmRsZWQgPSBoYW5kbGVUb3VjaEV2ZW50KHRvdWNoRXZlbnQsIG1fcGFnZS5nZXQoKSk7CiAgICAg
dXBkYXRlUG90ZW50aWFsVGFwU2VjdXJpdHlPcmlnaW4odG91Y2hFdmVudCwgaGFuZGxlZCk7Ci0K
LSAgICBpZiAoaGFuZGxlZCAmJiBvbGRGb2N1c2VkRWxlbWVudCkgewotICAgICAgICBhdXRvIG5l
d0ZvY3VzZWRGcmFtZSA9IG1ha2VSZWZQdHIobV9wYWdlLT5mb2N1c0NvbnRyb2xsZXIoKS5mb2N1
c2VkRnJhbWUoKSk7Ci0gICAgICAgIGF1dG8gbmV3Rm9jdXNlZEVsZW1lbnQgPSBtYWtlUmVmUHRy
KG5ld0ZvY3VzZWRGcmFtZSA/IG5ld0ZvY3VzZWRGcmFtZS0+ZG9jdW1lbnQoKS0+Zm9jdXNlZEVs
ZW1lbnQoKSA6IG51bGxwdHIpOwotICAgICAgICBpZiAob2xkRm9jdXNlZEVsZW1lbnQgPT0gbmV3
Rm9jdXNlZEVsZW1lbnQgJiYgaXNUcmFuc3BhcmVudE9yRnVsbHlDbGlwcGVkKCpuZXdGb2N1c2Vk
RWxlbWVudCkpCi0gICAgICAgICAgICBlbGVtZW50RGlkUmVmb2N1cygqbmV3Rm9jdXNlZEVsZW1l
bnQpOwotICAgIH0KIH0KIAogdm9pZCBXZWJQYWdlOjp0b3VjaEV2ZW50U3luYyhjb25zdCBXZWJU
b3VjaEV2ZW50JiB0b3VjaEV2ZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIHJl
cGx5KQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjQ4MDkzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTktMDgtMDYgIFJ5b3N1a2UgTml3
YSAgPHJuaXdhQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW2lQYWRPU10gc2xpZGVzLmdvb2dsZS5j
b206IHRhcHBpbmcgbmVhciBjdXJzb3IgaW4gYSBzbGlkZSB0aXRsZSBmb2N1c2VzIHRoZSBzcGVh
a2VyIG5vdGVzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDAyMTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBBZGRlZCBhIG5ldyByZWdyZXNzaW9uIHRlc3QgYW5kIHJlbW92ZWQgdGhlIG9uZSBhZGRlZCBm
b3IgcjI0MzA0NC4KKworICAgICAgICAqIGZhc3QvZXZlbnRzL3RvdWNoL2lvcy9zaG93LWtleWJv
YXJkLWFmdGVyLXByZXZlbnRpbmctdG91Y2hzdGFydC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisg
ICAgICAgICogZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3cta2V5Ym9hcmQtYWZ0ZXItcHJldmVu
dGluZy10b3VjaHN0YXJ0Lmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3Mv
aW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQtYWZ0ZXItcG9pbnRlcnVwLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogZmFzdC9mb3Jtcy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11
cGRhdGUta2V5Ym9hcmQtYWZ0ZXItcG9pbnRlcnVwLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGZh
c3QvZm9ybXMvaW9zL2lucHV0bW9kZS1jaGFuZ2UtdXBkYXRlLWtleWJvYXJkLmh0bWw6IEZpeGVk
IHRoZSB0ZXN0IGZvciBtYW51YWwgdGVzdGluZy4KKwogMjAxOS0wNy0zMSAgQWxhbiBDb29uICA8
YWxhbmNvb25AYXBwbGUuY29tPgogCiAgICAgICAgIENoZXJyeS1waWNrIHIyNDgwODAuIHJkYXI6
Ly9wcm9ibGVtLzUzNzg4OTU2CkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9p
b3Mvc2hvdy1rZXlib2FyZC1hZnRlci1wcmV2ZW50aW5nLXRvdWNoc3RhcnQtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zaG93LWtl
eWJvYXJkLWFmdGVyLXByZXZlbnRpbmctdG91Y2hzdGFydC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI0ODA5MykKKysrIExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zaG93LWtleWJv
YXJkLWFmdGVyLXByZXZlbnRpbmctdG91Y2hzdGFydC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50
KQpAQCAtMSwxMSArMCwwIEBACi0KLVZlcmlmaWVzIHRoYXQgdGhlIGtleWJvYXJkIHNob3dzIHVw
IGV2ZW4gYWZ0ZXIgcHJldmVudGluZyBkZWZhdWx0IG9uIHRvdWNoc3RhcnQgd2hlbiBmb2N1c2lu
ZyBhIGhpZGRlbiBlZGl0YWJsZSBhcmVhLiBUbyBtYW51YWxseSB0ZXN0LCB0YXAgdGhlIHJlZCBi
b3g7IHRoZSB0ZXh0YXJlYSBzaG91bGQgcmVtYWluIGZvY3VzZWQsIGFuZCB0aGUga2V5Ym9hcmQg
c2hvdWxkIGFwcGVhci4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQ
QVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi1QQVNTIGtleWJv
YXJkIHdhcyBzaG93bi4KLVBBU1MgZG9jdW1lbnQuYWN0aXZlRWxlbWVudCBpcyB0ZXh0YXJlYQot
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KSW5kZXg6
IExheW91dFRlc3RzL2Zhc3QvZXZlbnRzL3RvdWNoL2lvcy9zaG93LWtleWJvYXJkLWFmdGVyLXBy
ZXZlbnRpbmctdG91Y2hzdGFydC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZXZlbnRzL3RvdWNoL2lvcy9zaG93LWtleWJvYXJkLWFmdGVyLXByZXZlbnRpbmctdG91Y2hzdGFy
dC5odG1sCShyZXZpc2lvbiAyNDgwOTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3Vj
aC9pb3Mvc2hvdy1rZXlib2FyZC1hZnRlci1wcmV2ZW50aW5nLXRvdWNoc3RhcnQuaHRtbAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDU5ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVh
ZD4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vLi4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9z
Y3JpcHQ+Ci08c3R5bGU+Ci1odG1sLCBib2R5IHsKLSAgICB3aWR0aDogMTAwJTsKLSAgICBoZWln
aHQ6IDEwMCU7Ci0gICAgbWFyZ2luOiAwOwotfQotCi10ZXh0YXJlYSwgI3RhcmdldCB7Ci0gICAg
d2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAxMDBweDsKLSAgICBwb3NpdGlvbjogYWJzb2x1dGU7
Ci0gICAgdG9wOiAwOwotfQotCi0jdGFyZ2V0IHsKLSAgICBiYWNrZ3JvdW5kLWNvbG9yOiB0b21h
dG87Ci0gICAgei1pbmRleDogMTsKLSAgICBvcGFjaXR5OiAwLjI1OwotfQotCi10ZXh0YXJlYSB7
Ci0gICAgb3BhY2l0eTogMDsKLX0KLQotI2Rlc2NyaXB0aW9uIHsKLSAgICBtYXJnaW4tdG9wOiAx
MDBweDsKLX0KLTwvc3R5bGU+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8dGV4dGFyZWE+PC90ZXh0
YXJlYT4KLSAgICA8ZGl2IGlkPSJ0YXJnZXQiPjwvZGl2PgotICAgIDxwcmUgaWQ9ImRlc2NyaXB0
aW9uIj48L3ByZT4KLSAgICA8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTwvYm9keT4KLTxzY3Jp
cHQ+Ci0gICAganNUZXN0SXNBc3luYyA9IHRydWU7Ci0gICAgdGV4dGFyZWEgPSBkb2N1bWVudC5x
dWVyeVNlbGVjdG9yKCJ0ZXh0YXJlYSIpOwotICAgIHRhcmdldCA9IGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCJ0YXJnZXQiKTsKLSAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcigidG91Y2hzdGFy
dCIsIGV2ZW50ID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpOwotCi0gICAgZGVzY3JpcHRpb24o
IlZlcmlmaWVzIHRoYXQgdGhlIGtleWJvYXJkIHNob3dzIHVwIGV2ZW4gYWZ0ZXIgcHJldmVudGlu
ZyBkZWZhdWx0IG9uIHRvdWNoc3RhcnQgd2hlbiBmb2N1c2luZyBhIGhpZGRlbiBlZGl0YWJsZSBh
cmVhLiBUbyBtYW51YWxseSB0ZXN0LCB0YXAgdGhlIHJlZCBib3g7IHRoZSB0ZXh0YXJlYSBzaG91
bGQgcmVtYWluIGZvY3VzZWQsIGFuZCB0aGUga2V5Ym9hcmQgc2hvdWxkIGFwcGVhci4iKTsKLQot
ICAgIGFkZEV2ZW50TGlzdGVuZXIoImxvYWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgICAgIHRleHRh
cmVhLmZvY3VzKCk7Ci0gICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRWxlbWVudEFuZFdh
aXRGb3JJbnB1dFNlc3Npb24odGFyZ2V0KTsKLSAgICAgICAgdGVzdFBhc3NlZCgia2V5Ym9hcmQg
d2FzIHNob3duLiIpOwotICAgICAgICBzaG91bGRCZSgiZG9jdW1lbnQuYWN0aXZlRWxlbWVudCIs
ICJ0ZXh0YXJlYSIpOwotICAgICAgICB0ZXh0YXJlYS5ibHVyKCk7Ci0gICAgICAgIGF3YWl0IFVJ
SGVscGVyLndhaXRGb3JLZXlib2FyZFRvSGlkZSgpOwotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICB9KTsKLTwvc2NyaXB0PgotPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jt
cy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQtYWZ0ZXItcG9pbnRlcnVwLWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pbnB1
dG1vZGUtY2hhbmdlLXVwZGF0ZS1rZXlib2FyZC1hZnRlci1wb2ludGVydXAtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2lucHV0bW9kZS1j
aGFuZ2UtdXBkYXRlLWtleWJvYXJkLWFmdGVyLXBvaW50ZXJ1cC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxNyBAQAorVGhpcyB0ZXN0cyB1cGRhdGluZyBpbnB1dG1vZGUg
b2YgYW4gaW5wdXQgZWxlbWVudCBmcm9tICJub25lIiB0byAidGV4dCIuIFRoZSBzb2Z0d2FyZSBr
ZXlib2FyZCBzaG91bGQgYmUgYnJvdWdodCB1cCBhZnRlciBwb2ludGVydXAuCitUbyBtYW51YWxs
eSB0ZXN0LCB0YXAgb24gdGhlIGlucHV0IGVsZW1lbnQgYmVsb3cuIFRoZSBzb2Z0d2FyZSBrZXli
b2FyZCBzaG91bGQgYmUgYnJvdWdodCB1cAorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBz
ZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisK
KworUEFTUyB0ZXh0SGVpZ2h0ID0ga2V5Ym9hcmRSZWN0LmhlaWdodDsga2V5Ym9hcmRSZWN0Lmhl
aWdodCA+IDAgaXMgdHJ1ZQorUEFTUyBsb2dzLmxlbmd0aCBpcyAyCitQQVNTIGxvZ3NbMF0uZXZl
bnQudHlwZSBpcyAicG9pbnRlcmRvd24iCitQQVNTIGxvZ3NbMF0udmlzdWFsVmlld3BvcnRIZWln
aHQgaXMgb3JpZ2luYWxWaXN1YWxWaWV3cG9ydEhlaWdodAorUEFTUyBsb2dzWzFdLmV2ZW50LnR5
cGUgaXMgInBvaW50ZXJ1cCIKK1BBU1MgbG9nc1sxXS52aXN1YWxWaWV3cG9ydEhlaWdodCBpcyBv
cmlnaW5hbFZpc3VhbFZpZXdwb3J0SGVpZ2h0CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0
cnVlCisKK1RFU1QgQ09NUExFVEUKKworCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lv
cy9pbnB1dG1vZGUtY2hhbmdlLXVwZGF0ZS1rZXlib2FyZC1hZnRlci1wb2ludGVydXAuaHRtbAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUtY2hhbmdl
LXVwZGF0ZS1rZXlib2FyZC1hZnRlci1wb2ludGVydXAuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBM
YXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUtY2hhbmdlLXVwZGF0ZS1rZXlib2Fy
ZC1hZnRlci1wb2ludGVydXAuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYwIEBACis8
IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29u
dGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoLCBpbml0aWFsLXNjYWxlPTEsIHVzZXItc2NhbGFibGU9
bm8iPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorPGlucHV0IGlucHV0bW9kZT0ibm9uZSI+Cis8ZGl2IGlkPSJj
b3VudGRvd24iPjwvZGl2PgorPHNjcmlwdD4KK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCitkZXNj
cmlwdGlvbignVGhpcyB0ZXN0cyB1cGRhdGluZyBpbnB1dG1vZGUgb2YgYW4gaW5wdXQgZWxlbWVu
dCBmcm9tICJub25lIiB0byAidGV4dCIuIFRoZSBzb2Z0d2FyZSBrZXlib2FyZCBzaG91bGQgYmUg
YnJvdWdodCB1cCBhZnRlciBwb2ludGVydXAuPGJyPicKKyAgICArICdUbyBtYW51YWxseSB0ZXN0
LCB0YXAgb24gdGhlIGlucHV0IGVsZW1lbnQgYmVsb3cuIFRoZSBzb2Z0d2FyZSBrZXlib2FyZCBz
aG91bGQgYmUgYnJvdWdodCB1cCcpOworCitjb25zdCBpbnB1dCA9IGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImlucHV0Iik7CitpbnB1dC5mb2N1cygpOworCitsZXQgb3JpZ2luYWxWaXN1YWxWaWV3
cG9ydEhlaWdodDsKK2xldCBsb2dzID0gW107Cithc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgewor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIuc2V0SGFy
ZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKKworICAgIG9yaWdpbmFsVmlzdWFsVmlld3Bv
cnRIZWlnaHQgPSB3aW5kb3cudmlzdWFsVmlld3BvcnQuaGVpZ2h0OworCisgICAgbGV0IGRpZFJl
c2l6ZSA9ICgpID0+IHsgfTsKKyAgICB3aW5kb3cudmlzdWFsVmlld3BvcnQuYWRkRXZlbnRMaXN0
ZW5lcigncmVzaXplJywgKCkgPT4gZGlkUmVzaXplKCkpOworICAgIGlucHV0LmFkZEV2ZW50TGlz
dGVuZXIoJ3BvaW50ZXJkb3duJywgKGV2ZW50KSA9PiB7CisgICAgICAgIGlucHV0LmlucHV0TW9k
ZSA9ICd0ZXh0JzsKKyAgICAgICAgbG9ncy5wdXNoKHtldmVudCwgdmlzdWFsVmlld3BvcnRIZWln
aHQ6IHZpc3VhbFZpZXdwb3J0LmhlaWdodH0pOworICAgIH0sIHtvbmNlOiB0cnVlfSk7CisgICAg
aW5wdXQuYWRkRXZlbnRMaXN0ZW5lcigncG9pbnRlcnVwJywgKGV2ZW50KSA9PiB7CisgICAgICAg
IGxvZ3MucHVzaCh7ZXZlbnQsIHZpc3VhbFZpZXdwb3J0SGVpZ2h0OiB2aXN1YWxWaWV3cG9ydC5o
ZWlnaHR9KTsKKyAgICB9LCB7b25jZTogdHJ1ZX0pOworCisgICAgaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgICAgIGF3YWl0IFVJSGVscGVyLmFjdGl2YXRlRm9ybUNvbnRyb2woaW5wdXQp
OworICAgICAgICB3aW5kb3cua2V5Ym9hcmRSZWN0ID0gYXdhaXQgVUlIZWxwZXIuaW5wdXRWaWV3
Qm91bmRzKCk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgndGV4dEhlaWdodCA9IGtleWJvYXJkUmVj
dC5oZWlnaHQ7IGtleWJvYXJkUmVjdC5oZWlnaHQgPiAwJyk7CisgICAgfSBlbHNlIHsKKyAgICAg
ICAgYXdhaXQgbmV3IFByb21pc2UoKHJlc29sdmUpID0+IHsgZGlkUmVzaXplID0gcmVzb2x2ZTsg
fSk7CisgICAgICAgIHNob3VsZEJlVHJ1ZSgndGV4dEhlaWdodCA9IGRvY3VtZW50LmRvY3VtZW50
RWxlbWVudC5jbGllbnRIZWlnaHQgLSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQ7IGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5jbGllbnRIZWlnaHQgLSB2aXN1YWxWaWV3cG9ydC5oZWlnaHQgPCAxMDAn
KTsKKyAgICB9CisKKyAgICBzaG91bGRCZSgnbG9ncy5sZW5ndGgnLCAnMicpOworICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygnbG9nc1swXS5ldmVudC50eXBlJywgJ3BvaW50ZXJkb3duJyk7Cisg
ICAgc2hvdWxkQmUoJ2xvZ3NbMF0udmlzdWFsVmlld3BvcnRIZWlnaHQnLCAnb3JpZ2luYWxWaXN1
YWxWaWV3cG9ydEhlaWdodCcpOworICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygnbG9nc1sxXS5l
dmVudC50eXBlJywgJ3BvaW50ZXJ1cCcpOworICAgIHNob3VsZEJlKCdsb2dzWzFdLnZpc3VhbFZp
ZXdwb3J0SGVpZ2h0JywgJ29yaWdpbmFsVmlzdWFsVmlld3BvcnRIZWlnaHQnKTsKKworICAgIGZp
bmlzaEpTVGVzdCgpOworfQorCit3aW5kb3cub25sb2FkID0gKCkgPT4gc2V0VGltZW91dChydW5U
ZXN0LCAwKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUtY2hhbmdlLXVwZGF0ZS1rZXlib2FyZC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2lucHV0bW9kZS1jaGFuZ2Ut
dXBkYXRlLWtleWJvYXJkLmh0bWwJKHJldmlzaW9uIDI0ODA5MykKKysrIExheW91dFRlc3RzL2Zh
c3QvZm9ybXMvaW9zL2lucHV0bW9kZS1jaGFuZ2UtdXBkYXRlLWtleWJvYXJkLmh0bWwJKHdvcmtp
bmcgY29weSkKQEAgLTMwLDcgKzMwLDggQEAgaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewogfQog
CiBhc3luYyBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3
YXJlS2V5Ym9hcmRBdHRhY2hlZChmYWxzZSk7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQor
ICAgICAgICBhd2FpdCBVSUhlbHBlci5zZXRIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoZmFsc2Up
OwogCiAgICAgZGVidWcoJ2lucHV0bW9kZT0idGV4dCInKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>375674</attachid>
            <date>2019-08-06 19:00:03 -0700</date>
            <delta_ts>2019-08-06 19:08:42 -0700</delta_ts>
            <desc>EWS build fix</desc>
            <filename>bug-200216-20190806190003.patch</filename>
            <type>text/plain</type>
            <size>17115</size>
            <attacher name="Ryosuke Niwa">rniwa</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDgzMzEpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ4IEBACisyMDE5LTA4LTA2ICBSeW9zdWtlIE5p
d2EgIDxybml3YUB3ZWJraXQub3JnPgorCisgICAgICAgIFtpUGFkT1NdIHNsaWRlcy5nb29nbGUu
Y29tOiB0YXBwaW5nIG5lYXIgY3Vyc29yIGluIGEgc2xpZGUgdGl0bGUgZm9jdXNlcyB0aGUgc3Bl
YWtlciBub3RlcworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjAwMjE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgVGhlIGJ1ZyB3YXMgY2F1c2VkIGJ5IGEgcmFjZSBjb25kaXRpb24gYmV0d2VlbiBHb29nbGUg
c2xpZGVzIHJlbW92aW5nIGlucHV0bW9kZT0ibm9uZSIgZnJvbSB0aGUgaGlkZGVuCisgICAgICAg
IGNvbnRlbnQgZWRpdGFibGUgYW5kIHVwZGF0aW5nIHRoZSBmb2N1c2VkIHJlZ2lvbiB1cG9uIHJl
Y2VpdmluZyBhIHBvaW50ZXJ1cCBldmVudCwgd2hpY2ggaGFwcGVucyBhZnRlcgorICAgICAgICB0
aGUgR29vZ2xlIHNsaWRlcyBoYWQgYWxyZWFkeSB1cGRhdGVkIGl0cyBwYWdlIGxheW91dCAmIGNv
b3JkaW5hdGVzIGJhc2VkIG9uIG5ldyB2aXN1YWwgdmlld3BvcnQgd2l0aAorICAgICAgICB0aGUg
c29mdHdhcmUga2V5Ym9hcmQncyBib3VkbmluZyByZWN0IHRha2VuIGludG8gYWNjb3VudC4KKwor
ICAgICAgICBEZWxheSBicmluZ2luZyB1cCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgZm9yIGEgaW5w
dXRtb2RlIGNoYW5nZSB1bnRpbCBhbGwgdG91Y2hlcyBhcmUgcmVsZWFzZWQuCisKKyAgICAgICAg
SW4gdGhlIGZ1dHVyZSwgd2UgY291bGQgY29uc2lkZXIgYWxzbyBkZWxheWluZyB0aGUgc29mdHdh
cmUga2V5Ym9hcmQgdG8gYmUgYnJvdWdodCBpbiBnZW5lcmFsIHVudGlsCisgICAgICAgIHRvdWNo
ZW5kIC8gcG9pbnRlcnVwIGV2bmV0cyBhcmUgZGlzcGF0Y2hlZCBidXQgdGhpcyBpcyByYXRoZXIg
cmlza3kgc2luY2UgdGhhdCBjb3VsZCBhZmZhY3QgcmFuZG9tCisgICAgICAgIG90aGVyIHdlYnNp
dGVzIHdoaWxlIEdvb2dsZSBzdWl0ZXMgaXMgdGhlIG9ubHkgbWFqb3Igc2l0ZSB0byBtYWtlIHVz
ZSBvZiBpbnB1dG1vZGU9Im5vbmUiLgorCisgICAgICAgIFRoaXMgcGF0Y2ggYWxzbyByZXZlcnRz
IHIyNDMwNDQsIHdoaWNoIHdhcyBhZGRlZCBmb3IgR29vZ2xlIHNsaWRlcywgc2luY2UgaXQncyBu
byBsb25nZXIgbmVlZGVkIGFuZAorICAgICAgICBpbnRlcmZlcmVzIHdpdGggdGhpcyBwYXRjaCBi
eSBhZGRpbmcgYW5vdGhlciB3YXkgdG8gYnJpbmcgdXAgdGhlIHNvZnR3YXJlIGtleWJvYXJkLgor
CisgICAgICAgIE5vdGU6IEFkanVzdGluZyB0b3VjaGVuZCAvIHBvaW50ZXJ1cCBjb29yZGluYXRl
cyB3aGlsZSB0aGUga2V5Ym9hcmQgaXMgYmVpbmcgYnJvdWdodCB1cCBkb2Vzbid0IHdvcmsKKyAg
ICAgICAgYmVjYXVzZSB0aGUgcGFnZSBoYWQgYWxyZWFkeSB1cGRhdGVkIHRoZSBsYXlvdXQgYnkg
dGhlbiBiYXNlZCBvbiBuZXcgdmlzdWFsIHZpZXdwb3J0IHNpemUuCisKKyAgICAgICAgVGVzdDog
ZmFzdC9mb3Jtcy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQtYWZ0ZXItcG9p
bnRlcnVwLmh0bWwKKworICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmhhbmRsZVRvdWNoRXZlbnRTeW5jaHJvbm91c2x5
KTogQ2FsbCBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMgd2hlbiBhbGwKKyAgICAgICAgdG91Y2hl
cyBhcmUgcmVsZWFzZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6aGFuZGxlVG91
Y2hFdmVudEFzeW5jaHJvbm91c2x5KTogRGl0dG8uCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6aGFuZGxlVG91Y2hFdmVudCk6IERpdHRvLgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuaDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxs
VG91Y2hQb2ludHMpOiBBZGRlZCBmb3Igbm9uLWlPUyBwbGF0Zm9ybXMuCisgICAgICAgIChXZWJL
aXQ6OldlYlBhZ2VQcm94eTo6bV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKTogQWRkZWQuIFVzZWQg
d2hlbiBpbnB1dG1vZGUgaXMgY2hhbmdlZCB3aGlsZQorICAgICAgICB0aGVyZSBpcyBhbiBvbi1n
b2luZyB0b3VjaCBpbnRlcmFjdGlvbi4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dlYlBhZ2VQ
cm94eUlPUy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjplbGVtZW50RGlkRm9j
dXMpOiBDbGVhciBtX3BlbmRpbmdJbnB1dE1vZGVDaGFuZ2Ugd2hlbiBhIG5ldyBlbGVtZW50IGlz
IGZvY3VzZWQuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZWxlbWVudERpZEJsdXIp
OiBEaXR0byBmb3IgYmx1cmluZy4KKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpmb2N1
c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZSk6IERvbid0IGJyaW5nIHVwIHRoZSBzb2Z0d2Fy
ZSBrZXlib2FyZCBub3cgaWYKKyAgICAgICAgdGhlcmUgYXJlIG9uLWdvaW5nIHRvdWNoZXMgYnkg
ZXhpdGluZyBlYXJseSBhZnRlciBzZXR0aW5nIG1fcGVuZGluZ0lucHV0TW9kZUNoYW5nZS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMpOiBC
cmluZyB1cCB0aGUgc29mdHdhcmUga2V5Ym9hcmQgaWYgaW5wdXRtb2RlCisgICAgICAgIGhhZCBj
aGFuZ2VkIGZyb20gIm5vbmUiIHRvIHNvbWV0aGluZyBlbHNlLgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZTo6ZGlzcGF0
Y2hUb3VjaEV2ZW50KTogUmVtb3ZlZCB0aGUgY29kZSBhZGRlZCBieSByMjQzMDQ0LgorCiAyMDE5
LTA4LTA2ICBBbGFuIENvb24gIDxhbGFuY29vbkBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwbHkg
cGF0Y2guIHJkYXI6Ly9wcm9ibGVtLzUzOTkyMTYwCkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQYWdlUHJveHkuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHJldmlzaW9uIDI0ODA5MykKKysrIFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2NzcsOCArMjY3
NywxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudFN5bmNoCiAgICAgcGFn
ZUNsaWVudCgpLmRvbmVXaXRoVG91Y2hFdmVudChldmVudCwgaGFuZGxlZCk7CiAgICAgbV9wcm9j
ZXNzLT5yZXNwb25zaXZlbmVzc1RpbWVyKCkuc3RvcCgpOwogCi0gICAgaWYgKGV2ZW50LmFsbFRv
dWNoUG9pbnRzQXJlUmVsZWFzZWQoKSkKKyAgICBpZiAoZXZlbnQuYWxsVG91Y2hQb2ludHNBcmVS
ZWxlYXNlZCgpKSB7CiAgICAgICAgIG1fdG91Y2hBbmRQb2ludGVyRXZlbnRUcmFja2luZy5yZXNl
dCgpOworICAgICAgICBkaWRSZWxlYXNlQWxsVG91Y2hQb2ludHMoKTsKKyAgICB9CiB9CiAKIHZv
aWQgV2ViUGFnZVByb3h5OjpyZXNldFBvdGVudGlhbFRhcFNlY3VyaXR5T3JpZ2luKCkKQEAgLTI3
MDAsOCArMjcwMiwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6aGFuZGxlVG91Y2hFdmVudEFzeW5j
CiAKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OkV2ZW50RGlzcGF0Y2hlcjo6VG91Y2hF
dmVudChtX3BhZ2VJRCwgZXZlbnQpLCAwKTsKIAotICAgIGlmIChldmVudC5hbGxUb3VjaFBvaW50
c0FyZVJlbGVhc2VkKCkpCisgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9pbnRzQXJlUmVsZWFzZWQo
KSkgewogICAgICAgICBtX3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcucmVzZXQoKTsKKyAg
ICAgICAgZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCk7CisgICAgfQogfQogCiAjZWxpZiBFTkFC
TEUoVE9VQ0hfRVZFTlRTKQpAQCAtMjczNCw4ICsyNzM4LDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5
OjpoYW5kbGVUb3VjaEV2ZW50KGNvbnMKICAgICAgICAgfQogICAgIH0KIAotICAgIGlmIChldmVu
dC5hbGxUb3VjaFBvaW50c0FyZVJlbGVhc2VkKCkpCisgICAgaWYgKGV2ZW50LmFsbFRvdWNoUG9p
bnRzQXJlUmVsZWFzZWQoKSkgewogICAgICAgICBtX3RvdWNoQW5kUG9pbnRlckV2ZW50VHJhY2tp
bmcucmVzZXQoKTsKKyAgICAgICAgZGlkUmVsZWFzZUFsbFRvdWNoUG9pbnRzKCk7CisgICAgfQog
fQogI2VuZGlmIC8vIEVOQUJMRShUT1VDSF9FVkVOVFMpCiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCShyZXZpc2lvbiAyNDgwOTMpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAkod29ya2luZyBjb3B5KQpAQCAtMTk0NCw2ICsxOTQ0
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGVsZW1lbnREaWRGb2N1cyhjb25zdCBGb2N1c2VkRWxl
bWVudEluZm9ybWF0aW9uJiwgYm9vbCB1c2VySXNJbnRlcmFjdGluZywgYm9vbCBibHVyUHJldmlv
dXNOb2RlLCBPcHRpb25TZXQ8V2ViQ29yZTo6QWN0aXZpdHlTdGF0ZTo6RmxhZz4gYWN0aXZpdHlT
dGF0ZUNoYW5nZXMsIGNvbnN0IFVzZXJEYXRhJik7CiAgICAgdm9pZCBlbGVtZW50RGlkQmx1cigp
OwogICAgIHZvaWQgZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoV2ViQ29yZTo6SW5w
dXRNb2RlKTsKKyAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBvaW50cygpOwogICAgIHZvaWQg
ZGlkUmVjZWl2ZUVkaXRvclN0YXRlVXBkYXRlQWZ0ZXJGb2N1cygpOwogCiAgICAgdm9pZCBzaG93
SW5zcGVjdG9ySGlnaGxpZ2h0KGNvbnN0IFdlYkNvcmU6OkhpZ2hsaWdodCYpOwpAQCAtMTk1Miw2
ICsxOTUzLDggQEAgcHJpdmF0ZToKICAgICB2b2lkIGVuYWJsZUluc3BlY3Rvck5vZGVTZWFyY2go
KTsKICAgICB2b2lkIGRpc2FibGVJbnNwZWN0b3JOb2RlU2VhcmNoKCk7CiAgICAgdm9pZCBmb2N1
c2VkRWxlbWVudEluZm9ybWF0aW9uQ2FsbGJhY2soY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1h
dGlvbiYsIENhbGxiYWNrSUQpOworI2Vsc2UKKyAgICB2b2lkIGRpZFJlbGVhc2VBbGxUb3VjaFBv
aW50cygpIHsgfQogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAKICNpZiBFTkFCTEUo
REFUQV9ERVRFQ1RJT04pCkBAIC0yMTcxLDYgKzIxNzQsNyBAQCBwcml2YXRlOgogI2VuZGlmCiAK
ICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIE9wdGlvbmFsPFdlYkNvcmU6OklucHV0TW9k
ZT4gbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlOwogICAgIE9wdGlvbmFsPFdlYkNvcmU6OlZpZXdw
b3J0QXJndW1lbnRzPiBtX292ZXJyaWRlVmlld3BvcnRBcmd1bWVudHM7CiAgICAgVmlzaWJsZUNv
bnRlbnRSZWN0VXBkYXRlSW5mbyBtX2xhc3RWaXNpYmxlQ29udGVudFJlY3RVcGRhdGU7CiAgICAg
dWludDY0X3QgbV9maXJzdExheWVyVHJlZVRyYW5zYWN0aW9uSWRBZnRlckRpZENvbW1pdExvYWQg
eyAwIH07CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV2ViUGFnZVByb3h5SU9T
Lm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XZWJQYWdlUHJv
eHlJT1MubW0JKHJldmlzaW9uIDI0ODA5MykKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XZWJQYWdlUHJveHlJT1MubW0JKHdvcmtpbmcgY29weSkKQEAgLTkwNSw2ICs5MDUsNyBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6c2V0SXNTaG93aW5nSW5wdXRWaWV3CiAKIHZvaWQgV2ViUGFnZVBy
b3h5OjplbGVtZW50RGlkRm9jdXMoY29uc3QgRm9jdXNlZEVsZW1lbnRJbmZvcm1hdGlvbiYgaW5m
b3JtYXRpb24sIGJvb2wgdXNlcklzSW50ZXJhY3RpbmcsIGJvb2wgYmx1clByZXZpb3VzTm9kZSwg
T3B0aW9uU2V0PFdlYkNvcmU6OkFjdGl2aXR5U3RhdGU6OkZsYWc+IGFjdGl2aXR5U3RhdGVDaGFu
Z2VzLCBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEpCiB7CisgICAgbV9wZW5kaW5nSW5wdXRNb2Rl
Q2hhbmdlID0gV1RGOjpudWxsb3B0OwogICAgIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JT
dGF0ZVVwZGF0ZUFmdGVyRm9jdXNpbmdFbGVtZW50ID0gdHJ1ZTsKIAogICAgIEFQSTo6T2JqZWN0
KiB1c2VyRGF0YU9iamVjdCA9IHByb2Nlc3MoKS50cmFuc2Zvcm1IYW5kbGVzVG9PYmplY3RzKHVz
ZXJEYXRhLm9iamVjdCgpKS5nZXQoKTsKQEAgLTkxOSw2ICs5MjAsNyBAQCB2b2lkIFdlYlBhZ2VQ
cm94eTo6ZWxlbWVudERpZEZvY3VzKGNvbnN0CiAKIHZvaWQgV2ViUGFnZVByb3h5OjplbGVtZW50
RGlkQmx1cigpCiB7CisgICAgbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlID0gV1RGOjpudWxsb3B0
OwogICAgIG1fd2FpdGluZ0ZvclBvc3RMYXlvdXRFZGl0b3JTdGF0ZVVwZGF0ZUFmdGVyRm9jdXNp
bmdFbGVtZW50ID0gZmFsc2U7CiAgICAgbV9kZWZlcnJlZEVsZW1lbnREaWRGb2N1c0FyZ3VtZW50
cyA9IG51bGxwdHI7CiAgICAgcGFnZUNsaWVudCgpLmVsZW1lbnREaWRCbHVyKCk7CkBAIC05MjYs
OSArOTI4LDIyIEBAIHZvaWQgV2ViUGFnZVByb3h5OjplbGVtZW50RGlkQmx1cigpCiAKIHZvaWQg
V2ViUGFnZVByb3h5Ojpmb2N1c2VkRWxlbWVudERpZENoYW5nZUlucHV0TW9kZShXZWJDb3JlOjpJ
bnB1dE1vZGUgbW9kZSkKIHsKKyNpZiBFTkFCTEUoVE9VQ0hfRVZFTlRTKQorICAgIGlmIChtX3Rv
dWNoQW5kUG9pbnRlckV2ZW50VHJhY2tpbmcuaXNUcmFja2luZ0FueXRoaW5nKCkpIHsKKyAgICAg
ICAgbV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlID0gbW9kZTsKKyAgICAgICAgcmV0dXJuOworICAg
IH0KKyNlbmRpZgorCiAgICAgcGFnZUNsaWVudCgpLmZvY3VzZWRFbGVtZW50RGlkQ2hhbmdlSW5w
dXRNb2RlKG1vZGUpOwogfQogCit2b2lkIFdlYlBhZ2VQcm94eTo6ZGlkUmVsZWFzZUFsbFRvdWNo
UG9pbnRzKCkKK3sKKyAgICBpZiAobV9wZW5kaW5nSW5wdXRNb2RlQ2hhbmdlKQorICAgICAgICBw
YWdlQ2xpZW50KCkuZm9jdXNlZEVsZW1lbnREaWRDaGFuZ2VJbnB1dE1vZGUoKm1fcGVuZGluZ0lu
cHV0TW9kZUNoYW5nZSk7Cit9CisKIHZvaWQgV2ViUGFnZVByb3h5OjphdXRvZmlsbExvZ2luQ3Jl
ZGVudGlhbHMoY29uc3QgU3RyaW5nJiB1c2VybmFtZSwgY29uc3QgU3RyaW5nJiBwYXNzd29yZCkK
IHsKICAgICBtX3Byb2Nlc3MtPnNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkF1dG9maWxsTG9naW5D
cmVkZW50aWFscyh1c2VybmFtZSwgcGFzc3dvcmQpLCBtX3BhZ2VJRCk7CkluZGV4OiBTb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAkocmV2aXNpb24gMjQ4MDkz
KQorKysgU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTI4OTEsMjEgKzI4OTEsMTAgQEAgc3RhdGljIGJvb2wgaGFuZGxlVG91Y2hF
dmVudChjb25zdCBXZWJUbwogdm9pZCBXZWJQYWdlOjpkaXNwYXRjaFRvdWNoRXZlbnQoY29uc3Qg
V2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwgYm9vbCYgaGFuZGxlZCkKIHsKICAgICBTZXRGb3JT
Y29wZTxib29sPiB1c2VySXNJbnRlcmFjdGluZ0NoYW5nZSB7IG1fdXNlcklzSW50ZXJhY3Rpbmcs
IHRydWUgfTsKLQotICAgIGF1dG8gb2xkRm9jdXNlZEZyYW1lID0gbWFrZVJlZlB0cihtX3BhZ2Ut
PmZvY3VzQ29udHJvbGxlcigpLmZvY3VzZWRGcmFtZSgpKTsKLSAgICBhdXRvIG9sZEZvY3VzZWRF
bGVtZW50ID0gbWFrZVJlZlB0cihvbGRGb2N1c2VkRnJhbWUgPyBvbGRGb2N1c2VkRnJhbWUtPmRv
Y3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkgOiBudWxscHRyKTsKLQogICAgIG1fbGFzdEludGVy
YWN0aW9uTG9jYXRpb24gPSB0b3VjaEV2ZW50LnBvc2l0aW9uKCk7CiAgICAgQ3VycmVudEV2ZW50
IGN1cnJlbnRFdmVudCh0b3VjaEV2ZW50KTsKICAgICBoYW5kbGVkID0gaGFuZGxlVG91Y2hFdmVu
dCh0b3VjaEV2ZW50LCBtX3BhZ2UuZ2V0KCkpOwogICAgIHVwZGF0ZVBvdGVudGlhbFRhcFNlY3Vy
aXR5T3JpZ2luKHRvdWNoRXZlbnQsIGhhbmRsZWQpOwotCi0gICAgaWYgKGhhbmRsZWQgJiYgb2xk
Rm9jdXNlZEVsZW1lbnQpIHsKLSAgICAgICAgYXV0byBuZXdGb2N1c2VkRnJhbWUgPSBtYWtlUmVm
UHRyKG1fcGFnZS0+Zm9jdXNDb250cm9sbGVyKCkuZm9jdXNlZEZyYW1lKCkpOwotICAgICAgICBh
dXRvIG5ld0ZvY3VzZWRFbGVtZW50ID0gbWFrZVJlZlB0cihuZXdGb2N1c2VkRnJhbWUgPyBuZXdG
b2N1c2VkRnJhbWUtPmRvY3VtZW50KCktPmZvY3VzZWRFbGVtZW50KCkgOiBudWxscHRyKTsKLSAg
ICAgICAgaWYgKG9sZEZvY3VzZWRFbGVtZW50ID09IG5ld0ZvY3VzZWRFbGVtZW50ICYmIGlzVHJh
bnNwYXJlbnRPckZ1bGx5Q2xpcHBlZCgqbmV3Rm9jdXNlZEVsZW1lbnQpKQotICAgICAgICAgICAg
ZWxlbWVudERpZFJlZm9jdXMoKm5ld0ZvY3VzZWRFbGVtZW50KTsKLSAgICB9CiB9CiAKIHZvaWQg
V2ViUGFnZTo6dG91Y2hFdmVudFN5bmMoY29uc3QgV2ViVG91Y2hFdmVudCYgdG91Y2hFdmVudCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiByZXBseSkKSW5kZXg6IExheW91dFRlc3Rz
L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI0ODA5MykKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE4IEBACisyMDE5LTA4LTA2ICBSeW9zdWtlIE5pd2EgIDxybml3YUB3ZWJraXQub3JnPgor
CisgICAgICAgIFtpUGFkT1NdIHNsaWRlcy5nb29nbGUuY29tOiB0YXBwaW5nIG5lYXIgY3Vyc29y
IGluIGEgc2xpZGUgdGl0bGUgZm9jdXNlcyB0aGUgc3BlYWtlciBub3RlcworICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjAwMjE2CisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgYSBuZXcgcmVncmVzc2lv
biB0ZXN0IGFuZCByZW1vdmVkIHRoZSBvbmUgYWRkZWQgZm9yIHIyNDMwNDQuCisKKyAgICAgICAg
KiBmYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2hvdy1rZXlib2FyZC1hZnRlci1wcmV2ZW50aW5nLXRv
dWNoc3RhcnQtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGZhc3QvZXZlbnRzL3Rv
dWNoL2lvcy9zaG93LWtleWJvYXJkLWFmdGVyLXByZXZlbnRpbmctdG91Y2hzdGFydC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvaW9zL2lucHV0bW9kZS1jaGFuZ2UtdXBkYXRl
LWtleWJvYXJkLWFmdGVyLXBvaW50ZXJ1cC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAq
IGZhc3QvZm9ybXMvaW9zL2lucHV0bW9kZS1jaGFuZ2UtdXBkYXRlLWtleWJvYXJkLWFmdGVyLXBv
aW50ZXJ1cC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUt
Y2hhbmdlLXVwZGF0ZS1rZXlib2FyZC5odG1sOiBGaXhlZCB0aGUgdGVzdCBmb3IgbWFudWFsIHRl
c3RpbmcuCisKIDIwMTktMDctMzEgIEFsYW4gQ29vbiAgPGFsYW5jb29uQGFwcGxlLmNvbT4KIAog
ICAgICAgICBDaGVycnktcGljayByMjQ4MDgwLiByZGFyOi8vcHJvYmxlbS81Mzc4ODk1NgpJbmRl
eDogTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3cta2V5Ym9hcmQtYWZ0ZXIt
cHJldmVudGluZy10b3VjaHN0YXJ0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2hvdy1rZXlib2FyZC1hZnRlci1wcmV2ZW50aW5n
LXRvdWNoc3RhcnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNDgwOTMpCisrKyBMYXlvdXRUZXN0
cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2hvdy1rZXlib2FyZC1hZnRlci1wcmV2ZW50aW5nLXRv
dWNoc3RhcnQtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTEgKzAsMCBAQAotCi1W
ZXJpZmllcyB0aGF0IHRoZSBrZXlib2FyZCBzaG93cyB1cCBldmVuIGFmdGVyIHByZXZlbnRpbmcg
ZGVmYXVsdCBvbiB0b3VjaHN0YXJ0IHdoZW4gZm9jdXNpbmcgYSBoaWRkZW4gZWRpdGFibGUgYXJl
YS4gVG8gbWFudWFsbHkgdGVzdCwgdGFwIHRoZSByZWQgYm94OyB0aGUgdGV4dGFyZWEgc2hvdWxk
IHJlbWFpbiBmb2N1c2VkLCBhbmQgdGhlIGtleWJvYXJkIHNob3VsZCBhcHBlYXIuCi0KLU9uIHN1
Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2Vk
IGJ5ICJURVNUIENPTVBMRVRFIi4KLQotUEFTUyBrZXlib2FyZCB3YXMgc2hvd24uCi1QQVNTIGRv
Y3VtZW50LmFjdGl2ZUVsZW1lbnQgaXMgdGV4dGFyZWEKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2Vk
IGlzIHRydWUKLQotVEVTVCBDT01QTEVURQotCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50
cy90b3VjaC9pb3Mvc2hvdy1rZXlib2FyZC1hZnRlci1wcmV2ZW50aW5nLXRvdWNoc3RhcnQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2V2ZW50cy90b3VjaC9pb3Mvc2hvdy1r
ZXlib2FyZC1hZnRlci1wcmV2ZW50aW5nLXRvdWNoc3RhcnQuaHRtbAkocmV2aXNpb24gMjQ4MDkz
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9ldmVudHMvdG91Y2gvaW9zL3Nob3cta2V5Ym9hcmQtYWZ0
ZXItcHJldmVudGluZy10b3VjaHN0YXJ0Lmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw1OSArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii4uLy4u
Ly4uLy4uL3Jlc291cmNlcy91aS1oZWxwZXIuanMiPjwvc2NyaXB0PgotPHN0eWxlPgotaHRtbCwg
Ym9keSB7Ci0gICAgd2lkdGg6IDEwMCU7Ci0gICAgaGVpZ2h0OiAxMDAlOwotICAgIG1hcmdpbjog
MDsKLX0KLQotdGV4dGFyZWEsICN0YXJnZXQgewotICAgIHdpZHRoOiAxMDAlOwotICAgIGhlaWdo
dDogMTAwcHg7Ci0gICAgcG9zaXRpb246IGFic29sdXRlOwotICAgIHRvcDogMDsKLX0KLQotI3Rh
cmdldCB7Ci0gICAgYmFja2dyb3VuZC1jb2xvcjogdG9tYXRvOwotICAgIHotaW5kZXg6IDE7Ci0g
ICAgb3BhY2l0eTogMC4yNTsKLX0KLQotdGV4dGFyZWEgewotICAgIG9wYWNpdHk6IDA7Ci19Ci0K
LSNkZXNjcmlwdGlvbiB7Ci0gICAgbWFyZ2luLXRvcDogMTAwcHg7Ci19Ci08L3N0eWxlPgotPC9o
ZWFkPgotPGJvZHk+Ci0gICAgPHRleHRhcmVhPjwvdGV4dGFyZWE+Ci0gICAgPGRpdiBpZD0idGFy
Z2V0Ij48L2Rpdj4KLSAgICA8cHJlIGlkPSJkZXNjcmlwdGlvbiI+PC9wcmU+Ci0gICAgPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Ci08L2JvZHk+Ci08c2NyaXB0PgotICAgIGpzVGVzdElzQXN5bmMg
PSB0cnVlOwotICAgIHRleHRhcmVhID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvcigidGV4dGFyZWEi
KTsKLSAgICB0YXJnZXQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0Iik7Ci0gICAg
dGFyZ2V0LmFkZEV2ZW50TGlzdGVuZXIoInRvdWNoc3RhcnQiLCBldmVudCA9PiBldmVudC5wcmV2
ZW50RGVmYXVsdCgpKTsKLQotICAgIGRlc2NyaXB0aW9uKCJWZXJpZmllcyB0aGF0IHRoZSBrZXli
b2FyZCBzaG93cyB1cCBldmVuIGFmdGVyIHByZXZlbnRpbmcgZGVmYXVsdCBvbiB0b3VjaHN0YXJ0
IHdoZW4gZm9jdXNpbmcgYSBoaWRkZW4gZWRpdGFibGUgYXJlYS4gVG8gbWFudWFsbHkgdGVzdCwg
dGFwIHRoZSByZWQgYm94OyB0aGUgdGV4dGFyZWEgc2hvdWxkIHJlbWFpbiBmb2N1c2VkLCBhbmQg
dGhlIGtleWJvYXJkIHNob3VsZCBhcHBlYXIuIik7Ci0KLSAgICBhZGRFdmVudExpc3RlbmVyKCJs
b2FkIiwgYXN5bmMgKCkgPT4gewotICAgICAgICB0ZXh0YXJlYS5mb2N1cygpOwotICAgICAgICBh
d2FpdCBVSUhlbHBlci5hY3RpdmF0ZUVsZW1lbnRBbmRXYWl0Rm9ySW5wdXRTZXNzaW9uKHRhcmdl
dCk7Ci0gICAgICAgIHRlc3RQYXNzZWQoImtleWJvYXJkIHdhcyBzaG93bi4iKTsKLSAgICAgICAg
c2hvdWxkQmUoImRvY3VtZW50LmFjdGl2ZUVsZW1lbnQiLCAidGV4dGFyZWEiKTsKLSAgICAgICAg
dGV4dGFyZWEuYmx1cigpOwotICAgICAgICBhd2FpdCBVSUhlbHBlci53YWl0Rm9yS2V5Ym9hcmRU
b0hpZGUoKTsKLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgfSk7Ci08L3NjcmlwdD4KLTwv
aHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZm9ybXMvaW9zL2lucHV0bW9kZS1jaGFuZ2Ut
dXBkYXRlLWtleWJvYXJkLWFmdGVyLXBvaW50ZXJ1cC1leHBlY3RlZC50eHQKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5
Ym9hcmQtYWZ0ZXItcG9pbnRlcnVwLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUtY2hhbmdlLXVwZGF0ZS1rZXlib2FyZC1h
ZnRlci1wb2ludGVydXAtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTcg
QEAKK1RoaXMgdGVzdHMgdXBkYXRpbmcgaW5wdXRtb2RlIG9mIGFuIGlucHV0IGVsZW1lbnQgZnJv
bSAibm9uZSIgdG8gInRleHQiLiBUaGUgc29mdHdhcmUga2V5Ym9hcmQgc2hvdWxkIGJlIGJyb3Vn
aHQgdXAgYWZ0ZXIgcG9pbnRlcnVwLgorVG8gbWFudWFsbHkgdGVzdCwgdGFwIG9uIHRoZSBpbnB1
dCBlbGVtZW50IGJlbG93LiBUaGUgc29mdHdhcmUga2V5Ym9hcmQgc2hvdWxkIGJlIGJyb3VnaHQg
dXAKKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgdGV4dEhlaWdodCA9IGtl
eWJvYXJkUmVjdC5oZWlnaHQ7IGtleWJvYXJkUmVjdC5oZWlnaHQgPiAwIGlzIHRydWUKK1BBU1Mg
bG9ncy5sZW5ndGggaXMgMgorUEFTUyBsb2dzWzBdLmV2ZW50LnR5cGUgaXMgInBvaW50ZXJkb3du
IgorUEFTUyBsb2dzWzBdLnZpc3VhbFZpZXdwb3J0SGVpZ2h0IGlzIG9yaWdpbmFsVmlzdWFsVmll
d3BvcnRIZWlnaHQKK1BBU1MgbG9nc1sxXS5ldmVudC50eXBlIGlzICJwb2ludGVydXAiCitQQVNT
IGxvZ3NbMV0udmlzdWFsVmlld3BvcnRIZWlnaHQgaXMgb3JpZ2luYWxWaXN1YWxWaWV3cG9ydEhl
aWdodAorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisK
KwpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11cGRh
dGUta2V5Ym9hcmQtYWZ0ZXItcG9pbnRlcnVwLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9mb3Jtcy9pb3MvaW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQtYWZ0ZXIt
cG9pbnRlcnVwLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9p
b3MvaW5wdXRtb2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQtYWZ0ZXItcG9pbnRlcnVwLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw2MCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4K
KzxoZWFkPgorPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPWRldmljZS13aWR0
aCwgaW5pdGlhbC1zY2FsZT0xLCB1c2VyLXNjYWxhYmxlPW5vIj4KKzxzY3JpcHQgc3JjPSIuLi8u
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4v
Li4vcmVzb3VyY2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxp
bnB1dCBpbnB1dG1vZGU9Im5vbmUiPgorPGRpdiBpZD0iY291bnRkb3duIj48L2Rpdj4KKzxzY3Jp
cHQ+Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworZGVzY3JpcHRpb24oJ1RoaXMgdGVzdHMgdXBk
YXRpbmcgaW5wdXRtb2RlIG9mIGFuIGlucHV0IGVsZW1lbnQgZnJvbSAibm9uZSIgdG8gInRleHQi
LiBUaGUgc29mdHdhcmUga2V5Ym9hcmQgc2hvdWxkIGJlIGJyb3VnaHQgdXAgYWZ0ZXIgcG9pbnRl
cnVwLjxicj4nCisgICAgKyAnVG8gbWFudWFsbHkgdGVzdCwgdGFwIG9uIHRoZSBpbnB1dCBlbGVt
ZW50IGJlbG93LiBUaGUgc29mdHdhcmUga2V5Ym9hcmQgc2hvdWxkIGJlIGJyb3VnaHQgdXAnKTsK
KworY29uc3QgaW5wdXQgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbnB1dCIpOworaW5wdXQu
Zm9jdXMoKTsKKworbGV0IG9yaWdpbmFsVmlzdWFsVmlld3BvcnRIZWlnaHQ7CitsZXQgbG9ncyA9
IFtdOworYXN5bmMgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgIGF3YWl0IFVJSGVscGVyLnNldEhhcmR3YXJlS2V5Ym9hcmRBdHRhY2hlZChm
YWxzZSk7CisKKyAgICBvcmlnaW5hbFZpc3VhbFZpZXdwb3J0SGVpZ2h0ID0gd2luZG93LnZpc3Vh
bFZpZXdwb3J0LmhlaWdodDsKKworICAgIGxldCBkaWRSZXNpemUgPSAoKSA9PiB7IH07CisgICAg
d2luZG93LnZpc3VhbFZpZXdwb3J0LmFkZEV2ZW50TGlzdGVuZXIoJ3Jlc2l6ZScsICgpID0+IGRp
ZFJlc2l6ZSgpKTsKKyAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsIChl
dmVudCkgPT4geworICAgICAgICBpbnB1dC5pbnB1dE1vZGUgPSAndGV4dCc7CisgICAgICAgIGxv
Z3MucHVzaCh7ZXZlbnQsIHZpc3VhbFZpZXdwb3J0SGVpZ2h0OiB2aXN1YWxWaWV3cG9ydC5oZWln
aHR9KTsKKyAgICB9LCB7b25jZTogdHJ1ZX0pOworICAgIGlucHV0LmFkZEV2ZW50TGlzdGVuZXIo
J3BvaW50ZXJ1cCcsIChldmVudCkgPT4geworICAgICAgICBsb2dzLnB1c2goe2V2ZW50LCB2aXN1
YWxWaWV3cG9ydEhlaWdodDogdmlzdWFsVmlld3BvcnQuaGVpZ2h0fSk7CisgICAgfSwge29uY2U6
IHRydWV9KTsKKworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBhd2FpdCBV
SUhlbHBlci5hY3RpdmF0ZUZvcm1Db250cm9sKGlucHV0KTsKKyAgICAgICAgd2luZG93LmtleWJv
YXJkUmVjdCA9IGF3YWl0IFVJSGVscGVyLmlucHV0Vmlld0JvdW5kcygpOworICAgICAgICBzaG91
bGRCZVRydWUoJ3RleHRIZWlnaHQgPSBrZXlib2FyZFJlY3QuaGVpZ2h0OyBrZXlib2FyZFJlY3Qu
aGVpZ2h0ID4gMCcpOworICAgIH0gZWxzZSB7CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChy
ZXNvbHZlKSA9PiB7IGRpZFJlc2l6ZSA9IHJlc29sdmU7IH0pOworICAgICAgICBzaG91bGRCZVRy
dWUoJ3RleHRIZWlnaHQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0IC0g
dmlzdWFsVmlld3BvcnQuaGVpZ2h0OyBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVp
Z2h0IC0gdmlzdWFsVmlld3BvcnQuaGVpZ2h0IDwgMTAwJyk7CisgICAgfQorCisgICAgc2hvdWxk
QmUoJ2xvZ3MubGVuZ3RoJywgJzInKTsKKyAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2xvZ3Nb
MF0uZXZlbnQudHlwZScsICdwb2ludGVyZG93bicpOworICAgIHNob3VsZEJlKCdsb2dzWzBdLnZp
c3VhbFZpZXdwb3J0SGVpZ2h0JywgJ29yaWdpbmFsVmlzdWFsVmlld3BvcnRIZWlnaHQnKTsKKyAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoJ2xvZ3NbMV0uZXZlbnQudHlwZScsICdwb2ludGVydXAn
KTsKKyAgICBzaG91bGRCZSgnbG9nc1sxXS52aXN1YWxWaWV3cG9ydEhlaWdodCcsICdvcmlnaW5h
bFZpc3VhbFZpZXdwb3J0SGVpZ2h0Jyk7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKword2lu
ZG93Lm9ubG9hZCA9ICgpID0+IHNldFRpbWVvdXQocnVuVGVzdCwgMCk7CisKKzwvc2NyaXB0Pgor
PC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9pb3MvaW5wdXRt
b2RlLWNoYW5nZS11cGRhdGUta2V5Ym9hcmQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9mYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUtY2hhbmdlLXVwZGF0ZS1rZXlib2FyZC5odG1sCShy
ZXZpc2lvbiAyNDgwOTMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL2lvcy9pbnB1dG1vZGUt
Y2hhbmdlLXVwZGF0ZS1rZXlib2FyZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw4
IEBAIGlmICghd2luZG93LnRlc3RSdW5uZXIpIHsKIH0KIAogYXN5bmMgZnVuY3Rpb24gcnVuVGVz
dCgpIHsKLSAgICBhd2FpdCBVSUhlbHBlci5zZXRIYXJkd2FyZUtleWJvYXJkQXR0YWNoZWQoZmFs
c2UpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgYXdhaXQgVUlIZWxwZXIu
c2V0SGFyZHdhcmVLZXlib2FyZEF0dGFjaGVkKGZhbHNlKTsKIAogICAgIGRlYnVnKCdpbnB1dG1v
ZGU9InRleHQiJyk7CiAK
</data>
<flag name="review"
          id="391469"
          type_id="1"
          status="+"
          setter="wenson_hsieh"
    />
          </attachment>
      

    </bug>

</bugzilla>