<?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>175378</bug_id>
          
          <creation_ts>2017-08-09 05:45:41 -0700</creation_ts>
          <short_desc>[Soup] Cannot access HTTPS sites using a HTTP proxy that requires authentication</short_desc>
          <delta_ts>2017-08-12 08:54:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>WebKit Local Build</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugzilla.gnome.org/show_bug.cgi?id=786147</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Paul van Tilburg">paul</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>buildbot</cc>
    
    <cc>cgarcia</cc>
    
    <cc>danw</cc>
    
    <cc>gustavo</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1336930</commentid>
    <comment_count>0</comment_count>
    <who name="Paul van Tilburg">paul</who>
    <bug_when>2017-08-09 05:45:41 -0700</bug_when>
    <thetext>When configuring a HTTP(S) proxy in GNOME, the user cannot access HTTPS sites if the proxy requires authentication.

For example, to reproduce:

* Configure a test proxy that requires authentication on http://localhost:8080/.
* Open a HTTP website in Epiphany or with a small test browser; an authentication dialog is shown, and the page is retrieved through the test proxy and shown.
* Then, open a HTTPS website; no authentication dialog is shown and Epiphany shows a file download with the error &quot;Proxy Authentication Required&quot;.

Closer inspection of the test proxy logs and the code of our small test browser that when CONNECT verb is used on the HTTP proxy, no &quot;authentication&quot; signal is emitted on the WebKitWebView.
The signal _is_ emitted for the GET verb and it can successfully 

This is on Ubuntu (16.04) Xenial, libsoup version 2.25.2, libwebkit2gtk-4.0 version 2.16.6.

