<?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>194979</bug_id>
          
          <creation_ts>2019-02-23 13:06:38 -0800</creation_ts>
          <short_desc>[GTK][WPE] Enable PSON</short_desc>
          <delta_ts>2019-06-06 22:43:01 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=195005</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=195270</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>195270</dependson>
    
    <dependson>195273</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Michael Catanzaro">mcatanzaro</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>agomez</cc>
    
    <cc>aperez</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>ltilve</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>zan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1509388</commentid>
    <comment_count>0</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-23 13:06:38 -0800</bug_when>
    <thetext>Enable PSON. Seems to work. YOLO, etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509389</commentid>
    <comment_count>1</comment_count>
      <attachid>362832</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-23 13:07:55 -0800</bug_when>
    <thetext>Created attachment 362832
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509459</commentid>
    <comment_count>2</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-02-24 06:40:21 -0800</bug_when>
    <thetext>WPE output locks up on a backwards navigation.

It&apos;d be nice to enable this by default, but there has to be a way to override it at runtime.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509487</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-24 14:14:53 -0800</bug_when>
    <thetext>Hmm, back/forward works in GTK MiniBrowser.

We don&apos;t want to provide a way to disable it because it&apos;s required for Spectre mitigation. If it doesn&apos;t work yet, we should just not enable it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509488</commentid>
    <comment_count>4</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-24 14:25:56 -0800</bug_when>
    <thetext>Looks like you may need some fixes specific to your ports. PSON has been enabled on macOS and iOS by default for a while now and works as expected although we are still ironing out a few (minor) quirks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509617</commentid>
    <comment_count>5</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-25 06:47:44 -0800</bug_when>
    <thetext>(In reply to Chris Dumez from comment #4)
&gt; Looks like you may need some fixes specific to your ports. PSON has been
&gt; enabled on macOS and iOS by default for a while now and works as expected
&gt; although we are still ironing out a few (minor) quirks.

Yeah, I don&apos;t have time to look into it soon though, so we can either enable it only for GTK and not for WPE, or just not do it yet.

Let&apos;s try the former, actually, and see if anyone tries problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509618</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-25 06:48:15 -0800</bug_when>
    <thetext>(Note: it&apos;s expected that something will be wrong, but at least back/forward does work for me.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509625</commentid>
    <comment_count>7</comment_count>
      <attachid>362902</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-25 07:23:00 -0800</bug_when>
    <thetext>Created attachment 362902
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509644</commentid>
    <comment_count>8</comment_count>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2019-02-25 08:58:57 -0800</bug_when>
    <thetext>If you can, please open a WPE-specific bug for this. Otherwise I will when I get to it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509659</commentid>
    <comment_count>9</comment_count>
      <attachid>362902</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-25 10:04:13 -0800</bug_when>
    <thetext>Comment on attachment 362902
Patch

Clearing flags on attachment: 362902

Committed r242045: &lt;https://trac.webkit.org/changeset/242045&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509660</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-25 10:04:15 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509750</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-02-25 12:44:14 -0800</bug_when>
    <thetext>Before:

Failed 2 jsc tests failed 25 failures 2 new passes 4 flakes api tests: 7 failures, 3 crashes, 13 timeouts webdriver-test 48 failures, 7 new passes

After:

Failed 1 jsc test failed 26 failures 3 new passes 7 flakes api tests: 7 failures, 3 crashes, 12 timeouts webdriver-test 49 failures, 7 new passes

👍</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512118</commentid>
    <comment_count>12</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-03-04 03:58:48 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #11)
&gt; Before:
&gt; 
&gt; Failed 2 jsc tests failed 25 failures 2 new passes 4 flakes api tests: 7
&gt; failures, 3 crashes, 13 timeouts webdriver-test 48 failures, 7 new passes
&gt; 
&gt; After:
&gt; 
&gt; Failed 1 jsc test failed 26 failures 3 new passes 7 flakes api tests: 7
&gt; failures, 3 crashes, 12 timeouts webdriver-test 49 failures, 7 new passes
&gt; 
&gt; 👍

Layout tests are not a good way to test PSON, since there aren&apos;t many cross-site navigations. We are not yet ready to enable PSON.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512120</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-03-04 03:59:31 -0800</bug_when>
    <thetext>Re-opened since this is blocked by bug 195273</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512151</commentid>
    <comment_count>14</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-04 07:14:34 -0800</bug_when>
    <thetext>Hm, I indeed never tested compositing mode. I only tested webkitgtk.org in MiniBrowser. I tested several other sites, but in Epiphany, without compositing mode. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1512152</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-03-04 07:15:47 -0800</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #14)
&gt; I only tested webkitgtk.org in MiniBrowser.

And yeah, in retrospect that sounds pretty dumb, since there&apos;s no cross-site navigations involved there.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542318</commentid>
    <comment_count>16</comment_count>
      <attachid>371478</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-06 00:37:10 -0700</bug_when>
    <thetext>Created attachment 371478
Patch

Let&apos;s try again now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542321</commentid>
    <comment_count>17</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-06 00:48:00 -0700</bug_when>
    <thetext>Chris, do you plan to keep the WebProcessPool configuration option to enable/disable and/or the web preference? I wonder if we should add API to allow disabling PSON and how. What about the other configurations? alwaysKeepAndReuseSwappedProcesses is only for testing/debugging, right? and processSwapsOnWindowOpenWithOpener? I think we always use related views for window.open().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542323</commentid>
    <comment_count>18</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-06 00:53:02 -0700</bug_when>
    <thetext>*** Bug 195005 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542349</commentid>
    <comment_count>19</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-06 04:34:08 -0700</bug_when>
    <thetext>Committed r246148: &lt;https://trac.webkit.org/changeset/246148&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542369</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2019-06-06 06:24:19 -0700</bug_when>
    <thetext>Great work.

(In reply to Carlos Garcia Campos from comment #17)
&gt; Chris, do you plan to keep the WebProcessPool configuration option to
&gt; enable/disable and/or the web preference? I wonder if we should add API to
&gt; allow disabling PSON and how. What about the other configurations?
&gt; alwaysKeepAndReuseSwappedProcesses is only for testing/debugging, right? and
&gt; processSwapsOnWindowOpenWithOpener? I think we always use related views for
&gt; window.open().

I don&apos;t think we should expose any of these.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542412</commentid>
    <comment_count>21</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-06-06 08:18:31 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #17)
&gt; Chris, do you plan to keep the WebProcessPool configuration option to
&gt; enable/disable and/or the web preference? I wonder if we should add API to
&gt; allow disabling PSON and how. 

Ideally, PSON becomes de default everywhere and there is no reason to disable it. I do not think we should expose API for this. Apple currently has private API (SPI) but hopefully it will get dropped.

&gt; What about the other configurations?
&gt; alwaysKeepAndReuseSwappedProcesses is only for testing/debugging, right?

Right, solely for debugging and I suspect we&apos;ll drop support for this soon because we&apos;re not using it and it has some maintenance cost.

&gt; and
&gt; processSwapsOnWindowOpenWithOpener? I think we always use related views for
&gt; window.open().

This is an experiment at this point and does not work yet. No need to expose this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1542732</commentid>
    <comment_count>22</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2019-06-06 22:43:01 -0700</bug_when>
    <thetext>Perfect, thanks Chris!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362832</attachid>
            <date>2019-02-23 13:07:55 -0800</date>
            <delta_ts>2019-02-25 07:22:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194979-20190223150754.patch</filename>
            <type>text/plain</type>
            <size>1436</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxOTk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGYxNWYyNjY5ZTUzY2RhMTMw
YWQwMmI2ZjQ0ZGJjNjM3Mjc0ZmQzMGEuLjg2MzllM2QzMjk0MzYxZjJmNDQwODZkNmQ2MzAzMjlj
MWU1NjhmMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTktMDItMjMgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtXUEVdW0dUS10g
RW5hYmxlIFBTT04KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NDk3OQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEVuYWJsZSBQU09OIGZvciBXUEUgYW5kIEdUSy4KKworICAgICAgICBJdCBpcyBleHBlY3Rl
ZCB0aGF0IHRoaXMgbWF5IGludHJvZHVjZSB1bmV4cGVjdGVkIHJlZ3Jlc3Npb25zLCBzbyBpdCdz
IGFwcHJvcHJpYXRlIHRvIGRvCisgICAgICAgIHRoaXMgYXQgdGhlIHN0YXJ0IG9mIGEgbmV3IHJl
bGVhc2UgY3ljbGUuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFs
dWVzLmg6CisKIDIwMTktMDItMjMgIEtlaXRoIE1pbGxlciAgPGtlaXRoX21pbGxlckBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIG5ldyBtYWMgdGFyZ2V0IG51bWJlcnMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgKaW5kZXggNmU4MjE3
M2IwY2IyY2JlOTE1MzEwNDFkZWMyNzA4YzUwZGZiZmU4My4uOTcyMjhlZWRjOGZlYjg5MjAxNDkx
YWY2MWIwMjg1NWRhYmI2NDFhNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVzLmgKQEAgLTIxNCw3ICsyMTQsNyBAQAogI2RlZmluZSBE
RUZBVUxUX1BPSU5URVJfRVZFTlRTX0VOQUJMRUQgZmFsc2UKICNlbmRpZgogCi0jaWYgUExBVEZP
Uk0oTUFDKSB8fCBQTEFURk9STShJT1MpCisjaWYgUExBVEZPUk0oTUFDKSB8fCBQTEFURk9STShJ
T1MpIHx8IFBMQVRGT1JNKFdQRSkgfHwgUExBVEZPUk0oR1RLKQogI2RlZmluZSBERUZBVUxUX1BS
T0NFU1NfU1dBUF9PTl9DUk9TU19TSVRFX05BVklHQVRJT05fRU5BQkxFRCB0cnVlCiAjZWxzZQog
I2RlZmluZSBERUZBVUxUX1BST0NFU1NfU1dBUF9PTl9DUk9TU19TSVRFX05BVklHQVRJT05fRU5B
QkxFRCBmYWxzZQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362902</attachid>
            <date>2019-02-25 07:23:00 -0800</date>
            <delta_ts>2019-06-06 00:37:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194979-20190225092259.patch</filename>
            <type>text/plain</type>
            <size>1378</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQyMDM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGU1Njg4NGJmNjFiNTUxMGQ5
YjdjODcyZGJjNDg1MjYwMTM5ODllOWMuLjI5MjFiYTU5ZWM4NzFiMTlhYmIyZGYwOTUyMGQ0M2Vl
NmY5N2ZkNDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDItMjUgIE1pY2hhZWwg
Q2F0YW56YXJvICA8bWNhdGFuemFyb0BpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEVuYWJs
ZSBQU09OCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0x
OTQ5NzkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJ
dCBpcyBleHBlY3RlZCB0aGF0IHRoaXMgbWF5IGludHJvZHVjZSB1bmV4cGVjdGVkIHJlZ3Jlc3Np
b25zLCBzbyBpdCdzIGFwcHJvcHJpYXRlIHRvIGRvCisgICAgICAgIHRoaXMgYXQgdGhlIHN0YXJ0
IG9mIGEgbmV3IHJlbGVhc2UgY3ljbGUuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXNEZWZhdWx0VmFsdWVzLmg6CisKIDIwMTktMDItMjQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFw
cGxlLmNvbT4KIAogICAgICAgICBJbnRyb2R1Y2UgQ29udGVudENoYW5nZU9ic2VydmVyIGNsYXNz
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRW
YWx1ZXMuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVl
cy5oCmluZGV4IDZlODIxNzNiMGNiMmNiZTkxNTMxMDQxZGVjMjcwOGM1MGRmYmZlODMuLjI4ZDM3
N2I3OTIzNGNkNmQzZWFlZDFlY2M1ODBmNzQ4ZDcyZmU5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0yMTQsNyArMjE0
LDcgQEAKICNkZWZpbmUgREVGQVVMVF9QT0lOVEVSX0VWRU5UU19FTkFCTEVEIGZhbHNlCiAjZW5k
aWYKIAotI2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1B
QykgfHwgUExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspCiAjZGVmaW5lIERFRkFVTFRfUFJP
Q0VTU19TV0FQX09OX0NST1NTX1NJVEVfTkFWSUdBVElPTl9FTkFCTEVEIHRydWUKICNlbHNlCiAj
ZGVmaW5lIERFRkFVTFRfUFJPQ0VTU19TV0FQX09OX0NST1NTX1NJVEVfTkFWSUdBVElPTl9FTkFC
TEVEIGZhbHNlCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>371478</attachid>
            <date>2019-06-06 00:37:10 -0700</date>
            <delta_ts>2019-06-06 04:08:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk-gtk-wpe-pson.diff</filename>
            <type>text/plain</type>
            <size>19069</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggZDI2MzBhZmFjZWIuLmIxZGMxMzRkZDkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsx
LDEyIEBACisyMDE5LTA2LTA2ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXVtXUEVdIEVuYWJsZSBQU09OCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ5NzkKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlc0Rl
ZmF1bHRWYWx1ZXMuaDoKKwogMjAxOS0wNi0wNSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2Fy
Y2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTihyMjQzMDk0KTogW0dUS11bV1BF
XSBTdGFsZSBjb250ZW50IGFmdGVyIHJlc3RvcmluZyB0aGUgd2ViIHZpZXcgc2Vzc2lvbgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXNEZWZhdWx0VmFsdWVz
LmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlc0RlZmF1bHRWYWx1ZXMuaApp
bmRleCAxMTg1N2Q4ZWE2Ny4uYWI3YzQyY2Y4M2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzRGVmYXVsdFZhbHVlcy5oCkBAIC0yMjQsNyArMjI0LDcgQEAK
ICNkZWZpbmUgREVGQVVMVF9QT0lOVEVSX0VWRU5UU19FTkFCTEVEIGZhbHNlCiAjZW5kaWYKIAot
I2lmIFBMQVRGT1JNKE1BQykgfHwgUExBVEZPUk0oSU9TKQorI2lmIFBMQVRGT1JNKE1BQykgfHwg
UExBVEZPUk0oSU9TKSB8fCBQTEFURk9STShHVEspIHx8IFBMQVRGT1JNKFdQRSkKICNkZWZpbmUg
REVGQVVMVF9QUk9DRVNTX1NXQVBfT05fQ1JPU1NfU0lURV9OQVZJR0FUSU9OX0VOQUJMRUQgdHJ1
ZQogI2Vsc2UKICNkZWZpbmUgREVGQVVMVF9QUk9DRVNTX1NXQVBfT05fQ1JPU1NfU0lURV9OQVZJ
R0FUSU9OX0VOQUJMRUQgZmFsc2UKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xz
L0NoYW5nZUxvZwppbmRleCAwYjMzM2VhZjZlMS4uNTY2ZmM3NGIwNWMgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
OS0wNi0wNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKKyAg
ICAgICAgW0dUS11bV1BFXSBFbmFibGUgUFNPTgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTk0OTc5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIFdQRUJhY2tlbmQtZmRvIHBhdGNoIHJlcXVpcmVkIGZv
ciBQU09OIHRvIHdvcmsuIEl0IGNhbiBiZSByZW1vdmVkIG9uY2Ugd2UgaGF2ZSBhIG5ldyB2ZXJz
aW9uIHRvIGRlcGVuZCBvbi4KKworICAgICAgICAqIGd0ay9qaGJ1aWxkLm1vZHVsZXM6CisgICAg
ICAgICogZ3RrL3BhdGNoZXMvd3BlYmFja2VuZC1mZG8tSGFuZGxlLXRoZS1jYXNlLW9mLW5ldy10
YXJnZXQtY3JlYXRlZC1mb3ItdGhlLXNhbWUtdi5wYXRjaDogQWRkZWQuCisgICAgICAgICogd3Bl
L2poYnVpbGQubW9kdWxlczoKKyAgICAgICAgKiB3cGUvcGF0Y2hlcy93cGViYWNrZW5kLWZkby1I
YW5kbGUtdGhlLWNhc2Utb2YtbmV3LXRhcmdldC1jcmVhdGVkLWZvci10aGUtc2FtZS12LnBhdGNo
OiBBZGRlZC4KKwogMjAxOS0wNi0wNSAgQW5keSBFc3RlcyAgPGFlc3Rlc0BhcHBsZS5jb20+CiAK
ICAgICAgICAgW21hY09TXSBTdG9wIGNhbGxpbmcgLVtOU0RyYWdnaW5nSXRlbSBzZXRJdGVtOl0K
ZGlmZiAtLWdpdCBhL1Rvb2xzL2d0ay9qaGJ1aWxkLm1vZHVsZXMgYi9Ub29scy9ndGsvamhidWls
ZC5tb2R1bGVzCmluZGV4IDM3OGE4NWNiZDAwLi5mMWQ0YjlkN2EzMyAxMDA2NDQKLS0tIGEvVG9v
bHMvZ3RrL2poYnVpbGQubW9kdWxlcworKysgYi9Ub29scy9ndGsvamhidWlsZC5tb2R1bGVzCkBA
IC00NzgsNyArNDc4LDEwIEBACiAgICAgICA8ZGVwIHBhY2thZ2U9ImdsaWIiLz4KICAgICA8L2Rl
cGVuZGVuY2llcz4KICAgICA8YnJhbmNoIHJlcG89IndwZXdlYmtpdCIgbW9kdWxlPSJ3cGViYWNr
ZW5kLWZkby0xLjMuMC50YXIueHoiIHZlcnNpb249IjEuMy4wIgotICAgICAgICAgICAgaGFzaD0i
c2hhMjU2OmZlZDlhYjI5ZjVkNTNjZjQ2NTE4OGRhODBkMDE0ZjNhYTA2N2M3NzcwNGY4NTA4YzZi
ZDE3OTcxZmRlZDM1OWQiLz4KKyAgICAgICAgICAgIGhhc2g9InNoYTI1NjpmZWQ5YWIyOWY1ZDUz
Y2Y0NjUxODhkYTgwZDAxNGYzYWEwNjdjNzc3MDRmODUwOGM2YmQxNzk3MWZkZWQzNTlkIj4KKyAg
ICAgIDwhLS0gUmVtb3ZlIHRoaXMgd2hlbiB1cGRhdGluZyB0byAxLjMuMSAtLT4KKyAgICAgIDxw
YXRjaCBmaWxlPSJ3cGViYWNrZW5kLWZkby1IYW5kbGUtdGhlLWNhc2Utb2YtbmV3LXRhcmdldC1j
cmVhdGVkLWZvci10aGUtc2FtZS12LnBhdGNoIiBzdHJpcD0iMSIvPgorICAgIDwvYnJhbmNoPgog
ICA8L2NtYWtlPgogCiAgIDwhLS0gRGVwZW5kZW5jaWVzIGxpc3RlZCBiZWxvdyB0aGlzIHBvaW50
IGFyZSBub3QgdGhvdWdodCB0byBhZmZlY3QgdGVzdCByZXN1bHRzLCBhbmQgYXJlIG9ubHkKZGlm
ZiAtLWdpdCBhL1Rvb2xzL2d0ay9wYXRjaGVzL3dwZWJhY2tlbmQtZmRvLUhhbmRsZS10aGUtY2Fz
ZS1vZi1uZXctdGFyZ2V0LWNyZWF0ZWQtZm9yLXRoZS1zYW1lLXYucGF0Y2ggYi9Ub29scy9ndGsv
cGF0Y2hlcy93cGViYWNrZW5kLWZkby1IYW5kbGUtdGhlLWNhc2Utb2YtbmV3LXRhcmdldC1jcmVh
dGVkLWZvci10aGUtc2FtZS12LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwLi40NmE2MTg5Yjk1OAotLS0gL2Rldi9udWxsCisrKyBiL1Rvb2xzL2d0ay9wYXRjaGVz
L3dwZWJhY2tlbmQtZmRvLUhhbmRsZS10aGUtY2FzZS1vZi1uZXctdGFyZ2V0LWNyZWF0ZWQtZm9y
LXRoZS1zYW1lLXYucGF0Y2gKQEAgLTAsMCArMSwxOTggQEAKK0Zyb20gMTNjYWU5NWEzYjM4ODk5
ZjhmZDVmYzM5YTVkMjVmY2M5NTAwZTA5YSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206
IENhcmxvcyBHYXJjaWEgQ2FtcG9zIDxjZ2FyY2lhQGlnYWxpYS5jb20+CitEYXRlOiBUaHUsIDMw
IE1heSAyMDE5IDE0OjA0OjI5ICswMjAwCitTdWJqZWN0OiBbUEFUQ0hdIEhhbmRsZSB0aGUgY2Fz
ZSBvZiBuZXcgdGFyZ2V0IGNyZWF0ZWQgZm9yIHRoZSBzYW1lIHZpZXcKKyBiYWNrZW5kCisKK1Ro
ZSBjbGllbnQgY2FuIHJlbW92ZSBhIHRhcmdldCBhbmQgY3JlYXRlIGEgbmV3IG9uZSBmb3IgdGhl
IHNhbWUgdmlldworYmFja2VuZC4gSW4gdGhhdCBjYXNlIHdlIG5lZWQgdG8gdW5yZWdpc3RlciB0
aGUgY3VycmVudCB2aWV3IGJhY2tlbmQgaW4KK3RoZSB3YXlsYW5kIGNvbXBvc2l0b3IgYmVmb3Jl
IHJlZ2lzdGVyaW5nIHRoZSBuZXcgb25lLiBUaGlzIHBhdGNoIHJlbmFtZXMKK1dTOjpJbnN0YW5j
ZTo6Y3JlYXRlU3VyZmFjZSBhcyByZWdpc3RlclN1cmZhY2UgdG8gY2xhcmlmeSB0aGF0IGl0J3Mg
bm90CitjcmVhdGluZyBhIG5ldyBzdXJmYWNlIGJ1dCByZWdpc3RlcmluZyBhIG5ldyBvbmUgZm9y
IHRoZSBnaXZlbiBpZC4gQWxzbworVmlld0JhY2tlbmQ6Om1faWQgaGFzIGJlZW4gcmVuYW1lZCBh
cyBtX3N1cmZhY2VJZCB0byBjbGFyaWZ5IHRoYXQncyBub3QKK3RoZSBiYWNrZW5kIGlkZW50aWZp
ZXIsIGJ1dCB0aGUgY3VycmVudCBzdXJmYWNlIGlkZW50aWZpZXIuCistLS0KKyBzcmMvcmVuZGVy
ZXItYmFja2VuZC1lZ2wuY3BwICAgICAgICAgICAgfCAgOCArKysrKy0KKyBzcmMvdmlldy1iYWNr
ZW5kLWV4cG9ydGFibGUtcHJpdmF0ZS5jcHAgfCAzNSArKysrKysrKysrKysrKysrKysrKystLS0t
Cisgc3JjL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLXByaXZhdGUuaCAgIHwgIDUgKysrLQorIHNy
Yy93cy5jcHAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDEyICsrKystLS0tLQorIHNy
Yy93cy5oICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyICstCisgNSBmaWxlcyBj
aGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAxNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh
L3NyYy9yZW5kZXJlci1iYWNrZW5kLWVnbC5jcHAgYi9zcmMvcmVuZGVyZXItYmFja2VuZC1lZ2wu
Y3BwCitpbmRleCA3MjZkNjFjLi43ZTExZDVlIDEwMDY0NAorLS0tIGEvc3JjL3JlbmRlcmVyLWJh
Y2tlbmQtZWdsLmNwcAorKysrIGIvc3JjL3JlbmRlcmVyLWJhY2tlbmQtZWdsLmNwcAorQEAgLTEz
OSw2ICsxMzksMTEgQEAgcHVibGljOgorIAorICAgICB+VGFyZ2V0KCkKKyAgICAgeworKyAgICAg
ICAgaWYgKG1fd2wud3BlQnJpZGdlSWQgJiYgbV9nbGliLnNvY2tldCkgeworKyAgICAgICAgICAg
IHVpbnQzMl90IG1lc3NhZ2VbXSA9IHsgMHg0MywgbV93bC53cGVCcmlkZ2VJZCB9OworKyAgICAg
ICAgICAgIGdfc29ja2V0X3NlbmQobV9nbGliLnNvY2tldCwgcmVpbnRlcnByZXRfY2FzdDxnY2hh
cio+KG1lc3NhZ2UpLCAyICogc2l6ZW9mKHVpbnQzMl90KSwgbnVsbHB0ciwgbnVsbHB0cik7Cisr
ICAgICAgICB9CisrCisgICAgICAgICBnX2NsZWFyX3BvaW50ZXIoJm1fd2wuZnJhbWVDYWxsYmFj
aywgd2xfY2FsbGJhY2tfZGVzdHJveSk7CisgICAgICAgICBnX2NsZWFyX3BvaW50ZXIoJm1fd2wu
d2luZG93LCB3bF9lZ2xfd2luZG93X2Rlc3Ryb3kpOworICAgICAgICAgZ19jbGVhcl9wb2ludGVy
KCZtX3dsLnN1cmZhY2UsIHdsX3N1cmZhY2VfZGVzdHJveSk7CitAQCAtMjIzLDYgKzIyOCw3IEBA
IHB1YmxpYzoKKyAKKyAgICAgdm9pZCBicmlkZ2VDb25uZWN0ZWQodWludDMyX3QgYnJpZGdlSUQp
CisgICAgIHsKKysgICAgICAgIG1fd2wud3BlQnJpZGdlSWQgPSBicmlkZ2VJRDsKKyAgICAgICAg
IHVpbnQzMl90IG1lc3NhZ2VbXSA9IHsgMHg0MiwgYnJpZGdlSUQgfTsKKyAgICAgICAgIGlmICht
X2dsaWIuc29ja2V0KQorICAgICAgICAgICAgIGdfc29ja2V0X3NlbmQobV9nbGliLnNvY2tldCwg
cmVpbnRlcnByZXRfY2FzdDxnY2hhcio+KG1lc3NhZ2UpLCAyICogc2l6ZW9mKHVpbnQzMl90KSwg
bnVsbHB0ciwgbnVsbHB0cik7CitAQCAtMjQ2LDExICsyNTIsMTEgQEAgcHJpdmF0ZToKKyAgICAg
fSBtX2dsaWI7CisgCisgICAgIHN0cnVjdCB7CistICAgICAgICBzdHJ1Y3Qgd2xfZGlzcGxheSog
ZGlzcGxheVdyYXBwZXIgeyBudWxscHRyIH07CisgICAgICAgICBzdHJ1Y3Qgd2xfZXZlbnRfcXVl
dWUqIGV2ZW50UXVldWUgeyBudWxscHRyIH07CisgICAgICAgICBzdHJ1Y3Qgd2xfcmVnaXN0cnkq
IHJlZ2lzdHJ5IHsgbnVsbHB0ciB9OworICAgICAgICAgc3RydWN0IHdsX2NvbXBvc2l0b3IqIGNv
bXBvc2l0b3IgeyBudWxscHRyIH07CisgICAgICAgICBzdHJ1Y3Qgd3BlX2JyaWRnZSogd3BlQnJp
ZGdlIHsgbnVsbHB0ciB9OworKyAgICAgICAgdWludDMyX3Qgd3BlQnJpZGdlSWQgeyAwIH07Cisg
CisgICAgICAgICBzdHJ1Y3Qgd2xfc3VyZmFjZSogc3VyZmFjZSB7IG51bGxwdHIgfTsKKyAgICAg
ICAgIHN0cnVjdCB3bF9lZ2xfd2luZG93KiB3aW5kb3cgeyBudWxscHRyIH07CitkaWZmIC0tZ2l0
IGEvc3JjL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLXByaXZhdGUuY3BwIGIvc3JjL3ZpZXctYmFj
a2VuZC1leHBvcnRhYmxlLXByaXZhdGUuY3BwCitpbmRleCBkNzMxMDJmLi5kMTA2NzliIDEwMDY0
NAorLS0tIGEvc3JjL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLXByaXZhdGUuY3BwCisrKysgYi9z
cmMvdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtcHJpdmF0ZS5jcHAKK0BAIC0zOSw3ICszOSw3IEBA
IFZpZXdCYWNrZW5kOjp+Vmlld0JhY2tlbmQoKQorICAgICBmb3IgKGF1dG8qIHJlc291cmNlIDog
bV9jYWxsYmFja1Jlc291cmNlcykKKyAgICAgICAgIHdsX3Jlc291cmNlX2Rlc3Ryb3kocmVzb3Vy
Y2UpOworIAorLSAgICBXUzo6SW5zdGFuY2U6OnNpbmdsZXRvbigpLnVucmVnaXN0ZXJWaWV3QmFj
a2VuZChtX2lkKTsKKysgICAgdW5yZWdpc3RlclN1cmZhY2UobV9zdXJmYWNlSWQpOworIAorICAg
ICBpZiAobV9jbGllbnRGZCAhPSAtMSkKKyAgICAgICAgIGNsb3NlKG1fY2xpZW50RmQpOworQEAg
LTExNyw2ICsxMTcsMjQgQEAgdm9pZCBWaWV3QmFja2VuZDo6cmVsZWFzZUJ1ZmZlcihzdHJ1Y3Qg
d2xfcmVzb3VyY2UqIGJ1ZmZlcl9yZXNvdXJjZSkKKyAgICAgd2xfY2xpZW50X2ZsdXNoKG1fY2xp
ZW50KTsKKyB9CisgCisrdm9pZCBWaWV3QmFja2VuZDo6cmVnaXN0ZXJTdXJmYWNlKHVpbnQzMl90
IHN1cmZhY2VJZCkKKyt7CisrICAgIG1fc3VyZmFjZUlkID0gc3VyZmFjZUlkOworKyAgICBtX2Ns
aWVudCA9IFdTOjpJbnN0YW5jZTo6c2luZ2xldG9uKCkucmVnaXN0ZXJWaWV3QmFja2VuZChtX3N1
cmZhY2VJZCwgKnRoaXMpOworK30KKysKKyt2b2lkIFZpZXdCYWNrZW5kOjp1bnJlZ2lzdGVyU3Vy
ZmFjZSh1aW50MzJfdCBzdXJmYWNlSWQpCisreworKyAgICBpZiAoIXN1cmZhY2VJZCB8fCBtX3N1
cmZhY2VJZCAhPSBzdXJmYWNlSWQpCisrICAgICAgICByZXR1cm47CisrCisrICAgIGZvciAoYXV0
byogcmVzb3VyY2UgOiBtX2NhbGxiYWNrUmVzb3VyY2VzKQorKyAgICAgICAgd2xfcmVzb3VyY2Vf
ZGVzdHJveShyZXNvdXJjZSk7CisrICAgIG1fY2FsbGJhY2tSZXNvdXJjZXMuY2xlYXIoKTsKKysg
ICAgV1M6Okluc3RhbmNlOjpzaW5nbGV0b24oKS51bnJlZ2lzdGVyVmlld0JhY2tlbmQobV9zdXJm
YWNlSWQpOworKyAgICBtX3N1cmZhY2VJZCA9IDA7CisrfQorKworIGdib29sZWFuIFZpZXdCYWNr
ZW5kOjpzX3NvY2tldENhbGxiYWNrKEdTb2NrZXQqIHNvY2tldCwgR0lPQ29uZGl0aW9uIGNvbmRp
dGlvbiwgZ3BvaW50ZXIgZGF0YSkKKyB7CisgICAgIGlmICghKGNvbmRpdGlvbiAmIEdfSU9fSU4p
KQorQEAgLTEyOCwxMCArMTQ2LDE3IEBAIGdib29sZWFuIFZpZXdCYWNrZW5kOjpzX3NvY2tldENh
bGxiYWNrKEdTb2NrZXQqIHNvY2tldCwgR0lPQ29uZGl0aW9uIGNvbmRpdGlvbiwKKyAgICAgaWYg
KGxlbiA9PSAtMSkKKyAgICAgICAgIHJldHVybiBGQUxTRTsKKyAKKy0gICAgaWYgKGxlbiA9PSBz
aXplb2YodWludDMyX3QpICogMiAmJiBtZXNzYWdlWzBdID09IDB4NDIpIHsKKy0gICAgICAgIGF1
dG8mIHZpZXdCYWNrZW5kID0gKnN0YXRpY19jYXN0PFZpZXdCYWNrZW5kKj4oZGF0YSk7CistICAg
ICAgICB2aWV3QmFja2VuZC5tX2lkID0gbWVzc2FnZVsxXTsKKy0gICAgICAgIHZpZXdCYWNrZW5k
Lm1fY2xpZW50ID0gV1M6Okluc3RhbmNlOjpzaW5nbGV0b24oKS5yZWdpc3RlclZpZXdCYWNrZW5k
KHZpZXdCYWNrZW5kLm1faWQsIHZpZXdCYWNrZW5kKTsKKysgICAgaWYgKGxlbiAhPSBzaXplb2Yo
dWludDMyX3QpICogMikKKysgICAgICAgIHJldHVybiBUUlVFOworKworKyAgICBhdXRvJiB2aWV3
QmFja2VuZCA9ICpzdGF0aWNfY2FzdDxWaWV3QmFja2VuZCo+KGRhdGEpOworKyAgICBzd2l0Y2gg
KG1lc3NhZ2VbMF0pIHsKKysgICAgY2FzZSAweDQyOgorKyAgICAgICAgdmlld0JhY2tlbmQucmVn
aXN0ZXJTdXJmYWNlKG1lc3NhZ2VbMV0pOworKyAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgMHg0
MzoKKysgICAgICAgIHZpZXdCYWNrZW5kLnVucmVnaXN0ZXJTdXJmYWNlKG1lc3NhZ2VbMV0pOwor
KyAgICAgICAgYnJlYWs7CisgICAgIH0KKyAKKyAgICAgcmV0dXJuIFRSVUU7CitkaWZmIC0tZ2l0
IGEvc3JjL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLXByaXZhdGUuaCBiL3NyYy92aWV3LWJhY2tl
bmQtZXhwb3J0YWJsZS1wcml2YXRlLmgKK2luZGV4IGIyNzQ5NGUuLjczZjM0OTcgMTAwNjQ0Cist
LS0gYS9zcmMvdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtcHJpdmF0ZS5oCisrKysgYi9zcmMvdmll
dy1iYWNrZW5kLWV4cG9ydGFibGUtcHJpdmF0ZS5oCitAQCAtNjcsOSArNjcsMTIgQEAgcHVibGlj
OgorICAgICB2b2lkIHJlbGVhc2VCdWZmZXIoc3RydWN0IHdsX3Jlc291cmNlKiBidWZmZXJfcmVz
b3VyY2UpOworIAorIHByaXZhdGU6CisrICAgIHZvaWQgcmVnaXN0ZXJTdXJmYWNlKHVpbnQzMl90
KTsKKysgICAgdm9pZCB1bnJlZ2lzdGVyU3VyZmFjZSh1aW50MzJfdCk7CisrCisgICAgIHN0YXRp
YyBnYm9vbGVhbiBzX3NvY2tldENhbGxiYWNrKEdTb2NrZXQqLCBHSU9Db25kaXRpb24sIGdwb2lu
dGVyKTsKKyAKKy0gICAgdWludDMyX3QgbV9pZCB7IDAgfTsKKysgICAgdWludDMyX3QgbV9zdXJm
YWNlSWQgeyAwIH07CisgICAgIHN0cnVjdCB3bF9jbGllbnQqIG1fY2xpZW50IHsgbnVsbHB0ciB9
OworIAorICAgICBDbGllbnRCdW5kbGUqIG1fY2xpZW50QnVuZGxlOworZGlmZiAtLWdpdCBhL3Ny
Yy93cy5jcHAgYi9zcmMvd3MuY3BwCitpbmRleCBhODU2ZTBiLi4xYWFjMzUxIDEwMDY0NAorLS0t
IGEvc3JjL3dzLmNwcAorKysrIGIvc3JjL3dzLmNwcAorQEAgLTIzMSw3ICsyMzEsNyBAQCBzdGF0
aWMgY29uc3Qgc3RydWN0IHdwZV9icmlkZ2VfaW50ZXJmYWNlIHNfd3BlQnJpZGdlSW50ZXJmYWNl
ID0geworICAgICAgICAgc3RhdGljIHVpbnQzMl90IGJyaWRnZUlEID0gMDsKKyAgICAgICAgICsr
YnJpZGdlSUQ7CisgICAgICAgICB3cGVfYnJpZGdlX3NlbmRfY29ubmVjdGVkKHJlc291cmNlLCBi
cmlkZ2VJRCk7CistICAgICAgICBJbnN0YW5jZTo6c2luZ2xldG9uKCkuY3JlYXRlU3VyZmFjZShi
cmlkZ2VJRCwgc3VyZmFjZSk7CisrICAgICAgICBJbnN0YW5jZTo6c2luZ2xldG9uKCkucmVnaXN0
ZXJTdXJmYWNlKGJyaWRnZUlELCBzdXJmYWNlKTsKKyAgICAgfSwKKyB9OworIAorQEAgLTM5Myw3
ICszOTMsNyBAQCBpbnQgSW5zdGFuY2U6OmNyZWF0ZUNsaWVudCgpCisgICAgIHJldHVybiBjbGll
bnRGZDsKKyB9CisgCistdm9pZCBJbnN0YW5jZTo6Y3JlYXRlU3VyZmFjZSh1aW50MzJfdCBpZCwg
U3VyZmFjZSogc3VyZmFjZSkKKyt2b2lkIEluc3RhbmNlOjpyZWdpc3RlclN1cmZhY2UodWludDMy
X3QgaWQsIFN1cmZhY2UqIHN1cmZhY2UpCisgeworICAgICBtX3ZpZXdCYWNrZW5kTWFwLmluc2Vy
dCh7IGlkLCBzdXJmYWNlIH0pOworIH0KK0BAIC01MzgsOSArNTM4LDkgQEAgdm9pZCBJbnN0YW5j
ZTo6Zm9yZWFjaERtYUJ1Zk1vZGlmaWVyKHN0ZDo6ZnVuY3Rpb248dm9pZCAoaW50IGZvcm1hdCwg
dWludDY0X3QgbW8KKyAgICAgfQorIH0KKyAKKy1zdHJ1Y3Qgd2xfY2xpZW50KiBJbnN0YW5jZTo6
cmVnaXN0ZXJWaWV3QmFja2VuZCh1aW50MzJfdCBpZCwgRXhwb3J0YWJsZUNsaWVudCYgZXhwb3J0
YWJsZUNsaWVudCkKKytzdHJ1Y3Qgd2xfY2xpZW50KiBJbnN0YW5jZTo6cmVnaXN0ZXJWaWV3QmFj
a2VuZCh1aW50MzJfdCBzdXJmYWNlSWQsIEV4cG9ydGFibGVDbGllbnQmIGV4cG9ydGFibGVDbGll
bnQpCisgeworLSAgICBhdXRvIGl0ID0gbV92aWV3QmFja2VuZE1hcC5maW5kKGlkKTsKKysgICAg
YXV0byBpdCA9IG1fdmlld0JhY2tlbmRNYXAuZmluZChzdXJmYWNlSWQpOworICAgICBpZiAoaXQg
PT0gbV92aWV3QmFja2VuZE1hcC5lbmQoKSkKKyAgICAgICAgIHN0ZDo6YWJvcnQoKTsKKyAKK0BA
IC01NDgsOSArNTQ4LDkgQEAgc3RydWN0IHdsX2NsaWVudCogSW5zdGFuY2U6OnJlZ2lzdGVyVmll
d0JhY2tlbmQodWludDMyX3QgaWQsIEV4cG9ydGFibGVDbGllbnQmIGUKKyAgICAgcmV0dXJuIGl0
LT5zZWNvbmQtPmNsaWVudDsKKyB9CisgCistdm9pZCBJbnN0YW5jZTo6dW5yZWdpc3RlclZpZXdC
YWNrZW5kKHVpbnQzMl90IGlkKQorK3ZvaWQgSW5zdGFuY2U6OnVucmVnaXN0ZXJWaWV3QmFja2Vu
ZCh1aW50MzJfdCBzdXJmYWNlSWQpCisgeworLSAgICBhdXRvIGl0ID0gbV92aWV3QmFja2VuZE1h
cC5maW5kKGlkKTsKKysgICAgYXV0byBpdCA9IG1fdmlld0JhY2tlbmRNYXAuZmluZChzdXJmYWNl
SWQpOworICAgICBpZiAoaXQgIT0gbV92aWV3QmFja2VuZE1hcC5lbmQoKSkgeworICAgICAgICAg
aXQtPnNlY29uZC0+ZXhwb3J0YWJsZUNsaWVudCA9IG51bGxwdHI7CisgICAgICAgICBtX3ZpZXdC
YWNrZW5kTWFwLmVyYXNlKGl0KTsKK2RpZmYgLS1naXQgYS9zcmMvd3MuaCBiL3NyYy93cy5oCitp
bmRleCBkNGMyYmZmLi41Y2I4OGU3IDEwMDY0NAorLS0tIGEvc3JjL3dzLmgKKysrKyBiL3NyYy93
cy5oCitAQCAtNTMsNyArNTMsNyBAQCBwdWJsaWM6CisgCisgICAgIGludCBjcmVhdGVDbGllbnQo
KTsKKyAKKy0gICAgdm9pZCBjcmVhdGVTdXJmYWNlKHVpbnQzMl90LCBTdXJmYWNlKik7CisrICAg
IHZvaWQgcmVnaXN0ZXJTdXJmYWNlKHVpbnQzMl90LCBTdXJmYWNlKik7CisgICAgIHN0cnVjdCB3
bF9jbGllbnQqIHJlZ2lzdGVyVmlld0JhY2tlbmQodWludDMyX3QsIEV4cG9ydGFibGVDbGllbnQm
KTsKKyAgICAgdm9pZCB1bnJlZ2lzdGVyVmlld0JhY2tlbmQodWludDMyX3QpOworIAorLS0gCisy
LjIwLjEKKwpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL2poYnVpbGQubW9kdWxlcyBiL1Rvb2xzL3dw
ZS9qaGJ1aWxkLm1vZHVsZXMKaW5kZXggOGU1ZTcxMzFlMGMuLjFkZmU1YzUzMzgxIDEwMDY0NAot
LS0gYS9Ub29scy93cGUvamhidWlsZC5tb2R1bGVzCisrKyBiL1Rvb2xzL3dwZS9qaGJ1aWxkLm1v
ZHVsZXMKQEAgLTIwNSw3ICsyMDUsMTAgQEAKICAgICAgIDxkZXAgcGFja2FnZT0iZ2xpYiIvPgog
ICAgIDwvZGVwZW5kZW5jaWVzPgogICAgIDxicmFuY2ggcmVwbz0id3Bld2Via2l0IiBtb2R1bGU9
IndwZWJhY2tlbmQtZmRvLTEuMy4wLnRhci54eiIgdmVyc2lvbj0iMS4zLjAiCi0gICAgICAgICAg
ICBoYXNoPSJzaGEyNTY6ZmVkOWFiMjlmNWQ1M2NmNDY1MTg4ZGE4MGQwMTRmM2FhMDY3Yzc3NzA0
Zjg1MDhjNmJkMTc5NzFmZGVkMzU5ZCIvPgorICAgICAgICAgICAgaGFzaD0ic2hhMjU2OmZlZDlh
YjI5ZjVkNTNjZjQ2NTE4OGRhODBkMDE0ZjNhYTA2N2M3NzcwNGY4NTA4YzZiZDE3OTcxZmRlZDM1
OWQiPgorICAgICAgPCEtLSBSZW1vdmUgdGhpcyB3aGVuIHVwZGF0aW5nIHRvIDEuMy4xIC0tPgor
ICAgICAgPHBhdGNoIGZpbGU9IndwZWJhY2tlbmQtZmRvLUhhbmRsZS10aGUtY2FzZS1vZi1uZXct
dGFyZ2V0LWNyZWF0ZWQtZm9yLXRoZS1zYW1lLXYucGF0Y2giIHN0cmlwPSIxIi8+CisgICAgPC9i
cmFuY2g+CiAgIDwvY21ha2U+CiAKICAgPGF1dG90b29scyBpZD0ibGliZ3BnLWVycm9yIiBhdXRv
Z2VuLXNoPSJjb25maWd1cmUiPgpkaWZmIC0tZ2l0IGEvVG9vbHMvd3BlL3BhdGNoZXMvd3BlYmFj
a2VuZC1mZG8tSGFuZGxlLXRoZS1jYXNlLW9mLW5ldy10YXJnZXQtY3JlYXRlZC1mb3ItdGhlLXNh
bWUtdi5wYXRjaCBiL1Rvb2xzL3dwZS9wYXRjaGVzL3dwZWJhY2tlbmQtZmRvLUhhbmRsZS10aGUt
Y2FzZS1vZi1uZXctdGFyZ2V0LWNyZWF0ZWQtZm9yLXRoZS1zYW1lLXYucGF0Y2gKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLjQ2YTYxODliOTU4Ci0tLSAvZGV2L251bGwK
KysrIGIvVG9vbHMvd3BlL3BhdGNoZXMvd3BlYmFja2VuZC1mZG8tSGFuZGxlLXRoZS1jYXNlLW9m
LW5ldy10YXJnZXQtY3JlYXRlZC1mb3ItdGhlLXNhbWUtdi5wYXRjaApAQCAtMCwwICsxLDE5OCBA
QAorRnJvbSAxM2NhZTk1YTNiMzg4OTlmOGZkNWZjMzlhNWQyNWZjYzk1MDBlMDlhIE1vbiBTZXAg
MTcgMDA6MDA6MDAgMjAwMQorRnJvbTogQ2FybG9zIEdhcmNpYSBDYW1wb3MgPGNnYXJjaWFAaWdh
bGlhLmNvbT4KK0RhdGU6IFRodSwgMzAgTWF5IDIwMTkgMTQ6MDQ6MjkgKzAyMDAKK1N1YmplY3Q6
IFtQQVRDSF0gSGFuZGxlIHRoZSBjYXNlIG9mIG5ldyB0YXJnZXQgY3JlYXRlZCBmb3IgdGhlIHNh
bWUgdmlldworIGJhY2tlbmQKKworVGhlIGNsaWVudCBjYW4gcmVtb3ZlIGEgdGFyZ2V0IGFuZCBj
cmVhdGUgYSBuZXcgb25lIGZvciB0aGUgc2FtZSB2aWV3CitiYWNrZW5kLiBJbiB0aGF0IGNhc2Ug
d2UgbmVlZCB0byB1bnJlZ2lzdGVyIHRoZSBjdXJyZW50IHZpZXcgYmFja2VuZCBpbgordGhlIHdh
eWxhbmQgY29tcG9zaXRvciBiZWZvcmUgcmVnaXN0ZXJpbmcgdGhlIG5ldyBvbmUuIFRoaXMgcGF0
Y2ggcmVuYW1lcworV1M6Okluc3RhbmNlOjpjcmVhdGVTdXJmYWNlIGFzIHJlZ2lzdGVyU3VyZmFj
ZSB0byBjbGFyaWZ5IHRoYXQgaXQncyBub3QKK2NyZWF0aW5nIGEgbmV3IHN1cmZhY2UgYnV0IHJl
Z2lzdGVyaW5nIGEgbmV3IG9uZSBmb3IgdGhlIGdpdmVuIGlkLiBBbHNvCitWaWV3QmFja2VuZDo6
bV9pZCBoYXMgYmVlbiByZW5hbWVkIGFzIG1fc3VyZmFjZUlkIHRvIGNsYXJpZnkgdGhhdCdzIG5v
dAordGhlIGJhY2tlbmQgaWRlbnRpZmllciwgYnV0IHRoZSBjdXJyZW50IHN1cmZhY2UgaWRlbnRp
Zmllci4KKy0tLQorIHNyYy9yZW5kZXJlci1iYWNrZW5kLWVnbC5jcHAgICAgICAgICAgICB8ICA4
ICsrKysrLQorIHNyYy92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS1wcml2YXRlLmNwcCB8IDM1ICsr
KysrKysrKysrKysrKysrKysrKy0tLS0KKyBzcmMvdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtcHJp
dmF0ZS5oICAgfCAgNSArKystCisgc3JjL3dzLmNwcCAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgMTIgKysrKy0tLS0tCisgc3JjL3dzLmggICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDIgKy0KKyA1IGZpbGVzIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDE0IGRlbGV0
aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvc3JjL3JlbmRlcmVyLWJhY2tlbmQtZWdsLmNwcCBiL3Ny
Yy9yZW5kZXJlci1iYWNrZW5kLWVnbC5jcHAKK2luZGV4IDcyNmQ2MWMuLjdlMTFkNWUgMTAwNjQ0
CistLS0gYS9zcmMvcmVuZGVyZXItYmFja2VuZC1lZ2wuY3BwCisrKysgYi9zcmMvcmVuZGVyZXIt
YmFja2VuZC1lZ2wuY3BwCitAQCAtMTM5LDYgKzEzOSwxMSBAQCBwdWJsaWM6CisgCisgICAgIH5U
YXJnZXQoKQorICAgICB7CisrICAgICAgICBpZiAobV93bC53cGVCcmlkZ2VJZCAmJiBtX2dsaWIu
c29ja2V0KSB7CisrICAgICAgICAgICAgdWludDMyX3QgbWVzc2FnZVtdID0geyAweDQzLCBtX3ds
LndwZUJyaWRnZUlkIH07CisrICAgICAgICAgICAgZ19zb2NrZXRfc2VuZChtX2dsaWIuc29ja2V0
LCByZWludGVycHJldF9jYXN0PGdjaGFyKj4obWVzc2FnZSksIDIgKiBzaXplb2YodWludDMyX3Qp
LCBudWxscHRyLCBudWxscHRyKTsKKysgICAgICAgIH0KKysKKyAgICAgICAgIGdfY2xlYXJfcG9p
bnRlcigmbV93bC5mcmFtZUNhbGxiYWNrLCB3bF9jYWxsYmFja19kZXN0cm95KTsKKyAgICAgICAg
IGdfY2xlYXJfcG9pbnRlcigmbV93bC53aW5kb3csIHdsX2VnbF93aW5kb3dfZGVzdHJveSk7Cisg
ICAgICAgICBnX2NsZWFyX3BvaW50ZXIoJm1fd2wuc3VyZmFjZSwgd2xfc3VyZmFjZV9kZXN0cm95
KTsKK0BAIC0yMjMsNiArMjI4LDcgQEAgcHVibGljOgorIAorICAgICB2b2lkIGJyaWRnZUNvbm5l
Y3RlZCh1aW50MzJfdCBicmlkZ2VJRCkKKyAgICAgeworKyAgICAgICAgbV93bC53cGVCcmlkZ2VJ
ZCA9IGJyaWRnZUlEOworICAgICAgICAgdWludDMyX3QgbWVzc2FnZVtdID0geyAweDQyLCBicmlk
Z2VJRCB9OworICAgICAgICAgaWYgKG1fZ2xpYi5zb2NrZXQpCisgICAgICAgICAgICAgZ19zb2Nr
ZXRfc2VuZChtX2dsaWIuc29ja2V0LCByZWludGVycHJldF9jYXN0PGdjaGFyKj4obWVzc2FnZSks
IDIgKiBzaXplb2YodWludDMyX3QpLCBudWxscHRyLCBudWxscHRyKTsKK0BAIC0yNDYsMTEgKzI1
MiwxMSBAQCBwcml2YXRlOgorICAgICB9IG1fZ2xpYjsKKyAKKyAgICAgc3RydWN0IHsKKy0gICAg
ICAgIHN0cnVjdCB3bF9kaXNwbGF5KiBkaXNwbGF5V3JhcHBlciB7IG51bGxwdHIgfTsKKyAgICAg
ICAgIHN0cnVjdCB3bF9ldmVudF9xdWV1ZSogZXZlbnRRdWV1ZSB7IG51bGxwdHIgfTsKKyAgICAg
ICAgIHN0cnVjdCB3bF9yZWdpc3RyeSogcmVnaXN0cnkgeyBudWxscHRyIH07CisgICAgICAgICBz
dHJ1Y3Qgd2xfY29tcG9zaXRvciogY29tcG9zaXRvciB7IG51bGxwdHIgfTsKKyAgICAgICAgIHN0
cnVjdCB3cGVfYnJpZGdlKiB3cGVCcmlkZ2UgeyBudWxscHRyIH07CisrICAgICAgICB1aW50MzJf
dCB3cGVCcmlkZ2VJZCB7IDAgfTsKKyAKKyAgICAgICAgIHN0cnVjdCB3bF9zdXJmYWNlKiBzdXJm
YWNlIHsgbnVsbHB0ciB9OworICAgICAgICAgc3RydWN0IHdsX2VnbF93aW5kb3cqIHdpbmRvdyB7
IG51bGxwdHIgfTsKK2RpZmYgLS1naXQgYS9zcmMvdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtcHJp
dmF0ZS5jcHAgYi9zcmMvdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtcHJpdmF0ZS5jcHAKK2luZGV4
IGQ3MzEwMmYuLmQxMDY3OWIgMTAwNjQ0CistLS0gYS9zcmMvdmlldy1iYWNrZW5kLWV4cG9ydGFi
bGUtcHJpdmF0ZS5jcHAKKysrKyBiL3NyYy92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS1wcml2YXRl
LmNwcAorQEAgLTM5LDcgKzM5LDcgQEAgVmlld0JhY2tlbmQ6On5WaWV3QmFja2VuZCgpCisgICAg
IGZvciAoYXV0byogcmVzb3VyY2UgOiBtX2NhbGxiYWNrUmVzb3VyY2VzKQorICAgICAgICAgd2xf
cmVzb3VyY2VfZGVzdHJveShyZXNvdXJjZSk7CisgCistICAgIFdTOjpJbnN0YW5jZTo6c2luZ2xl
dG9uKCkudW5yZWdpc3RlclZpZXdCYWNrZW5kKG1faWQpOworKyAgICB1bnJlZ2lzdGVyU3VyZmFj
ZShtX3N1cmZhY2VJZCk7CisgCisgICAgIGlmIChtX2NsaWVudEZkICE9IC0xKQorICAgICAgICAg
Y2xvc2UobV9jbGllbnRGZCk7CitAQCAtMTE3LDYgKzExNywyNCBAQCB2b2lkIFZpZXdCYWNrZW5k
OjpyZWxlYXNlQnVmZmVyKHN0cnVjdCB3bF9yZXNvdXJjZSogYnVmZmVyX3Jlc291cmNlKQorICAg
ICB3bF9jbGllbnRfZmx1c2gobV9jbGllbnQpOworIH0KKyAKKyt2b2lkIFZpZXdCYWNrZW5kOjpy
ZWdpc3RlclN1cmZhY2UodWludDMyX3Qgc3VyZmFjZUlkKQorK3sKKysgICAgbV9zdXJmYWNlSWQg
PSBzdXJmYWNlSWQ7CisrICAgIG1fY2xpZW50ID0gV1M6Okluc3RhbmNlOjpzaW5nbGV0b24oKS5y
ZWdpc3RlclZpZXdCYWNrZW5kKG1fc3VyZmFjZUlkLCAqdGhpcyk7CisrfQorKworK3ZvaWQgVmll
d0JhY2tlbmQ6OnVucmVnaXN0ZXJTdXJmYWNlKHVpbnQzMl90IHN1cmZhY2VJZCkKKyt7CisrICAg
IGlmICghc3VyZmFjZUlkIHx8IG1fc3VyZmFjZUlkICE9IHN1cmZhY2VJZCkKKysgICAgICAgIHJl
dHVybjsKKysKKysgICAgZm9yIChhdXRvKiByZXNvdXJjZSA6IG1fY2FsbGJhY2tSZXNvdXJjZXMp
CisrICAgICAgICB3bF9yZXNvdXJjZV9kZXN0cm95KHJlc291cmNlKTsKKysgICAgbV9jYWxsYmFj
a1Jlc291cmNlcy5jbGVhcigpOworKyAgICBXUzo6SW5zdGFuY2U6OnNpbmdsZXRvbigpLnVucmVn
aXN0ZXJWaWV3QmFja2VuZChtX3N1cmZhY2VJZCk7CisrICAgIG1fc3VyZmFjZUlkID0gMDsKKyt9
CisrCisgZ2Jvb2xlYW4gVmlld0JhY2tlbmQ6OnNfc29ja2V0Q2FsbGJhY2soR1NvY2tldCogc29j
a2V0LCBHSU9Db25kaXRpb24gY29uZGl0aW9uLCBncG9pbnRlciBkYXRhKQorIHsKKyAgICAgaWYg
KCEoY29uZGl0aW9uICYgR19JT19JTikpCitAQCAtMTI4LDEwICsxNDYsMTcgQEAgZ2Jvb2xlYW4g
Vmlld0JhY2tlbmQ6OnNfc29ja2V0Q2FsbGJhY2soR1NvY2tldCogc29ja2V0LCBHSU9Db25kaXRp
b24gY29uZGl0aW9uLAorICAgICBpZiAobGVuID09IC0xKQorICAgICAgICAgcmV0dXJuIEZBTFNF
OworIAorLSAgICBpZiAobGVuID09IHNpemVvZih1aW50MzJfdCkgKiAyICYmIG1lc3NhZ2VbMF0g
PT0gMHg0MikgeworLSAgICAgICAgYXV0byYgdmlld0JhY2tlbmQgPSAqc3RhdGljX2Nhc3Q8Vmll
d0JhY2tlbmQqPihkYXRhKTsKKy0gICAgICAgIHZpZXdCYWNrZW5kLm1faWQgPSBtZXNzYWdlWzFd
OworLSAgICAgICAgdmlld0JhY2tlbmQubV9jbGllbnQgPSBXUzo6SW5zdGFuY2U6OnNpbmdsZXRv
bigpLnJlZ2lzdGVyVmlld0JhY2tlbmQodmlld0JhY2tlbmQubV9pZCwgdmlld0JhY2tlbmQpOwor
KyAgICBpZiAobGVuICE9IHNpemVvZih1aW50MzJfdCkgKiAyKQorKyAgICAgICAgcmV0dXJuIFRS
VUU7CisrCisrICAgIGF1dG8mIHZpZXdCYWNrZW5kID0gKnN0YXRpY19jYXN0PFZpZXdCYWNrZW5k
Kj4oZGF0YSk7CisrICAgIHN3aXRjaCAobWVzc2FnZVswXSkgeworKyAgICBjYXNlIDB4NDI6Cisr
ICAgICAgICB2aWV3QmFja2VuZC5yZWdpc3RlclN1cmZhY2UobWVzc2FnZVsxXSk7CisrICAgICAg
ICBicmVhazsKKysgICAgY2FzZSAweDQzOgorKyAgICAgICAgdmlld0JhY2tlbmQudW5yZWdpc3Rl
clN1cmZhY2UobWVzc2FnZVsxXSk7CisrICAgICAgICBicmVhazsKKyAgICAgfQorIAorICAgICBy
ZXR1cm4gVFJVRTsKK2RpZmYgLS1naXQgYS9zcmMvdmlldy1iYWNrZW5kLWV4cG9ydGFibGUtcHJp
dmF0ZS5oIGIvc3JjL3ZpZXctYmFja2VuZC1leHBvcnRhYmxlLXByaXZhdGUuaAoraW5kZXggYjI3
NDk0ZS4uNzNmMzQ5NyAxMDA2NDQKKy0tLSBhL3NyYy92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS1w
cml2YXRlLmgKKysrKyBiL3NyYy92aWV3LWJhY2tlbmQtZXhwb3J0YWJsZS1wcml2YXRlLmgKK0BA
IC02Nyw5ICs2NywxMiBAQCBwdWJsaWM6CisgICAgIHZvaWQgcmVsZWFzZUJ1ZmZlcihzdHJ1Y3Qg
d2xfcmVzb3VyY2UqIGJ1ZmZlcl9yZXNvdXJjZSk7CisgCisgcHJpdmF0ZToKKysgICAgdm9pZCBy
ZWdpc3RlclN1cmZhY2UodWludDMyX3QpOworKyAgICB2b2lkIHVucmVnaXN0ZXJTdXJmYWNlKHVp
bnQzMl90KTsKKysKKyAgICAgc3RhdGljIGdib29sZWFuIHNfc29ja2V0Q2FsbGJhY2soR1NvY2tl
dCosIEdJT0NvbmRpdGlvbiwgZ3BvaW50ZXIpOworIAorLSAgICB1aW50MzJfdCBtX2lkIHsgMCB9
OworKyAgICB1aW50MzJfdCBtX3N1cmZhY2VJZCB7IDAgfTsKKyAgICAgc3RydWN0IHdsX2NsaWVu
dCogbV9jbGllbnQgeyBudWxscHRyIH07CisgCisgICAgIENsaWVudEJ1bmRsZSogbV9jbGllbnRC
dW5kbGU7CitkaWZmIC0tZ2l0IGEvc3JjL3dzLmNwcCBiL3NyYy93cy5jcHAKK2luZGV4IGE4NTZl
MGIuLjFhYWMzNTEgMTAwNjQ0CistLS0gYS9zcmMvd3MuY3BwCisrKysgYi9zcmMvd3MuY3BwCitA
QCAtMjMxLDcgKzIzMSw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgd3BlX2JyaWRnZV9pbnRlcmZh
Y2Ugc193cGVCcmlkZ2VJbnRlcmZhY2UgPSB7CisgICAgICAgICBzdGF0aWMgdWludDMyX3QgYnJp
ZGdlSUQgPSAwOworICAgICAgICAgKyticmlkZ2VJRDsKKyAgICAgICAgIHdwZV9icmlkZ2Vfc2Vu
ZF9jb25uZWN0ZWQocmVzb3VyY2UsIGJyaWRnZUlEKTsKKy0gICAgICAgIEluc3RhbmNlOjpzaW5n
bGV0b24oKS5jcmVhdGVTdXJmYWNlKGJyaWRnZUlELCBzdXJmYWNlKTsKKysgICAgICAgIEluc3Rh
bmNlOjpzaW5nbGV0b24oKS5yZWdpc3RlclN1cmZhY2UoYnJpZGdlSUQsIHN1cmZhY2UpOworICAg
ICB9LAorIH07CisgCitAQCAtMzkzLDcgKzM5Myw3IEBAIGludCBJbnN0YW5jZTo6Y3JlYXRlQ2xp
ZW50KCkKKyAgICAgcmV0dXJuIGNsaWVudEZkOworIH0KKyAKKy12b2lkIEluc3RhbmNlOjpjcmVh
dGVTdXJmYWNlKHVpbnQzMl90IGlkLCBTdXJmYWNlKiBzdXJmYWNlKQorK3ZvaWQgSW5zdGFuY2U6
OnJlZ2lzdGVyU3VyZmFjZSh1aW50MzJfdCBpZCwgU3VyZmFjZSogc3VyZmFjZSkKKyB7CisgICAg
IG1fdmlld0JhY2tlbmRNYXAuaW5zZXJ0KHsgaWQsIHN1cmZhY2UgfSk7CisgfQorQEAgLTUzOCw5
ICs1MzgsOSBAQCB2b2lkIEluc3RhbmNlOjpmb3JlYWNoRG1hQnVmTW9kaWZpZXIoc3RkOjpmdW5j
dGlvbjx2b2lkIChpbnQgZm9ybWF0LCB1aW50NjRfdCBtbworICAgICB9CisgfQorIAorLXN0cnVj
dCB3bF9jbGllbnQqIEluc3RhbmNlOjpyZWdpc3RlclZpZXdCYWNrZW5kKHVpbnQzMl90IGlkLCBF
eHBvcnRhYmxlQ2xpZW50JiBleHBvcnRhYmxlQ2xpZW50KQorK3N0cnVjdCB3bF9jbGllbnQqIElu
c3RhbmNlOjpyZWdpc3RlclZpZXdCYWNrZW5kKHVpbnQzMl90IHN1cmZhY2VJZCwgRXhwb3J0YWJs
ZUNsaWVudCYgZXhwb3J0YWJsZUNsaWVudCkKKyB7CistICAgIGF1dG8gaXQgPSBtX3ZpZXdCYWNr
ZW5kTWFwLmZpbmQoaWQpOworKyAgICBhdXRvIGl0ID0gbV92aWV3QmFja2VuZE1hcC5maW5kKHN1
cmZhY2VJZCk7CisgICAgIGlmIChpdCA9PSBtX3ZpZXdCYWNrZW5kTWFwLmVuZCgpKQorICAgICAg
ICAgc3RkOjphYm9ydCgpOworIAorQEAgLTU0OCw5ICs1NDgsOSBAQCBzdHJ1Y3Qgd2xfY2xpZW50
KiBJbnN0YW5jZTo6cmVnaXN0ZXJWaWV3QmFja2VuZCh1aW50MzJfdCBpZCwgRXhwb3J0YWJsZUNs
aWVudCYgZQorICAgICByZXR1cm4gaXQtPnNlY29uZC0+Y2xpZW50OworIH0KKyAKKy12b2lkIElu
c3RhbmNlOjp1bnJlZ2lzdGVyVmlld0JhY2tlbmQodWludDMyX3QgaWQpCisrdm9pZCBJbnN0YW5j
ZTo6dW5yZWdpc3RlclZpZXdCYWNrZW5kKHVpbnQzMl90IHN1cmZhY2VJZCkKKyB7CistICAgIGF1
dG8gaXQgPSBtX3ZpZXdCYWNrZW5kTWFwLmZpbmQoaWQpOworKyAgICBhdXRvIGl0ID0gbV92aWV3
QmFja2VuZE1hcC5maW5kKHN1cmZhY2VJZCk7CisgICAgIGlmIChpdCAhPSBtX3ZpZXdCYWNrZW5k
TWFwLmVuZCgpKSB7CisgICAgICAgICBpdC0+c2Vjb25kLT5leHBvcnRhYmxlQ2xpZW50ID0gbnVs
bHB0cjsKKyAgICAgICAgIG1fdmlld0JhY2tlbmRNYXAuZXJhc2UoaXQpOworZGlmZiAtLWdpdCBh
L3NyYy93cy5oIGIvc3JjL3dzLmgKK2luZGV4IGQ0YzJiZmYuLjVjYjg4ZTcgMTAwNjQ0CistLS0g
YS9zcmMvd3MuaAorKysrIGIvc3JjL3dzLmgKK0BAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKKyAK
KyAgICAgaW50IGNyZWF0ZUNsaWVudCgpOworIAorLSAgICB2b2lkIGNyZWF0ZVN1cmZhY2UodWlu
dDMyX3QsIFN1cmZhY2UqKTsKKysgICAgdm9pZCByZWdpc3RlclN1cmZhY2UodWludDMyX3QsIFN1
cmZhY2UqKTsKKyAgICAgc3RydWN0IHdsX2NsaWVudCogcmVnaXN0ZXJWaWV3QmFja2VuZCh1aW50
MzJfdCwgRXhwb3J0YWJsZUNsaWVudCYpOworICAgICB2b2lkIHVucmVnaXN0ZXJWaWV3QmFja2Vu
ZCh1aW50MzJfdCk7CisgCistLSAKKzIuMjAuMQorCg==
</data>
<flag name="review"
          id="387321"
          type_id="1"
          status="+"
          setter="zan"
    />
          </attachment>
      

    </bug>

</bugzilla>