<?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>61841</bug_id>
          
          <creation_ts>2011-06-01 00:55:37 -0700</creation_ts>
          <short_desc>WebSocket: Call WebSocketChannel::fail() when WebSocketHandshake has failed</short_desc>
          <delta_ts>2011-06-02 01:12:22 -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>WebCore Misc.</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>61851</dependson>
          <blocked>61115</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Yuta Kitamura">yutak</reporter>
          <assigned_to name="Yuta Kitamura">yutak</assigned_to>
          <cc>ap</cc>
    
    <cc>commit-queue</cc>
    
    <cc>tkent</cc>
    
    <cc>ukai</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>413204</commentid>
    <comment_count>0</comment_count>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-01 00:55:37 -0700</bug_when>
    <thetext>This is the last part of bug 61115.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413218</commentid>
    <comment_count>1</comment_count>
      <attachid>95561</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-01 01:28:16 -0700</bug_when>
    <thetext>Created attachment 95561
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413223</commentid>
    <comment_count>2</comment_count>
      <attachid>95561</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-01 01:39:28 -0700</bug_when>
    <thetext>Comment on attachment 95561
Patch

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

&gt; Source/WebCore/websockets/WebSocketChannel.cpp:337
&gt; -        if (!m_closed)
&gt; -            m_handle-&gt;disconnect();
&gt; +        fail(m_handshake.failureReason());

This looks a behavior change.
fail() calls m_handle-&gt;close(), not m_handle-&gt;disconnect(), right?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413244</commentid>
    <comment_count>3</comment_count>
      <attachid>95561</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-01 02:39:46 -0700</bug_when>
    <thetext>Comment on attachment 95561
Patch

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

&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:337
&gt;&gt; +        fail(m_handshake.failureReason());
&gt; 
&gt; This looks a behavior change.
&gt; fail() calls m_handle-&gt;close(), not m_handle-&gt;disconnect(), right?

Good point.

This sounds like a bug of fail(), rather than of this patch. I should have used m_handle-&gt;disconnect() in fail(), because we don&apos;t have to wait for unsent data to be sent (difference between m_handle-&gt;close() and m_handle-&gt;disconnect() is that the former does not close the connection until the socket finishes to send all data while the latter immediately closes the connection).

I will create a new bug and fix this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413860</commentid>
    <comment_count>4</comment_count>
      <attachid>95561</attachid>
    <who name="Yuta Kitamura">yutak</who>
    <bug_when>2011-06-01 20:09:15 -0700</bug_when>
    <thetext>Comment on attachment 95561
Patch

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

&gt;&gt;&gt; Source/WebCore/websockets/WebSocketChannel.cpp:337
&gt;&gt;&gt; +        fail(m_handshake.failureReason());
&gt;&gt; 
&gt;&gt; This looks a behavior change.
&gt;&gt; fail() calls m_handle-&gt;close(), not m_handle-&gt;disconnect(), right?
&gt; 
&gt; Good point.
&gt; 
&gt; This sounds like a bug of fail(), rather than of this patch. I should have used m_handle-&gt;disconnect() in fail(), because we don&apos;t have to wait for unsent data to be sent (difference between m_handle-&gt;close() and m_handle-&gt;disconnect() is that the former does not close the connection until the socket finishes to send all data while the latter immediately closes the connection).
&gt; 
&gt; I will create a new bug and fix this.

Now m_handle-&gt;disconnect() is used in fail(), so this line is no longer a behavior change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413861</commentid>
    <comment_count>5</comment_count>
      <attachid>95561</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-06-01 20:15:30 -0700</bug_when>
    <thetext>Comment on attachment 95561
Patch

ok!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413981</commentid>
    <comment_count>6</comment_count>
      <attachid>95561</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 01:12:17 -0700</bug_when>
    <thetext>Comment on attachment 95561
Patch

Clearing flags on attachment: 95561

Committed r87883: &lt;http://trac.webkit.org/changeset/87883&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>413982</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-06-02 01:12:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>95561</attachid>
            <date>2011-06-01 01:28:16 -0700</date>
            <delta_ts>2011-06-02 01:12:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-61841-20110601172814.patch</filename>
            <type>text/plain</type>
            <size>16107</size>
            <attacher name="Yuta Kitamura">yutak</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogODc3NzEKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlYWFkNDAwMDYxYzI5ZTUyNzg4MTY1