(As far as we are aware everything works with libwebkitgtk-3.0 2.4.11.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336944</commentid>
    <comment_count>1</comment_count>
    <who name="Paul van Tilburg">paul</who>
    <bug_when>2017-08-09 07:18:09 -0700</bug_when>
    <thetext>I have tested some more and added load changed/failed callbacks.
The reported load change events are from WEBKIT_LOAD_STARTED directly to WEBKIT_LOAD_FINISHED, the load failed callback gets the error message &quot;Frame load was interrupted&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1336971</commentid>
    <comment_count>2</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-09 08:44:59 -0700</bug_when>
    <thetext>(In reply to Paul van Tilburg from comment #0)
&gt; * Configure a test proxy that requires authentication on
&gt; http://localhost:8080/.

Could you post some instructions or a small script for configuring this?

&gt; This is on Ubuntu (16.04) Xenial, libsoup version 2.25.2, libwebkit2gtk-4.0
&gt; version 2.16.6.

I guess you mean libsoup 2.52.2.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337345</commentid>
    <comment_count>3</comment_count>
      <attachid>317795</attachid>
    <who name="Paul van Tilburg">paul</who>
    <bug_when>2017-08-10 01:16:28 -0700</bug_when>
    <thetext>Created attachment 317795
Source of the mini browser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337346</commentid>
    <comment_count>4</comment_count>
      <attachid>317796</attachid>
    <who name="Paul van Tilburg">paul</who>
    <bug_when>2017-08-10 01:17:06 -0700</bug_when>
    <thetext>Created attachment 317796
Source of the test proxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337347</commentid>
    <comment_count>5</comment_count>
    <who name="Paul van Tilburg">paul</who>
    <bug_when>2017-08-10 01:17:12 -0700</bug_when>
    <thetext>I have attached a small Ruby script that we use to run a test proxy on localhost:8080 that requires the hardcoded basic authentication credenials user/password.  However, also some Squid proxy would do.

To configure the proxy, I guess export http_proxy=http://localhost:8080 would do.

To test I am using a modified version of the mini browser example that adds an authentication hook with the hardcoded credentials.  I have also attached the source.

The mini browser source has a commented-out load URI line for http://www.nu.nl. When building and running with that line enabled, the proxy logs:

[2017-08-10 10:10:09] ERROR Basic Proxy Realm: no credentials in the request.
[2017-08-10 10:10:09] ERROR WEBrick::HTTPStatus::ProxyAuthenticationRequired
IP_ADDRESS - - [10/Aug/2017:10:10:09 CEST] &quot;GET http://www.nu.nl/ HTTP/1.1&quot; 407 342
- -&gt; http://www.nu.nl/
[2017-08-10 10:10:09] INFO  Basic Proxy Realm: user: authentication succeeded.
IP_ADDRESS - user [10/Aug/2017:10:10:09 CEST] &quot;GET http://www.nu.nl/ HTTP/1.1&quot; 304 0
- -&gt; http://www.nu.nl/

and the mini browser logs:
** Message: Authentication callback is called for www.nu.nl:80!

When using the load URI line for https://google.com, the proxy logs:

[2017-08-10 10:10:24] ERROR Basic Proxy Realm: no credentials in the request.
[2017-08-10 10:10:24] ERROR WEBrick::HTTPStatus::ProxyAuthenticationRequired
IP_ADDRESS - - [10/Aug/2017:10:10:24 CEST] &quot;CONNECT google.com:443 HTTP/1.1&quot; 407 347
- -&gt; google.com:443

and the mini browser logs nothing (in particular not that the callback is called).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337433</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-10 08:40:07 -0700</bug_when>
    <thetext>Thanks for the detailed instructions, it helped a lot. There are two problems here:

 1- We are failing to detect the response MIME type when using https + proxy, since it&apos;s a main resource load, we end up trying to download it. I&apos;m not sure if we can fix it, the server is not providing the content type header and we fail to sniff because we only talked to the proxy.

 2- In the authenticateCallback we receive from libsoup we return early if the given soup message is not our resource soup message. This is wrong in the case of htts + proxy because libsoup creates a tunnel internally and the soup message it uses for the authentication is the tunnel one, not ours.

I&apos;ve fixed 2 and authentication works, but if you cancel the auth dialog, we end up trying to download it again, because of 1.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337443</commentid>
    <comment_count>7</comment_count>
      <attachid>317812</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-10 09:03:07 -0700</bug_when>
    <thetext>Created attachment 317812
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337444</commentid>
    <comment_count>8</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-10 09:05:55 -0700</bug_when>
    <thetext>Attachment 317812 did not pass style-queue:


ERROR: Source/WebCore/platform/network/soup/AuthenticationChallengeSoup.cpp:75:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 1 in 5 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>1337469</commentid>
    <comment_count>9</comment_count>
      <attachid>317812</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2017-08-10 10:02:40 -0700</bug_when>
    <thetext>Comment on attachment 317812
Patch

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

Can&apos;t we come up with a test case?

&gt; Source/WebCore/platform/network/soup/AuthenticationChallengeSoup.cpp:84
&gt; +        &amp;&amp; a.soupAuth() == b.soupAuth();

One line?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337482</commentid>
    <comment_count>10</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-10 10:31:26 -0700</bug_when>
    <thetext>We do have proxy tests in TestWebKitAPI. Not sure if we have HTTP auth tests, but if so, a combination test would be wonderful.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337837</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-10 23:26:47 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #10)
&gt; We do have proxy tests in TestWebKitAPI. Not sure if we have HTTP auth
&gt; tests, but if so, a combination test would be wonderful.

Well, we have proxy settings api tests. What we do is that we run another soup server in a different port and set its url as the http proxy and then we check that requests reach the proxy instead of the server, but we don&apos;t really implement the proxy. We have auth tests too, but I&apos;m not sure it&apos;s that easy to combine both. I&apos;ll give it a try.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337855</commentid>
    <comment_count>12</comment_count>
      <attachid>317922</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-11 02:55:31 -0700</bug_when>
    <thetext>Created attachment 317922
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337856</commentid>
    <comment_count>13</comment_count>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-08-11 03:03:40 -0700</bug_when>
    <thetext>Attachment 317922 did not pass style-queue:


ERROR: Tools/TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:269:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Tools/TestWebKitAPI/Tests/WebKitGLib/TestAuthentication.cpp:290:  Extra space before ( in function call  [whitespace/parens] [4]
ERROR: Source/WebCore/platform/network/soup/AuthenticationChallengeSoup.cpp:75:  Code inside a namespace should not be indented.  [whitespace/indent] [4]
Total errors found: 3 in 7 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>1337857</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-11 03:06:22 -0700</bug_when>
    <thetext>Committed r220583: &lt;http://trac.webkit.org/changeset/220583&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1337888</commentid>
    <comment_count>15</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-11 08:14:00 -0700</bug_when>
    <thetext>As you noted, this is only half-fixed. Will you open another bug?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338121</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2017-08-12 00:19:47 -0700</bug_when>
    <thetext>(In reply to Michael Catanzaro from comment #15)
&gt; As you noted, this is only half-fixed. Will you open another bug?

What other half do you mean? That we try a download when you cancel the dialog? or that auth dialog refers to the requested url instead of the proxy? The former is not actually a bug, there&apos;s little we can do if we don&apos;t have a content-type header and we didn&apos;t reach the actual contents to sniff them, chromium shows a white page in that case, and we start a download because MiniBrowser has that policy, in webkit itself the policy in that case is ignore. And the latter is actually a libsoup bug, see https://bugzilla.gnome.org/show_bug.cgi?id=786147</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1338148</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2017-08-12 08:54:37 -0700</bug_when>
    <thetext>I was trying to ask about https://bugzilla.gnome.org/show_bug.cgi?id=786147. Thanks!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>317795</attachid>
            <date>2017-08-10 01:16:28 -0700</date>
            <delta_ts>2017-08-10 01:16:28 -0700</delta_ts>
            <desc>Source of the mini browser</desc>
            <filename>mini-browser.c</filename>
            <type>text/x-csrc</type>
            <size>4047</size>
            <attacher name="Paul van Tilburg">paul</attacher>
            
              <data encoding="base64">LyoKICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3IEFwcGxlIEluYy4KICogQ29weXJpZ2h0IChD
KSAyMDA3IEFscCBUb2tlciA8YWxwQGF0b2tlci5jb20+CiAqIENvcHlyaWdodCAoQykgMjAxMSBM
dWthc3ogU2xhY2hjaWFrCiAqIENvcHlyaWdodCAoQykgMjAxMSBCb2IgTXVycGh5CiAqCiAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAogKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKICogYXJlIG1ldDoKICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgog
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAogKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCiAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCiAqCiAqIFRI
SVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQ09NUFVURVIsIElOQy4gYGBBUyBJUycn
IEFORCBBTlkKICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBUSEUKICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCiAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBDT01QVVRFUiwgSU5DLiBPUgogKiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwKICogRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLAogKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IKICogUFJPRklUUzsgT1IgQlVTSU5FU1Mg
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQogKiBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFCiAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCiAqLwoKI2luY2x1ZGUgPGd0ay9ndGsuaD4KI2lu
Y2x1ZGUgPHdlYmtpdDIvd2Via2l0Mi5oPgoKCnN0YXRpYyB2b2lkIGRlc3Ryb3lXaW5kb3dDYihH
dGtXaWRnZXQqIHdpZGdldCwgR3RrV2lkZ2V0KiB3aW5kb3cpOwpzdGF0aWMgZ2Jvb2xlYW4gY2xv
c2VXZWJWaWV3Q2IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgR3RrV2lkZ2V0KiB3aW5kb3cpOwpz
dGF0aWMgZ2Jvb2xlYW4gYXV0aGVudGljYXRlQ2IoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2Vi
S2l0QXV0aGVudGljYXRpb25SZXF1ZXN0ICpyZXF1ZXN0LCBncG9pbnRlciBkYXRhKTsKCmludCBt
YWluKGludCBhcmdjLCBjaGFyKiBhcmd2W10pCnsKICAgIC8vIEluaXRpYWxpemUgR1RLKwogICAg
Z3RrX2luaXQoJmFyZ2MsICZhcmd2KTsKCiAgICAvLyBDcmVhdGUgYW4gODAweDYwMCB3aW5kb3cg
dGhhdCB3aWxsIGNvbnRhaW4gdGhlIGJyb3dzZXIgaW5zdGFuY2UKICAgIEd0a1dpZGdldCAqbWFp
bl93aW5kb3cgPSBndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1RPUExFVkVMKTsKICAgIGd0a193
aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZShHVEtfV0lORE9XKG1haW5fd2luZG93KSwgODAwLCA2MDAp
OwoKICAgIC8vIENyZWF0ZSBhIGJyb3dzZXIgaW5zdGFuY2UKICAgIFdlYktpdFdlYlZpZXcgKndl
YlZpZXcgPSBXRUJLSVRfV0VCX1ZJRVcod2Via2l0X3dlYl92aWV3X25ldygpKTsKCiAgICAvLyBQ
dXQgdGhlIGJyb3dzZXIgYXJlYSBpbnRvIHRoZSBtYWluIHdpbmRvdwogICAgZ3RrX2NvbnRhaW5l
cl9hZGQoR1RLX0NPTlRBSU5FUihtYWluX3dpbmRvdyksIEdUS19XSURHRVQod2ViVmlldykpOwoK
ICAgIC8vIFNldCB1cCBjYWxsYmFja3Mgc28gdGhhdCBpZiBlaXRoZXIgdGhlIG1haW4gd2luZG93
IG9yIHRoZSBicm93c2VyIGluc3RhbmNlIGlzCiAgICAvLyBjbG9zZWQsIHRoZSBwcm9ncmFtIHdp
bGwgZXhpdAogICAgZ19zaWduYWxfY29ubmVjdChtYWluX3dpbmRvdywgImRlc3Ryb3kiLCBHX0NB
TExCQUNLKGRlc3Ryb3lXaW5kb3dDYiksIE5VTEwpOwogICAgZ19zaWduYWxfY29ubmVjdCh3ZWJW
aWV3LCAiY2xvc2UiLCBHX0NBTExCQUNLKGNsb3NlV2ViVmlld0NiKSwgbWFpbl93aW5kb3cpOwoK
ICAgIC8vIFNldCB1cCBhdXRoZW50aWNhdGlvbgogICAgZ19zaWduYWxfY29ubmVjdCh3ZWJWaWV3
LCAiYXV0aGVudGljYXRlIiwgR19DQUxMQkFDSyhhdXRoZW50aWNhdGVDYiksIE5VTEwpOwoKICAg
IC8vIExvYWQgYSB3ZWIgcGFnZSBpbnRvIHRoZSBicm93c2VyIGluc3RhbmNlCiAgICAvL3dlYmtp
dF93ZWJfdmlld19sb2FkX3VyaSh3ZWJWaWV3LCAiaHR0cDovL3d3dy5udS5ubCIpOwogICAgd2Vi
a2l0X3dlYl92aWV3X2xvYWRfdXJpKHdlYlZpZXcsICJodHRwczovL2dvb2dsZS5jb20iKTsKCiAg
ICAvLyBNYWtlIHN1cmUgdGhhdCB3aGVuIHRoZSBicm93c2VyIGFyZWEgYmVjb21lcyB2aXNpYmxl
LCBpdCB3aWxsIGdldCBtb3VzZQogICAgLy8gYW5kIGtleWJvYXJkIGV2ZW50cwogICAgZ3RrX3dp
ZGdldF9ncmFiX2ZvY3VzKEdUS19XSURHRVQod2ViVmlldykpOwoKICAgIC8vIE1ha2Ugc3VyZSB0
aGUgbWFpbiB3aW5kb3cgYW5kIGFsbCBpdHMgY29udGVudHMgYXJlIHZpc2libGUKICAgIGd0a193
aWRnZXRfc2hvd19hbGwobWFpbl93aW5kb3cpOwoKICAgIC8vIFJ1biB0aGUgbWFpbiBHVEsrIGV2
ZW50IGxvb3AKICAgIGd0a19tYWluKCk7CgogICAgcmV0dXJuIDA7Cn0KCgpzdGF0aWMgdm9pZCBk
ZXN0cm95V2luZG93Q2IoR3RrV2lkZ2V0KiB3aWRnZXQsIEd0a1dpZGdldCogd2luZG93KQp7CiAg
ICBndGtfbWFpbl9xdWl0KCk7Cn0KCnN0YXRpYyBnYm9vbGVhbiBjbG9zZVdlYlZpZXdDYihXZWJL
aXRXZWJWaWV3KiB3ZWJWaWV3LCBHdGtXaWRnZXQqIHdpbmRvdykKewogICAgZ3RrX3dpZGdldF9k
ZXN0cm95KHdpbmRvdyk7CiAgICByZXR1cm4gVFJVRTsKfQoKc3RhdGljIGdib29sZWFuIGF1dGhl
bnRpY2F0ZUNiKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIFdlYktpdEF1dGhlbnRpY2F0aW9uUmVx
dWVzdCAqcmVxdWVzdCwgZ3BvaW50ZXIgZGF0YSkKewogICAgV2ViS2l0Q3JlZGVudGlhbCAqY3Jl
ZDsKCiAgICBnX21lc3NhZ2UoIkF1dGhlbnRpY2F0aW9uIGNhbGxiYWNrIGlzIGNhbGxlZCBmb3Ig
JXM6JWQhIiwKICAgICAgICAgICAgICB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRf
aG9zdChyZXF1ZXN0KSwKICAgICAgICAgICAgICB3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVz
dF9nZXRfcG9ydChyZXF1ZXN0KSk7CiAgICBpZiAod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVl
c3RfaXNfZm9yX3Byb3h5KHJlcXVlc3QpKQogICAgewogICAgICAgIGNyZWQgPSB3ZWJraXRfY3Jl
ZGVudGlhbF9uZXcoInVzZXIiLCAicGFzc3dvcmQiLCBXRUJLSVRfQ1JFREVOVElBTF9QRVJTSVNU
RU5DRV9GT1JfU0VTU0lPTik7CiAgICAgICAgd2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3Rf
YXV0aGVudGljYXRlKHJlcXVlc3QsIGNyZWQpOwogICAgfQogICAgZWxzZQogICAgICBnX2NyaXRp
Y2FsKCJObyBIVFRQIGF1dGhlbnRpY2F0aW9uIGtub3duIik7CgogICAgcmV0dXJuIFRSVUU7Cn0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>317796</attachid>
            <date>2017-08-10 01:17:06 -0700</date>
            <delta_ts>2017-08-10 01:17:06 -0700</delta_ts>
            <desc>Source of the test proxy</desc>
            <filename>testproxy-basic</filename>
            <type>application/x-ruby</type>
            <size>874</size>
            <attacher name="Paul van Tilburg">paul</attacher>
            
              <data encoding="base64">IyEvdXNyL2Jpbi9lbnYgcnVieQoKcmVxdWlyZSAndGVtcGZpbGUnCnJlcXVpcmUgJ3dlYnJpY2sn
CnJlcXVpcmUgJ3dlYnJpY2svaHR0cHByb3h5JwoKcG9ydCA9IEFSR1ZbMF0gfHwgODA4MApodHRt
cCA9IFRlbXBmaWxlLm5ldygnaHRwYXNzd2QnKQpiZWdpbgogICMgQXBhY2hlIGNvbXBhdGlibGUg
UGFzc3dvcmQgbWFuYWdlcgogIGh0cGFzc3dkID0gV0VCcmljazo6SFRUUEF1dGg6Okh0cGFzc3dk
Lm5ldyBodHRtcC5wYXRoCiAgIyBDcmVhdGUgZW50cnkgd2l0aCB1c2VybmFtZSBhbmQgcGFzc3dv
cmQsIHRoZSBwYXNzd29yZCBpcyAiY3J5cHQiIGVuY3J5cHRlZAogIGh0cGFzc3dkLnNldF9wYXNz
d2QgJ1Byb3h5IFJlYWxtJywgJ3VzZXInLCAncGFzc3dvcmQnCiAgIyBXcml0ZSBmaWxlIHRvIGRp
c2sKICBodHBhc3N3ZC5mbHVzaAoKICAjIEF1dGhlbnRpY2F0b3IKICBhdXRoZW50aWNhdG9yID0g
V0VCcmljazo6SFRUUEF1dGg6OlByb3h5QmFzaWNBdXRoLm5ldygKICAgIFJlYWxtOiAnUHJveHkg
UmVhbG0nLAogICAgVXNlckRCOiBodHBhc3N3ZAogICkKCiAgcHJveHkgPSBXRUJyaWNrOjpIVFRQ
UHJveHlTZXJ2ZXIubmV3IFwKICAgICAgICAgICAgUG9ydDogcG9ydCwKICAgICAgICAgICAgUHJv
eHlBdXRoUHJvYzogYXV0aGVudGljYXRvci5tZXRob2QoOmF1dGhlbnRpY2F0ZSkudG9fcHJvYwoK
ICB0cmFwICdJTlQnICBkbyBwcm94eS5zaHV0ZG93biBlbmQKICB0cmFwICdURVJNJyBkbyBwcm94
eS5zaHV0ZG93biBlbmQKCiAgcHV0cyAiU3RhcnRpbmcgYmFzaWMgYXV0aGVudGljYXRlZCBwcm94
eSBvbiBwb3J0ICN7cG9ydH0uLi4iCiAgcHJveHkuc3RhcnQKZW5zdXJlCiAgaHR0bXAuY2xvc2UK
ICBodHRtcC51bmxpbmsKZW5kCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317812</attachid>
            <date>2017-08-10 09:03:07 -0700</date>
            <delta_ts>2017-08-11 02:55:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>wk2-https-proxy-auth.diff</filename>
            <type>text/plain</type>
            <size>7821</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1NjJkZWNhZjc0Yy4uMjkyOGMyYzcwYTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
NSArMSwyNCBAQAogMjAxNy0wOC0xMCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CiAKKyAgICAgICAgW1NvdXBdIENhbm5vdCBhY2Nlc3MgSFRUUFMgc2l0ZXMgdXNp
bmcgYSBIVFRQIHByb3h5IHRoYXQgcmVxdWlyZXMgYXV0aGVudGljYXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTM3OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEJyaW5nIGJhY2sgcGFydCBvZiB0
aGUgY29kZSByZW1vdmVkIGluIHIyMDY3MzIsIHRvIGtlZXAgYSByZWZlcmVuY2UgdG8gdGhlIFNv
dXBNZXNzYWdlIGluIHRoZQorICAgICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSBzaW5jZSBp
dCBjYW4gYmUgZGlmZmVyZW50IHRvIHRoZSByZXNvdXJjZSBtZXNzYWdlLgorCisgICAgICAgICog
cGxhdGZvcm0vbmV0d29yay9zb3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlLmg6CisgICAgICAg
IChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6QXV0aGVudGljYXRpb25DaGFsbGVu
Z2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6
OmF1dGhlbnRpY2F0aW9uQ2xpZW50IGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpzb3VwQXV0aCBjb25zdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6c2V0UHJvcG9zZWRDcmVkZW50
aWFsKTogRGVsZXRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGlj
YXRpb25DaGFsbGVuZ2VTb3VwLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSk6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZTo6cGxhdGZvcm1Db21wYXJlKToKKworMjAxNy0wOC0xMCAg
Q2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CisKICAgICAgICAgW0dU
S10gQ3Jhc2hlcyBpbiBXZWJDb3JlOjpQYXN0ZWJvYXJkSGVscGVyOjpmaWxsU2VsZWN0aW9uRGF0
YSB3aGVuIHNvdXJjZSBmaWxlIG9mIGRyYWcgaXMgdW5hdmFpbGFibGUKICAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NDE2MQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZS5oCmluZGV4IGM2ZDRiZDFkZDY2Li44Njk5MDE5MGU3MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmgKQEAgLTIyLDggKzIyLDggQEAKICAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRQogICog
T0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KICAqLwotI2lmbmRlZiBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZV9oCi0jZGVm
aW5lIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlX2gKKworI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRl
ICJBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2UuaCIKICNpbmNsdWRlICJBdXRoZW50aWNhdGlv
bkNsaWVudC5oIgpAQCAtMzMsNyArMzMsNyBAQCB0eXBlZGVmIHN0cnVjdCBfU291cE1lc3NhZ2Ug
U291cE1lc3NhZ2U7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgOiBwdWJsaWMgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VCYXNlIHsKK2NsYXNz
IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIGZpbmFsIDogcHVibGljIEF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlQmFzZSB7CiBwdWJsaWM6CiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoKQogICAg
IHsKQEAgLTQ2LDYgKzQ2LDcgQEAgcHVibGljOgogCiAgICAgQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UoU291cE1lc3NhZ2UqLCBTb3VwQXV0aCosIGJvb2wgcmV0cnlpbmcsIEF1dGhlbnRpY2F0aW9u
Q2xpZW50KiA9IG51bGxwdHIpOwogICAgIEF1dGhlbnRpY2F0aW9uQ2xpZW50KiBhdXRoZW50aWNh
dGlvbkNsaWVudCgpIGNvbnN0IHsgcmV0dXJuIG1fYXV0aGVudGljYXRpb25DbGllbnQuZ2V0KCk7
IH0KKyAgICBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBtX3NvdXBN
ZXNzYWdlLmdldCgpOyB9CiAgICAgU291cEF1dGgqIHNvdXBBdXRoKCkgY29uc3QgeyByZXR1cm4g
bV9zb3VwQXV0aC5nZXQoKTsgfQogICAgIHZvaWQgc2V0UHJvcG9zZWRDcmVkZW50aWFsKGNvbnN0
IENyZWRlbnRpYWwmIGNyZWRlbnRpYWwpIHsgbV9wcm9wb3NlZENyZWRlbnRpYWwgPSBjcmVkZW50
aWFsOyB9CiAKQEAgLTUzLDEwICs1NCwxMCBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2U7CiAgICAgc3RhdGljIGJvb2wgcGxhdGZvcm1Db21w
YXJlKGNvbnN0IEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlJiwgY29uc3QgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmKTsKIAorICAgIEdSZWZQdHI8U291cE1lc3NhZ2U+IG1fc291cE1lc3NhZ2U7CiAg
ICAgR1JlZlB0cjxTb3VwQXV0aD4gbV9zb3VwQXV0aDsKICAgICBSZWZQdHI8QXV0aGVudGljYXRp
b25DbGllbnQ+IG1fYXV0aGVudGljYXRpb25DbGllbnQ7CiB9OwogCi19Cit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCiAKLSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
bmV0d29yay9zb3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291cC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNw
cAppbmRleCA5N2U5MjNjOGFhMy4uMTJmNmMyZjFiYzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlv
bkNoYWxsZW5nZVNvdXAuY3BwCkBAIC03Miw2ICs3Miw3IEBAIEF1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIFNv
dXBBCiAgICAgICAgIHJldHJ5aW5nID8gMSA6IDAsIC8vIHByZXZpb3VzRmFpbHVyZUNvdW50CiAg
ICAgICAgIHNvdXBNZXNzYWdlLCAvLyBmYWlsdXJlUmVzcG9uc2UKICAgICAgICAgUmVzb3VyY2VF
cnJvcjo6YXV0aGVudGljYXRpb25FcnJvcihzb3VwTWVzc2FnZSkpCisgICAgLCBtX3NvdXBNZXNz
YWdlKHNvdXBNZXNzYWdlKQogICAgICwgbV9zb3VwQXV0aChzb3VwQXV0aCkKICAgICAsIG1fYXV0
aGVudGljYXRpb25DbGllbnQoY2xpZW50KQogewpAQCAtNzksNyArODAsOCBAQCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2UoU291cE1lc3NhZ2UqIHNvdXBN
ZXNzYWdlLCBTb3VwQQogCiBib29sIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwbGF0Zm9ybUNv
bXBhcmUoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmIGEsIGNvbnN0IEF1dGhlbnRpY2F0
aW9uQ2hhbGxlbmdlJiBiKQogewotICAgIHJldHVybiBhLnNvdXBBdXRoKCkgPT0gYi5zb3VwQXV0
aCgpOworICAgIHJldHVybiBhLnNvdXBNZXNzYWdlKCkgPT0gYi5zb3VwTWVzc2FnZSgpCisgICAg
ICAgICYmIGEuc291cEF1dGgoKSA9PSBiLnNvdXBBdXRoKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKaW5kZXggYTNkODg2MWJhZjAuLmI0YWRmMDJjYTEwIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpA
QCAtMSwzICsxLDE5IEBACisyMDE3LTA4LTEwICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJj
aWFAaWdhbGlhLmNvbT4KKworICAgICAgICBbU291cF0gQ2Fubm90IGFjY2VzcyBIVFRQUyBzaXRl
cyB1c2luZyBhIEhUVFAgcHJveHkgdGhhdCByZXF1aXJlcyBhdXRoZW50aWNhdGlvbgorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTc1Mzc4CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgSW4gY2FzZSBvZiBIVFRQ
UyByZXNvdXJjZSB3aXRoIGEgcHJveHksIGxpYnNvdXAgdXNlcyBhIHR1bm5lbCBpbnRlcm5hbGx5
LCB0aGF0IHVzZXMgaXRzIG93biBTb3VwTWVzc2FnZSBkdXJpbmcKKyAgICAgICAgdGhlIHByb3h5
IGF1dGhlbnRpY2F0aW9uLiBXZSB3ZXJlIGlnbm9yaW5nIGF1dGhlbnRpY2F0aW9uIHJlcXVlc3Rz
IGZvciBvdGhlciBtZXNzYWdlcy4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3NvdXAvTmV0
d29ya0RhdGFUYXNrU291cC5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1Nv
dXA6OmF1dGhlbnRpY2F0ZUNhbGxiYWNrKTogT25seSByZXR1cm4gZWFybHkgaWYgdGhlIG1lc3Nh
Z2UgZG9lcyd0IG1hdGNoIGFuZCBpdCdzIG5vdAorICAgICAgICBIVFRQUyByZXNvdXJjZSBvdmVy
IGEgcHJveHkuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmF1dGhlbnRp
Y2F0ZSk6IFVzZSB0aGUgc291cCBtZXNzYWdlIGZyb20gdGhlIGF1dGhlbnRpY2F0aW9uIGNoYWxs
ZW5nZS4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVBdXRo
ZW50aWNhdGUpOiBEaXR0by4KKwogMjAxNy0wOC0wOSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBw
bGUuY29tPgogCiAgICAgICAgIERpc2FibGUgQmVhY29uIEFQSSBvbiBXSzEgRFJUIGFuZCBXSzIg
d2hlbiBub3QgdXNpbmcgTkVUV09SS19TRVNTSU9OCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKaW5kZXggNjk1
OTAzZDg2MDMuLmYzZDZmNzMwMGQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAuY3BwCkBAIC00NDUsNyArNDQ1
LDEyIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6YXBwbHlBdXRoZW50aWNhdGlvblRvUmVx
dWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB2b2lkIE5ldHdvcmtEYXRhVGFza1NvdXA6
OmF1dGhlbnRpY2F0ZUNhbGxiYWNrKFNvdXBTZXNzaW9uKiBzZXNzaW9uLCBTb3VwTWVzc2FnZSog
c291cE1lc3NhZ2UsIFNvdXBBdXRoKiBzb3VwQXV0aCwgZ2Jvb2xlYW4gcmV0cnlpbmcsIE5ldHdv
cmtEYXRhVGFza1NvdXAqIHRhc2spCiB7CiAgICAgQVNTRVJUKHNlc3Npb24gPT0gc3RhdGljX2Nh
c3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4odGFzay0+bV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lv
bigpKTsKLSAgICBpZiAoc291cE1lc3NhZ2UgIT0gdGFzay0+bV9zb3VwTWVzc2FnZS5nZXQoKSkK
KworICAgIC8vIFdlIGRvbid0IHJldHVybiBlYXJseSBoZXJlIGluIGNhc2UgdGhlIGdpdmVuIHNv
dXBNZXNzYWdlIGlzIGRpZmZlcmVudCB0byBtX3NvdXBNZXNzYWdlIHdoZW4KKyAgICAvLyBpdCdz
IHByb3h5IGF1dGhlbnRpY2F0aW9uIGFuZCB0aGUgcmVxdWVzdCBVUkwgaXMgSFRUUFMsIGJlY2F1
c2UgaW4gdGhhdCBjYXNlIGxpYnNvdXAgdXNlcyBhCisgICAgLy8gdHVubmVsIGludGVybmFsbHkg
YW5kIHRoZSBTb3VwTWVzc2FnZSB1c2VkIGZvciB0aGUgYXV0aGVudGljYXRpb24gaXMgdGhlIHR1
bm5lbGluZyBvbmUuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xNzUzNzguCisgICAgaWYgKHNvdXBNZXNzYWdlICE9IHRhc2stPm1fc291cE1lc3Nh
Z2UuZ2V0KCkgJiYgKHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZSAhPSBTT1VQX1NUQVRVU19QUk9Y
WV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRCB8fCAhdGFzay0+bV9jdXJyZW50UmVxdWVzdC51cmwo
KS5wcm90b2NvbElzKCJodHRwcyIpKSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKHRhc2st
PnN0YXRlKCkgPT0gU3RhdGU6OkNhbmNlbGluZyB8fCB0YXNrLT5zdGF0ZSgpID09IFN0YXRlOjpD
b21wbGV0ZWQgfHwgIXRhc2stPm1fY2xpZW50KSB7CkBAIC00ODcsNyArNDkyLDcgQEAgdm9pZCBO
ZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGUoQXV0aGVudGljYXRpb25DaGFsbGVuZ2Um
JiBjaGFsbGVuZ2UpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBzb3VwX3Nlc3Npb25fcGF1c2Vf
bWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAmPihtX3Nlc3Npb24uZ2V0KCkp
LnNvdXBTZXNzaW9uKCksIG1fc291cE1lc3NhZ2UuZ2V0KCkpOworICAgIHNvdXBfc2Vzc2lvbl9w
YXVzZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5n
ZXQoKSkuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNvdXBNZXNzYWdlKCkpOwogCiAgICAgLy8g
V2UgY291bGQgYWxzbyBkbyB0aGlzIGJlZm9yZSB3ZSBldmVuIHN0YXJ0IHRoZSByZXF1ZXN0LCBi
dXQgdGhhdCB3b3VsZCBiZSBhdCB0aGUgZXhwZW5zZQogICAgIC8vIG9mIGFsbCByZXF1ZXN0IGxh
dGVuY3ksIHZlcnN1cyBhIG9uZS10aW1lIGxhdGVuY3kgZm9yIHRoZSBzbWFsbCBzdWJzZXQgb2Yg
cmVxdWVzdHMgdGhhdApAQCAtNTQxLDcgKzU0Niw3IEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291
cDo6Y29udGludWVBdXRoZW50aWNhdGUoQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVu
CiAgICAgICAgICAgICBzb3VwX2F1dGhfYXV0aGVudGljYXRlKGNoYWxsZW5nZS5zb3VwQXV0aCgp
LCBjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0YSgpLCBjcmVkZW50aWFsLnBhc3N3b3JkKCku
dXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBzb3VwX3Nlc3Npb25fdW5wYXVz
ZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291cCY+KG1fc2Vzc2lvbi5nZXQo
KSkuc291cFNlc3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSk7CisgICAgICAgIHNvdXBfc2Vz
c2lvbl91bnBhdXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4obV9z
ZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uuc291cE1lc3NhZ2UoKSk7CiAg
ICAgfSk7CiB9CiAK
</data>
<flag name="review"
          id="338314"
          type_id="1"
          status="+"
          setter="svillar"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>317922</attachid>
            <date>2017-08-11 02:55:31 -0700</date>
            <delta_ts>2017-08-11 02:55:31 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>wk2-proxy-auth.diff</filename>
            <type>text/plain</type>
            <size>17728</size>
            <attacher name="Carlos Garcia Campos">cgarcia</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCBiYWJjMGJiZWYzNy4uMjAwYmNmZjczZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyMiBAQAorMjAxNy0wOC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGln
YWxpYS5jb20+CisKKyAgICAgICAgW1NvdXBdIENhbm5vdCBhY2Nlc3MgSFRUUFMgc2l0ZXMgdXNp
bmcgYSBIVFRQIHByb3h5IHRoYXQgcmVxdWlyZXMgYXV0aGVudGljYXRpb24KKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTM3OAorCisgICAgICAgIFJl
dmlld2VkIGJ5IFNlcmdpbyBWaWxsYXIgU2VuaW4uCisKKyAgICAgICAgQnJpbmcgYmFjayBwYXJ0
IG9mIHRoZSBjb2RlIHJlbW92ZWQgaW4gcjIwNjczMiwgdG8ga2VlcCBhIHJlZmVyZW5jZSB0byB0
aGUgU291cE1lc3NhZ2UgaW4gdGhlCisgICAgICAgIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIHNp
bmNlIGl0IGNhbiBiZSBkaWZmZXJlbnQgdG8gdGhlIHJlc291cmNlIG1lc3NhZ2UuCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2UuaDoKKyAg
ICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZTo6YXV0aGVudGljYXRpb25DbGllbnQgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoV2Vi
Q29yZTo6QXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OnNvdXBBdXRoIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpzZXRQcm9wb3NlZENy
ZWRlbnRpYWwpOiBEZWxldGVkLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvc291cC9BdXRo
ZW50aWNhdGlvbkNoYWxsZW5nZVNvdXAuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QXV0aGVudGlj
YXRpb25DaGFsbGVuZ2U6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKToKKyAgICAgICAgKFdlYkNv
cmU6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlOjpwbGF0Zm9ybUNvbXBhcmUpOgorCiAyMDE3LTA4
LTEwICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgRml4ZWQgYnVp
bGRpbmcgZm9yIG1hY09TIDEwLjEyIHdpdGggdGhlIG1hY09TIDEwLjEzIFNESy4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNo
YWxsZW5nZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlLmgKaW5kZXggYzZkNGJkMWRkNjYuLjg2OTkwMTkwZTcwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL3NvdXAvQXV0
aGVudGljYXRpb25DaGFsbGVuZ2UuaApAQCAtMjIsOCArMjIsOCBAQAogICogKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
CiAgKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgogICovCi0jaWZuZGVmIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlX2gK
LSNkZWZpbmUgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VfaAorCisjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZS5oIgogI2luY2x1ZGUgIkF1dGhlbnRp
Y2F0aW9uQ2xpZW50LmgiCkBAIC0zMyw3ICszMyw3IEBAIHR5cGVkZWYgc3RydWN0IF9Tb3VwTWVz
c2FnZSBTb3VwTWVzc2FnZTsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZSA6IHB1YmxpYyBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZUJhc2Ugewor
Y2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgZmluYWwgOiBwdWJsaWMgQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VCYXNlIHsKIHB1YmxpYzoKICAgICBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSgp
CiAgICAgewpAQCAtNDYsNiArNDYsNyBAQCBwdWJsaWM6CiAKICAgICBBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZShTb3VwTWVzc2FnZSosIFNvdXBBdXRoKiwgYm9vbCByZXRyeWluZywgQXV0aGVudGlj
YXRpb25DbGllbnQqID0gbnVsbHB0cik7CiAgICAgQXV0aGVudGljYXRpb25DbGllbnQqIGF1dGhl
bnRpY2F0aW9uQ2xpZW50KCkgY29uc3QgeyByZXR1cm4gbV9hdXRoZW50aWNhdGlvbkNsaWVudC5n
ZXQoKTsgfQorICAgIFNvdXBNZXNzYWdlKiBzb3VwTWVzc2FnZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cE1lc3NhZ2UuZ2V0KCk7IH0KICAgICBTb3VwQXV0aCogc291cEF1dGgoKSBjb25zdCB7IHJl
dHVybiBtX3NvdXBBdXRoLmdldCgpOyB9CiAgICAgdm9pZCBzZXRQcm9wb3NlZENyZWRlbnRpYWwo
Y29uc3QgQ3JlZGVudGlhbCYgY3JlZGVudGlhbCkgeyBtX3Byb3Bvc2VkQ3JlZGVudGlhbCA9IGNy
ZWRlbnRpYWw7IH0KIApAQCAtNTMsMTAgKzU0LDEwIEBAIHByaXZhdGU6CiAgICAgZnJpZW5kIGNs
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlQmFzZTsKICAgICBzdGF0aWMgYm9vbCBwbGF0Zm9y
bUNvbXBhcmUoY29uc3QgQXV0aGVudGljYXRpb25DaGFsbGVuZ2UmLCBjb25zdCBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSYpOwogCisgICAgR1JlZlB0cjxTb3VwTWVzc2FnZT4gbV9zb3VwTWVzc2Fn
ZTsKICAgICBHUmVmUHRyPFNvdXBBdXRoPiBtX3NvdXBBdXRoOwogICAgIFJlZlB0cjxBdXRoZW50
aWNhdGlvbkNsaWVudD4gbV9hdXRoZW50aWNhdGlvbkNsaWVudDsKIH07CiAKLX0KK30gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKIAotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9uZXR3b3JrL3NvdXAvQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTb3VwLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvc291cC9BdXRoZW50aWNhdGlvbkNoYWxsZW5nZVNv
dXAuY3BwCmluZGV4IDk3ZTkyM2M4YWEzLi40NmQ2MDBmZDg0NCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlU291
cC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9zb3VwL0F1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlU291cC5jcHAKQEAgLTcyLDYgKzcyLDcgQEAgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2U6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFNvdXBNZXNzYWdlKiBzb3VwTWVzc2Fn
ZSwgU291cEEKICAgICAgICAgcmV0cnlpbmcgPyAxIDogMCwgLy8gcHJldmlvdXNGYWlsdXJlQ291
bnQKICAgICAgICAgc291cE1lc3NhZ2UsIC8vIGZhaWx1cmVSZXNwb25zZQogICAgICAgICBSZXNv
dXJjZUVycm9yOjphdXRoZW50aWNhdGlvbkVycm9yKHNvdXBNZXNzYWdlKSkKKyAgICAsIG1fc291
cE1lc3NhZ2Uoc291cE1lc3NhZ2UpCiAgICAgLCBtX3NvdXBBdXRoKHNvdXBBdXRoKQogICAgICwg
bV9hdXRoZW50aWNhdGlvbkNsaWVudChjbGllbnQpCiB7CkBAIC03OSw3ICs4MCw3IEBAIEF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlOjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShTb3VwTWVzc2FnZSog
c291cE1lc3NhZ2UsIFNvdXBBCiAKIGJvb2wgQXV0aGVudGljYXRpb25DaGFsbGVuZ2U6OnBsYXRm
b3JtQ29tcGFyZShjb25zdCBBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSYgYSwgY29uc3QgQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmIGIpCiB7Ci0gICAgcmV0dXJuIGEuc291cEF1dGgoKSA9PSBiLnNv
dXBBdXRoKCk7CisgICAgcmV0dXJuIGEuc291cE1lc3NhZ2UoKSA9PSBiLnNvdXBNZXNzYWdlKCkg
JiYgYS5zb3VwQXV0aCgpID09IGIuc291cEF1dGgoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2Vi
Q29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAxNDNmNWI0MmMwMC4uYThjNjU0NDEwZDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTkgQEAKKzIwMTctMDgtMTEgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtTb3VwXSBDYW5ub3QgYWNjZXNzIEhUVFBTIHNpdGVzIHVz
aW5nIGEgSFRUUCBwcm94eSB0aGF0IHJlcXVpcmVzIGF1dGhlbnRpY2F0aW9uCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUzNzgKKworICAgICAgICBS
ZXZpZXdlZCBieSBTZXJnaW8gVmlsbGFyIFNlbmluLgorCisgICAgICAgIEluIGNhc2Ugb2YgSFRU
UFMgcmVzb3VyY2Ugd2l0aCBhIHByb3h5LCBsaWJzb3VwIHVzZXMgYSB0dW5uZWwgaW50ZXJuYWxs
eSwgdGhhdCB1c2VzIGl0cyBvd24gU291cE1lc3NhZ2UgZHVyaW5nCisgICAgICAgIHRoZSBwcm94
eSBhdXRoZW50aWNhdGlvbi4gV2Ugd2VyZSBpZ25vcmluZyBhdXRoZW50aWNhdGlvbiByZXF1ZXN0
cyBmb3Igb3RoZXIgbWVzc2FnZXMuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zb3VwL05l
dHdvcmtEYXRhVGFza1NvdXAuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tT
b3VwOjphdXRoZW50aWNhdGVDYWxsYmFjayk6IE9ubHkgcmV0dXJuIGVhcmx5IGlmIHRoZSBtZXNz
YWdlIGRvZXMndCBtYXRjaCBhbmQgaXQncyBub3QKKyAgICAgICAgSFRUUFMgcmVzb3VyY2Ugb3Zl
ciBhIHByb3h5LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50
aWNhdGUpOiBVc2UgdGhlIHNvdXAgbWVzc2FnZSBmcm9tIHRoZSBhdXRoZW50aWNhdGlvbiBjaGFs
bGVuZ2UuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtEYXRhVGFza1NvdXA6OmNvbnRpbnVlQXV0
aGVudGljYXRlKTogRGl0dG8uCisKIDIwMTctMDgtMTAgIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8
Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtTb3VwXSBEbyBub3Qgc3Bhd24gdGhlIG5l
dHdvcmsgcHJvY2VzcyB0byBzZXR1cCBjb29raWUgcGVyc2lzdGVudCBzdG9yYWdlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291
cC5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNr
U291cC5jcHAKaW5kZXggNjk1OTAzZDg2MDMuLmYzZDZmNzMwMGQ0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3NvdXAvTmV0d29ya0RhdGFUYXNrU291cC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zb3VwL05ldHdvcmtEYXRhVGFza1NvdXAu
Y3BwCkBAIC00NDUsNyArNDQ1LDEyIEBAIHZvaWQgTmV0d29ya0RhdGFUYXNrU291cDo6YXBwbHlB
dXRoZW50aWNhdGlvblRvUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB2b2lkIE5l
dHdvcmtEYXRhVGFza1NvdXA6OmF1dGhlbnRpY2F0ZUNhbGxiYWNrKFNvdXBTZXNzaW9uKiBzZXNz
aW9uLCBTb3VwTWVzc2FnZSogc291cE1lc3NhZ2UsIFNvdXBBdXRoKiBzb3VwQXV0aCwgZ2Jvb2xl
YW4gcmV0cnlpbmcsIE5ldHdvcmtEYXRhVGFza1NvdXAqIHRhc2spCiB7CiAgICAgQVNTRVJUKHNl
c3Npb24gPT0gc3RhdGljX2Nhc3Q8TmV0d29ya1Nlc3Npb25Tb3VwJj4odGFzay0+bV9zZXNzaW9u
LmdldCgpKS5zb3VwU2Vzc2lvbigpKTsKLSAgICBpZiAoc291cE1lc3NhZ2UgIT0gdGFzay0+bV9z
b3VwTWVzc2FnZS5nZXQoKSkKKworICAgIC8vIFdlIGRvbid0IHJldHVybiBlYXJseSBoZXJlIGlu
IGNhc2UgdGhlIGdpdmVuIHNvdXBNZXNzYWdlIGlzIGRpZmZlcmVudCB0byBtX3NvdXBNZXNzYWdl
IHdoZW4KKyAgICAvLyBpdCdzIHByb3h5IGF1dGhlbnRpY2F0aW9uIGFuZCB0aGUgcmVxdWVzdCBV
UkwgaXMgSFRUUFMsIGJlY2F1c2UgaW4gdGhhdCBjYXNlIGxpYnNvdXAgdXNlcyBhCisgICAgLy8g
dHVubmVsIGludGVybmFsbHkgYW5kIHRoZSBTb3VwTWVzc2FnZSB1c2VkIGZvciB0aGUgYXV0aGVu
dGljYXRpb24gaXMgdGhlIHR1bm5lbGluZyBvbmUuCisgICAgLy8gU2VlIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzUzNzguCisgICAgaWYgKHNvdXBNZXNzYWdlICE9
IHRhc2stPm1fc291cE1lc3NhZ2UuZ2V0KCkgJiYgKHNvdXBNZXNzYWdlLT5zdGF0dXNfY29kZSAh
PSBTT1VQX1NUQVRVU19QUk9YWV9BVVRIRU5USUNBVElPTl9SRVFVSVJFRCB8fCAhdGFzay0+bV9j
dXJyZW50UmVxdWVzdC51cmwoKS5wcm90b2NvbElzKCJodHRwcyIpKSkKICAgICAgICAgcmV0dXJu
OwogCiAgICAgaWYgKHRhc2stPnN0YXRlKCkgPT0gU3RhdGU6OkNhbmNlbGluZyB8fCB0YXNrLT5z
dGF0ZSgpID09IFN0YXRlOjpDb21wbGV0ZWQgfHwgIXRhc2stPm1fY2xpZW50KSB7CkBAIC00ODcs
NyArNDkyLDcgQEAgdm9pZCBOZXR3b3JrRGF0YVRhc2tTb3VwOjphdXRoZW50aWNhdGUoQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2UmJiBjaGFsbGVuZ2UpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICBz
b3VwX3Nlc3Npb25fcGF1c2VfbWVzc2FnZShzdGF0aWNfY2FzdDxOZXR3b3JrU2Vzc2lvblNvdXAm
PihtX3Nlc3Npb24uZ2V0KCkpLnNvdXBTZXNzaW9uKCksIG1fc291cE1lc3NhZ2UuZ2V0KCkpOwor
ICAgIHNvdXBfc2Vzc2lvbl9wYXVzZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9u
U291cCY+KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNlc3Npb24oKSwgY2hhbGxlbmdlLnNvdXBNZXNz
YWdlKCkpOwogCiAgICAgLy8gV2UgY291bGQgYWxzbyBkbyB0aGlzIGJlZm9yZSB3ZSBldmVuIHN0
YXJ0IHRoZSByZXF1ZXN0LCBidXQgdGhhdCB3b3VsZCBiZSBhdCB0aGUgZXhwZW5zZQogICAgIC8v
IG9mIGFsbCByZXF1ZXN0IGxhdGVuY3ksIHZlcnN1cyBhIG9uZS10aW1lIGxhdGVuY3kgZm9yIHRo
ZSBzbWFsbCBzdWJzZXQgb2YgcmVxdWVzdHMgdGhhdApAQCAtNTQxLDcgKzU0Niw3IEBAIHZvaWQg
TmV0d29ya0RhdGFUYXNrU291cDo6Y29udGludWVBdXRoZW50aWNhdGUoQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UmJiBjaGFsbGVuCiAgICAgICAgICAgICBzb3VwX2F1dGhfYXV0aGVudGljYXRlKGNo
YWxsZW5nZS5zb3VwQXV0aCgpLCBjcmVkZW50aWFsLnVzZXIoKS51dGY4KCkuZGF0YSgpLCBjcmVk
ZW50aWFsLnBhc3N3b3JkKCkudXRmOCgpLmRhdGEoKSk7CiAgICAgICAgIH0KIAotICAgICAgICBz
b3VwX3Nlc3Npb25fdW5wYXVzZV9tZXNzYWdlKHN0YXRpY19jYXN0PE5ldHdvcmtTZXNzaW9uU291
cCY+KG1fc2Vzc2lvbi5nZXQoKSkuc291cFNlc3Npb24oKSwgbV9zb3VwTWVzc2FnZS5nZXQoKSk7
CisgICAgICAgIHNvdXBfc2Vzc2lvbl91bnBhdXNlX21lc3NhZ2Uoc3RhdGljX2Nhc3Q8TmV0d29y
a1Nlc3Npb25Tb3VwJj4obV9zZXNzaW9uLmdldCgpKS5zb3VwU2Vzc2lvbigpLCBjaGFsbGVuZ2Uu
c291cE1lc3NhZ2UoKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3NmZjMTk2ZGRjZi4uNjA5ZGQ0NDA1ZTkgMTAwNjQ0
Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
NSBAQAorMjAxNy0wOC0xMSAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5j
b20+CisKKyAgICAgICAgW1NvdXBdIENhbm5vdCBhY2Nlc3MgSFRUUFMgc2l0ZXMgdXNpbmcgYSBI
VFRQIHByb3h5IHRoYXQgcmVxdWlyZXMgYXV0aGVudGljYXRpb24KKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3NTM3OAorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCB0d28gdGVzdCBjYXNlcyB0byBjaGVj
ayBwcm94eSBhdXRoZW50aWNhdGlvbi4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0QXV0aGVudGljYXRpb24uY3BwOgorICAgICAgICAoVHVubmVsOjpUdW5u
ZWwpOgorICAgICAgICAoVHVubmVsOjp+VHVubmVsKToKKyAgICAgICAgKFR1bm5lbDo6Y29ubmVj
dCk6CisgICAgICAgIChUdW5uZWw6OmNvbm5lY3RlZCk6CisgICAgICAgIChzZXJ2ZXJDYWxsYmFj
ayk6CisgICAgICAgIChQcm94eUF1dGhlbnRpY2F0aW9uVGVzdDo6UHJveHlBdXRoZW50aWNhdGlv
blRlc3QpOgorICAgICAgICAoUHJveHlBdXRoZW50aWNhdGlvblRlc3Q6On5Qcm94eUF1dGhlbnRp
Y2F0aW9uVGVzdCk6CisgICAgICAgIChQcm94eUF1dGhlbnRpY2F0aW9uVGVzdDo6cHJveHlTZXJ2
ZXJQb3J0QXNTdHJpbmcpOgorICAgICAgICAodGVzdFdlYlZpZXdBdXRoZW50aWNhdGlvblByb3h5
KToKKyAgICAgICAgKHRlc3RXZWJWaWV3QXV0aGVudGljYXRpb25Qcm94eUhUVFBTKToKKyAgICAg
ICAgKGJlZm9yZUFsbCk6CisKIDIwMTctMDgtMTAgIERvbiBPbG1zdGVhZCAgPGRvbi5vbG1zdGVh
ZEBzb255LmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCBhZGRpbmcgUm9zcyBLaXJzbGluZyB0
byBjb250cmlidXRvcnMuanNvbgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJLaXRHTGliL1Rlc3RBdXRoZW50aWNhdGlvbi5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJ
L1Rlc3RzL1dlYktpdEdMaWIvVGVzdEF1dGhlbnRpY2F0aW9uLmNwcAppbmRleCA5Y2Q5ZjVlN2Fl
NC4uMTc3MGE3Y2QyOTAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0QXV0aGVudGljYXRpb24uY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkv
VGVzdHMvV2ViS2l0R0xpYi9UZXN0QXV0aGVudGljYXRpb24uY3BwCkBAIC0yNTIsMTQgKzI1Miw3
NCBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0F1dGhlbnRpY2F0aW9uRW1wdHlSZWFsbShBdXRo
ZW50aWNhdGlvblRlc3QqIHRlc3QsIGdjb25zdAogICAgIGdfYXNzZXJ0X2NtcHN0cih3ZWJraXRf
d2ViX3ZpZXdfZ2V0X3RpdGxlKHRlc3QtPm1fd2ViVmlldyksID09LCBhdXRoRXhwZWN0ZWRTdWNj
ZXNzVGl0bGUpOwogfQogCi1zdGF0aWMgdm9pZCBzZXJ2ZXJDYWxsYmFjayhTb3VwU2VydmVyKiwg
U291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3Vw
Q2xpZW50Q29udGV4dCosIHZvaWQqKQorY2xhc3MgVHVubmVsIHsKK3B1YmxpYzoKKyAgICBUdW5u
ZWwoU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2FnZSkKKyAgICAgICAgOiBt
X3NlcnZlcihzZXJ2ZXIpCisgICAgICAgICwgbV9tZXNzYWdlKG1lc3NhZ2UpCisgICAgeworICAg
ICAgICBzb3VwX3NlcnZlcl9wYXVzZV9tZXNzYWdlKG1fc2VydmVyLmdldCgpLCBtX21lc3NhZ2Uu
Z2V0KCkpOworICAgIH0KKworICAgIH5UdW5uZWwoKQorICAgIHsKKyAgICAgICAgc291cF9zZXJ2
ZXJfdW5wYXVzZV9tZXNzYWdlKG1fc2VydmVyLmdldCgpLCBtX21lc3NhZ2UuZ2V0KCkpOworICAg
IH0KKworICAgIHZvaWQgY29ubmVjdChGdW5jdGlvbjx2b2lkIChjb25zdCBjaGFyKik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCisgICAgeworICAgICAgICBtX2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcik7CisgICAgICAgIEdSZWZQdHI8R1NvY2tldENsaWVudD4g
Y2xpZW50ID0gYWRvcHRHUmVmKGdfc29ja2V0X2NsaWVudF9uZXcoKSk7CisgICAgICAgIGF1dG8q
IHVyaSA9IHNvdXBfbWVzc2FnZV9nZXRfdXJpKG1fbWVzc2FnZS5nZXQoKSk7CisgICAgICAgIGdf
c29ja2V0X2NsaWVudF9jb25uZWN0X3RvX2hvc3RfYXN5bmMoY2xpZW50LmdldCgpLCB1cmktPmhv
c3QsIHVyaS0+cG9ydCwgbnVsbHB0ciwgW10oR09iamVjdCogc291cmNlLCBHQXN5bmNSZXN1bHQq
IHJlc3VsdCwgZ3BvaW50ZXIgdXNlckRhdGEpIHsKKyAgICAgICAgICAgIGF1dG8qIHR1bm5lbCA9
IHN0YXRpY19jYXN0PFR1bm5lbCo+KHVzZXJEYXRhKTsKKyAgICAgICAgICAgIEdVbmlxdWVPdXRQ
dHI8R0Vycm9yPiBlcnJvcjsKKyAgICAgICAgICAgIEdSZWZQdHI8R1NvY2tldENvbm5lY3Rpb24+
IGNvbm5lY3Rpb24gPSBhZG9wdEdSZWYoZ19zb2NrZXRfY2xpZW50X2Nvbm5lY3RfdG9faG9zdF9m
aW5pc2goR19TT0NLRVRfQ0xJRU5UKHNvdXJjZSksIHJlc3VsdCwgJmVycm9yLm91dFB0cigpKSk7
CisgICAgICAgICAgICB0dW5uZWwtPmNvbm5lY3RlZCghY29ubmVjdGlvbiA/IGVycm9yLT5tZXNz
YWdlIDogbnVsbHB0cik7CisgICAgICAgIH0sIHRoaXMpOworICAgIH0KKworICAgIHZvaWQgY29u
bmVjdGVkKGNvbnN0IGNoYXIqIGVycm9yTWVzc2FnZSkKKyAgICB7CisgICAgICAgIGF1dG8gY29t
cGxldGlvbkhhbmRsZXIgPSBzdGQ6OmV4Y2hhbmdlKG1fY29tcGxldGlvbkhhbmRsZXIsIG51bGxw
dHIpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihlcnJvck1lc3NhZ2UpOworICAgIH0KKwor
ICAgIEdSZWZQdHI8U291cFNlcnZlcj4gbV9zZXJ2ZXI7CisgICAgR1JlZlB0cjxTb3VwTWVzc2Fn
ZT4gbV9tZXNzYWdlOworICAgIEZ1bmN0aW9uPHZvaWQgKGNvbnN0IGNoYXIqKT4gbV9jb21wbGV0
aW9uSGFuZGxlcjsKK307CisKK3Vuc2lnbmVkIGdQcm94eVNlcnZlclBvcnQ7CisKK3N0YXRpYyB2
b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3Nh
Z2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCogY29u
dGV4dCwgdm9pZCopCiB7CisgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCA9PSBTT1VQX01FVEhPRF9D
T05ORUNUKSB7CisgICAgICAgIGdfYXNzZXJ0X2NtcHVpbnQoc291cF9zZXJ2ZXJfZ2V0X3BvcnQo
c2VydmVyKSwgPT0sIGdQcm94eVNlcnZlclBvcnQpOworICAgICAgICBhdXRvIHR1bm5lbCA9IHN0
ZDo6bWFrZV91bmlxdWU8VHVubmVsPihzZXJ2ZXIsIG1lc3NhZ2UpOworICAgICAgICBhdXRvKiB0
dW5uZWxQdHIgPSB0dW5uZWwuZ2V0KCk7CisgICAgICAgIHR1bm5lbFB0ci0+Y29ubmVjdChbdHVu
bmVsID0gV1RGTW92ZSh0dW5uZWwpXShjb25zdCBjaGFyKiBlcnJvck1lc3NhZ2UpIHsKKyAgICAg
ICAgICAgIGlmIChlcnJvck1lc3NhZ2UpIHsKKyAgICAgICAgICAgICAgICBzb3VwX21lc3NhZ2Vf
c2V0X3N0YXR1cyh0dW5uZWwtPm1fbWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfQkFEX0dBVEVX
QVkpOworICAgICAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfcmVzcG9uc2UodHVubmVsLT5t
X21lc3NhZ2UuZ2V0KCksICJ0ZXh0L3BsYWluIiwgU09VUF9NRU1PUllfQ09QWSwgZXJyb3JNZXNz
YWdlLCBzdHJsZW4oZXJyb3JNZXNzYWdlKSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAg
ICAgICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJzX2FwcGVuZCh0dW5uZWwtPm1fbWVzc2FnZS0+
cmVzcG9uc2VfaGVhZGVycywgIlByb3h5LUF1dGhlbnRpY2F0ZSIsICJCYXNpYyByZWFsbT1cIlBy
b3h5IHJlYWxtXCIiKTsKKyAgICAgICAgICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyh0
dW5uZWwtPm1fbWVzc2FnZS5nZXQoKSwgU09VUF9TVEFUVVNfUFJPWFlfQVVUSEVOVElDQVRJT05f
UkVRVUlSRUQpOworICAgICAgICAgICAgfQorICAgICAgICB9KTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKwogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CiAg
ICAgICAgIHNvdXBfbWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX05PVF9J
TVBMRU1FTlRFRCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBpZiAoIXN0cmNtcChw
YXRoLCAiL2F1dGgtdGVzdC5odG1sIikgfHwgIXN0cmNtcChwYXRoLCAiL2VtcHR5LXJlYWxtLmh0
bWwiKSkgeworICAgIGlmIChnX3N0cl9oYXNfc3VmZml4KHBhdGgsICIvYXV0aC10ZXN0Lmh0bWwi
KSB8fCBnX3N0cl9oYXNfc3VmZml4KHBhdGgsICIvZW1wdHktcmVhbG0uaHRtbCIpKSB7CisgICAg
ICAgIGJvb2wgaXNQcm94eSA9IGdfc3RyX2hhc19wcmVmaXgocGF0aCwgIi9wcm94eSIpOworICAg
ICAgICBpZiAoaXNQcm94eSkKKyAgICAgICAgICAgIGdfYXNzZXJ0X2NtcHVpbnQoc291cF9zZXJ2
ZXJfZ2V0X3BvcnQoc2VydmVyKSwgPT0sIGdQcm94eVNlcnZlclBvcnQpOworCiAgICAgICAgIGNv
bnN0IGNoYXIqIGF1dGhvcml6YXRpb24gPSBzb3VwX21lc3NhZ2VfaGVhZGVyc19nZXRfb25lKG1l
c3NhZ2UtPnJlcXVlc3RfaGVhZGVycywgIkF1dGhvcml6YXRpb24iKTsKICAgICAgICAgLy8gUmVx
dWlyZSBhdXRoZW50aWNhdGlvbi4KICAgICAgICAgaWYgKCFnX3N0cmNtcDAoYXV0aG9yaXphdGlv
biwgYXV0aEV4cGVjdGVkQXV0aG9yaXphdGlvbikpIHsKQEAgLTI2OSwxMSArMzI5LDExIEBAIHN0
YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqLCBTb3VwTWVzc2FnZSogbWVzc2Fn
ZSwgY29uc3QgY2hhciogcGF0aCwKICAgICAgICAgICAgIEF1dGhlbnRpY2F0aW9uVGVzdDo6YXV0
aGVudGljYXRpb25SZXRyaWVzID0gMDsKICAgICAgICAgfSBlbHNlIGlmICgrK0F1dGhlbnRpY2F0
aW9uVGVzdDo6YXV0aGVudGljYXRpb25SZXRyaWVzIDwgMykgewogICAgICAgICAgICAgLy8gTm8g
b3IgaW52YWxpZCBhdXRob3JpemF0aW9uIGhlYWRlciBwcm92aWRlZCBieSB0aGUgY2xpZW50LCBy
ZXF1ZXN0IGF1dGhlbnRpY2F0aW9uIHR3aWNlIHRoZW4gZmFpbC4KLSAgICAgICAgICAgIHNvdXBf
bWVzc2FnZV9zZXRfc3RhdHVzKG1lc3NhZ2UsIFNPVVBfU1RBVFVTX1VOQVVUSE9SSVpFRCk7Cisg
ICAgICAgICAgICBzb3VwX21lc3NhZ2Vfc2V0X3N0YXR1cyhtZXNzYWdlLCBpc1Byb3h5ID8gU09V
UF9TVEFUVVNfUFJPWFlfQVVUSEVOVElDQVRJT05fUkVRVUlSRUQgOiBTT1VQX1NUQVRVU19VTkFV
VEhPUklaRUQpOwogICAgICAgICAgICAgaWYgKCFzdHJjbXAocGF0aCwgIi9lbXB0eS1yZWFsbS5o
dG1sIikpCiAgICAgICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5kKG1lc3Nh
Z2UtPnJlc3BvbnNlX2hlYWRlcnMsICJXV1ctQXV0aGVudGljYXRlIiwgIkJhc2ljIik7CiAgICAg
ICAgICAgICBlbHNlCi0gICAgICAgICAgICAgICAgc291cF9tZXNzYWdlX2hlYWRlcnNfYXBwZW5k
KG1lc3NhZ2UtPnJlc3BvbnNlX2hlYWRlcnMsICJXV1ctQXV0aGVudGljYXRlIiwgIkJhc2ljIHJl
YWxtPVwibXkgcmVhbG1cIiIpOworICAgICAgICAgICAgICAgIHNvdXBfbWVzc2FnZV9oZWFkZXJz
X2FwcGVuZChtZXNzYWdlLT5yZXNwb25zZV9oZWFkZXJzLCBpc1Byb3h5ID8gIlByb3h5LUF1dGhl
bnRpY2F0ZSIgOiAiV1dXLUF1dGhlbnRpY2F0ZSIsIGlzUHJveHkgPyAiQmFzaWMgcmVhbG09XCJQ
cm94eSByZWFsbVwiIiA6ICJCYXNpYyByZWFsbT1cIm15IHJlYWxtXCIiKTsKICAgICAgICAgICAg
IC8vIEluY2x1ZGUgYSBmYWlsdXJlIG1lc3NhZ2UgaW4gY2FzZSB0aGUgdXNlciBhdHRlbXB0cyB0
byBwcm9jZWVkIHdpdGhvdXQgYXV0aGVudGljYXRpb24uCiAgICAgICAgICAgICBzb3VwX21lc3Nh
Z2VfYm9keV9hcHBlbmQobWVzc2FnZS0+cmVzcG9uc2VfYm9keSwgU09VUF9NRU1PUllfU1RBVElD
LCBhdXRoRmFpbHVyZUhUTUxTdHJpbmcsIHN0cmxlbihhdXRoRmFpbHVyZUhUTUxTdHJpbmcpKTsK
ICAgICAgICAgfSBlbHNlIHsKQEAgLTI4Nyw2ICszNDcsNjQgQEAgc3RhdGljIHZvaWQgc2VydmVy
Q2FsbGJhY2soU291cFNlcnZlciosIFNvdXBNZXNzYWdlKiBtZXNzYWdlLCBjb25zdCBjaGFyKiBw
YXRoLAogICAgIHNvdXBfbWVzc2FnZV9ib2R5X2NvbXBsZXRlKG1lc3NhZ2UtPnJlc3BvbnNlX2Jv
ZHkpOwogfQogCitjbGFzcyBQcm94eUF1dGhlbnRpY2F0aW9uVGVzdCA6IHB1YmxpYyBBdXRoZW50
aWNhdGlvblRlc3QgeworcHVibGljOgorICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoUHJveHlB
dXRoZW50aWNhdGlvblRlc3QpOworCisgICAgUHJveHlBdXRoZW50aWNhdGlvblRlc3QoKQorICAg
IHsKKyAgICAgICAgbV9wcm94eVNlcnZlci5ydW4oc2VydmVyQ2FsbGJhY2spOworICAgICAgICBn
X2Fzc2VydChtX3Byb3h5U2VydmVyLmJhc2VVUkkoKSk7CisgICAgICAgIGdQcm94eVNlcnZlclBv
cnQgPSBzb3VwX3VyaV9nZXRfcG9ydChtX3Byb3h5U2VydmVyLmJhc2VVUkkoKSk7CisgICAgICAg
IEdVbmlxdWVQdHI8Y2hhcj4gcHJveHlVUkkoc291cF91cmlfdG9fc3RyaW5nKG1fcHJveHlTZXJ2
ZXIuYmFzZVVSSSgpLCBGQUxTRSkpOworICAgICAgICBXZWJLaXROZXR3b3JrUHJveHlTZXR0aW5n
cyogc2V0dGluZ3MgPSB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0aW5nc19uZXcocHJveHlVUkku
Z2V0KCksIG51bGxwdHIpOworICAgICAgICB3ZWJraXRfd2ViX2NvbnRleHRfc2V0X25ldHdvcmtf
cHJveHlfc2V0dGluZ3MobV93ZWJDb250ZXh0LmdldCgpLCBXRUJLSVRfTkVUV09SS19QUk9YWV9N
T0RFX0NVU1RPTSwgc2V0dGluZ3MpOworICAgICAgICB3ZWJraXRfbmV0d29ya19wcm94eV9zZXR0
aW5nc19mcmVlKHNldHRpbmdzKTsKKyAgICB9CisKKyAgICB+UHJveHlBdXRoZW50aWNhdGlvblRl
c3QoKQorICAgIHsKKyAgICAgICAgZ1Byb3h5U2VydmVyUG9ydCA9IDA7CisgICAgfQorCisgICAg
R1VuaXF1ZVB0cjxjaGFyPiBwcm94eVNlcnZlclBvcnRBc1N0cmluZygpCisgICAgeworICAgICAg
ICBHVW5pcXVlUHRyPGNoYXI+IHBvcnQoZ19zdHJkdXBfcHJpbnRmKCIldSIsIHNvdXBfdXJpX2dl
dF9wb3J0KG1fcHJveHlTZXJ2ZXIuYmFzZVVSSSgpKSkpOworICAgICAgICByZXR1cm4gcG9ydDsK
KyAgICB9CisKKyAgICBXZWJLaXRUZXN0U2VydmVyIG1fcHJveHlTZXJ2ZXI7Cit9OworCitzdGF0
aWMgdm9pZCB0ZXN0V2ViVmlld0F1dGhlbnRpY2F0aW9uUHJveHkoUHJveHlBdXRoZW50aWNhdGlv
blRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgdGVzdC0+bG9hZFVSSShrU2VydmVy
LT5nZXRVUklGb3JQYXRoKCIvcHJveHkvYXV0aC10ZXN0Lmh0bWwiKS5kYXRhKCkpOworICAgIFdl
YktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCogcmVxdWVzdCA9IHRlc3QtPndhaXRGb3JBdXRoZW50
aWNhdGlvblJlcXVlc3QoKTsKKyAgICAvLyBGSVhNRTogdGhlIHVyaSBhbmQgaG9zdCBzaG91bGQg
dGhlIHByb3h5IG9uZXMsIG5vdCB0aGUgcmVxdWVzdGVkIG9uZXMuCisgICAgZ19hc3NlcnRfY21w
c3RyKHdlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9ob3N0KHJlcXVlc3QpLCA9PSwg
c291cF91cmlfZ2V0X2hvc3Qoa1NlcnZlci0+YmFzZVVSSSgpKSk7CisgICAgZ19hc3NlcnRfY21w
dWludCh3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfcG9ydChyZXF1ZXN0KSwgPT0s
IHNvdXBfdXJpX2dldF9wb3J0KGtTZXJ2ZXItPmJhc2VVUkkoKSkpOworICAgIGdfYXNzZXJ0X2Nt
cHN0cih3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9nZXRfcmVhbG0ocmVxdWVzdCksID09
LCAiUHJveHkgcmVhbG0iKTsKKyAgICBnX2Fzc2VydCh3ZWJraXRfYXV0aGVudGljYXRpb25fcmVx
dWVzdF9nZXRfc2NoZW1lKHJlcXVlc3QpID09IFdFQktJVF9BVVRIRU5USUNBVElPTl9TQ0hFTUVf
SFRUUF9CQVNJQyk7CisgICAgZ19hc3NlcnQod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3Rf
aXNfZm9yX3Byb3h5KHJlcXVlc3QpKTsKKyAgICBnX2Fzc2VydCghd2Via2l0X2F1dGhlbnRpY2F0
aW9uX3JlcXVlc3RfaXNfcmV0cnkocmVxdWVzdCkpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2Vi
Vmlld0F1dGhlbnRpY2F0aW9uUHJveHlIVFRQUyhQcm94eUF1dGhlbnRpY2F0aW9uVGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKK3sKKyAgICBhdXRvIGh0dHBzU2VydmVyID0gc3RkOjptYWtlX3Vu
aXF1ZTxXZWJLaXRUZXN0U2VydmVyPihXZWJLaXRUZXN0U2VydmVyOjpTZXJ2ZXJIVFRQUyk7Cisg
ICAgaHR0cHNTZXJ2ZXItPnJ1bihzZXJ2ZXJDYWxsYmFjayk7CisKKyAgICB0ZXN0LT5sb2FkVVJJ
KGh0dHBzU2VydmVyLT5nZXRVUklGb3JQYXRoKCIvcHJveHkvYXV0aC10ZXN0Lmh0bWwiKS5kYXRh
KCkpOworICAgIFdlYktpdEF1dGhlbnRpY2F0aW9uUmVxdWVzdCogcmVxdWVzdCA9IHRlc3QtPndh
aXRGb3JBdXRoZW50aWNhdGlvblJlcXVlc3QoKTsKKyAgICAvLyBGSVhNRTogdGhlIHVyaSBhbmQg
aG9zdCBzaG91bGQgdGhlIHByb3h5IG9uZXMsIG5vdCB0aGUgcmVxdWVzdGVkIG9uZXMuCisgICAg
Z19hc3NlcnRfY21wc3RyKHdlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9ob3N0KHJl
cXVlc3QpLCA9PSwgc291cF91cmlfZ2V0X2hvc3QoaHR0cHNTZXJ2ZXItPmJhc2VVUkkoKSkpOwor
ICAgIGdfYXNzZXJ0X2NtcHVpbnQod2Via2l0X2F1dGhlbnRpY2F0aW9uX3JlcXVlc3RfZ2V0X3Bv
cnQocmVxdWVzdCksID09LCBzb3VwX3VyaV9nZXRfcG9ydChodHRwc1NlcnZlci0+YmFzZVVSSSgp
KSk7CisgICAgZ19hc3NlcnRfY21wc3RyKHdlYmtpdF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dl
dF9yZWFsbShyZXF1ZXN0KSwgPT0sICJQcm94eSByZWFsbSIpOworICAgIGdfYXNzZXJ0KHdlYmtp
dF9hdXRoZW50aWNhdGlvbl9yZXF1ZXN0X2dldF9zY2hlbWUocmVxdWVzdCkgPT0gV0VCS0lUX0FV
VEhFTlRJQ0FUSU9OX1NDSEVNRV9IVFRQX0JBU0lDKTsKKyAgICBnX2Fzc2VydCh3ZWJraXRfYXV0
aGVudGljYXRpb25fcmVxdWVzdF9pc19mb3JfcHJveHkocmVxdWVzdCkpOworICAgIGdfYXNzZXJ0
KCF3ZWJraXRfYXV0aGVudGljYXRpb25fcmVxdWVzdF9pc19yZXRyeShyZXF1ZXN0KSk7Cit9CisK
IHZvaWQgYmVmb3JlQWxsKCkKIHsKICAgICBrU2VydmVyID0gbmV3IFdlYktpdFRlc3RTZXJ2ZXIo
KTsKQEAgLTMwMCw2ICs0MTgsOCBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgQXV0aGVudGljYXRp
b25UZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiYXV0aGVudGljYXRpb24tbm8tY3JlZGVudGlh
bCIsIHRlc3RXZWJWaWV3QXV0aGVudGljYXRpb25Ob0NyZWRlbnRpYWwpOwogICAgIEF1dGhlbnRp
Y2F0aW9uVGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImF1dGhlbnRpY2F0aW9uLXN0b3JhZ2Ui
LCB0ZXN0V2ViVmlld0F1dGhlbnRpY2F0aW9uU3RvcmFnZSk7CiAgICAgQXV0aGVudGljYXRpb25U
ZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiYXV0aGVudGljYXRpb24tZW1wdHktcmVhbG0iLCB0
ZXN0V2ViVmlld0F1dGhlbnRpY2F0aW9uRW1wdHlSZWFsbSk7CisgICAgUHJveHlBdXRoZW50aWNh
dGlvblRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJhdXRoZW50aWNhdGlvbi1wcm94eSIsIHRl
c3RXZWJWaWV3QXV0aGVudGljYXRpb25Qcm94eSk7CisgICAgUHJveHlBdXRoZW50aWNhdGlvblRl
c3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJhdXRoZW50aWNhdGlvbi1wcm94eS1odHRwcyIsIHRl
c3RXZWJWaWV3QXV0aGVudGljYXRpb25Qcm94eUhUVFBTKTsKIH0KIAogdm9pZCBhZnRlckFsbCgp
Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>