keuss 1.6.4 → 1.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (62) hide show
  1. package/.nyc_output/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +1 -0
  2. package/.nyc_output/{06313f3e-1553-402b-bdc2-3a7a639cd559.json → c8683d6c-e7e6-496b-ab0d-1ff730837d08.json} +0 -0
  3. package/.nyc_output/processinfo/ad035de4-a3d3-451b-b2ad-402e8ed517b8.json +1 -0
  4. package/.nyc_output/processinfo/c8683d6c-e7e6-496b-ab0d-1ff730837d08.json +1 -0
  5. package/.nyc_output/processinfo/index.json +1 -1
  6. package/Pipeline/Queue.js +24 -1
  7. package/Queue.js +26 -10
  8. package/TODO +0 -7
  9. package/backends/bucket-mongo-safe.js +39 -3
  10. package/backends/mongo.js +23 -2
  11. package/backends/pl-mongo.js +2 -1
  12. package/backends/ps-mongo.js +31 -2
  13. package/backends/redis-oq.js +12 -1
  14. package/coverage/index.html +43 -43
  15. package/coverage/keuss/Pipeline/BaseLink.js.html +18 -18
  16. package/coverage/keuss/Pipeline/Builder.js.html +1 -1
  17. package/coverage/keuss/Pipeline/ChoiceLink.js.html +1 -1
  18. package/coverage/keuss/Pipeline/DirectLink.js.html +1 -1
  19. package/coverage/keuss/Pipeline/Pipeline.js.html +15 -15
  20. package/coverage/keuss/Pipeline/Queue.js.html +124 -55
  21. package/coverage/keuss/Pipeline/Sink.js.html +1 -1
  22. package/coverage/keuss/Pipeline/index.html +18 -18
  23. package/coverage/keuss/QFactory-MongoDB-defaults.js.html +6 -6
  24. package/coverage/keuss/QFactory.js.html +28 -28
  25. package/coverage/keuss/Queue.js.html +232 -181
  26. package/coverage/keuss/Signal.js.html +28 -28
  27. package/coverage/keuss/Stats.js.html +4 -4
  28. package/coverage/keuss/backends/bucket-mongo-safe.js.html +476 -314
  29. package/coverage/keuss/backends/bucket-mongo.js.html +134 -86
  30. package/coverage/keuss/backends/index.html +69 -69
  31. package/coverage/keuss/backends/mongo.js.html +137 -74
  32. package/coverage/keuss/backends/pl-mongo.js.html +54 -54
  33. package/coverage/keuss/backends/ps-mongo.js.html +164 -80
  34. package/coverage/keuss/backends/redis-list.js.html +39 -36
  35. package/coverage/keuss/backends/redis-oq.js.html +27 -27
  36. package/coverage/keuss/index.html +18 -18
  37. package/coverage/keuss/signal/index.html +1 -1
  38. package/coverage/keuss/signal/local.js.html +17 -17
  39. package/coverage/keuss/signal/mongo-capped.js.html +1 -1
  40. package/coverage/keuss/signal/redis-pubsub.js.html +12 -12
  41. package/coverage/keuss/stats/index.html +10 -10
  42. package/coverage/keuss/stats/mem.js.html +36 -30
  43. package/coverage/keuss/stats/mongo.js.html +8 -8
  44. package/coverage/keuss/stats/redis.js.html +17 -17
  45. package/coverage/keuss/utils/RedisConn.js.html +1 -1
  46. package/coverage/keuss/utils/RedisOrderedQueue.js.html +36 -33
  47. package/coverage/keuss/utils/index.html +5 -5
  48. package/docusaurus/docs/api/queue.md +24 -1
  49. package/docusaurus/docs/changelog.md +11 -0
  50. package/docusaurus/docs/concepts.md +13 -9
  51. package/docusaurus/package-lock.json +4422 -10244
  52. package/docusaurus/package.json +6 -6
  53. package/docusaurus/yarn.lock +8864 -0
  54. package/package.json +11 -11
  55. package/stats/mem.js +3 -1
  56. package/test/backends_bucket-at-least-once.js +13 -13
  57. package/test/backends_remove.js +299 -0
  58. package/test/backends_reserve-commit-rollback.js +165 -151
  59. package/utils/RedisOrderedQueue.js +46 -3
  60. package/.nyc_output/a06aa990-295d-4428-872d-ba9fa06afd1f.json +0 -1
  61. package/.nyc_output/processinfo/06313f3e-1553-402b-bdc2-3a7a639cd559.json +0 -1
  62. package/.nyc_output/processinfo/a06aa990-295d-4428-872d-ba9fa06afd1f.json +0 -1
@@ -20,24 +20,24 @@
20
20
  </h1>
21
21
  <div class='clearfix'>
22
22
  <div class='fl pad1y space-right2'>
23
- <span class="strong">81.28% </span>
23
+ <span class="strong">86.29% </span>
24
24
  <span class="quiet">Statements</span>
25
- <span class='fraction'>343/422</span>
25
+ <span class='fraction'>384/445</span>
26
26
  </div>
27
27
  <div class='fl pad1y space-right2'>
28
- <span class="strong">68.29% </span>
28
+ <span class="strong">74.42% </span>
29
29
  <span class="quiet">Branches</span>
30
- <span class='fraction'>140/205</span>
30
+ <span class='fraction'>160/215</span>
31
31
  </div>
32
32
  <div class='fl pad1y space-right2'>
33
- <span class="strong">89.9% </span>
33
+ <span class="strong">95.05% </span>
34
34
  <span class="quiet">Functions</span>
35
- <span class='fraction'>89/99</span>
35
+ <span class='fraction'>96/101</span>
36
36
  </div>
37
37
  <div class='fl pad1y space-right2'>
38
- <span class="strong">87.12% </span>
38
+ <span class="strong">91.99% </span>
39
39
  <span class="quiet">Lines</span>
40
- <span class='fraction'>318/365</span>
40
+ <span class='fraction'>356/387</span>
41
41
  </div>
42
42
  </div>
43
43
  <p class="quiet">
@@ -953,7 +953,61 @@
953
953
  <a name='L905'></a><a href='#L905'>905</a>
954
954
  <a name='L906'></a><a href='#L906'>906</a>
955
955
  <a name='L907'></a><a href='#L907'>907</a>
956
- <a name='L908'></a><a href='#L908'>908</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
956
+ <a name='L908'></a><a href='#L908'>908</a>
957
+ <a name='L909'></a><a href='#L909'>909</a>
958
+ <a name='L910'></a><a href='#L910'>910</a>
959
+ <a name='L911'></a><a href='#L911'>911</a>
960
+ <a name='L912'></a><a href='#L912'>912</a>
961
+ <a name='L913'></a><a href='#L913'>913</a>
962
+ <a name='L914'></a><a href='#L914'>914</a>
963
+ <a name='L915'></a><a href='#L915'>915</a>
964
+ <a name='L916'></a><a href='#L916'>916</a>
965
+ <a name='L917'></a><a href='#L917'>917</a>
966
+ <a name='L918'></a><a href='#L918'>918</a>
967
+ <a name='L919'></a><a href='#L919'>919</a>
968
+ <a name='L920'></a><a href='#L920'>920</a>
969
+ <a name='L921'></a><a href='#L921'>921</a>
970
+ <a name='L922'></a><a href='#L922'>922</a>
971
+ <a name='L923'></a><a href='#L923'>923</a>
972
+ <a name='L924'></a><a href='#L924'>924</a>
973
+ <a name='L925'></a><a href='#L925'>925</a>
974
+ <a name='L926'></a><a href='#L926'>926</a>
975
+ <a name='L927'></a><a href='#L927'>927</a>
976
+ <a name='L928'></a><a href='#L928'>928</a>
977
+ <a name='L929'></a><a href='#L929'>929</a>
978
+ <a name='L930'></a><a href='#L930'>930</a>
979
+ <a name='L931'></a><a href='#L931'>931</a>
980
+ <a name='L932'></a><a href='#L932'>932</a>
981
+ <a name='L933'></a><a href='#L933'>933</a>
982
+ <a name='L934'></a><a href='#L934'>934</a>
983
+ <a name='L935'></a><a href='#L935'>935</a>
984
+ <a name='L936'></a><a href='#L936'>936</a>
985
+ <a name='L937'></a><a href='#L937'>937</a>
986
+ <a name='L938'></a><a href='#L938'>938</a>
987
+ <a name='L939'></a><a href='#L939'>939</a>
988
+ <a name='L940'></a><a href='#L940'>940</a>
989
+ <a name='L941'></a><a href='#L941'>941</a>
990
+ <a name='L942'></a><a href='#L942'>942</a>
991
+ <a name='L943'></a><a href='#L943'>943</a>
992
+ <a name='L944'></a><a href='#L944'>944</a>
993
+ <a name='L945'></a><a href='#L945'>945</a>
994
+ <a name='L946'></a><a href='#L946'>946</a>
995
+ <a name='L947'></a><a href='#L947'>947</a>
996
+ <a name='L948'></a><a href='#L948'>948</a>
997
+ <a name='L949'></a><a href='#L949'>949</a>
998
+ <a name='L950'></a><a href='#L950'>950</a>
999
+ <a name='L951'></a><a href='#L951'>951</a>
1000
+ <a name='L952'></a><a href='#L952'>952</a>
1001
+ <a name='L953'></a><a href='#L953'>953</a>
1002
+ <a name='L954'></a><a href='#L954'>954</a>
1003
+ <a name='L955'></a><a href='#L955'>955</a>
1004
+ <a name='L956'></a><a href='#L956'>956</a>
1005
+ <a name='L957'></a><a href='#L957'>957</a>
1006
+ <a name='L958'></a><a href='#L958'>958</a>
1007
+ <a name='L959'></a><a href='#L959'>959</a>
1008
+ <a name='L960'></a><a href='#L960'>960</a>
1009
+ <a name='L961'></a><a href='#L961'>961</a>
1010
+ <a name='L962'></a><a href='#L962'>962</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
957
1011
  <span class="cline-any cline-yes">1x</span>
958
1012
  <span class="cline-any cline-yes">1x</span>
959
1013
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -979,23 +1033,23 @@
979
1033
  <span class="cline-any cline-neutral">&nbsp;</span>
980
1034
  <span class="cline-any cline-neutral">&nbsp;</span>
981
1035
  <span class="cline-any cline-neutral">&nbsp;</span>
982
- <span class="cline-any cline-yes">68x</span>
983
- <span class="cline-any cline-yes">68x</span>
984
- <span class="cline-any cline-yes">68x</span>
1036
+ <span class="cline-any cline-yes">80x</span>
1037
+ <span class="cline-any cline-yes">80x</span>
1038
+ <span class="cline-any cline-yes">80x</span>
985
1039
  <span class="cline-any cline-neutral">&nbsp;</span>
986
- <span class="cline-any cline-yes">68x</span>
987
- <span class="cline-any cline-yes">68x</span>
988
- <span class="cline-any cline-yes">68x</span>
1040
+ <span class="cline-any cline-yes">80x</span>
1041
+ <span class="cline-any cline-yes">80x</span>
1042
+ <span class="cline-any cline-yes">80x</span>
989
1043
  <span class="cline-any cline-neutral">&nbsp;</span>
990
- <span class="cline-any cline-yes">68x</span>
991
- <span class="cline-any cline-yes">68x</span>
992
- <span class="cline-any cline-yes">68x</span>
993
- <span class="cline-any cline-yes">68x</span>
1044
+ <span class="cline-any cline-yes">80x</span>
1045
+ <span class="cline-any cline-yes">80x</span>
1046
+ <span class="cline-any cline-yes">80x</span>
1047
+ <span class="cline-any cline-yes">80x</span>
994
1048
  <span class="cline-any cline-neutral">&nbsp;</span>
995
- <span class="cline-any cline-yes">68x</span>
1049
+ <span class="cline-any cline-yes">80x</span>
996
1050
  <span class="cline-any cline-neutral">&nbsp;</span>
