<?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>118468</bug_id>
          
          <creation_ts>2013-07-08 05:54:32 -0700</creation_ts>
          <short_desc>[Curl] Download fails for certain urls.</short_desc>
          <delta_ts>2013-07-22 09:34:02 -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>PC</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>Curl</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>0</everconfirmed>
          <reporter>peavo</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>galpeter</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>906753</commentid>
    <comment_count>0</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-07-08 05:54:32 -0700</bug_when>
    <thetext>The current Curl download implementation has a few shortcomings:

1) Downloading from secure locations fails. We need to provide Curl with the path to a certificate file (.pem file).

2) Cookies are not set in the download request. We need to give Curl the path to the cookie file.

3) When a normal load is converted to a download, some of the headers from the original request is not sent (e.g. Referer, User agent).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>906871</commentid>
    <comment_count>1</comment_count>
      <attachid>206260</attachid>
    <who name="">peavo</who>
    <bug_when>2013-07-08 10:58:45 -0700</bug_when>
    <thetext>Created attachment 206260
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910507</commentid>
    <comment_count>2</comment_count>
      <attachid>206260</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-07-20 18:21:16 -0700</bug_when>
    <thetext>Comment on attachment 206260
Patch

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

Looks good.  Please address my minor comments when you land!

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:352
&gt; +            String value = it-&gt;value;

This could be a const reference to avoid a copy.

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:353
&gt; +            String headerString(key);

You convert an AtomicString to a String in 351, then make a copy here.  Why not just do &quot;String headerString(it-&gt;key);&quot;?

&gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:405
&gt; +    writeDataToFile(static_cast&lt;char*&gt;(data), size);