ZjcyN2ViMjRmZWI2NDM2YjM5Li4xNDM3ZGZmMDhjYTUwMTAwZTViMGQ0NDcyNTNkZTZmZTg5Zjk2
ZGRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTEtMDYtMDEgIFl1dGEgS2l0YW11cmEgIDx5
dXRha0BjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgV2ViU29ja2V0OiBDYWxsIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoKSB3aGVu
IFdlYlNvY2tldEhhbmRzaGFrZSBoYXMgZmFpbGVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD02MTg0MQorCisgICAgICAgICogaHR0cC90ZXN0cy93ZWJz
b2NrZXQvdGVzdHMvYmFkLWhhbmRzaGFrZS1jcmFzaC1leHBlY3RlZC50eHQ6CisgICAgICAgIE5v
dyB0aGUgZXJyb3IgbWVzc2FnZSBzdGFydHMgd2l0aCBhIGNhcGl0YWwgbGV0dGVyLgorCiAyMDEx
LTA1LTMxICBIaXJvbm9yaSBCb25vICA8aGJvbm9AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJl
dmlld2VkIGJ5IEVyaWMgU2VpZGVsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy93ZWJzb2NrZXQvdGVzdHMvYmFkLWhhbmRzaGFrZS1jcmFzaC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtaGFuZHNoYWtlLWNyYXNoLWV4
cGVjdGVkLnR4dAppbmRleCAzZTdhODg2ZjhjNWIyMzQ0ZTM4Yjk3MWFiYTBmZjViYjcyMGJlYmNl
Li5hNWYyMGY0Yzk0MDk4ZjRjYWExNTFkYjAyODgzOWJhM2ZhNjllMTJhIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9iYWQtaGFuZHNoYWtlLWNyYXNo
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0
cy9iYWQtaGFuZHNoYWtlLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUNPTlNP
TEUgTUVTU0FHRTogbGluZSAwOiBpbnZhbGlkIFVURi04IHNlcXVlbmNlIGluIGhlYWRlciBuYW1l
CitDT05TT0xFIE1FU1NBR0U6IGxpbmUgMDogSW52YWxpZCBVVEYtOCBzZXF1ZW5jZSBpbiBoZWFk
ZXIgbmFtZQogTWFrZSBzdXJlIFdlYlNvY2tldCBkb2Vzbid0IGNyYXNoIHdpdGggYmFkIGhhbmRz
aGFrZSBtZXNzYWdlLgogCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NDgzOGJjODE0YzhmOTA0NTM0NTM3ZWFjZjkzYTVjNGIxMGI1ZGMxNi4uMWU2NWQzNWEzNWNkNmY2
ZjhlNjcyNTQ0MTM4OWQ5YmY5YmI3OWE3YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisy
MDExLTA2LTAxICBZdXRhIEtpdGFtdXJhICA8eXV0YWtAY2hyb21pdW0ub3JnPgorCisgICAgICAg
IFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlYlNvY2tldDogQ2FsbCBX
ZWJTb2NrZXRDaGFubmVsOjpmYWlsKCkgd2hlbiBXZWJTb2NrZXRIYW5kc2hha2UgaGFzIGZhaWxl
ZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjE4NDEK
KworICAgICAgICBUaGVyZSBpcyBubyBjaGFuZ2UgaW4gYmVoYXZpb3IgZXhjZXB0IHRoYXQgY2Fw
aXRhbGl6YXRpb24gb2YgYSBmZXcgZXJyb3IgbWVzc2FnZXMKKyAgICAgICAgaGFzIGJlZW4gY2hh
bmdlZC4gTm8gbmV3IHRlc3RzIGFyZSBhZGRlZC4KKworICAgICAgICAqIHdlYnNvY2tldHMvV2Vi
U29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpw
cm9jZXNzQnVmZmVyKToKKyAgICAgICAgUGFzcyBtX2hhbmRzaGFrZS5mYWlsdXJlUmVhc29uKCkg
dG8gZmFpbCgpIGlmIHRoZSBoYW5kc2hha2UgaGFzIGZhaWxlZC4KKyAgICAgICAgKiB3ZWJzb2Nr
ZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHA6CisgICAgICAgIFJlcGxhY2Ugb2NjdXJyZW5jZXMg
b2YgbV9oYW5kbGUtPmFkZE1lc3NhZ2UoKSB3aXRoIGFzc2lnbm1lbnRzIHRvIG1fZmFpbHVyZVJl
YXNvbi4KKyAgICAgICAgQ2hhbmdlIGNhcGl0YWxpemF0aW9uIG9mIGEgZmV3IG1lc3NhZ2VzIHNv
IHRoYXQgYWxsIG1lc3NhZ2VzIHN0YXJ0IHdpdGggYSBjYXBpdGFsIGxldHRlci4KKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFNlcnZlckhhbmRzaGFrZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmZhaWx1cmVSZWFzb24pOgorICAgICAg
ICAoV2ViQ29yZTo6V2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU3RhdHVzTGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRIVFRQSGVhZGVycyk6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRIYW5kc2hha2U6OmNoZWNrUmVzcG9uc2VIZWFkZXJzKToKKyAg
ICAgICAgKiB3ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oOgorICAgICAgICBBZGQgZmFp
bHVyZVJlYXNvbigpLCB3aGljaCByZXR1cm5zIGEgc3RyaW5nIHRoYXQgZGVzY3JpYmVzIHdoeSBX
ZWJTb2NrZXQgaGFuZHNoYWtlCisgICAgICAgIGhhcyBmYWlsZWQuCisKIDIwMTEtMDUtMzEgIFlv
bmcgTGkgIDx5b2xpQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRl
eCAwYmU1NmUzNWE3ZTA1NmJjOTZjNjZmMmJhMWYxYjVhMTI2MGU0NTc0Li4zN2Q2YjhjNzZjMWZh
MjdmYmI0NjdhZTVmMGI3YmRkMDY3YTBkMTQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMzMCwxMSArMzMwLDExIEBAIGJvb2wgV2Vi
U29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcigpCiAgICAgICAgICAgICBMT0coTmV0d29yaywg
InJlbWFpbmluZyBpbiByZWFkIGJ1ZiAlbHUiLCBzdGF0aWNfY2FzdDx1bnNpZ25lZCBsb25nPiht
X2J1ZmZlclNpemUpKTsKICAgICAgICAgICAgIHJldHVybiBtX2J1ZmZlcjsKICAgICAgICAgfQor
ICAgICAgICBBU1NFUlQobV9oYW5kc2hha2UubW9kZSgpID09IFdlYlNvY2tldEhhbmRzaGFrZTo6
RmFpbGVkKTsKICAgICAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGNvbm5l
Y3Rpb24gZmFpbGVkIiwgdGhpcyk7CiAgICAgICAgIHNraXBCdWZmZXIoaGVhZGVyTGVuZ3RoKTsK
ICAgICAgICAgbV9zaG91bGREaXNjYXJkUmVjZWl2ZWREYXRhID0gdHJ1ZTsKLSAgICAgICAgaWYg
KCFtX2Nsb3NlZCkKLSAgICAgICAgICAgIG1faGFuZGxlLT5kaXNjb25uZWN0KCk7CisgICAgICAg
IGZhaWwobV9oYW5kc2hha2UuZmFpbHVyZVJlYXNvbigpKTsKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIH0KICAgICBpZiAobV9oYW5kc2hha2UubW9kZSgpICE9IFdlYlNvY2tldEhhbmRzaGFr
ZTo6Q29ubmVjdGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJT
b2NrZXRIYW5kc2hha2UuY3BwIGIvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRI
YW5kc2hha2UuY3BwCmluZGV4IDdlZGVjZGJmNDZmMTI1MjEwMDc4MzljYWI2MDU1ODI4MzMzMjA2
NzcuLjc0ZTQzNjE3NDYwMzYzM2UwMjUzMDZhNjA0ZmNkMGQzYzQzMjJhMjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0SGFuZHNoYWtlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5jcHAKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA5IEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuICBBbGwgcmlnaHRz
IHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSBSZXNlYXJjaCBJbiBNb3Rpb24gTGltaXRlZCAy
MDExLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dApAQCAtMzE5LDcgKzMx
OSw3IEBAIGludCBXZWJTb2NrZXRIYW5kc2hha2U6OnJlYWRTZXJ2ZXJIYW5kc2hha2UoY29uc3Qg
Y2hhciogaGVhZGVyLCBzaXplX3QgbGVuKQogICAgIGlmIChsaW5lTGVuZ3RoID09IC0xKQogICAg
ICAgICByZXR1cm4gLTE7CiAgICAgaWYgKHN0YXR1c0NvZGUgPT0gLTEpIHsKLSAgICAgICAgbV9t
b2RlID0gRmFpbGVkOworICAgICAgICBtX21vZGUgPSBGYWlsZWQ7IC8vIG1fZmFpbHVyZVJlYXNv
biBpcyBzZXQgaW5zaWRlIHJlYWRTdGF0dXNMaW5lKCkuCiAgICAgICAgIHJldHVybiBsZW47CiAg
ICAgfQogICAgIExPRyhOZXR3b3JrLCAicmVzcG9uc2UgY29kZTogJWQiLCBzdGF0dXNDb2RlKTsK
QEAgLTMyNyw3ICszMjcsNyBAQCBpbnQgV2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkU2VydmVySGFu
ZHNoYWtlKGNvbnN0IGNoYXIqIGhlYWRlciwgc2l6ZV90IGxlbikKICAgICBtX3Jlc3BvbnNlLnNl
dFN0YXR1c1RleHQoc3RhdHVzVGV4dCk7CiAgICAgaWYgKHN0YXR1c0NvZGUgIT0gMTAxKSB7CiAg
ICAgICAgIG1fbW9kZSA9IEZhaWxlZDsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiVW5leHBl
Y3RlZCByZXNwb25zZSBjb2RlOiAiICsgU3RyaW5nOjpudW1iZXIoc3RhdHVzQ29kZSksIDAsIGNs
aWVudE9yaWdpbigpLCAwKTsKKyAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIlVuZXhwZWN0ZWQg
cmVzcG9uc2UgY29kZTogIiArIFN0cmluZzo6bnVtYmVyKHN0YXR1c0NvZGUpOwogICAgICAgICBy
ZXR1cm4gbGVuOwogICAgIH0KICAgICBtX21vZGUgPSBOb3JtYWw7CkBAIC0zMzksNyArMzM5LDcg
QEAgaW50IFdlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFNlcnZlckhhbmRzaGFrZShjb25zdCBjaGFy
KiBoZWFkZXIsIHNpemVfdCBsZW4pCiAgICAgY29uc3QgY2hhciogcCA9IHJlYWRIVFRQSGVhZGVy
cyhoZWFkZXIgKyBsaW5lTGVuZ3RoLCBoZWFkZXIgKyBsZW4pOwogICAgIGlmICghcCkgewogICAg
ICAgICBMT0coTmV0d29yaywgInJlYWRIVFRQSGVhZGVycyBmYWlsZWQiKTsKLSAgICAgICAgbV9t
b2RlID0gRmFpbGVkOworICAgICAgICBtX21vZGUgPSBGYWlsZWQ7IC8vIG1fZmFpbHVyZVJlYXNv
biBpcyBzZXQgaW5zaWRlIHJlYWRIVFRQSGVhZGVycygpLgogICAgICAgICByZXR1cm4gbGVuOwog
ICAgIH0KICAgICBpZiAoIWNoZWNrUmVzcG9uc2VIZWFkZXJzKCkpIHsKQEAgLTM2Niw2ICszNjYs
MTEgQEAgV2ViU29ja2V0SGFuZHNoYWtlOjpNb2RlIFdlYlNvY2tldEhhbmRzaGFrZTo6bW9kZSgp
IGNvbnN0CiAgICAgcmV0dXJuIG1fbW9kZTsKIH0KIAorU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFr
ZTo6ZmFpbHVyZVJlYXNvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fZmFpbHVyZVJlYXNvbjsK
K30KKwogU3RyaW5nIFdlYlNvY2tldEhhbmRzaGFrZTo6c2VydmVyV2ViU29ja2V0T3JpZ2luKCkg
Y29uc3QKIHsKICAgICByZXR1cm4gbV9yZXNwb25zZS5oZWFkZXJGaWVsZHMoKS5nZXQoInNlYy13
ZWJzb2NrZXQtb3JpZ2luIik7CkBAIC00NDAsOCArNDQ1LDggQEAgaW50IFdlYlNvY2tldEhhbmRz
aGFrZTo6cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVyTGVu
Z3RoLAogICAgICAgICB9IGVsc2UgaWYgKCpwID09ICdcMCcpIHsKICAgICAgICAgICAgIC8vIFRo
ZSBjYWxsZXIgaXNuJ3QgcHJlcGFyZWQgdG8gZGVhbCB3aXRoIG51bGwgYnl0ZXMgaW4gc3RhdHVz
CiAgICAgICAgICAgICAvLyBsaW5lLiBXZWJTb2NrZXRzIHNwZWNpZmljYXRpb24gZG9lc24ndCBw
cm9oaWJpdCB0aGlzLCBidXQgSFRUUAotICAgICAgICAgICAgLy8gZG9lcywgc28gd2UnbGwganVz
dCB0cmVhdCB0aGlzIGFzIGFuIGVycm9yLiAKLSAgICAgICAgICAgIG1fY29udGV4dC0+YWRkTWVz
c2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwg
IlN0YXR1cyBsaW5lIGNvbnRhaW5zIGVtYmVkZGVkIG51bGwiLCAwLCBjbGllbnRPcmlnaW4oKSwg
MCk7CisgICAgICAgICAgICAvLyBkb2VzLCBzbyB3ZSdsbCBqdXN0IHRyZWF0IHRoaXMgYXMgYW4g
ZXJyb3IuCisgICAgICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiU3RhdHVzIGxpbmUgY29udGFp
bnMgZW1iZWRkZWQgbnVsbCI7CiAgICAgICAgICAgICByZXR1cm4gcCArIDEgLSBoZWFkZXI7CiAg
ICAgICAgIH0gZWxzZSBpZiAoKnAgPT0gJ1xuJykKICAgICAgICAgICAgIGJyZWFrOwpAQCAtNDUy
LDE4ICs0NTcsMTggQEAgaW50IFdlYlNvY2tldEhhbmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUoY29u
c3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVhZGVyTGVuZ3RoLAogICAgIGNvbnN0IGNoYXIqIGVu
ZCA9IHAgKyAxOwogICAgIGludCBsaW5lTGVuZ3RoID0gZW5kIC0gaGVhZGVyOwogICAgIGlmIChs
aW5lTGVuZ3RoID4gbWF4aW11bUxlbmd0aCkgewotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3Nh
Z2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJT
dGF0dXMgbGluZSBpcyB0b28gbG9uZyIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKKyAgICAgICAg
bV9mYWlsdXJlUmVhc29uID0gIlN0YXR1cyBsaW5lIGlzIHRvbyBsb25nIjsKICAgICAgICAgcmV0
dXJuIG1heGltdW1MZW5ndGg7CiAgICAgfQogCiAgICAgLy8gVGhlIGxpbmUgbXVzdCBlbmQgd2l0
aCAiXHJcbiIuCiAgICAgaWYgKGxpbmVMZW5ndGggPCAyIHx8ICooZW5kIC0gMikgIT0gJ1xyJykg
ewotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNz
YWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJTdGF0dXMgbGluZSBkb2VzIG5vdCBlbmQgd2l0
aCBDUkxGIiwgMCwgY2xpZW50T3JpZ2luKCksIDApOworICAgICAgICBtX2ZhaWx1cmVSZWFzb24g
PSAiU3RhdHVzIGxpbmUgZG9lcyBub3QgZW5kIHdpdGggQ1JMRiI7CiAgICAgICAgIHJldHVybiBs
aW5lTGVuZ3RoOwogICAgIH0KIAogICAgIGlmICghc3BhY2UxIHx8ICFzcGFjZTIpIHsKLSAgICAg
ICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUs
IEVycm9yTWVzc2FnZUxldmVsLCAiTm8gcmVzcG9uc2UgY29kZSBmb3VuZDogIiArIHRyaW1Db25z
b2xlTWVzc2FnZShoZWFkZXIsIGxpbmVMZW5ndGggLSAyKSwgMCwgY2xpZW50T3JpZ2luKCksIDAp
OworICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiTm8gcmVzcG9uc2UgY29kZSBmb3VuZDogIiAr
IHRyaW1Db25zb2xlTWVzc2FnZShoZWFkZXIsIGxpbmVMZW5ndGggLSAyKTsKICAgICAgICAgcmV0
dXJuIGxpbmVMZW5ndGg7CiAgICAgfQogCkBAIC00NzIsNyArNDc3LDcgQEAgaW50IFdlYlNvY2tl
dEhhbmRzaGFrZTo6cmVhZFN0YXR1c0xpbmUoY29uc3QgY2hhciogaGVhZGVyLCBzaXplX3QgaGVh
ZGVyTGVuZ3RoLAogICAgICAgICByZXR1cm4gbGluZUxlbmd0aDsKICAgICBmb3IgKGludCBpID0g
MDsgaSA8IDM7ICsraSkKICAgICAgICAgaWYgKHN0YXR1c0NvZGVTdHJpbmdbaV0gPCAnMCcgfHwg
c3RhdHVzQ29kZVN0cmluZ1tpXSA+ICc5JykgewotICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRN
ZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVs
LCAiSW52YWxpZCBzdGF0dXMgY29kZTogIiArIHN0YXR1c0NvZGVTdHJpbmcsIDAsIGNsaWVudE9y
aWdpbigpLCAwKTsKKyAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJJbnZhbGlkIHN0YXR1
cyBjb2RlOiAiICsgc3RhdHVzQ29kZVN0cmluZzsKICAgICAgICAgICAgIHJldHVybiBsaW5lTGVu
Z3RoOwogICAgICAgICB9CiAKQEAgLTUwMCwxMyArNTA1LDEzIEBAIGNvbnN0IGNoYXIqIFdlYlNv
Y2tldEhhbmRzaGFrZTo6cmVhZEhUVFBIZWFkZXJzKGNvbnN0IGNoYXIqIHN0YXJ0LCBjb25zdCBj
aGFyKiBlCiAgICAgICAgICAgICAgICAgaWYgKG5hbWUuaXNFbXB0eSgpKSB7CiAgICAgICAgICAg
ICAgICAgICAgIGlmIChwICsgMSA8IGVuZCAmJiAqKHAgKyAxKSA9PSAnXG4nKQogICAgICAgICAg
ICAgICAgICAgICAgICAgcmV0dXJuIHAgKyAyOwotICAgICAgICAgICAgICAgICAgICBtX2NvbnRl
eHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNz
YWdlTGV2ZWwsICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdl
KHAsIGVuZCAtIHApLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CisgICAgICAgICAgICAgICAgICAg
IG1fZmFpbHVyZVJlYXNvbiA9ICJDUiBkb2Vzbid0IGZvbGxvdyBMRiBhdCAiICsgdHJpbUNvbnNv
bGVNZXNzYWdlKHAsIGVuZCAtIHApOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gMDsKICAg
ICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiVW5leHBl
Y3RlZCBDUiBpbiBuYW1lIGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UobmFtZS5kYXRhKCksIG5h
bWUuc2l6ZSgpKSwgMCwgY2xpZW50T3JpZ2luKCksIDApOworICAgICAgICAgICAgICAgIG1fZmFp
bHVyZVJlYXNvbiA9ICJVbmV4cGVjdGVkIENSIGluIG5hbWUgYXQgIiArIHRyaW1Db25zb2xlTWVz
c2FnZShuYW1lLmRhdGEoKSwgbmFtZS5zaXplKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiAw
OwogICAgICAgICAgICAgY2FzZSAnXG4nOgotICAgICAgICAgICAgICAgIG1fY29udGV4dC0+YWRk
TWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZl
bCwgIlVuZXhwZWN0ZWQgTEYgaW4gbmFtZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKG5hbWUu
ZGF0YSgpLCBuYW1lLnNpemUoKSksIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKKyAgICAgICAgICAg
ICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiVW5leHBlY3RlZCBMRiBpbiBuYW1lIGF0ICIgKyB0cmlt
Q29uc29sZU1lc3NhZ2UobmFtZS5kYXRhKCksIG5hbWUuc2l6ZSgpKTsKICAgICAgICAgICAgICAg
ICByZXR1cm4gMDsKICAgICAgICAgICAgIGNhc2UgJzonOgogICAgICAgICAgICAgICAgIGJyZWFr
OwpAQCAtNTI3LDcgKzUzMiw3IEBAIGNvbnN0IGNoYXIqIFdlYlNvY2tldEhhbmRzaGFrZTo6cmVh
ZEhUVFBIZWFkZXJzKGNvbnN0IGNoYXIqIHN0YXJ0LCBjb25zdCBjaGFyKiBlCiAgICAgICAgICAg
ICBjYXNlICdccic6CiAgICAgICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgICAgICBjYXNlICdc
bic6Ci0gICAgICAgICAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJj
ZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiVW5leHBlY3RlZCBMRiBpbiB2
YWx1ZSBhdCAiICsgdHJpbUNvbnNvbGVNZXNzYWdlKHZhbHVlLmRhdGEoKSwgdmFsdWUuc2l6ZSgp
KSwgMCwgY2xpZW50T3JpZ2luKCksIDApOworICAgICAgICAgICAgICAgIG1fZmFpbHVyZVJlYXNv
biA9ICJVbmV4cGVjdGVkIExGIGluIHZhbHVlIGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UodmFs
dWUuZGF0YSgpLCB2YWx1ZS5zaXplKCkpOwogICAgICAgICAgICAgICAgIHJldHVybiAwOwogICAg
ICAgICAgICAgZGVmYXVsdDoKICAgICAgICAgICAgICAgICB2YWx1ZS5hcHBlbmQoKnApOwpAQCAt
NTM4LDE3ICs1NDMsMTcgQEAgY29uc3QgY2hhciogV2ViU29ja2V0SGFuZHNoYWtlOjpyZWFkSFRU
UEhlYWRlcnMoY29uc3QgY2hhciogc3RhcnQsIGNvbnN0IGNoYXIqIGUKICAgICAgICAgICAgIH0K
ICAgICAgICAgfQogICAgICAgICBpZiAocCA+PSBlbmQgfHwgKnAgIT0gJ1xuJykgewotICAgICAg
ICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiQ1IgZG9lc24ndCBmb2xsb3cgTEYgYWZ0ZXIgdmFsdWUg
YXQgIiArIHRyaW1Db25zb2xlTWVzc2FnZShwLCBlbmQgLSBwKSwgMCwgY2xpZW50T3JpZ2luKCks
IDApOworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkNSIGRvZXNuJ3QgZm9sbG93IExG
IGFmdGVyIHZhbHVlIGF0ICIgKyB0cmltQ29uc29sZU1lc3NhZ2UocCwgZW5kIC0gcCk7CiAgICAg
ICAgICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICBBdG9taWNTdHJpbmcgbmFtZVN0
ciA9IEF0b21pY1N0cmluZzo6ZnJvbVVURjgobmFtZS5kYXRhKCksIG5hbWUuc2l6ZSgpKTsKICAg
ICAgICAgU3RyaW5nIHZhbHVlU3RyID0gU3RyaW5nOjpmcm9tVVRGOCh2YWx1ZS5kYXRhKCksIHZh
bHVlLnNpemUoKSk7CiAgICAgICAgIGlmIChuYW1lU3RyLmlzTnVsbCgpKSB7Ci0gICAgICAgICAg
ICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdlVHlwZSwg
RXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04IHNlcXVlbmNlIGluIGhlYWRlciBuYW1l
IiwgMCwgY2xpZW50T3JpZ2luKCksIDApOworICAgICAgICAgICAgbV9mYWlsdXJlUmVhc29uID0g
IkludmFsaWQgVVRGLTggc2VxdWVuY2UgaW4gaGVhZGVyIG5hbWUiOwogICAgICAgICAgICAgcmV0
dXJuIDA7CiAgICAgICAgIH0KICAgICAgICAgaWYgKHZhbHVlU3RyLmlzTnVsbCgpKSB7Ci0gICAg
ICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNlLCBMb2dNZXNzYWdl
VHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJpbnZhbGlkIFVURi04IHNlcXVlbmNlIGluIGhlYWRl
ciB2YWx1ZSIsIDAsIGNsaWVudE9yaWdpbigpLCAwKTsKKyAgICAgICAgICAgIG1fZmFpbHVyZVJl
YXNvbiA9ICJJbnZhbGlkIFVURi04IHNlcXVlbmNlIGluIGhlYWRlciB2YWx1ZSI7CiAgICAgICAg
ICAgICByZXR1cm4gMDsKICAgICAgICAgfQogICAgICAgICBMT0coTmV0d29yaywgIm5hbWU9JXMg
dmFsdWU9JXMiLCBuYW1lU3RyLnN0cmluZygpLnV0ZjgoKS5kYXRhKCksIHZhbHVlU3RyLnV0Zjgo
KS5kYXRhKCkpOwpAQCAtNTY3LDQxICs1NzIsNDEgQEAgYm9vbCBXZWJTb2NrZXRIYW5kc2hha2U6
OmNoZWNrUmVzcG9uc2VIZWFkZXJzKCkKICAgICBjb25zdCBTdHJpbmcmIHNlcnZlckNvbm5lY3Rp
b24gPSB0aGlzLT5zZXJ2ZXJDb25uZWN0aW9uKCk7CiAKICAgICBpZiAoc2VydmVyVXBncmFkZS5p
c051bGwoKSkgewotICAgICAgICBtX2NvbnRleHQtPmFkZE1lc3NhZ2UoSlNNZXNzYWdlU291cmNl
LCBMb2dNZXNzYWdlVHlwZSwgRXJyb3JNZXNzYWdlTGV2ZWwsICJFcnJvciBkdXJpbmcgV2ViU29j
a2V0IGhhbmRzaGFrZTogJ1VwZ3JhZGUnIGhlYWRlciBpcyBtaXNzaW5nIiwgMCwgY2xpZW50T3Jp
Z2luKCksIDApOworICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNv
Y2tldCBoYW5kc2hha2U6ICdVcGdyYWRlJyBoZWFkZXIgaXMgbWlzc2luZyI7CiAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKHNlcnZlckNvbm5lY3Rpb24uaXNOdWxsKCkpIHsK
LSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hh
a2U6ICdDb25uZWN0aW9uJyBoZWFkZXIgaXMgbWlzc2luZyIsIDAsIGNsaWVudE9yaWdpbigpLCAw
KTsKKyAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFu
ZHNoYWtlOiAnQ29ubmVjdGlvbicgaGVhZGVyIGlzIG1pc3NpbmciOwogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIGlmIChzZXJ2ZXJXZWJTb2NrZXRPcmlnaW4uaXNOdWxsKCkpIHsK
LSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2Fn
ZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hh
a2U6ICdTZWMtV2ViU29ja2V0LU9yaWdpbicgaGVhZGVyIGlzIG1pc3NpbmciLCAwLCBjbGllbnRP
cmlnaW4oKSwgMCk7CisgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2Vi
U29ja2V0IGhhbmRzaGFrZTogJ1NlYy1XZWJTb2NrZXQtT3JpZ2luJyBoZWFkZXIgaXMgbWlzc2lu
ZyI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKHNlcnZlcldlYlNvY2tl
dExvY2F0aW9uLmlzTnVsbCgpKSB7Ci0gICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01l
c3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1
cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnU2VjLVdlYlNvY2tldC1Mb2NhdGlvbicgaGVhZGVy
IGlzIG1pc3NpbmciLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CisgICAgICAgIG1fZmFpbHVyZVJl
YXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogJ1NlYy1XZWJTb2NrZXQt
TG9jYXRpb24nIGhlYWRlciBpcyBtaXNzaW5nIjsKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IH0KIAogICAgIGlmICghZXF1YWxJZ25vcmluZ0Nhc2Uoc2VydmVyVXBncmFkZSwgIndlYnNvY2tl
dCIpKSB7Ci0gICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExv
Z01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQg
aGFuZHNoYWtlOiAnVXBncmFkZScgaGVhZGVyIHZhbHVlIGlzIG5vdCAnV2ViU29ja2V0JyIsIDAs
IGNsaWVudE9yaWdpbigpLCAwKTsKKyAgICAgICAgbV9mYWlsdXJlUmVhc29uID0gIkVycm9yIGR1
cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnVXBncmFkZScgaGVhZGVyIHZhbHVlIGlzIG5vdCAn
V2ViU29ja2V0JyI7CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFlcXVh
bElnbm9yaW5nQ2FzZShzZXJ2ZXJDb25uZWN0aW9uLCAidXBncmFkZSIpKSB7Ci0gICAgICAgIG1f
Y29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3VyY2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJv
ck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJTb2NrZXQgaGFuZHNoYWtlOiAnQ29ubmVj
dGlvbicgaGVhZGVyIHZhbHVlIGlzIG5vdCAnVXBncmFkZSciLCAwLCBjbGllbnRPcmlnaW4oKSwg
MCk7CisgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhh
bmRzaGFrZTogJ0Nvbm5lY3Rpb24nIGhlYWRlciB2YWx1ZSBpcyBub3QgJ1VwZ3JhZGUnIjsKICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KIAogICAgIGlmIChjbGllbnRPcmlnaW4oKSAhPSBz
ZXJ2ZXJXZWJTb2NrZXRPcmlnaW4pIHsKLSAgICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpT
TWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3Ig
ZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6IG9yaWdpbiBtaXNtYXRjaDogIiArIGNsaWVudE9y
aWdpbigpICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0T3JpZ2luLCAwLCBjbGllbnRPcmlnaW4o
KSwgMCk7CisgICAgICAgIG1fZmFpbHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0
IGhhbmRzaGFrZTogb3JpZ2luIG1pc21hdGNoOiAiICsgY2xpZW50T3JpZ2luKCkgKyAiICE9ICIg
KyBzZXJ2ZXJXZWJTb2NrZXRPcmlnaW47CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAg
ICAgaWYgKGNsaWVudExvY2F0aW9uKCkgIT0gc2VydmVyV2ViU29ja2V0TG9jYXRpb24pIHsKLSAg
ICAgICAgbV9jb250ZXh0LT5hZGRNZXNzYWdlKEpTTWVzc2FnZVNvdXJjZSwgTG9nTWVzc2FnZVR5
cGUsIEVycm9yTWVzc2FnZUxldmVsLCAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5kc2hha2U6
IGxvY2F0aW9uIG1pc21hdGNoOiAiICsgY2xpZW50TG9jYXRpb24oKSArICIgIT0gIiArIHNlcnZl
cldlYlNvY2tldExvY2F0aW9uLCAwLCBjbGllbnRPcmlnaW4oKSwgMCk7CisgICAgICAgIG1fZmFp
bHVyZVJlYXNvbiA9ICJFcnJvciBkdXJpbmcgV2ViU29ja2V0IGhhbmRzaGFrZTogbG9jYXRpb24g
bWlzbWF0Y2g6ICIgKyBjbGllbnRMb2NhdGlvbigpICsgIiAhPSAiICsgc2VydmVyV2ViU29ja2V0
TG9jYXRpb247CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgaWYgKCFtX2NsaWVu
dFByb3RvY29sLmlzRW1wdHkoKSAmJiBtX2NsaWVudFByb3RvY29sICE9IHNlcnZlcldlYlNvY2tl
dFByb3RvY29sKSB7Ci0gICAgICAgIG1fY29udGV4dC0+YWRkTWVzc2FnZShKU01lc3NhZ2VTb3Vy
Y2UsIExvZ01lc3NhZ2VUeXBlLCBFcnJvck1lc3NhZ2VMZXZlbCwgIkVycm9yIGR1cmluZyBXZWJT
b2NrZXQgaGFuZHNoYWtlOiBwcm90b2NvbCBtaXNtYXRjaDogIiArIG1fY2xpZW50UHJvdG9jb2wg
KyAiICE9ICIgKyBzZXJ2ZXJXZWJTb2NrZXRQcm90b2NvbCwgMCwgY2xpZW50T3JpZ2luKCksIDAp
OworICAgICAgICBtX2ZhaWx1cmVSZWFzb24gPSAiRXJyb3IgZHVyaW5nIFdlYlNvY2tldCBoYW5k
c2hha2U6IHByb3RvY29sIG1pc21hdGNoOiAiICsgbV9jbGllbnRQcm90b2NvbCArICIgIT0gIiAr
IHNlcnZlcldlYlNvY2tldFByb3RvY29sOwogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
ICAgIHJldHVybiB0cnVlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9X
ZWJTb2NrZXRIYW5kc2hha2UuaCBiL1NvdXJjZS9XZWJDb3JlL3dlYnNvY2tldHMvV2ViU29ja2V0
SGFuZHNoYWtlLmgKaW5kZXggOTA5MTZhN2RmMGE3OGExZGVlMmZmN2NmZWIwNGI3ZjNjODI0OWI5
NC4uNTU1NmVlZjUxNDcxMjc0YmQ0MTg1OTkzY2Q4NmY2MzMwYmJlMjY1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd2Vic29ja2V0cy9XZWJTb2NrZXRIYW5kc2hha2UuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93ZWJzb2NrZXRzL1dlYlNvY2tldEhhbmRzaGFrZS5oCkBAIC03MSw2ICs3MSw3
IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogICAgICAgICBpbnQgcmVhZFNlcnZlckhhbmRzaGFr
ZShjb25zdCBjaGFyKiBoZWFkZXIsIHNpemVfdCBsZW4pOwogICAgICAgICBNb2RlIG1vZGUoKSBj
b25zdDsKKyAgICAgICAgU3RyaW5nIGZhaWx1cmVSZWFzb24oKSBjb25zdDsgLy8gUmV0dXJucyBh
IHN0cmluZyBpbmRpY2F0aW5nIHRoZSByZWFzb24gb2YgZmFpbHVyZSBpZiBtb2RlKCkgPT0gRmFp
bGVkLgogCiAgICAgICAgIFN0cmluZyBzZXJ2ZXJXZWJTb2NrZXRPcmlnaW4oKSBjb25zdDsKICAg
ICAgICAgU3RyaW5nIHNlcnZlcldlYlNvY2tldExvY2F0aW9uKCkgY29uc3Q7CkBAIC0xMDUsNiAr
MTA2LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB1bnNpZ25lZCBjaGFyIG1fZXhw
ZWN0ZWRDaGFsbGVuZ2VSZXNwb25zZVsxNl07CiAKICAgICAgICAgV2ViU29ja2V0SGFuZHNoYWtl
UmVzcG9uc2UgbV9yZXNwb25zZTsKKworICAgICAgICBTdHJpbmcgbV9mYWlsdXJlUmVhc29uOwog
ICAgIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
</data>

          </attachment>
      

    </bug>

</bugzilla>