997
- <span class="cline-any cline-yes">68x</span>
998
- <span class="cline-any cline-yes">68x</span>
1051
+ <span class="cline-any cline-yes">80x</span>
1052
+ <span class="cline-any cline-yes">80x</span>
999
1053
  <span class="cline-any cline-neutral">&nbsp;</span>
1000
1054
  <span class="cline-any cline-neutral">&nbsp;</span>
1001
1055
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1003,12 +1057,12 @@
1003
1057
  <span class="cline-any cline-neutral">&nbsp;</span>
1004
1058
  <span class="cline-any cline-neutral">&nbsp;</span>
1005
1059
  <span class="cline-any cline-neutral">&nbsp;</span>
1006
- <span class="cline-any cline-yes">68x</span>
1060
+ <span class="cline-any cline-yes">80x</span>
1007
1061
  <span class="cline-any cline-neutral">&nbsp;</span>
1008
- <span class="cline-any cline-yes">68x</span>
1009
- <span class="cline-any cline-yes">127x</span>
1010
- <span class="cline-any cline-yes">126x</span>
1011
- <span class="cline-any cline-yes">126x</span>
1062
+ <span class="cline-any cline-yes">80x</span>
1063
+ <span class="cline-any cline-yes">139x</span>
1064
+ <span class="cline-any cline-yes">138x</span>
1065
+ <span class="cline-any cline-yes">138x</span>
1012
1066
  <span class="cline-any cline-neutral">&nbsp;</span>
1013
1067
  <span class="cline-any cline-neutral">&nbsp;</span>
1014
1068
  <span class="cline-any cline-yes">1x</span>
@@ -1016,47 +1070,57 @@
1016
1070
  <span class="cline-any cline-neutral">&nbsp;</span>
1017
1071
  <span class="cline-any cline-neutral">&nbsp;</span>
1018
1072
  <span class="cline-any cline-neutral">&nbsp;</span>
1019
- <span class="cline-any cline-yes">68x</span>
1020
- <span class="cline-any cline-yes">68x</span>
1073
+ <span class="cline-any cline-yes">80x</span>
1074
+ <span class="cline-any cline-yes">80x</span>
1021
1075
  <span class="cline-any cline-neutral">&nbsp;</span>
1022
1076
  <span class="cline-any cline-neutral">&nbsp;</span>
1023
- <span class="cline-any cline-yes">317x</span>
1024
- <span class="cline-any cline-yes">208x</span>
1077
+ <span class="cline-any cline-yes">2484x</span>
1078
+ <span class="cline-any cline-yes">232x</span>
1025
1079
  <span class="cline-any cline-neutral">&nbsp;</span>
1026
1080
  <span class="cline-any cline-neutral">&nbsp;</span>
1027
1081
  <span class="cline-any cline-neutral">&nbsp;</span>
1028
1082
  <span class="cline-any cline-neutral">&nbsp;</span>
1029
1083
  <span class="cline-any cline-neutral">&nbsp;</span>
1030
- <span class="cline-any cline-yes">140x</span>
1084
+ <span class="cline-any cline-yes">152x</span>
1031
1085
  <span class="cline-any cline-yes">14x</span>
1032
1086
  <span class="cline-any cline-yes">14x</span>
1033
1087
  <span class="cline-any cline-neutral">&nbsp;</span>
1034
1088
  <span class="cline-any cline-neutral">&nbsp;</span>
1035
- <span class="cline-any cline-yes">126x</span>
1089
+ <span class="cline-any cline-yes">138x</span>
1036
1090
  <span class="cline-any cline-neutral">&nbsp;</span>
1037
- <span class="cline-any cline-yes">126x</span>
1038
- <span class="cline-any cline-yes">184x</span>
1039
- <span class="cline-any cline-yes">126x</span>
1040
- <span class="cline-any cline-yes">126x</span>
1041
- <span class="cline-any cline-yes">126x</span>
1042
- <span class="cline-any cline-yes">126x</span>
1091
+ <span class="cline-any cline-yes">138x</span>
1092
+ <span class="cline-any cline-yes">196x</span>
1093
+ <span class="cline-any cline-yes">138x</span>
1094
+ <span class="cline-any cline-yes">138x</span>
1043
1095
  <span class="cline-any cline-neutral">&nbsp;</span>
1096
+ <span class="cline-any cline-yes">138x</span>
1097
+ <span class="cline-any cline-yes">138x</span>
1044
1098
  <span class="cline-any cline-neutral">&nbsp;</span>
1045
1099
  <span class="cline-any cline-neutral">&nbsp;</span>
1046
- <span class="cline-any cline-yes">126x</span>
1047
- <span class="cline-any cline-yes">18x</span>
1048
- <span class="cline-any cline-yes">18x</span>
1049
1100
  <span class="cline-any cline-neutral">&nbsp;</span>
1101
+ <span class="cline-any cline-no">&nbsp;</span>
1050
1102
  <span class="cline-any cline-neutral">&nbsp;</span>
1051
- <span class="cline-any cline-yes">108x</span>
1052
- <span class="cline-any cline-yes">108x</span>
1053
1103
  <span class="cline-any cline-neutral">&nbsp;</span>
1104
+ <span class="cline-any cline-yes">138x</span>
1105
+ <span class="cline-any cline-yes">138x</span>
1106
+ <span class="cline-any cline-yes">138x</span>
1054
1107
  <span class="cline-any cline-neutral">&nbsp;</span>
1055
- <span class="cline-any cline-yes">126x</span>
1056
1108
  <span class="cline-any cline-neutral">&nbsp;</span>
1057
- <span class="cline-any cline-yes">126x</span>
1058
- <span class="cline-any cline-yes">126x</span>
1059
- <span class="cline-any cline-yes">126x</span>
1109
+ <span class="cline-any cline-neutral">&nbsp;</span>
1110
+ <span class="cline-any cline-yes">138x</span>
1111
+ <span class="cline-any cline-yes">25x</span>
1112
+ <span class="cline-any cline-yes">25x</span>
1113
+ <span class="cline-any cline-neutral">&nbsp;</span>
1114
+ <span class="cline-any cline-neutral">&nbsp;</span>
1115
+ <span class="cline-any cline-yes">113x</span>
1116
+ <span class="cline-any cline-yes">113x</span>
1117
+ <span class="cline-any cline-neutral">&nbsp;</span>
1118
+ <span class="cline-any cline-neutral">&nbsp;</span>
1119
+ <span class="cline-any cline-yes">138x</span>
1120
+ <span class="cline-any cline-neutral">&nbsp;</span>
1121
+ <span class="cline-any cline-yes">138x</span>
1122
+ <span class="cline-any cline-yes">138x</span>
1123
+ <span class="cline-any cline-yes">138x</span>
1060
1124
  <span class="cline-any cline-neutral">&nbsp;</span>
1061
1125
  <span class="cline-any cline-neutral">&nbsp;</span>
1062
1126
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1068,49 +1132,49 @@
1068
1132
  <span class="cline-any cline-neutral">&nbsp;</span>
1069
1133
  <span class="cline-any cline-neutral">&nbsp;</span>
1070
1134
  <span class="cline-any cline-neutral">&nbsp;</span>
1071
- <span class="cline-any cline-yes">57x</span>
1072
- <span class="cline-any cline-yes">57x</span>
1135
+ <span class="cline-any cline-yes">67x</span>
1136
+ <span class="cline-any cline-yes">67x</span>
1073
1137
  <span class="cline-any cline-neutral">&nbsp;</span>
1074
- <span class="cline-any cline-yes">57x</span>
1075
- <span class="cline-any cline-yes">57x</span>
1138
+ <span class="cline-any cline-yes">67x</span>
1139
+ <span class="cline-any cline-yes">67x</span>
1076
1140
  <span class="cline-any cline-neutral">&nbsp;</span>
1077
1141
  <span class="cline-any cline-neutral">&nbsp;</span>
1078
1142
  <span class="cline-any cline-neutral">&nbsp;</span>
1079
1143
  <span class="cline-any cline-neutral">&nbsp;</span>
1080
1144
  <span class="cline-any cline-neutral">&nbsp;</span>
1081
- <span class="cline-any cline-yes">57x</span>
1145
+ <span class="cline-any cline-yes">67x</span>
1082
1146
  <span class="cline-any cline-neutral">&nbsp;</span>
1083
1147
  <span class="cline-any cline-neutral">&nbsp;</span>
1084
1148
  <span class="cline-any cline-neutral">&nbsp;</span>
1085
1149
  <span class="cline-any cline-neutral">&nbsp;</span>
1086
1150
  <span class="cline-any cline-neutral">&nbsp;</span>
1087
- <span class="cline-any cline-yes">57x</span>
1088
- <span class="cline-any cline-yes">57x</span>
1151
+ <span class="cline-any cline-yes">67x</span>
1152
+ <span class="cline-any cline-yes">67x</span>
1089
1153
  <span class="cline-any cline-neutral">&nbsp;</span>
1090
1154
  <span class="cline-any cline-neutral">&nbsp;</span>
1091
1155
  <span class="cline-any cline-neutral">&nbsp;</span>
1092
1156
  <span class="cline-any cline-neutral">&nbsp;</span>
1093
1157
  <span class="cline-any cline-neutral">&nbsp;</span>
1094
1158
  <span class="cline-any cline-neutral">&nbsp;</span>
1095
- <span class="cline-any cline-yes">11x</span>
1159
+ <span class="cline-any cline-yes">2132x</span>
1096
1160
  <span class="cline-any cline-neutral">&nbsp;</span>
1097
1161
  <span class="cline-any cline-neutral">&nbsp;</span>
1098
1162
  <span class="cline-any cline-neutral">&nbsp;</span>
1099
- <span class="cline-any cline-yes">11x</span>
1100
- <span class="cline-any cline-yes">11x</span>
1101
- <span class="cline-any cline-yes">11x</span>
1102
- <span class="cline-any cline-yes">11x</span>
1103
- <span class="cline-any cline-yes">11x</span>
1163
+ <span class="cline-any cline-yes">2132x</span>
1164
+ <span class="cline-any cline-yes">2132x</span>
1165
+ <span class="cline-any cline-yes">2132x</span>
1166
+ <span class="cline-any cline-yes">2132x</span>
1167
+ <span class="cline-any cline-yes">2132x</span>
1104
1168
  <span class="cline-any cline-neutral">&nbsp;</span>
1105
- <span class="cline-any cline-yes">11x</span>
1106
- <span class="cline-any cline-yes">11x</span>
1169
+ <span class="cline-any cline-yes">2132x</span>
1170
+ <span class="cline-any cline-yes">2132x</span>
1107
1171
  <span class="cline-any cline-neutral">&nbsp;</span>
1108
- <span class="cline-any cline-yes">11x</span>
1109
- <span class="cline-any cline-no">&nbsp;</span>
1110
- <span class="cline-any cline-no">&nbsp;</span>
1172
+ <span class="cline-any cline-yes">2132x</span>
1173
+ <span class="cline-any cline-yes">2073x</span>
1174
+ <span class="cline-any cline-yes">2073x</span>
1111
1175
  <span class="cline-any cline-neutral">&nbsp;</span>
1112
1176
  <span class="cline-any cline-neutral">&nbsp;</span>
1113
- <span class="cline-any cline-yes">11x</span>
1177
+ <span class="cline-any cline-yes">2132x</span>
1114
1178
  <span class="cline-any cline-yes">1x</span>
1115
1179
  <span class="cline-any cline-yes">2x</span>
1116
1180
  <span class="cline-any cline-yes">1x</span>
@@ -1124,7 +1188,7 @@
1124
1188
  <span class="cline-any cline-yes">1x</span>
1125
1189
  <span class="cline-any cline-neutral">&nbsp;</span>
1126
1190
  <span class="cline-any cline-neutral">&nbsp;</span>
1127
- <span class="cline-any cline-yes">11x</span>
1191
+ <span class="cline-any cline-yes">2132x</span>
1128
1192
  <span class="cline-any cline-neutral">&nbsp;</span>
