Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/npm/cli.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKat Marchán <kzm@sykosomatic.org>2016-05-19 11:35:00 +0300
committerKat Marchán <kzm@sykosomatic.org>2016-05-19 12:35:59 +0300
commit935a7e359535e13924934811b77924cbad82619a (patch)
tree229f43e481d144d9809e3d6d8579c01f28f86574 /node_modules/readable-stream
parent584676f85eaebcb9d6c4d70d2ad320be8a8d6a74 (diff)
readable-stream@2.1.3
Node 6 build and buffer updates Credit: @calvinmetcalf
Diffstat (limited to 'node_modules/readable-stream')
-rw-r--r--node_modules/readable-stream/README.md4
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/base.css212
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/index.html93
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html287
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html140
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html2741
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html602
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html1640
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/lib/index.html145
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/prettify.css1
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/prettify.js1
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.pngbin0 -> 209 bytes
-rw-r--r--node_modules/readable-stream/coverage/lcov-report/sorter.js158
-rw-r--r--node_modules/readable-stream/coverage/lcov.info1642
-rw-r--r--node_modules/readable-stream/doc/stream.md (renamed from node_modules/readable-stream/doc/stream.markdown)49
-rw-r--r--node_modules/readable-stream/lib/_stream_readable.js53
-rw-r--r--node_modules/readable-stream/lib/_stream_transform.js6
-rw-r--r--node_modules/readable-stream/lib/_stream_writable.js40
-rw-r--r--node_modules/readable-stream/node_modules/buffer-shims/index.js108
-rw-r--r--node_modules/readable-stream/node_modules/buffer-shims/license.md19
-rw-r--r--node_modules/readable-stream/node_modules/buffer-shims/package.json84
-rw-r--r--node_modules/readable-stream/node_modules/buffer-shims/readme.md21
-rw-r--r--node_modules/readable-stream/package.json49
23 files changed, 8016 insertions, 79 deletions
diff --git a/node_modules/readable-stream/README.md b/node_modules/readable-stream/README.md
index beedc2763..2233732a9 100644
--- a/node_modules/readable-stream/README.md
+++ b/node_modules/readable-stream/README.md
@@ -1,6 +1,6 @@
# readable-stream
-***Node-core v5.9.1 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
+***Node-core v6.1.0 streams for userland*** [![Build Status](https://travis-ci.org/nodejs/readable-stream.svg?branch=master)](https://travis-ci.org/nodejs/readable-stream)
[![NPM](https://nodei.co/npm/readable-stream.png?downloads=true&downloadRank=true)](https://nodei.co/npm/readable-stream/)
@@ -16,7 +16,7 @@ npm install --save readable-stream
***Node-core streams for userland***
This package is a mirror of the Streams2 and Streams3 implementations in
-Node-core, including [documentation](doc/stream.markdown).
+Node-core, including [documentation](doc/stream.md).
If you want to guarantee a stable streams base, regardless of what version of
Node you, or the users of your libraries are using, use **readable-stream** *only* and avoid the *"stream"* module in Node-core, for background see [this blogpost](http://r.va.gg/2014/06/why-i-dont-use-nodes-core-stream-module.html).
diff --git a/node_modules/readable-stream/coverage/lcov-report/base.css b/node_modules/readable-stream/coverage/lcov-report/base.css
new file mode 100644
index 000000000..417c7adc9
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/base.css
@@ -0,0 +1,212 @@
+body, html {
+ margin:0; padding: 0;
+ height: 100%;
+}
+body {
+ font-family: Helvetica Neue, Helvetica, Arial;
+ font-size: 14px;
+ color:#333;
+}
+.small { font-size: 12px; }
+*, *:after, *:before {
+ -webkit-box-sizing:border-box;
+ -moz-box-sizing:border-box;
+ box-sizing:border-box;
+ }
+h1 { font-size: 20px; margin: 0;}
+h2 { font-size: 14px; }
+pre {
+ font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace;
+ margin: 0;
+ padding: 0;
+ -moz-tab-size: 2;
+ -o-tab-size: 2;
+ tab-size: 2;
+}
+a { color:#0074D9; text-decoration:none; }
+a:hover { text-decoration:underline; }
+.strong { font-weight: bold; }
+.space-top1 { padding: 10px 0 0 0; }
+.pad2y { padding: 20px 0; }
+.pad1y { padding: 10px 0; }
+.pad2x { padding: 0 20px; }
+.pad2 { padding: 20px; }
+.pad1 { padding: 10px; }
+.space-left2 { padding-left:55px; }
+.space-right2 { padding-right:20px; }
+.center { text-align:center; }
+.clearfix { display:block; }
+.clearfix:after {
+ content:'';
+ display:block;
+ height:0;
+ clear:both;
+ visibility:hidden;
+ }
+.fl { float: left; }
+@media only screen and (max-width:640px) {
+ .col3 { width:100%; max-width:100%; }
+ .hide-mobile { display:none!important; }
+}
+
+.quiet {
+ color: #7f7f7f;
+ color: rgba(0,0,0,0.5);
+}
+.quiet a { opacity: 0.7; }
+
+.fraction {
+ font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace;
+ font-size: 10px;
+ color: #555;
+ background: #E8E8E8;
+ padding: 4px 5px;
+ border-radius: 3px;
+ vertical-align: middle;
+}
+
+div.path a:link, div.path a:visited { color: #333; }
+table.coverage {
+ border-collapse: collapse;
+ margin: 10px 0 0 0;
+ padding: 0;
+}
+
+table.coverage td {
+ margin: 0;
+ padding: 0;
+ vertical-align: top;
+}
+table.coverage td.line-count {
+ text-align: right;
+ padding: 0 5px 0 20px;
+}
+table.coverage td.line-coverage {
+ text-align: right;
+ padding-right: 10px;
+ min-width:20px;
+}
+
+table.coverage td span.cline-any {
+ display: inline-block;
+ padding: 0 5px;
+ width: 100%;
+}
+.missing-if-branch {
+ display: inline-block;
+ margin-right: 5px;
+ border-radius: 3px;
+ position: relative;
+ padding: 0 4px;
+ background: #333;
+ color: yellow;
+}
+
+.skip-if-branch {
+ display: none;
+ margin-right: 10px;
+ position: relative;
+ padding: 0 4px;
+ background: #ccc;
+ color: white;
+}
+.missing-if-branch .typ, .skip-if-branch .typ {
+ color: inherit !important;
+}
+.coverage-summary {
+ border-collapse: collapse;
+ width: 100%;
+}
+.coverage-summary tr { border-bottom: 1px solid #bbb; }
+.keyline-all { border: 1px solid #ddd; }
+.coverage-summary td, .coverage-summary th { padding: 10px; }
+.coverage-summary tbody { border: 1px solid #bbb; }
+.coverage-summary td { border-right: 1px solid #bbb; }
+.coverage-summary td:last-child { border-right: none; }
+.coverage-summary th {
+ text-align: left;
+ font-weight: normal;
+ white-space: nowrap;
+}
+.coverage-summary th.file { border-right: none !important; }
+.coverage-summary th.pct { }
+.coverage-summary th.pic,
+.coverage-summary th.abs,
+.coverage-summary td.pct,
+.coverage-summary td.abs { text-align: right; }
+.coverage-summary td.file { white-space: nowrap; }
+.coverage-summary td.pic { min-width: 120px !important; }
+.coverage-summary tfoot td { }
+
+.coverage-summary .sorter {
+ height: 10px;
+ width: 7px;
+ display: inline-block;
+ margin-left: 0.5em;
+ background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent;
+}
+.coverage-summary .sorted .sorter {
+ background-position: 0 -20px;
+}
+.coverage-summary .sorted-desc .sorter {
+ background-position: 0 -10px;
+}
+.status-line { height: 10px; }
+/* dark red */
+.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 }
+.low .chart { border:1px solid #C21F39 }
+/* medium red */
+.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE }
+/* light red */
+.low, .cline-no { background:#FCE1E5 }
+/* light green */
+.high, .cline-yes { background:rgb(230,245,208) }
+/* medium green */
+.cstat-yes { background:rgb(161,215,106) }
+/* dark green */
+.status-line.high, .high .cover-fill { background:rgb(77,146,33) }
+.high .chart { border:1px solid rgb(77,146,33) }
+
+
+.medium .chart { border:1px solid #666; }
+.medium .cover-fill { background: #666; }
+
+.cbranch-no { background: yellow !important; color: #111; }
+
+.cstat-skip { background: #ddd; color: #111; }
+.fstat-skip { background: #ddd; color: #111 !important; }
+.cbranch-skip { background: #ddd !important; color: #111; }
+
+span.cline-neutral { background: #eaeaea; }
+.medium { background: #eaeaea; }
+
+.cover-fill, .cover-empty {
+ display:inline-block;
+ height: 12px;
+}
+.chart {
+ line-height: 0;
+}
+.cover-empty {
+ background: white;
+}
+.cover-full {
+ border-right: none !important;
+}
+pre.prettyprint {
+ border: none !important;
+ padding: 0 !important;
+ margin: 0 !important;
+}
+.com { color: #999 !important; }
+.ignore-none { color: #999; font-weight: normal; }
+
+.wrapper {
+ min-height: 100%;
+ height: auto !important;
+ height: 100%;
+ margin: 0 auto -48px;
+}
+.footer, .push {
+ height: 48px;
+}
diff --git a/node_modules/readable-stream/coverage/lcov-report/index.html b/node_modules/readable-stream/coverage/lcov-report/index.html
new file mode 100644
index 000000000..a812194c1
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/index.html
@@ -0,0 +1,93 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for All files</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="prettify.css" />
+ <link rel="stylesheet" href="base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ /
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">90.63% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>851/939</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">87.94% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>496/564</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">86.54% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>90/104</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">92.73% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>765/825</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line high'></div>
+<div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+ <td class="file high" data-value="lib/"><a href="lib/index.html">lib/</a></td>
+ <td data-value="90.63" class="pic high"><div class="chart"><div class="cover-fill" style="width: 90%;"></div><div class="cover-empty" style="width:10%;"></div></div></td>
+ <td data-value="90.63" class="pct high">90.63%</td>
+ <td data-value="939" class="abs high">851/939</td>
+ <td data-value="87.94" class="pct high">87.94%</td>
+ <td data-value="564" class="abs high">496/564</td>
+ <td data-value="86.54" class="pct high">86.54%</td>
+ <td data-value="104" class="abs high">90/104</td>
+ <td data-value="92.73" class="pct high">92.73%</td>
+ <td data-value="825" class="abs high">765/825</td>
+ </tr>
+
+</tbody>
+</table>
+</div><div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html
new file mode 100644
index 000000000..a3f1208b4
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_duplex.js.html
@@ -0,0 +1,287 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/_stream_duplex.js</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> / <a href="index.html">lib/</a> _stream_duplex.js
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">69.23% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>27/39</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">68.18% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>15/22</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">40% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>2/5</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">75.76% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>25/33</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line medium'></div>
+<pre><table class="coverage">
+<tr><td class="line-count quiet">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">392×</span>
+<span class="cline-any cline-yes">392×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">18×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// a duplex stream is just a stream that is both readable and writable.
+// Since JS doesn't have multiple prototypal inheritance, this class
+// prototypally inherits from Readable, and then parasitically from
+// Writable.
+&nbsp;
+'use strict';
+&nbsp;
+/*&lt;replacement&gt;*/
+&nbsp;
+var objectKeys = Object.keys || <span class="fstat-no" title="function not covered" ><span class="branch-1 cbranch-no" title="branch not covered" >function (obj) {</span></span>
+<span class="cstat-no" title="statement not covered" > var keys = [];</span>
+<span class="cstat-no" title="statement not covered" > for (var key in obj) {</span>
+<span class="cstat-no" title="statement not covered" > keys.push(key);</span>
+ }<span class="cstat-no" title="statement not covered" >return keys;</span>
+};
+/*&lt;/replacement&gt;*/
+&nbsp;
+module.exports = Duplex;
+&nbsp;
+/*&lt;replacement&gt;*/
+var processNextTick = require('process-nextick-args');
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*&lt;/replacement&gt;*/
+&nbsp;
+var Readable = require('./_stream_readable');
+var Writable = require('./_stream_writable');
+&nbsp;
+util.inherits(Duplex, Readable);
+&nbsp;
+var keys = objectKeys(Writable.prototype);
+for (var v = 0; v &lt; keys.length; v++) {
+ var method = keys[v];
+ if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];
+}
+&nbsp;
+function Duplex(options) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!(this instanceof Duplex)) <span class="cstat-no" title="statement not covered" >return new Duplex(options);</span>
+&nbsp;
+ Readable.call(this, options);
+ Writable.call(this, options);
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (options &amp;&amp; options.readable === false) <span class="cstat-no" title="statement not covered" >this.readable = false;</span>
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (options &amp;&amp; options.writable === false) <span class="cstat-no" title="statement not covered" >this.writable = false;</span>
+&nbsp;
+ this.allowHalfOpen = true;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (options &amp;&amp; options.allowHalfOpen === false) <span class="cstat-no" title="statement not covered" >this.allowHalfOpen = false;</span>
+&nbsp;
+ this.once('end', onend);
+}
+&nbsp;
+// the no-half-open enforcer
+function onend() {
+ // if we allow half-open state, or if the writable side ended,
+ // then we're ok.
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this.allowHalfOpen || <span class="branch-1 cbranch-no" title="branch not covered" >this._writableState.ended)</span> return;
+&nbsp;
+ // no more data can be written.
+ // But allow more writes to happen in this tick.
+<span class="cstat-no" title="statement not covered" > processNextTick(onEndNT, this);</span>
+}
+&nbsp;
+<span class="fstat-no" title="function not covered" >function onEndNT(self) {</span>
+<span class="cstat-no" title="statement not covered" > self.end();</span>
+}
+&nbsp;
+<span class="fstat-no" title="function not covered" >function forEach(xs, f) {</span>
+<span class="cstat-no" title="statement not covered" > for (var i = 0, l = xs.length; i &lt; l; i++) {</span>
+<span class="cstat-no" title="statement not covered" > f(xs[i], i);</span>
+ }
+}</pre></td></tr>
+</table></pre>
+<div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html
new file mode 100644
index 000000000..3ca02ae76
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_passthrough.js.html
@@ -0,0 +1,140 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/_stream_passthrough.js</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> / <a href="index.html">lib/</a> _stream_passthrough.js
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">90.91% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>10/11</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">50% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>1/2</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">100% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>2/2</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">100% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>10/10</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line high'></div>
+<pre><table class="coverage">
+<tr><td class="line-count quiet">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">59×</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// a passthrough stream.
+// basically just the most minimal sort of Transform stream.
+// Every written chunk gets output as-is.
+&nbsp;
+'use strict';
+&nbsp;
+module.exports = PassThrough;
+&nbsp;
+var Transform = require('./_stream_transform');
+&nbsp;
+/*&lt;replacement&gt;*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*&lt;/replacement&gt;*/
+&nbsp;
+util.inherits(PassThrough, Transform);
+&nbsp;
+function PassThrough(options) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!(this instanceof PassThrough)) <span class="cstat-no" title="statement not covered" >return new PassThrough(options);</span>
+&nbsp;
+ Transform.call(this, options);
+}
+&nbsp;
+PassThrough.prototype._transform = function (chunk, encoding, cb) {
+ cb(null, chunk);
+};</pre></td></tr>
+</table></pre>
+<div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html
new file mode 100644
index 000000000..fb9f1d0cb
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_readable.js.html
@@ -0,0 +1,2741 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/_stream_readable.js</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> / <a href="index.html">lib/</a> _stream_readable.js
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">89.29% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>467/523</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">87.22% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>307/352</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">86.79% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>46/53</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">90.73% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>411/453</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line high'></div>
+<pre><table class="coverage">
+<tr><td class="line-count quiet">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526
+527
+528
+529
+530
+531
+532
+533
+534
+535
+536
+537
+538
+539
+540
+541
+542
+543
+544
+545
+546
+547
+548
+549
+550
+551
+552
+553
+554
+555
+556
+557
+558
+559
+560
+561
+562
+563
+564
+565
+566
+567
+568
+569
+570
+571
+572
+573
+574
+575
+576
+577
+578
+579
+580
+581
+582
+583
+584
+585
+586
+587
+588
+589
+590
+591
+592
+593
+594
+595
+596
+597
+598
+599
+600
+601
+602
+603
+604
+605
+606
+607
+608
+609
+610
+611
+612
+613
+614
+615
+616
+617
+618
+619
+620
+621
+622
+623
+624
+625
+626
+627
+628
+629
+630
+631
+632
+633
+634
+635
+636
+637
+638
+639
+640
+641
+642
+643
+644
+645
+646
+647
+648
+649
+650
+651
+652
+653
+654
+655
+656
+657
+658
+659
+660
+661
+662
+663
+664
+665
+666
+667
+668
+669
+670
+671
+672
+673
+674
+675
+676
+677
+678
+679
+680
+681
+682
+683
+684
+685
+686
+687
+688
+689
+690
+691
+692
+693
+694
+695
+696
+697
+698
+699
+700
+701
+702
+703
+704
+705
+706
+707
+708
+709
+710
+711
+712
+713
+714
+715
+716
+717
+718
+719
+720
+721
+722
+723
+724
+725
+726
+727
+728
+729
+730
+731
+732
+733
+734
+735
+736
+737
+738
+739
+740
+741
+742
+743
+744
+745
+746
+747
+748
+749
+750
+751
+752
+753
+754
+755
+756
+757
+758
+759
+760
+761
+762
+763
+764
+765
+766
+767
+768
+769
+770
+771
+772
+773
+774
+775
+776
+777
+778
+779
+780
+781
+782
+783
+784
+785
+786
+787
+788
+789
+790
+791
+792
+793
+794
+795
+796
+797
+798
+799
+800
+801
+802
+803
+804
+805
+806
+807
+808
+809
+810
+811
+812
+813
+814
+815
+816
+817
+818
+819
+820
+821
+822
+823
+824
+825
+826
+827
+828
+829
+830
+831
+832
+833
+834
+835
+836
+837
+838
+839
+840
+841
+842
+843
+844
+845
+846
+847
+848
+849
+850
+851
+852
+853
+854
+855
+856
+857
+858
+859
+860
+861
+862
+863
+864
+865
+866
+867
+868
+869
+870
+871
+872
+873
+874
+875
+876
+877
+878
+879
+880
+881
+882
+883
+884
+885
+886
+887
+888
+889
+890
+891
+892
+893</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">269×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-yes">10×</span>
+<span class="cline-any cline-yes">10×</span>
+<span class="cline-any cline-yes">10×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">84×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">84×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">82×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">276927×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276927×</span>
+<span class="cline-any cline-yes">37×</span>
+<span class="cline-any cline-yes">37×</span>
+<span class="cline-any cline-yes">10×</span>
+<span class="cline-any cline-yes">10×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276927×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">41×</span>
+<span class="cline-any cline-yes">41×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">276968×</span>
+<span class="cline-any cline-yes">276968×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-yes">276968×</span>
+<span class="cline-any cline-yes">67×</span>
+<span class="cline-any cline-yes">67×</span>
+<span class="cline-any cline-yes">276901×</span>
+<span class="cline-any cline-yes">276883×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">276882×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276881×</span>
+<span class="cline-any cline-yes">276881×</span>
+<span class="cline-any cline-yes">23×</span>
+<span class="cline-any cline-yes">23×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276881×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276881×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276875×</span>
+<span class="cline-any cline-yes">108×</span>
+<span class="cline-any cline-yes">108×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276767×</span>
+<span class="cline-any cline-yes">276767×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276767×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276881×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">18×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276966×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">276966×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">554235×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">553951×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">553860×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">421×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">553439×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2087×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2087×</span>
+<span class="cline-any cline-yes">1711×</span>
+<span class="cline-any cline-yes">1697×</span>
+<span class="cline-any cline-yes">1697×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">14×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">376×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">277657×</span>
+<span class="cline-any cline-yes">277657×</span>
+<span class="cline-any cline-yes">277657×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277657×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277657×</span>
+<span class="cline-any cline-yes">6×</span>
+<span class="cline-any cline-yes">6×</span>
+<span class="cline-any cline-yes">6×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277651×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277651×</span>
+<span class="cline-any cline-yes">279×</span>
+<span class="cline-any cline-yes">279×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-yes">277365×</span>
+<span class="cline-any cline-yes">277365×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-yes">556×</span>
+<span class="cline-any cline-yes">556×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-yes">276809×</span>
+<span class="cline-any cline-yes">276809×</span>
+<span class="cline-any cline-yes">276809×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276809×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276809×</span>
+<span class="cline-any cline-yes">276809×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-yes">276627×</span>
+<span class="cline-any cline-yes">276627×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">277372×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">276968×</span>
+<span class="cline-any cline-yes">276968×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">276968×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">67×</span>
+<span class="cline-any cline-yes">59×</span>
+<span class="cline-any cline-yes">14×</span>
+<span class="cline-any cline-yes">14×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">59×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">59×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">276722×</span>
+<span class="cline-any cline-yes">276722×</span>
+<span class="cline-any cline-yes">276722×</span>
+<span class="cline-any cline-yes">1123×</span>
+<span class="cline-any cline-yes">1123×</span>
+<span class="cline-any cline-yes">1123×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1123×</span>
+<span class="cline-any cline-yes">1123×</span>
+<span class="cline-any cline-yes">1123×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">276881×</span>
+<span class="cline-any cline-yes">225×</span>
+<span class="cline-any cline-yes">225×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">225×</span>
+<span class="cline-any cline-yes">225×</span>
+<span class="cline-any cline-yes">275597×</span>
+<span class="cline-any cline-yes">275597×</span>
+<span class="cline-any cline-yes">275597×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">275571×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">225×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">37×</span>
+<span class="cline-any cline-yes">37×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">12×</span>
+<span class="cline-any cline-yes">12×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">395×</span>
+<span class="cline-any cline-yes">395×</span>
+<span class="cline-any cline-yes">395×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">264×</span>
+<span class="cline-any cline-yes">263×</span>
+<span class="cline-any cline-yes">263×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">264×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">6×</span>
+<span class="cline-any cline-yes">6×</span>
+<span class="cline-any cline-yes">6×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">11×</span>
+<span class="cline-any cline-yes">11×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">12×</span>
+<span class="cline-any cline-yes">12×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">265×</span>
+<span class="cline-any cline-yes">265×</span>
+<span class="cline-any cline-yes">265×</span>
+<span class="cline-any cline-yes">265×</span>
+<span class="cline-any cline-yes">263×</span>
+<span class="cline-any cline-yes">263×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">27×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">27×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">226×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">226×</span>
+<span class="cline-any cline-yes">36×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">226×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">28×</span>
+<span class="cline-any cline-yes">28×</span>
+<span class="cline-any cline-yes">28×</span>
+<span class="cline-any cline-yes">28×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">3×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">226×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-yes">25×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-yes">38×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">272×</span>
+<span class="cline-any cline-yes">272×</span>
+<span class="cline-any cline-yes">270×</span>
+<span class="cline-any cline-yes">270×</span>
+<span class="cline-any cline-yes">270×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">272×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1428×</span>
+<span class="cline-any cline-yes">1428×</span>
+<span class="cline-any cline-yes">1428×</span>
+<span class="cline-any cline-yes">345×</span>
+<span class="cline-any cline-yes">395×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">16×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">757×</span>
+<span class="cline-any cline-yes">757×</span>
+<span class="cline-any cline-yes">757×</span>
+<span class="cline-any cline-yes">757×</span>
+<span class="cline-any cline-yes">757×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">757×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">753×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">280×</span>
+<span class="cline-any cline-yes">280×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">434×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">114×</span>
+<span class="cline-any cline-yes">114×</span>
+<span class="cline-any cline-yes">114×</span>
+<span class="cline-any cline-yes">320×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">264×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-yes">56×</span>
+<span class="cline-any cline-yes">186×</span>
+<span class="cline-any cline-yes">186×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">186×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">186×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">186×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">753×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">316×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">316×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">316×</span>
+<span class="cline-any cline-yes">314×</span>
+<span class="cline-any cline-yes">314×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">314×</span>
+<span class="cline-any cline-yes">54×</span>
+<span class="cline-any cline-yes">54×</span>
+<span class="cline-any cline-yes">54×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-yes">3×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">'use strict';
+&nbsp;
+module.exports = Readable;
+&nbsp;
+/*&lt;replacement&gt;*/
+var processNextTick = require('process-nextick-args');
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var isArray = require('isarray');
+/*&lt;/replacement&gt;*/
+&nbsp;
+Readable.ReadableState = ReadableState;
+&nbsp;
+/*&lt;replacement&gt;*/
+var EE = require('events').EventEmitter;
+&nbsp;
+var EElistenerCount = function (emitter, type) {
+ return emitter.listeners(type).length;
+};
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var Stream;
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Stream) <span class="cstat-no" title="statement not covered" >Stream = require('events').EventEmitter;</span>
+ }
+})();
+/*&lt;/replacement&gt;*/
+&nbsp;
+var Buffer = require('buffer').Buffer;
+/*&lt;replacement&gt;*/
+var bufferShim = require('buffer-shims');
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var debugUtil = require('util');
+var debug = void 0;
+<span class="missing-if-branch" title="else path not taken" >E</span>if (debugUtil &amp;&amp; debugUtil.debuglog) {
+ debug = debugUtil.debuglog('stream');
+} else {
+<span class="cstat-no" title="statement not covered" > debug = <span class="fstat-no" title="function not covered" >function () {</span>};</span>
+}
+/*&lt;/replacement&gt;*/
+&nbsp;
+var StringDecoder;
+&nbsp;
+util.inherits(Readable, Stream);
+&nbsp;
+var hasPrependListener = typeof EE.prototype.prependListener === 'function';
+&nbsp;
+function prependListener(emitter, event, fn) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (hasPrependListener) <span class="cstat-no" title="statement not covered" >return emitter.prependListener(event, fn);</span>
+&nbsp;
+ // This is a brutally ugly hack to make sure that our error handler
+ // is attached before any userland ones. NEVER DO THIS. This is here
+ // only because this code needs to continue to work with older versions
+ // of Node.js that do not include the prependListener() method. The goal
+ // is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else <span class="missing-if-branch" title="if path not taken" >I</span>if (isArray(emitter._events[event])) <span class="cstat-no" title="statement not covered" >emitter._events[event].unshift(fn);e</span>lse emitter._events[event] = [fn, emitter._events[event]];
+}
+&nbsp;
+var Duplex;
+function ReadableState(options, stream) {
+ Duplex = Duplex || <span class="branch-1 cbranch-no" title="branch not covered" >require('./_stream_duplex');</span>
+&nbsp;
+ options = options || {};
+&nbsp;
+ // object stream flag. Used to make read(n) ignore n and to
+ // make all the buffer merging and length checks go away
+ this.objectMode = !!options.objectMode;
+&nbsp;
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.readableObjectMode;
+&nbsp;
+ // the point at which it stops calling _read() to fill the buffer
+ // Note: 0 is a valid value, means "don't call _read preemptively ever"
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+&nbsp;
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+&nbsp;
+ this.buffer = [];
+ this.length = 0;
+ this.pipes = null;
+ this.pipesCount = 0;
+ this.flowing = null;
+ this.ended = false;
+ this.endEmitted = false;
+ this.reading = false;
+&nbsp;
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+&nbsp;
+ // whenever we return null, then we set a flag to say
+ // that we're awaiting a 'readable' event emission.
+ this.needReadable = false;
+ this.emittedReadable = false;
+ this.readableListening = false;
+ this.resumeScheduled = false;
+&nbsp;
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+&nbsp;
+ // when piping, we only care about 'readable' events that happen
+ // after read()ing all the bytes and not getting any pushback.
+ this.ranOut = false;
+&nbsp;
+ // the number of writers that are awaiting a drain event in .pipe()s
+ this.awaitDrain = 0;
+&nbsp;
+ // if true, a maybeReadMore has been scheduled
+ this.readingMore = false;
+&nbsp;
+ this.decoder = null;
+ this.encoding = null;
+ if (options.encoding) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+ this.decoder = new StringDecoder(options.encoding);
+ this.encoding = options.encoding;
+ }
+}
+&nbsp;
+var Duplex;
+function Readable(options) {
+ Duplex = Duplex || require('./_stream_duplex');
+&nbsp;
+ if (!(this instanceof Readable)) return new Readable(options);
+&nbsp;
+ this._readableState = new ReadableState(options, this);
+&nbsp;
+ // legacy
+ this.readable = true;
+&nbsp;
+ if (options &amp;&amp; typeof options.read === 'function') this._read = options.read;
+&nbsp;
+ Stream.call(this);
+}
+&nbsp;
+// Manually shove something into the read() buffer.
+// This returns true if the highWaterMark has not been hit yet,
+// similar to how Writable.write() returns true if you should
+// write() some more.
+Readable.prototype.push = function (chunk, encoding) {
+ var state = this._readableState;
+&nbsp;
+ if (!state.objectMode &amp;&amp; typeof chunk === 'string') {
+ encoding = encoding || state.defaultEncoding;
+ if (encoding !== state.encoding) {
+ chunk = bufferShim.from(chunk, encoding);
+ encoding = '';
+ }
+ }
+&nbsp;
+ return readableAddChunk(this, state, chunk, encoding, false);
+};
+&nbsp;
+// Unshift should *always* be something directly out of read()
+Readable.prototype.unshift = function (chunk) {
+ var state = this._readableState;
+ return readableAddChunk(this, state, chunk, '', true);
+};
+&nbsp;
+Readable.prototype.isPaused = function () {
+ return this._readableState.flowing === false;
+};
+&nbsp;
+function readableAddChunk(stream, state, chunk, encoding, addToFront) {
+ var er = chunkInvalid(state, chunk);
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (er) {
+<span class="cstat-no" title="statement not covered" > stream.emit('error', er);</span>
+ } else if (chunk === null) {
+ state.reading = false;
+ onEofChunk(stream, state);
+ } else if (state.objectMode || chunk &amp;&amp; chunk.length &gt; 0) {
+ if (state.ended &amp;&amp; !addToFront) {
+ var e = new Error('stream.push() after EOF');
+ stream.emit('error', e);
+ } else if (state.endEmitted &amp;&amp; addToFront) {
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
+ } else {
+ var skipAdd;
+ if (state.decoder &amp;&amp; !addToFront &amp;&amp; !encoding) {
+ chunk = state.decoder.write(chunk);
+ skipAdd = !state.objectMode &amp;&amp; chunk.length === 0;
+ }
+&nbsp;
+ if (!addToFront) state.reading = false;
+&nbsp;
+ // Don't add to the buffer if we've decoded to an empty string chunk and
+ // we're not in object mode
+ if (!skipAdd) {
+ // if we want the data now, just emit it.
+ if (state.flowing &amp;&amp; state.length === 0 &amp;&amp; !state.sync) {
+ stream.emit('data', chunk);
+ stream.read(0);
+ } else {
+ // update the buffer info.
+ state.length += state.objectMode ? 1 : chunk.length;
+ if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);
+&nbsp;
+ if (state.needReadable) emitReadable(stream);
+ }
+ }
+&nbsp;
+ maybeReadMore(stream, state);
+ }
+ } else if (!addToFront) {
+ state.reading = false;
+ }
+&nbsp;
+ return needMoreData(state);
+}
+&nbsp;
+// if it's past the high water mark, we can push in some more.
+// Also, if we have no data yet, we can stand some
+// more bytes. This is to work around cases where hwm=0,
+// such as the repl. Also, if the push() triggered a
+// readable event, and the user called read(largeNumber) such that
+// needReadable was set, then we ought to push more, so that another
+// 'readable' event will be triggered.
+function needMoreData(state) {
+ return !state.ended &amp;&amp; (state.needReadable || state.length &lt; state.highWaterMark || state.length === 0);
+}
+&nbsp;
+// backwards compatibility.
+Readable.prototype.setEncoding = function (enc) {
+ if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;
+ this._readableState.decoder = new StringDecoder(enc);
+ this._readableState.encoding = enc;
+ return this;
+};
+&nbsp;
+// Don't raise the hwm &gt; 8MB
+var MAX_HWM = 0x800000;
+function computeNewHighWaterMark(n) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (n &gt;= MAX_HWM) {
+<span class="cstat-no" title="statement not covered" > n = MAX_HWM;</span>
+ } else {
+ // Get the next highest power of 2
+ n--;
+ n |= n &gt;&gt;&gt; 1;
+ n |= n &gt;&gt;&gt; 2;
+ n |= n &gt;&gt;&gt; 4;
+ n |= n &gt;&gt;&gt; 8;
+ n |= n &gt;&gt;&gt; 16;
+ n++;
+ }
+ return n;
+}
+&nbsp;
+function howMuchToRead(n, state) {
+ if (state.length === 0 &amp;&amp; state.ended) return 0;
+&nbsp;
+ if (state.objectMode) return n === 0 ? 0 : 1;
+&nbsp;
+ if (n === null || isNaN(n)) {
+ // only flow one buffer at a time
+ if (state.flowing &amp;&amp; state.buffer.length) return state.buffer[0].length;else return state.length;
+ }
+&nbsp;
+ if (n &lt;= 0) return 0;
+&nbsp;
+ // If we're asking for more than the target buffer level,
+ // then raise the water mark. Bump up to the next highest
+ // power of 2, to prevent increasing it excessively in tiny
+ // amounts.
+ if (n &gt; state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);
+&nbsp;
+ // don't have that much. return null, unless we've ended.
+ if (n &gt; state.length) {
+ if (!state.ended) {
+ state.needReadable = true;
+ return 0;
+ } else {
+ return state.length;
+ }
+ }
+&nbsp;
+ return n;
+}
+&nbsp;
+// you can override either this method, or the async _read(n) below.
+Readable.prototype.read = function (n) {
+ debug('read', n);
+ var state = this._readableState;
+ var nOrig = n;
+&nbsp;
+ if (typeof n !== 'number' || n &gt; 0) state.emittedReadable = false;
+&nbsp;
+ // if we're doing read(0) to trigger a readable event, but we
+ // already have a bunch of data in the buffer, then just trigger
+ // the 'readable' event and move on.
+ if (n === 0 &amp;&amp; state.needReadable &amp;&amp; (state.length &gt;= state.highWaterMark || state.ended)) {
+ debug('read: emitReadable', state.length, state.ended);
+ if (state.length === 0 &amp;&amp; state.ended) endReadable(this);else emitReadable(this);
+ return null;
+ }
+&nbsp;
+ n = howMuchToRead(n, state);
+&nbsp;
+ // if we've ended, and we're now clear, then finish it up.
+ if (n === 0 &amp;&amp; state.ended) {
+ if (state.length === 0) endReadable(this);
+ return null;
+ }
+&nbsp;
+ // All the actual chunk generation logic needs to be
+ // *below* the call to _read. The reason is that in certain
+ // synthetic stream cases, such as passthrough streams, _read
+ // may be a completely synchronous operation which may change
+ // the state of the read buffer, providing enough data when
+ // before there was *not* enough.
+ //
+ // So, the steps are:
+ // 1. Figure out what the state of things will be after we do
+ // a read from the buffer.
+ //
+ // 2. If that resulting state will trigger a _read, then call _read.
+ // Note that this may be asynchronous, or synchronous. Yes, it is
+ // deeply ugly to write APIs this way, but that still doesn't mean
+ // that the Readable class should behave improperly, as streams are
+ // designed to be sync/async agnostic.
+ // Take note if the _read call is sync or async (ie, if the read call
+ // has returned yet), so that we know whether or not it's safe to emit
+ // 'readable' etc.
+ //
+ // 3. Actually pull the requested chunks out of the buffer and return.
+&nbsp;
+ // if we need a readable event, then we need to do some reading.
+ var doRead = state.needReadable;
+ debug('need readable', doRead);
+&nbsp;
+ // if we currently have less than the highWaterMark, then also read some
+ if (state.length === 0 || state.length - n &lt; state.highWaterMark) {
+ doRead = true;
+ debug('length less than watermark', doRead);
+ }
+&nbsp;
+ // however, if we've ended, then there's no point, and if we're already
+ // reading, then it's unnecessary.
+ if (state.ended || state.reading) {
+ doRead = false;
+ debug('reading or ended', doRead);
+ }
+&nbsp;
+ if (doRead) {
+ debug('do read');
+ state.reading = true;
+ state.sync = true;
+ // if the length is currently zero, then we *need* a readable event.
+ if (state.length === 0) state.needReadable = true;
+ // call internal read method
+ this._read(state.highWaterMark);
+ state.sync = false;
+ }
+&nbsp;
+ // If _read pushed data synchronously, then `reading` will be false,
+ // and we need to re-evaluate how much data we can return to the user.
+ if (doRead &amp;&amp; !state.reading) n = howMuchToRead(nOrig, state);
+&nbsp;
+ var ret;
+ if (n &gt; 0) ret = fromList(n, state);else ret = null;
+&nbsp;
+ if (ret === null) {
+ state.needReadable = true;
+ n = 0;
+ }
+&nbsp;
+ state.length -= n;
+&nbsp;
+ // If we have nothing in the buffer, then we want to know
+ // as soon as we *do* get something into the buffer.
+ if (state.length === 0 &amp;&amp; !state.ended) state.needReadable = true;
+&nbsp;
+ // If we tried to read() past the EOF, then emit end on the next tick.
+ if (nOrig !== n &amp;&amp; state.ended &amp;&amp; state.length === 0) endReadable(this);
+&nbsp;
+ if (ret !== null) this.emit('data', ret);
+&nbsp;
+ return ret;
+};
+&nbsp;
+function chunkInvalid(state, chunk) {
+ var er = null;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Buffer.isBuffer(chunk) &amp;&amp; typeof chunk !== 'string' &amp;&amp; chunk !== null &amp;&amp; chunk !== undefined &amp;&amp; !state.objectMode) {
+<span class="cstat-no" title="statement not covered" > er = new TypeError('Invalid non-string/buffer chunk');</span>
+ }
+ return er;
+}
+&nbsp;
+function onEofChunk(stream, state) {
+ if (state.ended) return;
+ if (state.decoder) {
+ var chunk = state.decoder.end();
+ if (chunk &amp;&amp; chunk.length) {
+ state.buffer.push(chunk);
+ state.length += state.objectMode ? <span class="branch-0 cbranch-no" title="branch not covered" >1 </span>: chunk.length;
+ }
+ }
+ state.ended = true;
+&nbsp;
+ // emit 'readable' now to make sure it gets picked up.
+ emitReadable(stream);
+}
+&nbsp;
+// Don't emit readable right away in sync mode, because this can trigger
+// another read() call =&gt; stack overflow. This way, it might trigger
+// a nextTick recursion warning, but that's not so bad.
+function emitReadable(stream) {
+ var state = stream._readableState;
+ state.needReadable = false;
+ if (!state.emittedReadable) {
+ debug('emitReadable', state.flowing);
+ state.emittedReadable = true;
+ if (state.sync) processNextTick(emitReadable_, stream);else emitReadable_(stream);
+ }
+}
+&nbsp;
+function emitReadable_(stream) {
+ debug('emit readable');
+ stream.emit('readable');
+ flow(stream);
+}
+&nbsp;
+// at this point, the user has presumably seen the 'readable' event,
+// and called read() to consume some data. that may have triggered
+// in turn another _read(n) call, in which case reading = true if
+// it's in progress.
+// However, if we're not ended, or reading, and the length &lt; hwm,
+// then go ahead and try to read some more preemptively.
+function maybeReadMore(stream, state) {
+ if (!state.readingMore) {
+ state.readingMore = true;
+ processNextTick(maybeReadMore_, stream, state);
+ }
+}
+&nbsp;
+function maybeReadMore_(stream, state) {
+ var len = state.length;
+ while (!state.reading &amp;&amp; !state.flowing &amp;&amp; !state.ended &amp;&amp; state.length &lt; state.highWaterMark) {
+ debug('maybeReadMore read 0');
+ stream.read(0);
+ if (len === state.length)
+ // didn't get any data, stop spinning.
+ break;else len = state.length;
+ }
+ state.readingMore = false;
+}
+&nbsp;
+// abstract method. to be overridden in specific implementation classes.
+// call cb(er, data) where data is &lt;= n in length.
+// for virtual (non-string, non-buffer) streams, "length" is somewhat
+// arbitrary, and perhaps not very meaningful.
+Readable.prototype._read = <span class="fstat-no" title="function not covered" >function (n) {</span>
+<span class="cstat-no" title="statement not covered" > this.emit('error', new Error('not implemented'));</span>
+};
+&nbsp;
+Readable.prototype.pipe = function (dest, pipeOpts) {
+ var src = this;
+ var state = this._readableState;
+&nbsp;
+ switch (state.pipesCount) {
+ case 0:
+ state.pipes = dest;
+ break;
+ case 1:
+ state.pipes = [state.pipes, dest];
+ break;
+<span class="branch-2 cbranch-no" title="branch not covered" > default:</span>
+<span class="cstat-no" title="statement not covered" > state.pipes.push(dest);</span>
+<span class="cstat-no" title="statement not covered" > break;</span>
+ }
+ state.pipesCount += 1;
+ debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);
+&nbsp;
+ var doEnd = (!pipeOpts || pipeOpts.end !== false) &amp;&amp; dest !== process.stdout &amp;&amp; dest !== process.stderr;
+&nbsp;
+ var endFn = doEnd ? onend : cleanup;
+ if (state.endEmitted) processNextTick(endFn);else src.once('end', endFn);
+&nbsp;
+ dest.on('unpipe', onunpipe);
+ function onunpipe(readable) {
+ debug('onunpipe');
+ if (readable === src) {
+ cleanup();
+ }
+ }
+&nbsp;
+ function onend() {
+ debug('onend');
+ dest.end();
+ }
+&nbsp;
+ // when the dest drains, it reduces the awaitDrain counter
+ // on the source. This would be more elegant with a .once()
+ // handler in flow(), but adding and removing repeatedly is
+ // too slow.
+ var ondrain = pipeOnDrain(src);
+ dest.on('drain', ondrain);
+&nbsp;
+ var cleanedUp = false;
+ function cleanup() {
+ debug('cleanup');
+ // cleanup event handlers once the pipe is broken
+ dest.removeListener('close', onclose);
+ dest.removeListener('finish', onfinish);
+ dest.removeListener('drain', ondrain);
+ dest.removeListener('error', onerror);
+ dest.removeListener('unpipe', onunpipe);
+ src.removeListener('end', onend);
+ src.removeListener('end', cleanup);
+ src.removeListener('data', ondata);
+&nbsp;
+ cleanedUp = true;
+&nbsp;
+ // if the reader is waiting for a drain event from this
+ // specific writer, then it would cause it to never start
+ // flowing again.
+ // So, if this is awaiting a drain, then we just call it now.
+ // If we don't know, then assume that we are waiting for one.
+ if (state.awaitDrain &amp;&amp; (!dest._writableState || dest._writableState.needDrain)) ondrain();
+ }
+&nbsp;
+ src.on('data', ondata);
+ function ondata(chunk) {
+ debug('ondata');
+ var ret = dest.write(chunk);
+ if (false === ret) {
+ // If the user unpiped during `dest.write()`, it is possible
+ // to get stuck in a permanently paused state if that write
+ // also returned false.
+ // =&gt; Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 &amp;&amp; state.pipes === dest || state.pipesCount &gt; 1 &amp;&amp; indexOf(state.pipes, dest) !== -1) &amp;&amp; !cleanedUp) {
+ debug('false write response, pause', src._readableState.awaitDrain);
+ src._readableState.awaitDrain++;
+ }
+ src.pause();
+ }
+ }
+&nbsp;
+ // if the dest has an error, then stop piping into it.
+ // however, don't suppress the throwing behavior for this.
+ function onerror(er) {
+ debug('onerror', er);
+ unpipe();
+ dest.removeListener('error', onerror);
+ if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
+ }
+&nbsp;
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
+&nbsp;
+ // Both close and finish should trigger unpipe, but only once.
+<span class="fstat-no" title="function not covered" > function onclose() {</span>
+<span class="cstat-no" title="statement not covered" > dest.removeListener('finish', onfinish);</span>
+<span class="cstat-no" title="statement not covered" > unpipe();</span>
+ }
+ dest.once('close', onclose);
+ function onfinish() {
+ debug('onfinish');
+ dest.removeListener('close', onclose);
+ unpipe();
+ }
+ dest.once('finish', onfinish);
+&nbsp;
+ function unpipe() {
+ debug('unpipe');
+ src.unpipe(dest);
+ }
+&nbsp;
+ // tell the dest that it's being piped to
+ dest.emit('pipe', src);
+&nbsp;
+ // start the flow if it hasn't been started already.
+ if (!state.flowing) {
+ debug('pipe resume');
+ src.resume();
+ }
+&nbsp;
+ return dest;
+};
+&nbsp;
+function pipeOnDrain(src) {
+ return function () {
+ var state = src._readableState;
+ debug('pipeOnDrain', state.awaitDrain);
+ if (state.awaitDrain) state.awaitDrain--;
+ if (state.awaitDrain === 0 &amp;&amp; EElistenerCount(src, 'data')) {
+ state.flowing = true;
+ flow(src);
+ }
+ };
+}
+&nbsp;
+Readable.prototype.unpipe = function (dest) {
+ var state = this._readableState;
+&nbsp;
+ // if we're not piping anywhere, then do nothing.
+ if (state.pipesCount === 0) return this;
+&nbsp;
+ // just one destination. most common case.
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (state.pipesCount === 1) {
+ // passed in one, but it's not the right one.
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (dest &amp;&amp; dest !== state.pipes) <span class="cstat-no" title="statement not covered" >return this;</span>
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!dest) <span class="cstat-no" title="statement not covered" >dest = state.pipes;</span>
+&nbsp;
+ // got a match.
+ state.pipes = null;
+ state.pipesCount = 0;
+ state.flowing = false;
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (dest) dest.emit('unpipe', this);
+ return this;
+ }
+&nbsp;
+ // slow case. multiple pipe destinations.
+&nbsp;
+<span class="cstat-no" title="statement not covered" > if (!dest) {</span>
+ // remove all.
+<span class="cstat-no" title="statement not covered" > var dests = state.pipes;</span>
+<span class="cstat-no" title="statement not covered" > var len = state.pipesCount;</span>
+<span class="cstat-no" title="statement not covered" > state.pipes = null;</span>
+<span class="cstat-no" title="statement not covered" > state.pipesCount = 0;</span>
+<span class="cstat-no" title="statement not covered" > state.flowing = false;</span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > for (var _i = 0; _i &lt; len; _i++) {</span>
+<span class="cstat-no" title="statement not covered" > dests[_i].emit('unpipe', this);</span>
+ }<span class="cstat-no" title="statement not covered" >return this;</span>
+ }
+&nbsp;
+ // try to find the right one.
+<span class="cstat-no" title="statement not covered" > var i = indexOf(state.pipes, dest);</span>
+<span class="cstat-no" title="statement not covered" > if (i === -1) <span class="cstat-no" title="statement not covered" >return this;</span></span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > state.pipes.splice(i, 1);</span>
+<span class="cstat-no" title="statement not covered" > state.pipesCount -= 1;</span>
+<span class="cstat-no" title="statement not covered" > if (state.pipesCount === 1) <span class="cstat-no" title="statement not covered" >state.pipes = state.pipes[0];</span></span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > dest.emit('unpipe', this);</span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > return this;</span>
+};
+&nbsp;
+// set up data events if they are asked for
+// Ensure readable listeners eventually get something
+Readable.prototype.on = function (ev, fn) {
+ var res = Stream.prototype.on.call(this, ev, fn);
+&nbsp;
+ // If listening to data, and it has not explicitly been paused,
+ // then call resume to start the flow of data on the next tick.
+ if (ev === 'data' &amp;&amp; false !== this._readableState.flowing) {
+ this.resume();
+ }
+&nbsp;
+ if (ev === 'readable' &amp;&amp; !this._readableState.endEmitted) {
+ var state = this._readableState;
+ if (!state.readableListening) {
+ state.readableListening = true;
+ state.emittedReadable = false;
+ state.needReadable = true;
+ if (!state.reading) {
+ processNextTick(nReadingNextTick, this);
+ } else if (state.length) {
+ emitReadable(this, state);
+ }
+ }
+ }
+&nbsp;
+ return res;
+};
+Readable.prototype.addListener = Readable.prototype.on;
+&nbsp;
+function nReadingNextTick(self) {
+ debug('readable nexttick read 0');
+ self.read(0);
+}
+&nbsp;
+// pause() and resume() are remnants of the legacy readable stream API
+// If the user uses them, then switch into old mode.
+Readable.prototype.resume = function () {
+ var state = this._readableState;
+ if (!state.flowing) {
+ debug('resume');
+ state.flowing = true;
+ resume(this, state);
+ }
+ return this;
+};
+&nbsp;
+function resume(stream, state) {
+ if (!state.resumeScheduled) {
+ state.resumeScheduled = true;
+ processNextTick(resume_, stream, state);
+ }
+}
+&nbsp;
+function resume_(stream, state) {
+ if (!state.reading) {
+ debug('resume read 0');
+ stream.read(0);
+ }
+&nbsp;
+ state.resumeScheduled = false;
+ stream.emit('resume');
+ flow(stream);
+ if (state.flowing &amp;&amp; !state.reading) stream.read(0);
+}
+&nbsp;
+Readable.prototype.pause = function () {
+ debug('call pause flowing=%j', this._readableState.flowing);
+ if (false !== this._readableState.flowing) {
+ debug('pause');
+ this._readableState.flowing = false;
+ this.emit('pause');
+ }
+ return this;
+};
+&nbsp;
+function flow(stream) {
+ var state = stream._readableState;
+ debug('flow', state.flowing);
+ if (state.flowing) {
+ do {
+ var chunk = stream.read();
+ } while (null !== chunk &amp;&amp; state.flowing);
+ }
+}
+&nbsp;
+// wrap an old-style stream as the async data source.
+// This is *not* part of the readable stream interface.
+// It is an ugly unfortunate mess of history.
+Readable.prototype.wrap = function (stream) {
+ var state = this._readableState;
+ var paused = false;
+&nbsp;
+ var self = this;
+ stream.on('end', function () {
+ debug('wrapped end');
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (state.decoder &amp;&amp; <span class="branch-1 cbranch-no" title="branch not covered" >!state.ended)</span> {
+<span class="cstat-no" title="statement not covered" > var chunk = state.decoder.end();</span>
+<span class="cstat-no" title="statement not covered" > if (chunk &amp;&amp; chunk.length) <span class="cstat-no" title="statement not covered" >self.push(chunk);</span></span>
+ }
+&nbsp;
+ self.push(null);
+ });
+&nbsp;
+ stream.on('data', <span class="fstat-no" title="function not covered" >function (chunk) {</span>
+<span class="cstat-no" title="statement not covered" > debug('wrapped data');</span>
+<span class="cstat-no" title="statement not covered" > if (state.decoder) <span class="cstat-no" title="statement not covered" >chunk = state.decoder.write(chunk);</span></span>
+&nbsp;
+ // don't skip over falsy values in objectMode
+<span class="cstat-no" title="statement not covered" > if (state.objectMode &amp;&amp; (chunk === null || chunk === undefined)) <span class="cstat-no" title="statement not covered" >return;e</span>lse <span class="cstat-no" title="statement not covered" >if (!state.objectMode &amp;&amp; (!chunk || !chunk.length)) <span class="cstat-no" title="statement not covered" >return;</span></span></span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > var ret = self.push(chunk);</span>
+<span class="cstat-no" title="statement not covered" > if (!ret) {</span>
+<span class="cstat-no" title="statement not covered" > paused = true;</span>
+<span class="cstat-no" title="statement not covered" > stream.pause();</span>
+ }
+ });
+&nbsp;
+ // proxy all the other methods.
+ // important when wrapping filters and duplexes.
+ for (var i in stream) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (this[i] === undefined &amp;&amp; typeof stream[i] === 'function') {
+<span class="cstat-no" title="statement not covered" > this[i] = <span class="fstat-no" title="function not covered" >function (method) {</span></span>
+<span class="cstat-no" title="statement not covered" > return <span class="fstat-no" title="function not covered" >function () {</span></span>
+<span class="cstat-no" title="statement not covered" > return stream[method].apply(stream, arguments);</span>
+ };
+ }(i);
+ }
+ }
+&nbsp;
+ // proxy certain important events.
+ var events = ['error', 'close', 'destroy', 'pause', 'resume'];
+ forEach(events, function (ev) {
+ stream.on(ev, self.emit.bind(self, ev));
+ });
+&nbsp;
+ // when we try to consume some more bytes, simply unpause the
+ // underlying stream.
+ self._read = <span class="fstat-no" title="function not covered" >function (n) {</span>
+<span class="cstat-no" title="statement not covered" > debug('wrapped _read', n);</span>
+<span class="cstat-no" title="statement not covered" > if (paused) {</span>
+<span class="cstat-no" title="statement not covered" > paused = false;</span>
+<span class="cstat-no" title="statement not covered" > stream.resume();</span>
+ }
+ };
+&nbsp;
+ return self;
+};
+&nbsp;
+// exposed for testing purposes only.
+Readable._fromList = fromList;
+&nbsp;
+// Pluck off n bytes from an array of buffers.
+// Length is the combined lengths of all the buffers in the list.
+function fromList(n, state) {
+ var list = state.buffer;
+ var length = state.length;
+ var stringMode = !!state.decoder;
+ var objectMode = !!state.objectMode;
+ var ret;
+&nbsp;
+ // nothing in the list, definitely empty.
+ if (list.length === 0) return null;
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (length === 0) <span class="cstat-no" title="statement not covered" >ret = null;e</span>lse if (objectMode) ret = list.shift();else if (!n || n &gt;= length) {
+ // read it all, truncate the array.
+ if (stringMode) ret = list.join('');else if (list.length === 1) ret = list[0];else ret = Buffer.concat(list, length);
+ list.length = 0;
+ } else {
+ // read just some of it.
+ if (n &lt; list[0].length) {
+ // just take a part of the first list item.
+ // slice is the same for buffers and strings.
+ var buf = list[0];
+ ret = buf.slice(0, n);
+ list[0] = buf.slice(n);
+ } else if (n === list[0].length) {
+ // first list is a perfect match
+ ret = list.shift();
+ } else {
+ // complex case.
+ // we have enough to cover it, but it spans past the first buffer.
+ if (stringMode) ret = '';else ret = bufferShim.allocUnsafe(n);
+&nbsp;
+ var c = 0;
+ for (var i = 0, l = list.length; i &lt; l &amp;&amp; c &lt; n; i++) {
+ var _buf = list[0];
+ var cpy = Math.min(n - c, _buf.length);
+&nbsp;
+ if (stringMode) ret += _buf.slice(0, cpy);else _buf.copy(ret, c, 0, cpy);
+&nbsp;
+ if (cpy &lt; _buf.length) list[0] = _buf.slice(cpy);else list.shift();
+&nbsp;
+ c += cpy;
+ }
+ }
+ }
+&nbsp;
+ return ret;
+}
+&nbsp;
+function endReadable(stream) {
+ var state = stream._readableState;
+&nbsp;
+ // If we get here before consuming all the bytes, then that is a
+ // bug in node. Should never happen.
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (state.length &gt; 0) <span class="cstat-no" title="statement not covered" >throw new Error('"endReadable()" called on non-empty stream');</span>
+&nbsp;
+ if (!state.endEmitted) {
+ state.ended = true;
+ processNextTick(endReadableNT, state, stream);
+ }
+}
+&nbsp;
+function endReadableNT(state, stream) {
+ // Check that we didn't get one last unshift.
+ if (!state.endEmitted &amp;&amp; state.length === 0) {
+ state.endEmitted = true;
+ stream.readable = false;
+ stream.emit('end');
+ }
+}
+&nbsp;
+function forEach(xs, f) {
+ for (var i = 0, l = xs.length; i &lt; l; i++) {
+ f(xs[i], i);
+ }
+}
+&nbsp;
+function indexOf(xs, x) {
+ for (var i = 0, l = xs.length; i &lt; l; i++) {
+ if (xs[i] === x) return i;
+ }
+<span class="cstat-no" title="statement not covered" > return -1;</span>
+}</pre></td></tr>
+</table></pre>
+<div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html
new file mode 100644
index 000000000..3542da4f6
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_transform.js.html
@@ -0,0 +1,602 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/_stream_transform.js</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> / <a href="index.html">lib/</a> _stream_transform.js
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">92.11% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>70/76</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">84.21% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>32/38</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">90.91% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>10/11</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">98.48% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>65/66</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line high'></div>
+<pre><table class="coverage">
+<tr><td class="line-count quiet">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-yes">113×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">24×</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-yes">17×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">127×</span>
+<span class="cline-any cline-yes">127×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-yes">117×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">310×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">310×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-yes">116×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">194×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">19×</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// a transform stream is a readable/writable stream where you do
+// something with the data. Sometimes it's called a "filter",
+// but that's not a great name for it, since that implies a thing where
+// some bits pass through, and others are simply ignored. (That would
+// be a valid example of a transform, of course.)
+//
+// While the output is causally related to the input, it's not a
+// necessarily symmetric or synchronous transformation. For example,
+// a zlib stream might take multiple plain-text writes(), and then
+// emit a single compressed chunk some time in the future.
+//
+// Here's how this works:
+//
+// The Transform stream has all the aspects of the readable and writable
+// stream classes. When you write(chunk), that calls _write(chunk,cb)
+// internally, and returns false if there's a lot of pending writes
+// buffered up. When you call read(), that calls _read(n) until
+// there's enough pending readable data buffered up.
+//
+// In a transform stream, the written data is placed in a buffer. When
+// _read(n) is called, it transforms the queued up data, calling the
+// buffered _write cb's as it consumes chunks. If consuming a single
+// written chunk would result in multiple output chunks, then the first
+// outputted bit calls the readcb, and subsequent chunks just go into
+// the read buffer, and will cause it to emit 'readable' if necessary.
+//
+// This way, back-pressure is actually determined by the reading side,
+// since _read has to be called to start processing a new chunk. However,
+// a pathological inflate type of transform can cause excessive buffering
+// here. For example, imagine a stream where every byte of input is
+// interpreted as an integer from 0-255, and then results in that many
+// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in
+// 1kb of data being output. In this case, you could write a very small
+// amount of input, and end up with a very large amount of output. In
+// such a pathological inflating mechanism, there'd be no way to tell
+// the system to stop doing the transform. A single 4MB write could
+// cause the system to run out of memory.
+//
+// However, even in such a pathological case, only a single written chunk
+// would be consumed, and then the rest would wait (un-transformed) until
+// the results of the previous transformed chunk were consumed.
+&nbsp;
+'use strict';
+&nbsp;
+module.exports = Transform;
+&nbsp;
+var Duplex = require('./_stream_duplex');
+&nbsp;
+/*&lt;replacement&gt;*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*&lt;/replacement&gt;*/
+&nbsp;
+util.inherits(Transform, Duplex);
+&nbsp;
+function TransformState(stream) {
+ this.afterTransform = function (er, data) {
+ return afterTransform(stream, er, data);
+ };
+&nbsp;
+ this.needTransform = false;
+ this.transforming = false;
+ this.writecb = null;
+ this.writechunk = null;
+ this.writeencoding = null;
+}
+&nbsp;
+function afterTransform(stream, er, data) {
+ var ts = stream._transformState;
+ ts.transforming = false;
+&nbsp;
+ var cb = ts.writecb;
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!cb) <span class="cstat-no" title="statement not covered" >return stream.emit('error', new Error('no writecb in Transform class'));</span>
+&nbsp;
+ ts.writechunk = null;
+ ts.writecb = null;
+&nbsp;
+ if (data !== null &amp;&amp; data !== undefined) stream.push(data);
+&nbsp;
+ cb(er);
+&nbsp;
+ var rs = stream._readableState;
+ rs.reading = false;
+ if (rs.needReadable || rs.length &lt; rs.highWaterMark) {
+ stream._read(rs.highWaterMark);
+ }
+}
+&nbsp;
+function Transform(options) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!(this instanceof Transform)) <span class="cstat-no" title="statement not covered" >return new Transform(options);</span>
+&nbsp;
+ Duplex.call(this, options);
+&nbsp;
+ this._transformState = new TransformState(this);
+&nbsp;
+ // when the writable side finishes, then flush out anything remaining.
+ var stream = this;
+&nbsp;
+ // start out asking for a readable event once data is transformed.
+ this._readableState.needReadable = true;
+&nbsp;
+ // we have implemented the _read method, and done the other things
+ // that Readable wants before the first _read call, so unset the
+ // sync guard flag.
+ this._readableState.sync = false;
+&nbsp;
+ if (options) {
+ if (typeof options.transform === 'function') this._transform = options.transform;
+&nbsp;
+ if (typeof options.flush === 'function') this._flush = options.flush;
+ }
+&nbsp;
+ this.once('prefinish', function () {
+ if (typeof this._flush === 'function') this._flush(function (er) {
+ done(stream, er);
+ });else done(stream);
+ });
+}
+&nbsp;
+Transform.prototype.push = function (chunk, encoding) {
+ this._transformState.needTransform = false;
+ return Duplex.prototype.push.call(this, chunk, encoding);
+};
+&nbsp;
+// This is the part where you do stuff!
+// override this function in implementation classes.
+// 'chunk' is an input chunk.
+//
+// Call `push(newChunk)` to pass along transformed output
+// to the readable side. You may call 'push' zero or more times.
+//
+// Call `cb(err)` when you are done with this chunk. If you pass
+// an error, then that'll put the hurt on the whole operation. If you
+// never call cb(), then you'll never get another chunk.
+Transform.prototype._transform = <span class="fstat-no" title="function not covered" >function (chunk, encoding, cb) {</span>
+<span class="cstat-no" title="statement not covered" > throw new Error('Not implemented');</span>
+};
+&nbsp;
+Transform.prototype._write = function (chunk, encoding, cb) {
+ var ts = this._transformState;
+ ts.writecb = cb;
+ ts.writechunk = chunk;
+ ts.writeencoding = encoding;
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (!ts.transforming) {
+ var rs = this._readableState;
+ if (ts.needTransform || rs.needReadable || rs.length &lt; rs.highWaterMark) this._read(rs.highWaterMark);
+ }
+};
+&nbsp;
+// Doesn't matter what the args are here.
+// _transform does all the work.
+// That we got here means that the readable side wants more data.
+Transform.prototype._read = function (n) {
+ var ts = this._transformState;
+&nbsp;
+ if (ts.writechunk !== null &amp;&amp; ts.writecb &amp;&amp; !ts.transforming) {
+ ts.transforming = true;
+ this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);
+ } else {
+ // mark that we need a transform, so that any data that comes in
+ // will get processed, now that we've asked for it.
+ ts.needTransform = true;
+ }
+};
+&nbsp;
+function done(stream, er) {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (er) <span class="cstat-no" title="statement not covered" >return stream.emit('error', er);</span>
+&nbsp;
+ // if there's nothing in the write buffer, then that means
+ // that nothing more will ever be provided
+ var ws = stream._writableState;
+ var ts = stream._transformState;
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (ws.length) <span class="cstat-no" title="statement not covered" >throw new Error('Calling transform done when ws.length != 0');</span>
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (ts.transforming) <span class="cstat-no" title="statement not covered" >throw new Error('Calling transform done when still transforming');</span>
+&nbsp;
+ return stream.push(null);
+}</pre></td></tr>
+</table></pre>
+<div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html
new file mode 100644
index 000000000..0b200c9e0
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/lib/_stream_writable.js.html
@@ -0,0 +1,1640 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/_stream_writable.js</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> / <a href="index.html">lib/</a> _stream_writable.js
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">95.52% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>277/290</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">94% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>141/150</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">90.91% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>30/33</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">96.58% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>254/263</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line high'></div>
+<pre><table class="coverage">
+<tr><td class="line-count quiet">1
+2
+3
+4
+5
+6
+7
+8
+9
+10
+11
+12
+13
+14
+15
+16
+17
+18
+19
+20
+21
+22
+23
+24
+25
+26
+27
+28
+29
+30
+31
+32
+33
+34
+35
+36
+37
+38
+39
+40
+41
+42
+43
+44
+45
+46
+47
+48
+49
+50
+51
+52
+53
+54
+55
+56
+57
+58
+59
+60
+61
+62
+63
+64
+65
+66
+67
+68
+69
+70
+71
+72
+73
+74
+75
+76
+77
+78
+79
+80
+81
+82
+83
+84
+85
+86
+87
+88
+89
+90
+91
+92
+93
+94
+95
+96
+97
+98
+99
+100
+101
+102
+103
+104
+105
+106
+107
+108
+109
+110
+111
+112
+113
+114
+115
+116
+117
+118
+119
+120
+121
+122
+123
+124
+125
+126
+127
+128
+129
+130
+131
+132
+133
+134
+135
+136
+137
+138
+139
+140
+141
+142
+143
+144
+145
+146
+147
+148
+149
+150
+151
+152
+153
+154
+155
+156
+157
+158
+159
+160
+161
+162
+163
+164
+165
+166
+167
+168
+169
+170
+171
+172
+173
+174
+175
+176
+177
+178
+179
+180
+181
+182
+183
+184
+185
+186
+187
+188
+189
+190
+191
+192
+193
+194
+195
+196
+197
+198
+199
+200
+201
+202
+203
+204
+205
+206
+207
+208
+209
+210
+211
+212
+213
+214
+215
+216
+217
+218
+219
+220
+221
+222
+223
+224
+225
+226
+227
+228
+229
+230
+231
+232
+233
+234
+235
+236
+237
+238
+239
+240
+241
+242
+243
+244
+245
+246
+247
+248
+249
+250
+251
+252
+253
+254
+255
+256
+257
+258
+259
+260
+261
+262
+263
+264
+265
+266
+267
+268
+269
+270
+271
+272
+273
+274
+275
+276
+277
+278
+279
+280
+281
+282
+283
+284
+285
+286
+287
+288
+289
+290
+291
+292
+293
+294
+295
+296
+297
+298
+299
+300
+301
+302
+303
+304
+305
+306
+307
+308
+309
+310
+311
+312
+313
+314
+315
+316
+317
+318
+319
+320
+321
+322
+323
+324
+325
+326
+327
+328
+329
+330
+331
+332
+333
+334
+335
+336
+337
+338
+339
+340
+341
+342
+343
+344
+345
+346
+347
+348
+349
+350
+351
+352
+353
+354
+355
+356
+357
+358
+359
+360
+361
+362
+363
+364
+365
+366
+367
+368
+369
+370
+371
+372
+373
+374
+375
+376
+377
+378
+379
+380
+381
+382
+383
+384
+385
+386
+387
+388
+389
+390
+391
+392
+393
+394
+395
+396
+397
+398
+399
+400
+401
+402
+403
+404
+405
+406
+407
+408
+409
+410
+411
+412
+413
+414
+415
+416
+417
+418
+419
+420
+421
+422
+423
+424
+425
+426
+427
+428
+429
+430
+431
+432
+433
+434
+435
+436
+437
+438
+439
+440
+441
+442
+443
+444
+445
+446
+447
+448
+449
+450
+451
+452
+453
+454
+455
+456
+457
+458
+459
+460
+461
+462
+463
+464
+465
+466
+467
+468
+469
+470
+471
+472
+473
+474
+475
+476
+477
+478
+479
+480
+481
+482
+483
+484
+485
+486
+487
+488
+489
+490
+491
+492
+493
+494
+495
+496
+497
+498
+499
+500
+501
+502
+503
+504
+505
+506
+507
+508
+509
+510
+511
+512
+513
+514
+515
+516
+517
+518
+519
+520
+521
+522
+523
+524
+525
+526</td><td class="line-coverage quiet"><span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">97×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">97×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-yes">50×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">50×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">96×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4625×</span>
+<span class="cline-any cline-yes">4625×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4625×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-yes">4623×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4625×</span>
+<span class="cline-any cline-yes">4×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4623×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4626×</span>
+<span class="cline-any cline-yes">4626×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4626×</span>
+<span class="cline-any cline-yes">59×</span>
+<span class="cline-any cline-yes">59×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4626×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4626×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4626×</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4624×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">3×</span>
+<span class="cline-any cline-yes">3×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-yes">2×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-yes">2273×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-yes">2265×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">40×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2305×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2316×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4621×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4582×</span>
+<span class="cline-any cline-yes">4582×</span>
+<span class="cline-any cline-yes">4582×</span>
+<span class="cline-any cline-yes">4582×</span>
+<span class="cline-any cline-yes">4582×</span>
+<span class="cline-any cline-yes">4582×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">2254×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2230×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2344×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-yes">4574×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4557×</span>
+<span class="cline-any cline-yes">27×</span>
+<span class="cline-any cline-yes">27×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">2263×</span>
+<span class="cline-any cline-yes">2263×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2263×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-yes">42×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">9×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2254×</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2257×</span>
+<span class="cline-any cline-yes">2252×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2254×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">2263×</span>
+<span class="cline-any cline-yes">2263×</span>
+<span class="cline-any cline-yes">2263×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">65×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">65×</span>
+<span class="cline-any cline-yes">11×</span>
+<span class="cline-any cline-yes">11×</span>
+<span class="cline-any cline-yes">11×</span>
+<span class="cline-any cline-yes">54×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-yes">1×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">65×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">65×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-yes">5×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">65×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">9209×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">125×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">4635×</span>
+<span class="cline-any cline-yes">4635×</span>
+<span class="cline-any cline-yes">125×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-yes">57×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">68×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">4635×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">61×</span>
+<span class="cline-any cline-yes">61×</span>
+<span class="cline-any cline-yes">61×</span>
+<span class="cline-any cline-yes">13×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">61×</span>
+<span class="cline-any cline-yes">61×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">49×</span>
+<span class="cline-any cline-yes">105×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">105×</span>
+<span class="cline-any cline-yes">105×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">105×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-yes">40×</span>
+<span class="cline-any cline-yes">40×</span>
+<span class="cline-any cline-yes">40×</span>
+<span class="cline-any cline-yes">40×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-yes">8×</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-no">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span>
+<span class="cline-any cline-neutral">&nbsp;</span></td><td class="text"><pre class="prettyprint lang-js">// A bit simpler than readable streams.
+// Implement an async ._write(chunk, encoding, cb), and it'll handle all
+// the drain event emission and buffering.
+&nbsp;
+'use strict';
+&nbsp;
+module.exports = Writable;
+&nbsp;
+/*&lt;replacement&gt;*/
+var processNextTick = require('process-nextick-args');
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var asyncWrite = !process.browser &amp;&amp; ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) &gt; -1 ? <span class="branch-0 cbranch-no" title="branch not covered" >setImmediate </span>: processNextTick;
+/*&lt;/replacement&gt;*/
+&nbsp;
+Writable.WritableState = WritableState;
+&nbsp;
+/*&lt;replacement&gt;*/
+var util = require('core-util-is');
+util.inherits = require('inherits');
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var internalUtil = {
+ deprecate: require('util-deprecate')
+};
+/*&lt;/replacement&gt;*/
+&nbsp;
+/*&lt;replacement&gt;*/
+var Stream;
+(function () {
+ try {
+ Stream = require('st' + 'ream');
+ } catch (_) {} finally {
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (!Stream) <span class="cstat-no" title="statement not covered" >Stream = require('events').EventEmitter;</span>
+ }
+})();
+/*&lt;/replacement&gt;*/
+&nbsp;
+var Buffer = require('buffer').Buffer;
+/*&lt;replacement&gt;*/
+var bufferShim = require('buffer-shims');
+/*&lt;/replacement&gt;*/
+&nbsp;
+util.inherits(Writable, Stream);
+&nbsp;
+function nop() {}
+&nbsp;
+function WriteReq(chunk, encoding, cb) {
+ this.chunk = chunk;
+ this.encoding = encoding;
+ this.callback = cb;
+ this.next = null;
+}
+&nbsp;
+var Duplex;
+function WritableState(options, stream) {
+ Duplex = Duplex || <span class="branch-1 cbranch-no" title="branch not covered" >require('./_stream_duplex');</span>
+&nbsp;
+ options = options || {};
+&nbsp;
+ // object stream flag to indicate whether or not this stream
+ // contains buffers or objects.
+ this.objectMode = !!options.objectMode;
+&nbsp;
+ if (stream instanceof Duplex) this.objectMode = this.objectMode || !!options.writableObjectMode;
+&nbsp;
+ // the point at which write() starts returning false
+ // Note: 0 is a valid value, means that we always return false if
+ // the entire buffer is not flushed immediately on write()
+ var hwm = options.highWaterMark;
+ var defaultHwm = this.objectMode ? 16 : 16 * 1024;
+ this.highWaterMark = hwm || hwm === 0 ? hwm : defaultHwm;
+&nbsp;
+ // cast to ints.
+ this.highWaterMark = ~ ~this.highWaterMark;
+&nbsp;
+ this.needDrain = false;
+ // at the start of calling end()
+ this.ending = false;
+ // when end() has been called, and returned
+ this.ended = false;
+ // when 'finish' is emitted
+ this.finished = false;
+&nbsp;
+ // should we decode strings into buffers before passing to _write?
+ // this is here so that some node-core streams can optimize string
+ // handling at a lower level.
+ var noDecode = options.decodeStrings === false;
+ this.decodeStrings = !noDecode;
+&nbsp;
+ // Crypto is kind of old and crusty. Historically, its default string
+ // encoding is 'binary' so we have to make this configurable.
+ // Everything else in the universe uses 'utf8', though.
+ this.defaultEncoding = options.defaultEncoding || 'utf8';
+&nbsp;
+ // not an actual buffer we keep track of, but a measurement
+ // of how much we're waiting to get pushed to some underlying
+ // socket or file.
+ this.length = 0;
+&nbsp;
+ // a flag to see when we're in the middle of a write.
+ this.writing = false;
+&nbsp;
+ // when true all writes will be buffered until .uncork() call
+ this.corked = 0;
+&nbsp;
+ // a flag to be able to tell if the onwrite cb is called immediately,
+ // or on a later tick. We set this to true at first, because any
+ // actions that shouldn't happen until "later" should generally also
+ // not happen before the first write call.
+ this.sync = true;
+&nbsp;
+ // a flag to know if we're processing previously buffered items, which
+ // may call the _write() callback in the same tick, so that we don't
+ // end up in an overlapped onwrite situation.
+ this.bufferProcessing = false;
+&nbsp;
+ // the callback that's passed to _write(chunk,cb)
+ this.onwrite = function (er) {
+ onwrite(stream, er);
+ };
+&nbsp;
+ // the callback that the user supplies to write(chunk,encoding,cb)
+ this.writecb = null;
+&nbsp;
+ // the amount that is being written when _write is called.
+ this.writelen = 0;
+&nbsp;
+ this.bufferedRequest = null;
+ this.lastBufferedRequest = null;
+&nbsp;
+ // number of pending user-supplied write callbacks
+ // this must be 0 before 'finish' can be emitted
+ this.pendingcb = 0;
+&nbsp;
+ // emit prefinish if the only thing we're waiting for is _write cbs
+ // This is relevant for synchronous Transform streams
+ this.prefinished = false;
+&nbsp;
+ // True if the error was already emitted and should not be thrown again
+ this.errorEmitted = false;
+&nbsp;
+ // count buffered requests
+ this.bufferedRequestCount = 0;
+&nbsp;
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
+ this.corkedRequestsFree = new CorkedRequest(this);
+}
+&nbsp;
+WritableState.prototype.getBuffer = function writableStateGetBuffer() {
+ var current = this.bufferedRequest;
+ var out = [];
+ while (current) {
+ out.push(current);
+ current = current.next;
+ }
+ return out;
+};
+&nbsp;
+(function () {
+ try {
+ Object.defineProperty(WritableState.prototype, 'buffer', {
+ get: internalUtil.deprecate(<span class="fstat-no" title="function not covered" >function () {</span>
+<span class="cstat-no" title="statement not covered" > return this.getBuffer();</span>
+ }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.')
+ });
+ } catch (_) {}
+})();
+&nbsp;
+var Duplex;
+function Writable(options) {
+ Duplex = Duplex || require('./_stream_duplex');
+&nbsp;
+ // Writable ctor is applied to Duplexes, though they're not
+ // instanceof Writable, they're instanceof Readable.
+ if (!(this instanceof Writable) &amp;&amp; !(this instanceof Duplex)) return new Writable(options);
+&nbsp;
+ this._writableState = new WritableState(options, this);
+&nbsp;
+ // legacy.
+ this.writable = true;
+&nbsp;
+ if (options) {
+ if (typeof options.write === 'function') this._write = options.write;
+&nbsp;
+ if (typeof options.writev === 'function') this._writev = options.writev;
+ }
+&nbsp;
+ Stream.call(this);
+}
+&nbsp;
+// Otherwise people can pipe Writable streams, which is just wrong.
+Writable.prototype.pipe = function () {
+ this.emit('error', new Error('Cannot pipe, not readable'));
+};
+&nbsp;
+function writeAfterEnd(stream, cb) {
+ var er = new Error('write after end');
+ // TODO: defer error events consistently everywhere, not just the cb
+ stream.emit('error', er);
+ processNextTick(cb, er);
+}
+&nbsp;
+// If we get something that is not a buffer, string, null, or undefined,
+// and we're not in objectMode, then that's an error.
+// Otherwise stream chunks are all considered to be of length=1, and the
+// watermarks determine how many objects to keep in the buffer, rather than
+// how many bytes or characters.
+function validChunk(stream, state, chunk, cb) {
+ var valid = true;
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) &amp;&amp; typeof chunk !== 'string' &amp;&amp; chunk !== undefined &amp;&amp; !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
+ stream.emit('error', er);
+ processNextTick(cb, er);
+ valid = false;
+ }
+ return valid;
+}
+&nbsp;
+Writable.prototype.write = function (chunk, encoding, cb) {
+ var state = this._writableState;
+ var ret = false;
+&nbsp;
+ if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+&nbsp;
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;
+&nbsp;
+ if (typeof cb !== 'function') cb = nop;
+&nbsp;
+ if (state.ended) writeAfterEnd(this, cb);else if (validChunk(this, state, chunk, cb)) {
+ state.pendingcb++;
+ ret = writeOrBuffer(this, state, chunk, encoding, cb);
+ }
+&nbsp;
+ return ret;
+};
+&nbsp;
+Writable.prototype.cork = function () {
+ var state = this._writableState;
+&nbsp;
+ state.corked++;
+};
+&nbsp;
+Writable.prototype.uncork = function () {
+ var state = this._writableState;
+&nbsp;
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (state.corked) {
+ state.corked--;
+&nbsp;
+ if (!state.writing &amp;&amp; !state.corked &amp;&amp; !state.finished &amp;&amp; !state.bufferProcessing &amp;&amp; state.bufferedRequest) clearBuffer(this, state);
+ }
+};
+&nbsp;
+Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
+ // node::ParseEncoding() requires lower case.
+ if (typeof encoding === 'string') encoding = encoding.toLowerCase();
+ if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) &gt; -1)) throw new TypeError('Unknown encoding: ' + encoding);
+ this._writableState.defaultEncoding = encoding;
+ return this;
+};
+&nbsp;
+function decodeChunk(state, chunk, encoding) {
+ if (!state.objectMode &amp;&amp; state.decodeStrings !== false &amp;&amp; typeof chunk === 'string') {
+ chunk = bufferShim.from(chunk, encoding);
+ }
+ return chunk;
+}
+&nbsp;
+// if we're already writing something, then just put this
+// in the queue, and wait our turn. Otherwise, call _write
+// If we return false, then we need a drain event, so set that flag.
+function writeOrBuffer(stream, state, chunk, encoding, cb) {
+ chunk = decodeChunk(state, chunk, encoding);
+&nbsp;
+ if (Buffer.isBuffer(chunk)) encoding = 'buffer';
+ var len = state.objectMode ? 1 : chunk.length;
+&nbsp;
+ state.length += len;
+&nbsp;
+ var ret = state.length &lt; state.highWaterMark;
+ // we must ensure that previous needDrain will not be reset to false.
+ if (!ret) state.needDrain = true;
+&nbsp;
+ if (state.writing || state.corked) {
+ var last = state.lastBufferedRequest;
+ state.lastBufferedRequest = new WriteReq(chunk, encoding, cb);
+ if (last) {
+ last.next = state.lastBufferedRequest;
+ } else {
+ state.bufferedRequest = state.lastBufferedRequest;
+ }
+ state.bufferedRequestCount += 1;
+ } else {
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ }
+&nbsp;
+ return ret;
+}
+&nbsp;
+function doWrite(stream, state, writev, len, chunk, encoding, cb) {
+ state.writelen = len;
+ state.writecb = cb;
+ state.writing = true;
+ state.sync = true;
+ if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);
+ state.sync = false;
+}
+&nbsp;
+<span class="fstat-no" title="function not covered" >function onwriteError(stream, state, sync, er, cb) {</span>
+<span class="cstat-no" title="statement not covered" > --state.pendingcb;</span>
+<span class="cstat-no" title="statement not covered" > if (sync) <span class="cstat-no" title="statement not covered" >processNextTick(cb, er);e</span>lse <span class="cstat-no" title="statement not covered" >cb(er);</span></span>
+&nbsp;
+<span class="cstat-no" title="statement not covered" > stream._writableState.errorEmitted = true;</span>
+<span class="cstat-no" title="statement not covered" > stream.emit('error', er);</span>
+}
+&nbsp;
+function onwriteStateUpdate(state) {
+ state.writing = false;
+ state.writecb = null;
+ state.length -= state.writelen;
+ state.writelen = 0;
+}
+&nbsp;
+function onwrite(stream, er) {
+ var state = stream._writableState;
+ var sync = state.sync;
+ var cb = state.writecb;
+&nbsp;
+ onwriteStateUpdate(state);
+&nbsp;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (er) <span class="cstat-no" title="statement not covered" >onwriteError(stream, state, sync, er, cb);e</span>lse {
+ // Check if we're actually ready to finish, but don't emit yet
+ var finished = needFinish(state);
+&nbsp;
+ if (!finished &amp;&amp; !state.corked &amp;&amp; !state.bufferProcessing &amp;&amp; state.bufferedRequest) {
+ clearBuffer(stream, state);
+ }
+&nbsp;
+ if (sync) {
+ /*&lt;replacement&gt;*/
+ asyncWrite(afterWrite, stream, state, finished, cb);
+ /*&lt;/replacement&gt;*/
+ } else {
+ afterWrite(stream, state, finished, cb);
+ }
+ }
+}
+&nbsp;
+function afterWrite(stream, state, finished, cb) {
+ if (!finished) onwriteDrain(stream, state);
+ state.pendingcb--;
+ cb();
+ finishMaybe(stream, state);
+}
+&nbsp;
+// Must force callback to be called on nextTick, so that we don't
+// emit 'drain' before the write() consumer gets the 'false' return
+// value, and has a chance to attach a 'drain' listener.
+function onwriteDrain(stream, state) {
+ if (state.length === 0 &amp;&amp; state.needDrain) {
+ state.needDrain = false;
+ stream.emit('drain');
+ }
+}
+&nbsp;
+// if there's something in the buffer waiting, then process it
+function clearBuffer(stream, state) {
+ state.bufferProcessing = true;
+ var entry = state.bufferedRequest;
+&nbsp;
+ if (stream._writev &amp;&amp; entry &amp;&amp; entry.next) {
+ // Fast case, write everything using _writev()
+ var l = state.bufferedRequestCount;
+ var buffer = new Array(l);
+ var holder = state.corkedRequestsFree;
+ holder.entry = entry;
+&nbsp;
+ var count = 0;
+ while (entry) {
+ buffer[count] = entry;
+ entry = entry.next;
+ count += 1;
+ }
+&nbsp;
+ doWrite(stream, state, true, state.length, buffer, '', holder.finish);
+&nbsp;
+ // doWrite is almost always async, defer these to save a bit of time
+ // as the hot path ends with doWrite
+ state.pendingcb++;
+ state.lastBufferedRequest = null;
+ <span class="missing-if-branch" title="if path not taken" >I</span>if (holder.next) {
+<span class="cstat-no" title="statement not covered" > state.corkedRequestsFree = holder.next;</span>
+<span class="cstat-no" title="statement not covered" > holder.next = null;</span>
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
+ } else {
+ // Slow case, write chunks one-by-one
+ while (entry) {
+ var chunk = entry.chunk;
+ var encoding = entry.encoding;
+ var cb = entry.callback;
+ var len = state.objectMode ? 1 : chunk.length;
+&nbsp;
+ doWrite(stream, state, false, len, chunk, encoding, cb);
+ entry = entry.next;
+ // if we didn't call the onwrite immediately, then
+ // it means that we need to wait until it does.
+ // also, that means that the chunk and cb are currently
+ // being processed, so move the buffer counter past them.
+ if (state.writing) {
+ break;
+ }
+ }
+&nbsp;
+ if (entry === null) state.lastBufferedRequest = null;
+ }
+&nbsp;
+ state.bufferedRequestCount = 0;
+ state.bufferedRequest = entry;
+ state.bufferProcessing = false;
+}
+&nbsp;
+Writable.prototype._write = <span class="fstat-no" title="function not covered" >function (chunk, encoding, cb) {</span>
+<span class="cstat-no" title="statement not covered" > cb(new Error('not implemented'));</span>
+};
+&nbsp;
+Writable.prototype._writev = null;
+&nbsp;
+Writable.prototype.end = function (chunk, encoding, cb) {
+ var state = this._writableState;
+&nbsp;
+ if (typeof chunk === 'function') {
+ cb = chunk;
+ chunk = null;
+ encoding = null;
+ } else if (typeof encoding === 'function') {
+ cb = encoding;
+ encoding = null;
+ }
+&nbsp;
+ if (chunk !== null &amp;&amp; chunk !== undefined) this.write(chunk, encoding);
+&nbsp;
+ // .end() fully uncorks
+ if (state.corked) {
+ state.corked = 1;
+ this.uncork();
+ }
+&nbsp;
+ // ignore unnecessary end() calls.
+ if (!state.ending &amp;&amp; !state.finished) endWritable(this, state, cb);
+};
+&nbsp;
+function needFinish(state) {
+ return state.ending &amp;&amp; state.length === 0 &amp;&amp; state.bufferedRequest === null &amp;&amp; !state.finished &amp;&amp; !state.writing;
+}
+&nbsp;
+function prefinish(stream, state) {
+ if (!state.prefinished) {
+ state.prefinished = true;
+ stream.emit('prefinish');
+ }
+}
+&nbsp;
+function finishMaybe(stream, state) {
+ var need = needFinish(state);
+ if (need) {
+ if (state.pendingcb === 0) {
+ prefinish(stream, state);
+ state.finished = true;
+ stream.emit('finish');
+ } else {
+ prefinish(stream, state);
+ }
+ }
+ return need;
+}
+&nbsp;
+function endWritable(stream, state, cb) {
+ state.ending = true;
+ finishMaybe(stream, state);
+ if (cb) {
+ if (state.finished) processNextTick(cb);else stream.once('finish', cb);
+ }
+ state.ended = true;
+ stream.writable = false;
+}
+&nbsp;
+// It seems a linked list but it is not
+// there will be only 2 of these for each stream
+function CorkedRequest(state) {
+ var _this = this;
+&nbsp;
+ this.next = null;
+ this.entry = null;
+&nbsp;
+ this.finish = function (err) {
+ var entry = _this.entry;
+ _this.entry = null;
+ while (entry) {
+ var cb = entry.callback;
+ state.pendingcb--;
+ cb(err);
+ entry = entry.next;
+ }
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (state.corkedRequestsFree) {
+ state.corkedRequestsFree.next = _this;
+ } else {
+<span class="cstat-no" title="statement not covered" > state.corkedRequestsFree = _this;</span>
+ }
+ };
+}</pre></td></tr>
+</table></pre>
+<div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/lib/index.html b/node_modules/readable-stream/coverage/lcov-report/lib/index.html
new file mode 100644
index 000000000..5240d877e
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/lib/index.html
@@ -0,0 +1,145 @@
+<!doctype html>
+<html lang="en">
+<head>
+ <title>Code coverage report for lib/</title>
+ <meta charset="utf-8" />
+ <link rel="stylesheet" href="../prettify.css" />
+ <link rel="stylesheet" href="../base.css" />
+ <meta name="viewport" content="width=device-width, initial-scale=1">
+ <style type='text/css'>
+ .coverage-summary .sorter {
+ background-image: url(../sort-arrow-sprite.png);
+ }
+ </style>
+</head>
+<body>
+<div class='wrapper'>
+ <div class='pad1'>
+ <h1>
+ <a href="../index.html">all files</a> lib/
+ </h1>
+ <div class='clearfix'>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">90.63% </span>
+ <span class="quiet">Statements</span>
+ <span class='fraction'>851/939</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">87.94% </span>
+ <span class="quiet">Branches</span>
+ <span class='fraction'>496/564</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">86.54% </span>
+ <span class="quiet">Functions</span>
+ <span class='fraction'>90/104</span>
+ </div>
+ <div class='fl pad1y space-right2'>
+ <span class="strong">92.73% </span>
+ <span class="quiet">Lines</span>
+ <span class='fraction'>765/825</span>
+ </div>
+ </div>
+ </div>
+ <div class='status-line high'></div>
+<div class="pad1">
+<table class="coverage-summary">
+<thead>
+<tr>
+ <th data-col="file" data-fmt="html" data-html="true" class="file">File</th>
+ <th data-col="pic" data-type="number" data-fmt="html" data-html="true" class="pic"></th>
+ <th data-col="statements" data-type="number" data-fmt="pct" class="pct">Statements</th>
+ <th data-col="statements_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="branches" data-type="number" data-fmt="pct" class="pct">Branches</th>
+ <th data-col="branches_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="functions" data-type="number" data-fmt="pct" class="pct">Functions</th>
+ <th data-col="functions_raw" data-type="number" data-fmt="html" class="abs"></th>
+ <th data-col="lines" data-type="number" data-fmt="pct" class="pct">Lines</th>
+ <th data-col="lines_raw" data-type="number" data-fmt="html" class="abs"></th>
+</tr>
+</thead>
+<tbody><tr>
+ <td class="file medium" data-value="_stream_duplex.js"><a href="_stream_duplex.js.html">_stream_duplex.js</a></td>
+ <td data-value="69.23" class="pic medium"><div class="chart"><div class="cover-fill" style="width: 69%;"></div><div class="cover-empty" style="width:31%;"></div></div></td>
+ <td data-value="69.23" class="pct medium">69.23%</td>
+ <td data-value="39" class="abs medium">27/39</td>
+ <td data-value="68.18" class="pct medium">68.18%</td>
+ <td data-value="22" class="abs medium">15/22</td>
+ <td data-value="40" class="pct low">40%</td>
+ <td data-value="5" class="abs low">2/5</td>
+ <td data-value="75.76" class="pct medium">75.76%</td>
+ <td data-value="33" class="abs medium">25/33</td>
+ </tr>
+
+<tr>
+ <td class="file high" data-value="_stream_passthrough.js"><a href="_stream_passthrough.js.html">_stream_passthrough.js</a></td>
+ <td data-value="90.91" class="pic high"><div class="chart"><div class="cover-fill" style="width: 90%;"></div><div class="cover-empty" style="width:10%;"></div></div></td>
+ <td data-value="90.91" class="pct high">90.91%</td>
+ <td data-value="11" class="abs high">10/11</td>
+ <td data-value="50" class="pct medium">50%</td>
+ <td data-value="2" class="abs medium">1/2</td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="2" class="abs high">2/2</td>
+ <td data-value="100" class="pct high">100%</td>
+ <td data-value="10" class="abs high">10/10</td>
+ </tr>
+
+<tr>
+ <td class="file high" data-value="_stream_readable.js"><a href="_stream_readable.js.html">_stream_readable.js</a></td>
+ <td data-value="89.29" class="pic high"><div class="chart"><div class="cover-fill" style="width: 89%;"></div><div class="cover-empty" style="width:11%;"></div></div></td>
+ <td data-value="89.29" class="pct high">89.29%</td>
+ <td data-value="523" class="abs high">467/523</td>
+ <td data-value="87.22" class="pct high">87.22%</td>
+ <td data-value="352" class="abs high">307/352</td>
+ <td data-value="86.79" class="pct high">86.79%</td>
+ <td data-value="53" class="abs high">46/53</td>
+ <td data-value="90.73" class="pct high">90.73%</td>
+ <td data-value="453" class="abs high">411/453</td>
+ </tr>
+
+<tr>
+ <td class="file high" data-value="_stream_transform.js"><a href="_stream_transform.js.html">_stream_transform.js</a></td>
+ <td data-value="92.11" class="pic high"><div class="chart"><div class="cover-fill" style="width: 92%;"></div><div class="cover-empty" style="width:8%;"></div></div></td>
+ <td data-value="92.11" class="pct high">92.11%</td>
+ <td data-value="76" class="abs high">70/76</td>
+ <td data-value="84.21" class="pct high">84.21%</td>
+ <td data-value="38" class="abs high">32/38</td>
+ <td data-value="90.91" class="pct high">90.91%</td>
+ <td data-value="11" class="abs high">10/11</td>
+ <td data-value="98.48" class="pct high">98.48%</td>
+ <td data-value="66" class="abs high">65/66</td>
+ </tr>
+
+<tr>
+ <td class="file high" data-value="_stream_writable.js"><a href="_stream_writable.js.html">_stream_writable.js</a></td>
+ <td data-value="95.52" class="pic high"><div class="chart"><div class="cover-fill" style="width: 95%;"></div><div class="cover-empty" style="width:5%;"></div></div></td>
+ <td data-value="95.52" class="pct high">95.52%</td>
+ <td data-value="290" class="abs high">277/290</td>
+ <td data-value="94" class="pct high">94%</td>
+ <td data-value="150" class="abs high">141/150</td>
+ <td data-value="90.91" class="pct high">90.91%</td>
+ <td data-value="33" class="abs high">30/33</td>
+ <td data-value="96.58" class="pct high">96.58%</td>
+ <td data-value="263" class="abs high">254/263</td>
+ </tr>
+
+</tbody>
+</table>
+</div><div class='push'></div><!-- for sticky footer -->
+</div><!-- /wrapper -->
+<div class='footer quiet pad2 space-top1 center small'>
+ Code coverage
+ generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Wed May 18 2016 10:10:05 GMT-0400 (EDT)
+</div>
+</div>
+<script src="../prettify.js"></script>
+<script>
+window.onload = function () {
+ if (typeof prettyPrint === 'function') {
+ prettyPrint();
+ }
+};
+</script>
+<script src="../sorter.js"></script>
+</body>
+</html>
diff --git a/node_modules/readable-stream/coverage/lcov-report/prettify.css b/node_modules/readable-stream/coverage/lcov-report/prettify.css
new file mode 100644
index 000000000..b317a7cda
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/prettify.css
@@ -0,0 +1 @@
+.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee}
diff --git a/node_modules/readable-stream/coverage/lcov-report/prettify.js b/node_modules/readable-stream/coverage/lcov-report/prettify.js
new file mode 100644
index 000000000..ef51e0386
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/prettify.js
@@ -0,0 +1 @@
+window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
diff --git a/node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.png b/node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.png
new file mode 100644
index 000000000..03f704a60
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/sort-arrow-sprite.png
Binary files differ
diff --git a/node_modules/readable-stream/coverage/lcov-report/sorter.js b/node_modules/readable-stream/coverage/lcov-report/sorter.js
new file mode 100644
index 000000000..6c5034e40
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov-report/sorter.js
@@ -0,0 +1,158 @@
+var addSorting = (function () {
+ "use strict";
+ var cols,
+ currentSort = {
+ index: 0,
+ desc: false
+ };
+
+ // returns the summary table element
+ function getTable() { return document.querySelector('.coverage-summary'); }
+ // returns the thead element of the summary table
+ function getTableHeader() { return getTable().querySelector('thead tr'); }
+ // returns the tbody element of the summary table
+ function getTableBody() { return getTable().querySelector('tbody'); }
+ // returns the th element for nth column
+ function getNthColumn(n) { return getTableHeader().querySelectorAll('th')[n]; }
+
+ // loads all columns
+ function loadColumns() {
+ var colNodes = getTableHeader().querySelectorAll('th'),
+ colNode,
+ cols = [],
+ col,
+ i;
+
+ for (i = 0; i < colNodes.length; i += 1) {
+ colNode = colNodes[i];
+ col = {
+ key: colNode.getAttribute('data-col'),
+ sortable: !colNode.getAttribute('data-nosort'),
+ type: colNode.getAttribute('data-type') || 'string'
+ };
+ cols.push(col);
+ if (col.sortable) {
+ col.defaultDescSort = col.type === 'number';
+ colNode.innerHTML = colNode.innerHTML + '<span class="sorter"></span>';
+ }
+ }
+ return cols;
+ }
+ // attaches a data attribute to every tr element with an object
+ // of data values keyed by column name
+ function loadRowData(tableRow) {
+ var tableCols = tableRow.querySelectorAll('td'),
+ colNode,
+ col,
+ data = {},
+ i,
+ val;
+ for (i = 0; i < tableCols.length; i += 1) {
+ colNode = tableCols[i];
+ col = cols[i];
+ val = colNode.getAttribute('data-value');
+ if (col.type === 'number') {
+ val = Number(val);
+ }
+ data[col.key] = val;
+ }
+ return data;
+ }
+ // loads all row data
+ function loadData() {
+ var rows = getTableBody().querySelectorAll('tr'),
+ i;
+
+ for (i = 0; i < rows.length; i += 1) {
+ rows[i].data = loadRowData(rows[i]);
+ }
+ }
+ // sorts the table using the data for the ith column
+ function sortByIndex(index, desc) {
+ var key = cols[index].key,
+ sorter = function (a, b) {
+ a = a.data[key];
+ b = b.data[key];
+ return a < b ? -1 : a > b ? 1 : 0;
+ },
+ finalSorter = sorter,
+ tableBody = document.querySelector('.coverage-summary tbody'),
+ rowNodes = tableBody.querySelectorAll('tr'),
+ rows = [],
+ i;
+
+ if (desc) {
+ finalSorter = function (a, b) {
+ return -1 * sorter(a, b);
+ };
+ }
+
+ for (i = 0; i < rowNodes.length; i += 1) {
+ rows.push(rowNodes[i]);
+ tableBody.removeChild(rowNodes[i]);
+ }
+
+ rows.sort(finalSorter);
+
+ for (i = 0; i < rows.length; i += 1) {
+ tableBody.appendChild(rows[i]);
+ }
+ }
+ // removes sort indicators for current column being sorted
+ function removeSortIndicators() {
+ var col = getNthColumn(currentSort.index),
+ cls = col.className;
+
+ cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
+ col.className = cls;
+ }
+ // adds sort indicators for current column being sorted
+ function addSortIndicators() {
+ getNthColumn(currentSort.index).className += currentSort.desc ? ' sorted-desc' : ' sorted';
+ }
+ // adds event listeners for all sorter widgets
+ function enableUI() {
+ var i,
+ el,
+ ithSorter = function ithSorter(i) {
+ var col = cols[i];
+
+ return function () {
+ var desc = col.defaultDescSort;
+
+ if (currentSort.index === i) {
+ desc = !currentSort.desc;
+ }
+ sortByIndex(i, desc);
+ removeSortIndicators();
+ currentSort.index = i;
+ currentSort.desc = desc;
+ addSortIndicators();
+ };
+ };
+ for (i =0 ; i < cols.length; i += 1) {
+ if (cols[i].sortable) {
+ // add the click event handler on the th so users
+ // dont have to click on those tiny arrows
+ el = getNthColumn(i).querySelector('.sorter').parentElement;
+ if (el.addEventListener) {
+ el.addEventListener('click', ithSorter(i));
+ } else {
+ el.attachEvent('onclick', ithSorter(i));
+ }
+ }
+ }
+ }
+ // adds sorting functionality to the UI
+ return function () {
+ if (!getTable()) {
+ return;
+ }
+ cols = loadColumns();
+ loadData(cols);
+ addSortIndicators();
+ enableUI();
+ };
+})();
+
+window.addEventListener('load', addSorting);
diff --git a/node_modules/readable-stream/coverage/lcov.info b/node_modules/readable-stream/coverage/lcov.info
new file mode 100644
index 000000000..d0012ea3c
--- /dev/null
+++ b/node_modules/readable-stream/coverage/lcov.info
@@ -0,0 +1,1642 @@
+TN:
+SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_readable.js
+FN:18,(anonymous_1)
+FN:25,(anonymous_2)
+FN:50,(anonymous_3)
+FN:60,prependListener
+FN:72,ReadableState
+FN:139,Readable
+FN:158,(anonymous_7)
+FN:173,(anonymous_8)
+FN:178,(anonymous_9)
+FN:182,readableAddChunk
+FN:237,needMoreData
+FN:242,(anonymous_12)
+FN:251,computeNewHighWaterMark
+FN:267,howMuchToRead
+FN:299,(anonymous_15)
+FN:399,chunkInvalid
+FN:407,onEofChunk
+FN:425,emitReadable
+FN:435,emitReadable_
+FN:447,maybeReadMore
+FN:454,maybeReadMore_
+FN:470,(anonymous_22)
+FN:474,(anonymous_23)
+FN:498,onunpipe
+FN:505,onend
+FN:518,cleanup
+FN:541,ondata
+FN:559,onerror
+FN:570,onclose
+FN:575,onfinish
+FN:582,unpipe
+FN:599,pipeOnDrain
+FN:600,(anonymous_33)
+FN:611,(anonymous_34)
+FN:662,(anonymous_35)
+FN:689,nReadingNextTick
+FN:696,(anonymous_37)
+FN:706,resume
+FN:713,resume_
+FN:725,(anonymous_40)
+FN:735,flow
+FN:748,(anonymous_42)
+FN:753,(anonymous_43)
+FN:763,(anonymous_44)
+FN:781,(anonymous_45)
+FN:782,(anonymous_46)
+FN:791,(anonymous_47)
+FN:797,(anonymous_48)
+FN:813,fromList
+FN:860,endReadable
+FN:873,endReadableNT
+FN:882,forEach
+FN:888,indexOf
+FNF:53
+FNH:46
+FNDA:269,(anonymous_1)
+FNDA:49,(anonymous_2)
+FNDA:0,(anonymous_3)
+FNDA:38,prependListener
+FNDA:82,ReadableState
+FNDA:84,Readable
+FNDA:276927,(anonymous_7)
+FNDA:41,(anonymous_8)
+FNDA:4,(anonymous_9)
+FNDA:276968,readableAddChunk
+FNDA:276966,needMoreData
+FNDA:5,(anonymous_12)
+FNDA:4,computeNewHighWaterMark
+FNDA:554235,howMuchToRead
+FNDA:277657,(anonymous_15)
+FNDA:276968,chunkInvalid
+FNDA:67,onEofChunk
+FNDA:276722,emitReadable
+FNDA:1123,emitReadable_
+FNDA:276881,maybeReadMore
+FNDA:225,maybeReadMore_
+FNDA:0,(anonymous_22)
+FNDA:38,(anonymous_23)
+FNDA:25,onunpipe
+FNDA:12,onend
+FNDA:24,cleanup
+FNDA:395,ondata
+FNDA:5,onerror
+FNDA:0,onclose
+FNDA:6,onfinish
+FNDA:11,unpipe
+FNDA:38,pipeOnDrain
+FNDA:265,(anonymous_33)
+FNDA:27,(anonymous_34)
+FNDA:226,(anonymous_35)
+FNDA:25,nReadingNextTick
+FNDA:57,(anonymous_37)
+FNDA:56,resume
+FNDA:42,resume_
+FNDA:272,(anonymous_40)
+FNDA:1428,flow
+FNDA:1,(anonymous_42)
+FNDA:1,(anonymous_43)
+FNDA:0,(anonymous_44)
+FNDA:0,(anonymous_45)
+FNDA:0,(anonymous_46)
+FNDA:5,(anonymous_47)
+FNDA:0,(anonymous_48)
+FNDA:757,fromList
+FNDA:316,endReadable
+FNDA:314,endReadableNT
+FNDA:1,forEach
+FNDA:2,indexOf
+DA:3,49
+DA:6,49
+DA:10,49
+DA:13,49
+DA:16,49
+DA:18,49
+DA:19,269
+DA:24,49
+DA:25,49
+DA:26,49
+DA:27,49
+DA:29,49
+DA:34,49
+DA:36,49
+DA:40,49
+DA:41,49
+DA:45,49
+DA:46,49
+DA:47,49
+DA:48,49
+DA:50,0
+DA:54,49
+DA:56,49
+DA:58,49
+DA:60,49
+DA:61,38
+DA:68,38
+DA:71,49
+DA:72,49
+DA:73,82
+DA:75,82
+DA:79,82
+DA:81,82
+DA:85,82
+DA:86,82
+DA:87,82
+DA:90,82
+DA:92,82
+DA:93,82
+DA:94,82
+DA:95,82
+DA:96,82
+DA:97,82
+DA:98,82
+DA:99,82
+DA:105,82
+DA:109,82
+DA:110,82
+DA:111,82
+DA:112,82
+DA:117,82
+DA:121,82
+DA:124,82
+DA:127,82
+DA:129,82
+DA:130,82
+DA:131,82
+DA:132,10
+DA:133,10
+DA:134,10
+DA:138,49
+DA:139,49
+DA:140,84
+DA:142,84
+DA:144,82
+DA:147,82
+DA:149,82
+DA:151,82
+DA:158,49
+DA:159,276927
+DA:161,276927
+DA:162,37
+DA:163,37
+DA:164,10
+DA:165,10
+DA:169,276927
+DA:173,49
+DA:174,41
+DA:175,41
+DA:178,49
+DA:179,4
+DA:182,49
+DA:183,276968
+DA:184,276968
+DA:185,0
+DA:186,276968
+DA:187,67
+DA:188,67
+DA:189,276901
+DA:190,276883
+DA:191,1
+DA:192,1
+DA:193,276882
+DA:194,1
+DA:195,1
+DA:197,276881
+DA:198,276881
+DA:199,23
+DA:200,23
+DA:203,276881
+DA:207,276881
+DA:209,276875
+DA:210,108
+DA:211,108
+DA:214,276767
+DA:215,276767
+DA:217,276767
+DA:221,276881
+DA:223,18
+DA:224,9
+DA:227,276966
+DA:237,49
+DA:238,276966
+DA:242,49
+DA:243,5
+DA:244,5
+DA:245,5
+DA:246,5
+DA:250,49
+DA:251,49
+DA:252,4
+DA:253,0
+DA:256,4
+DA:257,4
+DA:258,4
+DA:259,4
+DA:260,4
+DA:261,4
+DA:262,4
+DA:264,4
+DA:267,49
+DA:268,554235
+DA:270,553951
+DA:272,553860
+DA:274,421
+DA:277,553439
+DA:283,2087
+DA:286,2087
+DA:287,1711
+DA:288,1697
+DA:289,1697
+DA:291,14
+DA:295,376
+DA:299,49
+DA:300,277657
+DA:301,277657
+DA:302,277657
+DA:304,277657
+DA:309,277657
+DA:310,6
+DA:311,6
+DA:312,6
+DA:315,277651
+DA:318,277651
+DA:319,279
+DA:320,279
+DA:346,277372
+DA:347,277372
+DA:350,277372
+DA:351,277365
+DA:352,277365
+DA:357,277372
+DA:358,556
+DA:359,556
+DA:362,277372
+DA:363,276809
+DA:364,276809
+DA:365,276809
+DA:367,276809
+DA:369,276809
+DA:370,276809
+DA:375,277372
+DA:377,277372
+DA:378,277372
+DA:380,277372
+DA:381,276627
+DA:382,276627
+DA:385,277372
+DA:389,277372
+DA:392,277372
+DA:394,277372
+DA:396,277372
+DA:399,49
+DA:400,276968
+DA:401,276968
+DA:402,0
+DA:404,276968
+DA:407,49
+DA:408,67
+DA:409,59
+DA:410,14
+DA:411,14
+DA:412,4
+DA:413,4
+DA:416,59
+DA:419,59
+DA:425,49
+DA:426,276722
+DA:427,276722
+DA:428,276722
+DA:429,1123
+DA:430,1123
+DA:431,1123
+DA:435,49
+DA:436,1123
+DA:437,1123
+DA:438,1123
+DA:447,49
+DA:448,276881
+DA:449,225
+DA:450,225
+DA:454,49
+DA:455,225
+DA:456,225
+DA:457,275597
+DA:458,275597
+DA:459,275597
+DA:461,275571
+DA:463,225
+DA:470,49
+DA:471,0
+DA:474,49
+DA:475,38
+DA:476,38
+DA:478,38
+DA:480,37
+DA:481,37
+DA:483,1
+DA:484,1
+DA:486,0
+DA:487,0
+DA:489,38
+DA:490,38
+DA:492,38
+DA:494,38
+DA:495,38
+DA:497,38
+DA:498,49
+DA:499,25
+DA:500,25
+DA:501,24
+DA:505,49
+DA:506,12
+DA:507,12
+DA:514,38
+DA:515,38
+DA:517,38
+DA:518,49
+DA:519,24
+DA:521,24
+DA:522,24
+DA:523,24
+DA:524,24
+DA:525,24
+DA:526,24
+DA:527,24
+DA:528,24
+DA:530,24
+DA:537,24
+DA:540,38
+DA:541,49
+DA:542,395
+DA:543,395
+DA:544,395
+DA:549,264
+DA:550,263
+DA:551,263
+DA:553,264
+DA:559,49
+DA:560,5
+DA:561,5
+DA:562,5
+DA:563,5
+DA:567,38
+DA:570,49
+DA:571,0
+DA:572,0
+DA:574,38
+DA:575,49
+DA:576,6
+DA:577,6
+DA:578,6
+DA:580,38
+DA:582,49
+DA:583,11
+DA:584,11
+DA:588,38
+DA:591,38
+DA:592,12
+DA:593,12
+DA:596,38
+DA:599,49
+DA:600,38
+DA:601,265
+DA:602,265
+DA:603,265
+DA:604,265
+DA:605,263
+DA:606,263
+DA:611,49
+DA:612,27
+DA:615,27
+DA:618,24
+DA:620,24
+DA:622,24
+DA:625,24
+DA:626,24
+DA:627,24
+DA:628,24
+DA:629,24
+DA:634,0
+DA:636,0
+DA:637,0
+DA:638,0
+DA:639,0
+DA:640,0
+DA:642,0
+DA:643,0
+DA:644,0
+DA:648,0
+DA:649,0
+DA:651,0
+DA:652,0
+DA:653,0
+DA:655,0
+DA:657,0
+DA:662,49
+DA:663,226
+DA:667,226
+DA:668,36
+DA:671,226
+DA:672,38
+DA:673,38
+DA:674,28
+DA:675,28
+DA:676,28
+DA:677,28
+DA:678,25
+DA:679,3
+DA:680,1
+DA:685,226
+DA:687,49
+DA:689,49
+DA:690,25
+DA:691,25
+DA:696,49
+DA:697,57
+DA:698,57
+DA:699,56
+DA:700,56
+DA:701,56
+DA:703,57
+DA:706,49
+DA:707,56
+DA:708,42
+DA:709,42
+DA:713,49
+DA:714,42
+DA:715,38
+DA:716,38
+DA:719,42
+DA:720,42
+DA:721,42
+DA:722,42
+DA:725,49
+DA:726,272
+DA:727,272
+DA:728,270
+DA:729,270
+DA:730,270
+DA:732,272
+DA:735,49
+DA:736,1428
+DA:737,1428
+DA:738,1428
+DA:739,345
+DA:740,395
+DA:748,49
+DA:749,1
+DA:750,1
+DA:752,1
+DA:753,1
+DA:754,1
+DA:755,1
+DA:756,0
+DA:757,0
+DA:760,1
+DA:763,1
+DA:764,0
+DA:765,0
+DA:768,0
+DA:770,0
+DA:771,0
+DA:772,0
+DA:773,0
+DA:779,1
+DA:780,16
+DA:781,0
+DA:782,0
+DA:783,0
+DA:790,1
+DA:791,1
+DA:792,5
+DA:797,1
+DA:798,0
+DA:799,0
+DA:800,0
+DA:801,0
+DA:805,1
+DA:809,49
+DA:813,49
+DA:814,757
+DA:815,757
+DA:816,757
+DA:817,757
+DA:818,757
+DA:821,757
+DA:823,753
+DA:825,280
+DA:826,280
+DA:829,434
+DA:832,114
+DA:833,114
+DA:834,114
+DA:835,320
+DA:837,264
+DA:841,56
+DA:843,56
+DA:844,56
+DA:845,186
+DA:846,186
+DA:848,186
+DA:850,186
+DA:852,186
+DA:857,753
+DA:860,49
+DA:861,316
+DA:865,316
+DA:867,316
+DA:868,314
+DA:869,314
+DA:873,49
+DA:875,314
+DA:876,54
+DA:877,54
+DA:878,54
+DA:882,49
+DA:883,1
+DA:884,5
+DA:888,49
+DA:889,2
+DA:890,3
+DA:892,0
+LF:453
+LH:411
+BRDA:29,1,0,0
+BRDA:29,1,1,49
+BRDA:47,2,0,49
+BRDA:47,2,1,0
+BRDA:47,3,0,49
+BRDA:47,3,1,49
+BRDA:61,4,0,0
+BRDA:61,4,1,38
+BRDA:68,5,0,33
+BRDA:68,5,1,5
+BRDA:68,6,0,38
+BRDA:68,6,1,38
+BRDA:68,7,0,0
+BRDA:68,7,1,5
+BRDA:73,8,0,82
+BRDA:73,8,1,0
+BRDA:75,9,0,82
+BRDA:75,9,1,40
+BRDA:81,10,0,25
+BRDA:81,10,1,57
+BRDA:81,11,0,25
+BRDA:81,11,1,17
+BRDA:86,12,0,19
+BRDA:86,12,1,63
+BRDA:87,13,0,15
+BRDA:87,13,1,67
+BRDA:87,14,0,82
+BRDA:87,14,1,67
+BRDA:117,15,0,82
+BRDA:117,15,1,82
+BRDA:131,16,0,10
+BRDA:131,16,1,72
+BRDA:132,17,0,6
+BRDA:132,17,1,4
+BRDA:140,18,0,84
+BRDA:140,18,1,39
+BRDA:142,19,0,2
+BRDA:142,19,1,82
+BRDA:149,20,0,1
+BRDA:149,20,1,81
+BRDA:149,21,0,82
+BRDA:149,21,1,42
+BRDA:161,22,0,37
+BRDA:161,22,1,276890
+BRDA:161,23,0,276927
+BRDA:161,23,1,276819
+BRDA:162,24,0,37
+BRDA:162,24,1,37
+BRDA:163,25,0,10
+BRDA:163,25,1,27
+BRDA:184,26,0,0
+BRDA:184,26,1,276968
+BRDA:186,27,0,67
+BRDA:186,27,1,276901
+BRDA:189,28,0,276883
+BRDA:189,28,1,18
+BRDA:189,29,0,276901
+BRDA:189,29,1,276810
+BRDA:189,29,2,276810
+BRDA:190,30,0,1
+BRDA:190,30,1,276882
+BRDA:190,31,0,276883
+BRDA:190,31,1,3
+BRDA:193,32,0,1
+BRDA:193,32,1,276881
+BRDA:193,33,0,276882
+BRDA:193,33,1,1
+BRDA:198,34,0,23
+BRDA:198,34,1,276858
+BRDA:198,35,0,276881
+BRDA:198,35,1,50
+BRDA:198,35,2,50
+BRDA:200,36,0,23
+BRDA:200,36,1,23
+BRDA:203,37,0,276850
+BRDA:203,37,1,31
+BRDA:207,38,0,276875
+BRDA:207,38,1,6
+BRDA:209,39,0,108
+BRDA:209,39,1,276767
+BRDA:209,40,0,276875
+BRDA:209,40,1,152
+BRDA:209,40,2,143
+BRDA:214,41,0,51
+BRDA:214,41,1,276716
+BRDA:215,42,0,31
+BRDA:215,42,1,276736
+BRDA:217,43,0,276660
+BRDA:217,43,1,107
+BRDA:223,44,0,9
+BRDA:223,44,1,9
+BRDA:238,45,0,276966
+BRDA:238,45,1,276896
+BRDA:238,45,2,276704
+BRDA:238,45,3,64
+BRDA:243,46,0,1
+BRDA:243,46,1,4
+BRDA:252,47,0,0
+BRDA:252,47,1,4
+BRDA:268,48,0,284
+BRDA:268,48,1,553951
+BRDA:268,49,0,554235
+BRDA:268,49,1,715
+BRDA:270,50,0,91
+BRDA:270,50,1,553860
+BRDA:270,51,0,46
+BRDA:270,51,1,45
+BRDA:272,52,0,421
+BRDA:272,52,1,553439
+BRDA:272,53,0,553860
+BRDA:272,53,1,553860
+BRDA:274,54,0,304
+BRDA:274,54,1,117
+BRDA:274,55,0,421
+BRDA:274,55,1,353
+BRDA:277,56,0,551352
+BRDA:277,56,1,2087
+BRDA:283,57,0,4
+BRDA:283,57,1,2083
+BRDA:286,58,0,1711
+BRDA:286,58,1,376
+BRDA:287,59,0,1697
+BRDA:287,59,1,14
+BRDA:304,60,0,1859
+BRDA:304,60,1,275798
+BRDA:304,61,0,277657
+BRDA:304,61,1,277162
+BRDA:309,62,0,6
+BRDA:309,62,1,277651
+BRDA:309,63,0,277657
+BRDA:309,63,1,275798
+BRDA:309,63,2,275735
+BRDA:309,63,3,275734
+BRDA:311,64,0,4
+BRDA:311,64,1,2
+BRDA:311,65,0,6
+BRDA:311,65,1,4
+BRDA:318,66,0,279
+BRDA:318,66,1,277372
+BRDA:318,67,0,277651
+BRDA:318,67,1,277088
+BRDA:319,68,0,277
+BRDA:319,68,1,2
+BRDA:350,69,0,277365
+BRDA:350,69,1,7
+BRDA:350,70,0,277372
+BRDA:350,70,1,276947
+BRDA:357,71,0,556
+BRDA:357,71,1,276816
+BRDA:357,72,0,277372
+BRDA:357,72,1,277056
+BRDA:362,73,0,276809
+BRDA:362,73,1,563
+BRDA:367,74,0,349
+BRDA:367,74,1,276460
+BRDA:375,75,0,276584
+BRDA:375,75,1,788
+BRDA:375,76,0,277372
+BRDA:375,76,1,276809
+BRDA:378,77,0,749
+BRDA:378,77,1,276623
+BRDA:380,78,0,276627
+BRDA:380,78,1,745
+BRDA:389,79,0,454
+BRDA:389,79,1,276918
+BRDA:389,80,0,277372
+BRDA:389,80,1,492
+BRDA:392,81,0,35
+BRDA:392,81,1,277337
+BRDA:392,82,0,277372
+BRDA:392,82,1,1242
+BRDA:392,82,2,307
+BRDA:394,83,0,745
+BRDA:394,83,1,276627
+BRDA:401,84,0,0
+BRDA:401,84,1,276968
+BRDA:401,85,0,276968
+BRDA:401,85,1,185
+BRDA:401,85,2,131
+BRDA:401,85,3,64
+BRDA:401,85,4,64
+BRDA:408,86,0,8
+BRDA:408,86,1,59
+BRDA:409,87,0,14
+BRDA:409,87,1,45
+BRDA:411,88,0,4
+BRDA:411,88,1,10
+BRDA:411,89,0,14
+BRDA:411,89,1,4
+BRDA:413,90,0,0
+BRDA:413,90,1,4
+BRDA:428,91,0,1123
+BRDA:428,91,1,275599
+BRDA:431,92,0,1003
+BRDA:431,92,1,120
+BRDA:448,93,0,225
+BRDA:448,93,1,276656
+BRDA:456,94,0,275796
+BRDA:456,94,1,275697
+BRDA:456,94,2,275647
+BRDA:456,94,3,275626
+BRDA:459,95,0,26
+BRDA:459,95,1,275571
+BRDA:478,96,0,37
+BRDA:478,96,1,1
+BRDA:478,96,2,0
+BRDA:492,97,0,38
+BRDA:492,97,1,1
+BRDA:492,97,2,37
+BRDA:492,97,3,36
+BRDA:494,98,0,36
+BRDA:494,98,1,2
+BRDA:495,99,0,1
+BRDA:495,99,1,37
+BRDA:500,100,0,24
+BRDA:500,100,1,1
+BRDA:537,101,0,1
+BRDA:537,101,1,23
+BRDA:537,102,0,24
+BRDA:537,102,1,1
+BRDA:537,102,2,1
+BRDA:544,103,0,264
+BRDA:544,103,1,131
+BRDA:549,104,0,263
+BRDA:549,104,1,1
+BRDA:549,105,0,264
+BRDA:549,105,1,262
+BRDA:549,105,2,3
+BRDA:549,105,3,2
+BRDA:549,105,4,263
+BRDA:563,106,0,2
+BRDA:563,106,1,3
+BRDA:591,107,0,12
+BRDA:591,107,1,26
+BRDA:603,108,0,261
+BRDA:603,108,1,4
+BRDA:604,109,0,263
+BRDA:604,109,1,2
+BRDA:604,110,0,265
+BRDA:604,110,1,264
+BRDA:615,111,0,3
+BRDA:615,111,1,24
+BRDA:618,112,0,24
+BRDA:618,112,1,0
+BRDA:620,113,0,0
+BRDA:620,113,1,24
+BRDA:620,114,0,24
+BRDA:620,114,1,24
+BRDA:622,115,0,0
+BRDA:622,115,1,24
+BRDA:628,116,0,24
+BRDA:628,116,1,0
+BRDA:634,117,0,0
+BRDA:634,117,1,0
+BRDA:649,118,0,0
+BRDA:649,118,1,0
+BRDA:653,119,0,0
+BRDA:653,119,1,0
+BRDA:667,120,0,36
+BRDA:667,120,1,190
+BRDA:667,121,0,226
+BRDA:667,121,1,48
+BRDA:671,122,0,38
+BRDA:671,122,1,188
+BRDA:671,123,0,226
+BRDA:671,123,1,38
+BRDA:673,124,0,28
+BRDA:673,124,1,10
+BRDA:677,125,0,25
+BRDA:677,125,1,3
+BRDA:679,126,0,1
+BRDA:679,126,1,2
+BRDA:698,127,0,56
+BRDA:698,127,1,1
+BRDA:707,128,0,42
+BRDA:707,128,1,14
+BRDA:714,129,0,38
+BRDA:714,129,1,4
+BRDA:722,130,0,12
+BRDA:722,130,1,30
+BRDA:722,131,0,42
+BRDA:722,131,1,27
+BRDA:727,132,0,270
+BRDA:727,132,1,2
+BRDA:738,133,0,345
+BRDA:738,133,1,1083
+BRDA:741,134,0,395
+BRDA:741,134,1,310
+BRDA:755,135,0,0
+BRDA:755,135,1,1
+BRDA:755,136,0,1
+BRDA:755,136,1,0
+BRDA:757,137,0,0
+BRDA:757,137,1,0
+BRDA:757,138,0,0
+BRDA:757,138,1,0
+BRDA:765,139,0,0
+BRDA:765,139,1,0
+BRDA:768,140,0,0
+BRDA:768,140,1,0
+BRDA:768,141,0,0
+BRDA:768,141,1,0
+BRDA:768,141,2,0
+BRDA:768,142,0,0
+BRDA:768,142,1,0
+BRDA:768,143,0,0
+BRDA:768,143,1,0
+BRDA:768,143,2,0
+BRDA:771,144,0,0
+BRDA:771,144,1,0
+BRDA:780,145,0,0
+BRDA:780,145,1,16
+BRDA:780,146,0,16
+BRDA:780,146,1,1
+BRDA:799,147,0,0
+BRDA:799,147,1,0
+BRDA:821,148,0,4
+BRDA:821,148,1,753
+BRDA:823,149,0,0
+BRDA:823,149,1,753
+BRDA:823,150,0,39
+BRDA:823,150,1,714
+BRDA:823,151,0,280
+BRDA:823,151,1,434
+BRDA:823,152,0,714
+BRDA:823,152,1,714
+BRDA:825,153,0,21
+BRDA:825,153,1,259
+BRDA:825,154,0,66
+BRDA:825,154,1,193
+BRDA:829,155,0,114
+BRDA:829,155,1,320
+BRDA:835,156,0,264
+BRDA:835,156,1,56
+BRDA:841,157,0,1
+BRDA:841,157,1,55
+BRDA:844,158,0,242
+BRDA:844,158,1,219
+BRDA:848,159,0,2
+BRDA:848,159,1,184
+BRDA:850,160,0,39
+BRDA:850,160,1,147
+BRDA:865,161,0,0
+BRDA:865,161,1,316
+BRDA:867,162,0,314
+BRDA:867,162,1,2
+BRDA:875,163,0,54
+BRDA:875,163,1,260
+BRDA:875,164,0,314
+BRDA:875,164,1,54
+BRDA:890,165,0,2
+BRDA:890,165,1,1
+BRF:352
+BRH:307
+end_of_record
+TN:
+SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_writable.js
+FN:32,(anonymous_1)
+FN:48,nop
+FN:50,WriteReq
+FN:58,WritableState
+FN:121,(anonymous_5)
+FN:153,writableStateGetBuffer
+FN:163,(anonymous_7)
+FN:166,(anonymous_8)
+FN:174,Writable
+FN:196,(anonymous_10)
+FN:200,writeAfterEnd
+FN:212,validChunk
+FN:231,(anonymous_13)
+FN:252,(anonymous_14)
+FN:258,(anonymous_15)
+FN:268,setDefaultEncoding
+FN:276,decodeChunk
+FN:286,writeOrBuffer
+FN:314,doWrite
+FN:323,onwriteError
+FN:331,onwriteStateUpdate
+FN:338,onwrite
+FN:363,afterWrite
+FN:373,onwriteDrain
+FN:381,clearBuffer
+FN:438,(anonymous_26)
+FN:444,(anonymous_27)
+FN:468,needFinish
+FN:472,prefinish
+FN:479,finishMaybe
+FN:493,endWritable
+FN:505,CorkedRequest
+FN:511,(anonymous_33)
+FNF:33
+FNH:30
+FNDA:49,(anonymous_1)
+FNDA:2512,nop
+FNDA:2305,WriteReq
+FNDA:96,WritableState
+FNDA:4574,(anonymous_5)
+FNDA:1,writableStateGetBuffer
+FNDA:49,(anonymous_7)
+FNDA:0,(anonymous_8)
+FNDA:97,Writable
+FNDA:1,(anonymous_10)
+FNDA:1,writeAfterEnd
+FNDA:4625,validChunk
+FNDA:4626,(anonymous_13)
+FNDA:13,(anonymous_14)
+FNDA:13,(anonymous_15)
+FNDA:3,setDefaultEncoding
+FNDA:4621,decodeChunk
+FNDA:4621,writeOrBuffer
+FNDA:4582,doWrite
+FNDA:0,onwriteError
+FNDA:4574,onwriteStateUpdate
+FNDA:4574,onwrite
+FNDA:4574,afterWrite
+FNDA:4557,onwriteDrain
+FNDA:2263,clearBuffer
+FNDA:0,(anonymous_26)
+FNDA:65,(anonymous_27)
+FNDA:9209,needFinish
+FNDA:125,prefinish
+FNDA:4635,finishMaybe
+FNDA:61,endWritable
+FNDA:105,CorkedRequest
+FNDA:8,(anonymous_33)
+DA:7,49
+DA:10,49
+DA:14,49
+DA:17,49
+DA:20,49
+DA:21,49
+DA:25,49
+DA:31,49
+DA:32,49
+DA:33,49
+DA:34,49
+DA:36,49
+DA:41,49
+DA:43,49
+DA:46,49
+DA:48,49
+DA:50,49
+DA:51,2305
+DA:52,2305
+DA:53,2305
+DA:54,2305
+DA:57,49
+DA:58,49
+DA:59,96
+DA:61,96
+DA:65,96
+DA:67,96
+DA:72,96
+DA:73,96
+DA:74,96
+DA:77,96
+DA:79,96
+DA:81,96
+DA:83,96
+DA:85,96
+DA:90,96
+DA:91,96
+DA:96,96
+DA:101,96
+DA:104,96
+DA:107,96
+DA:113,96
+DA:118,96
+DA:121,96
+DA:122,4574
+DA:126,96
+DA:129,96
+DA:131,96
+DA:132,96
+DA:136,96
+DA:140,96
+DA:143,96
+DA:146,96
+DA:150,96
+DA:153,49
+DA:154,1
+DA:155,1
+DA:156,1
+DA:157,5
+DA:158,5
+DA:160,1
+DA:163,49
+DA:164,49
+DA:165,49
+DA:167,0
+DA:173,49
+DA:174,49
+DA:175,97
+DA:179,97
+DA:181,96
+DA:184,96
+DA:186,96
+DA:187,50
+DA:189,50
+DA:192,96
+DA:196,49
+DA:197,1
+DA:200,49
+DA:201,1
+DA:203,1
+DA:204,1
+DA:212,49
+DA:213,4625
+DA:214,4625
+DA:218,4625
+DA:219,2
+DA:220,4623
+DA:221,2
+DA:223,4625
+DA:224,4
+DA:225,2
+DA:226,2
+DA:228,4623
+DA:231,49
+DA:232,4626
+DA:233,4626
+DA:235,4626
+DA:236,59
+DA:237,59
+DA:240,4626
+DA:242,4626
+DA:244,4626
+DA:245,4621
+DA:246,4621
+DA:249,4624
+DA:252,49
+DA:253,13
+DA:255,13
+DA:258,49
+DA:259,13
+DA:261,13
+DA:262,13
+DA:264,13
+DA:268,49
+DA:270,3
+DA:271,3
+DA:272,2
+DA:273,2
+DA:276,49
+DA:277,4621
+DA:278,2273
+DA:280,4621
+DA:286,49
+DA:287,4621
+DA:289,4621
+DA:290,4621
+DA:292,4621
+DA:294,4621
+DA:296,4621
+DA:298,4621
+DA:299,2305
+DA:300,2305
+DA:301,2305
+DA:302,2265
+DA:304,40
+DA:306,2305
+DA:308,2316
+DA:311,4621
+DA:314,49
+DA:315,4582
+DA:316,4582
+DA:317,4582
+DA:318,4582
+DA:319,4582
+DA:320,4582
+DA:323,49
+DA:324,0
+DA:325,0
+DA:327,0
+DA:328,0
+DA:331,49
+DA:332,4574
+DA:333,4574
+DA:334,4574
+DA:335,4574
+DA:338,49
+DA:339,4574
+DA:340,4574
+DA:341,4574
+DA:343,4574
+DA:345,4574
+DA:347,4574
+DA:349,4574
+DA:350,2254
+DA:353,4574
+DA:355,2230
+DA:358,2344
+DA:363,49
+DA:364,4574
+DA:365,4574
+DA:366,4574
+DA:367,4574
+DA:373,49
+DA:374,4557
+DA:375,27
+DA:376,27
+DA:381,49
+DA:382,2263
+DA:383,2263
+DA:385,2263
+DA:387,9
+DA:388,9
+DA:389,9
+DA:390,9
+DA:392,9
+DA:393,9
+DA:394,42
+DA:395,42
+DA:396,42
+DA:399,9
+DA:403,9
+DA:404,9
+DA:405,9
+DA:406,0
+DA:407,0
+DA:409,9
+DA:413,2254
+DA:414,2257
+DA:415,2257
+DA:416,2257
+DA:417,2257
+DA:419,2257
+DA:420,2257
+DA:425,2257
+DA:426,2252
+DA:430,2254
+DA:433,2263
+DA:434,2263
+DA:435,2263
+DA:438,49
+DA:439,0
+DA:442,49
+DA:444,49
+DA:445,65
+DA:447,65
+DA:448,11
+DA:449,11
+DA:450,11
+DA:451,54
+DA:452,1
+DA:453,1
+DA:456,65
+DA:459,65
+DA:460,5
+DA:461,5
+DA:465,65
+DA:468,49
+DA:469,9209
+DA:472,49
+DA:473,125
+DA:474,57
+DA:475,57
+DA:479,49
+DA:480,4635
+DA:481,4635
+DA:482,125
+DA:483,57
+DA:484,57
+DA:485,57
+DA:487,68
+DA:490,4635
+DA:493,49
+DA:494,61
+DA:495,61
+DA:496,61
+DA:497,13
+DA:499,61
+DA:500,61
+DA:505,49
+DA:506,105
+DA:508,105
+DA:509,105
+DA:511,105
+DA:512,8
+DA:513,8
+DA:514,8
+DA:515,40
+DA:516,40
+DA:517,40
+DA:518,40
+DA:520,8
+DA:521,8
+DA:523,0
+LF:263
+LH:254
+BRDA:14,1,0,0
+BRDA:14,1,1,49
+BRDA:14,2,0,49
+BRDA:14,2,1,49
+BRDA:36,3,0,0
+BRDA:36,3,1,49
+BRDA:59,4,0,96
+BRDA:59,4,1,0
+BRDA:61,5,0,96
+BRDA:61,5,1,46
+BRDA:67,6,0,25
+BRDA:67,6,1,71
+BRDA:67,7,0,25
+BRDA:67,7,1,17
+BRDA:73,8,0,23
+BRDA:73,8,1,73
+BRDA:74,9,0,8
+BRDA:74,9,1,88
+BRDA:74,10,0,96
+BRDA:74,10,1,88
+BRDA:96,11,0,96
+BRDA:96,11,1,96
+BRDA:175,12,0,97
+BRDA:175,12,1,28
+BRDA:179,13,0,1
+BRDA:179,13,1,96
+BRDA:179,14,0,97
+BRDA:179,14,1,26
+BRDA:186,15,0,50
+BRDA:186,15,1,46
+BRDA:187,16,0,1
+BRDA:187,16,1,49
+BRDA:189,17,0,1
+BRDA:189,17,1,49
+BRDA:218,18,0,2
+BRDA:218,18,1,4623
+BRDA:220,19,0,2
+BRDA:220,19,1,4621
+BRDA:220,20,0,4623
+BRDA:220,20,1,2425
+BRDA:220,20,2,61
+BRDA:220,20,3,61
+BRDA:223,21,0,4
+BRDA:223,21,1,4621
+BRDA:235,22,0,59
+BRDA:235,22,1,4567
+BRDA:240,23,0,2198
+BRDA:240,23,1,2428
+BRDA:240,24,0,2301
+BRDA:240,24,1,127
+BRDA:242,25,0,2527
+BRDA:242,25,1,2099
+BRDA:244,26,0,1
+BRDA:244,26,1,4625
+BRDA:244,27,0,4621
+BRDA:244,27,1,2
+BRDA:261,28,0,13
+BRDA:261,28,1,0
+BRDA:264,29,0,9
+BRDA:264,29,1,4
+BRDA:264,30,0,13
+BRDA:264,30,1,13
+BRDA:264,30,2,9
+BRDA:264,30,3,9
+BRDA:264,30,4,9
+BRDA:270,31,0,2
+BRDA:270,31,1,1
+BRDA:271,32,0,1
+BRDA:271,32,1,2
+BRDA:277,33,0,2273
+BRDA:277,33,1,2348
+BRDA:277,34,0,4621
+BRDA:277,34,1,4547
+BRDA:277,34,2,4467
+BRDA:289,35,0,4471
+BRDA:289,35,1,150
+BRDA:290,36,0,74
+BRDA:290,36,1,4547
+BRDA:296,37,0,177
+BRDA:296,37,1,4444
+BRDA:298,38,0,2305
+BRDA:298,38,1,2316
+BRDA:298,39,0,4621
+BRDA:298,39,1,2358
+BRDA:301,40,0,2265
+BRDA:301,40,1,40
+BRDA:319,41,0,9
+BRDA:319,41,1,4573
+BRDA:325,42,0,0
+BRDA:325,42,1,0
+BRDA:345,43,0,0
+BRDA:345,43,1,4574
+BRDA:349,44,0,2254
+BRDA:349,44,1,2320
+BRDA:349,45,0,4574
+BRDA:349,45,1,4557
+BRDA:349,45,2,4557
+BRDA:349,45,3,4544
+BRDA:353,46,0,2230
+BRDA:353,46,1,2344
+BRDA:364,47,0,4557
+BRDA:364,47,1,17
+BRDA:374,48,0,27
+BRDA:374,48,1,4530
+BRDA:374,49,0,4557
+BRDA:374,49,1,2302
+BRDA:385,50,0,9
+BRDA:385,50,1,2254
+BRDA:385,51,0,2263
+BRDA:385,51,1,9
+BRDA:385,51,2,9
+BRDA:405,52,0,0
+BRDA:405,52,1,9
+BRDA:417,53,0,4
+BRDA:417,53,1,2253
+BRDA:425,54,0,2252
+BRDA:425,54,1,5
+BRDA:430,55,0,29
+BRDA:430,55,1,2225
+BRDA:447,56,0,11
+BRDA:447,56,1,54
+BRDA:451,57,0,1
+BRDA:451,57,1,53
+BRDA:456,58,0,10
+BRDA:456,58,1,55
+BRDA:456,59,0,65
+BRDA:456,59,1,54
+BRDA:459,60,0,5
+BRDA:459,60,1,60
+BRDA:465,61,0,61
+BRDA:465,61,1,4
+BRDA:465,62,0,65
+BRDA:465,62,1,61
+BRDA:469,63,0,9209
+BRDA:469,63,1,420
+BRDA:469,63,2,149
+BRDA:469,63,3,146
+BRDA:469,63,4,145
+BRDA:473,64,0,57
+BRDA:473,64,1,68
+BRDA:481,65,0,125
+BRDA:481,65,1,4510
+BRDA:482,66,0,57
+BRDA:482,66,1,68
+BRDA:496,67,0,13
+BRDA:496,67,1,48
+BRDA:497,68,0,1
+BRDA:497,68,1,12
+BRDA:520,69,0,8
+BRDA:520,69,1,0
+BRF:150
+BRH:141
+end_of_record
+TN:
+SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_duplex.js
+FN:10,(anonymous_1)
+FN:40,Duplex
+FN:57,onend
+FN:67,onEndNT
+FN:71,forEach
+FNF:5
+FNH:2
+FNDA:0,(anonymous_1)
+FNDA:25,Duplex
+FNDA:18,onend
+FNDA:0,onEndNT
+FNDA:0,forEach
+DA:10,49
+DA:11,0
+DA:12,0
+DA:13,0
+DA:14,0
+DA:18,49
+DA:21,49
+DA:25,49
+DA:26,49
+DA:29,49
+DA:30,49
+DA:32,49
+DA:34,49
+DA:35,49
+DA:36,392
+DA:37,392
+DA:40,49
+DA:41,25
+DA:43,25
+DA:44,25
+DA:46,25
+DA:48,25
+DA:50,25
+DA:51,25
+DA:53,25
+DA:57,49
+DA:60,18
+DA:64,0
+DA:67,49
+DA:68,0
+DA:71,49
+DA:72,0
+DA:73,0
+LF:33
+LH:25
+BRDA:10,1,0,49
+BRDA:10,1,1,0
+BRDA:37,2,0,343
+BRDA:37,2,1,49
+BRDA:41,3,0,0
+BRDA:41,3,1,25
+BRDA:46,4,0,0
+BRDA:46,4,1,25
+BRDA:46,5,0,25
+BRDA:46,5,1,13
+BRDA:48,6,0,0
+BRDA:48,6,1,25
+BRDA:48,7,0,25
+BRDA:48,7,1,13
+BRDA:51,8,0,0
+BRDA:51,8,1,25
+BRDA:51,9,0,25
+BRDA:51,9,1,13
+BRDA:60,10,0,18
+BRDA:60,10,1,0
+BRDA:60,11,0,18
+BRDA:60,11,1,0
+BRF:22
+BRH:15
+end_of_record
+TN:
+SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_transform.js
+FN:56,TransformState
+FN:57,(anonymous_2)
+FN:68,afterTransform
+FN:90,Transform
+FN:114,(anonymous_5)
+FN:115,(anonymous_6)
+FN:121,(anonymous_7)
+FN:136,(anonymous_8)
+FN:140,(anonymous_9)
+FN:154,(anonymous_10)
+FN:167,done
+FNF:11
+FNH:10
+FNDA:24,TransformState
+FNDA:116,(anonymous_2)
+FNDA:116,afterTransform
+FNDA:24,Transform
+FNDA:19,(anonymous_5)
+FNDA:2,(anonymous_6)
+FNDA:127,(anonymous_7)
+FNDA:0,(anonymous_8)
+FNDA:117,(anonymous_9)
+FNDA:310,(anonymous_10)
+FNDA:19,done
+DA:45,49
+DA:47,49
+DA:50,49
+DA:51,49
+DA:54,49
+DA:56,49
+DA:57,24
+DA:58,116
+DA:61,24
+DA:62,24
+DA:63,24
+DA:64,24
+DA:65,24
+DA:68,49
+DA:69,116
+DA:70,116
+DA:72,116
+DA:74,116
+DA:76,116
+DA:77,116
+DA:79,116
+DA:81,116
+DA:83,116
+DA:84,116
+DA:85,116
+DA:86,113
+DA:90,49
+DA:91,24
+DA:93,24
+DA:95,24
+DA:98,24
+DA:101,24
+DA:106,24
+DA:108,24
+DA:109,13
+DA:111,13
+DA:114,24
+DA:115,19
+DA:116,2
+DA:117,17
+DA:121,49
+DA:122,127
+DA:123,127
+DA:136,49
+DA:137,0
+DA:140,49
+DA:141,117
+DA:142,117
+DA:143,117
+DA:144,117
+DA:145,117
+DA:146,117
+DA:147,117
+DA:154,49
+DA:155,310
+DA:157,310
+DA:158,116
+DA:159,116
+DA:163,194
+DA:167,49
+DA:168,19
+DA:172,19
+DA:173,19
+DA:175,19
+DA:177,19
+DA:179,19
+LF:66
+LH:65
+BRDA:74,1,0,0
+BRDA:74,1,1,116
+BRDA:79,2,0,61
+BRDA:79,2,1,55
+BRDA:79,3,0,116
+BRDA:79,3,1,116
+BRDA:85,4,0,113
+BRDA:85,4,1,3
+BRDA:85,5,0,116
+BRDA:85,5,1,55
+BRDA:91,6,0,0
+BRDA:91,6,1,24
+BRDA:108,7,0,13
+BRDA:108,7,1,11
+BRDA:109,8,0,1
+BRDA:109,8,1,12
+BRDA:111,9,0,1
+BRDA:111,9,1,12
+BRDA:115,10,0,2
+BRDA:115,10,1,17
+BRDA:145,11,0,117
+BRDA:145,11,1,0
+BRDA:147,12,0,116
+BRDA:147,12,1,1
+BRDA:147,13,0,117
+BRDA:147,13,1,33
+BRDA:147,13,2,11
+BRDA:157,14,0,116
+BRDA:157,14,1,194
+BRDA:157,15,0,310
+BRDA:157,15,1,152
+BRDA:157,15,2,152
+BRDA:168,16,0,0
+BRDA:168,16,1,19
+BRDA:175,17,0,0
+BRDA:175,17,1,19
+BRDA:177,18,0,0
+BRDA:177,18,1,19
+BRF:38
+BRH:32
+end_of_record
+TN:
+SF:/Users/cmetcalf/projects/readable-stream/lib/_stream_passthrough.js
+FN:18,PassThrough
+FN:24,(anonymous_2)
+FNF:2
+FNH:2
+FNDA:8,PassThrough
+FNDA:59,(anonymous_2)
+DA:7,49
+DA:9,49
+DA:12,49
+DA:13,49
+DA:16,49
+DA:18,49
+DA:19,8
+DA:21,8
+DA:24,49
+DA:25,59
+LF:10
+LH:10
+BRDA:19,1,0,0
+BRDA:19,1,1,8
+BRF:2
+BRH:1
+end_of_record
diff --git a/node_modules/readable-stream/doc/stream.markdown b/node_modules/readable-stream/doc/stream.md
index ecf997a3f..c907ca0e7 100644
--- a/node_modules/readable-stream/doc/stream.markdown
+++ b/node_modules/readable-stream/doc/stream.md
@@ -160,7 +160,8 @@ Emitted when the stream and any of its underlying resources (a file
descriptor, for example) have been closed. The event indicates that
no more events will be emitted, and no further computation will occur.
-Not all streams will emit the `'close'` event.
+Not all streams will emit the `'close'` event as the `'close'` event is
+optional.
#### Event: 'data'
@@ -201,7 +202,7 @@ readable.on('end', () => {
#### Event: 'error'
-* {Error Object}
+* {Error}
Emitted if there was an error receiving data.
@@ -490,7 +491,7 @@ function parseHeader(stream, callback) {
var split = str.split(/\n\n/);
header += split.shift();
var remaining = split.join('\n\n');
- var buf = new Buffer(remaining, 'utf8');
+ var buf = Buffer.from(remaining, 'utf8');
if (buf.length)
stream.unshift(buf);
stream.removeListener('error', callback);
@@ -573,6 +574,15 @@ Examples of writable streams include:
* [child process stdin][]
* [`process.stdout`][], [`process.stderr`][]
+#### Event: 'close'
+
+Emitted when the stream and any of its underlying resources (a file descriptor,
+for example) have been closed. The event indicates that no more events will be
+emitted, and no further computation will occur.
+
+Not all streams will emit the `'close'` event as the `'close'` event is
+optional.
+
#### Event: 'drain'
If a [`stream.write(chunk)`][stream-write] call returns `false`, then the
@@ -695,6 +705,7 @@ file.end('world!');
#### writable.setDefaultEncoding(encoding)
* `encoding` {String} The new default encoding
+* Return: `this`
Sets the default encoding for a writable stream.
@@ -985,7 +996,7 @@ Counter.prototype._read = function() {
this.push(null);
else {
var str = '' + i;
- var buf = new Buffer(str, 'ascii');
+ var buf = Buffer.from(str, 'ascii');
this.push(buf);
}
};
@@ -1717,30 +1728,30 @@ horribly wrong.
[`'end'`]: #stream_event_end
[`'finish'`]: #stream_event_finish
[`'readable'`]: #stream_event_readable
-[`buf.toString(encoding)`]: https://nodejs.org/docs/v5.9.1/api/buffer.html#buffer_buf_tostring_encoding_start_end
-[`EventEmitter`]: https://nodejs.org/docs/v5.9.1/api/events.html#events_class_eventemitter
-[`process.stderr`]: https://nodejs.org/docs/v5.9.1/api/process.html#process_process_stderr
-[`process.stdin`]: https://nodejs.org/docs/v5.9.1/api/process.html#process_process_stdin
-[`process.stdout`]: https://nodejs.org/docs/v5.9.1/api/process.html#process_process_stdout
+[`buf.toString(encoding)`]: https://nodejs.org/docs/v6.1.0/api/buffer.html#buffer_buf_tostring_encoding_start_end
+[`EventEmitter`]: https://nodejs.org/docs/v6.1.0/api/events.html#events_class_eventemitter
+[`process.stderr`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stderr
+[`process.stdin`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stdin
+[`process.stdout`]: https://nodejs.org/docs/v6.1.0/api/process.html#process_process_stdout
[`stream.cork()`]: #stream_writable_cork
[`stream.pipe()`]: #stream_readable_pipe_destination_options
[`stream.uncork()`]: #stream_writable_uncork
[`stream.unpipe()`]: #stream_readable_unpipe_destination
[`stream.wrap()`]: #stream_readable_wrap_stream
-[`tls.CryptoStream`]: https://nodejs.org/docs/v5.9.1/api/tls.html#tls_class_cryptostream
-[`util.inherits()`]: https://nodejs.org/docs/v5.9.1/api/util.html#util_util_inherits_constructor_superconstructor
+[`tls.CryptoStream`]: https://nodejs.org/docs/v6.1.0/api/tls.html#tls_class_cryptostream
+[`util.inherits()`]: https://nodejs.org/docs/v6.1.0/api/util.html#util_util_inherits_constructor_superconstructor
[API for Stream Consumers]: #stream_api_for_stream_consumers
[API for Stream Implementors]: #stream_api_for_stream_implementors
-[child process stdin]: https://nodejs.org/docs/v5.9.1/api/child_process.html#child_process_child_stdin
-[child process stdout and stderr]: https://nodejs.org/docs/v5.9.1/api/child_process.html#child_process_child_stdout
+[child process stdin]: https://nodejs.org/docs/v6.1.0/api/child_process.html#child_process_child_stdin
+[child process stdout and stderr]: https://nodejs.org/docs/v6.1.0/api/child_process.html#child_process_child_stdout
[Compatibility]: #stream_compatibility_with_older_node_js_versions
[crypto]: crypto.html
[Duplex]: #stream_class_stream_duplex
-[fs read streams]: https://nodejs.org/docs/v5.9.1/api/fs.html#fs_class_fs_readstream
-[fs write streams]: https://nodejs.org/docs/v5.9.1/api/fs.html#fs_class_fs_writestream
-[HTTP requests, on the client]: https://nodejs.org/docs/v5.9.1/api/http.html#http_class_http_clientrequest
-[HTTP responses, on the server]: https://nodejs.org/docs/v5.9.1/api/http.html#http_class_http_serverresponse
-[http-incoming-message]: https://nodejs.org/docs/v5.9.1/api/http.html#http_class_http_incomingmessage
+[fs read streams]: https://nodejs.org/docs/v6.1.0/api/fs.html#fs_class_fs_readstream
+[fs write streams]: https://nodejs.org/docs/v6.1.0/api/fs.html#fs_class_fs_writestream
+[HTTP requests, on the client]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_clientrequest
+[HTTP responses, on the server]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_serverresponse
+[http-incoming-message]: https://nodejs.org/docs/v6.1.0/api/http.html#http_class_http_incomingmessage
[Object mode]: #stream_object_mode
[Readable]: #stream_class_stream_readable
[SimpleProtocol v2]: #stream_example_simpleprotocol_parser_v2
@@ -1755,7 +1766,7 @@ horribly wrong.
[stream-read]: #stream_readable_read_size
[stream-resume]: #stream_readable_resume
[stream-write]: #stream_writable_write_chunk_encoding_callback
-[TCP sockets]: https://nodejs.org/docs/v5.9.1/api/net.html#net_class_net_socket
+[TCP sockets]: https://nodejs.org/docs/v6.1.0/api/net.html#net_class_net_socket
[Transform]: #stream_class_stream_transform
[Writable]: #stream_class_stream_writable
[zlib]: zlib.html
diff --git a/node_modules/readable-stream/lib/_stream_readable.js b/node_modules/readable-stream/lib/_stream_readable.js
index 54a9d5c55..79914fa68 100644
--- a/node_modules/readable-stream/lib/_stream_readable.js
+++ b/node_modules/readable-stream/lib/_stream_readable.js
@@ -10,15 +10,11 @@ var processNextTick = require('process-nextick-args');
var isArray = require('isarray');
/*</replacement>*/
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
-
Readable.ReadableState = ReadableState;
-var EE = require('events');
-
/*<replacement>*/
+var EE = require('events').EventEmitter;
+
var EElistenerCount = function (emitter, type) {
return emitter.listeners(type).length;
};
@@ -36,6 +32,9 @@ var Stream;
/*</replacement>*/
var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
/*<replacement>*/
var util = require('core-util-is');
@@ -44,7 +43,7 @@ util.inherits = require('inherits');
/*<replacement>*/
var debugUtil = require('util');
-var debug = undefined;
+var debug = void 0;
if (debugUtil && debugUtil.debuglog) {
debug = debugUtil.debuglog('stream');
} else {
@@ -56,6 +55,19 @@ var StringDecoder;
util.inherits(Readable, Stream);
+var hasPrependListener = typeof EE.prototype.prependListener === 'function';
+
+function prependListener(emitter, event, fn) {
+ if (hasPrependListener) return emitter.prependListener(event, fn);
+
+ // This is a brutally ugly hack to make sure that our error handler
+ // is attached before any userland ones. NEVER DO THIS. This is here
+ // only because this code needs to continue to work with older versions
+ // of Node.js that do not include the prependListener() method. The goal
+ // is to eventually remove this hack.
+ if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];
+}
+
var Duplex;
function ReadableState(options, stream) {
Duplex = Duplex || require('./_stream_duplex');
@@ -149,7 +161,7 @@ Readable.prototype.push = function (chunk, encoding) {
if (!state.objectMode && typeof chunk === 'string') {
encoding = encoding || state.defaultEncoding;
if (encoding !== state.encoding) {
- chunk = new Buffer(chunk, encoding);
+ chunk = bufferShim.from(chunk, encoding);
encoding = '';
}
}
@@ -179,8 +191,8 @@ function readableAddChunk(stream, state, chunk, encoding, addToFront) {
var e = new Error('stream.push() after EOF');
stream.emit('error', e);
} else if (state.endEmitted && addToFront) {
- var e = new Error('stream.unshift() after end event');
- stream.emit('error', e);
+ var _e = new Error('stream.unshift() after end event');
+ stream.emit('error', _e);
} else {
var skipAdd;
if (state.decoder && !addToFront && !encoding) {
@@ -533,7 +545,8 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
// If the user unpiped during `dest.write()`, it is possible
// to get stuck in a permanently paused state if that write
// also returned false.
- if (state.pipesCount === 1 && state.pipes[0] === dest && src.listenerCount('data') === 1 && !cleanedUp) {
+ // => Check whether `dest` is still a piping destination.
+ if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {
debug('false write response, pause', src._readableState.awaitDrain);
src._readableState.awaitDrain++;
}
@@ -549,9 +562,9 @@ Readable.prototype.pipe = function (dest, pipeOpts) {
dest.removeListener('error', onerror);
if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);
}
- // This is a brutally ugly hack to make sure that our error handler
- // is attached before any userland ones. NEVER DO THIS.
- if (!dest._events || !dest._events.error) dest.on('error', onerror);else if (isArray(dest._events.error)) dest._events.error.unshift(onerror);else dest._events.error = [onerror, dest._events.error];
+
+ // Make sure our error handler is attached before userland ones.
+ prependListener(dest, 'error', onerror);
// Both close and finish should trigger unpipe, but only once.
function onclose() {
@@ -825,16 +838,16 @@ function fromList(n, state) {
} else {
// complex case.
// we have enough to cover it, but it spans past the first buffer.
- if (stringMode) ret = '';else ret = new Buffer(n);
+ if (stringMode) ret = '';else ret = bufferShim.allocUnsafe(n);
var c = 0;
for (var i = 0, l = list.length; i < l && c < n; i++) {
- var buf = list[0];
- var cpy = Math.min(n - c, buf.length);
+ var _buf = list[0];
+ var cpy = Math.min(n - c, _buf.length);
- if (stringMode) ret += buf.slice(0, cpy);else buf.copy(ret, c, 0, cpy);
+ if (stringMode) ret += _buf.slice(0, cpy);else _buf.copy(ret, c, 0, cpy);
- if (cpy < buf.length) list[0] = buf.slice(cpy);else list.shift();
+ if (cpy < _buf.length) list[0] = _buf.slice(cpy);else list.shift();
c += cpy;
}
@@ -849,7 +862,7 @@ function endReadable(stream) {
// If we get here before consuming all the bytes, then that is a
// bug in node. Should never happen.
- if (state.length > 0) throw new Error('endReadable called on non-empty stream');
+ if (state.length > 0) throw new Error('"endReadable()" called on non-empty stream');
if (!state.endEmitted) {
state.ended = true;
diff --git a/node_modules/readable-stream/lib/_stream_transform.js b/node_modules/readable-stream/lib/_stream_transform.js
index 625cdc176..dbc996ede 100644
--- a/node_modules/readable-stream/lib/_stream_transform.js
+++ b/node_modules/readable-stream/lib/_stream_transform.js
@@ -134,7 +134,7 @@ Transform.prototype.push = function (chunk, encoding) {
// an error, then that'll put the hurt on the whole operation. If you
// never call cb(), then you'll never get another chunk.
Transform.prototype._transform = function (chunk, encoding, cb) {
- throw new Error('not implemented');
+ throw new Error('Not implemented');
};
Transform.prototype._write = function (chunk, encoding, cb) {
@@ -172,9 +172,9 @@ function done(stream, er) {
var ws = stream._writableState;
var ts = stream._transformState;
- if (ws.length) throw new Error('calling transform done when ws.length != 0');
+ if (ws.length) throw new Error('Calling transform done when ws.length != 0');
- if (ts.transforming) throw new Error('calling transform done when still transforming');
+ if (ts.transforming) throw new Error('Calling transform done when still transforming');
return stream.push(null);
} \ No newline at end of file
diff --git a/node_modules/readable-stream/lib/_stream_writable.js b/node_modules/readable-stream/lib/_stream_writable.js
index 95916c992..ed5efcbd2 100644
--- a/node_modules/readable-stream/lib/_stream_writable.js
+++ b/node_modules/readable-stream/lib/_stream_writable.js
@@ -14,10 +14,6 @@ var processNextTick = require('process-nextick-args');
var asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : processNextTick;
/*</replacement>*/
-/*<replacement>*/
-var Buffer = require('buffer').Buffer;
-/*</replacement>*/
-
Writable.WritableState = WritableState;
/*<replacement>*/
@@ -43,6 +39,9 @@ var Stream;
/*</replacement>*/
var Buffer = require('buffer').Buffer;
+/*<replacement>*/
+var bufferShim = require('buffer-shims');
+/*</replacement>*/
util.inherits(Writable, Stream);
@@ -146,10 +145,9 @@ function WritableState(options, stream) {
// count buffered requests
this.bufferedRequestCount = 0;
- // create the two objects needed to store the corked requests
- // they are not a linked list, as no new elements are inserted in there
+ // allocate the first CorkedRequest, there is always
+ // one allocated and free to use, and we maintain at most two
this.corkedRequestsFree = new CorkedRequest(this);
- this.corkedRequestsFree.next = new CorkedRequest(this);
}
WritableState.prototype.getBuffer = function writableStateGetBuffer() {
@@ -196,7 +194,7 @@ function Writable(options) {
// Otherwise people can pipe Writable streams, which is just wrong.
Writable.prototype.pipe = function () {
- this.emit('error', new Error('Cannot pipe. Not readable.'));
+ this.emit('error', new Error('Cannot pipe, not readable'));
};
function writeAfterEnd(stream, cb) {
@@ -213,9 +211,16 @@ function writeAfterEnd(stream, cb) {
// how many bytes or characters.
function validChunk(stream, state, chunk, cb) {
var valid = true;
-
- if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== null && chunk !== undefined && !state.objectMode) {
- var er = new TypeError('Invalid non-string/buffer chunk');
+ var er = false;
+ // Always throw error if a null is written
+ // if we are not in object mode then throw
+ // if it is not a buffer, string, or undefined.
+ if (chunk === null) {
+ er = new TypeError('May not write null values to stream');
+ } else if (!Buffer.isBuffer(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {
+ er = new TypeError('Invalid non-string/buffer chunk');
+ }
+ if (er) {
stream.emit('error', er);
processNextTick(cb, er);
valid = false;
@@ -265,11 +270,12 @@ Writable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {
if (typeof encoding === 'string') encoding = encoding.toLowerCase();
if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);
this._writableState.defaultEncoding = encoding;
+ return this;
};
function decodeChunk(state, chunk, encoding) {
if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {
- chunk = new Buffer(chunk, encoding);
+ chunk = bufferShim.from(chunk, encoding);
}
return chunk;
}
@@ -392,12 +398,16 @@ function clearBuffer(stream, state) {
doWrite(stream, state, true, state.length, buffer, '', holder.finish);
- // doWrite is always async, defer these to save a bit of time
+ // doWrite is almost always async, defer these to save a bit of time
// as the hot path ends with doWrite
state.pendingcb++;
state.lastBufferedRequest = null;
- state.corkedRequestsFree = holder.next;
- holder.next = null;
+ if (holder.next) {
+ state.corkedRequestsFree = holder.next;
+ holder.next = null;
+ } else {
+ state.corkedRequestsFree = new CorkedRequest(state);
+ }
} else {
// Slow case, write chunks one-by-one
while (entry) {
diff --git a/node_modules/readable-stream/node_modules/buffer-shims/index.js b/node_modules/readable-stream/node_modules/buffer-shims/index.js
new file mode 100644
index 000000000..1cab4c05e
--- /dev/null
+++ b/node_modules/readable-stream/node_modules/buffer-shims/index.js
@@ -0,0 +1,108 @@
+'use strict';
+
+var buffer = require('buffer');
+var Buffer = buffer.Buffer;
+var SlowBuffer = buffer.SlowBuffer;
+var MAX_LEN = buffer.kMaxLength || 2147483647;
+exports.alloc = function alloc(size, fill, encoding) {
+ if (typeof Buffer.alloc === 'function') {
+ return Buffer.alloc(size, fill, encoding);
+ }
+ if (typeof encoding === 'number') {
+ throw new TypeError('encoding must not be number');
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ var enc = encoding;
+ var _fill = fill;
+ if (_fill === undefined) {
+ enc = undefined;
+ _fill = 0;
+ }
+ var buf = new Buffer(size);
+ if (typeof _fill === 'string') {
+ var fillBuf = new Buffer(_fill, enc);
+ var flen = fillBuf.length;
+ var i = -1;
+ while (++i < size) {
+ buf[i] = fillBuf[i % flen];
+ }
+ } else {
+ buf.fill(_fill);
+ }
+ return buf;
+}
+exports.allocUnsafe = function allocUnsafe(size) {
+ if (typeof Buffer.allocUnsafe === 'function') {
+ return Buffer.allocUnsafe(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size > MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new Buffer(size);
+}
+exports.from = function from(value, encodingOrOffset, length) {
+ if (typeof Buffer.from === 'function' && (!global.Uint8Array || Uint8Array.from !== Buffer.from)) {
+ return Buffer.from(value, encodingOrOffset, length);
+ }
+ if (typeof value === 'number') {
+ throw new TypeError('"value" argument must not be a number');
+ }
+ if (typeof value === 'string') {
+ return new Buffer(value, encodingOrOffset);
+ }
+ if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {
+ var offset = encodingOrOffset;
+ if (arguments.length === 1) {
+ return new Buffer(value);
+ }
+ if (typeof offset === 'undefined') {
+ offset = 0;
+ }
+ var len = length;
+ if (typeof len === 'undefined') {
+ len = value.byteLength - offset;
+ }
+ if (offset >= value.byteLength) {
+ throw new RangeError('\'offset\' is out of bounds');
+ }
+ if (len > value.byteLength - offset) {
+ throw new RangeError('\'length\' is out of bounds');
+ }
+ return new Buffer(value.slice(offset, offset + len));
+ }
+ if (Buffer.isBuffer(value)) {
+ var out = new Buffer(value.length);
+ value.copy(out, 0, 0, value.length);
+ return out;
+ }
+ if (value) {
+ if (Array.isArray(value) || (typeof ArrayBuffer !== 'undefined' && value.buffer instanceof ArrayBuffer) || 'length' in value) {
+ return new Buffer(value);
+ }
+ if (value.type === 'Buffer' && Array.isArray(value.data)) {
+ return new Buffer(value.data);
+ }
+ }
+
+ throw new TypeError('First argument must be a string, Buffer, ' + 'ArrayBuffer, Array, or array-like object.');
+}
+exports.allocUnsafeSlow = function allocUnsafeSlow(size) {
+ if (typeof Buffer.allocUnsafeSlow === 'function') {
+ return Buffer.allocUnsafeSlow(size);
+ }
+ if (typeof size !== 'number') {
+ throw new TypeError('size must be a number');
+ }
+ if (size >= MAX_LEN) {
+ throw new RangeError('size is too large');
+ }
+ return new SlowBuffer(size);
+}
diff --git a/node_modules/readable-stream/node_modules/buffer-shims/license.md b/node_modules/readable-stream/node_modules/buffer-shims/license.md
new file mode 100644
index 000000000..01cfaefe2
--- /dev/null
+++ b/node_modules/readable-stream/node_modules/buffer-shims/license.md
@@ -0,0 +1,19 @@
+# Copyright (c) 2016 Calvin Metcalf
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.**
diff --git a/node_modules/readable-stream/node_modules/buffer-shims/package.json b/node_modules/readable-stream/node_modules/buffer-shims/package.json
new file mode 100644
index 000000000..1a9a8e0ae
--- /dev/null
+++ b/node_modules/readable-stream/node_modules/buffer-shims/package.json
@@ -0,0 +1,84 @@
+{
+ "_args": [
+ [
+ {
+ "name": "buffer-shims",
+ "raw": "buffer-shims@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "/Users/zkat/Documents/code/npm/node_modules/readable-stream"
+ ]
+ ],
+ "_from": "buffer-shims@>=1.0.0 <2.0.0",
+ "_id": "buffer-shims@1.0.0",
+ "_inCache": true,
+ "_installable": true,
+ "_location": "/readable-stream/buffer-shims",
+ "_nodeVersion": "5.11.0",
+ "_npmOperationalInternal": {
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/buffer-shims-1.0.0.tgz_1462560889323_0.8640750856138766"
+ },
+ "_npmUser": {
+ "email": "calvin.metcalf@gmail.com",
+ "name": "cwmma"
+ },
+ "_npmVersion": "3.8.6",
+ "_phantomChildren": {},
+ "_requested": {
+ "name": "buffer-shims",
+ "raw": "buffer-shims@^1.0.0",
+ "rawSpec": "^1.0.0",
+ "scope": null,
+ "spec": ">=1.0.0 <2.0.0",
+ "type": "range"
+ },
+ "_requiredBy": [
+ "/readable-stream"
+ ],
+ "_resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
+ "_shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
+ "_shrinkwrap": null,
+ "_spec": "buffer-shims@^1.0.0",
+ "_where": "/Users/zkat/Documents/code/npm/node_modules/readable-stream",
+ "bugs": {
+ "url": "https://github.com/calvinmetcalf/buffer-shims/issues"
+ },
+ "dependencies": {},
+ "description": "some shims for node buffers",
+ "devDependencies": {
+ "tape": "^4.5.1"
+ },
+ "directories": {},
+ "dist": {
+ "shasum": "9978ce317388c649ad8793028c3477ef044a8b51",
+ "tarball": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz"
+ },
+ "files": [
+ "index.js"
+ ],
+ "gitHead": "ea89b3857ab5b8203957922a84e9a48cf4c47e0a",
+ "homepage": "https://github.com/calvinmetcalf/buffer-shims#readme",
+ "license": "MIT",
+ "main": "index.js",
+ "maintainers": [
+ {
+ "email": "calvin.metcalf@gmail.com",
+ "name": "cwmma"
+ }
+ ],
+ "name": "buffer-shims",
+ "optionalDependencies": {},
+ "readme": "ERROR: No README data found!",
+ "repository": {
+ "type": "git",
+ "url": "git+ssh://git@github.com/calvinmetcalf/buffer-shims.git"
+ },
+ "scripts": {
+ "test": "tape test/*.js"
+ },
+ "version": "1.0.0"
+}
diff --git a/node_modules/readable-stream/node_modules/buffer-shims/readme.md b/node_modules/readable-stream/node_modules/buffer-shims/readme.md
new file mode 100644
index 000000000..7ea6475e2
--- /dev/null
+++ b/node_modules/readable-stream/node_modules/buffer-shims/readme.md
@@ -0,0 +1,21 @@
+buffer-shims
+===
+
+functions to make sure the new buffer methods work in older browsers.
+
+```js
+var bufferShim = require('buffer-shims');
+bufferShim.from('foo');
+bufferShim.alloc(9, 'cafeface', 'hex');
+bufferShim.allocUnsafe(15);
+bufferShim.allocUnsafeSlow(21);
+```
+
+should just use the original in newer nodes and on older nodes uses fallbacks.
+
+Known Issues
+===
+- this does not patch the buffer object, only the constructor stuff
+- it's actually a polyfill
+
+![](https://i.imgur.com/zxII3jJ.gif)
diff --git a/node_modules/readable-stream/package.json b/node_modules/readable-stream/package.json
index 0d9406051..ef5ff11b1 100644
--- a/node_modules/readable-stream/package.json
+++ b/node_modules/readable-stream/package.json
@@ -1,33 +1,40 @@
{
"_args": [
[
- "readable-stream@~2.1.0",
- "/Users/rebecca/code/npm"
+ {
+ "name": "readable-stream",
+ "raw": "readable-stream@2.1.3",
+ "rawSpec": "2.1.3",
+ "scope": null,
+ "spec": "2.1.3",
+ "type": "version"
+ },
+ "/Users/zkat/Documents/code/npm"
]
],
- "_from": "readable-stream@>=2.1.0 <2.2.0",
- "_id": "readable-stream@2.1.2",
+ "_from": "readable-stream@2.1.3",
+ "_id": "readable-stream@2.1.3",
"_inCache": true,
"_installable": true,
"_location": "/readable-stream",
- "_nodeVersion": "5.10.1",
+ "_nodeVersion": "5.11.0",
"_npmOperationalInternal": {
- "host": "packages-12-west.internal.npmjs.com",
- "tmp": "tmp/readable-stream-2.1.2.tgz_1461933796258_0.5075750169344246"
+ "host": "packages-16-east.internal.npmjs.com",
+ "tmp": "tmp/readable-stream-2.1.3.tgz_1463587875388_0.811288726516068"
},
"_npmUser": {
"email": "calvin.metcalf@gmail.com",
"name": "cwmma"
},
- "_npmVersion": "3.8.3",
+ "_npmVersion": "3.8.6",
"_phantomChildren": {},
"_requested": {
"name": "readable-stream",
- "raw": "readable-stream@~2.1.0",
- "rawSpec": "~2.1.0",
+ "raw": "readable-stream@2.1.3",
+ "rawSpec": "2.1.3",
"scope": null,
- "spec": ">=2.1.0 <2.2.0",
- "type": "range"
+ "spec": "2.1.3",
+ "type": "version"
},
"_requiredBy": [
"/",
@@ -37,11 +44,11 @@
"/tap",
"/tap/tap-parser"
],
- "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz",
- "_shasum": "a92b6e854f13ff0685e4ca7dce6cf73d3e319422",
+ "_resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.3.tgz",
+ "_shasum": "9db8ec4025b4c71e69aec60b453b590c8afeb0df",
"_shrinkwrap": null,
- "_spec": "readable-stream@~2.1.0",
- "_where": "/Users/rebecca/code/npm",
+ "_spec": "readable-stream@2.1.3",
+ "_where": "/Users/zkat/Documents/code/npm",
"browser": {
"util": false
},
@@ -49,6 +56,7 @@
"url": "https://github.com/nodejs/readable-stream/issues"
},
"dependencies": {
+ "buffer-shims": "^1.0.0",
"core-util-is": "~1.0.0",
"inherits": "~2.0.1",
"isarray": "~1.0.0",
@@ -58,6 +66,7 @@
},
"description": "Streams3, a user-land copy of the stream library from Node.js",
"devDependencies": {
+ "assert": "~1.4.0",
"nyc": "^6.4.0",
"tap": "~0.7.1",
"tape": "~4.5.1",
@@ -65,10 +74,10 @@
},
"directories": {},
"dist": {
- "shasum": "a92b6e854f13ff0685e4ca7dce6cf73d3e319422",
- "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.2.tgz"
+ "shasum": "9db8ec4025b4c71e69aec60b453b590c8afeb0df",
+ "tarball": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.3.tgz"
},
- "gitHead": "06754eed4f2b882b589f8667ecc8aadcf916045f",
+ "gitHead": "abcff84645534aaedaed4192c4ce788af9112bc2",
"homepage": "https://github.com/nodejs/readable-stream#readme",
"keywords": [
"readable",
@@ -115,5 +124,5 @@
"test": "tap test/parallel/*.js test/ours/*.js",
"write-zuul": "printf \"ui: tape\nbrowsers:\n - name: $BROWSER_NAME\n version: $BROWSER_VERSION\n\">.zuul.yml"
},
- "version": "2.1.2"
+ "version": "2.1.3"
}