<?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>204735</bug_id>
          
          <creation_ts>2019-12-01 17:09:02 -0800</creation_ts>
          <short_desc>[PSON] Tooltips from previous page shown on new page</short_desc>
          <delta_ts>2019-12-03 01:31:20 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>dbates</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>japhet</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1594464</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-01 17:09:02 -0800</bug_when>
    <thetext>We&apos;re having trouble with tooltips from a previously-loaded webpage being displayed for a new unrelated web page after loading a new page in the web view. It&apos;s easy to reproduce using the Epiphany overview. Hover your mouse cursor over any of the overview items to display a tooltip. Then, using the keyboard, Ctrl+L to focus the address bar, type in any web address, e.g. https://www.gnome.org, and hit Enter to load the page.

With 2.26, the tooltip appears on the new page, but only until the mouse is moved. As soon as the mouse is moved, the tooltip disappears and never comes back.

With 2.27.3, the tooltip has developed aggressive zombie tendencies. It just doesn&apos;t want to die 🧟. Move the mouse, it will come back again and again. To avoid the bug, you can hover over some element of the new web page that displays a tooltip and our zombie tooltip will finally die. For example, using https://www.gnome.org as our second page load, you can hover over the GNOME foot in the top-left to get rid of the zombie tooltip. I remember this when testing 2.27.2 and maybe also 2.27.1, so it&apos;s an earlier regression. I just never managed to figure out how to reproduce it until now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594466</commentid>
    <comment_count>1</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-01 17:34:08 -0800</bug_when>
    <thetext>Well I went to bisect this, but I was able to reproduce the bug in my personal JHBuild environment even when using a pre-2.26 commit of WebKit. So my assumption that the WebKit version difference was to blame for the regression was wrong.

Bug is reproducible with: Epiphany Tech Preview (using 2.27.3), Michael&apos;s personal JHBuild environment

Not reproducible with: Fedora 31 system Epiphany</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594468</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-01 18:04:14 -0800</bug_when>
    <thetext>Sorry, I think this in an Epiphany regression.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594470</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-01 18:15:47 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #2)
&gt; Sorry, I think this in an Epiphany regression.