Why are you casting to a char*?  The function signature is &quot;const char*&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910683</commentid>
    <comment_count>3</comment_count>
      <attachid>207250</attachid>
    <who name="">peavo</who>
    <bug_when>2013-07-22 08:49:09 -0700</bug_when>
    <thetext>Created attachment 207250
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910684</commentid>
    <comment_count>4</comment_count>
    <who name="">peavo</who>
    <bug_when>2013-07-22 08:51:31 -0700</bug_when>
    <thetext>(In reply to comment #2)

Thanks for reviewing! Updated patch accordingly.

&gt; (From update of attachment 206260 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=206260&amp;action=review
&gt; 
&gt; Looks good.  Please address my minor comments when you land!
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:352
&gt; &gt; +            String value = it-&gt;value;
&gt; 
&gt; This could be a const reference to avoid a copy.
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:353
&gt; &gt; +            String headerString(key);
&gt; 
&gt; You convert an AtomicString to a String in 351, then make a copy here.  Why not just do &quot;String headerString(it-&gt;key);&quot;?
&gt; 
&gt; &gt; Source/WebCore/platform/network/curl/CurlDownload.cpp:405
&gt; &gt; +    writeDataToFile(static_cast&lt;char*&gt;(data), size);
&gt; 
&gt; Why are you casting to a char*?  The function signature is &quot;const char*&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910685</commentid>
    <comment_count>5</comment_count>
      <attachid>207250</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2013-07-22 08:51:38 -0700</bug_when>
    <thetext>Comment on attachment 207250
Patch

Nice work!  r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910700</commentid>
    <comment_count>6</comment_count>
      <attachid>207250</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-22 09:34:00 -0700</bug_when>
    <thetext>Comment on attachment 207250
Patch

Clearing flags on attachment: 207250

Committed r152976: &lt;http://trac.webkit.org/changeset/152976&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>910701</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-07-22 09:34:02 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>206260</attachid>
            <date>2013-07-08 10:58:45 -0700</date>
            <delta_ts>2013-07-22 08:49:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118468-20130708195628.patch</filename>
            <type>text/plain</type>
            <size>10204</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1MjQ0OSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA3LTA4ICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBEb3dubG9h
ZCBmYWlscyBmb3IgY2VydGFpbiB1cmxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgQ3VybCBkb3dubG9hZCBpbXBsZW1lbnRhdGlv
biBoYXMgYSBmZXcgc2hvcnRjb21pbmdzOgorICAgICAgICAxKSBEb3dubG9hZGluZyBmcm9tIHNl
Y3VyZSBsb2NhdGlvbnMgZmFpbHMuIFdlIG5lZWQgdG8gcHJvdmlkZSBDdXJsIHdpdGggdGhlIHBh
dGggdG8gYSBjZXJ0aWZpY2F0ZSBmaWxlICgucGVtIGZpbGUpLgorICAgICAgICAyKSBDb29raWVz
IGFyZSBub3Qgc2V0IGluIHRoZSBkb3dubG9hZCByZXF1ZXN0LiBXZSBuZWVkIHRvIGdpdmUgQ3Vy
bCB0aGUgcGF0aCB0byB0aGUgY29va2llIGZpbGUuCisgICAgICAgIDMpIFdoZW4gYSBub3JtYWwg
bG9hZCBpcyBjb252ZXJ0ZWQgdG8gYSBkb3dubG9hZCwgc29tZSBvZiB0aGUgaGVhZGVycyBmcm9t
IHRoZSBvcmlnaW5hbCByZXF1ZXN0IGlzIG5vdCBzZW50IChlLmcuIFJlZmVyZXIsIFVzZXIgYWdl
bnQpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OkN1cmxEb3dubG9hZCk6IEluaXRpYWxp
emUgY3VzdG9tIGhlYWRlcnMgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
Ojp+Q3VybERvd25sb2FkKTogRnJlZSBjdXN0b20gaGVhZGVycyBtZW1iZXIuCisgICAgICAgIChX
ZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmluaXQpOiBTZXQgY2VydGlmaWNhdGUgYW5kIGNvb2tpZSBm
aWxlIHBhdGguCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSk6IENo
ZWNrIGZpbGUgaGFuZGxlIGFnYWluc3QgdmFsdWUgZm9yIGludmFsaWQgcGxhdGZvcm0gaGFuZGxl
LgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjp3cml0ZURhdGFUb0ZpbGUpOiBBZGRl
ZCB1dGlsaXR5IG1ldGhvZCB0byB3cml0ZSBkb3dubG9hZCBkYXRhIHRvIGZpbGUuCisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMpOiBBZGRlZCB1dGlsaXR5IG1ldGhv
ZCB0byBhZGQgaGVhZGVycyB0byByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkOjpkaWRSZWNlaXZlRGF0YSk6IFVzZSB3cml0ZURhdGFUb0ZpbGUgdXRpbGl0eSBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oOgorICAgICAg
ICBQdXQgY2xhc3MgaW4gV2ViQ29yZSBuYW1lc3BhY2UuCisgICAgICAgIEFkZGVkIG1ldGhvZCB0
byBpbml0IGRvd25sb2FkIGZyb20gcmVzb3VyY2UgaGFuZGxlLCByZXF1ZXN0LCBhbmQgcmVzcG9u
c2Ugb2JqZWN0LgorICAgICAgICBBZGRlZCB1dGlsaXR5IG1ldGhvZCB0byB3cml0ZSBkb3dubG9h
ZCBkYXRhIHRvIGZpbGUuCisgICAgICAgIEFkZGVkIHV0aWxpdHkgbWV0aG9kIHRvIGFkZCBoZWFk
ZXJzIHRvIHJlcXVlc3QuCisgICAgICAgIEFkZGVkIGN1c3RvbSBoZWFkZXJzIG1lbWJlci4KKwog
MjAxMy0wNy0wOCAgw4Fkw6FtIEthbGxhaSAgPGthZGFtQGluZi51LXN6ZWdlZC5odT4KIAogICAg
ICAgICBbUXRdIEluY3JlbWVudGFsIGJ1aWxkIGZpeCBhZnRlciByMTQ1NzEyLgpJbmRleDogU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9h
ZC5jcHAJKHJldmlzaW9uIDE1MjQ0MCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2ICsyOCw3IEBA
CiAKICNpbmNsdWRlIDxXZWJDb3JlL0hUVFBQYXJzZXJzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9N
YWluVGhyZWFkVGFzay5oPgorI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXF1ZXN0Lmg+CiAK
ICNpbmNsdWRlIDx3dGYvTWFpblRocmVhZC5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcu
aD4KQEAgLTM3LDYgKzM4LDggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiB0ZW1wbGF0ZTw+
IHN0cnVjdCBDcm9zc1RocmVhZENvcGllckJhc2U8ZmFsc2UsIGZhbHNlLCBDdXJsRG93bmxvYWQq
PiA6IHB1YmxpYyBDcm9zc1RocmVhZENvcGllclBhc3NUaHJvdWdoPEN1cmxEb3dubG9hZCo+IHsK
IH07CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogLy8gQ3VybERvd25sb2FkTWFuYWdlciAtLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tCiAKIEN1cmxEb3dubG9hZE1hbmFnZXI6OkN1cmxEb3dubG9hZE1hbmFnZXIoKQpAQCAt
MjEzLDYgKzIxNiw3IEBAIEN1cmxEb3dubG9hZE1hbmFnZXIgQ3VybERvd25sb2FkOjptX2Rvd24K
IAogQ3VybERvd25sb2FkOjpDdXJsRG93bmxvYWQoKQogOiBtX2N1cmxIYW5kbGUoMCkKKywgbV9j
dXN0b21IZWFkZXJzKDApCiAsIG1fdXJsKDApCiAsIG1fdGVtcEhhbmRsZShpbnZhbGlkUGxhdGZv
cm1GaWxlSGFuZGxlKQogLCBtX2RlbGV0ZXNGaWxlVXBvbkZhaWx1cmUoZmFsc2UpCkBAIC0yMjcs
NiArMjMxLDkgQEAgQ3VybERvd25sb2FkOjp+Q3VybERvd25sb2FkKCkKICAgICBpZiAobV91cmwp
CiAgICAgICAgIGZhc3RGcmVlKG1fdXJsKTsKIAorICAgIGlmIChtX2N1c3RvbUhlYWRlcnMpCisg
ICAgICAgIGN1cmxfc2xpc3RfZnJlZV9hbGwobV9jdXN0b21IZWFkZXJzKTsKKwogICAgIGNsb3Nl
RmlsZSgpOwogICAgIG1vdmVGaWxlVG9EZXN0aW5hdGlvbigpOwogfQpAQCAtMjUzLDkgKzI2MCwz
MSBAQCB2b2lkIEN1cmxEb3dubG9hZDo6aW5pdChDdXJsRG93bmxvYWRMaXN0CiAgICAgY3VybF9l
YXN5X3NldG9wdChtX2N1cmxIYW5kbGUsIENVUkxPUFRfTUFYUkVESVJTLCAxMCk7CiAgICAgY3Vy
bF9lYXN5X3NldG9wdChtX2N1cmxIYW5kbGUsIENVUkxPUFRfSFRUUEFVVEgsIENVUkxBVVRIX0FO
WSk7CiAKKyAgICBjb25zdCBjaGFyKiBjZXJ0UGF0aCA9IGdldGVudigiQ1VSTF9DQV9CVU5ETEVf
UEFUSCIpOworICAgIGlmIChjZXJ0UGF0aCkKKyAgICAgICAgY3VybF9lYXN5X3NldG9wdChtX2N1
cmxIYW5kbGUsIENVUkxPUFRfQ0FJTkZPLCBjZXJ0UGF0aCk7CisKKyAgICBjb25zdCBjaGFyKiBj
b29raWVKYXJQYXRoID0gZ2V0ZW52KCJDVVJMX0NPT0tJRV9KQVJfUEFUSCIpOworICAgIGlmIChj
b29raWVKYXJQYXRoKQorICAgICAgICBjdXJsX2Vhc3lfc2V0b3B0KG1fY3VybEhhbmRsZSwgQ1VS
TE9QVF9DT09LSUVGSUxFLCBjb29raWVKYXJQYXRoKTsKKwogICAgIG1fbGlzdGVuZXIgPSBsaXN0
ZW5lcjsKIH0KIAordm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3VybERvd25sb2FkTGlzdGVuZXIq
IGxpc3RlbmVyLCBSZXNvdXJjZUhhbmRsZSosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVz
dCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpCit7CisgICAgaWYgKCFsaXN0ZW5lcikKKyAgICAg
ICAgcmV0dXJuOworCisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1fbXV0ZXgpOworCisgICAgS1VS
TCB1cmwoUGFyc2VkVVJMU3RyaW5nLCByZXF1ZXN0LnVybCgpKTsKKworICAgIGluaXQobGlzdGVu
ZXIsIHVybCk7CisKKyAgICBhZGRIZWFkZXJzKHJlcXVlc3QpOworfQorCiBib29sIEN1cmxEb3du
bG9hZDo6c3RhcnQoKQogewogICAgIHJldHVybiBtX2Rvd25sb2FkTWFuYWdlci5hZGQobV9jdXJs
SGFuZGxlKTsKQEAgLTI4OCw3ICszMTcsNyBAQCB2b2lkIEN1cmxEb3dubG9hZDo6Y2xvc2VGaWxl
KCkKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CiAKLSAgICBpZiAobV90ZW1w
SGFuZGxlKSB7CisgICAgaWYgKG1fdGVtcEhhbmRsZSAhPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFu
ZGxlKSB7CiAgICAgICAgIFdlYkNvcmU6OmNsb3NlRmlsZShtX3RlbXBIYW5kbGUpOwogICAgICAg
ICBtX3RlbXBIYW5kbGUgPSBpbnZhbGlkUGxhdGZvcm1GaWxlSGFuZGxlOwogICAgIH0KQEAgLTMw
Miw2ICszMzEsNDQgQEAgdm9pZCBDdXJsRG93bmxvYWQ6Om1vdmVGaWxlVG9EZXN0aW5hdGlvbgog
ICAgIDo6TW92ZUZpbGUobV90ZW1wUGF0aC5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigp
LmRhdGEoKSwgbV9kZXN0aW5hdGlvbi5jaGFyYWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRh
dGEoKSk7CiB9CiAKK3ZvaWQgQ3VybERvd25sb2FkOjp3cml0ZURhdGFUb0ZpbGUoY29uc3QgY2hh
ciogZGF0YSwgaW50IHNpemUpCit7CisgICAgaWYgKG1fdGVtcFBhdGguaXNFbXB0eSgpKQorICAg
ICAgICBtX3RlbXBQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoImRvd25sb2FkIiwgbV90ZW1wSGFu
ZGxlKTsKKworICAgIGlmIChtX3RlbXBIYW5kbGUgIT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZSkKKyAgICAgICAgd3JpdGVUb0ZpbGUobV90ZW1wSGFuZGxlLCBkYXRhLCBzaXplKTsKK30KKwor
dm9pZCBDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1
ZXN0KQoreworICAgIGlmIChyZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKS5zaXplKCkgPiAwKSB7
CisgICAgICAgIHN0cnVjdCBjdXJsX3NsaXN0KiBoZWFkZXJzID0gMDsKKworICAgICAgICBIVFRQ
SGVhZGVyTWFwIGN1c3RvbUhlYWRlcnMgPSByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKTsKKyAg
ICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3IgZW5kID0gY3VzdG9tSGVhZGVycy5l
bmQoKTsKKyAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpjb25zdF9pdGVyYXRvciBpdCA9IGN1
c3RvbUhlYWRlcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0KSB7CisgICAgICAgICAgICBTdHJp
bmcga2V5ID0gaXQtPmtleTsKKyAgICAgICAgICAgIFN0cmluZyB2YWx1ZSA9IGl0LT52YWx1ZTsK
KyAgICAgICAgICAgIFN0cmluZyBoZWFkZXJTdHJpbmcoa2V5KTsKKyAgICAgICAgICAgIGlmICh2
YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSA7IHRvIHRlbGwg
Y3VybCB0aGF0IHRoaXMgaGVhZGVyIGhhcyBhbiBlbXB0eSB2YWx1ZS4KKyAgICAgICAgICAgICAg
ICBoZWFkZXJTdHJpbmcuYXBwZW5kKCI7Iik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAg
ICAgICAgICBoZWFkZXJTdHJpbmcuYXBwZW5kKCI6ICIpOworICAgICAgICAgICAgICAgIGhlYWRl
clN0cmluZy5hcHBlbmQodmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ1N0cmlu
ZyBoZWFkZXJMYXRpbjEgPSBoZWFkZXJTdHJpbmcubGF0aW4xKCk7CisgICAgICAgICAgICBoZWFk
ZXJzID0gY3VybF9zbGlzdF9hcHBlbmQoaGVhZGVycywgaGVhZGVyTGF0aW4xLmRhdGEoKSk7Cisg
ICAgICAgIH0KKworICAgICAgICBpZiAoaGVhZGVycykgeworICAgICAgICAgICAgY3VybF9lYXN5
X3NldG9wdChtX2N1cmxIYW5kbGUsIENVUkxPUFRfSFRUUEhFQURFUiwgaGVhZGVycyk7CisgICAg
ICAgICAgICBtX2N1c3RvbUhlYWRlcnMgPSBoZWFkZXJzOworICAgICAgICB9CisgICAgfQorfQor
CiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRl
cikKIHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CkBAIC0zMzUsMTMgKzQwMiw3
IEBAIHZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSh2b2lkKgogCiAgICAgY2FsbE9u
TWFpblRocmVhZDxDdXJsRG93bmxvYWQqLCBDdXJsRG93bmxvYWQqLCBpbnQsIGludD4ocmVjZWl2
ZWREYXRhQ2FsbGJhY2ssIHRoaXMsIHNpemUpOwogCi0gICAgaWYgKG1fdGVtcFBhdGguaXNFbXB0
eSgpKQotICAgICAgICBtX3RlbXBQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoImRvd25sb2FkIiwg
bV90ZW1wSGFuZGxlKTsKLQotICAgIGlmIChtX3RlbXBIYW5kbGUgIT0gaW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZSkgewotICAgICAgICBjb25zdCBjaGFyKiBmaWxlRGF0YSA9IHN0YXRpY19jYXN0
PGNvbnN0IGNoYXIqPihkYXRhKTsKLSAgICAgICAgd3JpdGVUb0ZpbGUobV90ZW1wSGFuZGxlLCBm
aWxlRGF0YSwgc2l6ZSk7Ci0gICAgfQorICAgIHdyaXRlRGF0YVRvRmlsZShzdGF0aWNfY2FzdDxj
aGFyKj4oZGF0YSksIHNpemUpOwogfQogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZVJl
c3BvbnNlKCkKQEAgLTQyNSwzICs0ODYsNSBAQCB2b2lkIEN1cmxEb3dubG9hZDo6cmVjZWl2ZWRS
ZXNwb25zZUNhbGxiCiAgICAgaWYgKGRvd25sb2FkKQogICAgICAgICBkb3dubG9hZC0+ZGlkUmVj
ZWl2ZVJlc3BvbnNlKCk7CiB9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25l
dHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgJKHJldmlzaW9uIDE1MjQ0MCkKKysr
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAkod29y
a2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDdXJsRG93bmxvYWRfaAogCiAj
aW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNvdXJj
ZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogCiAjaWYg
UExBVEZPUk0oV0lOKQpAQCAtMzYsNiArMzcsOCBAQAogCiAjaW5jbHVkZSA8Y3VybC9jdXJsLmg+
CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogY2xhc3MgQ3VybERvd25sb2FkTWFuYWdlciB7CiBw
dWJsaWM6CiAgICAgQ3VybERvd25sb2FkTWFuYWdlcigpOwpAQCAtODcsNiArOTAsOCBAQCBwdWJs
aWM6CiAgICAgfkN1cmxEb3dubG9hZCgpOwogCiAgICAgdm9pZCBpbml0KEN1cmxEb3dubG9hZExp
c3RlbmVyKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOworICAgIHZvaWQgaW5pdChDdXJsRG93bmxv
YWRMaXN0ZW5lciosIFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiwgY29u
c3QgUmVzb3VyY2VSZXNwb25zZSYpOworCiAgICAgYm9vbCBzdGFydCgpOwogICAgIGJvb2wgY2Fu
Y2VsKCk7CiAKQEAgLTEwMiw2ICsxMDcsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZvaWQg
Y2xvc2VGaWxlKCk7CiAgICAgdm9pZCBtb3ZlRmlsZVRvRGVzdGluYXRpb24oKTsKKyAgICB2b2lk
IHdyaXRlRGF0YVRvRmlsZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSk7CisKKyAgICB2b2lk
IGFkZEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICAvLyBDYWxsZWQgb24g
ZG93bmxvYWQgdGhyZWFkLgogICAgIHZvaWQgZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcm
IGhlYWRlcik7CkBAIC0xMjIsNiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9pZCBy
ZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2soQ3VybERvd25sb2FkKik7CiAKICAgICBDVVJMKiBtX2N1
cmxIYW5kbGU7CisgICAgc3RydWN0IGN1cmxfc2xpc3QqIG1fY3VzdG9tSGVhZGVyczsKICAgICBj
aGFyKiBtX3VybDsKICAgICBTdHJpbmcgbV90ZW1wUGF0aDsKICAgICBTdHJpbmcgbV9kZXN0aW5h
dGlvbjsKQEAgLTEzNiw0ICsxNDUsNiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBDdXJs
RG93bmxvYWRNYW5hZ2VyOwogfTsKIAorfQorCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJLaXQv
d2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDE1MjQ0OSkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29ya2lu
ZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA3LTA4ICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBEb3dubG9hZCBmYWlscyBmb3Ig
Y2VydGFpbiB1cmxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTE4NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgSW5pdGlhbGl6ZSBkb3dubG9hZCBmcm9tIHByb3ZpZGVkIHJlc291cmNlIGhhbmRsZSwg
cmVxdWVzdCwgYW5kIHJlc3BvbnNlIG9iamVjdC4KKworICAgICAgICAqIFdlYkRvd25sb2FkLmg6
IFVzZSBXZWJDb3JlIG5hbWVzcGFjZSBmb3IgQ3VybCBkb3dubG9hZCBjbGFzcy4KKyAgICAgICAg
KiBXZWJEb3dubG9hZEN1cmwuY3BwOgorICAgICAgICAoV2ViRG93bmxvYWQ6OmluaXQpOiBJbml0
aWFsaXplIGRvd25sb2FkIGZyb20gcHJvdmlkZWQgcmVzb3VyY2UgaGFuZGxlLCByZXF1ZXN0LCBh
bmQgcmVzcG9uc2Ugb2JqZWN0LgorCiAyMDEzLTA3LTAxICBKb2NoZW4gRWlzaW5nZXIgIDxqb2No
ZW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBjb25zdW1hYmxl
IHVzZXIgZ2VzdHVyZXMKSW5kZXg6IFNvdXJjZS9XZWJLaXQvd2luL1dlYkRvd25sb2FkLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdC93aW4vV2ViRG93bmxvYWQuaAkocmV2aXNpb24gMTUy
NDQwKQorKysgU291cmNlL1dlYktpdC93aW4vV2ViRG93bmxvYWQuaAkod29ya2luZyBjb3B5KQpA
QCAtNDgsNyArNDgsNyBAQCBjbGFzcyBXZWJEb3dubG9hZAogOiBwdWJsaWMgSVdlYkRvd25sb2Fk
CiAsIHB1YmxpYyBJV2ViVVJMQXV0aGVudGljYXRpb25DaGFsbGVuZ2VTZW5kZXIKICNpZiBVU0Uo
Q1VSTCkKLSwgcHVibGljIEN1cmxEb3dubG9hZExpc3RlbmVyCissIHB1YmxpYyBXZWJDb3JlOjpD
dXJsRG93bmxvYWRMaXN0ZW5lcgogI2VuZGlmCiB7CiBwdWJsaWM6CkBAIC0xNDEsNyArMTQxLDcg
QEAgcHJvdGVjdGVkOgogI2lmIFVTRShDRk5FVFdPUkspCiAgICAgUmV0YWluUHRyPENGVVJMRG93
bmxvYWRSZWY+IG1fZG93bmxvYWQ7CiAjZWxpZiBVU0UoQ1VSTCkKLSAgICBDdXJsRG93bmxvYWQg
bV9kb3dubG9hZDsKKyAgICBXZWJDb3JlOjpDdXJsRG93bmxvYWQgbV9kb3dubG9hZDsKICNlbmRp
ZgogICAgIENPTVB0cjxJV2ViTXV0YWJsZVVSTFJlcXVlc3Q+IG1fcmVxdWVzdDsKICAgICBDT01Q
dHI8SVdlYkRvd25sb2FkRGVsZWdhdGU+IG1fZGVsZWdhdGU7CkluZGV4OiBTb3VyY2UvV2ViS2l0
L3dpbi9XZWJEb3dubG9hZEN1cmwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkRvd25sb2FkQ3VybC5jcHAJKHJldmlzaW9uIDE1MjQ0MCkKKysrIFNvdXJjZS9XZWJLaXQv
d2luL1dlYkRvd25sb2FkQ3VybC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY3LDkgKzY3LDcgQEAg
dm9pZCBXZWJEb3dubG9hZDo6aW5pdChSZXNvdXJjZUhhbmRsZSogaAogCiAgICAgbV9kZWxlZ2F0
ZSA9IGRlbGVnYXRlOwogCi0gICAgS1VSTCB1cmwoUGFyc2VkVVJMU3RyaW5nLCByZXF1ZXN0LnVy
bCgpKTsKLQotICAgIG1fZG93bmxvYWQuaW5pdCh0aGlzLCB1cmwpOworICAgIG1fZG93bmxvYWQu
aW5pdCh0aGlzLCBoYW5kbGUsIHJlcXVlc3QsIHJlc3BvbnNlKTsKIAogICAgIHN0YXJ0KCk7CiB9
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>207250</attachid>
            <date>2013-07-22 08:49:09 -0700</date>
            <delta_ts>2013-07-22 09:34:00 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-118468-20130722174905.patch</filename>
            <type>text/plain</type>
            <size>10292</size>
            <attacher>peavo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDE1Mjk3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDMwIEBACisyMDEzLTA3LTIyICBwZWF2b0Bv
dXRsb29rLmNvbSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBEb3dubG9h
ZCBmYWlscyBmb3IgY2VydGFpbiB1cmxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MTE4NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVGhlIGN1cnJlbnQgQ3VybCBkb3dubG9hZCBpbXBsZW1lbnRhdGlv
biBoYXMgYSBmZXcgc2hvcnRjb21pbmdzOgorICAgICAgICAxKSBEb3dubG9hZGluZyBmcm9tIHNl
Y3VyZSBsb2NhdGlvbnMgZmFpbHMuIFdlIG5lZWQgdG8gcHJvdmlkZSBDdXJsIHdpdGggdGhlIHBh
dGggdG8gYSBjZXJ0aWZpY2F0ZSBmaWxlICgucGVtIGZpbGUpLgorICAgICAgICAyKSBDb29raWVz
IGFyZSBub3Qgc2V0IGluIHRoZSBkb3dubG9hZCByZXF1ZXN0LiBXZSBuZWVkIHRvIGdpdmUgQ3Vy
bCB0aGUgcGF0aCB0byB0aGUgY29va2llIGZpbGUuCisgICAgICAgIDMpIFdoZW4gYSBub3JtYWwg
bG9hZCBpcyBjb252ZXJ0ZWQgdG8gYSBkb3dubG9hZCwgc29tZSBvZiB0aGUgaGVhZGVycyBmcm9t
IHRoZSBvcmlnaW5hbCByZXF1ZXN0IGlzIG5vdCBzZW50IChlLmcuIFJlZmVyZXIsIFVzZXIgYWdl
bnQpLgorCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OkN1cmxEb3dubG9hZCk6IEluaXRpYWxp
emUgY3VzdG9tIGhlYWRlcnMgbWVtYmVyLgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2Fk
Ojp+Q3VybERvd25sb2FkKTogRnJlZSBjdXN0b20gaGVhZGVycyBtZW1iZXIuCisgICAgICAgIChX
ZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmluaXQpOiBTZXQgY2VydGlmaWNhdGUgYW5kIGNvb2tpZSBm
aWxlIHBhdGguCisgICAgICAgIChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSk6IENo
ZWNrIGZpbGUgaGFuZGxlIGFnYWluc3QgdmFsdWUgZm9yIGludmFsaWQgcGxhdGZvcm0gaGFuZGxl
LgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25sb2FkOjp3cml0ZURhdGFUb0ZpbGUpOiBBZGRl
ZCB1dGlsaXR5IG1ldGhvZCB0byB3cml0ZSBkb3dubG9hZCBkYXRhIHRvIGZpbGUuCisgICAgICAg
IChXZWJDb3JlOjpDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMpOiBBZGRlZCB1dGlsaXR5IG1ldGhv
ZCB0byBhZGQgaGVhZGVycyB0byByZXF1ZXN0LgorICAgICAgICAoV2ViQ29yZTo6Q3VybERvd25s
b2FkOjpkaWRSZWNlaXZlRGF0YSk6IFVzZSB3cml0ZURhdGFUb0ZpbGUgdXRpbGl0eSBtZXRob2Qu
CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9jdXJsL0N1cmxEb3dubG9hZC5oOgorICAgICAg
ICBQdXQgY2xhc3MgaW4gV2ViQ29yZSBuYW1lc3BhY2UuCisgICAgICAgIEFkZGVkIG1ldGhvZCB0
byBpbml0IGRvd25sb2FkIGZyb20gcmVzb3VyY2UgaGFuZGxlLCByZXF1ZXN0LCBhbmQgcmVzcG9u
c2Ugb2JqZWN0LgorICAgICAgICBBZGRlZCB1dGlsaXR5IG1ldGhvZCB0byB3cml0ZSBkb3dubG9h
ZCBkYXRhIHRvIGZpbGUuCisgICAgICAgIEFkZGVkIHV0aWxpdHkgbWV0aG9kIHRvIGFkZCBoZWFk
ZXJzIHRvIHJlcXVlc3QuCisgICAgICAgIEFkZGVkIGN1c3RvbSBoZWFkZXJzIG1lbWJlci4KKwog
MjAxMy0wNy0yMiAgQWxsYW4gU2FuZGZlbGQgSmVuc2VuICA8YWxsYW4uamVuc2VuQGRpZ2lhLmNv
bT4KIAogICAgICAgICBbUXRdW1dLMV0gU3VwcG9ydCBkaXJlY3QgcGFpbnRpbmcgd2l0aG91dCBH
cmFwaGljc1N1cmZhY2UKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3Vy
bC9DdXJsRG93bmxvYWQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuY3BwCShyZXZpc2lvbiAxNTI5NTkpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaW5jbHVkZSA8V2ViQ29yZS9IVFRQUGFyc2Vy
cy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvTWFpblRocmVhZFRhc2suaD4KKyNpbmNsdWRlIDxXZWJD
b3JlL1Jlc291cmNlUmVxdWVzdC5oPgogCiAjaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KICNp
bmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC0zNyw2ICszOCw4IEBAIHVzaW5nIG5hbWVz
cGFjZSBXZWJDb3JlOwogdGVtcGxhdGU8PiBzdHJ1Y3QgQ3Jvc3NUaHJlYWRDb3BpZXJCYXNlPGZh
bHNlLCBmYWxzZSwgQ3VybERvd25sb2FkKj4gOiBwdWJsaWMgQ3Jvc3NUaHJlYWRDb3BpZXJQYXNz
VGhyb3VnaDxDdXJsRG93bmxvYWQqPiB7CiB9OwogCituYW1lc3BhY2UgV2ViQ29yZSB7CisKIC8v
IEN1cmxEb3dubG9hZE1hbmFnZXIgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCiBDdXJsRG93bmxvYWRNYW5hZ2VyOjpD
dXJsRG93bmxvYWRNYW5hZ2VyKCkKQEAgLTIxMyw2ICsyMTYsNyBAQCBDdXJsRG93bmxvYWRNYW5h
Z2VyIEN1cmxEb3dubG9hZDo6bV9kb3duCiAKIEN1cmxEb3dubG9hZDo6Q3VybERvd25sb2FkKCkK
IDogbV9jdXJsSGFuZGxlKDApCissIG1fY3VzdG9tSGVhZGVycygwKQogLCBtX3VybCgwKQogLCBt
X3RlbXBIYW5kbGUoaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKICwgbV9kZWxldGVzRmlsZVVw
b25GYWlsdXJlKGZhbHNlKQpAQCAtMjI3LDYgKzIzMSw5IEBAIEN1cmxEb3dubG9hZDo6fkN1cmxE
b3dubG9hZCgpCiAgICAgaWYgKG1fdXJsKQogICAgICAgICBmYXN0RnJlZShtX3VybCk7CiAKKyAg
ICBpZiAobV9jdXN0b21IZWFkZXJzKQorICAgICAgICBjdXJsX3NsaXN0X2ZyZWVfYWxsKG1fY3Vz
dG9tSGVhZGVycyk7CisKICAgICBjbG9zZUZpbGUoKTsKICAgICBtb3ZlRmlsZVRvRGVzdGluYXRp
b24oKTsKIH0KQEAgLTI1Myw5ICsyNjAsMzEgQEAgdm9pZCBDdXJsRG93bmxvYWQ6OmluaXQoQ3Vy
bERvd25sb2FkTGlzdAogICAgIGN1cmxfZWFzeV9zZXRvcHQobV9jdXJsSGFuZGxlLCBDVVJMT1BU
X01BWFJFRElSUywgMTApOwogICAgIGN1cmxfZWFzeV9zZXRvcHQobV9jdXJsSGFuZGxlLCBDVVJM
T1BUX0hUVFBBVVRILCBDVVJMQVVUSF9BTlkpOwogCisgICAgY29uc3QgY2hhciogY2VydFBhdGgg
PSBnZXRlbnYoIkNVUkxfQ0FfQlVORExFX1BBVEgiKTsKKyAgICBpZiAoY2VydFBhdGgpCisgICAg
ICAgIGN1cmxfZWFzeV9zZXRvcHQobV9jdXJsSGFuZGxlLCBDVVJMT1BUX0NBSU5GTywgY2VydFBh
dGgpOworCisgICAgY29uc3QgY2hhciogY29va2llSmFyUGF0aCA9IGdldGVudigiQ1VSTF9DT09L
SUVfSkFSX1BBVEgiKTsKKyAgICBpZiAoY29va2llSmFyUGF0aCkKKyAgICAgICAgY3VybF9lYXN5
X3NldG9wdChtX2N1cmxIYW5kbGUsIENVUkxPUFRfQ09PS0lFRklMRSwgY29va2llSmFyUGF0aCk7
CisKICAgICBtX2xpc3RlbmVyID0gbGlzdGVuZXI7CiB9CiAKK3ZvaWQgQ3VybERvd25sb2FkOjpp
bml0KEN1cmxEb3dubG9hZExpc3RlbmVyKiBsaXN0ZW5lciwgUmVzb3VyY2VIYW5kbGUqLCBjb25z
dCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKQorewor
ICAgIGlmICghbGlzdGVuZXIpCisgICAgICAgIHJldHVybjsKKworICAgIE11dGV4TG9ja2VyIGxv
Y2tlcihtX211dGV4KTsKKworICAgIEtVUkwgdXJsKFBhcnNlZFVSTFN0cmluZywgcmVxdWVzdC51
cmwoKSk7CisKKyAgICBpbml0KGxpc3RlbmVyLCB1cmwpOworCisgICAgYWRkSGVhZGVycyhyZXF1
ZXN0KTsKK30KKwogYm9vbCBDdXJsRG93bmxvYWQ6OnN0YXJ0KCkKIHsKICAgICByZXR1cm4gbV9k
b3dubG9hZE1hbmFnZXIuYWRkKG1fY3VybEhhbmRsZSk7CkBAIC0yODgsNyArMzE3LDcgQEAgdm9p
ZCBDdXJsRG93bmxvYWQ6OmNsb3NlRmlsZSgpCiB7CiAgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
bXV0ZXgpOwogCi0gICAgaWYgKG1fdGVtcEhhbmRsZSkgeworICAgIGlmIChtX3RlbXBIYW5kbGUg
IT0gaW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkgewogICAgICAgICBXZWJDb3JlOjpjbG9zZUZp
bGUobV90ZW1wSGFuZGxlKTsKICAgICAgICAgbV90ZW1wSGFuZGxlID0gaW52YWxpZFBsYXRmb3Jt
RmlsZUhhbmRsZTsKICAgICB9CkBAIC0zMDIsNiArMzMxLDQzIEBAIHZvaWQgQ3VybERvd25sb2Fk
Ojptb3ZlRmlsZVRvRGVzdGluYXRpb24KICAgICA6Ok1vdmVGaWxlRXgobV90ZW1wUGF0aC5jaGFy
YWN0ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgbV9kZXN0aW5hdGlvbi5jaGFyYWN0
ZXJzV2l0aE51bGxUZXJtaW5hdGlvbigpLmRhdGEoKSwgTU9WRUZJTEVfQ09QWV9BTExPV0VEIHwg
TU9WRUZJTEVfUkVQTEFDRV9FWElTVElORyk7CiB9CiAKK3ZvaWQgQ3VybERvd25sb2FkOjp3cml0
ZURhdGFUb0ZpbGUoY29uc3QgY2hhciogZGF0YSwgaW50IHNpemUpCit7CisgICAgaWYgKG1fdGVt
cFBhdGguaXNFbXB0eSgpKQorICAgICAgICBtX3RlbXBQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUo
ImRvd25sb2FkIiwgbV90ZW1wSGFuZGxlKTsKKworICAgIGlmIChtX3RlbXBIYW5kbGUgIT0gaW52
YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKKyAgICAgICAgd3JpdGVUb0ZpbGUobV90ZW1wSGFuZGxl
LCBkYXRhLCBzaXplKTsKK30KKwordm9pZCBDdXJsRG93bmxvYWQ6OmFkZEhlYWRlcnMoY29uc3Qg
UmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQoreworICAgIGlmIChyZXF1ZXN0Lmh0dHBIZWFkZXJG
aWVsZHMoKS5zaXplKCkgPiAwKSB7CisgICAgICAgIHN0cnVjdCBjdXJsX3NsaXN0KiBoZWFkZXJz
ID0gMDsKKworICAgICAgICBIVFRQSGVhZGVyTWFwIGN1c3RvbUhlYWRlcnMgPSByZXF1ZXN0Lmh0
dHBIZWFkZXJGaWVsZHMoKTsKKyAgICAgICAgSFRUUEhlYWRlck1hcDo6Y29uc3RfaXRlcmF0b3Ig
ZW5kID0gY3VzdG9tSGVhZGVycy5lbmQoKTsKKyAgICAgICAgZm9yIChIVFRQSGVhZGVyTWFwOjpj
b25zdF9pdGVyYXRvciBpdCA9IGN1c3RvbUhlYWRlcnMuYmVnaW4oKTsgaXQgIT0gZW5kOyArK2l0
KSB7CisgICAgICAgICAgICBjb25zdCBTdHJpbmcmIHZhbHVlID0gaXQtPnZhbHVlOworICAgICAg
ICAgICAgU3RyaW5nIGhlYWRlclN0cmluZyhpdC0+a2V5KTsKKyAgICAgICAgICAgIGlmICh2YWx1
ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICAgICAgLy8gSW5zZXJ0IHRoZSA7IHRvIHRlbGwgY3Vy
bCB0aGF0IHRoaXMgaGVhZGVyIGhhcyBhbiBlbXB0eSB2YWx1ZS4KKyAgICAgICAgICAgICAgICBo
ZWFkZXJTdHJpbmcuYXBwZW5kKCI7Iik7CisgICAgICAgICAgICBlbHNlIHsKKyAgICAgICAgICAg
ICAgICBoZWFkZXJTdHJpbmcuYXBwZW5kKCI6ICIpOworICAgICAgICAgICAgICAgIGhlYWRlclN0
cmluZy5hcHBlbmQodmFsdWUpOworICAgICAgICAgICAgfQorICAgICAgICAgICAgQ1N0cmluZyBo
ZWFkZXJMYXRpbjEgPSBoZWFkZXJTdHJpbmcubGF0aW4xKCk7CisgICAgICAgICAgICBoZWFkZXJz
ID0gY3VybF9zbGlzdF9hcHBlbmQoaGVhZGVycywgaGVhZGVyTGF0aW4xLmRhdGEoKSk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoaGVhZGVycykgeworICAgICAgICAgICAgY3VybF9lYXN5X3Nl
dG9wdChtX2N1cmxIYW5kbGUsIENVUkxPUFRfSFRUUEhFQURFUiwgaGVhZGVycyk7CisgICAgICAg
ICAgICBtX2N1c3RvbUhlYWRlcnMgPSBoZWFkZXJzOworICAgICAgICB9CisgICAgfQorfQorCiB2
b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJpbmcmIGhlYWRlcikK
IHsKICAgICBNdXRleExvY2tlciBsb2NrZXIobV9tdXRleCk7CkBAIC0zMzUsMTMgKzQwMSw3IEBA
IHZvaWQgQ3VybERvd25sb2FkOjpkaWRSZWNlaXZlRGF0YSh2b2lkKgogCiAgICAgY2FsbE9uTWFp
blRocmVhZDxDdXJsRG93bmxvYWQqLCBDdXJsRG93bmxvYWQqLCBpbnQsIGludD4ocmVjZWl2ZWRE
YXRhQ2FsbGJhY2ssIHRoaXMsIHNpemUpOwogCi0gICAgaWYgKG1fdGVtcFBhdGguaXNFbXB0eSgp
KQotICAgICAgICBtX3RlbXBQYXRoID0gb3BlblRlbXBvcmFyeUZpbGUoImRvd25sb2FkIiwgbV90
ZW1wSGFuZGxlKTsKLQotICAgIGlmIChtX3RlbXBIYW5kbGUgIT0gaW52YWxpZFBsYXRmb3JtRmls
ZUhhbmRsZSkgewotICAgICAgICBjb25zdCBjaGFyKiBmaWxlRGF0YSA9IHN0YXRpY19jYXN0PGNv
bnN0IGNoYXIqPihkYXRhKTsKLSAgICAgICAgd3JpdGVUb0ZpbGUobV90ZW1wSGFuZGxlLCBmaWxl
RGF0YSwgc2l6ZSk7Ci0gICAgfQorICAgIHdyaXRlRGF0YVRvRmlsZShzdGF0aWNfY2FzdDxjb25z
dCBjaGFyKj4oZGF0YSksIHNpemUpOwogfQogCiB2b2lkIEN1cmxEb3dubG9hZDo6ZGlkUmVjZWl2
ZVJlc3BvbnNlKCkKQEAgLTQyNSwzICs0ODUsNSBAQCB2b2lkIEN1cmxEb3dubG9hZDo6cmVjZWl2
ZWRSZXNwb25zZUNhbGxiCiAgICAgaWYgKGRvd25sb2FkKQogICAgICAgICBkb3dubG9hZC0+ZGlk
UmVjZWl2ZVJlc3BvbnNlKCk7CiB9CisKK30KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9uZXR3b3JrL2N1cmwvQ3VybERvd25sb2FkLmgJKHJldmlzaW9uIDE1Mjk1OSkK
KysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvY3VybC9DdXJsRG93bmxvYWQuaAko
d29ya2luZyBjb3B5KQpAQCAtMjcsNiArMjcsNyBAQAogI2RlZmluZSBDdXJsRG93bmxvYWRfaAog
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9SZXNv
dXJjZUhhbmRsZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUmVzb3VyY2VSZXNwb25zZS5oPgogCiAj
aWYgUExBVEZPUk0oV0lOKQpAQCAtMzYsNiArMzcsOCBAQAogCiAjaW5jbHVkZSA8Y3VybC9jdXJs
Lmg+CiAKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwogY2xhc3MgQ3VybERvd25sb2FkTWFuYWdlciB7
CiBwdWJsaWM6CiAgICAgQ3VybERvd25sb2FkTWFuYWdlcigpOwpAQCAtODcsNiArOTAsOCBAQCBw
dWJsaWM6CiAgICAgfkN1cmxEb3dubG9hZCgpOwogCiAgICAgdm9pZCBpbml0KEN1cmxEb3dubG9h
ZExpc3RlbmVyKiwgY29uc3QgV2ViQ29yZTo6S1VSTCYpOworICAgIHZvaWQgaW5pdChDdXJsRG93
bmxvYWRMaXN0ZW5lciosIFJlc291cmNlSGFuZGxlKiwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jiwg
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOworCiAgICAgYm9vbCBzdGFydCgpOwogICAgIGJvb2wg
Y2FuY2VsKCk7CiAKQEAgLTEwMiw2ICsxMDcsOSBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHZv
aWQgY2xvc2VGaWxlKCk7CiAgICAgdm9pZCBtb3ZlRmlsZVRvRGVzdGluYXRpb24oKTsKKyAgICB2
b2lkIHdyaXRlRGF0YVRvRmlsZShjb25zdCBjaGFyKiBkYXRhLCBpbnQgc2l6ZSk7CisKKyAgICB2
b2lkIGFkZEhlYWRlcnMoY29uc3QgUmVzb3VyY2VSZXF1ZXN0Jik7CiAKICAgICAvLyBDYWxsZWQg
b24gZG93bmxvYWQgdGhyZWFkLgogICAgIHZvaWQgZGlkUmVjZWl2ZUhlYWRlcihjb25zdCBTdHJp
bmcmIGhlYWRlcik7CkBAIC0xMjIsNiArMTMwLDcgQEAgcHJpdmF0ZToKICAgICBzdGF0aWMgdm9p
ZCByZWNlaXZlZFJlc3BvbnNlQ2FsbGJhY2soQ3VybERvd25sb2FkKik7CiAKICAgICBDVVJMKiBt
X2N1cmxIYW5kbGU7CisgICAgc3RydWN0IGN1cmxfc2xpc3QqIG1fY3VzdG9tSGVhZGVyczsKICAg
ICBjaGFyKiBtX3VybDsKICAgICBTdHJpbmcgbV90ZW1wUGF0aDsKICAgICBTdHJpbmcgbV9kZXN0
aW5hdGlvbjsKQEAgLTEzNiw0ICsxNDUsNiBAQCBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBD
dXJsRG93bmxvYWRNYW5hZ2VyOwogfTsKIAorfQorCiAjZW5kaWYKSW5kZXg6IFNvdXJjZS9XZWJL
aXQvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9DaGFuZ2VM
b2cJKHJldmlzaW9uIDE1Mjk3MCkKKysrIFNvdXJjZS9XZWJLaXQvd2luL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDE2IEBACisyMDEzLTA3LTIyICBwZWF2b0BvdXRsb29rLmNv
bSAgPHBlYXZvQG91dGxvb2suY29tPgorCisgICAgICAgIFtDdXJsXSBEb3dubG9hZCBmYWlscyBm
b3IgY2VydGFpbiB1cmxzLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTE4NDY4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgSW5pdGlhbGl6ZSBkb3dubG9hZCBmcm9tIHByb3ZpZGVkIHJlc291cmNlIGhhbmRs
ZSwgcmVxdWVzdCwgYW5kIHJlc3BvbnNlIG9iamVjdC4KKworICAgICAgICAqIFdlYkRvd25sb2Fk
Lmg6IFVzZSBXZWJDb3JlIG5hbWVzcGFjZSBmb3IgQ3VybCBkb3dubG9hZCBjbGFzcy4KKyAgICAg
ICAgKiBXZWJEb3dubG9hZEN1cmwuY3BwOgorICAgICAgICAoV2ViRG93bmxvYWQ6OmluaXQpOiBJ
bml0aWFsaXplIGRvd25sb2FkIGZyb20gcHJvdmlkZWQgcmVzb3VyY2UgaGFuZGxlLCByZXF1ZXN0
LCBhbmQgcmVzcG9uc2Ugb2JqZWN0LgorCiAyMDEzLTA3LTE5ICBwZWF2b0BvdXRsb29rLmNvbSAg
PHBlYXZvQG91dGxvb2suY29tPgogCiAgICAgICAgIFtDdXJsXSBIdHRwIHJlc3BvbnNlIGNvZGUg
NDAxIChBdXRoZW50aWNhdGlvbiByZXF1aXJlZCkgaXMgbm90IGhhbmRsZWQuCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3dpbi9XZWJEb3dubG9hZC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
d2luL1dlYkRvd25sb2FkLmgJKHJldmlzaW9uIDE1Mjk1OSkKKysrIFNvdXJjZS9XZWJLaXQvd2lu
L1dlYkRvd25sb2FkLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ4LDcgKzQ4LDcgQEAgY2xhc3MgV2Vi
RG93bmxvYWQKIDogcHVibGljIElXZWJEb3dubG9hZAogLCBwdWJsaWMgSVdlYlVSTEF1dGhlbnRp
Y2F0aW9uQ2hhbGxlbmdlU2VuZGVyCiAjaWYgVVNFKENVUkwpCi0sIHB1YmxpYyBDdXJsRG93bmxv
YWRMaXN0ZW5lcgorLCBwdWJsaWMgV2ViQ29yZTo6Q3VybERvd25sb2FkTGlzdGVuZXIKICNlbmRp
ZgogewogcHVibGljOgpAQCAtMTQxLDcgKzE0MSw3IEBAIHByb3RlY3RlZDoKICNpZiBVU0UoQ0ZO
RVRXT1JLKQogICAgIFJldGFpblB0cjxDRlVSTERvd25sb2FkUmVmPiBtX2Rvd25sb2FkOwogI2Vs
aWYgVVNFKENVUkwpCi0gICAgQ3VybERvd25sb2FkIG1fZG93bmxvYWQ7CisgICAgV2ViQ29yZTo6
Q3VybERvd25sb2FkIG1fZG93bmxvYWQ7CiAjZW5kaWYKICAgICBDT01QdHI8SVdlYk11dGFibGVV
UkxSZXF1ZXN0PiBtX3JlcXVlc3Q7CiAgICAgQ09NUHRyPElXZWJEb3dubG9hZERlbGVnYXRlPiBt
X2RlbGVnYXRlOwpJbmRleDogU291cmNlL1dlYktpdC93aW4vV2ViRG93bmxvYWRDdXJsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3dpbi9XZWJEb3dubG9hZEN1cmwuY3BwCShyZXZp
c2lvbiAxNTI5NTkpCisrKyBTb3VyY2UvV2ViS2l0L3dpbi9XZWJEb3dubG9hZEN1cmwuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC02Nyw5ICs2Nyw3IEBAIHZvaWQgV2ViRG93bmxvYWQ6OmluaXQoUmVz
b3VyY2VIYW5kbGUqIGgKIAogICAgIG1fZGVsZWdhdGUgPSBkZWxlZ2F0ZTsKIAotICAgIEtVUkwg
dXJsKFBhcnNlZFVSTFN0cmluZywgcmVxdWVzdC51cmwoKSk7Ci0KLSAgICBtX2Rvd25sb2FkLmlu
aXQodGhpcywgdXJsKTsKKyAgICBtX2Rvd25sb2FkLmluaXQodGhpcywgaGFuZGxlLCByZXF1ZXN0
LCByZXNwb25zZSk7CiAKICAgICBzdGFydCgpOwogfQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>