1129
1193
  <span class="cline-any cline-neutral">&nbsp;</span>
1130
1194
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1132,74 +1196,74 @@
1132
1196
  <span class="cline-any cline-neutral">&nbsp;</span>
1133
1197
  <span class="cline-any cline-neutral">&nbsp;</span>
1134
1198
  <span class="cline-any cline-neutral">&nbsp;</span>
1135
- <span class="cline-any cline-yes">11x</span>
1136
- <span class="cline-any cline-yes">11x</span>
1137
- <span class="cline-any cline-yes">11x</span>
1199
+ <span class="cline-any cline-yes">2085x</span>
1200
+ <span class="cline-any cline-yes">2085x</span>
1201
+ <span class="cline-any cline-yes">2085x</span>
1138
1202
  <span class="cline-any cline-neutral">&nbsp;</span>
1139
- <span class="cline-any cline-yes">11x</span>
1140
- <span class="cline-any cline-yes">11x</span>
1203
+ <span class="cline-any cline-yes">2085x</span>
1204
+ <span class="cline-any cline-yes">12x</span>
1141
1205
  <span class="cline-any cline-neutral">&nbsp;</span>
1142
1206
  <span class="cline-any cline-neutral">&nbsp;</span>
1143
- <span class="cline-any cline-no">&nbsp;</span>
1144
- <span class="cline-any cline-no">&nbsp;</span>
1207
+ <span class="cline-any cline-yes">2073x</span>
1208
+ <span class="cline-any cline-yes">2073x</span>
1145
1209
  <span class="cline-any cline-neutral">&nbsp;</span>
1146
1210
  <span class="cline-any cline-neutral">&nbsp;</span>
1147
- <span class="cline-any cline-yes">11x</span>
1148
- <span class="cline-any cline-yes">11x</span>
1149
- <span class="cline-any cline-yes">11x</span>
1211
+ <span class="cline-any cline-yes">2085x</span>
1212
+ <span class="cline-any cline-yes">2085x</span>
1213
+ <span class="cline-any cline-yes">2085x</span>
1150
1214
  <span class="cline-any cline-neutral">&nbsp;</span>
1151
1215
  <span class="cline-any cline-neutral">&nbsp;</span>
1152
- <span class="cline-any cline-yes">11x</span>
1153
- <span class="cline-any cline-yes">11x</span>
1216
+ <span class="cline-any cline-yes">2132x</span>
1217
+ <span class="cline-any cline-yes">2085x</span>
1154
1218
  <span class="cline-any cline-neutral">&nbsp;</span>
1155
- <span class="cline-any cline-yes">11x</span>
1219
+ <span class="cline-any cline-yes">2085x</span>
1156
1220
  <span class="cline-any cline-neutral">&nbsp;</span>
1157
- <span class="cline-any cline-yes">11x</span>
1158
- <span class="cline-any cline-yes">11x</span>
1221
+ <span class="cline-any cline-yes">2085x</span>
1222
+ <span class="cline-any cline-yes">2085x</span>
1159
1223
  <span class="cline-any cline-neutral">&nbsp;</span>
1160
1224
  <span class="cline-any cline-neutral">&nbsp;</span>
1161
1225
  <span class="cline-any cline-neutral">&nbsp;</span>
1162
1226
  <span class="cline-any cline-neutral">&nbsp;</span>
1163
1227
  <span class="cline-any cline-neutral">&nbsp;</span>
1164
- <span class="cline-any cline-yes">11x</span>
1228
+ <span class="cline-any cline-yes">12x</span>
1165
1229
  <span class="cline-any cline-neutral">&nbsp;</span>
1166
1230
  <span class="cline-any cline-neutral">&nbsp;</span>
1167
1231
  <span class="cline-any cline-neutral">&nbsp;</span>
1168
1232
  <span class="cline-any cline-neutral">&nbsp;</span>
1169
1233
  <span class="cline-any cline-neutral">&nbsp;</span>
1170
1234
  <span class="cline-any cline-neutral">&nbsp;</span>
1171
- <span class="cline-any cline-yes">11x</span>
1235
+ <span class="cline-any cline-yes">12x</span>
1172
1236
  <span class="cline-any cline-yes">1x</span>
1173
1237
  <span class="cline-any cline-yes">1x</span>
1174
1238
  <span class="cline-any cline-yes">1x</span>
1175
1239
  <span class="cline-any cline-yes">1x</span>
1176
1240
  <span class="cline-any cline-neutral">&nbsp;</span>
1177
1241
  <span class="cline-any cline-neutral">&nbsp;</span>
1178
- <span class="cline-any cline-yes">11x</span>
1242
+ <span class="cline-any cline-yes">12x</span>
1179
1243
  <span class="cline-any cline-neutral">&nbsp;</span>
1180
- <span class="cline-any cline-yes">11x</span>
1181
- <span class="cline-any cline-yes">11x</span>
1244
+ <span class="cline-any cline-yes">12x</span>
1245
+ <span class="cline-any cline-yes">12x</span>
1182
1246
  <span class="cline-any cline-neutral">&nbsp;</span>
1183
1247
  <span class="cline-any cline-neutral">&nbsp;</span>
1184
1248
  <span class="cline-any cline-neutral">&nbsp;</span>
1185
- <span class="cline-any cline-no">&nbsp;</span>
1186
- <span class="cline-any cline-no">&nbsp;</span>
1249
+ <span class="cline-any cline-yes">47x</span>
1250
+ <span class="cline-any cline-yes">47x</span>
1187
1251
  <span class="cline-any cline-neutral">&nbsp;</span>
1188
1252
  <span class="cline-any cline-neutral">&nbsp;</span>
1189
1253
  <span class="cline-any cline-neutral">&nbsp;</span>
1190
1254
  <span class="cline-any cline-neutral">&nbsp;</span>
1191
1255
  <span class="cline-any cline-neutral">&nbsp;</span>
1192
1256
  <span class="cline-any cline-neutral">&nbsp;</span>
1193
- <span class="cline-any cline-yes">68x</span>
1257
+ <span class="cline-any cline-yes">2199x</span>
1194
1258
  <span class="cline-any cline-neutral">&nbsp;</span>
1195
1259
  <span class="cline-any cline-neutral">&nbsp;</span>
1196
1260
  <span class="cline-any cline-neutral">&nbsp;</span>
1197
1261
  <span class="cline-any cline-neutral">&nbsp;</span>
1198
1262
  <span class="cline-any cline-neutral">&nbsp;</span>
1199
- <span class="cline-any cline-yes">57x</span>
1263
+ <span class="cline-any cline-yes">67x</span>
1200
1264
  <span class="cline-any cline-neutral">&nbsp;</span>
1201
1265
  <span class="cline-any cline-neutral">&nbsp;</span>
1202
- <span class="cline-any cline-yes">11x</span>
1266
+ <span class="cline-any cline-yes">2132x</span>
1203
1267
  <span class="cline-any cline-neutral">&nbsp;</span>
1204
1268
  <span class="cline-any cline-neutral">&nbsp;</span>
1205
1269
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1209,26 +1273,26 @@
1209
1273
  <span class="cline-any cline-neutral">&nbsp;</span>
1210
1274
  <span class="cline-any cline-neutral">&nbsp;</span>
1211
1275
  <span class="cline-any cline-neutral">&nbsp;</span>
1212
- <span class="cline-any cline-yes">56x</span>
1213
- <span class="cline-any cline-yes">56x</span>
1214
- <span class="cline-any cline-yes">56x</span>
1276
+ <span class="cline-any cline-yes">76x</span>
1277
+ <span class="cline-any cline-yes">76x</span>
1278
+ <span class="cline-any cline-yes">76x</span>
1215
1279
  <span class="cline-any cline-neutral">&nbsp;</span>
1216
- <span class="cline-any cline-yes">56x</span>
1217
- <span class="cline-any cline-yes">56x</span>
1280
+ <span class="cline-any cline-yes">76x</span>
1281
+ <span class="cline-any cline-yes">76x</span>
1218
1282
  <span class="cline-any cline-neutral">&nbsp;</span>
1219
- <span class="cline-any cline-yes">56x</span>
1220
- <span class="cline-any cline-yes">56x</span>
1221
- <span class="cline-any cline-yes">56x</span>
1283
+ <span class="cline-any cline-yes">76x</span>
1284
+ <span class="cline-any cline-yes">76x</span>
1285
+ <span class="cline-any cline-yes">76x</span>
1222
1286
  <span class="cline-any cline-neutral">&nbsp;</span>
1223
1287
  <span class="cline-any cline-neutral">&nbsp;</span>
1224
1288
  <span class="cline-any cline-neutral">&nbsp;</span>
1225
1289
  <span class="cline-any cline-neutral">&nbsp;</span>
1226
1290
  <span class="cline-any cline-neutral">&nbsp;</span>
1227
- <span class="cline-any cline-yes">106x</span>
1291
+ <span class="cline-any cline-yes">128x</span>
1228
1292
  <span class="cline-any cline-neutral">&nbsp;</span>
1229
1293
  <span class="cline-any cline-neutral">&nbsp;</span>
1230
1294
  <span class="cline-any cline-neutral">&nbsp;</span>
1231
- <span class="cline-any cline-yes">106x</span>
1295
+ <span class="cline-any cline-yes">128x</span>
1232
1296
  <span class="cline-any cline-neutral">&nbsp;</span>
1233
1297
  <span class="cline-any cline-neutral">&nbsp;</span>
1234
1298
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1236,38 +1300,38 @@
1236
1300
  <span class="cline-any cline-neutral">&nbsp;</span>
1237
1301
  <span class="cline-any cline-neutral">&nbsp;</span>
1238
1302
  <span class="cline-any cline-neutral">&nbsp;</span>
1239
- <span class="cline-any cline-yes">106x</span>
1303
+ <span class="cline-any cline-yes">128x</span>
1240
1304
  <span class="cline-any cline-neutral">&nbsp;</span>
1241
1305
  <span class="cline-any cline-neutral">&nbsp;</span>
1242
1306
  <span class="cline-any cline-neutral">&nbsp;</span>
1243
1307
  <span class="cline-any cline-neutral">&nbsp;</span>
1244
- <span class="cline-any cline-yes">106x</span>
1308
+ <span class="cline-any cline-yes">128x</span>
1245
1309
  <span class="cline-any cline-neutral">&nbsp;</span>
1246
- <span class="cline-any cline-yes">106x</span>
1247
- <span class="cline-any cline-yes">106x</span>
1310
+ <span class="cline-any cline-yes">128x</span>
1311
+ <span class="cline-any cline-yes">128x</span>
1248
1312
  <span class="cline-any cline-neutral">&nbsp;</span>
1249
- <span class="cline-any cline-yes">106x</span>
1313
+ <span class="cline-any cline-yes">128x</span>
1250
1314
  <span class="cline-any cline-neutral">&nbsp;</span>
1251
- <span class="cline-any cline-yes">106x</span>
1252
- <span class="cline-any cline-yes">68x</span>
1253
- <span class="cline-any cline-yes">68x</span>
1254
- <span class="cline-any cline-yes">68x</span>
1315
+ <span class="cline-any cline-yes">128x</span>
1316
+ <span class="cline-any cline-yes">80x</span>
1317
+ <span class="cline-any cline-yes">80x</span>
1318
+ <span class="cline-any cline-yes">80x</span>
1255
1319
  <span class="cline-any cline-neutral">&nbsp;</span>
1256
1320
  <span class="cline-any cline-neutral">&nbsp;</span>
1257
- <span class="cline-any cline-yes">68x</span>
1321
+ <span class="cline-any cline-yes">80x</span>
1258
1322
  <span class="cline-any cline-no">&nbsp;</span>
1259
1323
  <span class="cline-any cline-no">&nbsp;</span>
1260
1324
  <span class="cline-any cline-neutral">&nbsp;</span>
1261
1325
  <span class="cline-any cline-no">&nbsp;</span>
