<?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>184239</bug_id>
          
          <creation_ts>2018-04-02 10:21:03 -0700</creation_ts>
          <short_desc>Add infrastructure to relax SSL for allowed hosts in DumpRenderTree and WebKitTestRunner</short_desc>
          <delta_ts>2018-04-02 16:13:35 -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>Tools / Tests</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="Daniel Bates">dbates</reporter>
          <assigned_to name="Daniel Bates">dbates</assigned_to>
          <cc>ews-watchlist</cc>
    
    <cc>jer.noble</cc>
    
    <cc>lforschler</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1411118</commentid>
    <comment_count>0</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 10:21:03 -0700</bug_when>
    <thetext>Add infrastructure to relax SSL for allowed hosts in DumpRenderTree and WebKitTestRunner.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411119</commentid>
    <comment_count>1</comment_count>
      <attachid>336995</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 10:23:39 -0700</bug_when>
    <thetext>Created attachment 336995
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411122</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2018-04-02 10:25:28 -0700</bug_when>
    <thetext>Attachment 336995 did not pass style-queue:


ERROR: Tools/WebKitTestRunner/TestController.cpp:1763:  More than one command on the same line  [whitespace/newline] [4]
Total errors found: 1 in 12 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411128</commentid>
    <comment_count>3</comment_count>
      <attachid>336995</attachid>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2018-04-02 10:35:25 -0700</bug_when>
    <thetext>Comment on attachment 336995
Patch

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

&gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1253
&gt; +            [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[[NSString alloc] initWithUTF8String:host.c_str()]];

This leaks the string (as we don&apos;t seem to be using ARC in DRT).

&gt; Tools/WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:57
&gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];

What are the iOS versions where we still perform network loading from the WebContent process?

&gt; Tools/WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:99
&gt; +    for (auto&amp; host : m_allowedHosts)
&gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];

What are the macOS versions where we still perform network loading from the WebContent process?

&gt; Tools/WebKitTestRunner/TestController.cpp:1763
&gt; +            return std::any_of(m_allowedHosts.begin(), m_allowedHosts.end(), [host] (const std::string&amp; allowedHost) { return host == allowedHost; });

Wouldn&apos;t m_allowedHosts.find() work here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411137</commentid>
    <comment_count>4</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 10:47:03 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; Comment on attachment 336995 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=336995&amp;action=review
&gt; 
&gt; &gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1253
&gt; &gt; +            [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[[NSString alloc] initWithUTF8String:host.c_str()]];
&gt; 
&gt; This leaks the string (as we don&apos;t seem to be using ARC in DRT).
&gt; 

Oops! Will use -autorelease.

&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:57
&gt; &gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];
&gt; 
&gt; What are the iOS versions where we still perform network loading from the
&gt; WebContent process?
&gt; 
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:99
&gt; &gt; +    for (auto&amp; host : m_allowedHosts)
&gt; &gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];
&gt; 
&gt; What are the macOS versions where we still perform network loading from the
&gt; WebContent process?
&gt; 

I do not know. I hope you do not mind that I defer cleaning this up.

&gt; &gt; Tools/WebKitTestRunner/TestController.cpp:1763
&gt; &gt; +            return std::any_of(m_allowedHosts.begin(), m_allowedHosts.end(), [host] (const std::string&amp; allowedHost) { return host == allowedHost; });
&gt; 
&gt; Wouldn&apos;t m_allowedHosts.find() work here?

Will change m_allowedHosts from a std::vector to a std::set and use std::set::find().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411139</commentid>
    <comment_count>5</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 10:47:42 -0700</bug_when>
    <thetext>(In reply to Alexey Proskuryakov from comment #3)
&gt; &gt; Tools/WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:57
&gt; &gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];
&gt; 
&gt; What are the iOS versions where we still perform network loading from the
&gt; WebContent process?
&gt; 

I don&apos;t know. I hope you do not mind that I defer cleaning this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411182</commentid>
    <comment_count>6</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 11:48:30 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #5)
&gt; (In reply to Alexey Proskuryakov from comment #3)
&gt; &gt; &gt; Tools/WebKitTestRunner/InjectedBundle/ios/InjectedBundleIOS.mm:57
&gt; &gt; &gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];
&gt; &gt; 
&gt; &gt; What are the iOS versions where we still perform network loading from the
&gt; &gt; WebContent process?
&gt; &gt; 
&gt; 
&gt; I don&apos;t know. I hope you do not mind that I defer cleaning this up.

We no longer need this code. We remove this code in bug #184242.

