<?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>224045</bug_id>
          
          <creation_ts>2021-04-01 06:09:41 -0700</creation_ts>
          <short_desc>Pass the main frame URL to requestGeolocationAuthorizationForURL delegate SPI</short_desc>
          <delta_ts>2021-04-20 10:19:11 -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>WebKit API</component>
          <version>WebKit Local 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="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1745995</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-01 06:09:41 -0700</bug_when>
    <thetext>Pass the main frame URL to requestGeolocationAuthorizationForURL delegate SPI</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1745996</commentid>
    <comment_count>1</comment_count>
      <attachid>424889</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-01 06:14:26 -0700</bug_when>
    <thetext>Created attachment 424889
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746027</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-04-01 08:09:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/76104034&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746165</commentid>
    <comment_count>3</comment_count>
      <attachid>424889</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-01 12:14:28 -0700</bug_when>
    <thetext>Comment on attachment 424889
Patch

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

&gt; Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:-165
&gt; -- (BOOL)_webView:(WKWebView *)webView shouldRequestGeolocationAuthorizationForURL:(NSURL *)url isMainFrame:(BOOL)isMainFrame mainFrameURL:(NSURL *)mainFrameURL;

Are we sure nobody uses this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746408</commentid>
    <comment_count>4</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-04-02 01:03:51 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #3)
&gt; Comment on attachment 424889 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424889&amp;action=review
&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/Cocoa/WKUIDelegatePrivate.h:-165
&gt; &gt; -- (BOOL)_webView:(WKWebView *)webView shouldRequestGeolocationAuthorizationForURL:(NSURL *)url isMainFrame:(BOOL)isMainFrame mainFrameURL:(NSURL *)mainFrameURL;
&gt; 
&gt; Are we sure nobody uses this?

I have not found any use through search tools.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1746410</commentid>
    <comment_count>5</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-02 01:07:33 -0700</bug_when>
    <thetext>Committed r275407: &lt;https://commits.webkit.org/r275407&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 424889.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751928</commentid>
    <comment_count>6</comment_count>
      <attachid>424889</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-19 13:06:08 -0700</bug_when>
    <thetext>Comment on attachment 424889
Patch

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

I think this may have caused rdar://76791065