1262
1326
  <span class="cline-any cline-neutral">&nbsp;</span>
1263
1327
  <span class="cline-any cline-neutral">&nbsp;</span>
1264
- <span class="cline-any cline-yes">68x</span>
1265
- <span class="cline-any cline-yes">68x</span>
1328
+ <span class="cline-any cline-yes">80x</span>
1329
+ <span class="cline-any cline-yes">80x</span>
1266
1330
  <span class="cline-any cline-neutral">&nbsp;</span>
1267
1331
  <span class="cline-any cline-neutral">&nbsp;</span>
1268
1332
  <span class="cline-any cline-neutral">&nbsp;</span>
1269
- <span class="cline-any cline-yes">38x</span>
1270
- <span class="cline-any cline-yes">38x</span>
1333
+ <span class="cline-any cline-yes">48x</span>
1334
+ <span class="cline-any cline-yes">48x</span>
1271
1335
  <span class="cline-any cline-neutral">&nbsp;</span>
1272
1336
  <span class="cline-any cline-neutral">&nbsp;</span>
1273
1337
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1275,64 +1339,64 @@
1275
1339
  <span class="cline-any cline-neutral">&nbsp;</span>
1276
1340
  <span class="cline-any cline-neutral">&nbsp;</span>
1277
1341
  <span class="cline-any cline-neutral">&nbsp;</span>
1278
- <span class="cline-any cline-yes">178x</span>
1342
+ <span class="cline-any cline-yes">200x</span>
1279
1343
  <span class="cline-any cline-neutral">&nbsp;</span>
1280
- <span class="cline-any cline-yes">178x</span>
1281
- <span class="cline-any cline-yes">178x</span>
1282
- <span class="cline-any cline-yes">178x</span>
1344
+ <span class="cline-any cline-yes">200x</span>
1345
+ <span class="cline-any cline-yes">200x</span>
1346
+ <span class="cline-any cline-yes">200x</span>
1283
1347
  <span class="cline-any cline-yes">72x</span>
1284
1348
  <span class="cline-any cline-yes">72x</span>
1285
1349
  <span class="cline-any cline-neutral">&nbsp;</span>
1286
1350
  <span class="cline-any cline-neutral">&nbsp;</span>
1287
- <span class="cline-any cline-yes">106x</span>
1288
- <span class="cline-any cline-yes">106x</span>
1351
+ <span class="cline-any cline-yes">128x</span>
1352
+ <span class="cline-any cline-yes">128x</span>
1289
1353
  <span class="cline-any cline-no">&nbsp;</span>
1290
1354
  <span class="cline-any cline-no">&nbsp;</span>
1291
1355
  <span class="cline-any cline-neutral">&nbsp;</span>
1292
1356
  <span class="cline-any cline-neutral">&nbsp;</span>
1293
- <span class="cline-any cline-yes">106x</span>
1294
- <span class="cline-any cline-yes">38x</span>
1295
- <span class="cline-any cline-yes">38x</span>
1357
+ <span class="cline-any cline-yes">128x</span>
1358
+ <span class="cline-any cline-yes">48x</span>
1359
+ <span class="cline-any cline-yes">48x</span>
1296
1360
  <span class="cline-any cline-neutral">&nbsp;</span>
1297
1361
  <span class="cline-any cline-neutral">&nbsp;</span>
1298
1362
  <span class="cline-any cline-neutral">&nbsp;</span>
1299
- <span class="cline-any cline-yes">68x</span>
1363
+ <span class="cline-any cline-yes">80x</span>
1300
1364
  <span class="cline-any cline-neutral">&nbsp;</span>
1301
1365
  <span class="cline-any cline-neutral">&nbsp;</span>
1302
- <span class="cline-any cline-yes">178x</span>
1366
+ <span class="cline-any cline-yes">200x</span>
1303
1367
  <span class="cline-any cline-neutral">&nbsp;</span>
1304
- <span class="cline-any cline-yes">178x</span>
1305
- <span class="cline-any cline-yes">68x</span>
1368
+ <span class="cline-any cline-yes">200x</span>
1369
+ <span class="cline-any cline-yes">80x</span>
1306
1370
  <span class="cline-any cline-neutral">&nbsp;</span>
1307
1371
  <span class="cline-any cline-neutral">&nbsp;</span>
1308
- <span class="cline-any cline-yes">178x</span>
1372
+ <span class="cline-any cline-yes">200x</span>
1309
1373
  <span class="cline-any cline-neutral">&nbsp;</span>
1310
1374
  <span class="cline-any cline-neutral">&nbsp;</span>
1311
1375
  <span class="cline-any cline-neutral">&nbsp;</span>
1312
1376
  <span class="cline-any cline-neutral">&nbsp;</span>
1313
1377
  <span class="cline-any cline-neutral">&nbsp;</span>
1314
1378
  <span class="cline-any cline-neutral">&nbsp;</span>
1315
- <span class="cline-any cline-yes">178x</span>
1316
- <span class="cline-any cline-yes">178x</span>
1379
+ <span class="cline-any cline-yes">200x</span>
1380
+ <span class="cline-any cline-yes">200x</span>
1317
1381
  <span class="cline-any cline-no">&nbsp;</span>
1318
1382
  <span class="cline-any cline-no">&nbsp;</span>
1319
1383
  <span class="cline-any cline-neutral">&nbsp;</span>
1320
1384
  <span class="cline-any cline-neutral">&nbsp;</span>
1321
- <span class="cline-any cline-yes">178x</span>
1322
- <span class="cline-any cline-yes">38x</span>
1323
- <span class="cline-any cline-yes">38x</span>
1385
+ <span class="cline-any cline-yes">200x</span>
1386
+ <span class="cline-any cline-yes">48x</span>
1387
+ <span class="cline-any cline-yes">48x</span>
1324
1388
  <span class="cline-any cline-neutral">&nbsp;</span>
1325
1389
  <span class="cline-any cline-neutral">&nbsp;</span>
1326
- <span class="cline-any cline-yes">140x</span>
1390
+ <span class="cline-any cline-yes">152x</span>
1327
1391
  <span class="cline-any cline-neutral">&nbsp;</span>
1328
- <span class="cline-any cline-yes">140x</span>
1392
+ <span class="cline-any cline-yes">152x</span>
1329
1393
  <span class="cline-any cline-yes">14x</span>
1330
1394
  <span class="cline-any cline-yes">14x</span>
1331
1395
  <span class="cline-any cline-yes">14x</span>
1332
1396
  <span class="cline-any cline-neutral">&nbsp;</span>
1333
1397
  <span class="cline-any cline-neutral">&nbsp;</span>
1334
- <span class="cline-any cline-yes">126x</span>
1335
- <span class="cline-any cline-yes">126x</span>
1398
+ <span class="cline-any cline-yes">138x</span>
1399
+ <span class="cline-any cline-yes">138x</span>
1336
1400
  <span class="cline-any cline-neutral">&nbsp;</span>
1337
1401
  <span class="cline-any cline-neutral">&nbsp;</span>
1338
1402
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1340,96 +1404,96 @@
1340
1404
  <span class="cline-any cline-neutral">&nbsp;</span>
1341
1405
  <span class="cline-any cline-neutral">&nbsp;</span>
1342
1406
  <span class="cline-any cline-neutral">&nbsp;</span>
1343
- <span class="cline-any cline-yes">129x</span>
1407
+ <span class="cline-any cline-yes">139x</span>
1344
1408
  <span class="cline-any cline-neutral">&nbsp;</span>
1345
1409
  <span class="cline-any cline-neutral">&nbsp;</span>
1346
1410
  <span class="cline-any cline-neutral">&nbsp;</span>
1347
1411
  <span class="cline-any cline-neutral">&nbsp;</span>
1348
1412
  <span class="cline-any cline-neutral">&nbsp;</span>
1349
- <span class="cline-any cline-yes">35x</span>
1413
+ <span class="cline-any cline-yes">47x</span>
1350
1414
  <span class="cline-any cline-neutral">&nbsp;</span>
1351
1415
  <span class="cline-any cline-neutral">&nbsp;</span>
1352
1416
  <span class="cline-any cline-neutral">&nbsp;</span>
1353
1417
  <span class="cline-any cline-neutral">&nbsp;</span>
1354
1418
  <span class="cline-any cline-neutral">&nbsp;</span>
1355
- <span class="cline-any cline-yes">7x</span>
1356
- <span class="cline-any cline-yes">7x</span>
1357
- <span class="cline-any cline-yes">7x</span>
1419
+ <span class="cline-any cline-yes">12x</span>
1420
+ <span class="cline-any cline-yes">12x</span>
1421
+ <span class="cline-any cline-yes">12x</span>
1358
1422
  <span class="cline-any cline-neutral">&nbsp;</span>
1359
- <span class="cline-any cline-yes">7x</span>
1360
- <span class="cline-any cline-yes">7x</span>
1361
- <span class="cline-any cline-yes">7x</span>
1423
+ <span class="cline-any cline-yes">12x</span>
1424
+ <span class="cline-any cline-yes">12x</span>
1425
+ <span class="cline-any cline-yes">12x</span>
1362
1426
  <span class="cline-any cline-neutral">&nbsp;</span>
1363
- <span class="cline-any cline-yes">7x</span>
1364
- <span class="cline-any cline-yes">7x</span>
1365
- <span class="cline-any cline-yes">7x</span>
1427
+ <span class="cline-any cline-yes">12x</span>
1428
+ <span class="cline-any cline-yes">12x</span>
1429
+ <span class="cline-any cline-yes">12x</span>
1366
1430
  <span class="cline-any cline-neutral">&nbsp;</span>
1367
- <span class="cline-any cline-yes">7x</span>
1368
- <span class="cline-any cline-yes">7x</span>
1431
+ <span class="cline-any cline-yes">12x</span>
1432
+ <span class="cline-any cline-yes">12x</span>
1369
1433
  <span class="cline-any cline-neutral">&nbsp;</span>
1370
1434
  <span class="cline-any cline-neutral">&nbsp;</span>
1371
1435
  <span class="cline-any cline-neutral">&nbsp;</span>
1372
1436
  <span class="cline-any cline-neutral">&nbsp;</span>
1373
1437
  <span class="cline-any cline-neutral">&nbsp;</span>
1374
- <span class="cline-any cline-yes">11x</span>
1375
- <span class="cline-any cline-yes">11x</span>
1376
- <span class="cline-any cline-yes">11x</span>
1438
+ <span class="cline-any cline-yes">12x</span>
1439
+ <span class="cline-any cline-yes">12x</span>
1440
+ <span class="cline-any cline-yes">12x</span>
1377
1441
  <span class="cline-any cline-neutral">&nbsp;</span>
1378
- <span class="cline-any cline-yes">11x</span>
1379
- <span class="cline-any cline-yes">11x</span>
1380
- <span class="cline-any cline-yes">11x</span>
1442
+ <span class="cline-any cline-yes">12x</span>
1443
+ <span class="cline-any cline-yes">12x</span>
1444
+ <span class="cline-any cline-yes">12x</span>
1381
1445
  <span class="cline-any cline-neutral">&nbsp;</span>
1382
- <span class="cline-any cline-yes">11x</span>
1383
- <span class="cline-any cline-yes">11x</span>
1384
- <span class="cline-any cline-yes">11x</span>
1446
+ <span class="cline-any cline-yes">12x</span>
1447
+ <span class="cline-any cline-yes">12x</span>
1448
+ <span class="cline-any cline-yes">12x</span>
1385
1449
  <span class="cline-any cline-neutral">&nbsp;</span>
1386
- <span class="cline-any cline-yes">11x</span>
1450
+ <span class="cline-any cline-yes">12x</span>
1387
1451
  <span class="cline-any cline-no">&nbsp;</span>
1388
1452
  <span class="cline-any cline-neutral">&nbsp;</span>
