<?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>194857</bug_id>
          
          <creation_ts>2019-02-20 10:03:02 -0800</creation_ts>
          <short_desc>Regression(PSON) Crash under WebKit::WebPageProxy::decidePolicyForNavigationActionSync</short_desc>
          <delta_ts>2019-02-20 16:52:39 -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>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Chris Dumez">cdumez</reporter>
          <assigned_to name="Chris Dumez">cdumez</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508104</commentid>
    <comment_count>0</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-20 10:03:02 -0800</bug_when>
    <thetext>Crash under WebKit::WebPageProxy::decidePolicyForNavigationActionSync:
Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed ↩:
0   WebKit                        	0x00000001c1896534 WTFCrashWithInfo(int, char const*, char const*, int) + 20 (Assertions.h:559)
1   WebKit                        	0x00000001c1a617d4 WebKit::WebPageProxy::decidePolicyForNavigationActionSync(unsigned long long, bool, WebCore::SecurityOriginData&amp;&amp;, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData&amp;&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, IPC::FormDataReference&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WTF::CompletionHandler&lt;void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;)&gt;&amp;&amp;) + 484 (Assertions.h:578)
2   WebKit                        	0x00000001c1c87110 void IPC::callMemberFunctionImpl&lt;WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, bool, WebCore::SecurityOriginData&amp;&amp;, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData&amp;&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, IPC::FormDataReference&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WTF::CompletionHandler&lt;void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;)&gt;&amp;&amp;), void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;), std::__1::tuple&lt;unsigned long long, bool, WebCore::SecurityOriginData, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData, WebKit::FrameInfoData, unsigned long long, WebCore::ResourceRequest, WebCore::ResourceRequest, IPC::FormDataReference, WebCore::ResourceResponse, WebKit::UserData&gt;, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul, 11ul, 12ul&gt;(WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, bool, WebCore::SecurityOriginData&amp;&amp;, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData&amp;&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, IPC::FormDataReference&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WTF::CompletionHandler&lt;void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;)&gt;&amp;&amp;), WTF::CompletionHandler&lt;void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;)&gt;&amp;&amp;, std::__1::tuple&lt;unsigned long long, bool, WebCore::SecurityOriginData, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData, WebKit::FrameInfoData, unsigned long long, WebCore::ResourceRequest, WebCore::ResourceRequest, IPC::FormDataReference, WebCore::ResourceResponse, WebKit::UserData&gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul, 1ul, 2ul, 3ul, 4ul, 5ul, 6ul, 7ul, 8ul, 9ul, 10ul, 11ul, 12ul&gt;) + 140 (HandleMessage.h:69)
3   WebKit                        	0x00000001c1c7a2c4 void IPC::handleMessageDelayed&lt;Messages::WebPageProxy::DecidePolicyForNavigationActionSync, WebKit::WebPageProxy, void (WebKit::WebPageProxy::*)(unsigned long long, bool, WebCore::SecurityOriginData&amp;&amp;, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData&amp;&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, IPC::FormDataReference&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WTF::CompletionHandler&lt;void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;)&gt;&amp;&amp;)&gt;(IPC::Connection&amp;, IPC::Decoder&amp;, std::__1::unique_ptr&lt;IPC::Encoder, std::__1::default_delete&lt;IPC::Encoder&gt; &gt;&amp;, WebKit::WebPageProxy*, void (WebKit::WebPageProxy::*)(unsigned long long, bool, WebCore::SecurityOriginData&amp;&amp;, WebCore::PolicyCheckIdentifier, unsigned long long, WebKit::NavigationActionData&amp;&amp;, WebKit::FrameInfoData&amp;&amp;, unsigned long long, WebCore::ResourceRequest const&amp;, WebCore::ResourceRequest&amp;&amp;, IPC::FormDataReference&amp;&amp;, WebCore::ResourceResponse&amp;&amp;, WebKit::UserData const&amp;, WTF::CompletionHandler&lt;void (WebCore::PolicyCheckIdentifier const&amp;, WebCore::PolicyAction, unsigned long long, WebKit::DownloadID const&amp;, WTF::Optional&lt;WebKit::WebsitePoliciesData&gt; const&amp;)&gt;&amp;&amp;)) + 156 (HandleMessage.h:75)
4   WebKit                        	0x00000001c19feeb8 WebKit::ProvisionalPageProxy::didReceiveSyncMessage(IPC::Connection&amp;, IPC::Decoder&amp;, std::__1::unique_ptr&lt;IPC::Encoder, std::__1::default_delete&lt;IPC::Encoder&gt; &gt;&amp;) + 104 (ProvisionalPageProxy.cpp:381)
5   WebKit                        	0x00000001c18b3e38 IPC::MessageReceiverMap::dispatchSyncMessage(IPC::Connection&amp;, IPC::Decoder&amp;, std::__1::unique_ptr&lt;IPC::Encoder, std::__1::default_delete&lt;IPC::Encoder&gt; &gt;&amp;) + 136 (MessageReceiverMap.cpp:0)
6   WebKit                        	0x00000001c1a83518 WebKit::WebProcessProxy::didReceiveSyncMessage(IPC::Connection&amp;, IPC::Decoder&amp;, std::__1::unique_ptr&lt;IPC::Encoder, std::__1::default_delete&lt;IPC::Encoder&gt; &gt;&amp;) + 40 (WebProcessProxy.cpp:662)
7   WebKit                        	0x00000001c18a6d00 IPC::Connection::dispatchSyncMessage(IPC::Decoder&amp;) + 204 (Connection.cpp:900)
8   WebKit                        	0x00000001c18a3cc0 IPC::Connection::dispatchMessage(std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;) + 140 (Connection.cpp:1003)
9   WebKit                        	0x00000001c18a3ad0 IPC::Connection::SyncMessageState::dispatchMessages(IPC::Connection*) + 236 (Connection.cpp:182)
10  JavaScriptCore                	0x00000001b9278a98 WTF::RunLoop::performWork() + 356 (Function.h:56)
11  JavaScriptCore                	0x00000001b9278d14 WTF::RunLoop::performWork(void*) + 40 (RunLoopCF.cpp:38)
12  CoreFoundation                	0x00000001b16847c8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 28 (CFRunLoop.c:1980)
13  CoreFoundation                	0x00000001b1684744 __CFRunLoopDoSource0 + 92 (CFRunLoop.c:2015)
14  CoreFoundation                	0x00000001b1684000 __CFRunLoopDoSources0 + 180 (CFRunLoop.c:2051)
15  CoreFoundation                	0x00000001b167ecd0 __CFRunLoopRun + 992 (CFRunLoop.c:2922)
16  CoreFoundation                	0x00000001b167e5d0 CFRunLoopRunSpecific + 452 (CFRunLoop.c:3247)
17  GraphicsServices              	0x00000001b38bbdd4 GSEventRunModal + 108 (GSEvent.c:2245)
18  UIKitCore                     	0x00000001df6ed154 UIApplicationMain + 216 (UIApplication.m:4353)
19  MobileSafari                  	0x00000001000776ec main + 1504 (main.m:121)
20  libdyld.dylib                 	0x00000001b113d2b4 start + 4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508106</commentid>
    <comment_count>1</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-20 10:03:17 -0800</bug_when>
    <thetext>&lt;rdar://problem/47759323&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508111</commentid>
    <comment_count>2</comment_count>
      <attachid>362508</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-20 10:06:55 -0800</bug_when>
    <thetext>Created attachment 362508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508113</commentid>
    <comment_count>3</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-20 10:07:46 -0800</bug_when>
    <thetext>*** Bug 194840 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508126</commentid>
    <comment_count>4</comment_count>
      <attachid>362508</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2019-02-20 10:26:57 -0800</bug_when>
    <thetext>Comment on attachment 362508