OK, the problem is PSON. I bisected it in Epiphany to the Epiphany commit reenabling PSON.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594557</commentid>
    <comment_count>4</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-02 05:35:39 -0800</bug_when>
    <thetext>This is not GTK specific. The problem is that WebPage (in the wbe process) is caching the tooltip text to avoid sending IPC messages when the tooltip didn&apos;t change. When a new web process is used for the same web view, the tooltip text doesn&apos;t really change (it&apos;s always null) until a new one is set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594558</commentid>
    <comment_count>5</comment_count>
      <attachid>384612</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-02 05:48:11 -0800</bug_when>
    <thetext>Created attachment 384612
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594559</commentid>
    <comment_count>6</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2019-12-02 05:52:29 -0800</bug_when>
    <thetext>Can we add a test?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594560</commentid>
    <comment_count>7</comment_count>
      <attachid>384613</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-02 05:58:59 -0800</bug_when>
    <thetext>Created attachment 384613
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594561</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-02 06:02:12 -0800</bug_when>
    <thetext>(In reply to youenn fablet from comment #6)
&gt; Can we add a test?

I thought about it, but we don&apos;t have public API to get the current tooltip text to make a unit test. And I&apos;m not sure it&apos;s possible with a layout test either.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594595</commentid>
    <comment_count>9</comment_count>
      <attachid>384613</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-02 08:05:00 -0800</bug_when>
    <thetext>Comment on attachment 384613
Patch

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

&gt; Source/WebKit/ChangeLog:8
&gt; +        The problem is that WebPage (in the wbe process) is caching the tooltip text to avoid sending IPC messages when

Typo: wbe</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594619</commentid>
    <comment_count>10</comment_count>
      <attachid>384613</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-12-02 09:09:34 -0800</bug_when>
    <thetext>Comment on attachment 384613
Patch

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

Thanks.

&gt; Source/WebCore/page/ChromeClient.h:210
&gt; +    virtual void mouseDidMoveOverElement(const HitTestResult&amp;, unsigned modifierFlags, const String&amp;, TextDirection) = 0;

The const String&amp; parameter here should be named (&quot;toolTip&quot;) since it&apos;s not clear from the type what it&apos;s for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594628</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-12-02 09:14:19 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #10)
&gt; Comment on attachment 384613 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=384613&amp;action=review
&gt; 
&gt; Thanks.
&gt; 
&gt; &gt; Source/WebCore/page/ChromeClient.h:210
&gt; &gt; +    virtual void mouseDidMoveOverElement(const HitTestResult&amp;, unsigned modifierFlags, const String&amp;, TextDirection) = 0;
&gt; 
&gt; The const String&amp; parameter here should be named (&quot;toolTip&quot;) since it&apos;s not
&gt; clear from the type what it&apos;s for.

+1, good catch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594937</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-12-03 01:30:27 -0800</bug_when>
    <thetext>Committed r253028: &lt;https://trac.webkit.org/changeset/253028&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1594938</commentid>
    <comment_count>13</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-03 01:31:20 -0800</bug_when>
    <thetext>&lt;rdar://problem/57585196&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384612</attachid>
            <date>2019-12-02 05:48:11 -0800</date>
            <delta_ts>2019-12-02 05:58:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-tooltips-pson.diff</filename>
            <type>text/plain</type>
            <size>22902</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MjlkYmY0MWU3ZC4uZWZlZjNkNmQzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0xMi0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1BTT05dIFRvb2x0aXBzIGZyb20gcHJldmlvdXMgcGFnZSBz
aG93biBvbiBuZXcgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0NzM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIENocm9tZTo6c2V0VG9vbFRpcCgpIHRoYXQgaXMgYWx3YXlzIGNhbGxl
ZCBhZnRlciBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCkgYW5kIGFkZCB0aGUKKyAg
ICAgICAgdG9vbHRpcCB0ZXh0IGFuZCBkaXJlY3Rpb24gYXMgcGFyYW1ldGVycyBvZiBDaHJvbWU6
Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6
OmdldFRvb2xUaXApOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQpOgorCiAyMDE5LTEyLTAyICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtSZW5kZXIgdHJl
ZV0gU3VwcG9ydCBMRkMgaW4gTGluZUxheW91dFRyYXZlcnNhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDYxN2ExNjEyNjc0Li41ZTI0ZGFkOGE1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTE4LDkgKzExOCw3IEBAIGNsYXNzIEVtcHR5Q2hy
b21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IGZpbmFsIHsgfQogICAgIHZvaWQg
aW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwg
eyB9CiAKLSAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCkgZmluYWwgeyB9Ci0KLSAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3Ry
aW5nJiwgVGV4dERpcmVjdGlvbikgZmluYWwgeyB9CisgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIFRl
eHREaXJlY3Rpb24pIGZpbmFsIHsgfQogCiAgICAgdm9pZCBwcmludChGcmFtZSYpIGZpbmFsIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNjIzM2U0YmY1N2UuLjE1NTEyY2FmNTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0zMjgsMTYgKzMyOCwxOSBAQCB2b2lkIENocm9tZTo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNp
Z25lZCBtb2RpZgogewogICAgIGlmIChyZXN1bHQuaW5uZXJOb2RlKCkgJiYgcmVzdWx0LmlubmVy
Tm9kZSgpLT5kb2N1bWVudCgpLmlzRE5TUHJlZmV0Y2hFbmFibGVkKCkpCiAgICAgICAgIG1fcGFn
ZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKS5wcmVmZXRjaEROUyhyZXN1bHQuYWJzb2x1
dGVMaW5rVVJMKCkuaG9zdCgpLnRvU3RyaW5nKCkpOwotICAgIG1fY2xpZW50Lm1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KHJlc3VsdCwgbW9kaWZpZXJGbGFncyk7CisKKyAgICBTdHJpbmcgdG9vbFRp
cDsKKyAgICBUZXh0RGlyZWN0aW9uIHRvb2xUaXBEaXJlY3Rpb247CisgICAgZ2V0VG9vbFRpcChy
ZXN1bHQsIHRvb2xUaXAsIHRvb2xUaXBEaXJlY3Rpb24pOworICAgIG1fY2xpZW50Lm1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KHJlc3VsdCwgbW9kaWZpZXJGbGFncywgdG9vbFRpcCwgdG9vbFRpcERp
cmVjdGlvbik7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KG1fcGFnZSwgcmVzdWx0LCBtb2RpZmllckZsYWdzKTsKIH0KIAotdm9pZCBDaHJv
bWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQordm9pZCBDaHJvbWU6
OmdldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBTdHJpbmcmIHRvb2xUaXAs
IFRleHREaXJlY3Rpb24mIHRvb2xUaXBEaXJlY3Rpb24pCiB7CiAgICAgLy8gRmlyc3QgcHJpb3Jp
dHkgaXMgYSBwb3RlbnRpYWwgdG9vbFRpcCByZXByZXNlbnRpbmcgYSBzcGVsbGluZyBvciBncmFt
bWFyIGVycm9yCi0gICAgVGV4dERpcmVjdGlvbiB0b29sVGlwRGlyZWN0aW9uOwotICAgIFN0cmlu
ZyB0b29sVGlwID0gcmVzdWx0LnNwZWxsaW5nVG9vbFRpcCh0b29sVGlwRGlyZWN0aW9uKTsKKyAg
ICB0b29sVGlwID0gcmVzdWx0LnNwZWxsaW5nVG9vbFRpcCh0b29sVGlwRGlyZWN0aW9uKTsKIAog
ICAgIC8vIE5leHQgcHJpb3JpdHkgaXMgYSB0b29sVGlwIGZyb20gYSBVUkwgYmVuZWF0aCB0aGUg
bW91c2UgKGlmIHByZWZlcmVuY2UgaXMgc2V0IHRvIHNob3cgdGhvc2UpLgogICAgIGlmICh0b29s
VGlwLmlzRW1wdHkoKSAmJiBtX3BhZ2Uuc2V0dGluZ3MoKS5zaG93c1VSTHNJblRvb2xUaXBzKCkp
IHsKQEAgLTM4MiwxNCArMzg1LDEyIEBAIHZvaWQgQ2hyb21lOjpzZXRUb29sVGlwKGNvbnN0IEhp
dFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IG9idGFpbiB0ZXh0IGRpcmVjdGlvbiBvZiB0b29sdGlwIGZyb20KICAgICAgICAgICAgICAgICAv
LyBDaHJvbWVDbGllbnQgb3IgcGxhdGZvcm0uIEFzIG9mIE9jdG9iZXIgMjAxMSwgYWxsIGNsaWVu
dAogICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9ucyBkb24ndCB1c2UgdGV4dCBkaXJl
Y3Rpb24gaW5mb3JtYXRpb24gZm9yCi0gICAgICAgICAgICAgICAgLy8gQ2hyb21lQ2xpZW50Ojpz
ZXRUb29sVGlwLiBXZSdsbCB3b3JrIG9uIHRvb2x0aXAgdGV4dAorICAgICAgICAgICAgICAgIC8v
IENocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQuIFdlJ2xsIHdvcmsgb24gdG9v
bHRpcCB0ZXh0CiAgICAgICAgICAgICAgICAgLy8gZGlyZWN0aW9uIGR1cmluZyBiaWRpIGNsZWFu
dXAgaW4gZm9ybSBpbnB1dHMuCiAgICAgICAgICAgICAgICAgdG9vbFRpcERpcmVjdGlvbiA9IFRl
eHREaXJlY3Rpb246OkxUUjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLQotICAg
IG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRpcERpcmVjdGlvbik7CiB9CiAKIGJv
b2wgQ2hyb21lOjpwcmludChGcmFtZSYgZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCAzOThi
NGExN2E2OS4uNjYyYmUwMGZhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtMTQyLDggKzE0Miw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0
VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCi0gICAgdm9pZCBzZXRUb29s
VGlwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcHJp
bnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU3VkZGVuVGVybWlu
YXRpb24oKTsKQEAgLTE4OCw2ICsxODYsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29uc3Q7CiAKKyAgICB2b2lkIGdldFRvb2xU
aXAoY29uc3QgSGl0VGVzdFJlc3VsdCYsIFN0cmluZyYsIFRleHREaXJlY3Rpb24mKTsKKwogICAg
IFBhZ2UmIG1fcGFnZTsKICAgICBDaHJvbWVDbGllbnQmIG1fY2xpZW50OwogICAgIFBsYXRmb3Jt
RGlzcGxheUlEIG1fZGlzcGxheUlEIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggNjkyMGE2ZDBmYTAuLjk1YzZjYjIxMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTIwNyw5ICsyMDcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYsIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNp
Z25lZCBtb2RpZmllckZsYWdzLCBjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCA2NmQ3YTFjOGNhZi4uYmQ4NzJjNjRjYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTE5MTEsNyArMTkxMSw2IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjptb3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAKICAg
ICBob3ZlcmVkTm9kZS5zZXRUb05vblVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAgICAgcGFn
ZS0+Y2hyb21lKCkubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoaG92ZXJlZE5vZGUsIGV2ZW50Lm1v
ZGlmaWVyRmxhZ3MoKSk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0VG9vbFRpcChob3ZlcmVkTm9k
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiYmVhMWE4Y2RmYS4uN2Q2
NmE3MmU1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMTItMDIgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQU09OXSBUb29s
dGlwcyBmcm9tIHByZXZpb3VzIHBhZ2Ugc2hvd24gb24gbmV3IHBhZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDczNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgV2Vi
UGFnZSAoaW4gdGhlIHdiZSBwcm9jZXNzKSBpcyBjYWNoaW5nIHRoZSB0b29sdGlwIHRleHQgdG8g
YXZvaWQgc2VuZGluZyBJUEMgbWVzc2FnZXMgd2hlbgorICAgICAgICB0aGUgdG9vbHRpcCBkaWRu
J3QgY2hhbmdlLiBXaGVuIGEgbmV3IHdlYiBwcm9jZXNzIGlzIHVzZWQgZm9yIHRoZSBzYW1lIHdl
YiB2aWV3LCB0aGUgdG9vbHRpcCB0ZXh0IGRvZXNuJ3QgcmVhbGx5CisgICAgICAgIGNoYW5nZSAo
aXQncyBhbHdheXMgbnVsbCkgdW50aWwgYSBuZXcgb25lIGlzIHNldC4gVGhlIHNldFRvb2xUaXAg
bWVzc2FnZSBpcyBhbHdheXMgc2VudCByaWdodCBhZnRlciB0aGUKKyAgICAgICAgTW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQsIGFuZCB0aGV5IGJvdGggZGVwZW5kIG9uIHRoZSBzYW1lIGhpdCB0ZXN0
IHJlc3VsdCwgc28gd2UgY2FuIGluY2x1ZGUgdGhlIHRvb2x0aXAgdGV4dCBhcworICAgICAgICBw
YXJ0IG9mIHRoZSBXZWJIaXRUZXN0UmVzdWx0RGF0YSBzdHJ1Y3QgcGFzc2VkIHRvIE1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50IGFuZCByZW1vdmUgdGhlIFNldFRvb2xUaXAKKyAgICAgICAgbWVzc2Fn
ZS4gU2luY2UgdGhlIFVJIHByb2Nlc3MgaXMgYWxyZWFkeSBjYWNoaW5nIHRoZSB0b29sdGlwLCB3
ZSBjYW4gc2ltcGx5IG5vdGlmeSB0aGUgcGFnZSBjbGllbnQgd2hlbiBpdCBjaGFuZ2VzLgorCisg
ICAgICAgICogU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKTogSW5pdGlhbGl6
ZSB0b29sVGlwVGV4dC4KKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGE6OmVu
Y29kZSBjb25zdCk6IEVuY29kZSB0b29sVGlwVGV4dC4KKyAgICAgICAgKFdlYktpdDo6V2ViSGl0
VGVzdFJlc3VsdERhdGE6OmRlY29kZSk6IERlY29kZSB0b29sVGlwVGV4dC4KKyAgICAgICAgKiBT
aGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojptb3VzZURpZE1vdmVP
dmVyRWxlbWVudCk6IENhbGwgc2V0VG9vbFRpcCgpIGFmdGVyIG5vdGlmeWluZyB0aGUgVUkgY2xp
ZW50IGFib3V0IHRoZSBtb3VzZSBtb3ZlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFRvb2xUaXApOiBSZXR1cm4gZWFybHkgaWYgdG9vbHRpcCBkaWRuJ3QgY2hhbmdlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOiBVc2Ugc2V0VG9vbFRpcCgp
IHRvIGVuc3VyZSB0aGUgcGFnZSBjbGllbnQgaXMgbm90aWZpZWQgYWJvdXQgdGhlIGNoYW5nZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmUgU2V0
VG9vbFRpcCBtZXNzYWdlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojptb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudCk6IFBhc3MgdG9vbHRpcCB0ZXh0IHRvIFdlYkhpdFRlc3RSZXN1
bHREYXRhIGNvbnN0cnVjdG9yLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMTItMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1BTT05dIENyYXNoIGluIE5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcAppbmRleCA4NjZlOTJjYzRhNi4u
YTgwNTQyYjgyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RS
ZXN1bHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
RGF0YS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRl
c3RSZXN1bHREYXRhKCkKIHsKIH0KIAotV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RS
ZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCitX
ZWJIaXRUZXN0UmVzdWx0RGF0YTo6V2ViSGl0VGVzdFJlc3VsdERhdGEoY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCwgY29uc3QgU3RyaW5nJiB0b29sVGlwVGV4dCkK
ICAgICA6IGFic29sdXRlSW1hZ2VVUkwoaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMKCku
c3RyaW5nKCkpCiAgICAgLCBhYnNvbHV0ZVBERlVSTChoaXRUZXN0UmVzdWx0LmFic29sdXRlUERG
VVJMKCkuc3RyaW5nKCkpCiAgICAgLCBhYnNvbHV0ZUxpbmtVUkwoaGl0VGVzdFJlc3VsdC5hYnNv
bHV0ZUxpbmtVUkwoKS5zdHJpbmcoKSkKQEAgLTUzLDYgKzUzLDcgQEAgV2ViSGl0VGVzdFJlc3Vs
dERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQm
IGhpdFRlc3QKICAgICAsIGlzVGV4dE5vZGUoaGl0VGVzdFJlc3VsdC5pbm5lck5vZGUoKSAmJiBo
aXRUZXN0UmVzdWx0LmlubmVyTm9kZSgpLT5pc1RleHROb2RlKCkpCiAgICAgLCBpc092ZXJUZXh0
SW5zaWRlRm9ybUNvbnRyb2xFbGVtZW50KGhpdFRlc3RSZXN1bHQuaXNPdmVyVGV4dEluc2lkZUZv
cm1Db250cm9sRWxlbWVudCgpKQogICAgICwgaXNEb3dubG9hZGFibGVNZWRpYShoaXRUZXN0UmVz
dWx0LmlzRG93bmxvYWRhYmxlTWVkaWEoKSkKKyAgICAsIHRvb2xUaXBUZXh0KHRvb2xUaXBUZXh0
KQogICAgICwgaW1hZ2VTaXplKDApCiB7CiB9CkBAIC0xMDgsNiArMTA5LDcgQEAgdm9pZCBXZWJI
aXRUZXN0UmVzdWx0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGlzT3ZlclRleHRJbnNpZGVGb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAgZW5j
b2RlciA8PCBpc0Rvd25sb2FkYWJsZU1lZGlhOwogICAgIGVuY29kZXIgPDwgbG9va3VwVGV4dDsK
KyAgICBlbmNvZGVyIDw8IHRvb2xUaXBUZXh0OwogICAgIGVuY29kZXIgPDwgZGljdGlvbmFyeVBv
cHVwSW5mbzsKIAogICAgIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaW1hZ2VIYW5kbGU7
CkBAIC0xNDEsNiArMTQzLDcgQEAgYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGgKICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmlzT3ZlclRleHRJbnNpZGVGb3JtQ29u
dHJvbEVsZW1lbnQpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0
YS5pc0Rvd25sb2FkYWJsZU1lZGlhKQogICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVz
dFJlc3VsdERhdGEubG9va3VwVGV4dCkKKyAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRl
c3RSZXN1bHREYXRhLnRvb2xUaXBUZXh0KQogICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0
VGVzdFJlc3VsdERhdGEuZGljdGlvbmFyeVBvcHVwSW5mbykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERh
dGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmgKaW5kZXgg
ZDNjZmVlYzk5NmEuLjBjMWVmNDEzOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhp
dFRlc3RSZXN1bHREYXRhLmgKQEAgLTYwLDYgKzYwLDcgQEAgc3RydWN0IFdlYkhpdFRlc3RSZXN1
bHREYXRhIHsKICAgICBib29sIGlzRG93bmxvYWRhYmxlTWVkaWE7CiAKICAgICBTdHJpbmcgbG9v
a3VwVGV4dDsKKyAgICBTdHJpbmcgdG9vbFRpcFRleHQ7CiAgICAgUmVmUHRyPFdlYktpdDo6U2hh
cmVkTWVtb3J5PiBpbWFnZVNoYXJlZE1lbW9yeTsKICAgICB1aW50NjRfdCBpbWFnZVNpemU7CiAK
QEAgLTc1LDcgKzc2LDcgQEAgc3RydWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gbGlua1RleHRJbmRpY2F0b3I7CiAKICAgICBXZWJI
aXRUZXN0UmVzdWx0RGF0YSgpOwotICAgIGV4cGxpY2l0IFdlYkhpdFRlc3RSZXN1bHREYXRhKGNv
bnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKKyAgICBXZWJIaXRUZXN0UmVzdWx0RGF0YShj
b25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgY29uc3QgU3RyaW5nJiB0b29sVGlwVGV4dCk7
CiAgICAgV2ViSGl0VGVzdFJlc3VsdERhdGEoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYs
IGJvb2wgaW5jbHVkZUltYWdlKTsKICAgICB+V2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDA2YzMzNzBkYzkuLjdh
ZWEyNDIxYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTUzODIsNiArNTM4Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojptb3VzZURpZE1vdmVPdmVyRWxl
bWVudChXZWJIaXRUZXN0UmVzdWx0RGF0YSYmIGhpdFRlc3RSZXN1bHRECiAgICAgbV9sYXN0TW91
c2VNb3ZlSGl0VGVzdFJlc3VsdCA9IEFQSTo6SGl0VGVzdFJlc3VsdDo6Y3JlYXRlKGhpdFRlc3RS
ZXN1bHREYXRhKTsKICAgICBhdXRvIG1vZGlmaWVycyA9IE9wdGlvblNldDxXZWJFdmVudDo6TW9k
aWZpZXI+Ojpmcm9tUmF3KG9wYXF1ZU1vZGlmaWVycyk7CiAgICAgbV91aUNsaWVudC0+bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoKnRoaXMsIGhpdFRlc3RSZXN1bHREYXRhLCBtb2RpZmllcnMsIG1f
cHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0
KCkpOworICAgIHNldFRvb2xUaXAoaGl0VGVzdFJlc3VsdERhdGEudG9vbFRpcFRleHQpOwogfQog
CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC02NDcxLDYgKzY0NzIsOSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6dGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbikKIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwKQogeworICAgIGlm
IChtX3Rvb2xUaXAgPT0gdG9vbFRpcCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5nIG9s
ZFRvb2xUaXAgPSBtX3Rvb2xUaXA7CiAgICAgbV90b29sVGlwID0gdG9vbFRpcDsKICAgICBwYWdl
Q2xpZW50KCkudG9vbFRpcENoYW5nZWQob2xkVG9vbFRpcCwgbV90b29sVGlwKTsKQEAgLTcxNjks
NyArNzE3Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFz
b24gcmVzZXRTdGF0ZVJlYXNvbikKIAogICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCi0gICAgbV90b29sVGlwID0gU3RyaW5n
KCk7CisgICAgc2V0VG9vbFRpcCh7IH0pOwogCiAgICAgbV9tYWluRnJhbWVIYXNIb3Jpem9udGFs
U2Nyb2xsYmFyID0gZmFsc2U7CiAgICAgbV9tYWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhciA9
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDVkODM5MmI5MmY2Li43ZDkwMDVlZGQ4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDQsNyArNDQsNiBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldEN1cnNvckhpZGRlblVudGlsTW91
c2VNb3Zlcyhib29sIGhpZGRlblVudGlsTW91c2VNb3ZlcykKICNlbmRpZgogICAgIFNldFN0YXR1
c1RleHQoU3RyaW5nIHN0YXR1c1RleHQpCi0gICAgU2V0VG9vbFRpcChTdHJpbmcgdG9vbFRpcCkK
ICAgICBTZXRGb2N1cyhib29sIGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVj
dGlvbikKICAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggODhhMTYyMDQ3OGYu
LjNhYmIxYzdlMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzAwLDcgKzcwMCw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxl
bWVudCYgZWxlbWVudCwgUmVuZGVyRW1iCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0LCB1bnNpZ25lZCBtb2RpZmllckZs
YWdzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MsIGNv
bnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKIHsKICAgICBSZWZQdHI8QVBJOjpP
YmplY3Q+IHVzZXJEYXRhOwogCkBAIC03MDgsMjEgKzcwOCwxMCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVz
dFJlc3VsdAogICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkubW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoJm1fcGFnZSwgaGl0VGVzdFJlc3VsdCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpN
b2RpZmllcj46OmZyb21SYXcobW9kaWZpZXJGbGFncyksIHVzZXJEYXRhKTsKIAogICAgIC8vIE5v
dGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhIHdlYkhpdFRlc3RS
ZXN1bHREYXRhKGhpdFRlc3RSZXN1bHQpOworICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhIHdlYkhp
dFRlc3RSZXN1bHREYXRhKGhpdFRlc3RSZXN1bHQsIHRvb2xUaXApOwogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHdlYkhpdFRl
c3RSZXN1bHREYXRhLCBtb2RpZmllckZsYWdzLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29s
VGlwLCBUZXh0RGlyZWN0aW9uKQotewotICAgIC8vIE9ubHkgc2VuZCBhIHRvb2wgdGlwIHRvIHRo
ZSBXZWJQcm9jZXNzIGlmIGl0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhpcyBm
dW5jdGlvbiB3YXMgY2FsbGVkLgotCi0gICAgaWYgKHRvb2xUaXAgPT0gbV9jYWNoZWRUb29sVGlw
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9jYWNoZWRUb29sVGlwID0gdG9vbFRpcDsKLQotICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRvb2xUaXAobV9jYWNoZWRU
b29sVGlwKSk7Ci19Ci0KIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJhbWUp
CiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGIzOTk1MDcxMTI4Li43MmViZWY1MGRmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtMTMzLDEwICsxMzMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50Jiwg
V2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwor
ICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgV2Vi
Q29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAKLSAgICB2b2lkIHNldFRvb2xUaXAoY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7Ci0gICAgCiAgICAgdm9pZCBw
cmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNl
UXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKQEAgLTM4Niw3ICszODQsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25zdCBXZWJD
b3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJikgZmluYWw7CiAjZW5kaWYK
IAotICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJh
bWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2Fj
aGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0YWJs
ZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDFiZTM4NGEyNmYwLi4yNzhkMjdjNzViMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTAy
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBb
UFNPTl0gVG9vbHRpcHMgZnJvbSBwcmV2aW91cyBwYWdlIHNob3duIG9uIG5ldyBwYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdG8gdGhl
IG5ldyBDaHJvbWVDbGllbnQgQVBJLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXApOgorCiAyMDE5LTExLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFJlbW92ZSBF
TkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUgYW5kIEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRU
UklCVVRFIG1hY3JvcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAzYTk5M2U4M2MwZi4uNDI1YWJmYzFh
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTgsOSArMTE4LDkgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVt
ZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5h
bDsKKyAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzLCBjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHNldFRvb2xUaXAo
Y29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQppbmRleCBhMjBjYWFlNmFmNi4uM2I1ZmI4MmUyMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTY1NiwxNCArNjU2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iCiAg
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01p
c3NpbmdQbHVnaW5CdXR0b246KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiB7CiAg
ICAgV2ViRWxlbWVudERpY3Rpb25hcnkgKmVsZW1lbnQgPSBbW1dlYkVsZW1lbnREaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aEhpdFRlc3RSZXN1bHQ6cmVzdWx0XTsKICAgICBbbV93ZWJWaWV3IF9t
b3VzZURpZE1vdmVPdmVyRWxlbWVudDplbGVtZW50IG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFn
c107CiAgICAgW2VsZW1lbnQgcmVsZWFzZV07CisgICAgc2V0VG9vbFRpcCh0b29sVGlwKTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlw
LCBUZXh0RGlyZWN0aW9uKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3Qg
U3RyaW5nJiB0b29sVGlwKQogewogICAgIE5TVmlldzxXZWJEb2N1bWVudFZpZXc+ICpkb2N1bWVu
dFZpZXcgPSBbW1ttX3dlYlZpZXcgX3NlbGVjdGVkT3JNYWluRnJhbWVdIGZyYW1lVmlld10gZG9j
dW1lbnRWaWV3XTsKICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1M
VmlldyBjbGFzc11dKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDViMWZlMGQyZjJh
Li44MjIwM2U0MTA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE5LTEyLTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKworICAgICAgICBbUFNPTl0gVG9vbHRpcHMgZnJvbSBwcmV2aW91cyBwYWdlIHNob3duIG9u
IG5ldyBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDQ3MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgdG8gdGhlIG5ldyBDaHJvbWVDbGllbnQgQVBJLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorCiAyMDE5LTEyLTAxICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1
amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIFJldHJpZXZlIGFsbCBmb2xsb3dpbmcgV01f
Q0hBUiBldmVudHMgYXQgdGhlIGJlZ2lubmluZyBvZiBwcm9jZXNzaW5nIFdNX0tFWURPV04gZXZl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDdiMjk5Y2VlMjVlLi5iMTc0MTE0NjRhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01MjksMTYgKzUyOSwxNiBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6aW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgY29uc3QK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncywg
Y29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogewogICAgIENPTVB0cjxJV2Vi
VUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKLSAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWlEZWxlZ2F0ZSkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8V2ViRWxl
bWVudFByb3BlcnR5QmFnPiBlbGVtZW50OwotICAgIGVsZW1lbnQuYWRvcHRSZWYoV2ViRWxlbWVu
dFByb3BlcnR5QmFnOjpjcmVhdGVJbnN0YW5jZShyZXN1bHQpKTsKKyAgICBpZiAoU1VDQ0VFREVE
KG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CisgICAgICAgIENPTVB0cjxX
ZWJFbGVtZW50UHJvcGVydHlCYWc+IGVsZW1lbnQ7CisgICAgICAgIGVsZW1lbnQuYWRvcHRSZWYo
V2ViRWxlbWVudFByb3BlcnR5QmFnOjpjcmVhdGVJbnN0YW5jZShyZXN1bHQpKTsKIAotICAgIHVp
RGVsZWdhdGUtPm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KG1fd2ViVmlldywgZWxlbWVudC5nZXQo
KSwgbW9kaWZpZXJGbGFncyk7CisgICAgICAgIHVpRGVsZWdhdGUtPm1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KG1fd2ViVmlldywgZWxlbWVudC5nZXQoKSwgbW9kaWZpZXJGbGFncyk7CisgICAgfQor
ICAgIG1fd2ViVmlldy0+c2V0VG9vbFRpcCh0b29sVGlwKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbikgY29uc3QKQEAgLTU3MiwxMSArNTcyLDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJF
bWIKICAgICB1aURlbGVnYXRlUHJpdmF0ZTMtPmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbihl
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3Ry
aW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQotewotICAgIG1fd2ViVmlldy0+c2V0VG9vbFRp
cCh0b29sVGlwKTsKLX0KLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFt
ZSkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDc4NzU0MzI1M2Q1Li41NzA0ZTc3MjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTEwNSwxMiArMTA1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQo
V2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBpbnRyaW5zaWNDb250ZW50c1NpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFs
OworICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2Vi
Q29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAgICAgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBs
dWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogCi0g
ICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVj
dGlvbikgZmluYWw7Ci0KICAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAK
ICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384613</attachid>
            <date>2019-12-02 05:58:59 -0800</date>
            <delta_ts>2019-12-02 08:05:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-tooltips-pson.diff</filename>
            <type>text/plain</type>
            <size>23643</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA2MjlkYmY0MWU3ZC4uZWZlZjNkNmQzNWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxOS0xMi0wMiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1BTT05dIFRvb2x0aXBzIGZyb20gcHJldmlvdXMgcGFnZSBz
aG93biBvbiBuZXcgcGFnZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjA0NzM1CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUmVtb3ZlIENocm9tZTo6c2V0VG9vbFRpcCgpIHRoYXQgaXMgYWx3YXlzIGNhbGxl
ZCBhZnRlciBDaHJvbWU6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCkgYW5kIGFkZCB0aGUKKyAg
ICAgICAgdG9vbHRpcCB0ZXh0IGFuZCBkaXJlY3Rpb24gYXMgcGFyYW1ldGVycyBvZiBDaHJvbWU6
Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KCkuCisKKyAgICAgICAgKiBsb2FkZXIvRW1wdHlDbGll
bnRzLmg6CisgICAgICAgICogcGFnZS9DaHJvbWUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2hy
b21lOjptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6CisgICAgICAgIChXZWJDb3JlOjpDaHJvbWU6
OmdldFRvb2xUaXApOgorICAgICAgICAqIHBhZ2UvQ2hyb21lLmg6CisgICAgICAgICogcGFnZS9D
aHJvbWVDbGllbnQuaDoKKyAgICAgICAgKiBwYWdlL0V2ZW50SGFuZGxlci5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpFdmVudEhhbmRsZXI6Om1vdXNlTW92ZWQpOgorCiAyMDE5LTEyLTAyICBBbnR0
aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXVtSZW5kZXIgdHJl
ZV0gU3VwcG9ydCBMRkMgaW4gTGluZUxheW91dFRyYXZlcnNhbApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0Vt
cHR5Q2xpZW50cy5oCmluZGV4IDYxN2ExNjEyNjc0Li41ZTI0ZGFkOGE1ZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvbG9hZGVyL0VtcHR5Q2xpZW50cy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9FbXB0eUNsaWVudHMuaApAQCAtMTE4LDkgKzExOCw3IEBAIGNsYXNzIEVtcHR5Q2hy
b21lQ2xpZW50IDogcHVibGljIENocm9tZUNsaWVudCB7CiAgICAgdm9pZCBjb250ZW50c1NpemVD
aGFuZ2VkKEZyYW1lJiwgY29uc3QgSW50U2l6ZSYpIGNvbnN0IGZpbmFsIHsgfQogICAgIHZvaWQg
aW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgY29uc3QgZmluYWwg
eyB9CiAKLSAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1
bHQmLCB1bnNpZ25lZCkgZmluYWwgeyB9Ci0KLSAgICB2b2lkIHNldFRvb2xUaXAoY29uc3QgU3Ry
aW5nJiwgVGV4dERpcmVjdGlvbikgZmluYWwgeyB9CisgICAgdm9pZCBtb3VzZURpZE1vdmVPdmVy
RWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiwgdW5zaWduZWQsIGNvbnN0IFN0cmluZyYsIFRl
eHREaXJlY3Rpb24pIGZpbmFsIHsgfQogCiAgICAgdm9pZCBwcmludChGcmFtZSYpIGZpbmFsIHsg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKaW5kZXggNjIzM2U0YmY1N2UuLjE1NTEyY2FmNTAyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nocm9tZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9DaHJvbWUuY3BwCkBAIC0zMjgsMTYgKzMyOCwxOSBAQCB2b2lkIENocm9tZTo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNp
Z25lZCBtb2RpZgogewogICAgIGlmIChyZXN1bHQuaW5uZXJOb2RlKCkgJiYgcmVzdWx0LmlubmVy
Tm9kZSgpLT5kb2N1bWVudCgpLmlzRE5TUHJlZmV0Y2hFbmFibGVkKCkpCiAgICAgICAgIG1fcGFn
ZS5tYWluRnJhbWUoKS5sb2FkZXIoKS5jbGllbnQoKS5wcmVmZXRjaEROUyhyZXN1bHQuYWJzb2x1
dGVMaW5rVVJMKCkuaG9zdCgpLnRvU3RyaW5nKCkpOwotICAgIG1fY2xpZW50Lm1vdXNlRGlkTW92
ZU92ZXJFbGVtZW50KHJlc3VsdCwgbW9kaWZpZXJGbGFncyk7CisKKyAgICBTdHJpbmcgdG9vbFRp
cDsKKyAgICBUZXh0RGlyZWN0aW9uIHRvb2xUaXBEaXJlY3Rpb247CisgICAgZ2V0VG9vbFRpcChy
ZXN1bHQsIHRvb2xUaXAsIHRvb2xUaXBEaXJlY3Rpb24pOworICAgIG1fY2xpZW50Lm1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50KHJlc3VsdCwgbW9kaWZpZXJGbGFncywgdG9vbFRpcCwgdG9vbFRpcERp
cmVjdGlvbik7CiAKICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Om1vdXNlRGlkTW92ZU92
ZXJFbGVtZW50KG1fcGFnZSwgcmVzdWx0LCBtb2RpZmllckZsYWdzKTsKIH0KIAotdm9pZCBDaHJv
bWU6OnNldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0KQordm9pZCBDaHJvbWU6
OmdldFRvb2xUaXAoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCBTdHJpbmcmIHRvb2xUaXAs
IFRleHREaXJlY3Rpb24mIHRvb2xUaXBEaXJlY3Rpb24pCiB7CiAgICAgLy8gRmlyc3QgcHJpb3Jp
dHkgaXMgYSBwb3RlbnRpYWwgdG9vbFRpcCByZXByZXNlbnRpbmcgYSBzcGVsbGluZyBvciBncmFt
bWFyIGVycm9yCi0gICAgVGV4dERpcmVjdGlvbiB0b29sVGlwRGlyZWN0aW9uOwotICAgIFN0cmlu
ZyB0b29sVGlwID0gcmVzdWx0LnNwZWxsaW5nVG9vbFRpcCh0b29sVGlwRGlyZWN0aW9uKTsKKyAg
ICB0b29sVGlwID0gcmVzdWx0LnNwZWxsaW5nVG9vbFRpcCh0b29sVGlwRGlyZWN0aW9uKTsKIAog
ICAgIC8vIE5leHQgcHJpb3JpdHkgaXMgYSB0b29sVGlwIGZyb20gYSBVUkwgYmVuZWF0aCB0aGUg
bW91c2UgKGlmIHByZWZlcmVuY2UgaXMgc2V0IHRvIHNob3cgdGhvc2UpLgogICAgIGlmICh0b29s
VGlwLmlzRW1wdHkoKSAmJiBtX3BhZ2Uuc2V0dGluZ3MoKS5zaG93c1VSTHNJblRvb2xUaXBzKCkp
IHsKQEAgLTM4MiwxNCArMzg1LDEyIEBAIHZvaWQgQ2hyb21lOjpzZXRUb29sVGlwKGNvbnN0IEhp
dFRlc3RSZXN1bHQmIHJlc3VsdCkKICAgICAgICAgICAgICAgICAvLyBGSVhNRTogV2Ugc2hvdWxk
IG9idGFpbiB0ZXh0IGRpcmVjdGlvbiBvZiB0b29sdGlwIGZyb20KICAgICAgICAgICAgICAgICAv
LyBDaHJvbWVDbGllbnQgb3IgcGxhdGZvcm0uIEFzIG9mIE9jdG9iZXIgMjAxMSwgYWxsIGNsaWVu
dAogICAgICAgICAgICAgICAgIC8vIGltcGxlbWVudGF0aW9ucyBkb24ndCB1c2UgdGV4dCBkaXJl
Y3Rpb24gaW5mb3JtYXRpb24gZm9yCi0gICAgICAgICAgICAgICAgLy8gQ2hyb21lQ2xpZW50Ojpz
ZXRUb29sVGlwLiBXZSdsbCB3b3JrIG9uIHRvb2x0aXAgdGV4dAorICAgICAgICAgICAgICAgIC8v
IENocm9tZUNsaWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQuIFdlJ2xsIHdvcmsgb24gdG9v
bHRpcCB0ZXh0CiAgICAgICAgICAgICAgICAgLy8gZGlyZWN0aW9uIGR1cmluZyBiaWRpIGNsZWFu
dXAgaW4gZm9ybSBpbnB1dHMuCiAgICAgICAgICAgICAgICAgdG9vbFRpcERpcmVjdGlvbiA9IFRl
eHREaXJlY3Rpb246OkxUUjsKICAgICAgICAgICAgIH0KICAgICAgICAgfQogICAgIH0KLQotICAg
IG1fY2xpZW50LnNldFRvb2xUaXAodG9vbFRpcCwgdG9vbFRpcERpcmVjdGlvbik7CiB9CiAKIGJv
b2wgQ2hyb21lOjpwcmludChGcmFtZSYgZnJhbWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZS5oIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaAppbmRleCAzOThi
NGExN2E2OS4uNjYyYmUwMGZhMGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hy
b21lLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9DaHJvbWUuaApAQCAtMTQyLDggKzE0Miw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0
VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpOwogCi0gICAgdm9pZCBzZXRUb29s
VGlwKGNvbnN0IEhpdFRlc3RSZXN1bHQmKTsKLQogICAgIFdFQkNPUkVfRVhQT1JUIGJvb2wgcHJp
bnQoRnJhbWUmKTsKIAogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgZW5hYmxlU3VkZGVuVGVybWlu
YXRpb24oKTsKQEAgLTE4OCw2ICsxODYsOCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQg
bm90aWZ5UG9wdXBPcGVuaW5nT2JzZXJ2ZXJzKCkgY29uc3Q7CiAKKyAgICB2b2lkIGdldFRvb2xU
aXAoY29uc3QgSGl0VGVzdFJlc3VsdCYsIFN0cmluZyYsIFRleHREaXJlY3Rpb24mKTsKKwogICAg
IFBhZ2UmIG1fcGFnZTsKICAgICBDaHJvbWVDbGllbnQmIG1fY2xpZW50OwogICAgIFBsYXRmb3Jt
RGlzcGxheUlEIG1fZGlzcGxheUlEIHsgMCB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGFnZS9DaHJvbWVDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgK
aW5kZXggNjkyMGE2ZDBmYTAuLjk1YzZjYjIxMzg0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0Nocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ2hyb21lQ2xp
ZW50LmgKQEAgLTIwNyw5ICsyMDcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIGJvb2wgc2hv
dWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oUmVuZGVyRW1iZWRkZWRPYmplY3Q6
OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQogICAg
IHZpcnR1YWwgdm9pZCB1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYsIFJl
bmRlckVtYmVkZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbikgY29uc3QgeyB9
Ci0gICAgdmlydHVhbCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RS
ZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSA9IDA7Ci0KLSAgICB2aXJ0dWFsIHZvaWQg
c2V0VG9vbFRpcChjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CisgICAgdmlydHVh
bCB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmLCB1bnNp
Z25lZCBtb2RpZmllckZsYWdzLCBjb25zdCBTdHJpbmcmLCBUZXh0RGlyZWN0aW9uKSA9IDA7CiAK
ICAgICB2aXJ0dWFsIHZvaWQgcHJpbnQoRnJhbWUmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZl
bnRIYW5kbGVyLmNwcAppbmRleCA2NmQ3YTFjOGNhZi4uYmQ4NzJjNjRjYjkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvRXZlbnRIYW5kbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wYWdlL0V2ZW50SGFuZGxlci5jcHAKQEAgLTE5MTEsNyArMTkxMSw2IEBAIGJvb2wgRXZlbnRI
YW5kbGVyOjptb3VzZU1vdmVkKGNvbnN0IFBsYXRmb3JtTW91c2VFdmVudCYgZXZlbnQpCiAKICAg
ICBob3ZlcmVkTm9kZS5zZXRUb05vblVzZXJBZ2VudFNoYWRvd0FuY2VzdG9yKCk7CiAgICAgcGFn
ZS0+Y2hyb21lKCkubW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoaG92ZXJlZE5vZGUsIGV2ZW50Lm1v
ZGlmaWVyRmxhZ3MoKSk7Ci0gICAgcGFnZS0+Y2hyb21lKCkuc2V0VG9vbFRpcChob3ZlcmVkTm9k
ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBiYmVhMWE4Y2RmYS4uN2Q2
NmE3MmU1NTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMTktMTItMDIgIENhcmxvcyBH
YXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgorCisgICAgICAgIFtQU09OXSBUb29s
dGlwcyBmcm9tIHByZXZpb3VzIHBhZ2Ugc2hvd24gb24gbmV3IHBhZ2UKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNDczNQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZSBwcm9ibGVtIGlzIHRoYXQgV2Vi
UGFnZSAoaW4gdGhlIHdiZSBwcm9jZXNzKSBpcyBjYWNoaW5nIHRoZSB0b29sdGlwIHRleHQgdG8g
YXZvaWQgc2VuZGluZyBJUEMgbWVzc2FnZXMgd2hlbgorICAgICAgICB0aGUgdG9vbHRpcCBkaWRu
J3QgY2hhbmdlLiBXaGVuIGEgbmV3IHdlYiBwcm9jZXNzIGlzIHVzZWQgZm9yIHRoZSBzYW1lIHdl
YiB2aWV3LCB0aGUgdG9vbHRpcCB0ZXh0IGRvZXNuJ3QgcmVhbGx5CisgICAgICAgIGNoYW5nZSAo
aXQncyBhbHdheXMgbnVsbCkgdW50aWwgYSBuZXcgb25lIGlzIHNldC4gVGhlIHNldFRvb2xUaXAg
bWVzc2FnZSBpcyBhbHdheXMgc2VudCByaWdodCBhZnRlciB0aGUKKyAgICAgICAgTW91c2VEaWRN
b3ZlT3ZlckVsZW1lbnQsIGFuZCB0aGV5IGJvdGggZGVwZW5kIG9uIHRoZSBzYW1lIGhpdCB0ZXN0
IHJlc3VsdCwgc28gd2UgY2FuIGluY2x1ZGUgdGhlIHRvb2x0aXAgdGV4dCBhcworICAgICAgICBw
YXJ0IG9mIHRoZSBXZWJIaXRUZXN0UmVzdWx0RGF0YSBzdHJ1Y3QgcGFzc2VkIHRvIE1vdXNlRGlk
TW92ZU92ZXJFbGVtZW50IGFuZCByZW1vdmUgdGhlIFNldFRvb2xUaXAKKyAgICAgICAgbWVzc2Fn
ZS4gU2luY2UgdGhlIFVJIHByb2Nlc3MgaXMgYWxyZWFkeSBjYWNoaW5nIHRoZSB0b29sdGlwLCB3
ZSBjYW4gc2ltcGx5IG5vdGlmeSB0aGUgcGFnZSBjbGllbnQgd2hlbiBpdCBjaGFuZ2VzLgorCisg
ICAgICAgICogU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKTogSW5pdGlhbGl6
ZSB0b29sVGlwVGV4dC4KKyAgICAgICAgKFdlYktpdDo6V2ViSGl0VGVzdFJlc3VsdERhdGE6OmVu
Y29kZSBjb25zdCk6IEVuY29kZSB0b29sVGlwVGV4dC4KKyAgICAgICAgKFdlYktpdDo6V2ViSGl0
VGVzdFJlc3VsdERhdGE6OmRlY29kZSk6IERlY29kZSB0b29sVGlwVGV4dC4KKyAgICAgICAgKiBT
aGFyZWQvV2ViSGl0VGVzdFJlc3VsdERhdGEuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojptb3VzZURpZE1vdmVP
dmVyRWxlbWVudCk6IENhbGwgc2V0VG9vbFRpcCgpIGFmdGVyIG5vdGlmeWluZyB0aGUgVUkgY2xp
ZW50IGFib3V0IHRoZSBtb3VzZSBtb3ZlLgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6
OnNldFRvb2xUaXApOiBSZXR1cm4gZWFybHkgaWYgdG9vbHRpcCBkaWRuJ3QgY2hhbmdlLgorICAg
ICAgICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OnJlc2V0U3RhdGUpOiBVc2Ugc2V0VG9vbFRpcCgp
IHRvIGVuc3VyZSB0aGUgcGFnZSBjbGllbnQgaXMgbm90aWZpZWQgYWJvdXQgdGhlIGNoYW5nZS4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluOiBSZW1vdmUgU2V0
VG9vbFRpcCBtZXNzYWdlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
Q2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ2hyb21lQ2xpZW50Ojptb3Vz
ZURpZE1vdmVPdmVyRWxlbWVudCk6IFBhc3MgdG9vbHRpcCB0ZXh0IHRvIFdlYkhpdFRlc3RSZXN1
bHREYXRhIGNvbnN0cnVjdG9yLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQv
V2ViQ2hyb21lQ2xpZW50Lmg6CisKIDIwMTktMTItMDIgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1BTT05dIENyYXNoIGluIE5ldHdv
cmtQcm9jZXNzUHJveHk6Om9wZW5OZXR3b3JrUHJvY2Vzc0Nvbm5lY3Rpb24KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcCBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmNwcAppbmRleCA4NjZlOTJjYzRhNi4u
YTgwNTQyYjgyMWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RS
ZXN1bHREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJIaXRUZXN0UmVzdWx0
RGF0YS5jcHAKQEAgLTM4LDcgKzM4LDcgQEAgV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRl
c3RSZXN1bHREYXRhKCkKIHsKIH0KIAotV2ViSGl0VGVzdFJlc3VsdERhdGE6OldlYkhpdFRlc3RS
ZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQpCitX
ZWJIaXRUZXN0UmVzdWx0RGF0YTo6V2ViSGl0VGVzdFJlc3VsdERhdGEoY29uc3QgV2ViQ29yZTo6
SGl0VGVzdFJlc3VsdCYgaGl0VGVzdFJlc3VsdCwgY29uc3QgU3RyaW5nJiB0b29sVGlwVGV4dCkK
ICAgICA6IGFic29sdXRlSW1hZ2VVUkwoaGl0VGVzdFJlc3VsdC5hYnNvbHV0ZUltYWdlVVJMKCku
c3RyaW5nKCkpCiAgICAgLCBhYnNvbHV0ZVBERlVSTChoaXRUZXN0UmVzdWx0LmFic29sdXRlUERG
VVJMKCkuc3RyaW5nKCkpCiAgICAgLCBhYnNvbHV0ZUxpbmtVUkwoaGl0VGVzdFJlc3VsdC5hYnNv
bHV0ZUxpbmtVUkwoKS5zdHJpbmcoKSkKQEAgLTUzLDYgKzUzLDcgQEAgV2ViSGl0VGVzdFJlc3Vs
dERhdGE6OldlYkhpdFRlc3RSZXN1bHREYXRhKGNvbnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQm
IGhpdFRlc3QKICAgICAsIGlzVGV4dE5vZGUoaGl0VGVzdFJlc3VsdC5pbm5lck5vZGUoKSAmJiBo
aXRUZXN0UmVzdWx0LmlubmVyTm9kZSgpLT5pc1RleHROb2RlKCkpCiAgICAgLCBpc092ZXJUZXh0
SW5zaWRlRm9ybUNvbnRyb2xFbGVtZW50KGhpdFRlc3RSZXN1bHQuaXNPdmVyVGV4dEluc2lkZUZv
cm1Db250cm9sRWxlbWVudCgpKQogICAgICwgaXNEb3dubG9hZGFibGVNZWRpYShoaXRUZXN0UmVz
dWx0LmlzRG93bmxvYWRhYmxlTWVkaWEoKSkKKyAgICAsIHRvb2xUaXBUZXh0KHRvb2xUaXBUZXh0
KQogICAgICwgaW1hZ2VTaXplKDApCiB7CiB9CkBAIC0xMDgsNiArMTA5LDcgQEAgdm9pZCBXZWJI
aXRUZXN0UmVzdWx0RGF0YTo6ZW5jb2RlKElQQzo6RW5jb2RlciYgZW5jb2RlcikgY29uc3QKICAg
ICBlbmNvZGVyIDw8IGlzT3ZlclRleHRJbnNpZGVGb3JtQ29udHJvbEVsZW1lbnQ7CiAgICAgZW5j
b2RlciA8PCBpc0Rvd25sb2FkYWJsZU1lZGlhOwogICAgIGVuY29kZXIgPDwgbG9va3VwVGV4dDsK
KyAgICBlbmNvZGVyIDw8IHRvb2xUaXBUZXh0OwogICAgIGVuY29kZXIgPDwgZGljdGlvbmFyeVBv
cHVwSW5mbzsKIAogICAgIFdlYktpdDo6U2hhcmVkTWVtb3J5OjpIYW5kbGUgaW1hZ2VIYW5kbGU7
CkBAIC0xNDEsNiArMTQzLDcgQEAgYm9vbCBXZWJIaXRUZXN0UmVzdWx0RGF0YTo6ZGVjb2RlKElQ
Qzo6RGVjb2RlciYgZGVjb2RlciwgV2ViSGl0VGVzdFJlc3VsdERhdGEmIGgKICAgICAgICAgfHwg
IWRlY29kZXIuZGVjb2RlKGhpdFRlc3RSZXN1bHREYXRhLmlzT3ZlclRleHRJbnNpZGVGb3JtQ29u
dHJvbEVsZW1lbnQpCiAgICAgICAgIHx8ICFkZWNvZGVyLmRlY29kZShoaXRUZXN0UmVzdWx0RGF0
YS5pc0Rvd25sb2FkYWJsZU1lZGlhKQogICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0VGVz
dFJlc3VsdERhdGEubG9va3VwVGV4dCkKKyAgICAgICAgfHwgIWRlY29kZXIuZGVjb2RlKGhpdFRl
c3RSZXN1bHREYXRhLnRvb2xUaXBUZXh0KQogICAgICAgICB8fCAhZGVjb2Rlci5kZWNvZGUoaGl0
VGVzdFJlc3VsdERhdGEuZGljdGlvbmFyeVBvcHVwSW5mbykpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViSGl0VGVzdFJlc3VsdERh
dGEuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhpdFRlc3RSZXN1bHREYXRhLmgKaW5kZXgg
ZDNjZmVlYzk5NmEuLjBjMWVmNDEzOGY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJl
ZC9XZWJIaXRUZXN0UmVzdWx0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYkhp
dFRlc3RSZXN1bHREYXRhLmgKQEAgLTYwLDYgKzYwLDcgQEAgc3RydWN0IFdlYkhpdFRlc3RSZXN1
bHREYXRhIHsKICAgICBib29sIGlzRG93bmxvYWRhYmxlTWVkaWE7CiAKICAgICBTdHJpbmcgbG9v
a3VwVGV4dDsKKyAgICBTdHJpbmcgdG9vbFRpcFRleHQ7CiAgICAgUmVmUHRyPFdlYktpdDo6U2hh
cmVkTWVtb3J5PiBpbWFnZVNoYXJlZE1lbW9yeTsKICAgICB1aW50NjRfdCBpbWFnZVNpemU7CiAK
QEAgLTc1LDcgKzc2LDcgQEAgc3RydWN0IFdlYkhpdFRlc3RSZXN1bHREYXRhIHsKICAgICBSZWZQ
dHI8V2ViQ29yZTo6VGV4dEluZGljYXRvcj4gbGlua1RleHRJbmRpY2F0b3I7CiAKICAgICBXZWJI
aXRUZXN0UmVzdWx0RGF0YSgpOwotICAgIGV4cGxpY2l0IFdlYkhpdFRlc3RSZXN1bHREYXRhKGNv
bnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmKTsKKyAgICBXZWJIaXRUZXN0UmVzdWx0RGF0YShj
b25zdCBXZWJDb3JlOjpIaXRUZXN0UmVzdWx0JiwgY29uc3QgU3RyaW5nJiB0b29sVGlwVGV4dCk7
CiAgICAgV2ViSGl0VGVzdFJlc3VsdERhdGEoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYs
IGJvb2wgaW5jbHVkZUltYWdlKTsKICAgICB+V2ViSGl0VGVzdFJlc3VsdERhdGEoKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggZDA2YzMzNzBkYzkuLjdh
ZWEyNDIxYzRkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKQEAg
LTUzODIsNiArNTM4Miw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojptb3VzZURpZE1vdmVPdmVyRWxl
bWVudChXZWJIaXRUZXN0UmVzdWx0RGF0YSYmIGhpdFRlc3RSZXN1bHRECiAgICAgbV9sYXN0TW91
c2VNb3ZlSGl0VGVzdFJlc3VsdCA9IEFQSTo6SGl0VGVzdFJlc3VsdDo6Y3JlYXRlKGhpdFRlc3RS
ZXN1bHREYXRhKTsKICAgICBhdXRvIG1vZGlmaWVycyA9IE9wdGlvblNldDxXZWJFdmVudDo6TW9k
aWZpZXI+Ojpmcm9tUmF3KG9wYXF1ZU1vZGlmaWVycyk7CiAgICAgbV91aUNsaWVudC0+bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoKnRoaXMsIGhpdFRlc3RSZXN1bHREYXRhLCBtb2RpZmllcnMsIG1f
cHJvY2Vzcy0+dHJhbnNmb3JtSGFuZGxlc1RvT2JqZWN0cyh1c2VyRGF0YS5vYmplY3QoKSkuZ2V0
KCkpOworICAgIHNldFRvb2xUaXAoaGl0VGVzdFJlc3VsdERhdGEudG9vbFRpcFRleHQpOwogfQog
CiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCkBAIC02NDcxLDYgKzY0NzIsOSBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6dGFrZUZvY3VzKHVpbnQzMl90IGRpcmVjdGlvbikKIAogdm9pZCBX
ZWJQYWdlUHJveHk6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlwKQogeworICAgIGlm
IChtX3Rvb2xUaXAgPT0gdG9vbFRpcCkKKyAgICAgICAgcmV0dXJuOworCiAgICAgU3RyaW5nIG9s
ZFRvb2xUaXAgPSBtX3Rvb2xUaXA7CiAgICAgbV90b29sVGlwID0gdG9vbFRpcDsKICAgICBwYWdl
Q2xpZW50KCkudG9vbFRpcENoYW5nZWQob2xkVG9vbFRpcCwgbV90b29sVGlwKTsKQEAgLTcxNjks
NyArNzE3Myw3IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpyZXNldFN0YXRlKFJlc2V0U3RhdGVSZWFz
b24gcmVzZXRTdGF0ZVJlYXNvbikKIAogICAgIG1fbm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmludmFsaWRhdGVSZXF1ZXN0cygpOwogCi0gICAgbV90b29sVGlwID0gU3RyaW5n
KCk7CisgICAgc2V0VG9vbFRpcCh7IH0pOwogCiAgICAgbV9tYWluRnJhbWVIYXNIb3Jpem9udGFs
U2Nyb2xsYmFyID0gZmFsc2U7CiAgICAgbV9tYWluRnJhbWVIYXNWZXJ0aWNhbFNjcm9sbGJhciA9
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3Nh
Z2VzLmluCmluZGV4IDVkODM5MmI5MmY2Li43ZDkwMDVlZGQ4NiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDQsNyArNDQsNiBA
QCBtZXNzYWdlcyAtPiBXZWJQYWdlUHJveHkgewogICAgIFNldEN1cnNvckhpZGRlblVudGlsTW91
c2VNb3Zlcyhib29sIGhpZGRlblVudGlsTW91c2VNb3ZlcykKICNlbmRpZgogICAgIFNldFN0YXR1
c1RleHQoU3RyaW5nIHN0YXR1c1RleHQpCi0gICAgU2V0VG9vbFRpcChTdHJpbmcgdG9vbFRpcCkK
ICAgICBTZXRGb2N1cyhib29sIGZvY3VzZWQpCiAgICAgVGFrZUZvY3VzKHVpbnQzMl90IGRpcmVj
dGlvbikKICAgICBGb2N1c2VkRnJhbWVDaGFuZ2VkKE9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRl
bnRpZmllcj4gZnJhbWVJRCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5jcHAKaW5kZXggODhhMTYyMDQ3OGYu
LjNhYmIxYzdlMzdjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcApAQCAtNzAwLDcgKzcwMCw3IEBA
IHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxl
bWVudCYgZWxlbWVudCwgUmVuZGVyRW1iCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJ
Tl9BUEkpCiB9CiAKLXZvaWQgV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVu
dChjb25zdCBIaXRUZXN0UmVzdWx0JiBoaXRUZXN0UmVzdWx0LCB1bnNpZ25lZCBtb2RpZmllckZs
YWdzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0
IEhpdFRlc3RSZXN1bHQmIGhpdFRlc3RSZXN1bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MsIGNv
bnN0IFN0cmluZyYgdG9vbFRpcCwgVGV4dERpcmVjdGlvbikKIHsKICAgICBSZWZQdHI8QVBJOjpP
YmplY3Q+IHVzZXJEYXRhOwogCkBAIC03MDgsMjEgKzcwOCwxMCBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgaGl0VGVz
dFJlc3VsdAogICAgIG1fcGFnZS5pbmplY3RlZEJ1bmRsZVVJQ2xpZW50KCkubW91c2VEaWRNb3Zl
T3ZlckVsZW1lbnQoJm1fcGFnZSwgaGl0VGVzdFJlc3VsdCwgT3B0aW9uU2V0PFdlYkV2ZW50OjpN
b2RpZmllcj46OmZyb21SYXcobW9kaWZpZXJGbGFncyksIHVzZXJEYXRhKTsKIAogICAgIC8vIE5v
dGlmeSB0aGUgVUlQcm9jZXNzLgotICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhIHdlYkhpdFRlc3RS
ZXN1bHREYXRhKGhpdFRlc3RSZXN1bHQpOworICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhIHdlYkhp
dFRlc3RSZXN1bHREYXRhKGhpdFRlc3RSZXN1bHQsIHRvb2xUaXApOwogICAgIG1fcGFnZS5zZW5k
KE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6Ok1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KHdlYkhpdFRl
c3RSZXN1bHREYXRhLCBtb2RpZmllckZsYWdzLCBVc2VyRGF0YShXZWJQcm9jZXNzOjpzaW5nbGV0
b24oKS50cmFuc2Zvcm1PYmplY3RzVG9IYW5kbGVzKHVzZXJEYXRhLmdldCgpKS5nZXQoKSkpKTsK
IH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29s
VGlwLCBUZXh0RGlyZWN0aW9uKQotewotICAgIC8vIE9ubHkgc2VuZCBhIHRvb2wgdGlwIHRvIHRo
ZSBXZWJQcm9jZXNzIGlmIGl0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoZSBsYXN0IHRpbWUgdGhpcyBm
dW5jdGlvbiB3YXMgY2FsbGVkLgotCi0gICAgaWYgKHRvb2xUaXAgPT0gbV9jYWNoZWRUb29sVGlw
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9jYWNoZWRUb29sVGlwID0gdG9vbFRpcDsKLQotICAg
IG1fcGFnZS5zZW5kKE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OlNldFRvb2xUaXAobV9jYWNoZWRU
b29sVGlwKSk7Ci19Ci0KIHZvaWQgV2ViQ2hyb21lQ2xpZW50OjpwcmludChGcmFtZSYgZnJhbWUp
CiB7CiAgICAgV2ViRnJhbWUqIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3JlRnJhbWUoZnJh
bWUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkNocm9tZUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCmluZGV4IGIzOTk1MDcxMTI4Li43MmViZWY1MGRmOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuaApAQCAtMTMzLDEwICsxMzMsOCBAQCBwcml2YXRlOgogICAgIGJvb2wg
c2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVuZGVyRW1i
ZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5hbDsKICAg
ICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVtZW50Jiwg
V2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29u
KSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3Qg
V2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFsOwor
ICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVzdFJl
c3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MsIGNvbnN0IFN0cmluZyYgdG9vbFRpcCwgV2Vi
Q29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAKLSAgICB2b2lkIHNldFRvb2xUaXAoY29uc3Qg
U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7Ci0gICAgCiAgICAgdm9pZCBw
cmludChXZWJDb3JlOjpGcmFtZSYpIGZpbmFsOwogCiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNl
UXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBTdHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29y
ZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKQEAgLTM4Niw3ICszODQsNiBAQCBwcml2YXRlOgog
ICAgIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJhdGlvbihjb25zdCBXZWJD
b3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJikgZmluYWw7CiAjZW5kaWYK
IAotICAgIFN0cmluZyBtX2NhY2hlZFRvb2xUaXA7CiAgICAgbXV0YWJsZSBSZWZQdHI8V2ViRnJh
bWU+IG1fY2FjaGVkRnJhbWVTZXRMYXJnZXN0RnJhbWU7CiAgICAgbXV0YWJsZSBib29sIG1fY2Fj
aGVkTWFpbkZyYW1lSGFzSG9yaXpvbnRhbFNjcm9sbGJhciB7IGZhbHNlIH07CiAgICAgbXV0YWJs
ZSBib29sIG1fY2FjaGVkTWFpbkZyYW1lSGFzVmVydGljYWxTY3JvbGxiYXIgeyBmYWxzZSB9Owpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvbWFjL1dlYlBhZ2VN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9tYWMvV2ViUGFnZU1hYy5t
bQppbmRleCBiYWU5YzE4YTA1Yi4uYzM1OGVlMmMxNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL21hYy9XZWJQYWdlTWFjLm1tCkBAIC04NjEsNyArODYxLDcg
QEAgdm9pZCBXZWJQYWdlOjpwZXJmb3JtSW1tZWRpYXRlQWN0aW9uSGl0VGVzdEF0TG9jYXRpb24o
V2ViQ29yZTo6RmxvYXRQb2ludCBsb2NhdGkKICAgICBpZiAoZWxlbWVudCkKICAgICAgICAgaW1t
ZWRpYXRlQWN0aW9uSGl0VGVzdFByZXZlbnRzRGVmYXVsdCA9IGVsZW1lbnQtPmRpc3BhdGNoTW91
c2VGb3JjZVdpbGxCZWdpbigpOwogCi0gICAgV2ViSGl0VGVzdFJlc3VsdERhdGEgaW1tZWRpYXRl
QWN0aW9uUmVzdWx0KGhpdFRlc3RSZXN1bHQpOworICAgIFdlYkhpdFRlc3RSZXN1bHREYXRhIGlt
bWVkaWF0ZUFjdGlvblJlc3VsdChoaXRUZXN0UmVzdWx0LCB7IH0pOwogCiAgICAgUmVmUHRyPFJh
bmdlPiBzZWxlY3Rpb25SYW5nZSA9IGNvcmVQYWdlKCktPmZvY3VzQ29udHJvbGxlcigpLmZvY3Vz
ZWRPck1haW5GcmFtZSgpLnNlbGVjdGlvbigpLnNlbGVjdGlvbigpLmZpcnN0UmFuZ2UoKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCmluZGV4IDFiZTM4NGEyNmYwLi4yNzhkMjdjNzViMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXRMZWdhY3kvbWFjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDE5LTEyLTAy
ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KKworICAgICAgICBb
UFNPTl0gVG9vbHRpcHMgZnJvbSBwcmV2aW91cyBwYWdlIHNob3duIG9uIG5ldyBwYWdlCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MzUKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgdG8gdGhl
IG5ldyBDaHJvbWVDbGllbnQgQVBJLgorCisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hy
b21lQ2xpZW50Lmg6CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50Lm1t
OgorICAgICAgICAoV2ViQ2hyb21lQ2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudCk6Cisg
ICAgICAgIChXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXApOgorCiAyMDE5LTExLTI4ICBGdWpp
aSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAgICAgICAgIFJlbW92ZSBF
TkFCTEVfS0VZQk9BUkRfQ09ERV9BVFRSSUJVVEUgYW5kIEVOQUJMRV9LRVlCT0FSRF9LRVlfQVRU
UklCVVRFIG1hY3JvcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS9tYWMvV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJD
b3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQuaAppbmRleCAzYTk5M2U4M2MwZi4uNDI1YWJmYzFh
OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBw
b3J0L1dlYkNocm9tZUNsaWVudC5oCkBAIC0xMTgsOSArMTE4LDkgQEAgcHJpdmF0ZToKIAogICAg
IGJvb2wgc2hvdWxkVW5hdmFpbGFibGVQbHVnaW5NZXNzYWdlQmVCdXR0b24oV2ViQ29yZTo6UmVu
ZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5UmVhc29uKSBjb25zdCBmaW5h
bDsKICAgICB2b2lkIHVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChXZWJDb3JlOjpFbGVt
ZW50JiwgV2ViQ29yZTo6UmVuZGVyRW1iZWRkZWRPYmplY3Q6OlBsdWdpblVuYXZhaWxhYmlsaXR5
UmVhc29uKSBjb25zdCBmaW5hbDsKLSAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNv
bnN0IFdlYkNvcmU6OkhpdFRlc3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzKSBmaW5h
bDsKKyAgICB2b2lkIG1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KGNvbnN0IFdlYkNvcmU6OkhpdFRl
c3RSZXN1bHQmLCB1bnNpZ25lZCBtb2RpZmllckZsYWdzLCBjb25zdCBTdHJpbmcmLCBXZWJDb3Jl
OjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKIAotICAgIHZvaWQgc2V0VG9vbFRpcChjb25zdCBTdHJp
bmcmLCBXZWJDb3JlOjpUZXh0RGlyZWN0aW9uKSBmaW5hbDsKKyAgICB2b2lkIHNldFRvb2xUaXAo
Y29uc3QgU3RyaW5nJik7CiAKICAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7
CiAgICAgdm9pZCBleGNlZWRlZERhdGFiYXNlUXVvdGEoV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBT
dHJpbmcmIGRhdGFiYXNlTmFtZSwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9t
ZUNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5tbQppbmRleCBhMjBjYWFlNmFmNi4uM2I1ZmI4MmUyMGEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXRMZWdhY3kvbWFjL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVudC5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L21hYy9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVD
bGllbnQubW0KQEAgLTY1NiwxNCArNjU2LDE1IEBAIHZvaWQgV2ViQ2hyb21lQ2xpZW50Ojp1bmF2
YWlsYWJsZVBsdWdpbkJ1dHRvbkNsaWNrZWQoRWxlbWVudCYgZWxlbWVudCwgUmVuZGVyRW1iCiAg
ICAgQ2FsbFVJRGVsZWdhdGUobV93ZWJWaWV3LCBAc2VsZWN0b3Iod2ViVmlldzpkaWRQcmVzc01p
c3NpbmdQbHVnaW5CdXR0b246KSwga2l0KCZlbGVtZW50KSk7CiB9CiAKLXZvaWQgV2ViQ2hyb21l
Q2xpZW50Ojptb3VzZURpZE1vdmVPdmVyRWxlbWVudChjb25zdCBIaXRUZXN0UmVzdWx0JiByZXN1
bHQsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpCit2b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzLCBjb25zdCBTdHJpbmcmIHRvb2xUaXAsIFRleHREaXJlY3Rpb24pCiB7CiAg
ICAgV2ViRWxlbWVudERpY3Rpb25hcnkgKmVsZW1lbnQgPSBbW1dlYkVsZW1lbnREaWN0aW9uYXJ5
IGFsbG9jXSBpbml0V2l0aEhpdFRlc3RSZXN1bHQ6cmVzdWx0XTsKICAgICBbbV93ZWJWaWV3IF9t
b3VzZURpZE1vdmVPdmVyRWxlbWVudDplbGVtZW50IG1vZGlmaWVyRmxhZ3M6bW9kaWZpZXJGbGFn
c107CiAgICAgW2VsZW1lbnQgcmVsZWFzZV07CisgICAgc2V0VG9vbFRpcCh0b29sVGlwKTsKIH0K
IAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3RyaW5nJiB0b29sVGlw
LCBUZXh0RGlyZWN0aW9uKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3Qg
U3RyaW5nJiB0b29sVGlwKQogewogICAgIE5TVmlldzxXZWJEb2N1bWVudFZpZXc+ICpkb2N1bWVu
dFZpZXcgPSBbW1ttX3dlYlZpZXcgX3NlbGVjdGVkT3JNYWluRnJhbWVdIGZyYW1lVmlld10gZG9j
dW1lbnRWaWV3XTsKICAgICBpZiAoW2RvY3VtZW50VmlldyBpc0tpbmRPZkNsYXNzOltXZWJIVE1M
VmlldyBjbGFzc11dKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nIGIvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdlTG9nCmluZGV4IDViMWZlMGQyZjJh
Li44MjIwM2U0MTA2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vQ2hhbmdl
TG9nCisrKyBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2
IEBACisyMDE5LTEyLTAyICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNv
bT4KKworICAgICAgICBbUFNPTl0gVG9vbHRpcHMgZnJvbSBwcmV2aW91cyBwYWdlIHNob3duIG9u
IG5ldyBwYWdlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMDQ3MzUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBVcGRhdGUgdG8gdGhlIG5ldyBDaHJvbWVDbGllbnQgQVBJLgorCisgICAgICAgICogV2ViQ29y
ZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmNwcDoKKyAgICAgICAgKFdlYkNocm9tZUNsaWVudDo6
bW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L1dlYkNo
cm9tZUNsaWVudC5oOgorCiAyMDE5LTEyLTAxICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1
amlpQHNvbnkuY29tPgogCiAgICAgICAgIFtXaW5dIFJldHJpZXZlIGFsbCBmb2xsb3dpbmcgV01f
Q0hBUiBldmVudHMgYXQgdGhlIGJlZ2lubmluZyBvZiBwcm9jZXNzaW5nIFdNX0tFWURPV04gZXZl
bnQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dl
YkNocm9tZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9y
dC9XZWJDaHJvbWVDbGllbnQuY3BwCmluZGV4IDdiMjk5Y2VlMjVlLi5iMTc0MTE0NjRhZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21l
Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9X
ZWJDaHJvbWVDbGllbnQuY3BwCkBAIC01MjksMTYgKzUyOSwxNiBAQCB2b2lkIFdlYkNocm9tZUNs
aWVudDo6aW50cmluc2ljQ29udGVudHNTaXplQ2hhbmdlZChjb25zdCBJbnRTaXplJikgY29uc3QK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQogCi12b2lkIFdlYkNocm9tZUNsaWVudDo6bW91c2VE
aWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgSGl0VGVzdFJlc3VsdCYgcmVzdWx0LCB1bnNpZ25lZCBt
b2RpZmllckZsYWdzKQordm9pZCBXZWJDaHJvbWVDbGllbnQ6Om1vdXNlRGlkTW92ZU92ZXJFbGVt
ZW50KGNvbnN0IEhpdFRlc3RSZXN1bHQmIHJlc3VsdCwgdW5zaWduZWQgbW9kaWZpZXJGbGFncywg
Y29uc3QgU3RyaW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQogewogICAgIENPTVB0cjxJV2Vi
VUlEZWxlZ2F0ZT4gdWlEZWxlZ2F0ZTsKLSAgICBpZiAoRkFJTEVEKG1fd2ViVmlldy0+dWlEZWxl
Z2F0ZSgmdWlEZWxlZ2F0ZSkpKQotICAgICAgICByZXR1cm47Ci0KLSAgICBDT01QdHI8V2ViRWxl
bWVudFByb3BlcnR5QmFnPiBlbGVtZW50OwotICAgIGVsZW1lbnQuYWRvcHRSZWYoV2ViRWxlbWVu
dFByb3BlcnR5QmFnOjpjcmVhdGVJbnN0YW5jZShyZXN1bHQpKTsKKyAgICBpZiAoU1VDQ0VFREVE
KG1fd2ViVmlldy0+dWlEZWxlZ2F0ZSgmdWlEZWxlZ2F0ZSkpKSB7CisgICAgICAgIENPTVB0cjxX
ZWJFbGVtZW50UHJvcGVydHlCYWc+IGVsZW1lbnQ7CisgICAgICAgIGVsZW1lbnQuYWRvcHRSZWYo
V2ViRWxlbWVudFByb3BlcnR5QmFnOjpjcmVhdGVJbnN0YW5jZShyZXN1bHQpKTsKIAotICAgIHVp
RGVsZWdhdGUtPm1vdXNlRGlkTW92ZU92ZXJFbGVtZW50KG1fd2ViVmlldywgZWxlbWVudC5nZXQo
KSwgbW9kaWZpZXJGbGFncyk7CisgICAgICAgIHVpRGVsZWdhdGUtPm1vdXNlRGlkTW92ZU92ZXJF
bGVtZW50KG1fd2ViVmlldywgZWxlbWVudC5nZXQoKSwgbW9kaWZpZXJGbGFncyk7CisgICAgfQor
ICAgIG1fd2ViVmlldy0+c2V0VG9vbFRpcCh0b29sVGlwKTsKIH0KIAogYm9vbCBXZWJDaHJvbWVD
bGllbnQ6OnNob3VsZFVuYXZhaWxhYmxlUGx1Z2luTWVzc2FnZUJlQnV0dG9uKFJlbmRlckVtYmVk
ZGVkT2JqZWN0OjpQbHVnaW5VbmF2YWlsYWJpbGl0eVJlYXNvbiBwbHVnaW5VbmF2YWlsYWJpbGl0
eVJlYXNvbikgY29uc3QKQEAgLTU3MiwxMSArNTcyLDYgQEAgdm9pZCBXZWJDaHJvbWVDbGllbnQ6
OnVuYXZhaWxhYmxlUGx1Z2luQnV0dG9uQ2xpY2tlZChFbGVtZW50JiBlbGVtZW50LCBSZW5kZXJF
bWIKICAgICB1aURlbGVnYXRlUHJpdmF0ZTMtPmRpZFByZXNzTWlzc2luZ1BsdWdpbkJ1dHRvbihl
LmdldCgpKTsKIH0KIAotdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnNldFRvb2xUaXAoY29uc3QgU3Ry
aW5nJiB0b29sVGlwLCBUZXh0RGlyZWN0aW9uKQotewotICAgIG1fd2ViVmlldy0+c2V0VG9vbFRp
cCh0b29sVGlwKTsKLX0KLQogdm9pZCBXZWJDaHJvbWVDbGllbnQ6OnByaW50KEZyYW1lJiBmcmFt
ZSkKIHsKICAgICBDT01QdHI8SVdlYlVJRGVsZWdhdGU+IHVpRGVsZWdhdGU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJDb3JlU3VwcG9ydC9XZWJDaHJvbWVDbGllbnQu
aCBiL1NvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYkNvcmVTdXBwb3J0L1dlYkNocm9tZUNsaWVu
dC5oCmluZGV4IDc4NzU0MzI1M2Q1Li41NzA0ZTc3MjcxYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKKysrIGIvU291
cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViQ29yZVN1cHBvcnQvV2ViQ2hyb21lQ2xpZW50LmgKQEAg
LTEwNSwxMiArMTA1LDEwIEBAIHB1YmxpYzoKICAgICB2b2lkIGNvbnRlbnRzU2l6ZUNoYW5nZWQo
V2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpJbnRTaXplJikgY29uc3QgZmluYWw7CiAg
ICAgdm9pZCBpbnRyaW5zaWNDb250ZW50c1NpemVDaGFuZ2VkKGNvbnN0IFdlYkNvcmU6OkludFNp
emUmKSBjb25zdCBmaW5hbDsKIAotICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29u
c3QgV2ViQ29yZTo6SGl0VGVzdFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MpIGZpbmFs
OworICAgIHZvaWQgbW91c2VEaWRNb3ZlT3ZlckVsZW1lbnQoY29uc3QgV2ViQ29yZTo6SGl0VGVz
dFJlc3VsdCYsIHVuc2lnbmVkIG1vZGlmaWVyRmxhZ3MsIGNvbnN0IFdURjo6U3RyaW5nJiwgV2Vi
Q29yZTo6VGV4dERpcmVjdGlvbikgZmluYWw7CiAgICAgYm9vbCBzaG91bGRVbmF2YWlsYWJsZVBs
dWdpbk1lc3NhZ2VCZUJ1dHRvbihXZWJDb3JlOjpSZW5kZXJFbWJlZGRlZE9iamVjdDo6UGx1Z2lu
VW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogICAgIHZvaWQgdW5hdmFpbGFibGVQ
bHVnaW5CdXR0b25DbGlja2VkKFdlYkNvcmU6OkVsZW1lbnQmLCBXZWJDb3JlOjpSZW5kZXJFbWJl
ZGRlZE9iamVjdDo6UGx1Z2luVW5hdmFpbGFiaWxpdHlSZWFzb24pIGNvbnN0IGZpbmFsOwogCi0g
ICAgdm9pZCBzZXRUb29sVGlwKGNvbnN0IFdURjo6U3RyaW5nJiwgV2ViQ29yZTo6VGV4dERpcmVj
dGlvbikgZmluYWw7Ci0KICAgICB2b2lkIHByaW50KFdlYkNvcmU6OkZyYW1lJikgZmluYWw7CiAK
ICAgICB2b2lkIGV4Y2VlZGVkRGF0YWJhc2VRdW90YShXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdU
Rjo6U3RyaW5nJiwgV2ViQ29yZTo6RGF0YWJhc2VEZXRhaWxzKSBmaW5hbDsK
</data>
<flag name="review"
          id="400401"
          type_id="1"
          status="+"
          setter="cdumez"
    />
          </attachment>
      

    </bug>

</bugzilla>