1389
- <span class="cline-any cline-yes">11x</span>
1390
- <span class="cline-any cline-yes">11x</span>
1453
+ <span class="cline-any cline-yes">12x</span>
1454
+ <span class="cline-any cline-yes">12x</span>
1391
1455
  <span class="cline-any cline-neutral">&nbsp;</span>
1392
1456
  <span class="cline-any cline-neutral">&nbsp;</span>
1393
1457
  <span class="cline-any cline-neutral">&nbsp;</span>
1394
1458
  <span class="cline-any cline-neutral">&nbsp;</span>
1395
1459
  <span class="cline-any cline-neutral">&nbsp;</span>
1396
- <span class="cline-any cline-yes">66x</span>
1460
+ <span class="cline-any cline-yes">2197x</span>
1397
1461
  <span class="cline-any cline-neutral">&nbsp;</span>
1398
- <span class="cline-any cline-yes">66x</span>
1462
+ <span class="cline-any cline-yes">2197x</span>
1399
1463
  <span class="cline-any cline-neutral">&nbsp;</span>
1400
- <span class="cline-any cline-yes">66x</span>
1401
- <span class="cline-any cline-yes">66x</span>
1402
- <span class="cline-any cline-yes">68x</span>
1403
- <span class="cline-any cline-yes">68x</span>
1404
- <span class="cline-any cline-yes">68x</span>
1464
+ <span class="cline-any cline-yes">2197x</span>
1465
+ <span class="cline-any cline-yes">2197x</span>
1466
+ <span class="cline-any cline-yes">2199x</span>
1467
+ <span class="cline-any cline-yes">2199x</span>
1468
+ <span class="cline-any cline-yes">2199x</span>
1405
1469
  <span class="cline-any cline-neutral">&nbsp;</span>
1406
1470
  <span class="cline-any cline-neutral">&nbsp;</span>
1407
1471
  <span class="cline-any cline-neutral">&nbsp;</span>
1408
- <span class="cline-any cline-yes">66x</span>
1409
- <span class="cline-any cline-yes">66x</span>
1410
- <span class="cline-any cline-no">&nbsp;</span>
1411
- <span class="cline-any cline-no">&nbsp;</span>
1472
+ <span class="cline-any cline-yes">2197x</span>
1473
+ <span class="cline-any cline-yes">2197x</span>
1474
+ <span class="cline-any cline-yes">2073x</span>
1475
+ <span class="cline-any cline-yes">2073x</span>
1412
1476
  <span class="cline-any cline-neutral">&nbsp;</span>
1413
1477
  <span class="cline-any cline-neutral">&nbsp;</span>
1414
- <span class="cline-any cline-yes">66x</span>
1415
- <span class="cline-any cline-yes">68x</span>
1416
- <span class="cline-any cline-yes">68x</span>
1417
- <span class="cline-any cline-yes">68x</span>
1478
+ <span class="cline-any cline-yes">124x</span>
1479
+ <span class="cline-any cline-yes">126x</span>
1480
+ <span class="cline-any cline-yes">79x</span>
1481
+ <span class="cline-any cline-yes">79x</span>
1418
1482
  <span class="cline-any cline-neutral">&nbsp;</span>
1419
- <span class="cline-any cline-yes">68x</span>
1420
- <span class="cline-any cline-yes">54x</span>
1421
- <span class="cline-any cline-yes">54x</span>
1483
+ <span class="cline-any cline-yes">79x</span>
1484
+ <span class="cline-any cline-yes">65x</span>
1485
+ <span class="cline-any cline-yes">65x</span>
1422
1486
  <span class="cline-any cline-neutral">&nbsp;</span>
1423
1487
  <span class="cline-any cline-neutral">&nbsp;</span>
1424
1488
  <span class="cline-any cline-neutral">&nbsp;</span>
1425
1489
  <span class="cline-any cline-neutral">&nbsp;</span>
1426
- <span class="cline-any cline-yes">66x</span>
1427
- <span class="cline-any cline-yes">66x</span>
1428
- <span class="cline-any cline-yes">66x</span>
1429
- <span class="cline-any cline-yes">66x</span>
1490
+ <span class="cline-any cline-yes">124x</span>
1491
+ <span class="cline-any cline-yes">77x</span>
1492
+ <span class="cline-any cline-yes">77x</span>
1493
+ <span class="cline-any cline-yes">77x</span>
1430
1494
  <span class="cline-any cline-neutral">&nbsp;</span>
1431
1495
  <span class="cline-any cline-neutral">&nbsp;</span>
1432
- <span class="cline-any cline-no">&nbsp;</span>
1496
+ <span class="cline-any cline-yes">47x</span>
1433
1497
  <span class="cline-any cline-neutral">&nbsp;</span>
1434
1498
  <span class="cline-any cline-neutral">&nbsp;</span>
1435
1499
  <span class="cline-any cline-no">&nbsp;</span>
@@ -1439,22 +1503,22 @@
1439
1503
  <span class="cline-any cline-neutral">&nbsp;</span>
1440
1504
  <span class="cline-any cline-neutral">&nbsp;</span>
1441
1505
  <span class="cline-any cline-neutral">&nbsp;</span>
1442
- <span class="cline-any cline-yes">68x</span>
1506
+ <span class="cline-any cline-yes">2200x</span>
1443
1507
  <span class="cline-any cline-neutral">&nbsp;</span>
1444
- <span class="cline-any cline-yes">66x</span>
1445
- <span class="cline-any cline-yes">61x</span>
1446
- <span class="cline-any cline-yes">61x</span>
1447
- <span class="cline-any cline-no">&nbsp;</span>
1508
+ <span class="cline-any cline-yes">2198x</span>
1509
+ <span class="cline-any cline-yes">2192x</span>
1510
+ <span class="cline-any cline-yes">2192x</span>
1511
+ <span class="cline-any cline-yes">2120x</span>
1448
1512
  <span class="cline-any cline-neutral">&nbsp;</span>
1449
1513
  <span class="cline-any cline-neutral">&nbsp;</span>
1450
1514
  <span class="cline-any cline-neutral">&nbsp;</span>
1451
- <span class="cline-any cline-yes">66x</span>
1515
+ <span class="cline-any cline-yes">2198x</span>
1452
1516
  <span class="cline-any cline-neutral">&nbsp;</span>
1453
1517
  <span class="cline-any cline-neutral">&nbsp;</span>
1454
1518
  <span class="cline-any cline-neutral">&nbsp;</span>
1455
1519
  <span class="cline-any cline-neutral">&nbsp;</span>
1456
1520
  <span class="cline-any cline-neutral">&nbsp;</span>
1457
- <span class="cline-any cline-yes">71x</span>
1521
+ <span class="cline-any cline-yes">82x</span>
1458
1522
  <span class="cline-any cline-yes">5x</span>
1459
1523
  <span class="cline-any cline-yes">5x</span>
1460
1524
  <span class="cline-any cline-yes">5x</span>
@@ -1481,23 +1545,23 @@
1481
1545
  <span class="cline-any cline-neutral">&nbsp;</span>
1482
1546
  <span class="cline-any cline-neutral">&nbsp;</span>
1483
1547
  <span class="cline-any cline-neutral">&nbsp;</span>
1484
- <span class="cline-any cline-yes">56x</span>
1548
+ <span class="cline-any cline-yes">76x</span>
1485
1549
  <span class="cline-any cline-neutral">&nbsp;</span>
1486
- <span class="cline-any cline-yes">56x</span>
1487
- <span class="cline-any cline-yes">56x</span>
1488
- <span class="cline-any cline-yes">56x</span>
1550
+ <span class="cline-any cline-yes">76x</span>
1551
+ <span class="cline-any cline-yes">76x</span>
1552
+ <span class="cline-any cline-yes">76x</span>
1489
1553
  <span class="cline-any cline-neutral">&nbsp;</span>
1490
- <span class="cline-any cline-yes">56x</span>
1554
+ <span class="cline-any cline-yes">76x</span>
1491
1555
  <span class="cline-any cline-neutral">&nbsp;</span>
1492
1556
  <span class="cline-any cline-neutral">&nbsp;</span>
1493
1557
  <span class="cline-any cline-neutral">&nbsp;</span>
1494
1558
  <span class="cline-any cline-neutral">&nbsp;</span>
1495
- <span class="cline-any cline-yes">56x</span>
1559
+ <span class="cline-any cline-yes">76x</span>
1496
1560
  <span class="cline-any cline-neutral">&nbsp;</span>
1497
- <span class="cline-any cline-yes">56x</span>
1498
- <span class="cline-any cline-yes">56x</span>
1561
+ <span class="cline-any cline-yes">76x</span>
1562
+ <span class="cline-any cline-yes">76x</span>
1499
1563
  <span class="cline-any cline-neutral">&nbsp;</span>
1500
- <span class="cline-any cline-yes">56x</span>
1564
+ <span class="cline-any cline-yes">76x</span>
1501
1565
  <span class="cline-any cline-neutral">&nbsp;</span>
1502
1566
  <span class="cline-any cline-neutral">&nbsp;</span>
1503
1567
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1518,14 +1582,18 @@
1518
1582
  <span class="cline-any cline-neutral">&nbsp;</span>
1519
1583
  <span class="cline-any cline-neutral">&nbsp;</span>
1520
1584
  <span class="cline-any cline-neutral">&nbsp;</span>
1521
- <span class="cline-any cline-yes">115x</span>
1585
+ <span class="cline-any cline-yes">128x</span>
1522
1586
  <span class="cline-any cline-yes">58x</span>
1523
1587
  <span class="cline-any cline-neutral">&nbsp;</span>
1524
- <span class="cline-any cline-yes">115x</span>
1525
- <span class="cline-any cline-yes">115x</span>
1526
- <span class="cline-any cline-yes">115x</span>
1588
+ <span class="cline-any cline-yes">128x</span>
1589
+ <span class="cline-any cline-neutral">&nbsp;</span>
1590
+ <span class="cline-any cline-neutral">&nbsp;</span>
1527
1591
  <span class="cline-any cline-neutral">&nbsp;</span>
1528
- <span class="cline-any cline-yes">115x</span>
1592
+ <span class="cline-any cline-neutral">&nbsp;</span>
1593
+ <span class="cline-any cline-yes">128x</span>
1594
+ <span class="cline-any cline-yes">128x</span>
1595
+ <span class="cline-any cline-neutral">&nbsp;</span>
1596
+ <span class="cline-any cline-yes">128x</span>
1529
1597
  <span class="cline-any cline-no">&nbsp;</span>
1530
1598
  <span class="cline-any cline-no">&nbsp;</span>
1531
1599
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1534,12 +1602,12 @@
1534
1602
  <span class="cline-any cline-no">&nbsp;</span>
1535
1603
  <span class="cline-any cline-neutral">&nbsp;</span>
1536
1604
  <span class="cline-any cline-neutral">&nbsp;</span>
1537
- <span class="cline-any cline-yes">115x</span>
1538
- <span class="cline-any cline-yes">57x</span>
1539
- <span class="cline-any cline-yes">57x</span>
1605
+ <span class="cline-any cline-yes">128x</span>
1606
+ <span class="cline-any cline-yes">70x</span>
1607
+ <span class="cline-any cline-yes">70x</span>
1540
1608
  <span class="cline-any cline-neutral">&nbsp;</span>
1541
1609
  <span class="cline-any cline-neutral">&nbsp;</span>
1542
- <span class="cline-any cline-yes">115x</span>
1610
+ <span class="cline-any cline-yes">128x</span>
1543
1611
  <span class="cline-any cline-neutral">&nbsp;</span>
1544
1612
  <span class="cline-any cline-neutral">&nbsp;</span>
1545
1613
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1547,11 +1615,11 @@
1547
1615
  <span class="cline-any cline-neutral">&nbsp;</span>
1548
1616
  <span class="cline-any cline-neutral">&nbsp;</span>
1549
1617
  <span class="cline-any cline-neutral">&nbsp;</span>
