diff options
Diffstat (limited to 'node_modules/async/coverage/lcov-report/lib/async.js.html')
-rw-r--r-- | node_modules/async/coverage/lcov-report/lib/async.js.html | 3900 |
1 files changed, 3900 insertions, 0 deletions
diff --git a/node_modules/async/coverage/lcov-report/lib/async.js.html b/node_modules/async/coverage/lcov-report/lib/async.js.html new file mode 100644 index 000000000..951e4c247 --- /dev/null +++ b/node_modules/async/coverage/lcov-report/lib/async.js.html @@ -0,0 +1,3900 @@ +<!doctype html> +<html lang="en"> +<head> + <title>Code coverage report for lib/async.js</title> + <meta charset="utf-8"> + <link rel="stylesheet" href="../prettify.css"> + <link rel="stylesheet" href="../base.css"> + <style type='text/css'> + div.coverage-summary .sorter { + background-image: url(../sort-arrow-sprite.png); + } + </style> +</head> +<body> +<div class="header high"> + <h1>Code coverage report for <span class="entity">lib/async.js</span></h1> + <h2> + Statements: <span class="metric">94.13% <small>(673 / 715)</small></span> + Branches: <span class="metric">85% <small>(272 / 320)</small></span> + Functions: <span class="metric">94.2% <small>(195 / 207)</small></span> + Lines: <span class="metric">94.36% <small>(669 / 709)</small></span> + Ignored: <span class="metric"><span class="ignore-none">none</span></span> + </h2> + <div class="path"><a href="../index.html">All files</a> » <a href="index.html">lib/</a> » async.js</div> +</div> +<div class="body"> +<pre><table class="coverage"> +<tr><td class="line-count">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 +894 +895 +896 +897 +898 +899 +900 +901 +902 +903 +904 +905 +906 +907 +908 +909 +910 +911 +912 +913 +914 +915 +916 +917 +918 +919 +920 +921 +922 +923 +924 +925 +926 +927 +928 +929 +930 +931 +932 +933 +934 +935 +936 +937 +938 +939 +940 +941 +942 +943 +944 +945 +946 +947 +948 +949 +950 +951 +952 +953 +954 +955 +956 +957 +958 +959 +960 +961 +962 +963 +964 +965 +966 +967 +968 +969 +970 +971 +972 +973 +974 +975 +976 +977 +978 +979 +980 +981 +982 +983 +984 +985 +986 +987 +988 +989 +990 +991 +992 +993 +994 +995 +996 +997 +998 +999 +1000 +1001 +1002 +1003 +1004 +1005 +1006 +1007 +1008 +1009 +1010 +1011 +1012 +1013 +1014 +1015 +1016 +1017 +1018 +1019 +1020 +1021 +1022 +1023 +1024 +1025 +1026 +1027 +1028 +1029 +1030 +1031 +1032 +1033 +1034 +1035 +1036 +1037 +1038 +1039 +1040 +1041 +1042 +1043 +1044 +1045 +1046 +1047 +1048 +1049 +1050 +1051 +1052 +1053 +1054 +1055 +1056 +1057 +1058 +1059 +1060 +1061 +1062 +1063 +1064 +1065 +1066 +1067 +1068 +1069 +1070 +1071 +1072 +1073 +1074 +1075 +1076 +1077 +1078 +1079 +1080 +1081 +1082 +1083 +1084 +1085 +1086 +1087 +1088 +1089 +1090 +1091 +1092 +1093 +1094 +1095 +1096 +1097 +1098 +1099 +1100 +1101 +1102 +1103 +1104 +1105 +1106 +1107 +1108 +1109 +1110 +1111 +1112 +1113 +1114 +1115 +1116 +1117 +1118 +1119 +1120 +1121 +1122 +1123 +1124 +1125 +1126 +1127 +1128 +1129 +1130 +1131 +1132 +1133 +1134 +1135 +1136 +1137 +1138 +1139 +1140 +1141 +1142 +1143 +1144 +1145 +1146 +1147 +1148 +1149 +1150 +1151 +1152 +1153 +1154 +1155 +1156 +1157 +1158 +1159 +1160 +1161 +1162 +1163 +1164 +1165 +1166 +1167 +1168 +1169 +1170 +1171 +1172 +1173 +1174 +1175 +1176 +1177 +1178 +1179 +1180 +1181 +1182 +1183 +1184 +1185 +1186 +1187 +1188 +1189 +1190 +1191 +1192 +1193 +1194 +1195 +1196 +1197 +1198 +1199 +1200 +1201 +1202 +1203 +1204 +1205 +1206 +1207 +1208 +1209 +1210 +1211 +1212 +1213 +1214 +1215 +1216 +1217 +1218 +1219 +1220 +1221 +1222 +1223 +1224 +1225 +1226 +1227 +1228 +1229 +1230 +1231 +1232 +1233 +1234 +1235 +1236 +1237 +1238 +1239 +1240 +1241 +1242 +1243 +1244 +1245 +1246 +1247 +1248 +1249 +1250 +1251 +1252 +1253 +1254 +1255 +1256 +1257 +1258 +1259 +1260 +1261 +1262 +1263 +1264 +1265 +1266 +1267 +1268 +1269 +1270 +1271 +1272 +1273 +1274 +1275 +1276 +1277 +1278 +1279 +1280 +1281 +1282 +1283 +1284 +1285 +1286</td><td class="line-coverage"><span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">162</span> +<span class="cline-any cline-yes">162</span> +<span class="cline-any cline-yes">162</span> +<span class="cline-any cline-yes">158</span> +<span class="cline-any cline-yes">158</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">249</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">249</span> +<span class="cline-any cline-yes">402</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">76</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">76</span> +<span class="cline-any cline-yes">222</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">76</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">54</span> +<span class="cline-any cline-yes">54</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">54</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-yes">148</span> +<span class="cline-any cline-yes">148</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-yes">360</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">237</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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-neutral"> </span> +<span class="cline-any cline-yes">219</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">37</span> +<span class="cline-any cline-yes">37</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">99</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">95</span> +<span class="cline-any cline-yes">14</span> +<span class="cline-any cline-yes">14</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">81</span> +<span class="cline-any cline-yes">81</span> +<span class="cline-any cline-yes">27</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">35</span> +<span class="cline-any cline-yes">35</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">33</span> +<span class="cline-any cline-yes">33</span> +<span class="cline-any cline-yes">79</span> +<span class="cline-any cline-yes">76</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">66</span> +<span class="cline-any cline-yes">66</span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">46</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">33</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">27</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-yes">77</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">77</span> +<span class="cline-any cline-yes">81</span> +<span class="cline-any cline-yes">81</span> +<span class="cline-any cline-yes">81</span> +<span class="cline-any cline-yes">77</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"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">71</span> +<span class="cline-any cline-yes">71</span> +<span class="cline-any cline-yes">71</span> +<span class="cline-any cline-yes">11</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">60</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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-yes">5</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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-yes">5</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">4</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-yes">6</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </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-yes">9</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">40</span> +<span class="cline-any cline-yes">142</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">40</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">39</span> +<span class="cline-any cline-yes">39</span> +<span class="cline-any cline-yes">99</span> +<span class="cline-any cline-yes">97</span> +<span class="cline-any cline-yes">97</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">39</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">10</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"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">15</span> +<span class="cline-any cline-yes">15</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">27</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-yes">47</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">28</span> +<span class="cline-any cline-yes">28</span> +<span class="cline-any cline-yes">27</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">28</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">34</span> +<span class="cline-any cline-yes">23</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">32</span> +<span class="cline-any cline-yes">54</span> +<span class="cline-any cline-yes">54</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">32</span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15</span> +<span class="cline-any cline-yes">22</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">15</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </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-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">12</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">13</span> +<span class="cline-any cline-yes">11</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">2</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-yes">4</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">18</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</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-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-yes">38</span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-yes">24</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">25</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">38</span> +<span class="cline-any cline-yes">46</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">38</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</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"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</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"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">20</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">45</span> +<span class="cline-any cline-yes">17</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">45</span> +<span class="cline-any cline-yes">39</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">45</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">43</span> +<span class="cline-any cline-yes">56</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">56</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">48</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">56</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">56</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">132</span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">31</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-yes">63</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">37</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">19</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">41</span> +<span class="cline-any cline-yes">40</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">41</span> +<span class="cline-any cline-yes">44</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">44</span> +<span class="cline-any cline-yes">44</span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">41</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">62</span> +<span class="cline-any cline-yes">54</span> +<span class="cline-any cline-yes">33</span> +<span class="cline-any cline-yes">33</span> +<span class="cline-any cline-yes">33</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">44</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-yes">44</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">21</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">5</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">2</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-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">8</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</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">11</span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-yes">7</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">4</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-yes">10</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">2</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</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-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-yes">14</span> +<span class="cline-any cline-yes">14</span> +<span class="cline-any cline-yes">14</span> +<span class="cline-any cline-yes">14</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">6</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">3</span> +<span class="cline-any cline-yes">9</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </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"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">51</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">50</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-yes">1</span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-no"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span> +<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">/*! + * async + * https://github.com/caolan/async + * + * Copyright 2010-2014 Caolan McMahon + * Released under the MIT license + */ +(function () { + + var async = {}; + var noop = function () {}; + + // global on the server, window in the browser + var root, previous_async; + + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof window == 'object' && <span class="branch-1 cbranch-no" title="branch not covered" >this === window)</span> { +<span class="cstat-no" title="statement not covered" > root = window;</span> + } + else <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof global == 'object' && this === global) { + root = global; + } + else { +<span class="cstat-no" title="statement not covered" > root = this;</span> + } + + <span class="missing-if-branch" title="else path not taken" >E</span>if (root != null) { + previous_async = root.async; + } + + async.noConflict = <span class="fstat-no" title="function not covered" >function () {</span> +<span class="cstat-no" title="statement not covered" > root.async = previous_async;</span> +<span class="cstat-no" title="statement not covered" > return async;</span> + }; + + function only_once(fn) { + var called = false; + return function() { + if (called) throw new Error("Callback was already called."); + called = true; + fn.apply(root, arguments); + }; + } + + //// cross-browser compatiblity functions //// + + var _toString = Object.prototype.toString; + + var _isArray = Array.isArray || <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" > return _toString.call(obj) === '[object Array]';</span> + }; + + var _each = function (arr, iterator) { + var index = -1, + length = arr.length; + + while (++index < length) { + iterator(arr[index], index, arr); + } + }; + + var _map = function (arr, iterator) { + var index = -1, + length = arr.length, + result = Array(length); + + while (++index < length) { + result[index] = iterator(arr[index], index, arr); + } + return result; + }; + + var _reduce = function (arr, iterator, memo) { + _each(arr, function (x, i, a) { + memo = iterator(memo, x, i, a); + }); + return memo; + }; + + var _forEachOf = function (object, iterator) { + _each(_keys(object), function (key) { + iterator(object[key], key); + }); + }; + + var _keys = 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 k in obj) {</span> +<span class="cstat-no" title="statement not covered" > if (obj.hasOwnProperty(k)) {</span> +<span class="cstat-no" title="statement not covered" > keys.push(k);</span> + } + } +<span class="cstat-no" title="statement not covered" > return keys;</span> + }; + + var _baseSlice = function (arr, start) { + start = start || 0; + var index = -1; + var length = arr.length; + + if (start) { + length -= start; + length = length < 0 ? 0 : length; + } + var result = Array(length); + + while (++index < length) { + result[index] = arr[index + start]; + } + return result; + }; + + //// exported async module functions //// + + //// nextTick implementation with browser-compatible fallback //// + + // capture the global reference to guard against fakeTimer mocks + var _setImmediate; + <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof setImmediate === 'function') { + _setImmediate = setImmediate; + } + + <span class="missing-if-branch" title="if path not taken" >I</span>if (typeof process === 'undefined' || !(process.nextTick)) { +<span class="cstat-no" title="statement not covered" > if (_setImmediate) {</span> +<span class="cstat-no" title="statement not covered" > async.nextTick = <span class="fstat-no" title="function not covered" >function (fn) {</span></span> + // not a direct alias for IE10 compatibility +<span class="cstat-no" title="statement not covered" > _setImmediate(fn);</span> + }; +<span class="cstat-no" title="statement not covered" > async.setImmediate = async.nextTick;</span> + } + else { +<span class="cstat-no" title="statement not covered" > async.nextTick = <span class="fstat-no" title="function not covered" >function (fn) {</span></span> +<span class="cstat-no" title="statement not covered" > setTimeout(fn, 0);</span> + }; +<span class="cstat-no" title="statement not covered" > async.setImmediate = async.nextTick;</span> + } + } + else { + async.nextTick = process.nextTick; + <span class="missing-if-branch" title="else path not taken" >E</span>if (_setImmediate) { + async.setImmediate = function (fn) { + // not a direct alias for IE10 compatibility + _setImmediate(fn); + }; + } + else { +<span class="cstat-no" title="statement not covered" > async.setImmediate = async.nextTick;</span> + } + } + + async.each = function (arr, iterator, callback) { + callback = callback || noop; + if (!arr.length) { + return callback(null); + } + var completed = 0; + _each(arr, function (x) { + iterator(x, only_once(done) ); + }); + function done(err) { + if (err) { + callback(err); + callback = noop; + } + else { + completed += 1; + if (completed >= arr.length) { + callback(null); + } + } + } + }; + async.forEach = async.each; + + async.eachSeries = function (arr, iterator, callback) { + callback = callback || noop; + if (!arr.length) { + return callback(null); + } + var completed = 0; + var iterate = function () { + iterator(arr[completed], function (err) { + if (err) { + callback(err); + callback = noop; + } + else { + completed += 1; + if (completed >= arr.length) { + callback(null); + } + else { + iterate(); + } + } + }); + }; + iterate(); + }; + async.forEachSeries = async.eachSeries; + + + async.eachLimit = function (arr, limit, iterator, callback) { + var fn = _eachLimit(limit); + fn.apply(null, [arr, iterator, callback]); + }; + async.forEachLimit = async.eachLimit; + + var _eachLimit = function (limit) { + + return function (arr, iterator, callback) { + callback = callback || noop; + if (!arr.length || limit <= 0) { + return callback(null); + } + var completed = 0; + var started = 0; + var running = 0; + var errored = false; + + (function replenish () { + <span class="missing-if-branch" title="if path not taken" >I</span>if (completed >= arr.length) { +<span class="cstat-no" title="statement not covered" > return callback(null);</span> + } + + while (running < limit && started < arr.length && !errored) { + started += 1; + running += 1; + iterator(arr[started - 1], function (err) { + if (err) { + callback(err); + errored = true; + callback = noop; + } + else { + completed += 1; + running -= 1; + if (completed >= arr.length) { + callback(null); + } + else { + replenish(); + } + } + }); + } + })(); + }; + }; + + + + async.forEachOf = async.eachOf = function (object, iterator, callback) { + callback = callback || function () {}; + var size = object.length || _keys(object).length; + var completed = 0; + if (!size) { + return callback(null); + } + _forEachOf(object, function (value, key) { + iterator(object[key], key, function (err) { + if (err) { + callback(err); + callback = function () {}; + } else { + completed += 1; + if (completed === size) { + callback(null); + } + } + }); + }); + }; + + async.forEachOfSeries = async.eachOfSeries = function (obj, iterator, callback) { + callback = callback || function () {}; + var keys = _keys(obj); + var size = keys.length; + if (!size) { + return callback(); + } + var completed = 0; + var iterate = function () { + var sync = true; + var key = keys[completed]; + iterator(obj[key], key, function (err) { + if (err) { + callback(err); + callback = <span class="fstat-no" title="function not covered" >function () {</span>}; + } + else { + completed += 1; + if (completed >= size) { + callback(null); + } + else { + <span class="missing-if-branch" title="if path not taken" >I</span>if (sync) { +<span class="cstat-no" title="statement not covered" > async.nextTick(iterate);</span> + } + else { + iterate(); + } + } + } + }); + sync = false; + }; + iterate(); + }; + + + + async.forEachOfLimit = async.eachOfLimit = function (obj, limit, iterator, callback) { + _forEachOfLimit(limit)(obj, iterator, callback); + }; + + var _forEachOfLimit = function (limit) { + + return function (obj, iterator, callback) { + callback = callback || function () {}; + var keys = _keys(obj); + var size = keys.length; + if (!size || limit <= 0) { + return callback(null); + } + var completed = 0; + var started = 0; + var running = 0; + + (function replenish () { + <span class="missing-if-branch" title="if path not taken" >I</span>if (completed >= size) { +<span class="cstat-no" title="statement not covered" > return callback();</span> + } + + while (running < limit && started < size) { + started += 1; + running += 1; + var key = keys[started - 1]; + iterator(obj[key], key, function (err) { + if (err) { + callback(err); + callback = <span class="fstat-no" title="function not covered" >function () {</span>}; + } + else { + completed += 1; + running -= 1; + if (completed >= size) { + callback(null); + } + else { + replenish(); + } + } + }); + } + })(); + }; + }; + + + var doParallel = function (fn) { + return function () { + var args = _baseSlice(arguments); + return fn.apply(null, [async.each].concat(args)); + }; + }; + var doParallelLimit = function(limit, fn) { + return function () { + var args = _baseSlice(arguments); + return fn.apply(null, [_eachLimit(limit)].concat(args)); + }; + }; + var doSeries = function (fn) { + return function () { + var args = _baseSlice(arguments); + return fn.apply(null, [async.eachSeries].concat(args)); + }; + }; + + + var _asyncMap = function (eachfn, arr, iterator, callback) { + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + if (!callback) { + eachfn(arr, function (x, callback) { + iterator(x.value, function (err) { + callback(err); + }); + }); + } else { + var results = []; + eachfn(arr, function (x, callback) { + iterator(x.value, function (err, v) { + results[x.index] = v; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + async.map = doParallel(_asyncMap); + async.mapSeries = doSeries(_asyncMap); + async.mapLimit = function (arr, limit, iterator, callback) { + return _mapLimit(limit)(arr, iterator, callback); + }; + + var _mapLimit = function(limit) { + return doParallelLimit(limit, _asyncMap); + }; + + // reduce only has a series version, as doing reduce in parallel won't + // work in many situations. + async.reduce = function (arr, memo, iterator, callback) { + async.eachSeries(arr, function (x, callback) { + iterator(memo, x, function (err, v) { + memo = v; + callback(err); + }); + }, function (err) { + callback(err || null, memo); + }); + }; + // inject alias + async.inject = async.reduce; + // foldl alias + async.foldl = async.reduce; + + async.reduceRight = function (arr, memo, iterator, callback) { + var reversed = _map(arr, function (x) { + return x; + }).reverse(); + async.reduce(reversed, memo, iterator, callback); + }; + // foldr alias + async.foldr = async.reduceRight; + + var _filter = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(function (a, b) { + return a.index - b.index; + }), function (x) { + return x.value; + })); + }); + }; + async.filter = doParallel(_filter); + async.filterSeries = doSeries(_filter); + // select alias + async.select = async.filter; + async.selectSeries = async.filterSeries; + + var _reject = function (eachfn, arr, iterator, callback) { + var results = []; + arr = _map(arr, function (x, i) { + return {index: i, value: x}; + }); + eachfn(arr, function (x, callback) { + iterator(x.value, function (v) { + if (!v) { + results.push(x); + } + callback(); + }); + }, function (err) { + callback(_map(results.sort(<span class="fstat-no" title="function not covered" >function (a, b) {</span> +<span class="cstat-no" title="statement not covered" > return a.index - b.index;</span> + }), function (x) { + return x.value; + })); + }); + }; + async.reject = doParallel(_reject); + async.rejectSeries = doSeries(_reject); + + var _detect = function (eachfn, arr, iterator, main_callback) { + eachfn(arr, function (x, callback) { + iterator(x, function (result) { + if (result) { + main_callback(x); + main_callback = noop; + } + else { + callback(); + } + }); + }, <span class="fstat-no" title="function not covered" >function (err) {</span> +<span class="cstat-no" title="statement not covered" > main_callback();</span> + }); + }; + async.detect = doParallel(_detect); + async.detectSeries = doSeries(_detect); + + async.some = function (arr, iterator, main_callback) { + async.each(arr, function (x, callback) { + iterator(x, function (v) { + if (v) { + main_callback(true); + main_callback = noop; + } + callback(); + }); + }, function (err) { + main_callback(false); + }); + }; + // any alias + async.any = async.some; + + async.every = function (arr, iterator, main_callback) { + async.each(arr, function (x, callback) { + iterator(x, function (v) { + if (!v) { + main_callback(false); + main_callback = noop; + } + callback(); + }); + }, function (err) { + main_callback(true); + }); + }; + // all alias + async.all = async.every; + + async.sortBy = function (arr, iterator, callback) { + async.map(arr, function (x, callback) { + iterator(x, function (err, criteria) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (err) { +<span class="cstat-no" title="statement not covered" > callback(err);</span> + } + else { + callback(null, {value: x, criteria: criteria}); + } + }); + }, function (err, results) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (err) { +<span class="cstat-no" title="statement not covered" > return callback(err);</span> + } + else { + var fn = function (left, right) { + var a = left.criteria, b = right.criteria; + return a < b ? -1 : a > b ? 1 : <span class="branch-1 cbranch-no" title="branch not covered" >0;</span> + }; + callback(null, _map(results.sort(fn), function (x) { + return x.value; + })); + } + }); + }; + + async.auto = function (tasks, callback) { + callback = callback || noop; + var keys = _keys(tasks); + var remainingTasks = keys.length; + if (!remainingTasks) { + return callback(null); + } + + var results = {}; + + var listeners = []; + var addListener = function (fn) { + listeners.unshift(fn); + }; + var removeListener = function (fn) { + for (var i = 0; i < listeners.length; i += 1) { + if (listeners[i] === fn) { + listeners.splice(i, 1); + return; + } + } + }; + var taskComplete = function () { + remainingTasks--; + _each(listeners.slice(0), function (fn) { + fn(); + }); + }; + + addListener(function () { + if (!remainingTasks) { + var theCallback = callback; + // prevent final callback from calling itself if it errors + callback = noop; + + theCallback(null, results); + } + }); + + _each(keys, function (k) { + var task = _isArray(tasks[k]) ? tasks[k]: [tasks[k]]; + var taskCallback = function (err) { + var args = _baseSlice(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + if (err) { + var safeResults = {}; + _each(_keys(results), function(rkey) { + safeResults[rkey] = results[rkey]; + }); + safeResults[k] = args; + callback(err, safeResults); + // stop subsequent errors hitting callback multiple times + callback = noop; + } + else { + results[k] = args; + async.setImmediate(taskComplete); + } + }; + var requires = task.slice(0, Math.abs(task.length - 1)) || <span class="branch-1 cbranch-no" title="branch not covered" >[];</span> + // prevent dead-locks + var len = requires.length; + var dep; + while (len--) { + if (!(dep = tasks[requires[len]])) { + throw new Error('Has inexistant dependency'); + } + if (_isArray(dep) && !!~dep.indexOf(k)) { + throw new Error('Has cyclic dependencies'); + } + } + var ready = function () { + return _reduce(requires, function (a, x) { + return (a && results.hasOwnProperty(x)); + }, true) && !results.hasOwnProperty(k); + }; + if (ready()) { + task[task.length - 1](taskCallback, results); + } + else { + var listener = function () { + if (ready()) { + removeListener(listener); + task[task.length - 1](taskCallback, results); + } + }; + addListener(listener); + } + }); + }; + + async.retry = function(times, task, callback) { + var DEFAULT_TIMES = 5; + var attempts = []; + // Use defaults if times not passed + if (typeof times === 'function') { + callback = task; + task = times; + times = DEFAULT_TIMES; + } + // Make sure times is a number + times = parseInt(times, 10) || <span class="branch-1 cbranch-no" title="branch not covered" >DEFAULT_TIMES;</span> + var wrappedTask = function(wrappedCallback, wrappedResults) { + var retryAttempt = function(task, finalAttempt) { + return function(seriesCallback) { + task(function(err, result){ + seriesCallback(!err || finalAttempt, {err: err, result: result}); + }, wrappedResults); + }; + }; + while (times) { + attempts.push(retryAttempt(task, !(times-=1))); + } + async.series(attempts, function(done, data){ + data = data[data.length - 1]; + (wrappedCallback || callback)(data.err, data.result); + }); + }; + // If a callback is passed, run this as a controll flow + return callback ? wrappedTask() : wrappedTask; + }; + + async.waterfall = function (tasks, callback) { + callback = callback || noop; + if (!_isArray(tasks)) { + var err = new Error('First argument to waterfall must be an array of functions'); + return callback(err); + } + if (!tasks.length) { + return callback(); + } + var wrapIterator = function (iterator) { + return function (err) { + if (err) { + callback.apply(null, arguments); + callback = noop; + } + else { + var args = _baseSlice(arguments, 1); + var next = iterator.next(); + if (next) { + args.push(wrapIterator(next)); + } + else { + args.push(callback); + } + async.setImmediate(function () { + iterator.apply(null, args); + }); + } + }; + }; + wrapIterator(async.iterator(tasks))(); + }; + + var _parallel = function(eachfn, tasks, callback) { + callback = callback || noop; + if (_isArray(tasks)) { + eachfn.map(tasks, function (fn, callback) { + <span class="missing-if-branch" title="else path not taken" >E</span>if (fn) { + fn(function (err) { + var args = _baseSlice(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + eachfn.each(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = _baseSlice(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.parallel = function (tasks, callback) { + _parallel({ map: async.map, each: async.each }, tasks, callback); + }; + + async.parallelLimit = function(tasks, limit, callback) { + _parallel({ map: _mapLimit(limit), each: _eachLimit(limit) }, tasks, callback); + }; + + async.series = function (tasks, callback) { + callback = callback || noop; + if (_isArray(tasks)) { + async.mapSeries(tasks, function (fn, callback) { + <span class="missing-if-branch" title="else path not taken" >E</span>if (fn) { + fn(function (err) { + var args = _baseSlice(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + callback.call(null, err, args); + }); + } + }, callback); + } + else { + var results = {}; + async.eachSeries(_keys(tasks), function (k, callback) { + tasks[k](function (err) { + var args = _baseSlice(arguments, 1); + if (args.length <= 1) { + args = args[0]; + } + results[k] = args; + callback(err); + }); + }, function (err) { + callback(err, results); + }); + } + }; + + async.iterator = function (tasks) { + var makeCallback = function (index) { + var fn = function () { + if (tasks.length) { + tasks[index].apply(null, arguments); + } + return fn.next(); + }; + fn.next = function () { + return (index < tasks.length - 1) ? makeCallback(index + 1): null; + }; + return fn; + }; + return makeCallback(0); + }; + + async.apply = function (fn) { + var args = _baseSlice(arguments, 1); + return function () { + return fn.apply( + null, args.concat(_baseSlice(arguments)) + ); + }; + }; + + var _concat = function (eachfn, arr, fn, callback) { + var r = []; + eachfn(arr, function (x, cb) { + fn(x, function (err, y) { + r = r.concat(y || []); + cb(err); + }); + }, function (err) { + callback(err, r); + }); + }; + async.concat = doParallel(_concat); + async.concatSeries = doSeries(_concat); + + async.whilst = function (test, iterator, callback) { + if (test()) { + iterator(function (err) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (err) { +<span class="cstat-no" title="statement not covered" > return callback(err);</span> + } + async.whilst(test, iterator, callback); + }); + } + else { + callback(null); + } + }; + + async.doWhilst = function (iterator, test, callback) { + iterator(function (err) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (err) { +<span class="cstat-no" title="statement not covered" > return callback(err);</span> + } + var args = _baseSlice(arguments, 1); + if (test.apply(null, args)) { + async.doWhilst(iterator, test, callback); + } + else { + callback(null); + } + }); + }; + + async.until = function (test, iterator, callback) { + if (!test()) { + iterator(function (err) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (err) { +<span class="cstat-no" title="statement not covered" > return callback(err);</span> + } + async.until(test, iterator, callback); + }); + } + else { + callback(null); + } + }; + + async.doUntil = function (iterator, test, callback) { + iterator(function (err) { + <span class="missing-if-branch" title="if path not taken" >I</span>if (err) { +<span class="cstat-no" title="statement not covered" > return callback(err);</span> + } + var args = _baseSlice(arguments, 1); + if (!test.apply(null, args)) { + async.doUntil(iterator, test, callback); + } + else { + callback(null); + } + }); + }; + + async.queue = function (worker, concurrency) { + if (concurrency === undefined) { + concurrency = 1; + } + else if(concurrency === 0) { + throw new Error('Concurrency must not be zero'); + } + function _insert(q, data, pos, callback) { + if (!q.started){ + q.started = true; + } + if (!_isArray(data)) { + data = [data]; + } + if(data.length === 0) { + // call drain immediately if there are no tasks + return async.setImmediate(function() { + if (q.drain) { + q.drain(); + } + }); + } + _each(data, function(task) { + var item = { + data: task, + callback: typeof callback === 'function' ? callback : null + }; + + if (pos) { + q.tasks.unshift(item); + } else { + q.tasks.push(item); + } + + if (q.saturated && q.tasks.length === q.concurrency) { + q.saturated(); + } + async.setImmediate(q.process); + }); + } + + var workers = 0; + var q = { + tasks: [], + concurrency: concurrency, + saturated: null, + empty: null, + drain: null, + started: false, + paused: false, + push: function (data, callback) { + _insert(q, data, false, callback); + }, + kill: function () { + q.drain = null; + q.tasks = []; + }, + unshift: function (data, callback) { + _insert(q, data, true, callback); + }, + process: function () { + if (!q.paused && workers < q.concurrency && q.tasks.length) { + var task = q.tasks.shift(); + if (q.empty && q.tasks.length === 0) { + q.empty(); + } + workers += 1; + var next = function () { + workers -= 1; + if (task.callback) { + task.callback.apply(task, arguments); + } + if (q.drain && q.tasks.length + workers === 0) { + q.drain(); + } + q.process(); + }; + var cb = only_once(next); + worker(task.data, cb); + } + }, + length: function () { + return q.tasks.length; + }, + running: function () { + return workers; + }, + idle: function() { + return q.tasks.length + workers === 0; + }, + pause: function () { + <span class="missing-if-branch" title="if path not taken" >I</span>if (q.paused === true) { <span class="cstat-no" title="statement not covered" >return; </span>} + q.paused = true; + }, + resume: function () { + if (q.paused === false) { return; } + q.paused = false; + var resumeCount = Math.min(q.concurrency, q.tasks.length); + // Need to call q.process once per concurrent + // worker to preserve full concurrency after pause + for (var w = 1; w <= resumeCount; w++) { + async.setImmediate(q.process); + } + } + }; + return q; + }; + + async.priorityQueue = function (worker, concurrency) { + + function _compareTasks(a, b){ + return a.priority - b.priority; + } + + function _binarySearch(sequence, item, compare) { + var beg = -1, + end = sequence.length - 1; + while (beg < end) { + var mid = beg + ((end - beg + 1) >>> 1); + if (compare(item, sequence[mid]) >= 0) { + beg = mid; + } else { + end = mid - 1; + } + } + return beg; + } + + function _insert(q, data, priority, callback) { + if (!q.started){ + q.started = true; + } + <span class="missing-if-branch" title="else path not taken" >E</span>if (!_isArray(data)) { + data = [data]; + } + <span class="missing-if-branch" title="if path not taken" >I</span>if(data.length === 0) { + // call drain immediately if there are no tasks +<span class="cstat-no" title="statement not covered" > return async.setImmediate(<span class="fstat-no" title="function not covered" >function() {</span></span> +<span class="cstat-no" title="statement not covered" > if (q.drain) {</span> +<span class="cstat-no" title="statement not covered" > q.drain();</span> + } + }); + } + _each(data, function(task) { + var item = { + data: task, + priority: priority, + callback: typeof callback === 'function' ? callback : <span class="branch-1 cbranch-no" title="branch not covered" >null</span> + }; + + q.tasks.splice(_binarySearch(q.tasks, item, _compareTasks) + 1, 0, item); + + <span class="missing-if-branch" title="if path not taken" >I</span>if (q.saturated && <span class="branch-1 cbranch-no" title="branch not covered" >q.tasks.length === q.concurrency)</span> { +<span class="cstat-no" title="statement not covered" > q.saturated();</span> + } + async.setImmediate(q.process); + }); + } + + // Start with a normal queue + var q = async.queue(worker, concurrency); + + // Override push to accept second parameter representing priority + q.push = function (data, priority, callback) { + _insert(q, data, priority, callback); + }; + + // Remove unshift function + delete q.unshift; + + return q; + }; + + async.cargo = function (worker, payload) { + var working = false, + tasks = []; + + var cargo = { + tasks: tasks, + payload: payload, + saturated: null, + empty: null, + drain: null, + drained: true, + push: function (data, callback) { + if (!_isArray(data)) { + data = [data]; + } + _each(data, function(task) { + tasks.push({ + data: task, + callback: typeof callback === 'function' ? callback : null + }); + cargo.drained = false; + <span class="missing-if-branch" title="if path not taken" >I</span>if (cargo.saturated && <span class="branch-1 cbranch-no" title="branch not covered" >tasks.length === payload)</span> { +<span class="cstat-no" title="statement not covered" > cargo.saturated();</span> + } + }); + async.setImmediate(cargo.process); + }, + process: function process() { + if (working) return; + if (tasks.length === 0) { + if(cargo.drain && !cargo.drained) cargo.drain(); + cargo.drained = true; + return; + } + + var ts = typeof payload === 'number' ? + tasks.splice(0, payload) : +<span class="branch-1 cbranch-no" title="branch not covered" > tasks.splice(0, tasks.length);</span> + + var ds = _map(ts, function (task) { + return task.data; + }); + + <span class="missing-if-branch" title="if path not taken" >I</span>if(cargo.empty) <span class="cstat-no" title="statement not covered" >cargo.empty();</span> + working = true; + worker(ds, function () { + working = false; + + var args = arguments; + _each(ts, function (data) { + if (data.callback) { + data.callback.apply(null, args); + } + }); + + process(); + }); + }, + length: function () { + return tasks.length; + }, + running: <span class="fstat-no" title="function not covered" >function () {</span> +<span class="cstat-no" title="statement not covered" > return working;</span> + } + }; + return cargo; + }; + + var _console_fn = function (name) { + return function (fn) { + var args = _baseSlice(arguments, 1); + fn.apply(null, args.concat([function (err) { + var args = _baseSlice(arguments, 1); + <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof console !== 'undefined') { + if (err) { + <span class="missing-if-branch" title="else path not taken" >E</span>if (console.error) { + console.error(err); + } + } + else <span class="missing-if-branch" title="else path not taken" >E</span>if (console[name]) { + _each(args, function (x) { + console[name](x); + }); + } + } + }])); + }; + }; + async.log = _console_fn('log'); + async.dir = _console_fn('dir'); + /*async.info = _console_fn('info'); + async.warn = _console_fn('warn'); + async.error = _console_fn('error');*/ + + async.memoize = function (fn, hasher) { + var memo = {}; + var queues = {}; + hasher = hasher || function (x) { + return x; + }; + var memoized = function () { + var args = _baseSlice(arguments); + var callback = args.pop(); + var key = hasher.apply(null, args); + if (key in memo) { + async.nextTick(function () { + callback.apply(null, memo[key]); + }); + } + else if (key in queues) { + queues[key].push(callback); + } + else { + queues[key] = [callback]; + fn.apply(null, args.concat([function () { + memo[key] = _baseSlice(arguments); + var q = queues[key]; + delete queues[key]; + for (var i = 0, l = q.length; i < l; i++) { + q[i].apply(null, arguments); + } + }])); + } + }; + memoized.memo = memo; + memoized.unmemoized = fn; + return memoized; + }; + + async.unmemoize = function (fn) { + return function () { + return (fn.unmemoized || fn).apply(null, arguments); + }; + }; + + async.times = function (count, iterator, callback) { + var counter = []; + for (var i = 0; i < count; i++) { + counter.push(i); + } + return async.map(counter, iterator, callback); + }; + + async.timesSeries = function (count, iterator, callback) { + var counter = []; + for (var i = 0; i < count; i++) { + counter.push(i); + } + return async.mapSeries(counter, iterator, callback); + }; + + async.seq = function (/* functions... */) { + var fns = arguments; + return function () { + var that = this; + var args = _baseSlice(arguments); + var callback = args.pop(); + async.reduce(fns, args, function (newargs, fn, cb) { + fn.apply(that, newargs.concat([function () { + var err = arguments[0]; + var nextargs = _baseSlice(arguments, 1); + cb(err, nextargs); + }])); + }, + function (err, results) { + callback.apply(that, [err].concat(results)); + }); + }; + }; + + async.compose = function (/* functions... */) { + return async.seq.apply(null, Array.prototype.reverse.call(arguments)); + }; + + var _applyEach = function (eachfn, fns /*args...*/) { + var go = function () { + var that = this; + var args = _baseSlice(arguments); + var callback = args.pop(); + return eachfn(fns, function (fn, cb) { + fn.apply(that, args.concat([cb])); + }, + callback); + }; + if (arguments.length > 2) { + var args = _baseSlice(arguments, 2); + return go.apply(this, args); + } + else { + return go; + } + }; + async.applyEach = doParallel(_applyEach); + async.applyEachSeries = doSeries(_applyEach); + + async.forever = function (fn, callback) { + function next(err) { + if (err) { + <span class="missing-if-branch" title="else path not taken" >E</span>if (callback) { + return callback(err); + } +<span class="cstat-no" title="statement not covered" > throw err;</span> + } + fn(next); + } + next(); + }; + + // Node.js + <span class="missing-if-branch" title="else path not taken" >E</span>if (typeof module !== 'undefined' && module.exports) { + module.exports = async; + } + // AMD / RequireJS + else <span class="cstat-no" title="statement not covered" >if (typeof define !== 'undefined' && define.amd) {</span> +<span class="cstat-no" title="statement not covered" > define([], <span class="fstat-no" title="function not covered" >function () {</span></span> +<span class="cstat-no" title="statement not covered" > return async;</span> + }); + } + // included directly via <script> tag + else { +<span class="cstat-no" title="statement not covered" > root.async = async;</span> + } + +}()); + </pre></td></tr> +</table></pre> + +</div> +<div class="footer"> + <div class="meta">Generated by <a href="http://istanbul-js.org/" target="_blank">istanbul</a> at Sun May 24 2015 15:04:25 GMT-0700 (PDT)</div> +</div> +<script src="../prettify.js"></script> +<script> +window.onload = function () { + if (typeof prettyPrint === 'function') { + prettyPrint(); + } +}; +</script> +<script src="../sorter.js"></script> +</body> +</html> |