(In reply to Daniel Bates from comment #4)
&gt; &gt; &gt; Tools/WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:99
&gt; &gt; &gt; +    for (auto&amp; host : m_allowedHosts)
&gt; &gt; &gt; +        [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:host];
&gt; &gt; 
&gt; &gt; What are the macOS versions where we still perform network loading from the
&gt; &gt; WebContent process?
&gt; &gt; 
&gt; 
&gt; I do not know. I hope you do not mind that I defer cleaning this up.

We no longer need this code. We remove this code in bug #184242.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411191</commentid>
    <comment_count>7</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 12:14:18 -0700</bug_when>
    <thetext>(In reply to Daniel Bates from comment #4)
&gt; (In reply to Alexey Proskuryakov from comment #3)
&gt; &gt; Comment on attachment 336995 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=336995&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/DumpRenderTree/mac/DumpRenderTree.mm:1253
&gt; &gt; &gt; +            [NSURLRequest setAllowsAnyHTTPSCertificate:YES forHost:[[NSString alloc] initWithUTF8String:host.c_str()]];
&gt; &gt; 
&gt; &gt; This leaks the string (as we don&apos;t seem to be using ARC in DRT).
&gt; &gt; 
&gt; 
&gt; Oops! Will use -autorelease.
&gt; 

Even better, will use the convenience API -stringWithUTF8String as it calls -autorelease and using it simplifies this code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411294</commentid>
    <comment_count>8</comment_count>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2018-04-02 16:12:22 -0700</bug_when>
    <thetext>Committed r230192: &lt;https://trac.webkit.org/changeset/230192&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1411295</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-04-02 16:13:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/39122881&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>336995</attachid>
            <date>2018-04-02 10:23:39 -0700</date>
            <delta_ts>2018-04-02 10:35:25 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-184239-20180402102338.patch</filename>
            <type>text/plain</type>
            <size>17303</size>
            <attacher name="Daniel Bates">dbates</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjMwMTE3CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cg
Yi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNTk4YjE1N2VlZDE4ZGNjNjA2ZGI1ZmMxNDc5NjZjMzky
MDhiY2Q4NC4uOWIxYmQ0NjE0YjIwNGQwZWI3Y2UyODNiMDJjYTNjY2Q4NDcxZDA3MSAxMDA2NDQK
LS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5
IEBACisyMDE4LTA0LTAyICBEYW5pZWwgQmF0ZXMgIDxkYWJhdGVzQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgaW5mcmFzdHJ1Y3R1cmUgdG8gcmVsYXggU1NMIGZvciBhbGxvd2VkIGhvc3RzIGlu
IER1bXBSZW5kZXJUcmVlIGFuZCBXZWJLaXRUZXN0UnVubmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODQyMzkKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGRzIGEgbmV3IG9wdGlvbmFsIGNvbW1hbmQg
bGluZSBvcHRpb24gLS1hbGxvdy1hbnktY2VydGlmaWNhdGUtZm9yLWFsbG93ZWQtaG9zdHMgKGRl
ZmF1bHRzIHRvIGRpc2FibGVkKQorICAgICAgICB0byBhbGxvdyB0aGUgYWxsb3dlZCBob3N0cyB0
byBhY2NlcHQgYW55IEhUVFBTIGNlcnRpZmljYXRlLiBZb3UgY2FuIHNwZWNpZnkgYW4gYWxsb3dl
ZCBob3N0CisgICAgICAgIGJ5IHVzaW5nIHRoZSBleGlzdGluZyBjb21tYW5kIGxpbmUgb3B0aW9u
IC0tYWxsb3dlZC1ob3N0LgorCisgICAgICAgIEN1cnJlbnRseSBib3RoIER1bXBSZW5kZXJUcmVl
IGFuZCBXZWJLaXRUZXN0UnVubmVyIHJlbGF4IFNTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9uCisg
ICAgICAgIGZvciAxMjcuMC4wLjEgYW5kIGxvY2FsaG9zdCBzbyB0aGF0IHdlIGNhbiBydW4gSFRU
UFMgdGVzdHMgZnJvbSB0aGVzZSBob3N0cyB1c2luZworICAgICAgICBhIHNlbGYtc2lnbmVkIGNl
cnRpZmljYXRlLiBUaGV5IGRvIG5vdCByZWxheCB0aGVzZSByZXN0cmljdGlvbnMgZm9yIGFueSBh
bGxvd2VkIGhvc3QsCisgICAgICAgIHNwZWNpZmllZCB1c2luZyB0aGUgb3B0aW9uYWwgY29tbWFu
ZCBsaW5lIG9wdGlvbiAtLWFsbG93ZWQtaG9zdC4gRm9yIHRlc3RpbmcgcHVycG9zZXMKKyAgICAg
ICAgaXQgaXMgdXNlZnVsIHRvIGJlIGFibGUgdG8gcnVuIGEgbG9jYWwgSFRUUFMgc2VydmVyIHdp
dGggYSBzZWxmLXNpZ25lZCBjZXJ0aWZpY2F0ZSBhbmQKKyAgICAgICAgbWltaWMgYSBub24tbG9j
YWxob3N0IGhvc3RuYW1lIChieSBhZGRpbmcgYW4gYWxpYXMoZXMpIGZvciAxMjcuMC4wLjEgdG8g
L2V0Yy9ob3N0cykuCisgICAgICAgIFdlIHNob3VsZCBzdXBwb3J0IHJlbGF4aW5nIFNTTCByZXN0
cmljdGlvbnMgZm9yIHN1Y2ggdGVzdGluZyBwdXJwb3Nlcy4KKworICAgICAgICBGb3IgZXhhbXBs
ZSwgdG8gYWxsb3cgaG9zdCBleGFtcGxlLnRlc3QgdG8gcHJlc2VudCBhbnkgSFRUUFMgY2VydGlm
aWNhdGUgd2hlbiBydW5uaW5nCisgICAgICAgIHRlc3RzIHlvdSB3b3VsZCBpbnZva2U6CisKKyAg
ICAgICAgICAgIHJ1bi13ZWJraXQtdGVzdHMgLS1hbGxvd2VkLWhvc3QgZXhhbXBsZS50ZXN0IC0t
YWRkaXRpb25hbC1kcnQtZmxhZyAnLS1hbGxvdy1hbnktY2VydGlmaWNhdGUtZm9yLWFsbG93ZWQt
aG9zdHMnCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvRHVtcFJlbmRlclRyZWUubW06
CisgICAgICAgIChpbml0aWFsaXplR2xvYmFsc0Zyb21Db21tYW5kTGluZU9wdGlvbnMpOgorICAg
ICAgICAoZHVtcFJlbmRlclRyZWUpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRs
ZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UpOiBDbGVhciBvdXQgdGhlIGV4aXN0aW5nIGxpc3Qg
b2YgYWxsb3dlZCBob3N0cworICAgICAgICBiZWZvcmUgYXBwZW5kaW5nIGVudHJpZXMgdG8gaXQg
dG8gYXZvaWQgZ3Jvd2luZyB0aGUgbGlzdCBvZiBhbGxvd2VkIGhvc3RzIHdpdGhvdXQgYm91bmQu
IENhbGwKKyAgICAgICAgcGxhdGZvcm1BbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2Vk
SG9zdHMoKSB0byBhcHBseSBTU0wgcmVsYXhhdGlvbiBmb3IgZWFjaCBhbGxvd2VkIGhvc3QuCisK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxl
Lmg6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvSW5qZWN0
ZWRCdW5kbGVHdGsuY3BwOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1B
bGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMpOgorICAgICAgICAqIFdlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlSU9TLm1tOgorICAg
ICAgICAoV1RSOjpJbmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1BbGxvd0FueUhUVFBTQ2VydGlmaWNh
dGVGb3JBbGxvd2VkSG9zdHMpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tOgorICAgICAgICAoV1RSOjpJbmplY3RlZEJ1
bmRsZTo6cGxhdGZvcm1BbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVu
ZGxlV1BFLmNwcDoKKyAgICAgICAgKFdUUjo6SW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtQWxsb3dB
bnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzKToKKyAgICAgICAgSW1wbGVtZW50IHBs
YXRmb3JtLXNwZWNpZmljIGxvZ2ljIHRvIHJlbGF4IFNTTCBjZXJ0aWZpY2F0ZSB2YWxpZGF0aW9u
IGZvciBhbGxvd2VkIGhvc3RzLiBOb3RlIHRoYXQKKyAgICAgICAgLS1hbGxvd2VkLWhvc3RzIGFu
ZCAtLWFsbG93LWFueS1jZXJ0aWZpY2F0ZS1mb3ItYWxsb3dlZC1ob3N0cyBhcmUgb25seSBzdXBw
b3J0ZWQgaW4gdGhlIE1hYyBhbmQgaU9TIHBvcnRzLgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1
bm5lci9PcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6aGFuZGxlT3B0aW9uQWxsb3dBbnlIVFRQ
U0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzKTogQWRkZWQuCisgICAgICAgIChXVFI6Ok9wdGlv
bnNIYW5kbGVyOjpPcHRpb25zSGFuZGxlcik6CisgICAgICAgIChXVFI6Ok9wdGlvbnM6Ok9wdGlv
bnMpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvT3B0aW9ucy5oOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwOgorICAgICAgICAoV1RS
OjpUZXN0Q29udHJvbGxlcjo6aW5pdGlhbGl6ZSk6CisgICAgICAgIChXVFI6OlRlc3RDb250cm9s
bGVyOjpyZXNldFN0YXRlVG9Db25zaXN0ZW50VmFsdWVzKToKKyAgICAgICAgKFdUUjo6VGVzdENv
bnRyb2xsZXI6OmNhbkF1dGhlbnRpY2F0ZUFnYWluc3RQcm90ZWN0aW9uU3BhY2UpOiBSZWxheCBT
U0wgdmFsaWRhdGlvbiBmb3IgYWxsb3dlZCBob3N0cywKKyAgICAgICAgaWYgYXBwbGljYWJsZSwg
d2hlbiB1c2luZyB0aGUgV2ViS2l0MiBOU1VSTFNlc3Npb24gbWFjaGluZXJ5LgorICAgICAgICAq
IFdlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaDoKKwogMjAxOC0wMy0yOSAgUnlvc3Vr
ZSBOaXdhICA8cm5pd2FAd2Via2l0Lm9yZz4KIAogICAgICAgICBDb3B5aW5nIGEgbGlzdCBmcm9t
IE1pY3Jvc29mdCBXb3JkIHRvIFRpbnlNQ0UgZmFpbHMgd2hlbiBtc28tbGlzdCBpcyBvbiB0YWdz
IG90aGVyIHRoYW4gUApkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBS
ZW5kZXJUcmVlLm1tIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL0R1bXBSZW5kZXJUcmVlLm1t
CmluZGV4IGVhNjViYjk1NzFkMTZjMWNmYzhlNzdlZTg3OWRiZTIwNWZiOTIyZmQuLmI4OTcwMzFi
MmUzOTMxYTYwYTljM2NiMWIzMTA5Y2NhZDkxMThiYTQgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBS
ZW5kZXJUcmVlL21hYy9EdW1wUmVuZGVyVHJlZS5tbQorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9tYWMvRHVtcFJlbmRlclRyZWUubW0KQEAgLTIxOCw2ICsyMTgsNyBAQCBzdGF0aWMgaW50IHVz
ZVRpbWVvdXRXYXRjaGRvZyA9IFlFUzsKIHN0YXRpYyBpbnQgZm9yY2VDb21wbGV4VGV4dDsKIHN0
YXRpYyBpbnQgdXNlQWNjZWxlcmF0ZWREcmF3aW5nOwogc3RhdGljIGludCBnY0JldHdlZW5UZXN0
czsKK3N0YXRpYyBpbnQgYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwog
c3RhdGljIGludCBzaG93V2ViVmlldzsKIHN0YXRpYyBpbnQgcHJpbnRUZXN0Q291bnQ7CiBzdGF0
aWMgQk9PTCBwcmludFNlcGFyYXRvcnM7CkBAIC0xMTA3LDYgKzExMDgsNyBAQCBzdGF0aWMgdm9p
ZCBpbml0aWFsaXplR2xvYmFsc0Zyb21Db21tYW5kTGluZU9wdGlvbnMoaW50IGFyZ2MsIGNvbnN0
IGNoYXIgKmFyZ3ZbXQogICAgICAgICB7ImdjLWJldHdlZW4tdGVzdHMiLCBub19hcmd1bWVudCwg
JmdjQmV0d2VlblRlc3RzLCBZRVN9LAogICAgICAgICB7Im5vLXRpbWVvdXQiLCBub19hcmd1bWVu
dCwgJnVzZVRpbWVvdXRXYXRjaGRvZywgTk99LAogICAgICAgICB7ImFsbG93ZWQtaG9zdCIsIHJl
cXVpcmVkX2FyZ3VtZW50LCBudWxscHRyLCAnYSd9LAorICAgICAgICB7ImFsbG93LWFueS1jZXJ0
aWZpY2F0ZS1mb3ItYWxsb3dlZC1ob3N0cyIsIG5vX2FyZ3VtZW50LCAmYWxsb3dBbnlIVFRQU0Nl
cnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzLCBZRVN9LAogICAgICAgICB7InNob3ctd2VidmlldyIs
IG5vX2FyZ3VtZW50LCAmc2hvd1dlYlZpZXcsIFlFU30sCiAgICAgICAgIHsicHJpbnQtdGVzdC1j
b3VudCIsIG5vX2FyZ3VtZW50LCAmcHJpbnRUZXN0Q291bnQsIFlFU30sCiAgICAgICAgIHtudWxs
cHRyLCAwLCBudWxscHRyLCAwfQpAQCAtMTI0Niw2ICsxMjQ4LDEwIEBAIHZvaWQgZHVtcFJlbmRl
clRyZWUoaW50IGFyZ2MsIGNvbnN0IGNoYXIgKmFyZ3ZbXSkKIAogICAgIFtOU1VSTFJlcXVlc3Qg
c2V0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZTpZRVMgZm9ySG9zdDpAImxvY2FsaG9zdCJdOwog
ICAgIFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzQW55SFRUUFNDZXJ0aWZpY2F0ZTpZRVMgZm9ySG9z
dDpAIjEyNy4wLjAuMSJdOworICAgIGlmIChhbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxv
d2VkSG9zdHMpIHsKKyAgICAgICAgZm9yIChhdXRvJiBob3N0IDogYWxsb3dlZEhvc3RzKQorICAg
ICAgICAgICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlOllFUyBm
b3JIb3N0OltbTlNTdHJpbmcgYWxsb2NdIGluaXRXaXRoVVRGOFN0cmluZzpob3N0LmNfc3RyKCld
XTsKKyAgICB9CiAKICAgICBpZiAodGhyZWFkZWQpCiAgICAgICAgIHN0YXJ0SmF2YVNjcmlwdFRo
cmVhZHMoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvSW5qZWN0ZWRCdW5kbGUuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9JbmplY3RlZEJ1bmRsZS5jcHAKaW5kZXggMTY5ZmQ1ZGZhOGMwM2FkMDY0YzAxNjRhNGEw
OWZmMzU0M2ZiNjk1YS4uNjYyYjEyNDRiY2IwZmE2OTYzNTg1MGFhNmI5MjkyNDczZjVkZGQxMyAx
MDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3Rl
ZEJ1bmRsZS5jcHAKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9J
bmplY3RlZEJ1bmRsZS5jcHAKQEAgLTE4MCw2ICsxODAsOCBAQCB2b2lkIEluamVjdGVkQnVuZGxl
OjpkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXS0J1bmRsZVBhZ2VSZWYgcGFnZSwgV0tTdHJpbmdS
ZWYgbQogICAgICAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4gYWxsb3dlZEhvc3RzS2V5KEFk
b3B0V0ssIFdLU3RyaW5nQ3JlYXRlV2l0aFVURjhDU3RyaW5nKCJBbGxvd2VkSG9zdHMiKSk7CiAg
ICAgICAgIFdLVHlwZVJlZiBhbGxvd2VkSG9zdHNWYWx1ZSA9IFdLRGljdGlvbmFyeUdldEl0ZW1G
b3JLZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBhbGxvd2VkSG9zdHNLZXkuZ2V0KCkpOwogICAg
ICAgICBpZiAoYWxsb3dlZEhvc3RzVmFsdWUgJiYgV0tHZXRUeXBlSUQoYWxsb3dlZEhvc3RzVmFs
dWUpID09IFdLQXJyYXlHZXRUeXBlSUQoKSkgeworICAgICAgICAgICAgbV9hbGxvd2VkSG9zdHMu
Y2xlYXIoKTsKKwogICAgICAgICAgICAgV0tBcnJheVJlZiBhbGxvd2VkSG9zdHNBcnJheSA9IHN0
YXRpY19jYXN0PFdLQXJyYXlSZWY+KGFsbG93ZWRIb3N0c1ZhbHVlKTsKICAgICAgICAgICAgIGZv
ciAoc2l6ZV90IGkgPSAwLCBzaXplID0gV0tBcnJheUdldFNpemUoYWxsb3dlZEhvc3RzQXJyYXkp
OyBpIDwgc2l6ZTsgKytpKSB7CiAgICAgICAgICAgICAgICAgV0tUeXBlUmVmIGl0ZW0gPSBXS0Fy
cmF5R2V0SXRlbUF0SW5kZXgoYWxsb3dlZEhvc3RzQXJyYXksIGkpOwpAQCAtMTg4LDExICsxOTAs
MTYgQEAgdm9pZCBJbmplY3RlZEJ1bmRsZTo6ZGlkUmVjZWl2ZU1lc3NhZ2VUb1BhZ2UoV0tCdW5k
bGVQYWdlUmVmIHBhZ2UsIFdLU3RyaW5nUmVmIG0KICAgICAgICAgICAgIH0KICAgICAgICAgfQog
CisgICAgICAgIFdLUmV0YWluUHRyPFdLU3RyaW5nUmVmPiBhbGxvd0FueUhUVFBTQ2VydGlmaWNh
dGVGb3JBbGxvd2VkSG9zdHNLZXkoQWRvcHRXSywgV0tTdHJpbmdDcmVhdGVXaXRoVVRGOENTdHJp
bmcoIkFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cyIpKTsKKyAgICAgICAg
Ym9vbCBhbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMgPSBXS0Jvb2xlYW5H
ZXRWYWx1ZShzdGF0aWNfY2FzdDxXS0Jvb2xlYW5SZWY+KFdLRGljdGlvbmFyeUdldEl0ZW1Gb3JL
ZXkobWVzc2FnZUJvZHlEaWN0aW9uYXJ5LCBhbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxv
d2VkSG9zdHNLZXkuZ2V0KCkpKSk7CisKICAgICAgICAgbV9zdGF0ZSA9IElkbGU7CiAgICAgICAg
IG1fZHVtcFBpeGVscyA9IGZhbHNlOwogICAgICAgICBtX3BpeGVsUmVzdWx0SXNQZW5kaW5nID0g
ZmFsc2U7CiAKICAgICAgICAgcmVzZXRMb2NhbFNldHRpbmdzKCk7CisgICAgICAgIGlmIChhbGxv
d0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMpCisgICAgICAgICAgICBwbGF0Zm9y
bUFsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cygpOwogICAgICAgICBUZXN0
UnVubmVyOjpyZW1vdmVBbGxXZWJOb3RpZmljYXRpb25QZXJtaXNzaW9ucygpOwogCiAgICAgICAg
IEluamVjdGVkQnVuZGxlOjpwYWdlKCktPnJlc2V0QWZ0ZXJUZXN0KCk7CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmggYi9U
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0luamVjdGVkQnVuZGxlLmgKaW5k
ZXggMDQzMjMxM2I0N2UzMDViMTljNGQ3NDU4ZGNjYTY1ZjgxZjU0MzM3MS4uMzdmNTViNjY3ODRj
ZjUyODc3ZmRjNWVmYmJiODcwYjg1NDU3NDVkYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9JbmplY3RlZEJ1bmRsZS5oCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvSW5qZWN0ZWRCdW5kbGUuaApAQCAtMTUzLDYgKzE1
Myw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZVRvUGFnZShXS0J1bmRs
ZVBhZ2VSZWYsIFdLU3RyaW5nUmVmIG1lc3NhZ2VOYW1lLCBXS1R5cGVSZWYgbWVzc2FnZUJvZHkp
OwogCiAgICAgdm9pZCBwbGF0Zm9ybUluaXRpYWxpemUoV0tUeXBlUmVmIGluaXRpYWxpemF0aW9u
VXNlckRhdGEpOworICAgIHZvaWQgcGxhdGZvcm1BbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JB
bGxvd2VkSG9zdHMoKTsKICAgICB2b2lkIHJlc2V0TG9jYWxTZXR0aW5ncygpOwogCiAgICAgdm9p
ZCBiZWdpblRlc3RpbmcoV0tEaWN0aW9uYXJ5UmVmIGluaXRpYWxTZXR0aW5ncyk7CmRpZmYgLS1n
aXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9JbmplY3RlZEJ1
bmRsZUd0ay5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL2d0ay9J
bmplY3RlZEJ1bmRsZUd0ay5jcHAKaW5kZXggYmEwODQzMWM0Y2Q3YmE3Y2UwNTI4NTE0MDdmNWJm
NTNkNTBlNGU2Mi4uZmNlNzBkMDQ2MzY2M2UyYTNkYTk3OWM2MDI2ZjdmYWViMzk5YzQ5ZCAxMDA2
NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9ndGsvSW5qZWN0
ZWRCdW5kbGVHdGsuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5k
bGUvZ3RrL0luamVjdGVkQnVuZGxlR3RrLmNwcApAQCAtNDksNCArNDksOCBAQCB2b2lkIEluamVj
dGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRpYWxpemUoV0tUeXBlUmVmKQogICAgICAgICBnX3NldGVu
digiV0VCS0lUX1RPUF9MRVZFTCIsIFRPUF9MRVZFTF9ESVIsIEZBTFNFKTsKIH0KIAordm9pZCBJ
bmplY3RlZEJ1bmRsZTo6cGxhdGZvcm1BbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2Vk
SG9zdHMoKQoreworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvaW9zL0luamVjdGVkQnVuZGxlSU9TLm1tIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJ
T1MubW0KaW5kZXggMjY5MzE4YjU0M2E2ZWE0NTQ5OTBhYTA3ZWIwNjdkOGQ1OGE3ZTYwZi4uYmJm
MWIyZDc4YTIyNjgzZjAzYjY2NDBkN2VhMTlkNDYxYTE1ZGM4NiAxMDA2NDQKLS0tIGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRCdW5kbGVJT1MubW0K
KysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9pb3MvSW5qZWN0ZWRC
dW5kbGVJT1MubW0KQEAgLTUxLDQgKzUxLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRm
b3JtSW5pdGlhbGl6ZShXS1R5cGVSZWYpCiAgICAgW05TVVJMUmVxdWVzdCBzZXRBbGxvd3NBbnlI
VFRQU0NlcnRpZmljYXRlOllFUyBmb3JIb3N0OkAiMTI3LjAuMC4xIl07CiB9CiAKK3ZvaWQgSW5q
ZWN0ZWRCdW5kbGU6OnBsYXRmb3JtQWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhv
c3RzKCkKK3sKKyAgICBmb3IgKGF1dG8mIGhvc3QgOiBtX2FsbG93ZWRIb3N0cykKKyAgICAgICAg
W05TVVJMUmVxdWVzdCBzZXRBbGxvd3NBbnlIVFRQU0NlcnRpZmljYXRlOllFUyBmb3JIb3N0Omhv
c3RdOworfQorCiB9IC8vIG5hbWVzcGFjZSBXVFIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvbWFjL0luamVjdGVkQnVuZGxlTWFjLm1tIGIvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0K
aW5kZXggZDM4OGU1ZjQyZjY1ZDJlZTliZTE1MDM5NDU5Y2VlZDljM2QzNTU4YS4uMWM4OTRjYTE1
YmE3ZWZmNmM2OTAxMzQyZWZjYWEyNGRmY2Y3NjVhNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVNYWMubW0KKysrIGIv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9tYWMvSW5qZWN0ZWRCdW5kbGVN
YWMubW0KQEAgLTkzLDQgKzkzLDEwIEBAIHZvaWQgSW5qZWN0ZWRCdW5kbGU6OnBsYXRmb3JtSW5p
dGlhbGl6ZShXS1R5cGVSZWYgaW5pdGlhbGl6YXRpb25Vc2VyRGF0YSkKICAgICBbTlNTb3VuZCBf
c2V0QWxlcnRUeXBlOjBdOwogfQogCit2b2lkIEluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUFsbG93
QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cygpCit7CisgICAgZm9yIChhdXRvJiBo
b3N0IDogbV9hbGxvd2VkSG9zdHMpCisgICAgICAgIFtOU1VSTFJlcXVlc3Qgc2V0QWxsb3dzQW55
SFRUUFNDZXJ0aWZpY2F0ZTpZRVMgZm9ySG9zdDpob3N0XTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V1RSCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL3dw
ZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVk
QnVuZGxlL3dwZS9JbmplY3RlZEJ1bmRsZVdQRS5jcHAKaW5kZXggMjQwODFmZjNhMjllOTYwNTM3
NDcxYTYzYjg3MzhiMTliNGQyYjAwNS4uMmExZTI4MGZkN2MyMjJmMGYzNjI3ZTE0ZDE3ZjhmYjIx
MmExYjRlNCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRs
ZS93cGUvSW5qZWN0ZWRCdW5kbGVXUEUuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
SW5qZWN0ZWRCdW5kbGUvd3BlL0luamVjdGVkQnVuZGxlV1BFLmNwcApAQCAtMzIsNCArMzIsOCBA
QCB2b2lkIEluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUluaXRpYWxpemUoV0tUeXBlUmVmKQogewog
fQogCit2b2lkIEluamVjdGVkQnVuZGxlOjpwbGF0Zm9ybUFsbG93QW55SFRUUFNDZXJ0aWZpY2F0
ZUZvckFsbG93ZWRIb3N0cygpCit7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdUUgpkaWZmIC0tZ2l0
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RS
dW5uZXIvT3B0aW9ucy5jcHAKaW5kZXggNDUwOGNmMmFmOTYwODIyNGQ2OWY5NGUzMjAwMWFiZWNh
MzgxMmQ2My4uYzUzZjc2MTgzM2UxZDIxNzE0YmQ4OWQwODg4YTZjNjU1YTFiYzg2ZCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL09wdGlvbnMuY3BwCkBAIC0zMiwyMSArMzIsNiBAQAogCiBuYW1lc3BhY2Ug
V1RSIHsKIAotT3B0aW9uczo6T3B0aW9ucygpCi0gICAgOiB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dU
aW1lcih0cnVlKQotICAgICwgZm9yY2VOb1RpbWVvdXQoZmFsc2UpCi0gICAgLCB2ZXJib3NlKGZh
bHNlKQotICAgICwgZ2NCZXR3ZWVuVGVzdHMoZmFsc2UpCi0gICAgLCBzaG91bGREdW1wUGl4ZWxz
Rm9yQWxsVGVzdHMoZmFsc2UpCi0gICAgLCBwcmludFN1cHBvcnRlZEZlYXR1cmVzKGZhbHNlKQot
ICAgICwgZm9yY2VDb21wbGV4VGV4dChmYWxzZSkKLSAgICAsIHNob3VsZFVzZUFjY2VsZXJhdGVk
RHJhd2luZyhmYWxzZSkKLSAgICAsIHNob3VsZFVzZVJlbW90ZUxheWVyVHJlZShmYWxzZSkKLSAg
ICAsIHNob3VsZFNob3dXZWJWaWV3KGZhbHNlKQotICAgICwgc2hvdWxkU2hvd1RvdWNoZXMoZmFs
c2UpCi17Ci19Ci0KIGJvb2wgaGFuZGxlT3B0aW9uTm9UaW1lb3V0KE9wdGlvbnMmIG9wdGlvbnMs
IGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKIHsKICAgICBvcHRpb25zLnVzZVdhaXRUb0R1bXBX
YXRjaGRvZ1RpbWVyID0gZmFsc2U7CkBAIC0xMDEsMTMgKzg2LDE5IEBAIGJvb2wgaGFuZGxlT3B0
aW9uU2hvd1dlYlZpZXcoT3B0aW9ucyYgb3B0aW9ucywgY29uc3QgY2hhciosIGNvbnN0IGNoYXIq
KQogICAgIG9wdGlvbnMuc2hvdWxkU2hvd1dlYlZpZXcgPSB0cnVlOwogICAgIHJldHVybiB0cnVl
OwogfQotICAgIAorCiBib29sIGhhbmRsZU9wdGlvblNob3dUb3VjaGVzKE9wdGlvbnMmIG9wdGlv
bnMsIGNvbnN0IGNoYXIqLCBjb25zdCBjaGFyKikKIHsKICAgICBvcHRpb25zLnNob3VsZFNob3dU
b3VjaGVzID0gdHJ1ZTsKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorYm9vbCBoYW5kbGVPcHRpb25B
bGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMoT3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgY2hhciosIGNvbnN0IGNoYXIqKQoreworICAgIG9wdGlvbnMuYWxsb3dBbnlIVFRQU0Nl
cnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzID0gdHJ1ZTsKKyAgICByZXR1cm4gdHJ1ZTsKK30KKwog
Ym9vbCBoYW5kbGVPcHRpb25BbGxvd2VkSG9zdChPcHRpb25zJiBvcHRpb25zLCBjb25zdCBjaGFy
KiwgY29uc3QgY2hhciogaG9zdCkKIHsKICAgICBvcHRpb25zLmFsbG93ZWRIb3N0cy5wdXNoX2Jh
Y2soaG9zdCk7CkBAIC0xMzUsNiArMTI2LDcgQEAgT3B0aW9uc0hhbmRsZXI6Ok9wdGlvbnNIYW5k
bGVyKE9wdGlvbnMmIG8pCiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLWFjY2VsZXJh
dGVkLWRyYXdpbmciLCAiVXNlIGFjY2VsZXJhdGVkIGRyYXdpbmcuIiwgaGFuZGxlT3B0aW9uQWNj
ZWxlcmF0ZWREcmF3aW5nKSk7CiAgICAgb3B0aW9uTGlzdC5hcHBlbmQoT3B0aW9uKCItLXJlbW90
ZS1sYXllci10cmVlIiwgIlVzZSByZW1vdGUgbGF5ZXIgdHJlZS4iLCBoYW5kbGVPcHRpb25SZW1v
dGVMYXllclRyZWUpKTsKICAgICBvcHRpb25MaXN0LmFwcGVuZChPcHRpb24oIi0tYWxsb3dlZC1o
b3N0IiwgIkFsbG93cyBhY2Nlc3MgdG8gdGhlIHNwZWNpZmllZCBob3N0IGZyb20gdGVzdHMuIiwg
aGFuZGxlT3B0aW9uQWxsb3dlZEhvc3QsIHRydWUpKTsKKyAgICBvcHRpb25MaXN0LmFwcGVuZChP
cHRpb24oIi0tYWxsb3ctYW55LWNlcnRpZmljYXRlLWZvci1hbGxvd2VkLWhvc3RzIiwgIkFsbG93
cyBhbnkgSFRUUFMgY2VydGlmaWNhdGUgZm9yIGFuIGFsbG93ZWQgaG9zdC4iLCBoYW5kbGVPcHRp
b25BbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMpKTsKICAgICBvcHRpb25M
aXN0LmFwcGVuZChPcHRpb24oIi0tc2hvdy13ZWJ2aWV3IiwgIlNob3cgdGhlIFdlYlZpZXcgZHVy
aW5nIHRlc3QgcnVucyAoZm9yIGRlYnVnZ2luZykiLCBoYW5kbGVPcHRpb25TaG93V2ViVmlldykp
OwogICAgIG9wdGlvbkxpc3QuYXBwZW5kKE9wdGlvbigiLS1zaG93LXRvdWNoZXMiLCAiU2hvdyB0
aGUgdG91Y2hlcyBkdXJpbmcgdGVzdCBydW5zIChmb3IgZGVidWdnaW5nKSIsIGhhbmRsZU9wdGlv
blNob3dUb3VjaGVzKSk7CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvT3B0
aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKaW5kZXggOWYwNzE3Yzlh
NjY5NWY5OWEwOTI1MWEzZWVhMzVhYzJlOTdhN2E5NC4uYjI0MTE5OTZhYjEwY2NmZTdjNzk4ODEx
ZjRmZWU3OWE5NTEwMjM4ZiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRp
b25zLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9PcHRpb25zLmgKQEAgLTM3LDE4ICsz
NywxOCBAQAogbmFtZXNwYWNlIFdUUiB7CiAKIHN0cnVjdCBPcHRpb25zIHsKLSAgICBPcHRpb25z
KCk7Ci0gICAgYm9vbCB1c2VXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcjsKLSAgICBib29sIGZvcmNl
Tm9UaW1lb3V0OwotICAgIGJvb2wgdmVyYm9zZTsKLSAgICBib29sIGdjQmV0d2VlblRlc3RzOwot
ICAgIGJvb2wgc2hvdWxkRHVtcFBpeGVsc0ZvckFsbFRlc3RzOwotICAgIGJvb2wgcHJpbnRTdXBw
b3J0ZWRGZWF0dXJlczsKLSAgICBib29sIGZvcmNlQ29tcGxleFRleHQ7Ci0gICAgYm9vbCBzaG91
bGRVc2VBY2NlbGVyYXRlZERyYXdpbmc7Ci0gICAgYm9vbCBzaG91bGRVc2VSZW1vdGVMYXllclRy
ZWU7Ci0gICAgYm9vbCBzaG91bGRTaG93V2ViVmlldzsKLSAgICBib29sIHNob3VsZFNob3dUb3Vj
aGVzOworICAgIGJvb2wgdXNlV2FpdFRvRHVtcFdhdGNoZG9nVGltZXIgeyB0cnVlIH07CisgICAg
Ym9vbCBmb3JjZU5vVGltZW91dCB7IGZhbHNlIH07CisgICAgYm9vbCB2ZXJib3NlIHsgZmFsc2Ug
fTsKKyAgICBib29sIGdjQmV0d2VlblRlc3RzIHsgZmFsc2UgfTsKKyAgICBib29sIHNob3VsZER1
bXBQaXhlbHNGb3JBbGxUZXN0cyB7IGZhbHNlIH07CisgICAgYm9vbCBwcmludFN1cHBvcnRlZEZl
YXR1cmVzIHsgZmFsc2UgfTsKKyAgICBib29sIGZvcmNlQ29tcGxleFRleHQgeyBmYWxzZSB9Owor
ICAgIGJvb2wgc2hvdWxkVXNlQWNjZWxlcmF0ZWREcmF3aW5nIHsgZmFsc2UgfTsKKyAgICBib29s
IHNob3VsZFVzZVJlbW90ZUxheWVyVHJlZSB7IGZhbHNlIH07CisgICAgYm9vbCBzaG91bGRTaG93
V2ViVmlldyB7IGZhbHNlIH07CisgICAgYm9vbCBzaG91bGRTaG93VG91Y2hlcyB7IGZhbHNlIH07
CisgICAgYm9vbCBhbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVGb3JBbGxvd2VkSG9zdHMgeyBmYWxz
ZSB9OwogICAgIHN0ZDo6dmVjdG9yPHN0ZDo6c3RyaW5nPiBwYXRoczsKICAgICBzdGQ6OnZlY3Rv
cjxzdGQ6OnN0cmluZz4gYWxsb3dlZEhvc3RzOwogfTsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0Q29udHJvbGxlci5jcHAKaW5kZXggZWM5MGExMGQ4YmQ2NjJiYTc2ZDAxMTlkZjU3NDdhYjdj
MTk4YjQxZC4uYmJmZDI1YWI2OGU0OWU1NGE2NTUzOTcxZDM3ZTQyZGZkNDU2Mzg4MCAxMDA2NDQK
LS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJvbGxlci5jcHAKQEAgLTM3NCw2ICszNzQsNyBA
QCB2b2lkIFRlc3RDb250cm9sbGVyOjppbml0aWFsaXplKGludCBhcmdjLCBjb25zdCBjaGFyKiBh
cmd2W10pCiAgICAgbV9hbGxvd2VkSG9zdHMgPSBvcHRpb25zLmFsbG93ZWRIb3N0czsKICAgICBt
X3Nob3VsZFNob3dXZWJWaWV3ID0gb3B0aW9ucy5zaG91bGRTaG93V2ViVmlldzsKICAgICBtX3No
b3VsZFNob3dUb3VjaGVzID0gb3B0aW9ucy5zaG91bGRTaG93VG91Y2hlczsKKyAgICBtX2FsbG93
QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cyA9IG9wdGlvbnMuYWxsb3dBbnlIVFRQ
U0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzOwogCiAgICAgaWYgKG9wdGlvbnMucHJpbnRTdXBw
b3J0ZWRGZWF0dXJlcykgewogICAgICAgICAvLyBGSVhNRTogT24gV2luZG93cywgRHVtcFJlbmRl
clRyZWUgdXNlcyB0aGlzIHRvIGV4cG9zZSB3aGV0aGVyIGl0IHN1cHBvcnRzIDNkCkBAIC03Nzgs
NiArNzc5LDEwIEBAIGJvb2wgVGVzdENvbnRyb2xsZXI6OnJlc2V0U3RhdGVUb0NvbnNpc3RlbnRW
YWx1ZXMoY29uc3QgVGVzdE9wdGlvbnMmIG9wdGlvbnMpCiAgICAgfQogICAgIFdLRGljdGlvbmFy
eVNldEl0ZW0ocmVzZXRNZXNzYWdlQm9keS5nZXQoKSwgYWxsb3dlZEhvc3RzS2V5LmdldCgpLCBh
bGxvd2VkSG9zdHNWYWx1ZS5nZXQoKSk7CiAKKyAgICBXS1JldGFpblB0cjxXS1N0cmluZ1JlZj4g
YWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzS2V5ID0gYWRvcHRXSyhXS1N0
cmluZ0NyZWF0ZVdpdGhVVEY4Q1N0cmluZygiQWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxs
b3dlZEhvc3RzIikpOworICAgIFdLUmV0YWluUHRyPFdLQm9vbGVhblJlZj4gYWxsb3dBbnlIVFRQ
U0NlcnRpZmljYXRlRm9yQWxsb3dlZEhvc3RzVmFsdWUgPSBhZG9wdFdLKFdLQm9vbGVhbkNyZWF0
ZShtX2FsbG93QW55SFRUUFNDZXJ0aWZpY2F0ZUZvckFsbG93ZWRIb3N0cykpOworICAgIFdLRGlj
dGlvbmFyeVNldEl0ZW0ocmVzZXRNZXNzYWdlQm9keS5nZXQoKSwgYWxsb3dBbnlIVFRQU0NlcnRp
ZmljYXRlRm9yQWxsb3dlZEhvc3RzS2V5LmdldCgpLCBhbGxvd0FueUhUVFBTQ2VydGlmaWNhdGVG
b3JBbGxvd2VkSG9zdHNWYWx1ZS5nZXQoKSk7CisKICAgICBXS1BhZ2VQb3N0TWVzc2FnZVRvSW5q
ZWN0ZWRCdW5kbGUoVGVzdENvbnRyb2xsZXI6OnNpbmdsZXRvbigpLm1haW5XZWJWaWV3KCktPnBh
Z2UoKSwgbWVzc2FnZU5hbWUuZ2V0KCksIHJlc2V0TWVzc2FnZUJvZHkuZ2V0KCkpOwogCiAgICAg
V0tDb250ZXh0U2V0U2hvdWxkVXNlRm9udFNtb290aGluZyhUZXN0Q29udHJvbGxlcjo6c2luZ2xl
dG9uKCkuY29udGV4dCgpLCBmYWxzZSk7CkBAIC0xNzUyLDcgKzE3NTcsMTEgQEAgYm9vbCBUZXN0
Q29udHJvbGxlcjo6Y2FuQXV0aGVudGljYXRlQWdhaW5zdFByb3RlY3Rpb25TcGFjZShXS1BhZ2VS
ZWYgcGFnZSwgV0tQcm8KICAgICAKICAgICBpZiAoYXV0aGVudGljYXRpb25TY2hlbWUgPT0ga1dL
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVTZXJ2ZXJUcnVzdEV2YWx1YXRpb25S
ZXF1ZXN0ZWQpIHsKICAgICAgICAgc3RkOjpzdHJpbmcgaG9zdCA9IHRvU1REKGFkb3B0V0soV0tQ
cm90ZWN0aW9uU3BhY2VDb3B5SG9zdChwcm90ZWN0aW9uU3BhY2UpKS5nZXQoKSk7Ci0gICAgICAg
IHJldHVybiBob3N0ID09ICJsb2NhbGhvc3QiIHx8IGhvc3QgPT0gIjEyNy4wLjAuMSI7CisgICAg
ICAgIGlmIChob3N0ID09ICJsb2NhbGhvc3QiIHx8IGhvc3QgPT0gIjEyNy4wLjAuMSIpCisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgaWYgKG1fYWxsb3dBbnlIVFRQU0NlcnRpZmlj
YXRlRm9yQWxsb3dlZEhvc3RzKQorICAgICAgICAgICAgcmV0dXJuIHN0ZDo6YW55X29mKG1fYWxs
b3dlZEhvc3RzLmJlZ2luKCksIG1fYWxsb3dlZEhvc3RzLmVuZCgpLCBbaG9zdF0gKGNvbnN0IHN0
ZDo6c3RyaW5nJiBhbGxvd2VkSG9zdCkgeyByZXR1cm4gaG9zdCA9PSBhbGxvd2VkSG9zdDsgfSk7
CisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCiAgICAgcmV0dXJuIGF1dGhlbnRp
Y2F0aW9uU2NoZW1lIDw9IGtXS1Byb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRU
UERpZ2VzdDsKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xs
ZXIuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdENvbnRyb2xsZXIuaAppbmRleCBjZTlm
NGE3NzJlYjhjOGJmMjhmZWY3MWFkYjkxY2UxNGVkZmMwNTQyLi40MTU3ODQyYTU0ZDQ4ZmNjZTJh
ZWIxMDFjYjBkMDllMGFlYWY4MzI2IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RDb250cm9sbGVyLmgKKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0Q29udHJv
bGxlci5oCkBAIC00MjAsNiArNDIwLDggQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkU2hv
d1dlYlZpZXcgeyBmYWxzZSB9OwogICAgIAogICAgIGJvb2wgbV9zaG91bGRTaG93VG91Y2hlcyB7
IGZhbHNlIH07CisKKyAgICBib29sIG1fYWxsb3dBbnlIVFRQU0NlcnRpZmljYXRlRm9yQWxsb3dl
ZEhvc3RzIHsgZmFsc2UgfTsKICAgICAKICAgICBib29sIG1fc2hvdWxkRGVjaWRlTmF2aWdhdGlv
blBvbGljeUFmdGVyRGVsYXkgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zaG91bGREZWNpZGVSZXNw
b25zZVBvbGljeUFmdGVyRGVsYXkgeyBmYWxzZSB9Owo=
</data>
<flag name="review"
          id="355445"
          type_id="1"
          status="+"
          setter="ap"
    />
    <flag name="commit-queue"
          id="355448"
          type_id="3"
          status="-"
          setter="ap"
    />
          </attachment>
      

    </bug>

</bugzilla>