1550
- <span class="cline-any cline-yes">129x</span>
1551
- <span class="cline-any cline-yes">129x</span>
1552
- <span class="cline-any cline-yes">129x</span>
1553
- <span class="cline-any cline-yes">129x</span>
1554
- <span class="cline-any cline-yes">129x</span>
1618
+ <span class="cline-any cline-yes">139x</span>
1619
+ <span class="cline-any cline-yes">139x</span>
1620
+ <span class="cline-any cline-yes">139x</span>
1621
+ <span class="cline-any cline-yes">139x</span>
1622
+ <span class="cline-any cline-yes">139x</span>
1555
1623
  <span class="cline-any cline-neutral">&nbsp;</span>
1556
1624
  <span class="cline-any cline-neutral">&nbsp;</span>
1557
1625
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1559,11 +1627,11 @@
1559
1627
  <span class="cline-any cline-neutral">&nbsp;</span>
1560
1628
  <span class="cline-any cline-neutral">&nbsp;</span>
1561
1629
  <span class="cline-any cline-neutral">&nbsp;</span>
1562
- <span class="cline-any cline-yes">35x</span>
1563
- <span class="cline-any cline-yes">35x</span>
1564
- <span class="cline-any cline-yes">35x</span>
1565
- <span class="cline-any cline-yes">35x</span>
1566
- <span class="cline-any cline-yes">35x</span>
1630
+ <span class="cline-any cline-yes">47x</span>
1631
+ <span class="cline-any cline-yes">47x</span>
1632
+ <span class="cline-any cline-yes">47x</span>
1633
+ <span class="cline-any cline-yes">47x</span>
1634
+ <span class="cline-any cline-yes">47x</span>
1567
1635
  <span class="cline-any cline-neutral">&nbsp;</span>
1568
1636
  <span class="cline-any cline-neutral">&nbsp;</span>
1569
1637
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1571,9 +1639,9 @@
1571
1639
  <span class="cline-any cline-neutral">&nbsp;</span>
1572
1640
  <span class="cline-any cline-neutral">&nbsp;</span>
1573
1641
  <span class="cline-any cline-neutral">&nbsp;</span>
1574
- <span class="cline-any cline-yes">7x</span>
1575
- <span class="cline-any cline-yes">7x</span>
1576
- <span class="cline-any cline-yes">7x</span>
1642
+ <span class="cline-any cline-yes">12x</span>
1643
+ <span class="cline-any cline-yes">12x</span>
1644
+ <span class="cline-any cline-yes">12x</span>
1577
1645
  <span class="cline-any cline-neutral">&nbsp;</span>
1578
1646
  <span class="cline-any cline-neutral">&nbsp;</span>
1579
1647
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1581,9 +1649,9 @@
1581
1649
  <span class="cline-any cline-neutral">&nbsp;</span>
1582
1650
  <span class="cline-any cline-neutral">&nbsp;</span>
1583
1651
  <span class="cline-any cline-neutral">&nbsp;</span>
1584
- <span class="cline-any cline-yes">11x</span>
1585
- <span class="cline-any cline-yes">11x</span>
1586
- <span class="cline-any cline-yes">11x</span>
1652
+ <span class="cline-any cline-yes">12x</span>
1653
+ <span class="cline-any cline-yes">12x</span>
1654
+ <span class="cline-any cline-yes">12x</span>
1587
1655
  <span class="cline-any cline-neutral">&nbsp;</span>
1588
1656
  <span class="cline-any cline-neutral">&nbsp;</span>
1589
1657
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1591,15 +1659,16 @@
1591
1659
  <span class="cline-any cline-neutral">&nbsp;</span>
1592
1660
  <span class="cline-any cline-neutral">&nbsp;</span>
1593
1661
  <span class="cline-any cline-neutral">&nbsp;</span>
1594
- <span class="cline-any cline-yes">16x</span>
1662
+ <span class="cline-any cline-yes">20x</span>
1595
1663
  <span class="cline-any cline-neutral">&nbsp;</span>
1596
1664
  <span class="cline-any cline-neutral">&nbsp;</span>
1597
- <span class="cline-any cline-yes">16x</span>
1665
+ <span class="cline-any cline-yes">20x</span>
1598
1666
  <span class="cline-any cline-neutral">&nbsp;</span>
1599
- <span class="cline-any cline-yes">16x</span>
1600
- <span class="cline-any cline-yes">16x</span>
1601
- <span class="cline-any cline-yes">16x</span>
1602
- <span class="cline-any cline-yes">11x</span>
1667
+ <span class="cline-any cline-yes">20x</span>
1668
+ <span class="cline-any cline-yes">20x</span>
1669
+ <span class="cline-any cline-yes">20x</span>
1670
+ <span class="cline-any cline-yes">20x</span>
1671
+ <span class="cline-any cline-yes">15x</span>
1603
1672
  <span class="cline-any cline-neutral">&nbsp;</span>
1604
1673
  <span class="cline-any cline-neutral">&nbsp;</span>
1605
1674
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1617,6 +1686,7 @@
1617
1686
  <span class="cline-any cline-yes">41x</span>
1618
1687
  <span class="cline-any cline-yes">41x</span>
1619
1688
  <span class="cline-any cline-yes">41x</span>
1689
+ <span class="cline-any cline-yes">41x</span>
1620
1690
  <span class="cline-any cline-yes">14x</span>
1621
1691
  <span class="cline-any cline-neutral">&nbsp;</span>
1622
1692
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1639,6 +1709,7 @@
1639
1709
  <span class="cline-any cline-yes">2x</span>
1640
1710
  <span class="cline-any cline-yes">2x</span>
1641
1711
  <span class="cline-any cline-yes">2x</span>
1712
+ <span class="cline-any cline-yes">2x</span>
1642
1713
  <span class="cline-any cline-neutral">&nbsp;</span>
1643
1714
  <span class="cline-any cline-neutral">&nbsp;</span>
1644
1715
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1646,30 +1717,67 @@
1646
1717
  <span class="cline-any cline-neutral">&nbsp;</span>
1647
1718
  <span class="cline-any cline-neutral">&nbsp;</span>
1648
1719
  <span class="cline-any cline-neutral">&nbsp;</span>
1649
- <span class="cline-any cline-no">&nbsp;</span>
1720
+ <span class="cline-any cline-yes">4x</span>
1721
+ <span class="cline-any cline-neutral">&nbsp;</span>
1722
+ <span class="cline-any cline-neutral">&nbsp;</span>
1723
+ <span class="cline-any cline-neutral">&nbsp;</span>
1724
+ <span class="cline-any cline-neutral">&nbsp;</span>
1725
+ <span class="cline-any cline-neutral">&nbsp;</span>
1726
+ <span class="cline-any cline-neutral">&nbsp;</span>
1727
+ <span class="cline-any cline-yes">4x</span>
1728
+ <span class="cline-any cline-neutral">&nbsp;</span>
1729
+ <span class="cline-any cline-yes">4x</span>
1730
+ <span class="cline-any cline-yes">4x</span>
1731
+ <span class="cline-any cline-yes">4x</span>
1732
+ <span class="cline-any cline-yes">4x</span>
1733
+ <span class="cline-any cline-yes">1x</span>
1734
+ <span class="cline-any cline-neutral">&nbsp;</span>
1735
+ <span class="cline-any cline-neutral">&nbsp;</span>
1736
+ <span class="cline-any cline-neutral">&nbsp;</span>
1737
+ <span class="cline-any cline-neutral">&nbsp;</span>
1738
+ <span class="cline-any cline-neutral">&nbsp;</span>
1739
+ <span class="cline-any cline-neutral">&nbsp;</span>
1740
+ <span class="cline-any cline-neutral">&nbsp;</span>
1741
+ <span class="cline-any cline-neutral">&nbsp;</span>
1742
+ <span class="cline-any cline-yes">53x</span>
1743
+ <span class="cline-any cline-yes">53x</span>
1744
+ <span class="cline-any cline-yes">53x</span>
1745
+ <span class="cline-any cline-yes">53x</span>
1650
1746
  <span class="cline-any cline-neutral">&nbsp;</span>
1651
1747
  <span class="cline-any cline-neutral">&nbsp;</span>
1652
1748
  <span class="cline-any cline-neutral">&nbsp;</span>
1653
1749
  <span class="cline-any cline-neutral">&nbsp;</span>
1654
1750
  <span class="cline-any cline-neutral">&nbsp;</span>
1655
1751
  <span class="cline-any cline-neutral">&nbsp;</span>
1656
- <span class="cline-any cline-no">&nbsp;</span>
1657
1752
  <span class="cline-any cline-neutral">&nbsp;</span>
1658
- <span class="cline-any cline-no">&nbsp;</span>
1659
- <span class="cline-any cline-no">&nbsp;</span>
1660
- <span class="cline-any cline-no">&nbsp;</span>
1661
- <span class="cline-any cline-no">&nbsp;</span>
1662
1753
  <span class="cline-any cline-neutral">&nbsp;</span>
1754
+ <span class="cline-any cline-yes">5x</span>
1755
+ <span class="cline-any cline-yes">5x</span>
1756
+ <span class="cline-any cline-yes">5x</span>
1757
+ <span class="cline-any cline-yes">4x</span>
1758
+ <span class="cline-any cline-neutral">&nbsp;</span>
1759
+ <span class="cline-any cline-neutral">&nbsp;</span>
1760
+ <span class="cline-any cline-yes">1x</span>
1761
+ <span class="cline-any cline-neutral">&nbsp;</span>
1762
+ <span class="cline-any cline-neutral">&nbsp;</span>
1763
+ <span class="cline-any cline-yes">4x</span>
1663
1764
  <span class="cline-any cline-neutral">&nbsp;</span>
1664
1765
  <span class="cline-any cline-neutral">&nbsp;</span>
1665
1766
  <span class="cline-any cline-neutral">&nbsp;</span>
1666
1767
  <span class="cline-any cline-neutral">&nbsp;</span>
1768
+ <span class="cline-any cline-yes">4x</span>
1667
1769
  <span class="cline-any cline-neutral">&nbsp;</span>
1770
+ <span class="cline-any cline-yes">4x</span>
1668
1771
  <span class="cline-any cline-neutral">&nbsp;</span>
1669
1772
  <span class="cline-any cline-neutral">&nbsp;</span>
1670
- <span class="cline-any cline-yes">43x</span>
1671
- <span class="cline-any cline-yes">43x</span>
1672
- <span class="cline-any cline-yes">43x</span>
1773
+ <span class="cline-any cline-neutral">&nbsp;</span>
1774
+ <span class="cline-any cline-neutral">&nbsp;</span>
1775
+ <span class="cline-any cline-yes">4x</span>
1776
+ <span class="cline-any cline-neutral">&nbsp;</span>
1777
+ <span class="cline-any cline-yes">4x</span>
1778
+ <span class="cline-any cline-yes">4x</span>
1779
+ <span class="cline-any cline-yes">4x</span>
1780
+ <span class="cline-any cline-yes">4x</span>
1673
1781
  <span class="cline-any cline-neutral">&nbsp;</span>
1674
1782
  <span class="cline-any cline-neutral">&nbsp;</span>
1675
1783
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1724,23 +1832,23 @@
1724
1832
  <span class="cline-any cline-neutral">&nbsp;</span>
1725
1833
  <span class="cline-any cline-neutral">&nbsp;</span>
1726
1834
  <span class="cline-any cline-neutral">&nbsp;</span>
1727
- <span class="cline-any cline-yes">56x</span>
1835
+ <span class="cline-any cline-yes">76x</span>
1728
1836
  <span class="cline-any cline-neutral">&nbsp;</span>
1729
1837
  <span class="cline-any cline-neutral">&nbsp;</span>
1730
1838
  <span class="cline-any cline-neutral">&nbsp;</span>
1731
1839
  <span class="cline-any cline-neutral">&nbsp;</span>
1732
1840
  <span class="cline-any cline-neutral">&nbsp;</span>
1733
1841
  <span class="cline-any cline-neutral">&nbsp;</span>