Patch

Wow, I was just thinking we don&apos;t have enough decidePolicyForNavigationAction* functions.  I&apos;m glad we can reproduce this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508149</commentid>
    <comment_count>5</comment_count>
      <attachid>362508</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-20 11:19:32 -0800</bug_when>
    <thetext>Comment on attachment 362508
Patch

Clearing flags on attachment: 362508

Committed r241823: &lt;https://trac.webkit.org/changeset/241823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508150</commentid>
    <comment_count>6</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-02-20 11:19:33 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508366</commentid>
    <comment_count>7</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2019-02-20 16:52:39 -0800</bug_when>
    <thetext>Follow-up build fix:
&lt;https://trac.webkit.org/changeset/241853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362508</attachid>
            <date>2019-02-20 10:06:55 -0800</date>
            <delta_ts>2019-02-20 11:19:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194857-20190220100654.patch</filename>
            <type>text/plain</type>
            <size>13641</size>
            <attacher name="Chris Dumez">cdumez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxODE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDI0MmNlYTE2OTg0MzQwZTNi
NjE2ODU2ZDdlNTY2YTNjOGZhNGViNTMuLmEzMTUzMTQ2MzIwYjExZjhkMzI0MDM2MTgxMDE2MWQ5
ZDBjYWRjZDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjYgQEAKKzIwMTktMDItMjAgIENocmlzIER1
bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKFBTT04pIENyYXNo
IHVuZGVyIFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0
aW9uU3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTk0ODU3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Nzc1OTMyMz4KKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgUHJvdmlzaW9uYWxQYWdlUHJv
eHkgd2FzIGJsaW5kbHkgZm9yd2FyZGluZyB0aGUgRGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFj
dGlvblN5bmMKKyAgICAgICAgc3luY2hyb25vdXMgSVBDIHRvIHRoZSBXZWJQYWdlUHJveHksIHdp
dGhvdXQgcGFzc2luZyBpdCB0aGUgcHJvY2VzcyB0aGUgSVBDIGNhbWUgZnJvbS4KKyAgICAgICAg
QXMgYSByZXN1bHQsIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlv
blN5bmMoKSB3b3VsZCB0cnkgdG8gbG9vayB1cAorICAgICAgICBhIFdlYkZyYW1lUHJveHkgdXNp
bmcgdGhlIHByb3ZpZGVkIGZyYW1lSUQgZnJvbSB0aGUgd3JvbmcgcHJvY2VzcyBhbmQgd2Ugd291
bGQgZW5kIHVwCisgICAgICAgIGhpdHRpbmcgYSBSRUxFQVNFX0FTU0VSVCgpLgorCisgICAgICAg
ICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6
UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5j
KToKKyAgICAgICAgKFdlYktpdDo6UHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZSk6CisgICAgICAgICogVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmMpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jU2hhcmVkKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisKIDIwMTkt
MDItMjAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAg
ICAgIFtXUEVdIFNlbmQgY2xpZW50IGhvc3QgZmQgYW5kIGxpYnJhcnkgbmFtZSBhcyB3ZWIgcHJv
Y2VzcyBjcmVhdGlvbiBwYXJhbWV0ZXJzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Q
cm92aXNpb25hbFBhZ2VQcm94eS5jcHAKaW5kZXggMWY4ZDRhMzVmY2EwZDc0ZTZiYjg2NjI1YjJi
MDgyYWEyNmEyMTdhZi4uZWIyOTlhODdiNzU1NWYwM2NjOGUyNWRkMTk5MmM5NWEwZjQ3MzlmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFnZVByb3h5LmNw
cApAQCAtMzA0LDYgKzMwNCwyOSBAQCB2b2lkIFByb3Zpc2lvbmFsUGFnZVByb3h5OjpiYWNrRm9y
d2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJkSXRlbUlkZQogICAgIG1fcGFn
ZS5iYWNrRm9yd2FyZEdvVG9JdGVtU2hhcmVkKG1fcHJvY2Vzcy5jb3B5UmVmKCksIGlkZW50aWZp
ZXIsIGhhbmRsZSk7CiB9CiAKK3ZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wgaXNNYWluRnJh
bWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2VjdXJpdHlPcmlnaW4sIFdl
YkNvcmU6OlBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAorICAgIHVpbnQ2NF90IG5h
dmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9uRGF0YSwg
RnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5nUGFnZUlE
LAorICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNl
JiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLAorICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94
eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBseSYmIHJl
cGx5KQoreworICAgIEFTU0VSVChpc01haW5GcmFtZSk7CisgICAgQVNTRVJUKCFtX21haW5GcmFt
ZSB8fCBtX21haW5GcmFtZS0+ZnJhbWVJRCgpID09IGZyYW1lSUQpOworCisgICAgaWYgKCFpc01h
aW5GcmFtZSB8fCAobV9tYWluRnJhbWUgJiYgbV9tYWluRnJhbWUtPmZyYW1lSUQoKSAhPSBmcmFt
ZUlEKSkgeworICAgICAgICByZXBseShpZGVudGlmaWVyLCBXZWJDb3JlOjpQb2xpY3lBY3Rpb246
Oklnbm9yZSwgbmF2aWdhdGlvbklELCBEb3dubG9hZElEKCksIFdURjo6bnVsbG9wdCk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAoIW1fbWFpbkZyYW1lKSB7CisgICAgICAgIC8v
IFRoaXMgc3luY2hyb25vdXMgSVBDIG1lc3NhZ2Ugd2FzIHByb2Nlc3NlZCBiZWZvcmUgdGhlIGFz
eW5jaHJvbm91cyBEaWRDcmVhdGVNYWluRnJhbWUgb25lIHNvIHdlIGRvIG5vdCBrbm93IGFib3V0
IHRoaXMgZnJhbWVJRCB5ZXQuCisgICAgICAgIGRpZENyZWF0ZU1haW5GcmFtZShmcmFtZUlEKTsK
KyAgICB9CisgICAgQVNTRVJUKG1fbWFpbkZyYW1lKTsKKworICAgIG1fcGFnZS5kZWNpZGVQb2xp
Y3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3MuY29weVJlZigpLCBmcmFt
ZUlELCBpc01haW5GcmFtZSwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgaWRlbnRpZmll
ciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwKKyAgICAgICAg
V1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQsIG9yaWdpbmFsUmVxdWVz
dCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSksIFdURk1vdmUocmVkaXJl
Y3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7Cit9CisKICNpZiBQTEFURk9S
TShDT0NPQSkKIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OnJlZ2lzdGVyV2ViUHJvY2Vzc0Fj
Y2Vzc2liaWxpdHlUb2tlbihjb25zdCBJUEM6OkRhdGFSZWZlcmVuY2UmIGRhdGEpCiB7CkBAIC00
MDQsNiArNDI3LDExIEBAIHZvaWQgUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRpZFJlY2VpdmVTeW5j
TWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIElQCiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKKyAgICBpZiAoZGVjb2Rlci5tZXNzYWdlTmFtZSgpID09IE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpuYW1lKCkpIHsK
KyAgICAgICAgSVBDOjpoYW5kbGVNZXNzYWdlRGVsYXllZDxNZXNzYWdlczo6V2ViUGFnZVByb3h5
OjpEZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luYz4oY29ubmVjdGlvbiwgZGVjb2Rl
ciwgcmVwbHlFbmNvZGVyLCB0aGlzLCAmUHJvdmlzaW9uYWxQYWdlUHJveHk6OmRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKwogICAg
IG1fcGFnZS5kaWRSZWNlaXZlU3luY01lc3NhZ2UoY29ubmVjdGlvbiwgZGVjb2RlciwgcmVwbHlF
bmNvZGVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlz
aW9uYWxQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1Byb3Zpc2lvbmFsUGFn
ZVByb3h5LmgKaW5kZXggNjBkMzkxMDgzYmZmYzY3OGJmOTk0NWQyYmFiOTQ0M2U4ZGU0YWE4Zi4u
YzQyZmU2ZGY0YmFkODhjMDliZDQ4NGVlNjNiNjNmMDQ0ZWRjNDU5MCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUHJvdmlzaW9uYWxQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9Qcm92aXNpb25hbFBhZ2VQcm94eS5oCkBAIC0xMDIsNiArMTAyLDkg
QEAgcHJpdmF0ZToKICAgICB2b2lkIGRpZEZhaWxQcm92aXNpb25hbExvYWRGb3JGcmFtZSh1aW50
NjRfdCBmcmFtZUlELCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgY29uc3QgU3RyaW5nJiBwcm92aXNp
b25hbFVSTCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYsIGNvbnN0IFVzZXJEYXRhJik7
CiAgICAgdm9pZCBzdGFydFVSTFNjaGVtZVRhc2soVVJMU2NoZW1lVGFza1BhcmFtZXRlcnMmJik7
CiAgICAgdm9pZCBiYWNrRm9yd2FyZEdvVG9JdGVtKGNvbnN0IFdlYkNvcmU6OkJhY2tGb3J3YXJk
SXRlbUlkZW50aWZpZXImLCBTYW5kYm94RXh0ZW5zaW9uOjpIYW5kbGUmKTsKKyAgICB2b2lkIGRl
Y2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVpbnQ2NF90IGZyYW1lSUQsIGJvb2wg
aXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmLCBXZWJDb3JlOjpQb2xp
Y3lDaGVja0lkZW50aWZpZXIsIHVpbnQ2NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlv
bkRhdGEmJiwKKyAgICAgICAgRnJhbWVJbmZvRGF0YSYmLCB1aW50NjRfdCBvcmlnaW5hdGluZ1Bh
Z2VJRCwgY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiBvcmlnaW5hbFJlcXVlc3QsIFdl
YkNvcmU6OlJlc291cmNlUmVxdWVzdCYmLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlJiYgcmVxdWVz
dEJvZHksCisgICAgICAgIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVjdFJlc3Bv
bnNlLCBjb25zdCBVc2VyRGF0YSYsIE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGlj
eUZvck5hdmlnYXRpb25BY3Rpb25TeW5jOjpEZWxheWVkUmVwbHkmJik7CiAjaWYgUExBVEZPUk0o
Q09DT0EpCiAgICAgdm9pZCByZWdpc3RlcldlYlByb2Nlc3NBY2Nlc3NpYmlsaXR5VG9rZW4oY29u
c3QgSVBDOjpEYXRhUmVmZXJlbmNlJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuY3BwCmluZGV4IDUyYjRjOGUyMjdhM2JkM2Q3ZTQ1N2JmNmM1ZGNkMGUzNmIx
ODdiZGEuLmZjMTljZTBjMDNiMGQ0MWJkOWJlOGI1M2M0ZjAzYzI0Njc4ODEzYTYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtNDYyMSw4ICs0NjIxLDYgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OmRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25TeW5jKHVp
bnQ2NF90IGZyYW1lSUQsIGJvb2wgaXMKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmIG9yaWdpbmFsUmVxdWVzdCwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5LCBXZWJDb3JlOjpSZXNvdXJjZVJl
c3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwKICAgICBjb25zdCBVc2VyRGF0YSYgdXNlckRhdGEs
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkRlY2lkZVBvbGljeUZvck5hdmlnYXRpb25BY3Rpb25T
eW5jOjpEZWxheWVkUmVwbHkmJiByZXBseSkKIHsKLSAgICBhdXRvIHNlbmRlciA9IFBvbGljeURl
Y2lzaW9uU2VuZGVyOjpjcmVhdGUoaWRlbnRpZmllciwgV1RGTW92ZShyZXBseSkpOwotCiAgICAg
YXV0byogZnJhbWUgPSBtX3Byb2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOwogICAgIGlmICghZnJh
bWUpIHsKICAgICAgICAgLy8gVGhpcyBzeW5jaHJvbm91cyBJUEMgbWVzc2FnZSB3YXMgcHJvY2Vz
c2VkIGJlZm9yZSB0aGUgYXN5bmNocm9ub3VzIERpZENyZWF0ZU1haW5GcmFtZSAvIERpZENyZWF0
ZVN1YmZyYW1lIG9uZSBzbyB3ZSBkbyBub3Qga25vdyBhYm91dCB0aGlzIGZyYW1lSUQgeWV0LgpA
QCAtNDYzMCwxMiArNDYyOCwyMyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6ZGVjaWRlUG9saWN5Rm9y
TmF2aWdhdGlvbkFjdGlvblN5bmModWludDY0X3QgZnJhbWVJRCwgYm9vbCBpcwogICAgICAgICAg
ICAgZGlkQ3JlYXRlTWFpbkZyYW1lKGZyYW1lSUQpOwogICAgICAgICBlbHNlCiAgICAgICAgICAg
ICBkaWRDcmVhdGVTdWJmcmFtZShmcmFtZUlEKTsKLQotICAgICAgICBmcmFtZSA9IG1fcHJvY2Vz
cy0+d2ViRnJhbWUoZnJhbWVJRCk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGZyYW1lKTsKICAg
ICB9CiAKLSAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uKG1fcHJvY2Vzcy5jb3B5
UmVmKCksICpmcmFtZSwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3JpZ2luKSwgbmF2aWdhdGlvbklE
LCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25EYXRhKSwgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwK
KyAgICBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1NoYXJlZChtX3Byb2Nlc3Mu
Y29weVJlZigpLCBmcmFtZUlELCBpc01haW5GcmFtZSwgV1RGTW92ZShmcmFtZVNlY3VyaXR5T3Jp
Z2luKSwgaWRlbnRpZmllciwgbmF2aWdhdGlvbklELCBXVEZNb3ZlKG5hdmlnYXRpb25BY3Rpb25E
YXRhKSwKKyAgICAgICAgV1RGTW92ZShmcmFtZUluZm9EYXRhKSwgb3JpZ2luYXRpbmdQYWdlSUQs
IG9yaWdpbmFsUmVxdWVzdCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZXF1ZXN0Qm9keSks
IFdURk1vdmUocmVkaXJlY3RSZXNwb25zZSksIHVzZXJEYXRhLCBXVEZNb3ZlKHJlcGx5KSk7Cit9
CisKK3ZvaWQgV2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3lu
Y1NoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmIHByb2Nlc3MsIHVpbnQ2NF90IGZyYW1lSUQs
IGJvb2wgaXNNYWluRnJhbWUsIFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YSYmIGZyYW1lU2Vj
dXJpdHlPcmlnaW4sIFBvbGljeUNoZWNrSWRlbnRpZmllciBpZGVudGlmaWVyLAorICAgIHVpbnQ2
NF90IG5hdmlnYXRpb25JRCwgTmF2aWdhdGlvbkFjdGlvbkRhdGEmJiBuYXZpZ2F0aW9uQWN0aW9u
RGF0YSwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mb0RhdGEsIHVpbnQ2NF90IG9yaWdpbmF0aW5n
UGFnZUlELAorICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1
ZXN0LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBJUEM6OkZvcm1EYXRhUmVm
ZXJlbmNlJiYgcmVxdWVzdEJvZHksIFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmJiByZWRpcmVj
dFJlc3BvbnNlLAorICAgIGNvbnN0IFVzZXJEYXRhJiB1c2VyRGF0YSwgTWVzc2FnZXM6OldlYlBh
Z2VQcm94eTo6RGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvblN5bmM6OkRlbGF5ZWRSZXBs
eSYmIHJlcGx5KQoreworICAgIGF1dG8gc2VuZGVyID0gUG9saWN5RGVjaXNpb25TZW5kZXI6OmNy
ZWF0ZShpZGVudGlmaWVyLCBXVEZNb3ZlKHJlcGx5KSk7CisKKyAgICBhdXRvKiBmcmFtZSA9IHBy
b2Nlc3MtPndlYkZyYW1lKGZyYW1lSUQpOworICAgIE1FU1NBR0VfQ0hFQ0socHJvY2VzcywgZnJh
bWUpOworCisgICAgZGVjaWRlUG9saWN5Rm9yTmF2aWdhdGlvbkFjdGlvbihXVEZNb3ZlKHByb2Nl
c3MpLCAqZnJhbWUsIFdURk1vdmUoZnJhbWVTZWN1cml0eU9yaWdpbiksIG5hdmlnYXRpb25JRCwg
V1RGTW92ZShuYXZpZ2F0aW9uQWN0aW9uRGF0YSksIFdURk1vdmUoZnJhbWVJbmZvRGF0YSksCiAg
ICAgICAgIG9yaWdpbmF0aW5nUGFnZUlELCBvcmlnaW5hbFJlcXVlc3QsIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUocmVxdWVzdEJvZHkpLCBXVEZNb3ZlKHJlZGlyZWN0UmVzcG9uc2UpLCB1c2Vy
RGF0YSwgc2VuZGVyLmNvcHlSZWYoKSk7CiAKICAgICAvLyBJZiB0aGUgY2xpZW50IGRpZCBub3Qg
cmVzcG9uZCBzeW5jaHJvbm91c2x5LCBwcm9jZWVkIHdpdGggdGhlIGxvYWQuCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IGIyYjBlODVkMmUwZDE1OWIwOGQwOWIzMzgx
N2M4ZmMxMjZjMGQ4NGYuLmRmNjdlZWM0Mjg1OTI0MjJlMGJmMDJiMmQ4NGEyZjFkN2QxNjhhMTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC0xNDU1LDYgKzE0NTUs
OSBAQCBwdWJsaWM6CiAgICAgdm9pZCBsb2FkRGF0YVdpdGhOYXZpZ2F0aW9uU2hhcmVkKFJlZjxX
ZWJQcm9jZXNzUHJveHk+JiYsIEFQSTo6TmF2aWdhdGlvbiYsIGNvbnN0IElQQzo6RGF0YVJlZmVy
ZW5jZSYsIGNvbnN0IFN0cmluZyYgTUlNRVR5cGUsIGNvbnN0IFN0cmluZyYgZW5jb2RpbmcsIGNv
bnN0IFN0cmluZyYgYmFzZVVSTCwgQVBJOjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91
bGRUcmVhdEFzQ29udGludWluZ0xvYWQsIE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYg
PSBXVEY6Om51bGxvcHQpOwogICAgIHZvaWQgbG9hZFJlcXVlc3RXaXRoTmF2aWdhdGlvblNoYXJl
ZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBBUEk6Ok5hdmlnYXRpb24mLCBXZWJDb3JlOjpSZXNv
dXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6U2hvdWxkT3BlbkV4dGVybmFsVVJMc1BvbGljeSwgQVBJ
OjpPYmplY3QqIHVzZXJEYXRhLCBXZWJDb3JlOjpTaG91bGRUcmVhdEFzQ29udGludWluZ0xvYWQs
IE9wdGlvbmFsPFdlYnNpdGVQb2xpY2llc0RhdGE+JiYgPSBXVEY6Om51bGxvcHQpOwogICAgIHZv
aWQgYmFja0ZvcndhcmRHb1RvSXRlbVNoYXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCBjb25z
dCBXZWJDb3JlOjpCYWNrRm9yd2FyZEl0ZW1JZGVudGlmaWVyJiwgU2FuZGJveEV4dGVuc2lvbjo6
SGFuZGxlJik7CisgICAgdm9pZCBkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0aW9uQWN0aW9uU3luY1No
YXJlZChSZWY8V2ViUHJvY2Vzc1Byb3h5PiYmLCB1aW50NjRfdCBmcmFtZUlELCBib29sIGlzTWFp
bkZyYW1lLCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGEmJiwgV2ViQ29yZTo6UG9saWN5Q2hl
Y2tJZGVudGlmaWVyLCB1aW50NjRfdCBuYXZpZ2F0aW9uSUQsIE5hdmlnYXRpb25BY3Rpb25EYXRh
JiYsCisgICAgICAgIEZyYW1lSW5mb0RhdGEmJiwgdWludDY0X3Qgb3JpZ2luYXRpbmdQYWdlSUQs
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYgb3JpZ2luYWxSZXF1ZXN0LCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIHJlcXVlc3RCb2R5
LAorICAgICAgICBXZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiYgcmVkaXJlY3RSZXNwb25zZSwg
Y29uc3QgVXNlckRhdGEmLCBNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpEZWNpZGVQb2xpY3lGb3JO
YXZpZ2F0aW9uQWN0aW9uU3luYzo6RGVsYXllZFJlcGx5JiYpOwogCiAgICAgdm9pZCBkdW1wQWRD
bGlja0F0dHJpYnV0aW9uKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3QgU3RyaW5nJik+JiYp
OwogICAgIHZvaWQgY2xlYXJBZENsaWNrQXR0cmlidXRpb24oQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA5NjcwOGU3OWJhZDZhMDM1YThlZjcyMGRiYTlhOGU2M2QyOTViOWIxLi45NDc4NjRjMDEy
YmI3NDZjMjdiNWZjY2YwZGY0YjFiZDdlMzgxNTgyIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMTktMDItMjAgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KKworICAgICAgICBSZWdyZXNzaW9uKFBTT04p
IENyYXNoIHVuZGVyIFdlYktpdDo6V2ViUGFnZVByb3h5OjpkZWNpZGVQb2xpY3lGb3JOYXZpZ2F0
aW9uQWN0aW9uU3luYworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTk0ODU3CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS80Nzc1OTMyMz4KKworICAgICAg
ICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgQVBJIHRlc3QgY292
ZXJhZ2UuCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nl
c3NTd2FwT25OYXZpZ2F0aW9uLm1tOgorCiAyMDE5LTAyLTIwICBBZHJpYW4gUGVyZXogZGUgQ2Fz
dHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV1bR1RLXSBFbmFibGUgc3Vw
cG9ydCBmb3IgQ09OVEVOVF9FWFRFTlNJT05TCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0
QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tIGIvVG9vbHMv
VGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9Qcm9jZXNzU3dhcE9uTmF2aWdhdGlvbi5t
bQppbmRleCA4Yzk2YmVjMDNiM2U3MGZmZGRhYTM0OWE1NjJkNzJjNTVhNDFkNWVmLi4xZjIxMGFj
MTc1ZmMzYTgyNTg4MGMxODhhZjQyZWU4YzQ4YjE5NDAzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdENvY29hL1Byb2Nlc3NTd2FwT25OYXZpZ2F0aW9uLm1tCisr
KyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvUHJvY2Vzc1N3YXBPbk5h
dmlnYXRpb24ubW0KQEAgLTE0ODMsNiArMTQ4Myw1NSBAQCBURVNUKFByb2Nlc3NTd2FwLCBTZXJ2
ZXJSZWRpcmVjdDIpCiAgICAgRVhQRUNUX1dLX1NUUkVRKEAicHNvbjovL3d3dy53ZWJraXQub3Jn
L21haW4xLmh0bWwiLCBbW3dlYlZpZXcgVVJMXSBhYnNvbHV0ZVN0cmluZ10pOwogfQogCitURVNU
KFByb2Nlc3NTd2FwLCBTZXJ2ZXJSZWRpcmVjdFRvQWJvdXRCbGFuaykKK3sKKyAgICBhdXRvIHBy
b2Nlc3NQb29sQ29uZmlndXJhdGlvbiA9IHBzb25Qcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24oKTsK
KyAgICBhdXRvIHByb2Nlc3NQb29sID0gYWRvcHROUyhbW1dLUHJvY2Vzc1Bvb2wgYWxsb2NdIF9p
bml0V2l0aENvbmZpZ3VyYXRpb246cHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmdldCgpXSk7CisK
KyAgICBhdXRvIHdlYlZpZXdDb25maWd1cmF0aW9uID0gYWRvcHROUyhbW1dLV2ViVmlld0NvbmZp
Z3VyYXRpb24gYWxsb2NdIGluaXRdKTsKKyAgICBbd2ViVmlld0NvbmZpZ3VyYXRpb24gc2V0UHJv
Y2Vzc1Bvb2w6cHJvY2Vzc1Bvb2wuZ2V0KCldOworICAgIGF1dG8gaGFuZGxlciA9IGFkb3B0TlMo
W1tQU09OU2NoZW1lIGFsbG9jXSBpbml0XSk7CisgICAgW2hhbmRsZXIgYWRkUmVkaXJlY3RGcm9t
VVJMU3RyaW5nOkAicHNvbjovL3d3dy53ZWJraXQub3JnL21haW4uaHRtbCIgdG9VUkxTdHJpbmc6
QCJhYm91dDpibGFuayJdOworICAgIFt3ZWJWaWV3Q29uZmlndXJhdGlvbiBzZXRVUkxTY2hlbWVI
YW5kbGVyOmhhbmRsZXIuZ2V0KCkgZm9yVVJMU2NoZW1lOkAicHNvbiJdOworCisgICAgYXV0byB3
ZWJWaWV3ID0gYWRvcHROUyhbW1dLV2ViVmlldyBhbGxvY10gaW5pdFdpdGhGcmFtZTpOU01ha2VS
ZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOndlYlZpZXdDb25maWd1cmF0aW9uLmdl
dCgpXSk7CisgICAgYXV0byBkZWxlZ2F0ZSA9IGFkb3B0TlMoW1tQU09OTmF2aWdhdGlvbkRlbGVn
YXRlIGFsbG9jXSBpbml0XSk7CisgICAgW3dlYlZpZXcgc2V0TmF2aWdhdGlvbkRlbGVnYXRlOmRl
bGVnYXRlLmdldCgpXTsKKworICAgIE5TVVJMUmVxdWVzdCAqcmVxdWVzdCA9IFtOU1VSTFJlcXVl
c3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8vd3d3Lmdvb2ds
ZS5jb20vbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJlcXVlc3RdOwor
CisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZkb25lKTsKKyAgICBkb25lID0gZmFsc2U7
CisKKyAgICBhdXRvIHBpZEFmdGVyRmlyc3RMb2FkID0gW3dlYlZpZXcgX3dlYlByb2Nlc3NJZGVu
dGlmaWVyXTsKKworICAgIEVYUEVDVF9FUSgxLCBudW1iZXJPZkRlY2lkZVBvbGljeUNhbGxzKTsK
KyAgICBFWFBFQ1RfRVEoMXUsIHNlZW5QSURzLnNpemUoKSk7CisgICAgRVhQRUNUX1RSVUUoKnNl
ZW5QSURzLmJlZ2luKCkgPT0gcGlkQWZ0ZXJGaXJzdExvYWQpOworCisgICAgcmVxdWVzdCA9IFtO
U1VSTFJlcXVlc3QgcmVxdWVzdFdpdGhVUkw6W05TVVJMIFVSTFdpdGhTdHJpbmc6QCJwc29uOi8v
d3d3LndlYmtpdC5vcmcvbWFpbi5odG1sIl1dOworICAgIFt3ZWJWaWV3IGxvYWRSZXF1ZXN0OnJl
cXVlc3RdOworCisgICAgVGVzdFdlYktpdEFQSTo6VXRpbDo6cnVuKCZzZXJ2ZXJSZWRpcmVjdGVk
KTsKKyAgICBzZXJ2ZXJSZWRpcmVjdGVkID0gZmFsc2U7CisKKyAgICBzZWVuUElEcy5hZGQoW3dl
YlZpZXcgX3dlYlByb2Nlc3NJZGVudGlmaWVyXSk7CisgICAgaWYgKGF1dG8gcHJvdmlzaW9uYWxQ
SUQgPSBbd2ViVmlldyBfcHJvdmlzaW9uYWxXZWJQcm9jZXNzSWRlbnRpZmllcl0pCisgICAgICAg
IHNlZW5QSURzLmFkZChwcm92aXNpb25hbFBJRCk7CisKKyAgICBUZXN0V2ViS2l0QVBJOjpVdGls
OjpydW4oJmRvbmUpOworICAgIGRvbmUgPSBmYWxzZTsKKworICAgIHNlZW5QSURzLmFkZChbd2Vi
VmlldyBfd2ViUHJvY2Vzc0lkZW50aWZpZXJdKTsKKyAgICBpZiAoYXV0byBwcm92aXNpb25hbFBJ
RCA9IFt3ZWJWaWV3IF9wcm92aXNpb25hbFdlYlByb2Nlc3NJZGVudGlmaWVyXSkKKyAgICAgICAg
c2VlblBJRHMuYWRkKHByb3Zpc2lvbmFsUElEKTsKKworICAgIEVYUEVDVF9GQUxTRShzZXJ2ZXJS
ZWRpcmVjdGVkKTsKKyAgICBFWFBFQ1RfRVEoMywgbnVtYmVyT2ZEZWNpZGVQb2xpY3lDYWxscyk7
CisgICAgRVhQRUNUX0VRKDJ1LCBzZWVuUElEcy5zaXplKCkpOworfQorCiBlbnVtIGNsYXNzIFNo
b3VsZENhY2hlUHJvY2Vzc0ZpcnN0IHsgTm8sIFllcyB9Owogc3RhdGljIHZvaWQgcnVuU2FtZU9y
aWdpblNlcnZlclJlZGlyZWN0VGVzdChTaG91bGRDYWNoZVByb2Nlc3NGaXJzdCBzaG91bGRDYWNo
ZVByb2Nlc3NGaXJzdCkKIHsK
</data>

          </attachment>
      

    </bug>

</bugzilla>