&gt; Source/WebKit/UIProcess/ios/WKGeolocationProviderIOS.mm:182
&gt; +    Function&lt;void(bool)&gt; decisionHandler = [completionHandler = WTFMove(request.completionHandler), protectedSelf = retainPtr(self)](bool result) {

request.completionHandler gets moved here.

&gt; Source/WebKit/UIProcess/ios/WKGeolocationProviderIOS.mm:200
&gt; +    auto policyListener = adoptNS([[WKWebAllowDenyPolicyListener alloc] initWithCompletionHandler:WTFMove(request.completionHandler)]);

This looks like a use-after-move of request.completionHandler ?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751929</commentid>
    <comment_count>7</comment_count>
      <attachid>424889</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-19 13:07:35 -0700</bug_when>
    <thetext>Comment on attachment 424889
Patch

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

&gt;&gt; Source/WebKit/UIProcess/ios/WKGeolocationProviderIOS.mm:200
&gt;&gt; +    auto policyListener = adoptNS([[WKWebAllowDenyPolicyListener alloc] initWithCompletionHandler:WTFMove(request.completionHandler)]);
&gt; 
&gt; This looks like a use-after-move of request.completionHandler ?

Indeed, request.completionHandler should be replaced with decisionHandler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751930</commentid>
    <comment_count>8</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-19 13:08:46 -0700</bug_when>
    <thetext>(In reply to Alex Christensen from comment #7)
&gt; Comment on attachment 424889 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=424889&amp;action=review
&gt; 
&gt; &gt;&gt; Source/WebKit/UIProcess/ios/WKGeolocationProviderIOS.mm:200
&gt; &gt;&gt; +    auto policyListener = adoptNS([[WKWebAllowDenyPolicyListener alloc] initWithCompletionHandler:WTFMove(request.completionHandler)]);
&gt; &gt; 
&gt; &gt; This looks like a use-after-move of request.completionHandler ?
&gt; 
&gt; Indeed, request.completionHandler should be replaced with decisionHandler

Could one of you please follow-up? I am busy with GPUProcess stuff :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751935</commentid>
    <comment_count>9</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-19 13:10:56 -0700</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751936</commentid>
    <comment_count>10</comment_count>
      <attachid>426468</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-19 13:10:58 -0700</bug_when>
    <thetext>Created attachment 426468
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751937</commentid>
    <comment_count>11</comment_count>
      <attachid>426468</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-04-19 13:12:01 -0700</bug_when>
    <thetext>Comment on attachment 426468
Patch

Is it possible to API test? Clearly our current tests did not catch this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1751938</commentid>
    <comment_count>12</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-19 13:14:02 -0700</bug_when>
    <thetext>I think it could be done with some creative use of ClassMethodSwizzler</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752016</commentid>
    <comment_count>13</comment_count>
      <attachid>426468</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-04-19 15:43:18 -0700</bug_when>
    <thetext>Comment on attachment 426468
Patch

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

&gt; Source/WebKit/UIProcess/ios/WKGeolocationProviderIOS.mm:200
&gt; -    auto policyListener = adoptNS([[WKWebAllowDenyPolicyListener alloc] initWithCompletionHandler:WTFMove(request.completionHandler)]);
&gt; +    auto policyListener = adoptNS([[WKWebAllowDenyPolicyListener alloc] initWithCompletionHandler:WTFMove(decisionHandler)]);

This does more than just fix a use-after-move.

It also adds a call to the geolocationAuthorizationGranted method, which I hope is also a progression.

Is there a way we can construct a test that is sensitive to both of these?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752301</commentid>
    <comment_count>14</comment_count>
      <attachid>426559</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-04-20 09:47:47 -0700</bug_when>
    <thetext>Created attachment 426559
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1752319</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-04-20 10:19:09 -0700</bug_when>
    <thetext>Committed r276311 (236793@main): &lt;https://commits.webkit.org/236793@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 426559.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>424889</attachid>
            <date>2021-04-01 06:14:26 -0700</date>
            <delta_ts>2021-04-19 13:10:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224045-20210401151425.patch</filename>
            <type>text/plain</type>
            <size>12763</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc1MzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDY3Yjg4Njc3MzNjOWM0ODRj
MTQ1MjEzOTQ3NDNlOTRkNzE2ZThmODAuLmY2YzAyOGUwMzNiYjg5NjJmZWU5Zjg0YTQ5YWRiNWYz
MmVjYzc2OTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMjEtMDQtMDEgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFBhc3MgdGhlIG1haW4gZnJhbWUg
VVJMIHRvIHJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkwgZGVsZWdhdGUgU1BJ
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQwNDUK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBTaW1wbGlm
eSBjb2RlIHBhdGggdXNpbmcgcmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTCBT
UEkuCisgICAgICAgIFdlIHN0b3JlIHRoZSBVUkwgaW4gdGhlIEdlb2xvY2F0aW9uUmVxdWVzdERh
dGEgc2luY2UgaXQgbWlnaHQgY2hhbmdlIG92ZXIgdGltZSBnaXZlbiB0aGUgcmVxdWVzdHMgbWF5
IGJlIHByb2Nlc3NlZCBhc3luY2hyb25vdXNseS4KKyAgICAgICAgT25jZSBnZW9sb2NhdGlvbiBh
Y2Nlc3MgY2hlY2sgaXMgZG9uZSwgd2UgdGhlbiBwcm9jZXNzIGVhY2ggcmVxdWVzdCBvbmUgYXQg
YSB0aW1lIHVzaW5nIGEgRGVxdWUuCisgICAgICAgIFdlIHBhc3MgdGhlIG1haW4gZnJhbWUgVVJM
IGluc3RlYWQgb2YgdGhlIFVSTCBvZiB0aGUgZnJhbWUgdGhhdCBjYWxsZWQgdGhlIEFQSSwgZm9s
bG93aW5nIGdldFVzZXJNZWRpYSBhbmQgZGV2aWNlIG1vdGlvbiBvcmllbnRhdGlvbi4gCisgICAg
ICAgIE1hbnVhbGx5IHRlc3RlZCBpbiB0aGUgc2ltdWxhdG9yLgorCisgICAgICAgICogVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmg6CisgICAgICAgIFJlbW92ZSBzaG91
bGRSZXF1ZXN0R2VvbG9jYXRpb25BdXRob3JpemF0aW9uRm9yVVJMIFNQSSB0aGF0IGlzIG5vdCB1
c2VkLgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJT1MubW06CisgICAg
ICAgIChXZWJLaXQ6OlBhZ2VDbGllbnRJbXBsOjpkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0KToKKyAgICAgICAgUmVtb3ZlIHVubmVlZGVkIG9yaWdpbiBjcmVhdGlv
bi4KKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbToK
KyAgICAgICAgKC1bV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TIGRlY2lkZVBvbGljeUZvckdlb2xv
Y2F0aW9uUmVxdWVzdEZyb21PcmlnaW46Y29tcGxldGlvbkhhbmRsZXI6dmlldzpdKToKKyAgICAg
ICAgKC1bV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TIGdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkdy
YW50ZWRdKToKKyAgICAgICAgKC1bV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TIGdlb2xvY2F0aW9u
QXV0aG9yaXphdGlvbkRlbmllZF0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2Nh
dGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tOgorICAgICAgICAoV2ViS2l0Ojpk
ZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luKToKKwogMjAyMS0wNC0w
MSAgU2FpZCBBYm91LUhhbGxhd2EgIDxzYWlkQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFBy
b2Nlc3NdIFByb2Nlc3MgdGhlIHBlbmRpbmcgbWVzc2FnZXMgb2YgR1BVUHJvY2Vzc1Byb3h5IGJl
Zm9yZSBpdHMgZGVzdHJ1Y3RvciBpcyBjYWxsZWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tVSURlbGVnYXRlUHJpdmF0ZS5oCmluZGV4IGY0NDlkY2Yz
Nzg0NzU0YzE1Y2MyMTUxNzZjYjBjMWJkNDRmYmVhZDIuLjA5ZWNlYzVmMTJmNTc4MjM1NDNmNWQ1
N2E3NTg2MjFlOTdmMjNjY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1VJRGVsZWdhdGVQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0NvY29hL1dLVUlEZWxlZ2F0ZVByaXZhdGUuaApAQCAtMTYyLDcgKzE2Miw2IEBAIHN0
cnVjdCBVSUVkZ2VJbnNldHM7CiAtIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3
IHNob3VsZEluY2x1ZGVBcHBMaW5rQWN0aW9uc0ZvckVsZW1lbnQ6KF9XS0FjdGl2YXRlZEVsZW1l
bnRJbmZvICopZWxlbWVudCBXS19BUElfQVZBSUxBQkxFKGlvcyg5LjApKTsKIC0gKE5TQXJyYXkg
Kilfd2ViVmlldzooV0tXZWJWaWV3ICopd2ViVmlldyBhY3Rpb25zRm9yRWxlbWVudDooX1dLQWN0
aXZhdGVkRWxlbWVudEluZm8gKillbGVtZW50IGRlZmF1bHRBY3Rpb25zOihOU0FycmF5PF9XS0Vs
ZW1lbnRBY3Rpb24gKj4gKilkZWZhdWx0QWN0aW9uczsKIC0gKHZvaWQpX3dlYlZpZXc6KFdLV2Vi
VmlldyAqKXdlYlZpZXcgZGlkTm90SGFuZGxlVGFwQXNDbGlja0F0UG9pbnQ6KENHUG9pbnQpcG9p
bnQ7Ci0tIChCT09MKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHNob3VsZFJlcXVlc3RH
ZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGlzTWFpbkZyYW1lOihC
T09MKWlzTWFpbkZyYW1lIG1haW5GcmFtZVVSTDooTlNVUkwgKiltYWluRnJhbWVVUkw7CiAtICh2
b2lkKV93ZWJWaWV3OihXS1dlYlZpZXcgKil3ZWJWaWV3IHJlcXVlc3RHZW9sb2NhdGlvbkF1dGhv
cml6YXRpb25Gb3JVUkw6KE5TVVJMICopdXJsIGZyYW1lOihXS0ZyYW1lSW5mbyAqKWZyYW1lIGRl
Y2lzaW9uSGFuZGxlcjoodm9pZCAoXikoQk9PTCBhdXRob3JpemVkKSlkZWNpc2lvbkhhbmRsZXIg
V0tfQVBJX0FWQUlMQUJMRShpb3MoMTEuMCkpOwogLSAoQk9PTClfd2ViVmlldzooV0tXZWJWaWV3
ICopd2ViVmlldyBmaWxlVXBsb2FkUGFuZWxDb250ZW50SXNNYW5hZ2VkV2l0aEluaXRpYXRpbmdG
cmFtZTooV0tGcmFtZUluZm8gKilmcmFtZTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1BhZ2VDbGllbnRJbXBsSU9TLm1tCmluZGV4IDU2ZDBlYjMwNjhlM2Q3MzJlNmFlNjk2
N2M2MDAzY2M1NTZmZjdjMmUuLjA5NjhlZDY0NWMxMGEwNDJlODA4NDUyZGVmZGFiMGQyZWRmNmY3
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9QYWdlQ2xpZW50SW1w
bElPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvUGFnZUNsaWVudEltcGxJ
T1MubW0KQEAgLTIzOCw3ICsyMzgsNiBAQCB2b2lkIFBhZ2VDbGllbnRJbXBsOjpkaWRDb21wbGV0
ZVN5bnRoZXRpY0NsaWNrKCkKIAogdm9pZCBQYWdlQ2xpZW50SW1wbDo6ZGVjaWRlUG9saWN5Rm9y
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdChXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3Qg
RnJhbWVJbmZvRGF0YSYgZnJhbWVJbmZvLCBGdW5jdGlvbjx2b2lkKGJvb2wpPiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgYXV0byBvcmlnaW4gPSBBUEk6OlNlY3VyaXR5T3JpZ2luOjpjcmVh
dGUoZnJhbWVJbmZvLnNlY3VyaXR5T3JpZ2luLnByb3RvY29sLCBmcmFtZUluZm8uc2VjdXJpdHlP
cmlnaW4uaG9zdCwgZnJhbWVJbmZvLnNlY3VyaXR5T3JpZ2luLnBvcnQpOwogICAgIFtbd3JhcHBl
cihtX3dlYlZpZXcuZ2V0KCktPl9wYWdlLT5wcm9jZXNzKCkucHJvY2Vzc1Bvb2woKSkgX2dlb2xv
Y2F0aW9uUHJvdmlkZXJdIGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUmVxdWVzdEZyb21Pcmln
aW46RnJhbWVJbmZvRGF0YSB7IGZyYW1lSW5mbyB9IGNvbXBsZXRpb25IYW5kbGVyOnN0ZDo6ZXhj
aGFuZ2UoY29tcGxldGlvbkhhbmRsZXIsIG51bGxwdHIpIHZpZXc6bV93ZWJWaWV3LmdldCgpLmdl
dCgpXTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2Vv
bG9jYXRpb25Qcm92aWRlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dl
b2xvY2F0aW9uUHJvdmlkZXJJT1MubW0KaW5kZXggZTY3ZTMwOThjOTFiODg3MjhhZDUwYmZiMjA2
MzUwZjBhNjhiY2NhNi4uNTZhMzQ3MmQyM2I1OGNmZDk3NWQ5ZDU0NDk2Nzc0NGRhNzljYWViYiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92
aWRlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlv
blByb3ZpZGVySU9TLm1tCkBAIC02OCwxMCArNjgsMTEgQEAgQUxMT1dfREVQUkVDQVRFRF9ERUNM
QVJBVElPTlNfQkVHSU4KIEBlbmQKIAogbmFtZXNwYWNlIFdlYktpdCB7Ci12b2lkIGRlY2lkZVBv
bGljeUZvckdlb2xvY2F0aW9uUmVxdWVzdEZyb21PcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4qLCBjb25zdCBVUkwmLCBpZDxXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4sIFVJVmlldyop
Owordm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luKFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVVJMJiwgaWQ8V2ViQWxsb3dEZW55UG9saWN5TGlz
dGVuZXI+LCBVSVZpZXcqKTsKIH07CiAKIHN0cnVjdCBHZW9sb2NhdGlvblJlcXVlc3REYXRhIHsK
KyAgICBVUkwgdXJsOwogICAgIFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm87CiAgICAg
RnVuY3Rpb248dm9pZChib29sKT4gY29tcGxldGlvbkhhbmRsZXI7CiAgICAgUmV0YWluUHRyPFdL
V2ViVmlldz4gdmlldzsKQEAgLTgyLDcgKzgzLDcgQEAgc3RydWN0IEdlb2xvY2F0aW9uUmVxdWVz
dERhdGEgewogICAgIFJldGFpblB0cjxpZCA8X1dLR2VvbG9jYXRpb25Db3JlTG9jYXRpb25Qcm92
aWRlcj4+IF9jb3JlTG9jYXRpb25Qcm92aWRlcjsKICAgICBCT09MIF9pc1dlYkNvcmVHZW9sb2Nh
dGlvbkFjdGl2ZTsKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJHZW9sb2NhdGlvblBvc2l0aW9uPiBf
bGFzdEFjdGl2ZVBvc2l0aW9uOwotICAgIFZlY3RvcjxHZW9sb2NhdGlvblJlcXVlc3REYXRhPiBf
cmVxdWVzdHNXYWl0aW5nRm9yQ29yZUxvY2F0aW9uQXV0aG9yaXphdGlvbjsKKyAgICBEZXF1ZTxH
ZW9sb2NhdGlvblJlcXVlc3REYXRhPiBfcmVxdWVzdHNXYWl0aW5nRm9yQ29yZUxvY2F0aW9uQXV0
aG9yaXphdGlvbjsKIH0KIAogI3ByYWdtYSBtYXJrIC0gV0tHZW9sb2NhdGlvblByb3ZpZGVyIGNh
bGxiYWNrcyBpbXBsZW1lbnRhdGlvbi4KQEAgLTE2MSwxMCArMTYyLDcgQEAgc3RhdGljIHZvaWQg
c2V0RW5hYmxlSGlnaEFjY3VyYWN5KFdLR2VvbG9jYXRpb25NYW5hZ2VyUmVmIGdlb2xvY2F0aW9u
TWFuYWdlciwgYm8KIC0gKHZvaWQpZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25SZXF1ZXN0RnJv
bU9yaWdpbjooV2ViS2l0OjpGcmFtZUluZm9EYXRhJiYpZnJhbWVJbmZvIGNvbXBsZXRpb25IYW5k
bGVyOihGdW5jdGlvbjx2b2lkKGJvb2wpPiYmKWNvbXBsZXRpb25IYW5kbGVyIHZpZXc6KFdLV2Vi
VmlldyAqKWNvbnRlbnRWaWV3CiB7CiAgICAgLy8gU3RlcCAxOiBhc2sgdGhlIHVzZXIgaWYgdGhl
IGFwcCBjYW4gdXNlIEdlb2xvY2F0aW9uLgotICAgIEdlb2xvY2F0aW9uUmVxdWVzdERhdGEgZ2Vv
bG9jYXRpb25SZXF1ZXN0RGF0YTsKLSAgICBnZW9sb2NhdGlvblJlcXVlc3REYXRhLmZyYW1lSW5m
byA9IFdURk1vdmUoZnJhbWVJbmZvKTsKLSAgICBnZW9sb2NhdGlvblJlcXVlc3REYXRhLmNvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcik7Ci0gICAgZ2VvbG9jYXRp
b25SZXF1ZXN0RGF0YS52aWV3ID0gY29udGVudFZpZXc7CisgICAgR2VvbG9jYXRpb25SZXF1ZXN0
RGF0YSBnZW9sb2NhdGlvblJlcXVlc3REYXRhIHsgW2NvbnRlbnRWaWV3IFVSTF0sIFdURk1vdmUo
ZnJhbWVJbmZvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIGNvbnRlbnRWaWV3IH07CiAg
ICAgX3JlcXVlc3RzV2FpdGluZ0ZvckNvcmVMb2NhdGlvbkF1dGhvcml6YXRpb24uYXBwZW5kKFdU
Rk1vdmUoZ2VvbG9jYXRpb25SZXF1ZXN0RGF0YSkpOwogICAgIFtfY29yZUxvY2F0aW9uUHJvdmlk
ZXIgcmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbl07CiB9CkBAIC0xNzYsNDcgKzE3NCwz
NiBAQCBzdGF0aWMgdm9pZCBzZXRFbmFibGVIaWdoQWNjdXJhY3koV0tHZW9sb2NhdGlvbk1hbmFn
ZXJSZWYgZ2VvbG9jYXRpb25NYW5hZ2VyLCBibwogCiAtICh2b2lkKWdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvbkdyYW50ZWQKIHsKLSAgICAvLyBTdGVwIDI6IGFzayB0aGUgdXNlciBpZiB0aGUgdGhp
cyBwYXJ0aWN1bGFyIHBhZ2UgY2FuIHVzZSBnZWxvY2F0aW9uLgotICAgIFZlY3RvcjxHZW9sb2Nh
dGlvblJlcXVlc3REYXRhPiByZXF1ZXN0cyA9IFdURk1vdmUoX3JlcXVlc3RzV2FpdGluZ0ZvckNv
cmVMb2NhdGlvbkF1dGhvcml6YXRpb24pOwotICAgIGZvciAoYXV0byYgcmVxdWVzdCA6IHJlcXVl
c3RzKSB7Ci0gICAgICAgIGJvb2wgcmVxdWlyZXNVc2VyQXV0aG9yaXphdGlvbiA9IHRydWU7Ci0K
LSAgICAgICAgaWQ8V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0
PGlkIDxXS1VJRGVsZWdhdGVQcml2YXRlPj4oW3JlcXVlc3QudmlldyBVSURlbGVnYXRlXSk7Ci0g
ICAgICAgIGlmIChbdWlEZWxlZ2F0ZSByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKF93ZWJW
aWV3OnJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6ZnJhbWU6ZGVjaXNpb25I
YW5kbGVyOildKSB7Ci0gICAgICAgICAgICBVUkwgcmVxdWVzdEZyYW1lVVJMID0gcmVxdWVzdC5m
cmFtZUluZm8ucmVxdWVzdC51cmwoKTsKLSAgICAgICAgICAgIFJldGFpblB0cjxXS0ZyYW1lSW5m
bz4gZnJhbWVJbmZvID0gd3JhcHBlcihBUEk6OkZyYW1lSW5mbzo6Y3JlYXRlKFdURk1vdmUocmVx
dWVzdC5mcmFtZUluZm8pLCByZXF1ZXN0LnZpZXctPl9wYWdlLmdldCgpKSk7Ci0gICAgICAgICAg
ICBhdXRvIGNoZWNrZXIgPSBXZWJLaXQ6OkNvbXBsZXRpb25IYW5kbGVyQ2FsbENoZWNrZXI6OmNy
ZWF0ZSh1aURlbGVnYXRlLCBAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdEdlb2xvY2F0aW9uQXV0
aG9yaXphdGlvbkZvclVSTDpmcmFtZTpkZWNpc2lvbkhhbmRsZXI6KSk7Ci0gICAgICAgICAgICBX
S1dlYlZpZXcgKnZpZXdGcm9tUmVxdWVzdCA9IHJlcXVlc3Qudmlldy5nZXQoKTsKLSAgICAgICAg
ICAgIFt1aURlbGVnYXRlIF93ZWJWaWV3OnZpZXdGcm9tUmVxdWVzdCByZXF1ZXN0R2VvbG9jYXRp
b25BdXRob3JpemF0aW9uRm9yVVJMOnJlcXVlc3RGcmFtZVVSTCBmcmFtZTpmcmFtZUluZm8uZ2V0
KCkgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbcmVxdWVzdCA9IFdURk1vdmUocmVxdWVz
dCksIGNoZWNrZXIgPSBXVEZNb3ZlKGNoZWNrZXIpXShCT09MIGF1dGhvcml6ZWQpIHsKLSAgICAg
ICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlvbkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkp
Ci0gICAgICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgICAgICBjaGVja2VyLT5k
aWRDYWxsQ29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICAgICAgICAgICAgICByZXF1ZXN0LmNvbXBs
ZXRpb25IYW5kbGVyKGF1dGhvcml6ZWQpOwotICAgICAgICAgICAgfSkuZ2V0KCldOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKFt1aURlbGVnYXRlIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6c2hvdWxkUmVxdWVzdEdlb2xvY2F0aW9u
QXV0aG9yaXphdGlvbkZvclVSTDppc01haW5GcmFtZTptYWluRnJhbWVVUkw6KV0pIHsKLSAgICAg
ICAgICAgIGJvb2wgaXNNYWluRnJhbWUgPSByZXF1ZXN0LmZyYW1lSW5mby5pc01haW5GcmFtZTsK
LSAgICAgICAgICAgIFVSTCByZXF1ZXN0RnJhbWVVUkwgPSByZXF1ZXN0LmZyYW1lSW5mby5yZXF1
ZXN0LnVybCgpOwotICAgICAgICAgICAgVVJMIG1haW5GcmFtZVVSTCA9IHJlcXVlc3Qudmlldy5n
ZXQoKS5VUkw7Ci0gICAgICAgICAgICByZXF1aXJlc1VzZXJBdXRob3JpemF0aW9uID0gW3VpRGVs
ZWdhdGUgX3dlYlZpZXc6cmVxdWVzdC52aWV3LmdldCgpCi0gICAgICAgICAgICAgICAgIHNob3Vs
ZFJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6cmVxdWVzdEZyYW1lVVJMCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNNYWluRnJh
bWU6aXNNYWluRnJhbWUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIG1haW5GcmFtZVVSTDptYWluRnJhbWVVUkxdOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKHJlcXVpcmVzVXNlckF1dGhvcml6YXRpb24pIHsKLSAgICAgICAgICAgIFJldGFpblB0cjxX
S1dlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyPiBwb2xpY3lMaXN0ZW5lciA9IGFkb3B0TlMoW1tX
S1dlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENvbXBsZXRpb25IYW5k
bGVyOldURk1vdmUocmVxdWVzdC5jb21wbGV0aW9uSGFuZGxlcildKTsKLSAgICAgICAgICAgIFdl
YktpdDo6ZGVjaWRlUG9saWN5Rm9yR2VvbG9jYXRpb25SZXF1ZXN0RnJvbU9yaWdpbihyZXF1ZXN0
LmZyYW1lSW5mby5zZWN1cml0eU9yaWdpbi5zZWN1cml0eU9yaWdpbigpLnB0cigpLCByZXF1ZXN0
LmZyYW1lSW5mby5yZXF1ZXN0LnVybCgpLCBwb2xpY3lMaXN0ZW5lci5nZXQoKSwgcmVxdWVzdC52
aWV3LmdldCgpKTsKLSAgICAgICAgfSBlbHNlCi0gICAgICAgICAgICByZXF1ZXN0LmNvbXBsZXRp
b25IYW5kbGVyKHRydWUpOworICAgIC8vIFN0ZXAgMjogYXNrIHRoZSB1c2VyIGlmIHRoaXMgcGFy
dGljdWxhciBwYWdlIGNhbiB1c2UgZ2Vsb2NhdGlvbi4KKyAgICBpZiAoX3JlcXVlc3RzV2FpdGlu
Z0ZvckNvcmVMb2NhdGlvbkF1dGhvcml6YXRpb24uaXNFbXB0eSgpKQorICAgICAgICByZXR1cm47
CisKKyAgICBhdXRvIHJlcXVlc3QgPSBfcmVxdWVzdHNXYWl0aW5nRm9yQ29yZUxvY2F0aW9uQXV0
aG9yaXphdGlvbi50YWtlRmlyc3QoKTsKKyAgICBGdW5jdGlvbjx2b2lkKGJvb2wpPiBkZWNpc2lv
bkhhbmRsZXIgPSBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKHJlcXVlc3QuY29tcGxldGlv
bkhhbmRsZXIpLCBwcm90ZWN0ZWRTZWxmID0gcmV0YWluUHRyKHNlbGYpXShib29sIHJlc3VsdCkg
eworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOworICAgICAgICBbcHJvdGVjdGVk
U2VsZiBnZW9sb2NhdGlvbkF1dGhvcml6YXRpb25HcmFudGVkXTsKKyAgICB9OworCisgICAgaWQ8
V0tVSURlbGVnYXRlUHJpdmF0ZT4gdWlEZWxlZ2F0ZSA9IHN0YXRpY19jYXN0PGlkIDxXS1VJRGVs
ZWdhdGVQcml2YXRlPj4oW3JlcXVlc3QudmlldyBVSURlbGVnYXRlXSk7CisgICAgaWYgKFt1aURl
bGVnYXRlIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoX3dlYlZpZXc6cmVxdWVzdEdlb2xv
Y2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDpmcmFtZTpkZWNpc2lvbkhhbmRsZXI6KV0pIHsKKyAg
ICAgICAgUmV0YWluUHRyPFdLRnJhbWVJbmZvPiBmcmFtZUluZm8gPSB3cmFwcGVyKEFQSTo6RnJh
bWVJbmZvOjpjcmVhdGUoV1RGTW92ZShyZXF1ZXN0LmZyYW1lSW5mbyksIHJlcXVlc3Qudmlldy0+
X3BhZ2UuZ2V0KCkpKTsKKyAgICAgICAgYXV0byBjaGVja2VyID0gV2ViS2l0OjpDb21wbGV0aW9u
SGFuZGxlckNhbGxDaGVja2VyOjpjcmVhdGUodWlEZWxlZ2F0ZSwgQHNlbGVjdG9yKF93ZWJWaWV3
OnJlcXVlc3RHZW9sb2NhdGlvbkF1dGhvcml6YXRpb25Gb3JVUkw6ZnJhbWU6ZGVjaXNpb25IYW5k
bGVyOikpOworICAgICAgICBbdWlEZWxlZ2F0ZSBfd2ViVmlldzpyZXF1ZXN0LnZpZXcuZ2V0KCkg
cmVxdWVzdEdlb2xvY2F0aW9uQXV0aG9yaXphdGlvbkZvclVSTDpyZXF1ZXN0LnVybCBmcmFtZTpm
cmFtZUluZm8uZ2V0KCkgZGVjaXNpb25IYW5kbGVyOm1ha2VCbG9ja1B0cihbZGVjaXNpb25IYW5k
bGVyID0gV1RGTW92ZShkZWNpc2lvbkhhbmRsZXIpLCBjaGVja2VyID0gV1RGTW92ZShjaGVja2Vy
KV0oQk9PTCBhdXRob3JpemVkKSB7CisgICAgICAgICAgICBpZiAoY2hlY2tlci0+Y29tcGxldGlv
bkhhbmRsZXJIYXNCZWVuQ2FsbGVkKCkpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICAgICAgY2hlY2tlci0+ZGlkQ2FsbENvbXBsZXRpb25IYW5kbGVyKCk7CisgICAgICAgICAgICBk
ZWNpc2lvbkhhbmRsZXIoISFhdXRob3JpemVkKTsKKyAgICAgICAgfSkuZ2V0KCldOworICAgICAg
ICByZXR1cm47CiAgICAgfQorCisgICAgYXV0byBwb2xpY3lMaXN0ZW5lciA9IGFkb3B0TlMoW1tX
S1dlYkFsbG93RGVueVBvbGljeUxpc3RlbmVyIGFsbG9jXSBpbml0V2l0aENvbXBsZXRpb25IYW5k
bGVyOldURk1vdmUocmVxdWVzdC5jb21wbGV0aW9uSGFuZGxlcildKTsKKyAgICBXZWJLaXQ6OmRl
Y2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUmVxdWVzdEZyb21PcmlnaW4oV2ViQ29yZTo6U2VjdXJp
dHlPcmlnaW46OmNyZWF0ZShyZXF1ZXN0LnVybCkuZ2V0KCksIHJlcXVlc3QudXJsLCBwb2xpY3lM
aXN0ZW5lci5nZXQoKSwgcmVxdWVzdC52aWV3LmdldCgpKTsKIH0KIAogLSAodm9pZClnZW9sb2Nh
dGlvbkF1dGhvcml6YXRpb25EZW5pZWQKIHsKLSAgICBWZWN0b3I8R2VvbG9jYXRpb25SZXF1ZXN0
RGF0YT4gcmVxdWVzdHMgPSBXVEZNb3ZlKF9yZXF1ZXN0c1dhaXRpbmdGb3JDb3JlTG9jYXRpb25B
dXRob3JpemF0aW9uKTsKKyAgICBhdXRvIHJlcXVlc3RzID0gV1RGTW92ZShfcmVxdWVzdHNXYWl0
aW5nRm9yQ29yZUxvY2F0aW9uQXV0aG9yaXphdGlvbik7CiAgICAgZm9yIChjb25zdCBhdXRvJiBy
ZXF1ZXN0RGF0YSA6IHJlcXVlc3RzKQogICAgICAgICByZXF1ZXN0RGF0YS5jb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3Mv
V0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3VyaXR5T3JpZ2luLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLR2VvbG9jYXRpb25Qcm92aWRlcklPU09iakNTZWN1cml0eU9y
aWdpbi5tbQppbmRleCA4YjdhODY4NzY5N2YzYzRkMmU2NTBlNTk4MmQ4ZjRhZDcxZjk0ZDA4Li5j
OGRkZTBlMjgzMjU3NzFjZjUyNDRiYTAwYzM1OTkxZmMwNWUxMzI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TT2JqQ1NlY3Vy
aXR5T3JpZ2luLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0
aW9uUHJvdmlkZXJJT1NPYmpDU2VjdXJpdHlPcmlnaW4ubW0KQEAgLTQ0LDExICs0NCwxMSBAQAog
CiBuYW1lc3BhY2UgV2ViS2l0IHsKIAotdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJl
cXVlc3RGcm9tT3JpZ2luKFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luKiwgY29uc3QgVVJMJiwgaWQ8
V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+LCBVSVZpZXcgKik7Cit2b2lkIGRlY2lkZVBvbGlj
eUZvckdlb2xvY2F0aW9uUmVxdWVzdEZyb21PcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBVUkwmLCBpZDxXZWJBbGxvd0RlbnlQb2xpY3lMaXN0ZW5lcj4sIFVJVmlldyAqKTsK
IAotdm9pZCBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luKFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luKiBvcmlnaW4sIGNvbnN0IFVSTCYgdXJsLCBpZDxXZWJBbGxvd0Rl
bnlQb2xpY3lMaXN0ZW5lcj4gbGlzdGVuZXIsIFVJVmlldyAqdmlldykKK3ZvaWQgZGVjaWRlUG9s
aWN5Rm9yR2VvbG9jYXRpb25SZXF1ZXN0RnJvbU9yaWdpbihXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYgb3JpZ2luLCBjb25zdCBVUkwmIHVybCwgaWQ8V2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXI+
IGxpc3RlbmVyLCBVSVZpZXcgKnZpZXcpCiB7Ci0gICAgUmV0YWluUHRyPFdlYlNlY3VyaXR5T3Jp
Z2luPiBzZWN1cml0eU9yaWdpbiA9IGFkb3B0TlMoW1tXZWJTZWN1cml0eU9yaWdpbiBhbGxvY10g
X2luaXRXaXRoV2ViQ29yZVNlY3VyaXR5T3JpZ2luOm9yaWdpbl0pOworICAgIGF1dG8gc2VjdXJp
dHlPcmlnaW4gPSBhZG9wdE5TKFtbV2ViU2VjdXJpdHlPcmlnaW4gYWxsb2NdIF9pbml0V2l0aFdl
YkNvcmVTZWN1cml0eU9yaWdpbjomb3JpZ2luXSk7CiAgICAgUmV0YWluUHRyPFVJV2ViR2VvbG9j
YXRpb25Qb2xpY3lEZWNpZGVyPiBkZWNpZGVyID0gW1VJV2ViR2VvbG9jYXRpb25Qb2xpY3lEZWNp
ZGVyIHNoYXJlZFBvbGljeURlY2lkZXJdOwogICAgIGlmIChbZGVjaWRlciByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKGRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUmVxdWVzdEZyb21Pcmln
aW46cmVxdWVzdGluZ1VSTDp2aWV3Omxpc3RlbmVyOildKQogICAgICAgICBbZGVjaWRlciBkZWNp
ZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2luOnNlY3VyaXR5T3JpZ2luLmdl
dCgpIHJlcXVlc3RpbmdVUkw6dXJsIHZpZXc6dmlldyBsaXN0ZW5lcjpsaXN0ZW5lcl07Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426468</attachid>
            <date>2021-04-19 13:10:58 -0700</date>
            <delta_ts>2021-04-20 09:47:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224045-20210419131057.patch</filename>
            <type>text/plain</type>
            <size>1613</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjY4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzZTU1MTVmZjQ4OGMxODBl
OTdkZTIzM2U0ZTcwNjlmZGE1MmEzOWQuLjJhYjEzZjZlYjIxZWNmZTlhNDExMzY4ZmFlMTQ2OTlh
ODI3ZDFlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMTkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggdXNlLWFm
dGVyLW1vdmUgaW50cm9kdWNlZCBpbiByMjc1NDA3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQwNDUKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3Zp
ZGVySU9TLm1tOgorICAgICAgICAoLVtXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MgZ2VvbG9jYXRp
b25BdXRob3JpemF0aW9uR3JhbnRlZF0pOgorCiAyMDIxLTA0LTE5ICBDaHJpcyBEdW1leiAgPGNk
dW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHJhY2VzIGluIExpYldlYlJUQ0NvZGVjcyBp
bnRyb2R1Y2VkIGluIHIyNzYyMTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCmluZGV4IDU2YTM0NzJkMjNiNThjZmQ5
NzVkOWQ1NDQ5Njc3NDRkYTc5Y2FlYmIuLmY1ZTlmZDdiYzM0MTI5N2FmN2IyNGU2NzQxNjMzMmNk
OTZhZDczOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xv
Y2F0aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dL
R2VvbG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtMTk3LDcgKzE5Nyw3IEBAIHN0YXRpYyB2b2lk
IHNldEVuYWJsZUhpZ2hBY2N1cmFjeShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlv
bk1hbmFnZXIsIGJvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHBvbGljeUxp
c3RlbmVyID0gYWRvcHROUyhbW1dLV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIgYWxsb2NdIGlu
aXRXaXRoQ29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShyZXF1ZXN0LmNvbXBsZXRpb25IYW5kbGVy
KV0pOworICAgIGF1dG8gcG9saWN5TGlzdGVuZXIgPSBhZG9wdE5TKFtbV0tXZWJBbGxvd0RlbnlQ
b2xpY3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhDb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGRl
Y2lzaW9uSGFuZGxlcildKTsKICAgICBXZWJLaXQ6OmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9u
UmVxdWVzdEZyb21PcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXF1ZXN0
LnVybCkuZ2V0KCksIHJlcXVlc3QudXJsLCBwb2xpY3lMaXN0ZW5lci5nZXQoKSwgcmVxdWVzdC52
aWV3LmdldCgpKTsKIH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>426559</attachid>
            <date>2021-04-20 09:47:47 -0700</date>
            <delta_ts>2021-04-20 10:19:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-224045-20210420094747.patch</filename>
            <type>text/plain</type>
            <size>7986</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc2MjcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGQzZTU1MTVmZjQ4OGMxODBl
OTdkZTIzM2U0ZTcwNjlmZGE1MmEzOWQuLjkzZjI4YTVjZGZhMzU1ZjA0N2RkMTUxYjUzMzllOThi
NmZkYjBlZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjEtMDQtMTkgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBGaXggdXNlLWFm
dGVyLW1vdmUgaW50cm9kdWNlZCBpbiByMjc1NDA3CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjQwNDUKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJp
biBBZGxlci4KKworICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tHZW9sb2NhdGlvblByb3ZpZGVy
SU9TLm1tOgorICAgICAgICAoLVtXS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MgZ2VvbG9jYXRpb25B
dXRob3JpemF0aW9uR3JhbnRlZF0pOgorCiAyMDIxLTA0LTE5ICBDaHJpcyBEdW1leiAgPGNkdW1l
ekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4IHJhY2VzIGluIExpYldlYlJUQ0NvZGVjcyBpbnRy
b2R1Y2VkIGluIHIyNzYyMTQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9XS0dlb2xvY2F0aW9uUHJvdmlkZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvV0tHZW9sb2NhdGlvblByb3ZpZGVySU9TLm1tCmluZGV4IDU2YTM0NzJkMjNiNThjZmQ5NzVk
OWQ1NDQ5Njc3NDRkYTc5Y2FlYmIuLmY1ZTlmZDdiYzM0MTI5N2FmN2IyNGU2NzQxNjMzMmNkOTZh
ZDczOWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0dlb2xvY2F0
aW9uUHJvdmlkZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLR2Vv
bG9jYXRpb25Qcm92aWRlcklPUy5tbQpAQCAtMTk3LDcgKzE5Nyw3IEBAIHN0YXRpYyB2b2lkIHNl
dEVuYWJsZUhpZ2hBY2N1cmFjeShXS0dlb2xvY2F0aW9uTWFuYWdlclJlZiBnZW9sb2NhdGlvbk1h
bmFnZXIsIGJvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBhdXRvIHBvbGljeUxpc3Rl
bmVyID0gYWRvcHROUyhbW1dLV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIgYWxsb2NdIGluaXRX
aXRoQ29tcGxldGlvbkhhbmRsZXI6V1RGTW92ZShyZXF1ZXN0LmNvbXBsZXRpb25IYW5kbGVyKV0p
OworICAgIGF1dG8gcG9saWN5TGlzdGVuZXIgPSBhZG9wdE5TKFtbV0tXZWJBbGxvd0RlbnlQb2xp
Y3lMaXN0ZW5lciBhbGxvY10gaW5pdFdpdGhDb21wbGV0aW9uSGFuZGxlcjpXVEZNb3ZlKGRlY2lz
aW9uSGFuZGxlcildKTsKICAgICBXZWJLaXQ6OmRlY2lkZVBvbGljeUZvckdlb2xvY2F0aW9uUmVx
dWVzdEZyb21PcmlnaW4oV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW46OmNyZWF0ZShyZXF1ZXN0LnVy
bCkuZ2V0KCksIHJlcXVlc3QudXJsLCBwb2xpY3lMaXN0ZW5lci5nZXQoKSwgcmVxdWVzdC52aWV3
LmdldCgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdl
TG9nCmluZGV4IDdkZTdlY2M2N2Q3OTZmMjQyMDkwZmQ3NjFhZTlkODBkY2U5NTZkMDcuLjc5Njc5
ZTk2N2MyZjY3NDNlY2MzM2M1NTVhYmI2MDE2MDcwNGI2ZmMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0No
YW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNC0y
MCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAg
IEZpeCB1c2UtYWZ0ZXItbW92ZSBpbnRyb2R1Y2VkIGluIHIyNzU0MDcKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNDA0NQorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9HZW9sb2NhdGlvbi5tbToKKyAgICAgICAgKC1bRmFrZVdlYkdlb2xvY2F0aW9uUG9s
aWN5RGVjaWRlciByZWNlaXZlZFJlcXVlc3RdKToKKyAgICAgICAgKC1bRmFrZVdlYkdlb2xvY2F0
aW9uUG9saWN5RGVjaWRlciBkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3Jp
Z2luOnJlcXVlc3RpbmdVUkw6d2luZG93Omxpc3RlbmVyOl0pOgorICAgICAgICAoZmFrZVdlYkdl
b2xvY2F0aW9uUG9saWN5RGVjaWRlcik6CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2lvcy9VSUtpdFNQSS5oOgorCiAyMDIxLTA0LTE5ICBU
aW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCB0aGUg
bWFjQ2F0YWx5c3QgVGVzdFdlYktpdEFQSSBidWlsZApkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRDb2NvYS9HZW9sb2NhdGlvbi5tbSBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0Q29jb2EvR2VvbG9jYXRpb24ubW0KaW5kZXggNzI5MGZjYzY0MDVi
NTNhYjRjYTEwMjI1NWM0NWMxOWZmZTg3MjRjNC4uNGMwYWM5Y2QzNGJiMDY0MTlkNDhlOGE1NGQy
MDIyNDQ5NGMwYjhhYSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJL
aXRDb2NvYS9HZW9sb2NhdGlvbi5tbQorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YktpdENvY29hL0dlb2xvY2F0aW9uLm1tCkBAIC0yNywxNCArMjcsMTkgQEAKIAogI2lmIFBMQVRG
T1JNKElPU19GQU1JTFkpCiAKKyNpbXBvcnQgIkNsYXNzTWV0aG9kU3dpenpsZXIuaCIKICNpbXBv
cnQgIlBsYXRmb3JtVXRpbGl0aWVzLmgiCisjaW1wb3J0ICJUZXN0VUlEZWxlZ2F0ZS5oIgogI2lt
cG9ydCAiVGVzdFdLV2ViVmlldy5oIgorI2ltcG9ydCAiVUlLaXRTUEkuaCIKICNpbXBvcnQgPENv
cmVMb2NhdGlvbi9DTExvY2F0aW9uLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tQcm9jZXNzUG9vbFBy
aXZhdGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1VJRGVsZWdhdGVQcml2YXRlLmg+CisjaW1wb3J0
IDxXZWJLaXQvV2ViQWxsb3dEZW55UG9saWN5TGlzdGVuZXIuaD4KICNpbXBvcnQgPFdlYktpdC9f
V0tHZW9sb2NhdGlvbkNvcmVMb2NhdGlvblByb3ZpZGVyLmg+CiAjaW1wb3J0IDxXZWJLaXQvX1dL
R2VvbG9jYXRpb25Qb3NpdGlvbi5oPgogI2ltcG9ydCA8d3RmL01haW5UaHJlYWQuaD4KKyNpbXBv
cnQgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgogCiBz
dGF0aWMgYm9vbCBoYXNSZWNlaXZlZEFsZXJ0OwpAQCAtMTM0LDggKzEzOSwyOCBAQCBzdGF0aWMg
dm9pZCBleHBlY3RFeGNlcHRpb24odm9pZCAoXmNvbXBsZXRpb25IYW5kbGVyKSgpKQogCiBAZW5k
CiAKK0BpbnRlcmZhY2UgRmFrZVdlYkdlb2xvY2F0aW9uUG9saWN5RGVjaWRlciA6IE5TT2JqZWN0
CistIChib29sKXJlY2VpdmVkUmVxdWVzdDsKK0BlbmQKK0BpbXBsZW1lbnRhdGlvbiBGYWtlV2Vi
R2VvbG9jYXRpb25Qb2xpY3lEZWNpZGVyIHsKKyAgICBib29sIF9yZWNlaXZlZFJlcXVlc3Q7Cit9
CistIChib29sKXJlY2VpdmVkUmVxdWVzdAoreworICAgIHJldHVybiBfcmVjZWl2ZWRSZXF1ZXN0
OworfQorLSAodm9pZClkZWNpZGVQb2xpY3lGb3JHZW9sb2NhdGlvblJlcXVlc3RGcm9tT3JpZ2lu
OihpZClzZWN1cml0eU9yaWdpbiByZXF1ZXN0aW5nVVJMOihOU1VSTCAqKXJlcXVlc3RpbmdVUkwg
d2luZG93OihVSVdpbmRvdyAqKXdpbmRvdyBsaXN0ZW5lcjooaWQ8V2ViQWxsb3dEZW55UG9saWN5
TGlzdGVuZXI+KWxpc3RlbmVyCit7CisgICAgX3JlY2VpdmVkUmVxdWVzdCA9IHRydWU7CisgICAg
W2xpc3RlbmVyIGFsbG93XTsKK30KK0BlbmQKIAotdXNpbmcgbmFtZXNwYWNlIHN0ZDsKK3N0YXRp
YyBGYWtlV2ViR2VvbG9jYXRpb25Qb2xpY3lEZWNpZGVyICpmYWtlV2ViR2VvbG9jYXRpb25Qb2xp
Y3lEZWNpZGVyKCkKK3sKKyAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8UmV0YWluUHRyPEZha2VX
ZWJHZW9sb2NhdGlvblBvbGljeURlY2lkZXI+PiBkZWNpZGVyID0gYWRvcHROUyhbRmFrZVdlYkdl
b2xvY2F0aW9uUG9saWN5RGVjaWRlciBuZXddKTsKKyAgICByZXR1cm4gZGVjaWRlci5nZXQoKS5n
ZXQoKTsKK30KIAogbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogCkBAIC0xNDMsNyArMTY4LDcg
QEAgbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkgewogLy8gdmlldy4gV2l0aG91dCB0aGlzLCB0aGUg
d2ViIHByb2Nlc3Mgd291bGQgd2FpdCB1bnRpbCB0aGUgcGFnZSBpcyB2aXNpYmxlIGJlZm9yZSBz
ZW5kaW5nCiAvLyB0aGUgcmVxdWVzdHMgdG8gdGhlIFVJIHByb2Nlc3MuCiAKLVRFU1QoV2ViS2l0
LCBHZW9sb2NhdGlvbkRlbmllZEJ5TG9jYXRpb25Qcm92aWRlcikKK1RFU1QoR2VvbG9jYXRpb24s
IERlbmllZEJ5TG9jYXRpb25Qcm92aWRlcikKIHsKICAgICBhdXRvIHVpRGVsZWdhdGUgPSBhZG9w
dE5TKFtbR2VvbG9jYXRpb25UZXN0VUlEZWxlZ2F0ZSBhbGxvY10gaW5pdF0pOwogICAgIGF1dG8g
Y29yZUxvY2F0aW9uUHJvdmlkZXIgPSBhZG9wdE5TKFtbVGVzdENvcmVMb2NhdGlvblByb3ZpZGVy
IGFsbG9jXSBpbml0XSk7CkBAIC0xNjcsNyArMTkyLDcgQEAgVEVTVChXZWJLaXQsIEdlb2xvY2F0
aW9uRGVuaWVkQnlMb2NhdGlvblByb3ZpZGVyKQogICAgIEVYUEVDVF9GQUxTRSh1aURlbGVnYXRl
LmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0ZWQpOwogfQogCi1URVNUKFdlYktpdCwgR2Vv
bG9jYXRpb25EZW5pZWRCeUFQSSkKK1RFU1QoR2VvbG9jYXRpb24sIERlbmllZEJ5QVBJKQogewog
ICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tHZW9sb2NhdGlvblRlc3RVSURlbGVnYXRl
IGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb3JlTG9jYXRpb25Qcm92aWRlciA9IGFkb3B0TlMo
W1tUZXN0Q29yZUxvY2F0aW9uUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKQEAgLTE5MSw3ICsyMTYs
NyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25EZW5pZWRCeUFQSSkKICAgICBFWFBFQ1RfVFJV
RSh1aURlbGVnYXRlLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0ZWQpOwogfQogCi1URVNU
KFdlYktpdCwgR2VvbG9jYXRpb25BbGxvd2VkQnlBUEkpCitURVNUKEdlb2xvY2F0aW9uLCBBbGxv
d2VkQnlBUEkpCiB7CiAgICAgYXV0byB1aURlbGVnYXRlID0gYWRvcHROUyhbW0dlb2xvY2F0aW9u
VGVzdFVJRGVsZWdhdGUgYWxsb2NdIGluaXRdKTsKICAgICBhdXRvIGNvcmVMb2NhdGlvblByb3Zp
ZGVyID0gYWRvcHROUyhbW1Rlc3RDb3JlTG9jYXRpb25Qcm92aWRlciBhbGxvY10gaW5pdF0pOwpA
QCAtMjE1LDcgKzI0MCw3IEBAIFRFU1QoV2ViS2l0LCBHZW9sb2NhdGlvbkFsbG93ZWRCeUFQSSkK
ICAgICBFWFBFQ1RfVFJVRSh1aURlbGVnYXRlLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0
ZWQpOwogfQogCi1URVNUKFdlYktpdCwgR2VvbG9jYXRpb25FcnJvcikKK1RFU1QoR2VvbG9jYXRp
b24sIEVycm9yKQogewogICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tHZW9sb2NhdGlv
blRlc3RVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb3JlTG9jYXRpb25Qcm92
aWRlciA9IGFkb3B0TlMoW1tUZXN0Q29yZUxvY2F0aW9uUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsK
QEAgLTI0MCw3ICsyNjUsNyBAQCBURVNUKFdlYktpdCwgR2VvbG9jYXRpb25FcnJvcikKICAgICBF
WFBFQ1RfVFJVRSh1aURlbGVnYXRlLmdldCgpLmF1dGhvcml6YXRpb25XYXNSZXF1ZXN0ZWQpOwog
fQogCi1URVNUKFdlYktpdCwgRHVwbGljYXRlR2VvbG9jYXRpb25BdXRob3JpemF0aW9uQ2FsbGJh
Y2tDYWxscykKK1RFU1QoR2VvbG9jYXRpb24sIER1cGxpY2F0ZUF1dGhvcml6YXRpb25DYWxsYmFj
a0NhbGxzKQogewogICAgIGF1dG8gdWlEZWxlZ2F0ZSA9IGFkb3B0TlMoW1tHZW9sb2NhdGlvblRl
c3RVSURlbGVnYXRlIGFsbG9jXSBpbml0XSk7CiAgICAgYXV0byBjb3JlTG9jYXRpb25Qcm92aWRl
ciA9IGFkb3B0TlMoW1tUZXN0Q29yZUxvY2F0aW9uUHJvdmlkZXIgYWxsb2NdIGluaXRdKTsKQEAg
LTI2NSw2ICsyOTAsMjMgQEAgVEVTVChXZWJLaXQsIER1cGxpY2F0ZUdlb2xvY2F0aW9uQXV0aG9y
aXphdGlvbkNhbGxiYWNrQ2FsbHMpCiAgICAgRVhQRUNUX1RSVUUodWlEZWxlZ2F0ZS5nZXQoKS5h
dXRob3JpemF0aW9uV2FzUmVxdWVzdGVkKTsKIH0KIAorVEVTVChHZW9sb2NhdGlvbiwgRGVsZWdh
dGVOb3RJbXBsZW1lbnRlZCkKK3sKKyAgICBhdXRvIGNvcmVMb2NhdGlvblByb3ZpZGVyID0gYWRv
cHROUyhbVGVzdENvcmVMb2NhdGlvblByb3ZpZGVyIG5ld10pOworICAgIGNvcmVMb2NhdGlvblBy
b3ZpZGVyLmdldCgpLnNob3VsZEF1dGhvcml6ZUdlb2xvY2F0aW9uID0gWUVTOworICAgIGF1dG8g
cHJvY2Vzc1Bvb2wgPSBhZG9wdE5TKFtXS1Byb2Nlc3NQb29sIG5ld10pOworICAgIHByb2Nlc3NQ
b29sLmdldCgpLl9jb3JlTG9jYXRpb25Qcm92aWRlciA9IGNvcmVMb2NhdGlvblByb3ZpZGVyLmdl
dCgpOworICAgIGF1dG8gY29uZmlnID0gYWRvcHROUyhbV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBu
ZXddKTsKKyAgICBjb25maWcuZ2V0KCkucHJvY2Vzc1Bvb2wgPSBwcm9jZXNzUG9vbC5nZXQoKTsK
KyAgICBhdXRvIHdlYlZpZXcgPSBhZG9wdE5TKFtbVGVzdFdLV2ViVmlldyBhbGxvY10gaW5pdFdp
dGhGcmFtZTpOU01ha2VSZWN0KDAsIDAsIDgwMCwgNjAwKSBjb25maWd1cmF0aW9uOmNvbmZpZy5n
ZXQoKV0pOworICAgIENsYXNzTWV0aG9kU3dpenpsZXIgc3dpenpsZXIoW1VJV2ViR2VvbG9jYXRp
b25Qb2xpY3lEZWNpZGVyIGNsYXNzXSwgQHNlbGVjdG9yKHNoYXJlZFBvbGljeURlY2lkZXIpLCBy
ZWludGVycHJldF9jYXN0PElNUD4oZmFrZVdlYkdlb2xvY2F0aW9uUG9saWN5RGVjaWRlcikpOwor
ICAgIEVYUEVDVF9GQUxTRShmYWtlV2ViR2VvbG9jYXRpb25Qb2xpY3lEZWNpZGVyKCkucmVjZWl2
ZWRSZXF1ZXN0KTsKKyAgICBbd2ViVmlldyBsb2FkVGVzdFBhZ2VOYW1lZDpAIkdlb2xvY2F0aW9u
R2V0Q3VycmVudFBvc2l0aW9uUmVzdWx0Il07CisgICAgRVhQRUNUX1dLX1NUUkVRKFt3ZWJWaWV3
IF90ZXN0X3dhaXRGb3JBbGVydF0sICJTVUNDRVNTIik7CisgICAgRVhQRUNUX1RSVUUoY29yZUxv
Y2F0aW9uUHJvdmlkZXIuZ2V0KCkuYXV0aG9yaXphdGlvbldhc1JlcXVlc3RlZCk7CisgICAgRVhQ
RUNUX1RSVUUoZmFrZVdlYkdlb2xvY2F0aW9uUG9saWN5RGVjaWRlcigpLnJlY2VpdmVkUmVxdWVz
dCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFRlc3RXZWJLaXRBUEkKIAogI2VuZGlmIC8vIFBMQVRG
T1JNKElPU19GQU1JTFkpCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9VSUtp
dFNQSS5oIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9pb3MvVUlLaXRTUEkuaAppbmRleCA4MzAyNGYy
ZGQ4NzA0NjU3YzYzYTViMzkyMmM4MGI2MTg2NzdjMzU3Li4yODRkZjgxNWMxNDcyNGZjMDRmMjU1
NzcyNTYzMzA2OTQzMTcxM2JlIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL2lvcy9V
SUtpdFNQSS5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvaW9zL1VJS2l0U1BJLmgKQEAgLTMw
OCw0ICszMDgsMTEgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9VSUNsaWNrSW50ZXJh
Y3Rpb25FdmVudCkgewogLSAodm9pZClfc2hhcmU6KGlkKXNlbmRlcjsKIEBlbmQKIAorQGludGVy
ZmFjZSBVSVdlYkdlb2xvY2F0aW9uUG9saWN5RGVjaWRlciA6IE5TT2JqZWN0CitAZW5kCisKK0Bp
bnRlcmZhY2UgVUlXZWJHZW9sb2NhdGlvblBvbGljeURlY2lkZXIgKCkKKysgKGluc3RhbmNldHlw
ZSlzaGFyZWRQb2xpY3lEZWNpZGVyOworQGVuZAorCiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZB
TUlMWSkK
</data>

          </attachment>
      

    </bug>

</bugzilla>