1734
- <span class="cline-any cline-yes">57x</span>
1842
+ <span class="cline-any cline-yes">70x</span>
1735
1843
  <span class="cline-any cline-neutral">&nbsp;</span>
1736
- <span class="cline-any cline-yes">57x</span>
1737
- <span class="cline-any cline-yes">57x</span>
1844
+ <span class="cline-any cline-yes">70x</span>
1845
+ <span class="cline-any cline-yes">70x</span>
1738
1846
  <span class="cline-any cline-neutral">&nbsp;</span>
1739
- <span class="cline-any cline-yes">57x</span>
1847
+ <span class="cline-any cline-yes">70x</span>
1740
1848
  <span class="cline-any cline-neutral">&nbsp;</span>
1741
- <span class="cline-any cline-yes">57x</span>
1742
- <span class="cline-any cline-yes">57x</span>
1743
- <span class="cline-any cline-yes">57x</span>
1849
+ <span class="cline-any cline-yes">70x</span>
1850
+ <span class="cline-any cline-yes">70x</span>
1851
+ <span class="cline-any cline-yes">70x</span>
1744
1852
  <span class="cline-any cline-neutral">&nbsp;</span>
1745
1853
  <span class="cline-any cline-no">&nbsp;</span>
1746
1854
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1751,28 +1859,28 @@
1751
1859
  <span class="cline-any cline-neutral">&nbsp;</span>
1752
1860
  <span class="cline-any cline-neutral">&nbsp;</span>
1753
1861
  <span class="cline-any cline-neutral">&nbsp;</span>
1754
- <span class="cline-any cline-yes">57x</span>
1862
+ <span class="cline-any cline-yes">70x</span>
1755
1863
  <span class="cline-any cline-neutral">&nbsp;</span>
1756
1864
  <span class="cline-any cline-neutral">&nbsp;</span>
1757
1865
  <span class="cline-any cline-neutral">&nbsp;</span>
1758
1866
  <span class="cline-any cline-neutral">&nbsp;</span>
1759
1867
  <span class="cline-any cline-neutral">&nbsp;</span>
1760
1868
  <span class="cline-any cline-neutral">&nbsp;</span>
1761
- <span class="cline-any cline-yes">57x</span>
1762
- <span class="cline-any cline-yes">57x</span>
1869
+ <span class="cline-any cline-yes">70x</span>
1870
+ <span class="cline-any cline-yes">70x</span>
1763
1871
  <span class="cline-any cline-neutral">&nbsp;</span>
1764
- <span class="cline-any cline-yes">57x</span>
1872
+ <span class="cline-any cline-yes">70x</span>
1765
1873
  <span class="cline-any cline-neutral">&nbsp;</span>
1766
1874
  <span class="cline-any cline-neutral">&nbsp;</span>
1767
1875
  <span class="cline-any cline-neutral">&nbsp;</span>
1768
1876
  <span class="cline-any cline-neutral">&nbsp;</span>
1769
- <span class="cline-any cline-yes">57x</span>
1877
+ <span class="cline-any cline-yes">70x</span>
1770
1878
  <span class="cline-any cline-neutral">&nbsp;</span>
1771
- <span class="cline-any cline-yes">57x</span>
1772
- <span class="cline-any cline-yes">57x</span>
1879
+ <span class="cline-any cline-yes">70x</span>
1880
+ <span class="cline-any cline-yes">70x</span>
1773
1881
  <span class="cline-any cline-neutral">&nbsp;</span>
1774
- <span class="cline-any cline-yes">57x</span>
1775
- <span class="cline-any cline-yes">57x</span>
1882
+ <span class="cline-any cline-yes">70x</span>
1883
+ <span class="cline-any cline-yes">70x</span>
1776
1884
  <span class="cline-any cline-neutral">&nbsp;</span>
1777
1885
  <span class="cline-any cline-neutral">&nbsp;</span>
1778
1886
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1806,32 +1914,32 @@
1806
1914
  <span class="cline-any cline-neutral">&nbsp;</span>
1807
1915
  <span class="cline-any cline-neutral">&nbsp;</span>
1808
1916
  <span class="cline-any cline-neutral">&nbsp;</span>
1809
- <span class="cline-any cline-yes">68x</span>
1917
+ <span class="cline-any cline-yes">82x</span>
1810
1918
  <span class="cline-any cline-neutral">&nbsp;</span>
1811
1919
  <span class="cline-any cline-neutral">&nbsp;</span>
1812
1920
  <span class="cline-any cline-neutral">&nbsp;</span>
1813
1921
  <span class="cline-any cline-neutral">&nbsp;</span>
1814
1922
  <span class="cline-any cline-neutral">&nbsp;</span>
1815
1923
  <span class="cline-any cline-neutral">&nbsp;</span>
1816
- <span class="cline-any cline-yes">14x</span>
1817
- <span class="cline-any cline-yes">14x</span>
1818
- <span class="cline-any cline-yes">14x</span>
1924
+ <span class="cline-any cline-yes">19x</span>
1925
+ <span class="cline-any cline-yes">19x</span>
1926
+ <span class="cline-any cline-yes">19x</span>
1819
1927
  <span class="cline-any cline-neutral">&nbsp;</span>
1820
1928
  <span class="cline-any cline-neutral">&nbsp;</span>
1821
1929
  <span class="cline-any cline-neutral">&nbsp;</span>
1822
- <span class="cline-any cline-yes">56x</span>
1823
- <span class="cline-any cline-yes">56x</span>
1824
- <span class="cline-any cline-yes">56x</span>
1930
+ <span class="cline-any cline-yes">76x</span>
1931
+ <span class="cline-any cline-yes">76x</span>
1932
+ <span class="cline-any cline-yes">76x</span>
1825
1933
  <span class="cline-any cline-neutral">&nbsp;</span>
1826
1934
  <span class="cline-any cline-neutral">&nbsp;</span>
1827
1935
  <span class="cline-any cline-neutral">&nbsp;</span>
1828
- <span class="cline-any cline-yes">14x</span>
1829
- <span class="cline-any cline-yes">14x</span>
1830
- <span class="cline-any cline-yes">14x</span>
1831
- <span class="cline-any cline-yes">14x</span>
1936
+ <span class="cline-any cline-yes">19x</span>
1937
+ <span class="cline-any cline-yes">19x</span>
1938
+ <span class="cline-any cline-yes">19x</span>
1939
+ <span class="cline-any cline-yes">19x</span>
1832
1940
  <span class="cline-any cline-neutral">&nbsp;</span>
1833
1941
  <span class="cline-any cline-neutral">&nbsp;</span>
1834
- <span class="cline-any cline-yes">14x</span>
1942
+ <span class="cline-any cline-yes">19x</span>
1835
1943
  <span class="cline-any cline-neutral">&nbsp;</span>
1836
1944
  <span class="cline-any cline-neutral">&nbsp;</span>
1837
1945
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1840,7 +1948,7 @@
1840
1948
  <span class="cline-any cline-neutral">&nbsp;</span>
1841
1949
  <span class="cline-any cline-neutral">&nbsp;</span>
1842
1950
  <span class="cline-any cline-neutral">&nbsp;</span>
1843
- <span class="cline-any cline-no">&nbsp;</span>
1951
+ <span class="cline-any cline-yes">76x</span>
1844
1952
  <span class="cline-any cline-neutral">&nbsp;</span>
1845
1953
  <span class="cline-any cline-neutral">&nbsp;</span>
1846
1954
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1849,13 +1957,13 @@
1849
1957
  <span class="cline-any cline-neutral">&nbsp;</span>
1850
1958
  <span class="cline-any cline-neutral">&nbsp;</span>
1851
1959
  <span class="cline-any cline-neutral">&nbsp;</span>
1852
- <span class="cline-any cline-yes">14x</span>
1853
- <span class="cline-any cline-yes">14x</span>
1960
+ <span class="cline-any cline-yes">19x</span>
1961
+ <span class="cline-any cline-yes">19x</span>
1854
1962
  <span class="cline-any cline-neutral">&nbsp;</span>
1855
- <span class="cline-any cline-yes">14x</span>
1856
- <span class="cline-any cline-yes">14x</span>
1857
- <span class="cline-any cline-yes">14x</span>
1858
- <span class="cline-any cline-yes">14x</span>
1963
+ <span class="cline-any cline-yes">19x</span>
1964
+ <span class="cline-any cline-yes">19x</span>
1965
+ <span class="cline-any cline-yes">19x</span>
1966
+ <span class="cline-any cline-yes">19x</span>
1859
1967
  <span class="cline-any cline-neutral">&nbsp;</span>
1860
1968
  <span class="cline-any cline-neutral">&nbsp;</span>
1861
1969
  <span class="cline-any cline-neutral">&nbsp;</span>
