<?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>196283</bug_id>
          
          <creation_ts>2019-03-26 19:10:38 -0700</creation_ts>
          <short_desc>Add SPI stub for decidePolicyForNavigationResponse with a continuation WKWebView</short_desc>
          <delta_ts>2019-03-27 14:30:16 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>beidson</cc>
    
    <cc>cdumez</cc>
    
    <cc>ggaren</cc>
    
    <cc>sam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1521588</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-26 19:10:38 -0700</bug_when>
    <thetext>Add SPI stub for decidePolicyForNavigationResponse with a continuation WKWebView</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521589</commentid>
    <comment_count>1</comment_count>
      <attachid>366040</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-26 19:11:49 -0700</bug_when>
    <thetext>Created attachment 366040
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521592</commentid>
    <comment_count>2</comment_count>
      <attachid>366040</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2019-03-26 19:20:57 -0700</bug_when>
    <thetext>Comment on attachment 366040
Patch

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

&gt; Source/WebKit/ChangeLog:6
&gt; +        Add SPI stub for decidePolicyForNavigationResponse with a continuation WKWebView
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=196283
&gt; +
&gt; +        Reviewed by NOBODY (OOPS!).

What will this SPI do? (please try to include more information in the ChangeLog. It&apos;s not here solely to document the reviewer :) ).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521626</commentid>
    <comment_count>3</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-26 22:57:23 -0700</bug_when>
    <thetext>The current plan is to continue the load we&apos;ve just decided about in a new WKWebView.  That&apos;ll require some interesting work to hook up, and this was a good milestone.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521840</commentid>
    <comment_count>4</comment_count>
      <attachid>366040</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-03-27 14:15:18 -0700</bug_when>
    <thetext>Comment on attachment 366040
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKNavigationDelegatePrivate.h:93
&gt; +- (void)_webView:(WKWebView *)webView decidePolicyForNavigationResponse:(WKNavigationResponse *)navigationResponse decisionHandler:(void (^)(WKNavigationResponsePolicy, WKWebView *continuationWebView))decisionHandler WK_API_AVAILABLE(macos(WK_MAC_TBA), ios(WK_IOS_TBA));

I personally find this is a weird SPI. Why is it WebKit&apos;s responsibility to transition the load in a new view? The client started the load in this view. If they want a new view, they could always cancel this load and start it again in a new view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1521847</commentid>
    <comment_count>5</comment_count>
      <attachid>366040</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-03-27 14:30:16 -0700</bug_when>
    <thetext>Comment on attachment 366040
Patch

That won&apos;t work for some loads.
Since the timeline for this has changed, I&apos;m removing r?</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>366040</attachid>
            <date>2019-03-26 19:11:49 -0700</date>
            <delta_ts>2019-03-27 14:30:16 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-196283-20190326191148.patch</filename>
            <type>text/plain</type>
            <size>26168</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNDM0NjIpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxv
Zwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI5IEBACisyMDE5LTAzLTI2ICBBbGV4IENocmlz
dGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgQWRkIFNQSSBzdHVi
IGZvciBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2Ugd2l0aCBhIGNvbnRpbnVhdGlv
biBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5NjI4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5tbToKKyAgICAgICAgKFdlYktpdDo6TmF2
aWdhdGlvblN0YXRlOjpzZXROYXZpZ2F0aW9uRGVsZWdhdGUpOgorICAgICAgICAoV2ViS2l0OjpO
YXZpZ2F0aW9uU3RhdGU6Ok5hdmlnYXRpb25DbGllbnQ6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRp
b25SZXNwb25zZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6
ZGlkUmVjZWl2ZVNhZmVCcm93c2luZ1Jlc3VsdHMpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFt
ZVBvbGljeUxpc3RlbmVyUHJveHk6OnVzZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eTo6ZG93bmxvYWQpOgorICAgICAgICAoV2ViS2l0OjpXZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHk6Omlnbm9yZSk6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRnJhbWVQcm94eTo6c2V0VXBQb2xpY3lMaXN0ZW5l
clByb3h5KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlUHJv
eHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpX
ZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5ld1dpbmRvd0FjdGlvbik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yUmVzcG9uc2VTaGFyZWQpOgorCiAy
MDE5LTAzLTI1ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgR2V0
IHJpZCBvZiBXZWJQYWdlOjptX3Nob3VsZFJlc2V0RHJhd2luZ0FyZWFBZnRlclN1c3BlbmQgZmxh
ZwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBv
bGljeUxpc3RlbmVyUHJveHkuY3BwCShyZXZpc2lvbiAyNDM0NjIpCisrKyBTb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC01MCwzMCArNTAsMzYgQEAgdm9pZCBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OmRp
ZFJlYwogICAgIEFTU0VSVCghbV9zYWZlQnJvd3NpbmdXYXJuaW5nKTsKICAgICBpZiAobV9wb2xp
Y3lSZXN1bHQpIHsKICAgICAgICAgaWYgKG1fcmVwbHkpCi0gICAgICAgICAgICBtX3JlcGx5KFdl
YkNvcmU6OlBvbGljeUFjdGlvbjo6VXNlLCBtX3BvbGljeVJlc3VsdC0+Zmlyc3QuZ2V0KCksIG1f
cG9saWN5UmVzdWx0LT5zZWNvbmQsIFdURk1vdmUoc2FmZUJyb3dzaW5nV2FybmluZykpOworICAg
ICAgICAgICAgbV9yZXBseSgKKyAgICAgICAgICAgICAgICBXZWJDb3JlOjpQb2xpY3lBY3Rpb246
OlVzZSwKKyAgICAgICAgICAgICAgICBzdGQ6OmdldDxSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNp
ZXM+PigqbV9wb2xpY3lSZXN1bHQpLmdldCgpLAorICAgICAgICAgICAgICAgIHN0ZDo6Z2V0PFBy
b2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ+KCptX3BvbGljeVJlc3VsdCksCisgICAgICAgICAg
ICAgICAgc3RkOjpnZXQ8UmVmUHRyPFdlYlBhZ2VQcm94eT4+KCptX3BvbGljeVJlc3VsdCkuZ2V0
KCksCisgICAgICAgICAgICAgICAgV1RGTW92ZShzYWZlQnJvd3NpbmdXYXJuaW5nKQorICAgICAg
ICAgICAgKTsKICAgICB9IGVsc2UKICAgICAgICAgbV9zYWZlQnJvd3NpbmdXYXJuaW5nID0gV1RG
TW92ZShzYWZlQnJvd3NpbmdXYXJuaW5nKTsKIH0KIAotdm9pZCBXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHk6OnVzZShBUEk6OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCkKK3ZvaWQgV2Vi
RnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5Ojp1c2UoQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGlj
aWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlD
bGllbnQsIFdlYlBhZ2VQcm94eSogY29udGludWF0aW9uUGFnZSkKIHsKICAgICBpZiAobV9zYWZl
QnJvd3NpbmdXYXJuaW5nKSB7CiAgICAgICAgIGlmIChtX3JlcGx5KQotICAgICAgICAgICAgbV9y
ZXBseShXZWJDb3JlOjpQb2xpY3lBY3Rpb246OlVzZSwgcG9saWNpZXMsIHByb2Nlc3NTd2FwUmVx
dWVzdGVkQnlDbGllbnQsIFdURk1vdmUoKm1fc2FmZUJyb3dzaW5nV2FybmluZykpOworICAgICAg
ICAgICAgbV9yZXBseShXZWJDb3JlOjpQb2xpY3lBY3Rpb246OlVzZSwgcG9saWNpZXMsIHByb2Nl
c3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIGNvbnRpbnVhdGlvblBhZ2UsIFdURk1vdmUoKm1fc2Fm
ZUJyb3dzaW5nV2FybmluZykpOwogICAgIH0gZWxzZSBpZiAoIW1fcG9saWN5UmVzdWx0KQotICAg
ICAgICBtX3BvbGljeVJlc3VsdCA9IHt7IHBvbGljaWVzLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50IH19OworICAgICAgICBtX3BvbGljeVJlc3VsdCA9IHt7IHBvbGljaWVzLCBwcm9jZXNz
U3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBjb250aW51YXRpb25QYWdlIH19OwogfQogCiB2b2lkIFdl
YkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eTo6ZG93bmxvYWQoKQogewogICAgIGlmIChtX3JlcGx5
KQotICAgICAgICBtX3JlcGx5KFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6RG93bmxvYWQsIG51bGxw
dHIsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCB7IH0pOworICAgICAgICBtX3Jl
cGx5KFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6RG93bmxvYWQsIG51bGxwdHIsIFByb2Nlc3NTd2Fw
UmVxdWVzdGVkQnlDbGllbnQ6Ok5vLCB7IH0sIHsgfSk7CiB9CiAKIHZvaWQgV2ViRnJhbWVQb2xp
Y3lMaXN0ZW5lclByb3h5OjppZ25vcmUoKQogewogICAgIGlmIChtX3JlcGx5KQotICAgICAgICBt
X3JlcGx5KFdlYkNvcmU6OlBvbGljeUFjdGlvbjo6SWdub3JlLCBudWxscHRyLCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50OjpObywgeyB9KTsKKyAgICAgICAgbV9yZXBseShXZWJDb3JlOjpQ
b2xpY3lBY3Rpb246Oklnbm9yZSwgbnVsbHB0ciwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dDo6Tm8sIHsgfSwgeyB9KTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkuaAkocmV2aXNpb24gMjQzNDYyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5LmgJKHdvcmtpbmcgY29weSkKQEAgLTM3LDYgKzM3LDcgQEAg
Y2xhc3MgV2Vic2l0ZVBvbGljaWVzOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFNhZmVC
cm93c2luZ1dhcm5pbmc7CitjbGFzcyBXZWJQYWdlUHJveHk7CiAKIGVudW0gY2xhc3MgUHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCB7IE5vLCBZZXMgfTsKIGVudW0gY2xhc3MgU2hvdWxkRXhw
ZWN0U2FmZUJyb3dzaW5nUmVzdWx0IHsgTm8sIFllcyB9OwpAQCAtNDQsMTQgKzQ1LDE0IEBAIGVu
dW0gY2xhc3MgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWwKIGNsYXNzIFdlYkZyYW1lUG9s
aWN5TGlzdGVuZXJQcm94eSA6IHB1YmxpYyBBUEk6Ok9iamVjdEltcGw8QVBJOjpPYmplY3Q6OlR5
cGU6OkZyYW1lUG9saWN5TGlzdGVuZXI+IHsKIHB1YmxpYzoKIAotICAgIHVzaW5nIFJlcGx5ID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24sIEFQSTo6V2Vic2l0
ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93
c2luZ1dhcm5pbmc+JiYpPjsKKyAgICB1c2luZyBSZXBseSA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoV2ViQ29yZTo6UG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NT
d2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxXZWJQYWdlUHJveHk+JiYsIFJlZlB0cjxTYWZl
QnJvd3NpbmdXYXJuaW5nPiYmKT47CiAgICAgc3RhdGljIFJlZjxXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHk+IGNyZWF0ZShSZXBseSYmIHJlcGx5LCBTaG91bGRFeHBlY3RTYWZlQnJvd3NpbmdS
ZXN1bHQgZXhwZWN0KQogICAgIHsKICAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV2ViRnJh
bWVQb2xpY3lMaXN0ZW5lclByb3h5KFdURk1vdmUocmVwbHkpLCBleHBlY3QpKTsKICAgICB9CiAg
ICAgfldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eSgpOwogCi0gICAgdm9pZCB1c2UoQVBJOjpX
ZWJzaXRlUG9saWNpZXMqID0gbnVsbHB0ciwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCA9
IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vKTsKKyAgICB2b2lkIHVzZShBUEk6Oldl
YnNpdGVQb2xpY2llcyogPSBudWxscHRyLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50ID0g
UHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFdlYlBhZ2VQcm94eSogPSBudWxscHRy
KTsKICAgICB2b2lkIGRvd25sb2FkKCk7CiAgICAgdm9pZCBpZ25vcmUoKTsKICAgICAKQEAgLTYw
LDcgKzYxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBXZWJGcmFtZVBvbGljeUxpc3RlbmVy
UHJveHkoUmVwbHkmJiwgU2hvdWxkRXhwZWN0U2FmZUJyb3dzaW5nUmVzdWx0KTsKIAotICAgIE9w
dGlvbmFsPHN0ZDo6cGFpcjxSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+LCBQcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50Pj4gbV9wb2xpY3lSZXN1bHQ7CisgICAgT3B0aW9uYWw8c3RkOjp0
dXBsZTxSZWZQdHI8QVBJOjpXZWJzaXRlUG9saWNpZXM+LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5
Q2xpZW50LCBSZWZQdHI8V2ViUGFnZVByb3h5Pj4+IG1fcG9saWN5UmVzdWx0OwogICAgIE9wdGlv
bmFsPFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPj4gbV9zYWZlQnJvd3NpbmdXYXJuaW5nOwog
ICAgIFJlcGx5IG1fcmVwbHk7CiB9OwpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
RnJhbWVQcm94eS5jcHAJKHJldmlzaW9uIDI0MzQ2MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkZyYW1lUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xODYsMTIgKzE4NiwxMiBA
QCB2b2lkIFdlYkZyYW1lUHJveHk6OmRpZENoYW5nZVRpdGxlKGNvbnN0CiAgICAgbV90aXRsZSA9
IHRpdGxlOwogfQogCi1XZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmIFdlYkZyYW1lUHJveHk6
OnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFBvbGljeUFj
dGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
LCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIFNo
b3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCBleHBlY3QpCitXZWJGcmFtZVBvbGljeUxpc3Rl
bmVyUHJveHkmIFdlYkZyYW1lUHJveHk6OnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKFBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJQYWdlUHJveHkqLCBSZWZQdHI8U2FmZUJyb3dz
aW5nV2FybmluZz4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIsIFNob3VsZEV4cGVjdFNhZmVCcm93
c2luZ1Jlc3VsdCBleHBlY3QpCiB7CiAgICAgaWYgKG1fYWN0aXZlTGlzdGVuZXIpCiAgICAgICAg
IG1fYWN0aXZlTGlzdGVuZXItPmlnbm9yZSgpOwotICAgIG1fYWN0aXZlTGlzdGVuZXIgPSBXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHk6OmNyZWF0ZShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1h
a2VSZWYoKnRoaXMpLCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpXSAoUG9saWN5QWN0aW9uIGFjdGlvbiwgQVBJOjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVz
LCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGll
bnQsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcpIG11
dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhY3Rpb24sIHBvbGljaWVzLCBwcm9j
ZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXVEZNb3ZlKHNhZmVCcm93c2luZ1dhcm5pbmcpKTsK
KyAgICBtX2FjdGl2ZUxpc3RlbmVyID0gV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5OjpjcmVh
dGUoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0gKFBvbGljeUFjdGlvbiBhY3Rpb24sIEFQ
STo6V2Vic2l0ZVBvbGljaWVzKiBwb2xpY2llcywgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBSZWZQdHI8V2ViUGFnZVByb3h5PiYmIGNv
bnRpbnVhdGlvblBhZ2UsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2lu
Z1dhcm5pbmcpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihhY3Rpb24sIHBv
bGljaWVzLCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBjb250aW51YXRpb25QYWdlLmdl
dCgpLCBXVEZNb3ZlKHNhZmVCcm93c2luZ1dhcm5pbmcpKTsKICAgICAgICAgbV9hY3RpdmVMaXN0
ZW5lciA9IG51bGxwdHI7CiAgICAgfSwgZXhwZWN0KTsKICAgICByZXR1cm4gKm1fYWN0aXZlTGlz
dGVuZXI7CkluZGV4OiBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCShyZXZp
c2lvbiAyNDM0NjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTExOCw3ICsxMTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRT
YW1lRG9jdW1lbnROYXZpZ2F0aW9uKGNvbnN0IFVSTCYpOyAvLyBlZy4gYW5jaG9yIG5hdmlnYXRp
b24sIHNlc3Npb24gc3RhdGUgY2hhbmdlLgogICAgIHZvaWQgZGlkQ2hhbmdlVGl0bGUoY29uc3Qg
U3RyaW5nJik7CiAKLSAgICBXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkmIHNldFVwUG9saWN5
TGlzdGVuZXJQcm94eShDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OlBvbGljeUFjdGlv
biwgQVBJOjpXZWJzaXRlUG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBS
ZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJik+JiYsIFNob3VsZEV4cGVjdFNhZmVCcm93c2lu
Z1Jlc3VsdCk7CisgICAgV2ViRnJhbWVQb2xpY3lMaXN0ZW5lclByb3h5JiBzZXRVcFBvbGljeUxp
c3RlbmVyUHJveHkoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpQb2xpY3lBY3Rpb24s
IEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2Vi
UGFnZVByb3h5KiwgIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmKT4mJiwgU2hvdWxkRXhw
ZWN0U2FmZUJyb3dzaW5nUmVzdWx0KTsKIAogI2lmIEVOQUJMRShDT05URU5UX0ZJTFRFUklORykK
ICAgICB2b2lkIGNvbnRlbnRGaWx0ZXJEaWRCbG9ja0xvYWQoV2ViQ29yZTo6Q29udGVudEZpbHRl
clVuYmxvY2tIYW5kbGVyIGNvbnRlbnRGaWx0ZXJVbmJsb2NrSGFuZGxlcikgeyBtX2NvbnRlbnRG
aWx0ZXJVbmJsb2NrSGFuZGxlciA9IFdURk1vdmUoY29udGVudEZpbHRlclVuYmxvY2tIYW5kbGVy
KTsgfQpJbmRleDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCShyZXZp
c2lvbiAyNDM0NjIpCisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC00NTcwLDcgKzQ1NzAsOCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhCiAgICAgaWYgKCFtX3ByZWZlcmVuY2VzLT5zYWZlQnJvd3Np
bmdFbmFibGVkKCkpCiAgICAgICAgIHNob3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdCA9IFNo
b3VsZEV4cGVjdFNhZmVCcm93c2luZ1Jlc3VsdDo6Tm87CiAKLSAgICBhdXRvIGxpc3RlbmVyID0g
bWFrZVJlZihmcmFtZS5zZXRVcFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBtYWtlUmVmKCp0aGlzKSwgZnJhbWUgPSBtYWtlUmVmKGZyYW1lKSwgc2VuZGVyID0gV1RG
TW92ZShzZW5kZXIpLCBuYXZpZ2F0aW9uXSAoUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJ
OjpXZWJzaXRlUG9saWNpZXMqIHBvbGljaWVzLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50
IHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5n
PiYmIHNhZmVCcm93c2luZ1dhcm5pbmcpIG11dGFibGUgeworICAgIGF1dG8gbGlzdGVuZXIgPSBt
YWtlUmVmKGZyYW1lLnNldFVwUG9saWN5TGlzdGVuZXJQcm94eShbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IG1ha2VSZWYoKnRoaXMpLCBmcmFtZSA9IG1ha2VSZWYoZnJhbWUpLCBzZW5kZXIgPSBXVEZN
b3ZlKHNlbmRlciksIG5hdmlnYXRpb25dIChQb2xpY3lBY3Rpb24gcG9saWN5QWN0aW9uLCBBUEk6
OldlYnNpdGVQb2xpY2llcyogcG9saWNpZXMsIFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQg
cHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgV2ViUGFnZVByb3h5KiBjb250aW51YXRpb25Q
YWdlLCBSZWZQdHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nKSBt
dXRhYmxlIHsKKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbnRpbnVhdGlvblBhZ2UpOwogCiAg
ICAgICAgIGF1dG8gY29tcGxldGlvbkhhbmRsZXIgPSBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IHBy
b3RlY3RlZFRoaXMuY29weVJlZigpLCBmcmFtZSA9IGZyYW1lLmNvcHlSZWYoKSwgc2VuZGVyID0g
V1RGTW92ZShzZW5kZXIpLCBuYXZpZ2F0aW9uID0gV1RGTW92ZShuYXZpZ2F0aW9uKSwgcHJvY2Vz
c1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgcG9saWNpZXMgPSBtYWtlUmVmUHRyKHBvbGljaWVzKV0g
KFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24pIG11dGFibGUgewogICAgICAgICAgICAgcmVjZWl2
ZWROYXZpZ2F0aW9uUG9saWN5RGVjaXNpb24ocG9saWN5QWN0aW9uLCBuYXZpZ2F0aW9uLmdldCgp
LCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBmcmFtZSwgcG9saWNpZXMuZ2V0KCksIFdU
Rk1vdmUoc2VuZGVyKSk7CkBAIC00NzQ0LDggKzQ3NDUsOSBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
ZGVjaWRlUG9saWN5Rm9yTmV3V2luCiAgICAgTUVTU0FHRV9DSEVDSyhtX3Byb2Nlc3MsIGZyYW1l
KTsKICAgICBNRVNTQUdFX0NIRUNLX1VSTChtX3Byb2Nlc3MsIHJlcXVlc3QudXJsKCkpOwogCi0g
ICAgYXV0byBsaXN0ZW5lciA9IG1ha2VSZWYoZnJhbWUtPnNldFVwUG9saWN5TGlzdGVuZXJQcm94
eShbdGhpcywgcHJvdGVjdGVkVGhpcyA9IG1ha2VSZWYoKnRoaXMpLCBpZGVudGlmaWVyLCBsaXN0
ZW5lcklELCBmcmFtZUlEXSAoUG9saWN5QWN0aW9uIHBvbGljeUFjdGlvbiwgQVBJOjpXZWJzaXRl
UG9saWNpZXMqLCBQcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50IHByb2Nlc3NTd2FwUmVxdWVz
dGVkQnlDbGllbnQsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dh
cm5pbmcpIG11dGFibGUgeworICAgIGF1dG8gbGlzdGVuZXIgPSBtYWtlUmVmKGZyYW1lLT5zZXRV
cFBvbGljeUxpc3RlbmVyUHJveHkoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlz
KSwgaWRlbnRpZmllciwgbGlzdGVuZXJJRCwgZnJhbWVJRF0gKFBvbGljeUFjdGlvbiBwb2xpY3lB
Y3Rpb24sIEFQSTo6V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVu
dCBwcm9jZXNzU3dhcFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJQYWdlUHJveHkqIGNvbnRpbnVhdGlv
blBhZ2UsIFJlZlB0cjxTYWZlQnJvd3NpbmdXYXJuaW5nPiYmIHNhZmVCcm93c2luZ1dhcm5pbmcp
IG11dGFibGUgewogICAgICAgICAvLyBGSVhNRTogQXNzZXJ0IHRoZSBBUEk6OldlYnNpdGVQb2xp
Y2llcyogaXMgbnVsbHB0ciBoZXJlIG9uY2UgY2xpZW50cyBvZiBXS0ZyYW1lUG9saWN5TGlzdGVu
ZXJVc2VXaXRoUG9saWNpZXMgZ28gYXdheS4KKyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbnRp
bnVhdGlvblBhZ2UpOwogICAgICAgICBSRUxFQVNFX0FTU0VSVChwcm9jZXNzU3dhcFJlcXVlc3Rl
ZEJ5Q2xpZW50ID09IFByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQ6Ok5vKTsKICAgICAgICAg
QVNTRVJUX1VOVVNFRChzYWZlQnJvd3NpbmdXYXJuaW5nLCAhc2FmZUJyb3dzaW5nV2FybmluZyk7
CiAKQEAgLTQ3OTMsNyArNDc5NSw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lG
b3JSZXNwb24KIAogICAgIFJlZlB0cjxBUEk6Ok5hdmlnYXRpb24+IG5hdmlnYXRpb24gPSBuYXZp
Z2F0aW9uSUQgPyBtX25hdmlnYXRpb25TdGF0ZS0+bmF2aWdhdGlvbihuYXZpZ2F0aW9uSUQpIDog
bnVsbHB0cjsKICAgICBhdXRvIGxpc3RlbmVyID0gbWFrZVJlZihmcmFtZS0+c2V0VXBQb2xpY3lM
aXN0ZW5lclByb3h5KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGZyYW1l
SUQsIGlkZW50aWZpZXIsIGxpc3RlbmVySUQsIG5hdmlnYXRpb24gPSBXVEZNb3ZlKG5hdmlnYXRp
b24pLAotICAgICAgICBwcm9jZXNzID0gcHJvY2Vzcy5jb3B5UmVmKCldIChQb2xpY3lBY3Rpb24g
cG9saWN5QWN0aW9uLCBBUEk6OldlYnNpdGVQb2xpY2llcyosIFByb2Nlc3NTd2FwUmVxdWVzdGVk
QnlDbGllbnQgcHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCwgUmVmUHRyPFNhZmVCcm93c2lu
Z1dhcm5pbmc+JiYgc2FmZUJyb3dzaW5nV2FybmluZykgbXV0YWJsZSB7CisgICAgICAgIHByb2Nl
c3MgPSBwcm9jZXNzLmNvcHlSZWYoKV0gKFBvbGljeUFjdGlvbiBwb2xpY3lBY3Rpb24sIEFQSTo6
V2Vic2l0ZVBvbGljaWVzKiwgUHJvY2Vzc1N3YXBSZXF1ZXN0ZWRCeUNsaWVudCBwcm9jZXNzU3dh
cFJlcXVlc3RlZEJ5Q2xpZW50LCBXZWJQYWdlUHJveHkqIGNvbnRpbnVhdGlvblBhZ2UsICBSZWZQ
dHI8U2FmZUJyb3dzaW5nV2FybmluZz4mJiBzYWZlQnJvd3NpbmdXYXJuaW5nKSBtdXRhYmxlIHsK
KyAgICAgICAgUkVMRUFTRV9BU1NFUlQoIWNvbnRpbnVhdGlvblBhZ2UgfHwgIWNvbnRpbnVhdGlv
blBhZ2UtPmhhc0NvbW1pdHRlZEFueVByb3Zpc2lvbmFsTG9hZHMoKSk7CisgICAgICAgIC8vIEZJ
WE1FOiB1c2UgY29udGludWF0aW9uUGFnZS4KICAgICAgICAgLy8gRklYTUU6IEFzc2VydCB0aGUg
QVBJOjpXZWJzaXRlUG9saWNpZXMqIGlzIG51bGxwdHIgaGVyZSBvbmNlIGNsaWVudHMgb2YgV0tG
cmFtZVBvbGljeUxpc3RlbmVyVXNlV2l0aFBvbGljaWVzIGdvIGF3YXkuCiAgICAgICAgIFJFTEVB
U0VfQVNTRVJUKHByb2Nlc3NTd2FwUmVxdWVzdGVkQnlDbGllbnQgPT0gUHJvY2Vzc1N3YXBSZXF1
ZXN0ZWRCeUNsaWVudDo6Tm8pOwogICAgICAgICBBU1NFUlRfVU5VU0VEKHNhZmVCcm93c2luZ1dh
cm5pbmcsICFzYWZlQnJvd3NpbmdXYXJuaW5nKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tOYXZpZ2F0aW9uRGVsZWdhdGVQ
cml2YXRlLmgJKHJldmlzaW9uIDI0MzQ2MikKKysrIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS05hdmlnYXRpb25EZWxlZ2F0ZVByaXZhdGUuaAkod29ya2luZyBjb3B5KQpAQCAt
OTAsNiArOTAsNyBAQCBzdGF0aWMgY29uc3QgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3kgCiAt
ICh2b2lkKV93ZWJWaWV3RGlkUmVtb3ZlTmF2aWdhdGlvbkdlc3R1cmVTbmFwc2hvdDooV0tXZWJW
aWV3ICopd2ViVmlldyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSwgaW9zKDEwLjApKTsK
IC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2
aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdhdGlvbkFjdGlvbiBkZWNp
c2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0
ZVBvbGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfREVQUkVDQVRFRF9XSVRIX1JFUExB
Q0VNRU5UKCJfd2ViVmlldzpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uOnVzZXJJbmZv
OmRlY2lzaW9uSGFuZGxlcjoiLCBtYWNvcygxMC4xMi4zLCBXS19NQUNfVEJBKSwgaW9zKDEwLjMs
IFdLX0lPU19UQkEpKTsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjooV0tOYXZpZ2F0aW9uQWN0aW9uICopbmF2aWdh
dGlvbkFjdGlvbiB1c2VySW5mbzooaWQgPE5TU2VjdXJlQ29kaW5nPil1c2VySW5mbyBkZWNpc2lv
bkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvbkFjdGlvblBvbGljeSwgX1dLV2Vic2l0ZVBv
bGljaWVzICopKWRlY2lzaW9uSGFuZGxlciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEzLjQp
LCBpb3MoMTEuMykpOworLSAodm9pZClfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkZWNp
ZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2U6KFdLTmF2aWdhdGlvblJlc3BvbnNlICopbmF2
aWdhdGlvblJlc3BvbnNlIGRlY2lzaW9uSGFuZGxlcjoodm9pZCAoXikoV0tOYXZpZ2F0aW9uUmVz
cG9uc2VQb2xpY3ksIFdLV2ViVmlldyAqY29udGludWF0aW9uV2ViVmlldykpZGVjaXNpb25IYW5k
bGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlvcyhXS19JT1NfVEJBKSk7
CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZFN0YXJ0UHJvdmlzaW9u
YWxOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHVzZXJJbmZvOihpZCA8TlNT
ZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTMuNCksIGlv
cygxMS4zKSk7CiAtICh2b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IGRpZEZhaWxO
YXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uIHdpdGhFcnJvcjooTlNFcnJvciAq
KWVycm9yIHVzZXJJbmZvOihpZCA8TlNTZWN1cmVDb2Rpbmc+KXVzZXJJbmZvIFdLX0FQSV9BVkFJ
TEFCTEUobWFjb3MoMTAuMTMuNCksIGlvcygxMS4zKSk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5oCShyZXZpc2lvbiAyNDM0NjIp
CisrKyBTb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9OYXZpZ2F0aW9uU3RhdGUuaAkod29y
a2luZyBjb3B5KQpAQCAtMTg5LDYgKzE4OSw3IEBAIHByaXZhdGU6CiAgICAgICAgIGJvb2wgd2Vi
Vmlld0RlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25EZWNpc2lvbkhhbmRsZXJXZWJzaXRl
UG9saWNpZXMgOiAxOwogICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uVXNlckluZm9EZWNpc2lvbkhhbmRsZXJXZWJzaXRlUG9saWNpZXMgOiAxOwogICAg
ICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lv
bkhhbmRsZXIgOiAxOworICAgICAgICBib29sIHdlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXJXaXRoV0tXZWJWaWV3IDogMTsKIAogICAgICAgICBi
b29sIHdlYlZpZXdEaWRTdGFydFByb3Zpc2lvbmFsTmF2aWdhdGlvbiA6IDE7CiAgICAgICAgIGJv
b2wgd2ViVmlld0RpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uVXNlckluZm8gOiAxOwpJbmRl
eDogU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2aWdhdGlvblN0YXRlLm1tCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL05hdmlnYXRpb25TdGF0ZS5t
bQkocmV2aXNpb24gMjQzNDYyKQorKysgU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvTmF2
aWdhdGlvblN0YXRlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0xNTAsNiArMTUwLDcgQEAgdm9pZCBO
YXZpZ2F0aW9uU3RhdGU6OnNldE5hdmlnYXRpb25EZWxlZwogICAgIG1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbkRlY2lzaW9u
SGFuZGxlcldlYnNpdGVQb2xpY2llcyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb246ZGVjaXNpb25I
YW5kbGVyOildOwogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRl
UG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblVzZXJJbmZvRGVjaXNpb25IYW5kbGVyV2Vic2l0ZVBv
bGljaWVzID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6
ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbjp1c2VySW5mbzpkZWNpc2lvbkhhbmRsZXI6
KV07CiAgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQb2xpY3lG
b3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXIgPSBbZGVsZWdhdGUgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3Rvcih3ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNw
b25zZTpkZWNpc2lvbkhhbmRsZXI6KV07CisgICAgbV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2Rz
LndlYlZpZXdEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXJX
aXRoV0tXZWJWaWV3ID0gW2RlbGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjop
XTsKIAogICAgIG1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkU3RhcnRQcm92
aXNpb25hbE5hdmlnYXRpb24gPSBbZGVsZWdhdGUgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rv
cih3ZWJWaWV3OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOildOwogICAgIG1fbmF2aWdh
dGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGlkU3RhcnRQcm92aXNpb25hbE5hdmlnYXRpb25V
c2VySW5mbyA9IFtkZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJWaWV3
OmRpZFN0YXJ0UHJvdmlzaW9uYWxOYXZpZ2F0aW9uOnVzZXJJbmZvOildOwpAQCAtNjU5LDcgKzY2
MCw3IEBAIHZvaWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjoKICAgICAKIHZv
aWQgTmF2aWdhdGlvblN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjpkZWNpZGVQb2xpY3lGb3JOYXZp
Z2F0aW9uUmVzcG9uc2UoV2ViUGFnZVByb3h5JiBwYWdlLCBSZWY8QVBJOjpOYXZpZ2F0aW9uUmVz
cG9uc2U+JiYgbmF2aWdhdGlvblJlc3BvbnNlLCBSZWY8V2ViRnJhbWVQb2xpY3lMaXN0ZW5lclBy
b3h5PiYmIGxpc3RlbmVyLCBBUEk6Ok9iamVjdCogdXNlckRhdGEpCiB7Ci0gICAgaWYgKCFtX25h
dmlnYXRpb25TdGF0ZS5tX25hdmlnYXRpb25EZWxlZ2F0ZU1ldGhvZHMud2ViVmlld0RlY2lkZVBv
bGljeUZvck5hdmlnYXRpb25SZXNwb25zZURlY2lzaW9uSGFuZGxlcikgeworICAgIGlmICghbV9u
YXZpZ2F0aW9uU3RhdGUubV9uYXZpZ2F0aW9uRGVsZWdhdGVNZXRob2RzLndlYlZpZXdEZWNpZGVQ
b2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2VEZWNpc2lvbkhhbmRsZXIgJiYgIW1fbmF2aWdhdGlv
blN0YXRlLm1fbmF2aWdhdGlvbkRlbGVnYXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvblJlc3BvbnNlRGVjaXNpb25IYW5kbGVyV2l0aFdLV2ViVmlldykgewogICAgICAg
ICBOU1VSTCAqdXJsID0gbmF2aWdhdGlvblJlc3BvbnNlLT5yZXNwb25zZSgpLm5zVVJMUmVzcG9u
c2UoKS5VUkw7CiAgICAgICAgIGlmIChbdXJsIGlzRmlsZVVSTF0pIHsKICAgICAgICAgICAgIEJP
T0wgaXNEaXJlY3RvcnkgPSBOTzsKQEAgLTY4MywyNiArNjg0LDU2IEBAIHZvaWQgTmF2aWdhdGlv
blN0YXRlOjpOYXZpZ2F0aW9uQ2xpZW50OjoKICAgICBpZiAoIW5hdmlnYXRpb25EZWxlZ2F0ZSkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byBjaGVja2VyID0gQ29tcGxldGlvbkhhbmRsZXJD
YWxsQ2hlY2tlcjo6Y3JlYXRlKG5hdmlnYXRpb25EZWxlZ2F0ZS5nZXQoKSwgQHNlbGVjdG9yKHdl
YlZpZXc6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjop
KTsKLSAgICBbbmF2aWdhdGlvbkRlbGVnYXRlIHdlYlZpZXc6bV9uYXZpZ2F0aW9uU3RhdGUubV93
ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTp3cmFwcGVyKG5hdmlnYXRp
b25SZXNwb25zZSkgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbbG9jYWxMaXN0ZW5lciA9
IFdURk1vdmUobGlzdGVuZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2VyKV0oV0tOYXZpZ2F0
aW9uUmVzcG9uc2VQb2xpY3kgcmVzcG9uc2VQb2xpY3kpIHsKLSAgICAgICAgaWYgKGNoZWNrZXIt
PmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQotICAgICAgICAgICAgcmV0dXJuOwot
ICAgICAgICBjaGVja2VyLT5kaWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLQotICAgICAgICBz
d2l0Y2ggKHJlc3BvbnNlUG9saWN5KSB7Ci0gICAgICAgIGNhc2UgV0tOYXZpZ2F0aW9uUmVzcG9u
c2VQb2xpY3lBbGxvdzoKLSAgICAgICAgICAgIGxvY2FsTGlzdGVuZXItPnVzZSgpOwotICAgICAg
ICAgICAgYnJlYWs7CisgICAgaWYgKG1fbmF2aWdhdGlvblN0YXRlLm1fbmF2aWdhdGlvbkRlbGVn
YXRlTWV0aG9kcy53ZWJWaWV3RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlRGVjaXNp
b25IYW5kbGVyKSB7CisgICAgICAgIGF1dG8gY2hlY2tlciA9IENvbXBsZXRpb25IYW5kbGVyQ2Fs
bENoZWNrZXI6OmNyZWF0ZShuYXZpZ2F0aW9uRGVsZWdhdGUuZ2V0KCksIEBzZWxlY3Rvcih3ZWJW
aWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpkZWNpc2lvbkhhbmRsZXI6KSk7
CisgICAgICAgIFtuYXZpZ2F0aW9uRGVsZWdhdGUgd2ViVmlldzptX25hdmlnYXRpb25TdGF0ZS5t
X3dlYlZpZXcgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOndyYXBwZXIobmF2aWdh
dGlvblJlc3BvbnNlKSBkZWNpc2lvbkhhbmRsZXI6bWFrZUJsb2NrUHRyKFtsb2NhbExpc3RlbmVy
ID0gV1RGTW92ZShsaXN0ZW5lciksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShXS05hdmln
YXRpb25SZXNwb25zZVBvbGljeSByZXNwb25zZVBvbGljeSkgeworICAgICAgICAgICAgaWYgKGNo
ZWNrZXItPmNvbXBsZXRpb25IYW5kbGVySGFzQmVlbkNhbGxlZCgpKQorICAgICAgICAgICAgICAg
IHJldHVybjsKKyAgICAgICAgICAgIGNoZWNrZXItPmRpZENhbGxDb21wbGV0aW9uSGFuZGxlcigp
OwogCi0gICAgICAgIGNhc2UgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lDYW5jZWw6Ci0gICAg
ICAgICAgICBsb2NhbExpc3RlbmVyLT5pZ25vcmUoKTsKLSAgICAgICAgICAgIGJyZWFrOworICAg
ICAgICAgICAgc3dpdGNoIChyZXNwb25zZVBvbGljeSkgeworICAgICAgICAgICAgY2FzZSBXS05h
dmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93OgorICAgICAgICAgICAgICAgIGxvY2FsTGlzdGVu
ZXItPnVzZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBjYXNlIFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsOgorICAgICAgICAgICAgICAgIGxvY2FsTGlz
dGVuZXItPmlnbm9yZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworCisgICAgICAgICAgICBj
YXNlIF9XS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUJlY29tZURvd25sb2FkOgorICAgICAgICAg
ICAgICAgIGxvY2FsTGlzdGVuZXItPmRvd25sb2FkKCk7CisgICAgICAgICAgICAgICAgYnJlYWs7
CisgICAgICAgICAgICB9CisgICAgICAgIH0pLmdldCgpXTsKKyAgICB9IGVsc2UgeworICAgICAg
ICBhdXRvIGNoZWNrZXIgPSBDb21wbGV0aW9uSGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUobmF2
aWdhdGlvbkRlbGVnYXRlLmdldCgpLCBAc2VsZWN0b3IoX3dlYlZpZXc6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvblJlc3BvbnNlOmRlY2lzaW9uSGFuZGxlcjopKTsKKyAgICAgICAgWyhpZCA8V0tO
YXZpZ2F0aW9uRGVsZWdhdGVQcml2YXRlPiluYXZpZ2F0aW9uRGVsZWdhdGUgX3dlYlZpZXc6bV9u
YXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3IGRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25z
ZTp3cmFwcGVyKG5hdmlnYXRpb25SZXNwb25zZSkgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0
cihbbG9jYWxMaXN0ZW5lciA9IFdURk1vdmUobGlzdGVuZXIpLCBjaGVja2VyID0gV1RGTW92ZShj
aGVja2VyKSwgd2Vic2l0ZURhdGFTdG9yZSA9IHJldGFpblB0cihtX25hdmlnYXRpb25TdGF0ZS5t
X3dlYlZpZXcuY29uZmlndXJhdGlvbi53ZWJzaXRlRGF0YVN0b3JlKSwgcHJvY2Vzc1Bvb2wgPSBy
ZXRhaW5QdHIobV9uYXZpZ2F0aW9uU3RhdGUubV93ZWJWaWV3LmNvbmZpZ3VyYXRpb24ucHJvY2Vz
c1Bvb2wpXShXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeSByZXNwb25zZVBvbGljeSwgV0tXZWJW
aWV3ICpjb250aW51YXRpb25XZWJWaWV3KSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29t
cGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAg
ICAgICAKKyAgICAgICAgICAgIGlmIChjb250aW51YXRpb25XZWJWaWV3KSB7CisgICAgICAgICAg
ICAgICAgaWYgKHdlYnNpdGVEYXRhU3RvcmUuZ2V0KCkgIT0gY29udGludWF0aW9uV2ViVmlldy5j
b25maWd1cmF0aW9uLndlYnNpdGVEYXRhU3RvcmUpCisgICAgICAgICAgICAgICAgICAgIFtOU0V4
Y2VwdGlvbiByYWlzZTpOU0ludmFsaWRBcmd1bWVudEV4Y2VwdGlvbiBmb3JtYXQ6QCJjb250aW51
YXRpb25XZWJWaWV3IG11c3Qgc2hhcmUgYSBXS1dlYnNpdGVEYXRhU3RvcmUgd2l0aCB0aGUgb3Jp
Z2luYWwgV0tXZWJWaWV3Il07CisgICAgICAgICAgICAgICAgaWYgKHByb2Nlc3NQb29sLmdldCgp
ICE9IGNvbnRpbnVhdGlvbldlYlZpZXcuY29uZmlndXJhdGlvbi5wcm9jZXNzUG9vbCkKKyAgICAg
ICAgICAgICAgICAgICAgW05TRXhjZXB0aW9uIHJhaXNlOk5TSW52YWxpZEFyZ3VtZW50RXhjZXB0
aW9uIGZvcm1hdDpAImNvbnRpbnVhdGlvbldlYlZpZXcgbXVzdCBzaGFyZSBhIFdLUHJvY2Vzc1Bv
b2wgd2l0aCB0aGUgb3JpZ2luYWwgV0tXZWJWaWV3Il07CisgICAgICAgICAgICB9CiAKLSAgICAg
ICAgY2FzZSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3dubG9hZDoKLSAgICAg
ICAgICAgIGxvY2FsTGlzdGVuZXItPmRvd25sb2FkKCk7Ci0gICAgICAgICAgICBicmVhazsKLSAg
ICAgICAgfQotICAgIH0pLmdldCgpXTsKKyAgICAgICAgICAgIHN3aXRjaCAocmVzcG9uc2VQb2xp
Y3kpIHsKKyAgICAgICAgICAgIGNhc2UgV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lBbGxvdzoK
KyAgICAgICAgICAgICAgICBsb2NhbExpc3RlbmVyLT51c2UobnVsbHB0ciwgUHJvY2Vzc1N3YXBS
ZXF1ZXN0ZWRCeUNsaWVudDo6Tm8sIFtjb250aW51YXRpb25XZWJWaWV3IF9wYWdlXSk7CisgICAg
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICBjYXNlIFdL
TmF2aWdhdGlvblJlc3BvbnNlUG9saWN5Q2FuY2VsOgorICAgICAgICAgICAgICAgIGxvY2FsTGlz
dGVuZXItPmlnbm9yZSgpOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgICAg
IAorICAgICAgICAgICAgY2FzZSBfV0tOYXZpZ2F0aW9uUmVzcG9uc2VQb2xpY3lCZWNvbWVEb3du
bG9hZDoKKyAgICAgICAgICAgICAgICBsb2NhbExpc3RlbmVyLT5kb3dubG9hZCgpOworICAgICAg
ICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAgICAgICB9KS5nZXQoKV07CisgICAg
fQogfQogCiB2b2lkIE5hdmlnYXRpb25TdGF0ZTo6TmF2aWdhdGlvbkNsaWVudDo6ZGlkU3RhcnRQ
cm92aXNpb25hbE5hdmlnYXRpb24oV2ViUGFnZVByb3h5JiBwYWdlLCBBUEk6Ok5hdmlnYXRpb24q
IG5hdmlnYXRpb24sIEFQSTo6T2JqZWN0KiB1c2VySW5mbykKSW5kZXg6IFRvb2xzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI0MzUzMikKKysrIFRv
b2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDE5LTAzLTI2
ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAg
QWRkIFNQSSBzdHViIGZvciBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uUmVzcG9uc2Ugd2l0aCBh
IGNvbnRpbnVhdGlvbiBXS1dlYlZpZXcKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTE5NjI4MworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9XS05hdmln
YXRpb25SZXNwb25zZS5tbToKKyAgICAgICAgKC1bTmF2aWdhdGlvblJlc3BvbnNlV2l0aFdLV2Vi
Vmlld0RlbGVnYXRlIF93ZWJWaWV3OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25SZXNwb25zZTpk
ZWNpc2lvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW05hdmlnYXRpb25SZXNwb25zZVdpdGhXS1dl
YlZpZXdEZWxlZ2F0ZSB3ZWJWaWV3OmRpZEZpbmlzaE5hdmlnYXRpb246XSk6CisgICAgICAgIChz
ZXR1cFdlYlZpZXcpOgorICAgICAgICAodGVzdExvYWRpbmcpOgorICAgICAgICAoVEVTVCk6CisK
IDIwMTktMDMtMjYgIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAgICAgICAg
IFVwZGF0ZSB0aGUgd2F5IGdlbmVyYXRlLXhjZmlsZWxpc3RzIHJldHVybnMgc3RyaW5ncyBmcm9t
IGZ1bmN0aW9ucwpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9X
S05hdmlnYXRpb25SZXNwb25zZS5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlvblJlc3BvbnNlLm1tCShyZXZpc2lvbiAyNDM0
NjIpCisrKyBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1dLTmF2aWdhdGlv
blJlc3BvbnNlLm1tCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw2ICsyNiw3IEBACiAjaW1wb3J0ICJj
b25maWcuaCIKIAogI2ltcG9ydCAiVXRpbGl0aWVzLmgiCisjaW1wb3J0IDxXZWJLaXQvV0tOYXZp
Z2F0aW9uRGVsZWdhdGVQcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XZWJLaXQuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5Q
dHIuaD4KQEAgLTE0MiwzICsxNDMsNjcgQEAgVEVTVChXZWJLaXQsIFdLTmF2aWdhdGlvblJlc3Bv
bnNlUERGVHlwZQogICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVz
dFdpdGhVUkw6dGVzdFVSTF1dOwogICAgIFRlc3RXZWJLaXRBUEk6OlV0aWw6OnJ1bigmaXNEb25l
KTsKIH0KKworc3RhdGljIFJldGFpblB0cjxXS1dlYlZpZXc+IGNvbnRpbnVhdGlvbldlYlZpZXc7
CitzdGF0aWMgQk9PTCBleHBlY3RFeGNlcHRpb247CisKK0BpbnRlcmZhY2UgTmF2aWdhdGlvblJl
c3BvbnNlV2l0aFdLV2ViVmlld0RlbGVnYXRlIDogTlNPYmplY3QgPFdLTmF2aWdhdGlvbkRlbGVn
YXRlPgorQGVuZAorCitAaW1wbGVtZW50YXRpb24gTmF2aWdhdGlvblJlc3BvbnNlV2l0aFdLV2Vi
Vmlld0RlbGVnYXRlCisKKy0gKHZvaWQpX3dlYlZpZXc6KFdLV2ViVmlldyAqKXdlYlZpZXcgZGVj
aWRlUG9saWN5Rm9yTmF2aWdhdGlvblJlc3BvbnNlOihXS05hdmlnYXRpb25SZXNwb25zZSAqKW5h
dmlnYXRpb25SZXNwb25zZSBkZWNpc2lvbkhhbmRsZXI6KHZvaWQgKF4pKFdLTmF2aWdhdGlvblJl
c3BvbnNlUG9saWN5LCBXS1dlYlZpZXcgKikpZGVjaXNpb25IYW5kbGVyCit7CisgICAgQHRyeSB7
CisgICAgICAgIGRlY2lzaW9uSGFuZGxlcihXS05hdmlnYXRpb25SZXNwb25zZVBvbGljeUFsbG93
LCBjb250aW51YXRpb25XZWJWaWV3LmdldCgpKTsKKyAgICAgICAgRVhQRUNUX0ZBTFNFKGV4cGVj
dEV4Y2VwdGlvbik7CisgICAgfSBAY2F0Y2ggKE5TRXhjZXB0aW9uICpleGNlcHRpb24pIHsKKyAg
ICAgICAgaXNEb25lID0gdHJ1ZTsKKyAgICAgICAgRVhQRUNUX1RSVUUoZXhwZWN0RXhjZXB0aW9u
KTsKKyAgICB9Cit9CisKKy0gKHZvaWQpd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBkaWRG
aW5pc2hOYXZpZ2F0aW9uOihXS05hdmlnYXRpb24gKiluYXZpZ2F0aW9uCit7CisgICAgaXNEb25l
ID0gdHJ1ZTsKK30KKworQGVuZAorCitzdGF0aWMgUmV0YWluUHRyPFdLV2ViVmlldz4gc2V0dXBX
ZWJWaWV3KCkKK3sKKyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtXS1dlYlZpZXcgbmV3XSk7
CisgICAgc3RhdGljIFJldGFpblB0cjxOYXZpZ2F0aW9uUmVzcG9uc2VXaXRoV0tXZWJWaWV3RGVs
ZWdhdGU+IGRlbGVnYXRlID0gYWRvcHROUyhbTmF2aWdhdGlvblJlc3BvbnNlV2l0aFdLV2ViVmll
d0RlbGVnYXRlIG5ld10pOworICAgIFt3ZWJWaWV3IHNldE5hdmlnYXRpb25EZWxlZ2F0ZTpkZWxl
Z2F0ZS5nZXQoKV07CisgICAgcmV0dXJuIHdlYlZpZXc7Cit9CisKK3N0YXRpYyB2b2lkIHRlc3RM
b2FkaW5nKFJldGFpblB0cjxXS1dlYlZpZXc+JiB3ZWJWaWV3KQoreworICAgIGlzRG9uZSA9IGZh
bHNlOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OltOU1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhV
Ukw6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBVUkxGb3JSZXNvdXJjZTpAInNpbXBsZSIgd2l0aEV4
dGVuc2lvbjpAImh0bWwiIHN1YmRpcmVjdG9yeTpAIlRlc3RXZWJLaXRBUEkucmVzb3VyY2VzIl1d
XTsKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGlsOjpydW4oJmlzRG9uZSk7Cit9CisKK1RFU1QoV2Vi
S2l0LCBOYXZpZ2F0aW9uUmVzcG9uc2VXaXRoV0tXZWJWaWV3KQoreworICAgIGF1dG8gd2ViVmll
d1dpdGhvdXRTaGFyaW5nUHJvY2Vzc1Bvb2wgPSBzZXR1cFdlYlZpZXcoKTsKKyAgICBjb250aW51
YXRpb25XZWJWaWV3ID0gYWRvcHROUyhbV0tXZWJWaWV3IG5ld10pOworICAgIGV4cGVjdEV4Y2Vw
dGlvbiA9IFlFUzsKKyAgICB0ZXN0TG9hZGluZyh3ZWJWaWV3V2l0aG91dFNoYXJpbmdQcm9jZXNz
UG9vbCk7CisKKyAgICBhdXRvIHdlYlZpZXdXaXRob3V0U2hhcmluZ1dlYnNpdGVEYXRhU3RvcmUg
PSBzZXR1cFdlYlZpZXcoKTsKKyAgICBhdXRvIGNvbmZpZ3VyYXRpb25XaXRob3V0U2hhcmluZ1dl
YnNpdGVEYXRhU3RvcmUgPSBhZG9wdE5TKFtXS1dlYlZpZXdDb25maWd1cmF0aW9uIG5ld10pOwor
ICAgIFtjb25maWd1cmF0aW9uV2l0aG91dFNoYXJpbmdXZWJzaXRlRGF0YVN0b3JlIHNldFByb2Nl
c3NQb29sOlt3ZWJWaWV3V2l0aG91dFNoYXJpbmdXZWJzaXRlRGF0YVN0b3JlIGNvbmZpZ3VyYXRp
b25dLnByb2Nlc3NQb29sXTsKKyAgICBbY29uZmlndXJhdGlvbldpdGhvdXRTaGFyaW5nV2Vic2l0
ZURhdGFTdG9yZSBzZXRXZWJzaXRlRGF0YVN0b3JlOltXS1dlYnNpdGVEYXRhU3RvcmUgbm9uUGVy
c2lzdGVudERhdGFTdG9yZV1dOworICAgIGNvbnRpbnVhdGlvbldlYlZpZXcgPSBhZG9wdE5TKFtb
V0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5TTWFrZVJlY3QoMCwgMCwgODAwLCA2MDAp
IGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbldpdGhvdXRTaGFyaW5nV2Vic2l0ZURhdGFTdG9y
ZS5nZXQoKV0pOworICAgIGV4cGVjdEV4Y2VwdGlvbiA9IFlFUzsKKyAgICB0ZXN0TG9hZGluZyh3
ZWJWaWV3V2l0aG91dFNoYXJpbmdXZWJzaXRlRGF0YVN0b3JlKTsKKworICAgIGF1dG8gd2ViVmll
dyA9IHNldHVwV2ViVmlldygpOworICAgIGF1dG8gY29uZmlndXJhdGlvbiA9IGFkb3B0TlMoW1dL
V2ViVmlld0NvbmZpZ3VyYXRpb24gbmV3XSk7CisgICAgW2NvbmZpZ3VyYXRpb24gc2V0UHJvY2Vz
c1Bvb2w6W3dlYlZpZXcgY29uZmlndXJhdGlvbl0ucHJvY2Vzc1Bvb2xdOworICAgIGNvbnRpbnVh
dGlvbldlYlZpZXcgPSBhZG9wdE5TKFtbV0tXZWJWaWV3IGFsbG9jXSBpbml0V2l0aEZyYW1lOk5T
TWFrZVJlY3QoMCwgMCwgODAwLCA2MDApIGNvbmZpZ3VyYXRpb246Y29uZmlndXJhdGlvbi5nZXQo
KV0pOworICAgIGV4cGVjdEV4Y2VwdGlvbiA9IE5POworICAgIHRlc3RMb2FkaW5nKHdlYlZpZXcp
OworfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>