@@ -1943,7 +2051,17 @@ class Bucket {
1943
2051
  &nbsp;
1944
2052
  for (var i = this._last_b_idx; i &lt; this._b_states.length; i++) {
1945
2053
  if (this._b_states[i] == State.Available) {
1946
- var elem = {payload: this._b[i]};
2054
+ var elem = {};
2055
+ <span class="missing-if-branch" title="else path not taken" >E</span>if (this._b[i].__p) {
2056
+ // add-headers: array contains both payload and headers, breaks backwards compat
2057
+ elem.payload = this._b[i].__p;
2058
+ elem.hdrs = this._b[i].__h;
2059
+ }
2060
+ else {
2061
+ // backwards compat, pre-headers: array contains whole payloads
2062
+ <span class="cstat-no" title="statement not covered" > elem.payload = this._b[i];</span>
2063
+ }
2064
+ &nbsp;
1947
2065
  elem.tries = this._tries;
1948
2066
  elem.mature = this._mature;
1949
2067
  elem._id = this.id () + ':' + i;
@@ -2012,9 +2130,9 @@ class Bucket {
2012
2130
  var time_left = this._mature_t - new Date().getTime();
2013
2131
  debug ('time left is %d, grace is %d', time_left, this._reject_timeout_grace);
2014
2132
  &nbsp;
2015
- <span class="missing-if-branch" title="if path not taken" >I</span>if (time_left &lt; this._reject_timeout_grace) {
2016
- <span class="cstat-no" title="statement not covered" > debug ('bucket timed out, rejecting');</span>
2017
- <span class="cstat-no" title="statement not covered" > timed_out = true;</span>
2133
+ if (time_left &lt; this._reject_timeout_grace) {
2134
+ debug ('bucket timed out, rejecting');
2135
+ timed_out = true;
2018
2136
  }
2019
2137
  &nbsp;
2020
2138
  if (this._b_counts.Committed) {
@@ -2031,7 +2149,7 @@ class Bucket {
2031
2149
  debug ('Bucket: flushing %d committed entries', committed_pos.length);
2032
2150
  }
2033
2151
  &nbsp;
2034
- <span class="missing-if-branch" title="else path not taken" >E</span>if (
2152
+ if (
2035
2153
  timed_out ||
2036
2154
  (
2037
2155
  (this._b_counts.Available == 0) &amp;&amp;
@@ -2043,12 +2161,12 @@ class Bucket {
2043
2161
  is_reject = true;
2044
2162
  var tries = this._tries || <span class="branch-1 cbranch-no" title="branch not covered" >0;</span>
2045
2163
  &nbsp;
2046
- <span class="missing-if-branch" title="else path not taken" >E</span>if (this._rollback_next_t) {
2164
+ if (this._rollback_next_t) {
2047
2165
  mature = new Date (this._rollback_next_t);
2048
2166
  }
2049
2167
  else {
2050
- var delta = <span class="cstat-no" title="statement not covered" >this._reject_delta_factor * tries + this._reject_delta_base;</span>
2051
- <span class="cstat-no" title="statement not covered" > mature = new Date (new Date().getTime () + delta)</span>
2168
+ var delta = this._reject_delta_factor * tries + this._reject_delta_base;
2169
+ mature = new Date (new Date().getTime () + delta)
2052
2170
  }
2053
2171
  &nbsp;
2054
2172
  upd.$set.mature = mature;
@@ -2056,13 +2174,13 @@ class Bucket {
2056
2174
  has_update = true;
2057
2175
  }
2058
2176
  &nbsp;
2059
- <span class="missing-if-branch" title="else path not taken" >E</span>if (has_update) {
2177
+ if (has_update) {
2060
2178
  var q = {_id: this._id};
2061
2179
  &nbsp;
2062
2180
  debug ('update on bucket: q is %o, upd is %o', q, upd);
2063
2181
  &nbsp;
2064
2182
  this._col.updateOne (q, upd, (err, res) =&gt; {
2065
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) <span class="cstat-no" title="statement not covered" >return cb({</span>
2183
+ if (err) return cb({
2066
2184
  err: 'Bucket flush: mongodb error',
2067
2185
  e: err,
2068
2186
  q: q
@@ -2089,8 +2207,8 @@ class Bucket {
2089
2207
  });
2090
2208
  }
2091
2209
  else {
2092
- <span class="cstat-no" title="statement not covered" > debug ('Bucket: nothing to flush');</span>
2093
- <span class="cstat-no" title="statement not covered" > setImmediate (<span class="fstat-no" title="function not covered" >()</span> =&gt; <span class="cstat-no" title="statement not covered" >cb (null, this._b_counts))</span>;</span>
2210
+ debug ('Bucket: nothing to flush');
2211
+ setImmediate (() =&gt; cb (null, this._b_counts));
2094
2212
  }
2095
2213
  }
2096
2214
  &nbsp;
@@ -2145,7 +2263,7 @@ class BucketSet {
2145
2263
  &nbsp;
2146
2264
  var opts = {
2147
2265
  sort: {mature : 1},
2148
- returnOriginal: false
2266
+ returnDocument: 'after'
2149
2267
  };
2150
2268
  &nbsp;
2151
2269
  debug ('reading a new bucket');
@@ -2313,13 +2431,13 @@ class BucketSet {
2313
2431
  });
2314
2432
  &nbsp;
2315
2433
  async.parallel (tasks, (err, res) =&gt; {
2316
- <span class="missing-if-branch" title="if path not taken" >I</span>if (err) {
2317
- <span class="cstat-no" title="statement not covered" > debug ('BucketSet: error in flush-states: %o', err);</span>
2318
- <span class="cstat-no" title="statement not covered" > return cb (err);</span>
2434
+ if (err) {
2435
+ debug ('BucketSet: error in flush-states: %o', err);
2436
+ return cb (err);
2319
2437
  }
2320
2438
  &nbsp;
2321
2439
  _.each (res, (v, k) =&gt; {
2322
- <span class="missing-if-branch" title="else path not taken" >E</span>if (_.isNull (v)) {
2440
+ if (_.isNull (v)) {
2323
2441
  delete this._buckets[k];
2324
2442
  debug ('BucketSet: removed finished bucket %s', k);
2325
2443
  &nbsp;
@@ -2330,13 +2448,13 @@ class BucketSet {
2330
2448
  }
2331
2449
  });
2332
2450
  &nbsp;
2333
- <span class="missing-if-branch" title="else path not taken" >E</span>if (_.size (this._buckets) == 0) {
2451
+ if (_.size (this._buckets) == 0) {
2334
2452
  debug ('BucketSet: empty, no buckets. stop flush');
2335
2453
  this._cancel_flush_state_changes ();
2336
2454
  return cb (null, true);
2337
2455
  }
2338
2456
  else {
2339
- <span class="cstat-no" title="statement not covered" > return cb ();</span>
2457
+ return cb ();
2340
2458
  }
2341
2459
  &nbsp;
2342
2460
  <span class="cstat-no" title="statement not covered" > cb (err);</span>
@@ -2350,8 +2468,8 @@ class BucketSet {
2350
2468
  &nbsp;
2351
2469
  this._flush_state_changes_timer = setTimeout (() =&gt; {
2352
2470
  this._flush_state_changes ((err, stop) =&gt; {
2353
- <span class="missing-if-branch" title="else path not taken" >E</span>if (stop) return;
2354
- <span class="cstat-no" title="statement not covered" > this._ensure_flush_state_changes ();</span>
2471
+ if (stop) return;
2472
+ this._ensure_flush_state_changes ();
2355
2473
  })
2356
2474
  }, this._flush_state_changes_period);
2357
2475
  &nbsp;
@@ -2428,8 +2546,12 @@ class BucketMongoSafeQueue extends Queue {
2428
2546
  if (!this._insert_bucket.mature) this._insert_bucket.mature = entry.mature;
2429
2547
  else if (this._insert_bucket.mature.getTime () &lt; entry.mature.getTime ()) this._insert_bucket.mature = entry.mature;
2430
2548
  &nbsp;
2431
- this._insert_bucket.b.push (entry.payload);
2432
- var id = this._insert_bucket._id.toString () + ':' + this._insert_bucket.b.length;
2549
+ this._insert_bucket.b.push ({
2550
+ __p: entry.payload,
2551
+ __h: (entry.hdrs || <span class="branch-1 cbranch-no" title="branch not covered" >{})</span>
2552
+ });
2553
+ &nbsp;
2554
+ var id = this._insert_bucket._id.toString () + ':' + (this._insert_bucket.b.length - 1);
2433
2555
  debug ('added to bucket, %s', id);
2434
2556
  &nbsp;
2435
2557
  <span class="missing-if-branch" title="if path not taken" >I</span>if (this._insert_bucket.b.length &gt;= this._bucket_max_size) {
@@ -2504,6 +2626,7 @@ class BucketMongoSafeQueue extends Queue {
2504
2626
  <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>
2505
2627
  &nbsp;
2506
2628
  cursor.toArray ((err, res) =&gt; {
2629
+ debug ('calculating totalSize: aggregation pipeline returns %o', res);
2507
2630
  <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>
2508
2631
  if (res.length == 0) return callback (null, 0);
2509
2632
  callback (null, res[0].v);
@@ -2522,6 +2645,7 @@ class BucketMongoSafeQueue extends Queue {
2522
2645
  <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>
2523
2646
  &nbsp;
2524
2647
  cursor.toArray ((err, res) =&gt; {
2648
+ debug ('calculating size: aggregation pipeline returns %o', res);
2525
2649
  <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>
2526
2650
  if (res.length == 0) return callback (null, 0);
2527
2651
  callback (null, res[0].v);
@@ -2543,6 +2667,7 @@ class BucketMongoSafeQueue extends Queue {
2543
2667
  <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>
2544
2668
  &nbsp;
2545
2669
  cursor.toArray ((err, res) =&gt; {
2670
+ debug ('calculating schedSize: aggregation pipeline returns %o', res);
2546
2671
  <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>
2547
2672
  <span class="missing-if-branch" title="if path not taken" >I</span>if (res.length == 0) <span class="cstat-no" title="statement not covered" >return callback (null, 0);</span>
2548
2673
  callback (null, res[0].v);
@@ -2552,20 +2677,21 @@ class BucketMongoSafeQueue extends Queue {
2552
2677
  &nbsp;
2553
2678
  //////////////////////////////////
2554
2679
  // queue size of non-mature elements only
2555
- <span class="fstat-no" title="function not covered" > re</span>svSize (callback) {
2556
- <span class="cstat-no" title="statement not covered" > this._col.aggregate ([</span>
2680
+ resvSize (callback) {
2681
+ this._col.aggregate ([
2557
2682
  {$match: {
2558
2683
  mature: {$gt: Queue.now ()},
2559
2684
  reserved: {$exists: true}
2560
2685
  }},
2561
2686
  {$group:{_id:'t', v: {$sum: '$n'}}}
2562
- ], <span class="fstat-no" title="function not covered" >(e</span>rr, cursor) =&gt; {
2563
- <span class="cstat-no" title="statement not covered" > if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span></span>
2687
+ ], (err, cursor) =&gt; {
2688
+ <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>
2564
2689
  &nbsp;
2565
- <span class="cstat-no" title="statement not covered" > cursor.toArray (<span class="fstat-no" title="function not covered" >(e</span>rr, res) =&gt; {</span>
2566
- <span class="cstat-no" title="statement not covered" > if (err) <span class="cstat-no" title="statement not covered" >return callback (err);</span></span>
2567
- <span class="cstat-no" title="statement not covered" > if (res.length == 0) <span class="cstat-no" title="statement not covered" >return callback (null, 0);</span></span>
2568
- <span class="cstat-no" title="statement not covered" > callback (null, res[0].v);</span>
2690
+ cursor.toArray ((err, res) =&gt; {
2691
+ debug ('calculating resvSize: aggregation pipeline returns %o', res);
2692
+ <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>
2693
+ if (res.length == 0) return callback (null, 0);
2694
+ callback (null, res[0].v);
2569
2695
  });
2570
2696
  });
2571
2697
  }
@@ -2576,10 +2702,46 @@ class BucketMongoSafeQueue extends Queue {
2576
2702
  next_t (callback) {
2577
2703
  this._col.find ({}).limit(1).sort ({mature:1}).project ({mature:1}).next ((err, result) =&gt; {
2578
2704
  <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>
2705
+ debug ('obtaining next_t: got %o', result &amp;&amp; result.mature);
2579
2706
  callback (null, result &amp;&amp; result.mature);
2580
2707
  });
2581
2708
  }
2582
2709
  &nbsp;
2710
+ &nbsp;
2711
+ &nbsp;
2712
+ //////////////////////////////////////////////
2713
+ // remove by id
2714
+ remove (id, callback) {
2715
+ try {
2716
+ var aid = id.split (':');
2717
+ var bucket_id = new mongo.ObjectID (aid[0]);
2718
+ var bucket_idx = parseInt(aid[1]);
2719
+ }
2720
+ catch (e) {
2721
+ return callback ('id [' + id + '] can not be used as remove id: ' + e);
2722
+ }
2723
+ &nbsp;
2724
+ var upd = {
2725
+ $set: {},
2726
+ $inc: {n: -1}
2727
+ };
2728
+ &nbsp;
2729
+ upd.$set['b.' + bucket_idx] = null;
2730
+ &nbsp;
2731
+ var q = {
2732
+ _id: bucket_id,
2733
+ reserved: {$exists: false},
2734
+ };
2735
+ &nbsp;
2736
+ q['b.' + bucket_idx] = {$type: 3}; // b.N is an object
2737
+ &nbsp;
2738
+ debug ('update on bucket: q is %o, upd is %o', q, upd);
2739
+ this._col.updateOne (q, upd, (err, result) =&gt; {
2740
+ <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>
2741
+ callback (null, result &amp;&amp; (result.modifiedCount == 1));
2742
+ });
2743
+ }
2744
+ &nbsp;
2583
2745
  &nbsp;
2584
2746
  /////////////////////////////////////////
2585
2747
  _drain_read (cb) {
@@ -2746,8 +2908,8 @@ class Factory extends QFactory_MongoDB_defaults {
2746
2908
  <span class="cstat-no" title="statement not covered" > return BucketMongoSafeQueue.Type ();</span>
2747
2909
  }
2748
2910
  &nbsp;
2749
- <span class="fstat-no" title="function not covered" > ca</span>pabilities () {
2750
- <span class="cstat-no" title="statement not covered" > return {</span>
2911
+ capabilities () {
2912
+ return {
2751
2913
  sched: false,
2752
2914
  reserve: true,
2753
2915
  pipeline: false
@@ -2773,7 +2935,7 @@ module.exports = creator;
2773
2935
  </div><!-- /wrapper -->
2774
2936
  <div class='footer quiet pad2 space-top1 center small'>
2775
2937
  Code coverage
2776
- generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Mon Mar 01 2021 11:52:26 GMT+0100 (GMT+01:00)
2938
+ generated by <a href="https://istanbul.js.org/" target="_blank">istanbul</a> at Fri Dec 03 2021 12:14:40 GMT+0100 (GMT+01:00)
2777
2939
  </div>
2778
2940
  </div>
2779
2941
  <script src="../../prettify.js"></script>