sapor 0.3.3

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 (332) hide show
  1. checksums.yaml +7 -0
  2. data/Area Class Diagram.dia +0 -0
  3. data/Area Class Diagram.png +0 -0
  4. data/Class Diagram.dia +0 -0
  5. data/Class Diagram.png +0 -0
  6. data/Example-Catalonia.md +361 -0
  7. data/Example-Flanders.md +486 -0
  8. data/Example-Greece.md +25 -0
  9. data/Example-Oslo.md +678 -0
  10. data/Example-UnitedKingdom-Referendum.md +132 -0
  11. data/Examples.md +15 -0
  12. data/LICENSE +674 -0
  13. data/README.md +103 -0
  14. data/Rakefile +18 -0
  15. data/Technical Documentation.md +14 -0
  16. data/bin/create_installation_package.sh +49 -0
  17. data/bin/install.sh +45 -0
  18. data/bin/sapor.rb +24 -0
  19. data/bin/sapor.sh +106 -0
  20. data/data/hu/hungary-2014.txt +1680 -0
  21. data/data/hu/hungary_2014_screen_scraper.rb +48 -0
  22. data/data/hu/hungary_2014_to_psv.rb +80 -0
  23. data/data/hu/index-2014.txt +106 -0
  24. data/data/pl/2015-gl-lis-okr.csv +42 -0
  25. data/data/pl/poland_2015_to_psv.rb +79 -0
  26. data/data/pl/poland_2015_to_psv_with_ko_and_rsw.rb +94 -0
  27. data/data/pl/poland_2015_to_psv_with_ko_konf_kp_l_and_zp.rb +100 -0
  28. data/data/pl/poland_2015_to_psv_with_ko_sld_and_wi.rb +92 -0
  29. data/data/pl/poland_2015_to_psv_with_sld.rb +84 -0
  30. data/data/pl/poland_2015_to_psv_with_sld_and_wi.rb +85 -0
  31. data/data/uk/inject_ukip_2015_as_brexit_2019_in_2017.rb +54 -0
  32. data/data/uk/united_kingdom_2015.txt +651 -0
  33. data/data/uk/united_kingdom_2015_to_psv.rb +104 -0
  34. data/data/uk/united_kingdom_2017.txt +651 -0
  35. data/data/uk/united_kingdom_2017_to_psv.rb +104 -0
  36. data/data/uk/united_kingdom_2017_to_psv_with_brexit_and_chuk.rb +113 -0
  37. data/data/uk/united_kingdom_2017_to_psv_with_tig.rb +111 -0
  38. data/lib/sapor.rb +150 -0
  39. data/lib/sapor/binomials_cache.rb +45 -0
  40. data/lib/sapor/combinations_distribution.rb +222 -0
  41. data/lib/sapor/denominators.rb +67 -0
  42. data/lib/sapor/dichotomies.rb +138 -0
  43. data/lib/sapor/dichotomy.rb +164 -0
  44. data/lib/sapor/first_past_the_post.rb +82 -0
  45. data/lib/sapor/largest_remainder.rb +118 -0
  46. data/lib/sapor/log4r_logger.rb +49 -0
  47. data/lib/sapor/log_facade.rb +40 -0
  48. data/lib/sapor/multi_district_leveled_proportional.rb +64 -0
  49. data/lib/sapor/multi_district_proportional.rb +123 -0
  50. data/lib/sapor/multi_district_variable_threshold_proportional.rb +128 -0
  51. data/lib/sapor/number_formatter.rb +45 -0
  52. data/lib/sapor/options.rb +73 -0
  53. data/lib/sapor/poll.rb +286 -0
  54. data/lib/sapor/polychotomy.rb +200 -0
  55. data/lib/sapor/pseudorandom_multirange_enumerator.rb +87 -0
  56. data/lib/sapor/referendum_polychotomy.rb +165 -0
  57. data/lib/sapor/regional_data/area.rb +82 -0
  58. data/lib/sapor/regional_data/austria.rb +84 -0
  59. data/lib/sapor/regional_data/belgium-brussels-2014.psv +46 -0
  60. data/lib/sapor/regional_data/belgium-brussels-20190526.psv +33 -0
  61. data/lib/sapor/regional_data/belgium-flanders-2014.psv +80 -0
  62. data/lib/sapor/regional_data/belgium-flanders-20190526.psv +74 -0
  63. data/lib/sapor/regional_data/belgium-wallonia-2014.psv +114 -0
  64. data/lib/sapor/regional_data/belgium-wallonia-20190526.psv +93 -0
  65. data/lib/sapor/regional_data/belgium.rb +97 -0
  66. data/lib/sapor/regional_data/belgium_brussels.rb +62 -0
  67. data/lib/sapor/regional_data/belgium_flanders.rb +64 -0
  68. data/lib/sapor/regional_data/belgium_wallonia.rb +63 -0
  69. data/lib/sapor/regional_data/catalonia-2012-2015.psv +100 -0
  70. data/lib/sapor/regional_data/catalonia-2012.psv +87 -0
  71. data/lib/sapor/regional_data/catalonia-2015-jxcat.psv +68 -0
  72. data/lib/sapor/regional_data/catalonia-2015-no-jxsi.psv +68 -0
  73. data/lib/sapor/regional_data/catalonia-2015.psv +63 -0
  74. data/lib/sapor/regional_data/catalonia-jxcat.rb +109 -0
  75. data/lib/sapor/regional_data/catalonia-no-jxsi.rb +96 -0
  76. data/lib/sapor/regional_data/catalonia.rb +96 -0
  77. data/lib/sapor/regional_data/denmark-20150618-with-e-and-p.psv +164 -0
  78. data/lib/sapor/regional_data/denmark-20150618-with-e.psv +153 -0
  79. data/lib/sapor/regional_data/denmark-20150618-with-p.psv +153 -0
  80. data/lib/sapor/regional_data/denmark-20150618.psv +142 -0
  81. data/lib/sapor/regional_data/denmark.rb +128 -0
  82. data/lib/sapor/regional_data/denmark_with_e.rb +128 -0
  83. data/lib/sapor/regional_data/denmark_with_e_and_p.rb +128 -0
  84. data/lib/sapor/regional_data/denmark_with_p.rb +128 -0
  85. data/lib/sapor/regional_data/estonia.rb +88 -0
  86. data/lib/sapor/regional_data/european-union-great-britain-20140522-brexit-chuk.psv +172 -0
  87. data/lib/sapor/regional_data/european-union-great-britain-20140522.psv +146 -0
  88. data/lib/sapor/regional_data/european-union-great-britain-20190523.psv +141 -0
  89. data/lib/sapor/regional_data/european-union-ireland-2014-ia-ri-sd.psv +64 -0
  90. data/lib/sapor/regional_data/european-union-ireland-2014-ia-sd.psv +60 -0
  91. data/lib/sapor/regional_data/european-union-ireland-2014-ia.psv +56 -0
  92. data/lib/sapor/regional_data/european-union-ireland-2014-sd.psv +56 -0
  93. data/lib/sapor/regional_data/european-union-ireland-2014.psv +50 -0
  94. data/lib/sapor/regional_data/european-union-ireland-20190524-ia.psv +58 -0
  95. data/lib/sapor/regional_data/european-union-ireland-20190524.psv +52 -0
  96. data/lib/sapor/regional_data/european_union_27_austria.rb +76 -0
  97. data/lib/sapor/regional_data/european_union_27_croatia.rb +81 -0
  98. data/lib/sapor/regional_data/european_union_27_denmark.rb +77 -0
  99. data/lib/sapor/regional_data/european_union_27_estonia.rb +74 -0
  100. data/lib/sapor/regional_data/european_union_27_finland.rb +74 -0
  101. data/lib/sapor/regional_data/european_union_27_ireland.rb +96 -0
  102. data/lib/sapor/regional_data/european_union_27_ireland_with_ia.rb +97 -0
  103. data/lib/sapor/regional_data/european_union_27_italy.rb +84 -0
  104. data/lib/sapor/regional_data/european_union_27_netherlands.rb +81 -0
  105. data/lib/sapor/regional_data/european_union_27_poland.rb +84 -0
  106. data/lib/sapor/regional_data/european_union_27_romania.rb +78 -0
  107. data/lib/sapor/regional_data/european_union_27_slovakia.rb +80 -0
  108. data/lib/sapor/regional_data/european_union_27_spain.rb +82 -0
  109. data/lib/sapor/regional_data/european_union_27_sweden.rb +76 -0
  110. data/lib/sapor/regional_data/european_union_austria.rb +76 -0
  111. data/lib/sapor/regional_data/european_union_bulgaria.rb +81 -0
  112. data/lib/sapor/regional_data/european_union_croatia.rb +81 -0
  113. data/lib/sapor/regional_data/european_union_cyprus.rb +72 -0
  114. data/lib/sapor/regional_data/european_union_czech_republic.rb +82 -0
  115. data/lib/sapor/regional_data/european_union_denmark.rb +77 -0
  116. data/lib/sapor/regional_data/european_union_estonia.rb +74 -0
  117. data/lib/sapor/regional_data/european_union_finland.rb +74 -0
  118. data/lib/sapor/regional_data/european_union_flanders.rb +74 -0
  119. data/lib/sapor/regional_data/european_union_france.rb +84 -0
  120. data/lib/sapor/regional_data/european_union_france_2019.rb +84 -0
  121. data/lib/sapor/regional_data/european_union_french_community_of_belgium.rb +73 -0
  122. data/lib/sapor/regional_data/european_union_germany.rb +86 -0
  123. data/lib/sapor/regional_data/european_union_great_britain.rb +98 -0
  124. data/lib/sapor/regional_data/european_union_greece.rb +77 -0
  125. data/lib/sapor/regional_data/european_union_hungary.rb +76 -0
  126. data/lib/sapor/regional_data/european_union_ireland.rb +96 -0
  127. data/lib/sapor/regional_data/european_union_ireland_with_ia.rb +97 -0
  128. data/lib/sapor/regional_data/european_union_italy.rb +84 -0
  129. data/lib/sapor/regional_data/european_union_latvia.rb +81 -0
  130. data/lib/sapor/regional_data/european_union_lithuania.rb +80 -0
  131. data/lib/sapor/regional_data/european_union_luxembourg.rb +75 -0
  132. data/lib/sapor/regional_data/european_union_malta.rb +71 -0
  133. data/lib/sapor/regional_data/european_union_netherlands.rb +81 -0
  134. data/lib/sapor/regional_data/european_union_northern_ireland.rb +75 -0
  135. data/lib/sapor/regional_data/european_union_poland.rb +84 -0
  136. data/lib/sapor/regional_data/european_union_portugal.rb +75 -0
  137. data/lib/sapor/regional_data/european_union_romania.rb +78 -0
  138. data/lib/sapor/regional_data/european_union_slovakia.rb +81 -0
  139. data/lib/sapor/regional_data/european_union_slovenia.rb +85 -0
  140. data/lib/sapor/regional_data/european_union_spain.rb +82 -0
  141. data/lib/sapor/regional_data/european_union_sweden.rb +76 -0
  142. data/lib/sapor/regional_data/finland-20150419-with-sin.psv +224 -0
  143. data/lib/sapor/regional_data/finland-20150419.psv +212 -0
  144. data/lib/sapor/regional_data/finland.rb +107 -0
  145. data/lib/sapor/regional_data/finland_with_sin.rb +107 -0
  146. data/lib/sapor/regional_data/flanders-2014.psv +96 -0
  147. data/lib/sapor/regional_data/flanders-20190526.psv +87 -0
  148. data/lib/sapor/regional_data/flanders.rb +115 -0
  149. data/lib/sapor/regional_data/france.rb +38 -0
  150. data/lib/sapor/regional_data/greece.rb +92 -0
  151. data/lib/sapor/regional_data/hungary-2014.psv +2104 -0
  152. data/lib/sapor/regional_data/hungary.rb +116 -0
  153. data/lib/sapor/regional_data/iceland-20161029-midflokkurinn.psv +94 -0
  154. data/lib/sapor/regional_data/iceland-20161029.psv +88 -0
  155. data/lib/sapor/regional_data/iceland-20171028.psv +85 -0
  156. data/lib/sapor/regional_data/iceland.rb +133 -0
  157. data/lib/sapor/regional_data/latvia-20141004-kpv-p-par.psv +109 -0
  158. data/lib/sapor/regional_data/latvia-20141004-kpv-par.psv +103 -0
  159. data/lib/sapor/regional_data/latvia-20141004-kpv.psv +97 -0
  160. data/lib/sapor/regional_data/latvia-20141004.psv +89 -0
  161. data/lib/sapor/regional_data/latvia.rb +112 -0
  162. data/lib/sapor/regional_data/latvia_kpv.rb +112 -0
  163. data/lib/sapor/regional_data/latvia_kpv_p_par.rb +112 -0
  164. data/lib/sapor/regional_data/latvia_kpv_par.rb +112 -0
  165. data/lib/sapor/regional_data/luxembourg-20131020.psv +76 -0
  166. data/lib/sapor/regional_data/luxembourg.rb +82 -0
  167. data/lib/sapor/regional_data/netherlands.rb +108 -0
  168. data/lib/sapor/regional_data/norway.rb +425 -0
  169. data/lib/sapor/regional_data/norwegian_municipality.rb +68 -0
  170. data/lib/sapor/regional_data/poland-20151025-with-ko-and-l-without-n-po-r-and-zl.psv +321 -0
  171. data/lib/sapor/regional_data/poland-20151025-with-ko-konf-kp-l-and-zp-without-k-k15-n-pis-po-psl-r-and-zl.psv +280 -0
  172. data/lib/sapor/regional_data/poland-20151025-with-ko-sld-and-wi-without-n-po-and-zl.psv +403 -0
  173. data/lib/sapor/regional_data/poland-20151025-with-sld-and-wi-without-zl.psv +444 -0
  174. data/lib/sapor/regional_data/poland-20151025-with-sld-without-zl.psv +403 -0
  175. data/lib/sapor/regional_data/poland-20151025.psv +403 -0
  176. data/lib/sapor/regional_data/poland.rb +125 -0
  177. data/lib/sapor/regional_data/poland_with_ko_and_l_without_n_po_r_and_zl.rb +122 -0
  178. data/lib/sapor/regional_data/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl.rb +123 -0
  179. data/lib/sapor/regional_data/poland_with_ko_sld_and_wi_without_n_po_and_zl.rb +125 -0
  180. data/lib/sapor/regional_data/poland_with_sld_and_wi_without_zl.rb +126 -0
  181. data/lib/sapor/regional_data/poland_with_sld_without_zl.rb +126 -0
  182. data/lib/sapor/regional_data/portugal-20151004-with-a-and-ch-without-paf.psv +438 -0
  183. data/lib/sapor/regional_data/portugal-20151004-with-a-and-il-without-paf.psv +438 -0
  184. data/lib/sapor/regional_data/portugal-20151004-with-a-ch-and-il-without-paf.psv +461 -0
  185. data/lib/sapor/regional_data/portugal-20151004-with-a-without-paf.psv +415 -0
  186. data/lib/sapor/regional_data/portugal-20151004-with-ch-and-il-without-paf.psv +438 -0
  187. data/lib/sapor/regional_data/portugal-20151004-without-paf.psv +392 -0
  188. data/lib/sapor/regional_data/portugal-20151004.psv +370 -0
  189. data/lib/sapor/regional_data/portugal.rb +101 -0
  190. data/lib/sapor/regional_data/portugal_with_a_and_ch_without_paf.rb +92 -0
  191. data/lib/sapor/regional_data/portugal_with_a_and_il_without_paf.rb +92 -0
  192. data/lib/sapor/regional_data/portugal_with_a_ch_and_il_without_paf.rb +92 -0
  193. data/lib/sapor/regional_data/portugal_with_a_without_paf.rb +92 -0
  194. data/lib/sapor/regional_data/portugal_with_ch_and_il_without_paf.rb +92 -0
  195. data/lib/sapor/regional_data/portugal_without_paf.rb +92 -0
  196. data/lib/sapor/regional_data/slovakia.rb +81 -0
  197. data/lib/sapor/regional_data/slovenia.rb +114 -0
  198. data/lib/sapor/regional_data/spain-20160626.psv +619 -0
  199. data/lib/sapor/regional_data/spain.rb +136 -0
  200. data/lib/sapor/regional_data/sweden.rb +92 -0
  201. data/lib/sapor/regional_data/sweden_20140914.rb +89 -0
  202. data/lib/sapor/regional_data/united_kingdom-2015.psv +4358 -0
  203. data/lib/sapor/regional_data/united_kingdom-20170608-brexit-chuk.psv +5154 -0
  204. data/lib/sapor/regional_data/united_kingdom-20170608-brexit.psv +4521 -0
  205. data/lib/sapor/regional_data/united_kingdom-20170608-tig.psv +4529 -0
  206. data/lib/sapor/regional_data/united_kingdom-20170608.psv +3894 -0
  207. data/lib/sapor/regional_data/united_kingdom.rb +94 -0
  208. data/lib/sapor/regional_data/united_kingdom_with_brexit.rb +110 -0
  209. data/lib/sapor/regional_data/united_kingdom_with_brexit_and_chuk.rb +111 -0
  210. data/lib/sapor/regional_data/united_kingdom_with_tig.rb +111 -0
  211. data/lib/sapor/regional_data/utopia.rb +66 -0
  212. data/lib/sapor/regional_data/wallonia-2014.psv +101 -0
  213. data/lib/sapor/regional_data/wallonia-20190526.psv +88 -0
  214. data/lib/sapor/regional_data/wallonia.rb +112 -0
  215. data/lib/sapor/representatives_polychotomy.rb +338 -0
  216. data/lib/sapor/single_district_proportional.rb +75 -0
  217. data/sapor.gemspec +35 -0
  218. data/spec/integration/area_spec.rb +28 -0
  219. data/spec/integration/poll_spec.rb +112 -0
  220. data/spec/integration/sample.poll +8 -0
  221. data/spec/spec_helper.rb +31 -0
  222. data/spec/unit/area_spec.rb +115 -0
  223. data/spec/unit/austria_spec.rb +76 -0
  224. data/spec/unit/belgium_brussels_spec.rb +58 -0
  225. data/spec/unit/belgium_flanders_spec.rb +62 -0
  226. data/spec/unit/belgium_spec.rb +26 -0
  227. data/spec/unit/belgium_wallonia_spec.rb +65 -0
  228. data/spec/unit/binomials_cache_spec.rb +34 -0
  229. data/spec/unit/catalonia_spec.rb +74 -0
  230. data/spec/unit/combinations_distribution_spec.rb +241 -0
  231. data/spec/unit/denmark_spec.rb +56 -0
  232. data/spec/unit/denmark_with_e_and_p_spec.rb +58 -0
  233. data/spec/unit/denmark_with_e_spec.rb +57 -0
  234. data/spec/unit/denmark_with_p_spec.rb +57 -0
  235. data/spec/unit/denominators_spec.rb +40 -0
  236. data/spec/unit/dichotomies_spec.rb +154 -0
  237. data/spec/unit/dichotomy_spec.rb +320 -0
  238. data/spec/unit/estonia_spec.rb +65 -0
  239. data/spec/unit/european_union_27_austria_spec.rb +61 -0
  240. data/spec/unit/european_union_27_croatia_spec.rb +60 -0
  241. data/spec/unit/european_union_27_denmark_spec.rb +62 -0
  242. data/spec/unit/european_union_27_estonia_spec.rb +94 -0
  243. data/spec/unit/european_union_27_finland_spec.rb +75 -0
  244. data/spec/unit/european_union_27_ireland_spec.rb +72 -0
  245. data/spec/unit/european_union_27_ireland_with_ia_spec.rb +74 -0
  246. data/spec/unit/european_union_27_italy_spec.rb +69 -0
  247. data/spec/unit/european_union_27_netherlands_spec.rb +81 -0
  248. data/spec/unit/european_union_27_poland_spec.rb +69 -0
  249. data/spec/unit/european_union_27_romania_spec.rb +67 -0
  250. data/spec/unit/european_union_27_slovakia_spec.rb +111 -0
  251. data/spec/unit/european_union_27_spain_spec.rb +130 -0
  252. data/spec/unit/european_union_27_sweden_spec.rb +89 -0
  253. data/spec/unit/european_union_austria_spec.rb +61 -0
  254. data/spec/unit/european_union_bulgaria_spec.rb +97 -0
  255. data/spec/unit/european_union_croatia_spec.rb +59 -0
  256. data/spec/unit/european_union_cyprus_spec.rb +65 -0
  257. data/spec/unit/european_union_czech_republic_spec.rb +125 -0
  258. data/spec/unit/european_union_denmark_spec.rb +61 -0
  259. data/spec/unit/european_union_estonia_spec.rb +93 -0
  260. data/spec/unit/european_union_finland_spec.rb +75 -0
  261. data/spec/unit/european_union_flanders_spec.rb +56 -0
  262. data/spec/unit/european_union_france_2019_spec.rb +73 -0
  263. data/spec/unit/european_union_france_spec.rb +73 -0
  264. data/spec/unit/european_union_french_community_of_belgium_spec.rb +61 -0
  265. data/spec/unit/european_union_germany_spec.rb +90 -0
  266. data/spec/unit/european_union_great_britain_spec.rb +87 -0
  267. data/spec/unit/european_union_greece_spec.rb +148 -0
  268. data/spec/unit/european_union_hungary_spec.rb +57 -0
  269. data/spec/unit/european_union_ireland_spec.rb +72 -0
  270. data/spec/unit/european_union_ireland_with_ia_spec.rb +74 -0
  271. data/spec/unit/european_union_italy_spec.rb +69 -0
  272. data/spec/unit/european_union_latvia_spec.rb +76 -0
  273. data/spec/unit/european_union_lithuania_spec.rb +68 -0
  274. data/spec/unit/european_union_luxembourg_spec.rb +63 -0
  275. data/spec/unit/european_union_malta_spec.rb +60 -0
  276. data/spec/unit/european_union_netherlands_spec.rb +81 -0
  277. data/spec/unit/european_union_northern_ireland_spec.rb +66 -0
  278. data/spec/unit/european_union_poland_spec.rb +69 -0
  279. data/spec/unit/european_union_portugal_spec.rb +77 -0
  280. data/spec/unit/european_union_romania_spec.rb +67 -0
  281. data/spec/unit/european_union_slovakia_spec.rb +111 -0
  282. data/spec/unit/european_union_slovenia_spec.rb +77 -0
  283. data/spec/unit/european_union_spain_spec.rb +129 -0
  284. data/spec/unit/european_union_sweden_spec.rb +89 -0
  285. data/spec/unit/finland_spec.rb +65 -0
  286. data/spec/unit/finland_with_sin_spec.rb +67 -0
  287. data/spec/unit/first_past_the_post_spec.rb +54 -0
  288. data/spec/unit/flanders_spec.rb +70 -0
  289. data/spec/unit/france_spec.rb +32 -0
  290. data/spec/unit/greece_spec.rb +118 -0
  291. data/spec/unit/hungary_spec.rb +132 -0
  292. data/spec/unit/iceland_spec.rb +57 -0
  293. data/spec/unit/largest_remainder_spec.rb +79 -0
  294. data/spec/unit/latvia_kpv_p_par_spec.rb +38 -0
  295. data/spec/unit/latvia_kpv_par_spec.rb +38 -0
  296. data/spec/unit/latvia_kpv_spec.rb +38 -0
  297. data/spec/unit/latvia_spec.rb +60 -0
  298. data/spec/unit/luxembourg_spec.rb +54 -0
  299. data/spec/unit/multi_district_leveled_proportional_spec.rb +49 -0
  300. data/spec/unit/multi_district_proportional_spec.rb +81 -0
  301. data/spec/unit/netherlands_spec.rb +107 -0
  302. data/spec/unit/norway_spec.rb +64 -0
  303. data/spec/unit/norwegian_municipality_spec.rb +89 -0
  304. data/spec/unit/number_formatter_spec.rb +173 -0
  305. data/spec/unit/poland_spec.rb +62 -0
  306. data/spec/unit/poland_with_ko_and_l_without_n_po_r_and_zl_spec.rb +60 -0
  307. data/spec/unit/poland_with_ko_konf_kp_l_and_zp_without_k_k15_n_pis_po_psl_r_and_zl_spec.rb +59 -0
  308. data/spec/unit/poland_with_ko_sld_and_wi_without_n_po_and_zl_spec.rb +62 -0
  309. data/spec/unit/poland_with_sld_and_wi_without_zl_spec.rb +63 -0
  310. data/spec/unit/poland_with_sld_without_zl_spec.rb +62 -0
  311. data/spec/unit/poll_spec.rb +110 -0
  312. data/spec/unit/portugal_spec.rb +66 -0
  313. data/spec/unit/portugal_with_a_and_ch_without_paf_spec.rb +68 -0
  314. data/spec/unit/portugal_with_a_and_il_without_paf_spec.rb +68 -0
  315. data/spec/unit/portugal_with_a_ch_and_il_without_paf_spec.rb +69 -0
  316. data/spec/unit/portugal_with_a_without_paf_spec.rb +67 -0
  317. data/spec/unit/portugal_with_ch_and_il_without_paf_spec.rb +68 -0
  318. data/spec/unit/portugal_without_paf_spec.rb +66 -0
  319. data/spec/unit/pseudorandom_multirange_enumerator_spec.rb +82 -0
  320. data/spec/unit/referendum_polychotomy_spec.rb +289 -0
  321. data/spec/unit/representatives_polychotomy_spec.rb +332 -0
  322. data/spec/unit/slovakia_spec.rb +99 -0
  323. data/spec/unit/slovenia_spec.rb +80 -0
  324. data/spec/unit/spain_spec.rb +101 -0
  325. data/spec/unit/sweden_20140914_spec.rb +112 -0
  326. data/spec/unit/sweden_spec.rb +113 -0
  327. data/spec/unit/united_kingdom_spec.rb +65 -0
  328. data/spec/unit/united_kingdom_with_brexit_and_chuk_spec.rb +67 -0
  329. data/spec/unit/united_kingdom_with_brexit_spec.rb +66 -0
  330. data/spec/unit/united_kingdom_with_tig_spec.rb +66 -0
  331. data/spec/unit/wallonia_spec.rb +70 -0
  332. metadata +490 -0
@@ -0,0 +1,104 @@
1
+ # encoding: utf-8
2
+ #
3
+ # Statistical Analysis of Polling Results (SAPoR)
4
+ # Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>
5
+ #
6
+ # This file is part of SAPoR.
7
+ #
8
+ # SAPoR is free software: you can redistribute it and/or modify it under the
9
+ # terms of the GNU General Public License as published by the Free Software
10
+ # Foundation, either version 3 of the License, or (at your option) any later
11
+ # version.
12
+ #
13
+ # SAPoR is distributed in the hope that it will be useful, but WITHOUT ANY
14
+ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
15
+ # A PARTICULAR PURPOSE. See the GNU General Public License for more details.
16
+ #
17
+ # You can find a copy of the GNU General Public License in /doc/gpl.txt
18
+ #
19
+
20
+ SOURCE = 'united_kingdom_2015.txt'.freeze
21
+ TARGET = '../lib/sapor/regional_data/united_kingdom-2015.psv'.freeze
22
+
23
+ File.open(TARGET, 'w') do |output|
24
+ output.puts '# Statistical Analysis of Polling Results (SAPoR)'
25
+ output.puts '# Copyright (C) 2016 Filip van Laenen <f.a.vanlaenen@ieee.org>'
26
+ output.puts '#'
27
+ output.puts '# This file is part of SAPoR.'
28
+ output.puts '#'
29
+ output.puts '# SAPoR is free software: you can redistribute it and/or' \
30
+ ' modify it under the'
31
+ output.puts '# terms of the GNU General Public License as published by the' \
32
+ ' Free Software'
33
+ output.puts '# Foundation, either version 3 of the License, or (at your' \
34
+ ' option) any later'
35
+ output.puts '# version.'
36
+ output.puts '#'
37
+ output.puts '# SAPoR is distributed in the hope that it will be useful, but' \
38
+ ' WITHOUT ANY'
39
+ output.puts '# WARRANTY; without even the implied warranty of' \
40
+ ' MERCHANTABILITY or FITNESS FOR'
41
+ output.puts '# A PARTICULAR PURPOSE. See the GNU General Public License' \
42
+ ' for more details.'
43
+ output.puts '#'
44
+ output.puts '# You can find a copy of the GNU General Public License in' \
45
+ ' /doc/gpl.txt'
46
+ output.puts '#'
47
+ File.open(SOURCE).each do |line|
48
+ elements = line.chomp.split(';')
49
+ name = elements[0]
50
+ next if name == 'Name'
51
+ region = elements[2].to_i
52
+ output.puts ''
53
+ if region == 3
54
+ unless elements[5].to_i == 0
55
+ output.puts "#{name} | Ulster Unionist Party | #{elements[5]}"
56
+ end
57
+ unless elements[6].to_i == 0
58
+ output.puts "#{name} | Social Democratic & Labour Party | " \
59
+ "#{elements[6]}"
60
+ end
61
+ unless elements[7].to_i == 0
62
+ output.puts "#{name} | Democratic Unionist Party | #{elements[7]}"
63
+ end
64
+ else
65
+ unless elements[5].to_i == 0
66
+ output.puts "#{name} | Conservative Party | #{elements[5]}"
67
+ end
68
+ unless elements[6].to_i == 0
69
+ output.puts "#{name} | Labour Party | #{elements[6]}"
70
+ end
71
+ unless elements[7].to_i == 0
72
+ output.puts "#{name} | Liberal Democrats | #{elements[7]}"
73
+ end
74
+ end
75
+ unless elements[8].to_i == 0
76
+ output.puts "#{name} | UK Independence Party | #{elements[8]}"
77
+ end
78
+ unless elements[9].to_i == 0
79
+ output.puts "#{name} | Green Party | #{elements[9]}"
80
+ end
81
+ if region == 1 || region == 2
82
+ unless elements[10].to_i == 0
83
+ output.puts "#{name} | Scottish National Party | #{elements[10]}"
84
+ end
85
+ elsif region == 3
86
+ unless elements[10].to_i == 0
87
+ output.puts "#{name} | Sinn Féin | #{elements[10]}"
88
+ end
89
+ elsif region == 12
90
+ unless elements[10].to_i == 0
91
+ output.puts "#{name} | Plaid Cymru | #{elements[10]}"
92
+ end
93
+ elsif elements[10].to_i > 0
94
+ puts "Check out #{name}!"
95
+ end
96
+ unless elements[11].to_i == 0
97
+ output.puts "#{name} | Small or local party, or independent candidate " \
98
+ "| #{elements[11]}"
99
+ end
100
+ unless elements[12].to_i == 0
101
+ output.puts "#{name} | All other candidates | #{elements[12]}"
102
+ end
103
+ end
104
+ end
@@ -0,0 +1,651 @@
1
+ Name;MP;Area;County;Electorate;CON;LAB;LIB;UKIP;Green;NAT;MIN;OTH
2
+ Aldershot;Leo Docherty;12;Hampshire;76205;26955;15477;3637;1796;1090;0;0;0
3
+ Aldridge-Brownhills;Wendy Morton;7;Black Country;60363;26317;12010;1343;0;0;0;0;565
4
+ Altrincham and Sale West;Graham Brady;4;Central Manchester;73220;26933;20507;4051;0;1000;0;0;299
5
+ Amber Valley;Nigel Mills;8;Derbyshire;68065;25905;17605;1100;0;650;0;0;551
6
+ Arundel and South Downs;Nick Herbert;12;West Sussex;80766;37573;13690;4783;1668;2542;0;0;0
7
+ Ashfield;Gloria De Piero;8;Nottinghamshire;78099;20844;21285;969;1885;398;0;4612;0
8
+ Ashford;Damian Green;12;Kent;87396;35318;17840;3101;2218;1402;0;0;0
9
+ Ashton under Lyne;Angela Rayner;4;Eastern Manchester;67674;12710;24005;646;1878;534;0;0;0
10
+ Aylesbury;David Lidington;12;Buckinghamshire;82546;32313;17617;5660;1296;1237;0;0;620
11
+ Banbury;Victoria Prentis;12;Oxfordshire;83818;33388;20989;3452;1581;1225;0;0;927
12
+ Barking;Margaret Hodge;11;Barking and Dagenham;77020;10711;32319;599;3031;724;0;0;295
13
+ Barnsley Central;Dan Jarvis;5;South Yorkshire;64204;9436;24982;549;3339;572;0;0;211
14
+ Barnsley East;Stephanie Peacock;5;South Yorkshire;69204;10997;24280;750;3247;0;0;1215;287
15
+ Barrow and Furness;John Woodcock;4;Cumbria;69474;22383;22592;1278;962;375;0;0;0
16
+ Basildon and Billericay;John Baron;9;Essex;69149;27381;13981;1548;2008;0;0;0;0
17
+ Basildon South and East Thurrock;Stephen Metcalfe;9;Essex;73541;26811;15321;732;3193;680;0;0;383
18
+ Basingstoke;Maria Miller;12;Hampshire;81873;29510;20044;3406;1681;1106;0;0;213
19
+ Bassetlaw;John Mann;8;Nottinghamshire;78535;22615;27467;1154;0;0;0;1014;0
20
+ Bath;Wera Hobhouse;10;Bristol area;66769;17742;7279;23436;0;1125;0;0;0
21
+ Batley and Spen;Tracy Brabin;5;West Yorkshire;80153;20883;29844;1224;0;695;0;1076;58
22
+ Battersea;Marsha De Cordova;11;Wandsworth;77572;22876;25292;4401;357;866;0;1234;32
23
+ Beaconsfield;Dominic Grieve;12;Buckinghamshire;77534;36559;12016;4448;1609;1396;0;0;0
24
+ Beckenham;Bob Stewart;11;Bromley;67928;30632;15545;4073;0;1380;0;0;0
25
+ Bedford;Mohammad Yasin;9;Bedfordshire;71829;21923;22712;2837;0;1008;0;0;0
26
+ Bedfordshire Mid;Nadine Dorries;9;Bedfordshire;83800;38936;17953;3798;0;1794;0;0;667
27
+ Bedfordshire North East;Alistair Burt;9;Bedfordshire;86988;39139;18277;3693;1896;1215;0;0;0
28
+ Bedfordshire South West;Andrew Selous;9;Bedfordshire;79670;32961;18793;2630;0;950;0;0;301
29
+ Bermondsey and Old Southwark;Neil Coyle;11;Southwark;87227;7581;31161;18189;838;639;0;0;113
30
+ Berwick-upon-Tweed;Anne-Marie Trevelyan;3;Northumberland;58774;22145;10364;8916;0;787;0;0;0
31
+ Bethnal Green and Bow;Rushanara Ali;11;Tower Hamlets;86071;7576;42969;2982;894;1516;0;3888;0
32
+ Beverley and Holderness;Graham Stuart;5;Humber area;80657;32499;18457;2808;0;756;0;1158;0
33
+ Bexhill and Battle;Huw Merriman;12;East Sussex;78512;36854;14689;4485;2006;1438;0;0;0
34
+ Bexleyheath and Crayford;David Evennett;11;Bexley;65315;25113;16040;1201;1944;601;0;0;290
35
+ Birkenhead;Frank Field;4;Merseyside;64484;8044;33558;1118;0;943;0;0;0
36
+ Birmingham Edgbaston;Preet Gill;7;Birmingham;68091;17207;24124;1564;0;562;0;0;155
37
+ Birmingham Erdington;Jack Dromey;7;Birmingham;65067;14286;21571;750;0;610;0;0;0
38
+ Birmingham Hall Green;Roger Godsiff;7;Birmingham;78271;8199;42143;3137;0;831;0;0;0
39
+ Birmingham Hodge Hill;Liam Byrne;7;Birmingham;75698;6580;37606;805;1016;387;0;0;0
40
+ Birmingham Ladywood;Shabana Mahmood;7;Birmingham;70023;5452;34166;1156;0;533;0;0;0
41
+ Birmingham Northfield;Richard Burden;7;Birmingham;72322;18929;23596;959;0;864;0;0;0
42
+ Birmingham Perry Barr;Khalid Mahmood;7;Birmingham;70106;11726;30109;1080;0;591;0;592;99
43
+ Birmingham Selly Oak;Steve McCabe;7;Birmingham;74370;15629;30836;1644;0;876;0;0;0
44
+ Birmingham Yardley;Jess Phillips;7;Birmingham;72581;8824;25398;7984;1916;280;0;0;100
45
+ Bishop Auckland;Helen Goodman;3;Durham;67661;20306;20808;1176;0;0;0;0;991
46
+ Blackburn;Kate Hollern;4;Lancashire;70657;12780;33148;709;0;0;0;875;0
47
+ Blackley and Broughton;Graham Stringer;4;Central Manchester;71648;8657;28258;737;1825;462;0;0;174
48
+ Blackpool North and Cleveleys;Paul Maynard;4;Lancashire;63967;20255;18232;747;1392;381;0;0;0
49
+ Blackpool South;Gordon Marsden;4;Lancashire;58450;15058;17581;634;1339;341;0;0;0
50
+ Blaydon;Liz Twist;3;Newcastle area;68459;13502;26979;4366;2459;583;0;0;195
51
+ Blyth Valley;Ronnie Campbell;3;Northumberland;63371;15855;23770;1947;0;918;0;0;0
52
+ Bognor Regis and Littlehampton;Nick Gibb;12;West Sussex;75827;30276;12782;3352;1861;993;0;2088;0
53
+ Bolsover;Dennis Skinner;8;Derbyshire;73429;18865;24153;1372;2129;0;0;0;0
54
+ Bolton North East;David Crausby;4;Western Manchester;67233;19073;22870;1316;1567;357;0;0;0
55
+ Bolton South East;Yasmin Qureshi;4;Western Manchester;68886;12550;25676;781;2779;537;0;0;0
56
+ Bolton West;Chris Green;4;Western Manchester;72797;24459;23523;1485;1587;0;0;0;0
57
+ Bootle;Peter Dowd;4;Merseyside;72872;6059;42259;837;0;709;0;0;424
58
+ Boston and Skegness;Matt Warman;8;Lincolnshire;68391;27271;10699;771;3308;547;0;0;283
59
+ Bosworth;David Tredinnick;8;Leicestershire;80633;31864;13513;9744;0;1047;0;0;0
60
+ Bournemouth East;Tobias Ellwood;10;Dorset;74591;25221;17284;3168;1405;1236;0;0;304
61
+ Bournemouth West;Conor Burns;10;Dorset;73195;23812;16101;2929;0;1247;0;0;418
62
+ Bracknell;Phillip Lee;12;Berkshire;79199;32882;16866;4186;1521;0;0;0;437
63
+ Bradford East;Imran Hussain;5;West Yorkshire;70389;9291;29831;843;1372;289;0;3576;420
64
+ Bradford South;Judith Cummins;5;West Yorkshire;67752;15664;22364;516;1758;370;0;377;0
65
+ Bradford West;Naz Shah;5;West Yorkshire;67568;7542;29444;712;885;481;0;6345;119
66
+ Braintree;James Cleverly;9;Essex;75316;32873;14451;2251;1835;916;0;0;0
67
+ Brent Central;Dawn Butler;11;Brent;80845;10211;38208;2519;556;802;0;0;0
68
+ Brent North;Barry Gardiner;11;Brent;82556;18435;35496;1614;0;660;0;0;239
69
+ Brentford and Isleworth;Ruth Cadbury;11;Hounslow;85151;23182;35364;3083;0;0;0;0;0
70
+ Brentwood and Ongar;Alex Burghart;9;Essex;74911;34811;10809;4426;1845;915;0;0;104
71
+ Bridgwater and West Somerset;Ian Liddell-Grainger;10;Somerset;89294;32111;16663;6332;2102;1059;0;0;0
72
+ Brigg and Goole;Andrew Percy;5;Humber area;66069;27219;14856;836;1596;550;0;0;0
73
+ Brighton Kemptown;Lloyd Russell-Moyle;12;East Sussex;67893;18835;28703;1457;0;0;0;0;212
74
+ Brighton Pavilion;Caroline Lucas;12;East Sussex;75486;11082;15450;0;630;30139;0;0;376
75
+ Bristol East;Kerry McCarthy;10;Bristol area;72414;17453;30847;1389;0;1110;0;0;0
76
+ Bristol North West;Darren Jones;10;Bristol area;75431;22639;27400;2814;0;1243;0;0;0
77
+ Bristol South;Karin Smyth;10;Bristol area;83009;16679;32666;1821;1672;1428;0;0;116
78
+ Bristol West;Thangam Debbonaire;10;Bristol area;92986;9877;47213;5201;0;9216;0;0;101
79
+ Broadland;Keith Simpson;9;Norfolk;77334;32406;16590;4449;1594;932;0;0;0
80
+ Bromley and Chislehurst;Bob Neill;11;Bromley;65113;25175;15585;3369;1383;1150;0;0;0
81
+ Bromsgrove;Sajid Javid;7;Hereford and Worcestershire;73571;33493;16920;2488;0;1139;0;0;0
82
+ Broxbourne;Charles Walker;9;Hertfordshire;73502;29515;13723;1481;1918;848;0;0;0
83
+ Broxtowe;Anna Soubry;8;Nottinghamshire;74017;25983;25120;2247;1477;681;0;0;0
84
+ Buckingham;John Bercow;12;Buckinghamshire;79616;34299;0;0;4168;8574;0;5638;0
85
+ Burnley;Julie Cooper;4;Lancashire;64714;12479;18832;6046;2472;461;0;0;0
86
+ Burton;Andrew Griffiths;7;Staffordshire;73954;28936;18889;1262;0;824;0;0;0
87
+ Bury North;James Frith;4;Western Manchester;67587;21308;25683;912;0;0;0;0;0
88
+ Bury South;Ivan Lewis;4;Western Manchester;73723;21200;27165;1065;1316;0;0;0;244
89
+ Bury St Edmunds;Jo Churchill;9;Suffolk;87758;36794;18353;3565;0;2596;0;0;852
90
+ Calder Valley;Craig Whittaker;5;West Yorkshire;79045;26790;26181;1952;1466;631;0;1034;0
91
+ Camberwell and Peckham;Harriet Harman;11;Southwark;85586;7349;44665;3413;0;1627;0;0;358
92
+ Camborne and Redruth;George Eustice;10;Cornwall;67462;23001;21424;2979;0;1052;0;0;0
93
+ Cambridge;Daniel Zeichner;9;Cambridgeshire;78003;9133;29032;16371;0;1265;0;0;133
94
+ Cambridgeshire North East;Stephen Barclay;9;Cambridgeshire;84404;34340;13070;2383;2174;1024;0;0;293
95
+ Cambridgeshire North West;Shailesh Vara;9;Cambridgeshire;93223;37529;19521;3168;2518;1255;0;0;0
96
+ Cambridgeshire South;Heidi Allen;9;Cambridgeshire;85257;33631;17679;12102;0;1512;0;0;0
97
+ Cambridgeshire South East;Lucy Frazer;9;Cambridgeshire;86121;33601;17443;11958;0;0;0;0;0
98
+ Cannock Chase;Amanda Milling;7;Staffordshire;74540;26318;17927;794;2018;815;0;0;0
99
+ Canterbury;Rosie Duffield;12;Kent;78137;25385;25572;4561;0;1282;0;0;0
100
+ Carlisle;John Stevenson;4;Cumbria;62294;21472;18873;1256;1455;0;0;0;0
101
+ Carshalton and Wallington;Tom Brake;11;Sutton;70849;19450;9360;20819;0;501;0;434;189
102
+ Castle Point;Rebecca Harris;9;Essex;69470;30076;11204;1049;2381;0;0;0;0
103
+ Charnwood;Edward Argar;8;Leicestershire;78071;33318;16977;2052;1471;1036;0;0;322
104
+ Chatham and Aylesford;Tracey Crouch;12;Kent;70419;25587;15129;1116;2225;573;0;0;260
105
+ Cheadle;Mary Robinson;4;Eastern Manchester;72780;24331;10417;19824;0;0;0;0;0
106
+ Chelmsford;Vicky Ford;9;Essex;81045;30525;16953;6916;1645;821;0;0;0
107
+ Chelsea and Fulham;Greg Hands;11;Hammersmith and Fulham;63728;22179;13991;4627;524;807;0;0;0
108
+ Cheltenham;Alex Chalk;10;Gloucestershire;78875;26615;5408;24046;0;943;0;0;0
109
+ Chesham and Amersham;Cheryl Gillan;12;Buckinghamshire;71465;33514;11374;7179;1525;1660;0;0;0
110
+ Chester, City of;Chris Matheson;4;Cheshire;72859;22847;32023;1551;0;0;0;0;0
111
+ Chesterfield;Toby Perkins;8;Derbyshire;72063;16661;26266;2612;1611;777;0;0;0
112
+ Chichester;Gillian Keegan;12;West Sussex;84996;36032;13411;6749;1650;1992;0;0;84
113
+ Chingford and Woodford Green;Iain Duncan Smith;11;Waltham Forest;66078;23076;20638;2043;0;1204;0;0;0
114
+ Chippenham;Michelle Donelan;10;Wiltshire;76432;31267;11236;14637;0;0;0;0;0
115
+ Chipping Barnet;Theresa Villiers;11;Barnet;77020;25679;25326;3012;0;1406;0;0;0
116
+ Chorley;Lindsay Hoyle;4;Lancashire;76404;23233;30745;1126;0;530;0;0;0
117
+ Christchurch;Christopher Chope;10;Dorset;70329;35230;10059;4020;0;1324;0;0;0
118
+ Cities of London and Westminster;Mark Field;11;City of Westminster;61533;18005;14857;4270;426;821;0;0;275
119
+ Clacton;Giles Watling;9;Essex;69263;27031;11203;887;3357;719;0;449;499
120
+ Cleethorpes;Martin Vickers;5;Humber area;73047;27321;16921;1110;2022;470;0;0;0
121
+ Colchester;Will Quince;9;Essex;79996;24565;18888;9087;0;828;0;0;177
122
+ Colne Valley;Thelma Walker;5;West Yorkshire;84381;27903;28818;2494;0;892;0;0;313
123
+ Congleton;Fiona Bruce;4;Cheshire;76694;31830;19211;2902;1289;999;0;0;0
124
+ Copeland;Trudy Harrison;4;Cumbria;61751;21062;19367;1404;1094;0;0;0;0
125
+ Corby;Tom Pursglove;8;Northamptonshire;82439;29534;26844;1545;1495;579;0;0;0
126
+ Cornwall North;Scott Mann;10;Cornwall;68850;25835;6151;18635;0;0;0;0;323
127
+ Cornwall South East;Sheryll Murray;10;Cornwall;71896;29493;12050;10336;0;1335;0;0;0
128
+ Cotswolds, The;Geoffrey Clifton-Brown;10;Gloucestershire;80446;36201;10702;9748;1197;1747;0;0;107
129
+ Coventry North East;Colleen Fletcher;7;Coventry and Solihull;75792;13919;29499;1157;1350;502;0;0;81
130
+ Coventry North West;Geoffrey Robinson;7;Coventry and Solihull;75214;18314;26894;1286;1525;666;0;1164;0
131
+ Coventry South;James Cunningham;7;Coventry and Solihull;70754;17927;25874;1343;1037;604;0;0;224
132
+ Crawley;Henry Smith;12;West Sussex;73424;25426;22969;1878;0;0;0;0;0
133
+ Crewe and Nantwich;Laura Smith;4;Cheshire;78895;25880;25928;1334;1885;0;0;0;0
134
+ Croydon Central;Sarah Jones;11;Croydon;80045;24221;29873;1083;1040;626;0;0;248
135
+ Croydon North;Steve Reed;11;Croydon;87461;11848;44213;1656;753;983;0;0;170
136
+ Croydon South;Chris Philp;11;Croydon;83518;33334;21928;3541;1116;1125;0;0;213
137
+ Dagenham and Rainham;Jon Cruddas;11;Barking and Dagenham;70620;18306;22958;465;3246;544;0;0;324
138
+ Darlington;Jenny Chapman;3;Durham;66341;19401;22681;1031;1180;524;0;0;0
139
+ Dartford;Gareth Johnson;12;Kent;78506;31210;18024;1428;2544;807;0;0;211
140
+ Daventry;Chris Heaton-Harris;8;Northamptonshire;75335;35464;13730;4015;1497;957;0;0;0
141
+ Denton and Reddish;Andrew Gwynne;4;Eastern Manchester;65751;11084;25161;853;1798;486;0;0;217
142
+ Derby North;Chris Williamson;8;Derbyshire;69919;21607;23622;2262;1181;0;0;0;0
143
+ Derby South;Margaret Beckett;8;Derbyshire;69918;15182;26430;1229;2011;454;0;0;0
144
+ Derbyshire Dales;Patrick McLoughlin;8;Derbyshire;64418;29744;15417;3126;0;1002;0;0;282
145
+ Derbyshire Mid;Pauline Latham;8;Derbyshire;67466;29513;17897;1793;0;1168;0;0;0
146
+ Derbyshire North East;Lee Rowley;8;Derbyshire;72097;24784;21923;1390;1565;719;0;0;0
147
+ Derbyshire South;Heather Wheeler;8;Derbyshire;76341;30907;18937;1870;0;917;0;0;0
148
+ Devizes;Claire Perry;10;Wiltshire;72184;31744;10608;4706;1706;1606;0;0;223
149
+ Devon Central;Mel Stride;10;Devon;74370;31278;15598;6770;1326;1531;0;871;470
150
+ Devon East;Hugo Swire;10;Devon;82382;29306;6857;1468;1203;0;0;21270;278
151
+ Devon North;Peter Heaton-Jones;10;Devon;75784;25517;7063;21185;1187;753;0;0;0
152
+ Devon South West;Gary Streeter;10;Devon;71262;31634;15818;2732;1540;1133;0;0;0
153
+ Devon West and Torridge;Geoffrey Cox;10;Devon;80527;33612;12926;10526;0;1622;0;0;794
154
+ Dewsbury;Paula Sherriff;5;West Yorkshire;81338;25493;28814;1214;0;1024;0;0;0
155
+ Don Valley;Caroline Flint;5;South Yorkshire;73988;19182;24351;856;0;0;0;1599;0
156
+ Doncaster Central;Rosie Winterton;5;South Yorkshire;71716;14784;24915;973;0;0;0;1346;1006
157
+ Doncaster North;Ed Miliband;5;South Yorkshire;72372;11687;25711;706;2738;0;0;741;729
158
+ Dorset Mid and Poole North;Michael Tomlinson;10;Dorset;65054;28585;6423;13246;0;0;0;0;0
159
+ Dorset North;Simon Hoare;10;Dorset;76385;36169;10392;7556;0;1607;0;0;0
160
+ Dorset South;Richard Drax;10;Dorset;72323;29135;17440;3053;0;2278;0;0;0
161
+ Dorset West;Oliver Letwin;10;Dorset;79043;33081;10896;13990;0;1631;0;0;0
162
+ Dover;Charlie Elphicke;12;Kent;74564;27211;20774;1336;1722;923;0;0;0
163
+ Dudley North;Ian Austin;7;Black Country;62043;18068;18090;368;2144;240;0;0;0
164
+ Dudley South;Mike Wood;7;Black Country;61323;21588;13858;625;1791;382;0;0;0
165
+ Dulwich and West Norwood;Helen Hayes;11;Lambeth;77947;10940;39096;4475;0;1408;0;0;224
166
+ Durham North;Kevan Jones;3;Durham;66970;12978;25917;1981;2408;0;0;0;0
167
+ Durham North West;Laura Pidcock;3;Durham;71982;16516;25308;3398;2150;530;0;0;0
168
+ Durham, City of;Roberta Blackman-Woods;3;Durham;71132;14408;26772;4787;1116;797;0;0;444
169
+ Ealing Central and Acton;Rupa Huq;11;Ealing;74200;19230;33037;3075;0;0;0;0;0
170
+ Ealing North;Steve Pound;11;Ealing;74764;14942;34635;1275;921;743;0;0;0
171
+ Ealing Southall;Virendra Sharma;11;Ealing;65188;9630;31720;1892;504;1037;0;0;362
172
+ Easington;Grahame Morris;3;Durham;62385;8260;23152;460;1727;410;0;2355;0
173
+ East Ham;Stephen Timms;11;Newham;83827;7241;47124;656;697;474;0;0;441
174
+ Eastbourne;Stephen Lloyd;12;East Sussex;78754;25315;4671;26924;0;510;0;0;0
175
+ Eastleigh;Mims Davies;12;Hampshire;81213;28889;11454;14710;1477;750;0;0;0
176
+ Eddisbury;Antoinette Sandbach;4;Cheshire;70272;29192;17250;2804;1109;785;0;0;179
177
+ Edmonton;Kate Osamor;11;Enfield;65705;10106;31221;858;860;633;0;0;0
178
+ Ellesmere Port and Neston;Justin Madders;4;Cheshire;68666;18747;30137;892;821;342;0;0;0
179
+ Elmet and Rothwell;Alec Shelbrooke;5;West Yorkshire;80291;32352;22547;2606;0;995;0;1042;0
180
+ Eltham;Clive Efford;11;Greenwich;64474;18832;25128;1457;0;0;0;0;738
181
+ Enfield North;Joan Ryan;11;Enfield;68454;17930;28177;1036;848;574;0;0;0
182
+ Enfield Southgate;Bambos Charalambous;11;Enfield;65137;20634;24989;1925;0;780;0;0;0
183
+ Epping Forest;Eleanor Laing;9;Essex;74737;31462;13219;2884;1871;1233;0;0;110
184
+ Epsom and Ewell;Chris Grayling;12;Surrey;80029;35313;14838;7401;0;1714;0;0;0
185
+ Erewash;Maggie Throup;8;Derbyshire;72991;25939;21405;1243;0;675;0;0;519
186
+ Erith and Thamesmead;Teresa Pearce;11;Bexley;69724;15571;25585;750;1728;507;0;0;323
187
+ Esher and Walton;Dominic Raab;12;Surrey;80938;35071;11773;10374;1034;1074;0;0;516
188
+ Exeter;Ben Bradshaw;10;Devon;77329;18219;34336;1562;0;1027;0;0;279
189
+ Fareham;Suella Fernandes;12;Hampshire;79495;35915;14360;3896;1541;1302;0;0;0
190
+ Faversham and Kent Mid;Helen Whately;12;Kent;76008;30390;12977;3249;1702;1431;0;0;0
191
+ Feltham and Heston;Seema Malhotra;11;Hounslow;81707;16859;32462;1387;1510;809;0;0;0
192
+ Filton and Bradley Stoke;Jack Lopresti;10;Bristol area;72569;25331;21149;3052;0;1162;0;0;0
193
+ Finchley and Golders Green;Mike Freer;11;Barnet;73138;24599;22942;3463;462;919;0;0;0
194
+ Folkestone and Hythe;Damian Collins;12;Kent;84090;32197;16786;4222;2565;2498;0;0;607
195
+ Forest of Dean;Mark Harper;10;Gloucestershire;70898;28096;18594;2029;1237;1241;0;0;570
196
+ Fylde;Mark Menzies;4;Lancashire;70324;27334;15529;2341;0;1263;0;0;0
197
+ Gainsborough;Edward Leigh;8;Lincolnshire;75893;31790;14767;3630;0;1238;0;0;0
198
+ Garston and Halewood;Maria Eagle;4;Merseyside;75248;9450;41599;1723;0;750;0;0;0
199
+ Gateshead;Ian Mearns;3;Newcastle area;65186;10076;27426;1709;2281;611;0;0;0
200
+ Gedling;Vernon Coaker;8;Nottinghamshire;71221;22139;26833;1052;1143;515;0;0;0
201
+ Gillingham and Rainham;Rehman Chishti;12;Kent;72093;27091;17661;1372;2097;520;0;0;127
202
+ Gloucester;Richard Graham;10;Gloucestershire;82963;27208;21688;2716;1495;754;0;0;210
203
+ Gosport;Caroline Dinenage;12;Hampshire;73886;30647;13436;2328;1790;1024;0;0;256
204
+ Grantham and Stamford;Nick Boles;8;Lincolnshire;81762;35090;14996;3120;1745;782;0;860;0
205
+ Gravesham;Adam Holloway;12;Kent;72948;27237;17890;1210;1742;723;0;0;195
206
+ Great Grimsby;Melanie Onn;5;Humber area;61743;14980;17545;954;1648;0;0;0;394
207
+ Great Yarmouth;Brandon Lewis;9;Norfolk;71408;23901;15928;987;2767;563;0;0;0
208
+ Greenwich and Woolwich;Matthew Pennycook;11;Greenwich;77190;13501;34215;3785;0;1605;0;0;0
209
+ Guildford;Anne Milton;12;Surrey;75454;30295;10545;13255;0;1152;0;0;262
210
+ Hackney North and Stoke Newington;Diane Abbott;11;Hackney;83955;7126;42265;3817;0;2606;0;0;484
211
+ Hackney South and Shoreditch;Meg Hillier;11;Hackney;82004;6043;43974;3168;0;1522;0;0;647
212
+ Halesowen and Rowley Regis;James Morris;7;Black Country;68856;23012;17759;859;2126;440;0;0;183
213
+ Halifax;Holly Lynch;5;West Yorkshire;71224;20131;25507;1070;1568;0;0;0;0
214
+ Haltemprice and Howden;David Davis;5;Humber area;71520;31355;15950;2482;0;711;0;942;0
215
+ Halton;Derek Twigg;4;Cheshire;73457;10710;36115;896;1488;0;0;0;309
216
+ Hammersmith;Andy Slaughter;11;Hammersmith and Fulham;72803;14724;33375;2802;507;800;0;0;44
217
+ Hampshire East;Damian Hinds;12;Hampshire;74148;35263;9411;8403;0;1760;0;0;571
218
+ Hampshire North East;Ranil Jayawardena;12;Hampshire;75476;37754;9982;6987;1061;1476;0;0;367
219
+ Hampshire North West;Kit Malthouse;12;Hampshire;81430;36471;13792;5708;1467;1334;0;0;0
220
+ Hampstead and Kilburn;Tulip Siddiq;11;Camden;82957;18904;34464;4100;0;742;0;0;197
221
+ Harborough;Neil O'Brien;8;Leicestershire;78647;30135;17706;7286;1361;1110;0;0;0
222
+ Harlow;Robert Halfon;9;Essex;67697;24230;17199;970;1787;660;0;0;0
223
+ Harrogate and Knaresborough;Andrew Jones;5;North Yorkshire;77265;31477;11395;13309;0;0;0;0;559
224
+ Harrow East;Bob Blackman;11;Harrow;71757;25129;23372;1573;0;771;0;0;0
225
+ Harrow West;Gareth Thomas;11;Harrow;69798;17326;30640;1267;470;652;0;0;0
226
+ Hartlepool;Mike Hill;3;Teesside;70718;14319;21969;746;4801;0;0;0;0
227
+ Harwich and North Essex;Bernard Jenkin;9;Essex;71294;29921;15565;2787;1685;1042;0;0;141
228
+ Hastings and Rye;Amber Rudd;12;East Sussex;78298;25668;25322;1885;1479;0;0;0;412
229
+ Havant;Alan Mak;12;Hampshire;72464;27676;11720;2801;2011;1122;0;0;984
230
+ Hayes and Harlington;John McDonnell;11;Hillingdon;73268;13681;31796;601;1153;571;0;0;0
231
+ Hazel Grove;William Wragg;4;Eastern Manchester;62684;20047;9036;14533;0;516;0;0;0
232
+ Hemel Hempstead;Mike Penning;9;Hertfordshire;75011;28735;19290;3233;0;1024;0;0;0
233
+ Hemsworth;Jon Trickett;5;West Yorkshire;71870;15566;25740;912;2591;0;0;1135;0
234
+ Hendon;Matthew Offord;11;Barnet;76329;25078;24006;1985;568;578;0;0;0
235
+ Henley;John Howell;12;Oxfordshire;74987;33749;11455;8485;1154;1864;0;0;392
236
+ Hereford and South Herefordshire;Jesse Norman;7;Hereford and Worcestershire;71088;27004;11991;3556;1153;1220;0;5560;0
237
+ Herefordshire North;Bill Wiggin;7;Hereford and Worcestershire;67751;31097;9495;5874;0;2771;0;0;940
238
+ Hertford and Stortford;Mark Prisk;9;Hertfordshire;82429;36184;17149;4845;0;1814;0;0;0
239
+ Hertfordshire North East;Oliver Heald;9;Hertfordshire;75967;32587;15752;4276;0;2965;0;0;0
240
+ Hertfordshire South West;David Gauke;9;Hertfordshire;80293;35128;15578;7078;1293;1576;0;0;0
241
+ Hertsmere;Oliver Dowden;9;Hertfordshire;73554;31928;14977;2794;1564;990;0;0;0
242
+ Hexham;Guy Opperman;3;Northumberland;61012;24996;15760;3285;930;1253;0;0;0
243
+ Heywood and Middleton;Liz McInnes;4;Eastern Manchester;79901;18961;26578;1087;3239;0;0;0;0
244
+ High Peak;Ruth George;8;Derbyshire;73254;24431;26753;2669;0;0;0;0;0
245
+ Hitchin and Harpenden;Bim Afolami;9;Hertfordshire;75916;31189;19158;6236;0;1329;0;0;871
246
+ Holborn and St Pancras;Keir Starmer;11;Camden;88088;10834;41343;4020;727;1980;0;0;93
247
+ Hornchurch and Upminster;Julia Dockerill;11;Havering;80821;33750;16027;1371;3502;1077;0;0;380
248
+ Hornsey and Wood Green;Catherine West;11;Haringey;79944;9246;40738;10000;429;1181;0;551;148
249
+ Horsham;Jeremy Quin;12;West Sussex;82773;36906;13422;7644;1533;1844;0;0;638
250
+ Houghton and Sunderland South;Bridget Phillipson;3;Newcastle area;68123;12324;24665;908;2379;725;0;0;479
251
+ Hove;Peter Kyle;12;East Sussex;74236;18185;36942;1311;0;971;0;0;187
252
+ Huddersfield;Barry Sheerman;5;West Yorkshire;67033;14465;26470;1155;0;1395;0;0;349
253
+ Hull East;Karl Turner;5;Humber area;65959;10959;21355;1258;2573;493;0;0;0
254
+ Hull North;Diana Johnson;5;Humber area;64666;9363;23685;1869;1601;644;0;0;0
255
+ Hull West and Hessle;Emma Hardy;5;Humber area;60181;10317;18342;2210;1399;332;0;1898;67
256
+ Huntingdon;Jonathan Djanogly;9;Cambridgeshire;84320;32915;18440;5090;2180;1095;0;0;0
257
+ Hyndburn;Graham Jones;4;Lancashire;73110;18305;24120;824;1953;0;0;0;0
258
+ Ilford North;Wes Streeting;11;Redbridge;72997;20950;30589;1034;0;0;0;0;368
259
+ Ilford South;Mike Gapes;11;Redbridge;85358;12077;43724;772;477;542;0;0;65
260
+ Ipswich;Sandy Martin;9;Suffolk;74799;23393;24224;1187;1372;840;0;0;121
261
+ Isle of Wight;Bob Seely;12;Hampshire;110697;38190;17121;2740;1921;12915;0;1592;0
262
+ Islington North;Jeremy Corbyn;11;Islington;74831;6871;40086;4946;413;2229;0;0;383
263
+ Islington South and Finsbury;Emily Thornberry;11;Islington;69534;9925;30188;5809;929;1198;0;0;0
264
+ Jarrow;Stephen Hepburn;3;Newcastle area;64828;10757;28020;1163;2338;745;0;0;0
265
+ Keighley;John Grogan;5;West Yorkshire;71429;23817;24066;1226;1291;790;0;0;534
266
+ Kenilworth and Southam;Jeremy Wright;7;Warwickshire;66323;31207;13121;4921;929;1133;0;0;0
267
+ Kensington;Emma Dent Coad;11;Kensington and Chelsea;60594;16313;16333;4724;0;767;0;0;540
268
+ Kettering;Philip Hollobone;8;Northamptonshire;71523;28616;18054;1618;0;1116;0;0;0
269
+ Kingston and Surbiton;Ed Davey;11;Kingston Upon Thames;81584;23686;9203;27810;675;536;0;0;268
270
+ Kingswood;Chris Skidmore;10;Bristol area;69426;26754;19254;1749;0;984;0;0;0
271
+ Knowsley;George Howarth;4;Merseyside;81751;5137;47351;1189;1285;521;0;0;0
272
+ Lancashire West;Rosie Cooper;4;Lancashire;73258;20341;32030;1069;0;680;0;0;269
273
+ Lancaster and Fleetwood;Cat Smith;4;Lancashire;67171;18681;25342;1170;0;796;0;0;0
274
+ Leeds Central;Hilary Benn;5;West Yorkshire;89537;9755;33453;1063;2056;1189;0;0;157
275
+ Leeds East;Richard Burgon;5;West Yorkshire;65950;12676;25428;739;1742;434;0;0;422
276
+ Leeds North East;Fabian Hamilton;5;West Yorkshire;70112;16445;33436;1952;0;680;0;0;486
277
+ Leeds North West;Alex Sobel;5;West Yorkshire;68152;9097;20416;16192;0;582;0;0;0
278
+ Leeds West;Rachel Reeves;5;West Yorkshire;67955;11048;27013;905;1815;1023;0;0;425
279
+ Leicester East;Keith Vaz;8;Leicestershire;77788;12688;35116;1343;0;1070;0;1753;454
280
+ Leicester South;Jon Ashworth;8;Leicestershire;75534;10896;37157;1287;0;1177;0;0;0
281
+ Leicester West;Liz Kendall;8;Leicestershire;64834;11763;22823;792;1406;607;0;0;121
282
+ Leicestershire North West;Andrew Bridgen;8;Leicestershire;75362;31153;17867;3420;0;1101;0;0;0
283
+ Leicestershire South;Alberto Costa;8;Leicestershire;78895;34795;16164;2403;2235;1092;0;0;0
284
+ Leigh;Joanne Platt;4;Western Manchester;76211;16793;26347;951;2783;0;0;0;0
285
+ Lewes;Maria Caulfield;12;East Sussex;70947;26820;6060;21312;0;0;0;0;0
286
+ Lewisham Deptford;Vicky Foxcroft;11;Lewisham;78472;7562;42461;2911;0;1640;0;0;538
287
+ Lewisham East;Heidi Alexander;11;Lewisham;68126;10859;32072;2086;798;803;0;0;583
288
+ Lewisham West and Penge;Ellie Reeves;11;Lewisham;72902;12249;35411;3317;700;1144;0;0;375
289
+ Leyton and Wanstead;John Cryer;11;Waltham Forest;65285;9627;32234;2961;0;1351;0;0;0
290
+ Lichfield;Michael Fabricant;7;Staffordshire;74430;34018;15437;2653;0;1416;0;0;0
291
+ Lincoln;Karen Lee;8;Lincolnshire;73111;21795;23333;1284;1287;583;0;0;436
292
+ Liverpool Riverside;Louise Ellman;4;Merseyside;76332;4652;40599;1187;0;1582;0;0;0
293
+ Liverpool Walton;Dan Carden;4;Merseyside;62738;3624;36175;638;0;523;0;1237;0
294
+ Liverpool Wavertree;Luciana Berger;4;Merseyside;62411;5251;34717;2858;0;598;0;0;216
295
+ Liverpool West Derby;Stephen Twigg;4;Merseyside;65164;4463;37371;545;0;329;0;2150;305
296
+ Loughborough;Nicky Morgan;8;Leicestershire;79607;27022;22753;1937;1465;971;0;0;0
297
+ Louth and Horncastle;Victoria Atkins;8;Lincolnshire;79006;33733;14092;1990;2460;0;0;0;496
298
+ Ludlow;Philip Dunne;7;Shropshire;68034;31433;12147;5336;0;1054;0;0;0
299
+ Luton North;Kelvin Hopkins;9;Bedfordshire;66811;15401;29765;808;0;648;0;0;0
300
+ Luton South;Gavin Shuker;9;Bedfordshire;67188;14879;28804;1056;795;439;0;0;160
301
+ Macclesfield;David Rutley;4;Cheshire;75228;28595;19987;3350;0;1213;0;0;1162
302
+ Maidenhead;Theresa May;12;Berkshire;76276;37718;11261;6540;871;907;0;282;660
303
+ Maidstone and The Weald;Helen Grant;12;Kent;75334;29136;11432;8455;1613;888;0;0;172
304
+ Makerfield;Yvonne Fovargue;4;Western Manchester;74259;14703;28245;1322;0;0;0;2663;0
305
+ Maldon;John Whittingdale;9;Essex;66960;34111;10681;2181;1899;1073;0;0;257
306
+ Manchester Central;Lucy Powell;4;Central Manchester;90261;7045;38490;1678;1469;846;0;0;192
307
+ Manchester Gorton;Mohammed Khan;4;Central Manchester;75362;3355;35085;2597;952;1038;0;2615;311
308
+ Manchester Withington;Jeff Smith;4;Central Manchester;74553;5530;38424;8549;0;865;0;0;234
309
+ Mansfield;Ben Bradley;8;Nottinghamshire;77811;23392;22335;697;2654;0;0;1079;0
310
+ Meon Valley;George Hollingbery;12;Hampshire;74246;35624;9932;5900;1435;1301;0;0;0
311
+ Meriden;Caroline Spelman;7;Coventry and Solihull;81437;33873;14675;2663;2016;1416;0;0;0
312
+ Middlesbrough;Andy McDonald;3;Teesside;61114;9531;23404;368;1452;250;0;632;0
313
+ Middlesbrough South and Cleveland East;Simon Clarke;3;Teesside;72336;23643;22623;1354;0;0;0;0;0
314
+ Milton Keynes North;Mark Lancaster;12;Buckinghamshire;89272;30307;28392;2499;1390;1107;0;0;169
315
+ Milton Keynes South;Iain Stewart;12;Buckinghamshire;92494;30652;28927;1895;1833;1179;0;0;0
316
+ Mitcham and Morden;Siobhain McDonagh;11;Merton;68705;11664;33039;1494;1054;644;0;0;223
317
+ Mole Valley;Paul Beresford;12;Surrey;74545;35092;7864;10955;1352;1463;0;0;0
318
+ Morecambe and Lunesdale;David Morris;4;Lancashire;66838;21773;20374;1699;1333;478;0;0;0
319
+ Morley and Outwood;Andrea Jenkyns;5;West Yorkshire;76495;26550;24446;1361;0;0;0;0;0
320
+ New Forest East;Julian Lewis;12;Hampshire;72602;32162;10167;7786;0;1251;0;0;0
321
+ New Forest West;Desmond Swayne;12;Hampshire;68787;33170;9739;4781;0;1454;0;0;483
322
+ Newark;Robert Jenrick;8;Nottinghamshire;75526;34493;16344;2786;1419;0;0;0;0
323
+ Newbury;Richard Benyon;12;Berkshire;82923;37399;8596;13019;0;1531;0;0;304
324
+ Newcastle upon Tyne Central;Chi Onwurah;3;Newcastle area;55571;9134;24071;1812;1482;595;0;0;0
325
+ Newcastle upon Tyne East;Nicholas Brown;3;Newcastle area;62333;8866;28127;2574;1315;755;0;0;0
326
+ Newcastle upon Tyne North;Catherine McKinnell;3;Newcastle area;66312;16380;26729;2533;1780;513;0;0;353
327
+ Newcastle-under-Lyme;Paul Farrelly;7;Staffordshire;65540;21094;21124;1624;0;0;0;0;0
328
+ Newton Abbot;Anne Marie Morris;10;Devon;71722;28635;11475;10601;0;926;0;0;0
329
+ Norfolk Mid;George Freeman;9;Norfolk;80026;32828;16742;2848;2092;1158;0;0;0
330
+ Norfolk North;Norman Lamb;9;Norfolk;69263;21748;5180;25260;0;0;0;0;0
331
+ Norfolk North West;Henry Bellingham;9;Norfolk;72062;29408;15620;1393;1539;851;0;0;0
332
+ Norfolk South;Richard Bacon;9;Norfolk;83056;35580;18902;5074;0;1555;0;0;0
333
+ Norfolk South West;Elizabeth Truss;9;Norfolk;77874;32894;14582;2365;2575;0;0;0;0
334
+ Normanton, Pontefract and Castleford;Yvette Cooper;5;West Yorkshire;81641;14769;29268;693;3030;0;0;1431;0
335
+ Northampton North;Michael Ellis;8;Northamptonshire;58183;19065;18258;1015;1404;636;0;0;0
336
+ Northampton South;Andrew Lewer;8;Northamptonshire;60993;19231;18072;1405;1630;696;0;0;0
337
+ Northamptonshire South;Andrea Leadsom;8;Northamptonshire;85756;40599;17759;3623;1363;1357;0;0;297
338
+ Norwich North;Chloe Smith;9;Norfolk;66924;21900;21393;1480;0;782;0;0;340
339
+ Norwich South;Clive Lewis;9;Norfolk;74182;15715;31311;2841;0;1492;0;0;0
340
+ Nottingham East;Chris Leslie;8;Nottinghamshire;61762;8512;28102;1003;817;698;0;0;195
341
+ Nottingham North;Alex Norris;8;Nottinghamshire;66894;11907;23067;674;2133;538;0;0;0
342
+ Nottingham South;Lilian Greenwood;8;Nottinghamshire;71178;14851;30013;1564;1103;598;0;0;0
343
+ Nuneaton;Marcus Jones;7;Warwickshire;69201;23755;19016;914;1619;763;0;0;0
344
+ Old Bexley and Sidcup;James Brokenshire;11;Bexley;66005;29545;14079;1572;1619;820;0;0;407
345
+ Oldham East and Saddleworth;Debbie Abrahams;4;Eastern Manchester;72223;17447;25629;1683;2278;0;0;0;0
346
+ Oldham West and Royton;Jim McMahon;4;Eastern Manchester;72418;12648;29846;956;1899;439;0;0;0
347
+ Orpington;Jo Johnson;11;Bromley;67906;31762;12301;3315;2023;1060;0;0;0
348
+ Oxford East;Anneliese Dodds;12;Oxfordshire;78360;11834;35118;4904;0;1785;0;0;255
349
+ Oxford West and Abingdon;Layla Moran;12;Oxfordshire;79289;25440;7573;26256;751;0;0;0;0
350
+ Pendle;Andrew Stephenson;4;Lancashire;64963;21986;20707;941;0;502;0;718;0
351
+ Penistone and Stocksbridge;Angela Smith;5;South Yorkshire;71293;21485;22807;2042;3453;0;0;0;0
352
+ Penrith and The Border;Rory Stewart;4;Cumbria;65139;28078;12168;3641;1142;1029;0;0;412
353
+ Peterborough;Fiona Onasanya;9;Cambridgeshire;71522;22343;22950;1597;0;848;0;0;0
354
+ Plymouth Moor View;Johnny Mercer;10;Devon;69342;23567;18548;917;1849;536;0;0;0
355
+ Plymouth Sutton and Devonport;Luke Pollard;10;Devon;76584;20476;27283;1244;1364;604;0;0;237
356
+ Poole;Robert Syms;10;Dorset;73811;28888;14679;4433;0;1299;0;0;551
357
+ Poplar and Limehouse;Jim Fitzpatrick;11;Tower Hamlets;87274;11846;39558;3959;849;989;0;1477;136
358
+ Portsmouth North;Penny Mordaunt;12;Hampshire;71374;25860;15895;2608;1926;791;0;0;130
359
+ Portsmouth South;Stephen Morgan;12;Hampshire;69785;16736;18290;7699;1129;712;0;0;0
360
+ Preston;Mark Hendrick;4;Lancashire;57791;8487;24210;1204;1348;348;0;0;0
361
+ Pudsey;Stuart Andrew;5;West Yorkshire;72622;25550;25219;1761;0;0;0;1138;291
362
+ Putney;Justine Greening;11;Wandsworth;65026;20679;19125;5448;477;1107;0;0;58
363
+ Rayleigh and Wickford;Mark Francois;9;Essex;78556;36914;13464;1557;2326;1062;0;0;0
364
+ Reading East;Matt Rodda;12;Berkshire;75522;23344;27093;3378;0;1093;0;0;330
365
+ Reading West;Alok Sharma;12;Berkshire;74518;25311;22435;3041;0;979;0;0;0
366
+ Redcar;Anna Turley;3;Teesside;66836;14138;23623;2849;1950;0;0;0;0
367
+ Redditch;Rachel Maclean;7;Hereford and Worcestershire;64334;23652;16289;1173;1371;380;0;2239;99
368
+ Reigate;Crispin Blunt;12;Surrey;74628;30896;13282;5889;1542;2214;0;0;0
369
+ Ribble South;Seema Kennedy;4;Lancashire;75752;28980;21559;2073;1387;494;0;0;341
370
+ Ribble Valley;Nigel Evans;4;Lancashire;77968;31919;18720;3247;0;1314;0;0;0
371
+ Richmond;Rishi Sunak;5;North Yorkshire;80920;36458;13350;3360;0;1739;0;2106;0
372
+ Richmond Park;Zac Goldsmith;11;Richmond Upon Thames;80025;28588;5773;28543;426;0;0;0;0
373
+ Rochdale;Tony Lloyd;4;Eastern Manchester;78064;14216;29035;4027;1641;0;0;883;242
374
+ Rochester and Strood;Kelly Tolhurst;12;Kent;82702;29232;19382;1189;2893;781;0;0;292
375
+ Rochford and Southend East;James Duddridge;9;Essex;73501;23013;17465;1265;1777;804;0;2924;0
376
+ Romford;Andrew Rosindell;11;Havering;73516;29671;15893;1215;2350;815;0;0;0
377
+ Romsey and Southampton North;Caroline Nokes;12;Hampshire;67186;28668;9614;10662;0;953;0;0;271
378
+ Rossendale and Darwen;Jake Berry;4;Lancashire;72495;25499;22283;1550;0;824;0;0;0
379
+ Rother Valley;Kevin Barron;5;South Yorkshire;75230;19939;23821;1155;3704;869;0;0;0
380
+ Rotherham;Sarah Champion;5;South Yorkshire;63237;10017;21404;1754;3316;0;0;1432;0
381
+ Rugby;Mark Pawsey;7;Warwickshire;72175;27872;19660;2851;0;953;0;0;0
382
+ Ruislip, Northwood and Pinner;Nick Hurd;11;Hillingdon;73425;30555;16575;3813;1171;1268;0;0;0
383
+ Runnymede and Weybridge;Philip Hammond;12;Surrey;74887;31436;13386;3765;1675;1347;0;0;0
384
+ Rushcliffe;Kenneth Clarke;8;Nottinghamshire;74740;30223;22213;2759;1490;1626;0;0;0
385
+ Rutland and Melton;Alan Duncan;8;Leicestershire;78463;36169;13065;4711;1869;1755;0;0;0
386
+ Saffron Walden;Kemi Badenoch;9;Essex;83690;37629;12663;8528;2091;0;0;0;0
387
+ Salford and Eccles;Rebecca Long-Bailey;4;Central Manchester;78082;12036;31168;1286;2320;809;0;0;0
388
+ Salisbury;John Glen;10;Wiltshire;72892;30952;13619;5982;1191;1152;0;0;415
389
+ Scarborough and Whitby;Robert Goodwill;5;North Yorkshire;73593;24401;20966;1354;1682;915;0;680;451
390
+ Scunthorpe;Nic Dakin;5;Humber area;61578;17485;20916;554;1247;0;0;0;0
391
+ Sedgefield;Phil Wilson;3;Durham;63890;16143;22202;797;1763;686;0;0;0
392
+ Sefton Central;Bill Esterson;4;Merseyside;69019;17212;32830;1381;0;656;0;0;0
393
+ Selby and Ainsty;Nigel Adams;5;North Yorkshire;75765;32921;19149;2293;1713;0;0;0;0
394
+ Sevenoaks;Michael Fallon;12;Kent;71061;32644;10727;4280;1894;1673;0;0;0
395
+ Sheffield Brightside and Hillsborough;Gill Furniss;5;South Yorkshire;70344;9050;28193;1061;2645;737;0;0;184
396
+ Sheffield Central;Paul Blomfield;5;South Yorkshire;77560;6215;33963;2465;1060;3848;0;0;326
397
+ Sheffield Hallam;Jared O Mara;5;South Yorkshire;73455;13561;21881;19756;929;823;0;0;70
398
+ Sheffield Heeley;Louise Haigh;5;South Yorkshire;68040;12696;26524;2022;1977;943;0;0;64
399
+ Sheffield South East;Clive Betts;5;South Yorkshire;68945;13722;25520;1432;2820;0;0;0;102
400
+ Sherwood;Mark Spencer;8;Nottinghamshire;76196;27492;22294;1113;1801;664;0;0;0
401
+ Shipley;Philip Davies;5;West Yorkshire;73133;27417;22736;2202;0;0;0;1040;0
402
+ Shrewsbury and Atcham;Daniel Kawczynski;7;Shropshire;79043;29073;22446;4254;1363;1067;0;0;0
403
+ Shropshire North;Owen Paterson;7;Shropshire;80535;33642;17287;2948;0;1722;0;0;0
404
+ Sittingbourne and Sheppey;Gordon Henderson;12;Kent;81715;30911;15700;1392;0;558;0;2133;695
405
+ Skipton and Ripon;Julian Smith;5;North Yorkshire;78108;36425;16440;0;0;3734;0;1539;0
406
+ Sleaford and North Hykeham;Caroline Johnson;8;Lincolnshire;90925;42245;17008;2722;1954;968;0;0;900
407
+ Slough;Tan Dhesi;12;Berkshire;83272;17172;34170;1308;1228;0;0;0;417
408
+ Solihull;Julian Knight;7;Coventry and Solihull;77784;32985;12414;8901;1291;1157;0;0;0
409
+ Somerset North;Liam Fox;10;Bristol area;80538;33605;16502;5982;0;1976;0;3929;0
410
+ Somerset North East;Jacob Rees-Mogg;10;Bristol area;71350;28992;18757;4461;0;1245;0;0;588
411
+ Somerton and Frome;David Warburton;10;Somerset;84435;36231;10998;13325;0;2047;0;0;991
412
+ South Holland and The Deepings;John Hayes;8;Lincolnshire;76381;35179;10282;1433;2185;894;0;0;342
413
+ South Shields;Emma Lewell-Buck;3;Newcastle area;63449;10570;25078;681;3006;1437;0;0;0
414
+ Southampton Itchen;Royston Smith;12;Hampshire;71716;21773;21742;1421;1122;725;0;0;0
415
+ Southampton Test;Alan Whitehead;12;Hampshire;70194;16006;27509;1892;0;0;0;816;680
416
+ Southend West;David Amess;9;Essex;67677;26046;16046;2110;1666;831;0;0;492
417
+ Southport;Damien Moore;4;Merseyside;69400;18541;15627;12661;1127;0;0;0;0
418
+ Spelthorne;Kwasi Kwarteng;12;Surrey;72641;28692;15267;2755;2296;1105;0;0;0
419
+ St Albans;Anne Main;9;Hertfordshire;72811;24571;13137;18462;0;828;0;0;0
420
+ St Austell and Newquay;Steve Double;10;Cornwall;78618;26856;15714;11642;0;0;0;0;0
421
+ St Helens North;Conor McGinn;4;Merseyside;76088;13606;32012;1287;2097;1220;0;0;0
422
+ St Helens South and Whiston;Marie Rimmer;4;Merseyside;79036;11536;35879;2101;1953;1417;0;0;0
423
+ St Ives;Derek Thomas;10;Cornwall;67462;22120;7298;21808;0;0;0;0;0
424
+ Stafford;Jeremy Lefroy;7;Staffordshire;68445;28424;20695;1540;0;1265;0;0;0
425
+ Staffordshire Moorlands;Karen Bradley;7;Staffordshire;66009;25963;15133;1494;0;541;0;1524;0
426
+ Staffordshire South;Gavin Williamson;7;Staffordshire;73453;35656;12923;1348;0;1182;0;0;0
427
+ Stalybridge and Hyde;Jonathan Reynolds;4;Eastern Manchester;71409;16193;24277;996;0;991;0;0;0
428
+ Stevenage;Stephen McPartland;9;Hertfordshire;70765;24798;21414;2032;0;1085;0;0;0
429
+ Stockport;Ann Coffey;4;Eastern Manchester;63425;11805;26282;1778;1088;591;0;0;0
430
+ Stockton North;Alex Cunningham;3;Teesside;66279;15589;24304;646;1834;358;0;0;0
431
+ Stockton South;Paul Williams;3;Teesside;75619;25214;26102;951;1186;371;0;0;0
432
+ Stoke-on-Trent Central;Gareth Snell;7;Staffordshire;58196;13186;17083;680;1608;378;0;0;210
433
+ Stoke-on-Trent North;Ruth Smeeth;7;Staffordshire;72368;18913;21272;916;0;685;0;0;0
434
+ Stoke-on-Trent South;Jack Brereton;7;Staffordshire;66046;20451;19788;808;0;643;0;0;0
435
+ Stone;Bill Cash;7;Staffordshire;67824;31614;14119;2222;1370;707;0;0;0
436
+ Stourbridge;Margot James;7;Black Country;70215;25706;18052;1083;1801;493;0;0;0
437
+ Stratford-on-Avon;Nadhim Zahawi;7;Warwickshire;72609;32657;11699;6357;0;1345;0;0;474
438
+ Streatham;Chuka Umunna;11;Lambeth;78532;11927;38212;3611;349;1696;0;0;0
439
+ Stretford and Urmston;Kate Green;4;Central Manchester;71840;13814;33519;1001;1094;641;0;0;122
440
+ Stroud;David Drew;10;Gloucestershire;82849;29307;29994;2053;1039;1423;0;0;0
441
+ Suffolk Central and Ipswich North;Dan Poulter;9;Suffolk;78116;33992;16807;2431;1635;1659;0;0;0
442
+ Suffolk Coastal;Therese Coffey;9;Suffolk;79366;33713;17701;4048;0;1802;0;0;810
443
+ Suffolk South;James Cartlidge;9;Suffolk;75967;32829;15080;3154;1449;1723;0;0;0
444
+ Suffolk West;Matt Hancock;9;Suffolk;76984;31649;14586;2180;2396;935;0;0;0
445
+ Sunderland Central;Julie Elliott;3;Newcastle area;72728;15059;25056;1777;2209;705;0;0;305
446
+ Surrey East;Sam Gyimah;12;Surrey;82004;35310;11396;6197;2227;1100;0;2973;0
447
+ Surrey Heath;Michael Gove;12;Surrey;80537;37118;12175;6271;0;2258;0;0;0
448
+ Surrey South West;Jeremy Hunt;12;Surrey;78042;33683;7606;5967;1083;0;0;12093;0
449
+ Sussex Mid;Nicholas Soames;12;West Sussex;83747;35082;15409;7855;1251;1571;0;0;464
450
+ Sutton and Cheam;Paul Scully;11;Sutton;70404;26567;10663;13869;0;871;0;0;0
451
+ Sutton Coldfield;Andrew Mitchell;7;Birmingham;75652;32224;16885;2302;0;965;0;0;482
452
+ Swindon North;Justin Tomlinson;10;Wiltshire;80194;29431;21096;1962;1564;858;0;0;0
453
+ Swindon South;Robert Buckland;10;Wiltshire;72391;24809;22345;2079;1291;747;0;0;0
454
+ Tamworth;Christopher Pincher;7;Staffordshire;71319;28748;16401;1961;0;0;0;0;0
455
+ Tatton;Esther McVey;4;Cheshire;67874;28764;13977;4431;0;1024;0;0;920
456
+ Taunton Deane;Rebecca Pow;10;Somerset;85466;33333;9689;17446;1434;1151;0;0;0
457
+ Telford;Lucy Allan;7;Shropshire;68164;21777;21057;954;0;898;0;0;0
458
+ Tewkesbury;Laurence Robertson;10;Gloucestershire;81442;35448;12874;7981;1205;1576;0;0;0
459
+ Thanet North;Roger Gale;12;Kent;72657;27163;16425;1586;2198;825;0;0;128
460
+ Thanet South;Craig Mackinlay;12;Kent;72342;25262;18875;1514;2997;809;0;0;296
461
+ Thirsk and Malton;Kevin Hollinrake;5;North Yorkshire;78670;33572;14571;3859;1532;1100;0;753;542
462
+ Thornbury and Yate;Luke Hall;10;Bristol area;67927;28008;6112;15937;0;633;0;0;0
463
+ Thurrock;Jackie Doyle-Price;9;Essex;78153;19880;19535;798;10112;0;0;0;0
464
+ Tiverton and Honiton;Neil Parish;10;Devon;80731;35471;15670;4639;0;2035;0;0;0
465
+ Tonbridge and Malling;Tom Tugendhat;12;Kent;77234;36218;12710;3787;1857;2335;0;0;0
466
+ Tooting;Rosena Allin-Khan;11;Wandsworth;77960;19236;34694;3057;339;845;0;0;0
467
+ Torbay;Kevin Foster;10;Devon;75936;27141;9310;12858;1213;652;0;0;0
468
+ Totnes;Sarah Wollaston;10;Devon;68913;26972;13495;6466;1240;2097;0;0;0
469
+ Tottenham;David Lammy;11;Haringey;72883;5665;40249;1687;462;1276;0;0;0
470
+ Truro and Falmouth;Sarah Newton;10;Cornwall;74691;25123;21331;8465;897;831;0;0;0
471
+ Tunbridge Wells;Greg Clark;12;Kent;75138;30856;14391;5355;1464;1441;0;0;702
472
+ Twickenham;Vince Cable;11;Richmond Upon Thames;83362;25207;6114;34969;0;0;0;0;0
473
+ Tynemouth;Alan Campbell;3;Newcastle area;77434;20729;32395;1724;1257;629;0;0;124
474
+ Tyneside North;Mary Glindon;3;Newcastle area;78914;14172;33456;1494;2101;669;0;0;0
475
+ Uxbridge and South Ruislip;Boris Johnson;11;Hillingdon;69938;23716;18682;1835;1577;884;0;0;0
476
+ Vauxhall;Kate Hoey;11;Lambeth;81907;10277;31576;11326;0;1152;0;0;711
477
+ Wakefield;Mary Creagh;5;West Yorkshire;70340;20811;22987;943;0;0;0;1176;367
478
+ Wallasey;Angela Eagle;4;Merseyside;67454;11232;34552;772;1160;637;0;0;0
479
+ Walsall North;Eddie Hughes;7;Black Country;67309;18919;16318;586;2295;0;0;0;0
480
+ Walsall South;Valerie Vaz;7;Black Country;67417;16394;25286;587;1805;0;0;0;0
481
+ Walthamstow;Stella Creasy;11;Waltham Forest;68144;6776;38793;1384;0;1190;0;0;0
482
+ Wansbeck;Ian Lavery;3;Northumberland;62099;13903;24338;2015;1483;715;0;0;0
483
+ Wantage;Ed Vaizey;12;Oxfordshire;87735;34459;17079;9234;1284;1546;0;0;0
484
+ Warley;John Spellar;7;Black Country;63724;10521;27004;777;1349;555;0;0;0
485
+ Warrington North;Helen Jones;4;Cheshire;72015;17774;27356;1207;1561;619;0;0;0
486
+ Warrington South;Faisal Rashid;4;Cheshire;85755;27445;29994;3339;0;0;0;0;1217
487
+ Warwick and Leamington;Matt Western;7;Warwickshire;74237;24021;25227;2810;799;1198;0;0;0
488
+ Warwickshire North;Craig Tracey;7;Warwickshire;72277;26860;18350;1028;0;940;0;0;0
489
+ Washington and Sunderland West;Sharon Hodgson;3;Newcastle area;67280;11699;24639;961;2761;514;0;0;0
490
+ Watford;Richard Harrington;9;Hertfordshire;86507;26731;24639;5335;1184;721;0;0;0
491
+ Waveney;Peter Aldous;9;Suffolk;80784;28643;19428;1012;1933;1332;0;0;326
492
+ Wealden;Nus Ghani;12;East Sussex;81425;37027;13399;6281;1798;1959;0;0;0
493
+ Weaver Vale;Mike Amesbury;4;Cheshire;69016;22138;26066;1623;0;786;0;0;0
494
+ Wellingborough;Peter Bone;8;Northamptonshire;79258;30579;18119;1782;1804;956;0;0;0
495
+ Wells;James Heappey;10;Somerset;82449;30488;7129;22906;0;0;0;0;320
496
+ Welwyn Hatfield;Grant Shapps;9;Hertfordshire;72888;26374;19005;3836;1441;835;0;0;178
497
+ Wentworth and Dearne;John Healey;5;South Yorkshire;74890;13744;28547;1656;0;0;0;0;0
498
+ West Bromwich East;Tom Watson;7;Black Country;63833;14951;22664;625;0;533;0;0;325
499
+ West Bromwich West;Adrian Bailey;7;Black Country;65956;14329;18789;333;2320;323;0;0;0
500
+ West Ham;Lyn Brown;11;Newham;92243;9837;46591;1836;1134;957;0;0;353
501
+ Westminster North;Karen Buck;11;City of Westminster;63846;14422;25934;2253;0;595;0;0;91
502
+ Westmorland and Lonsdale;Tim Farron;4;Cumbria;66391;22909;4783;23686;0;0;0;0;309
503
+ Weston-Super-Mare;John Penrose;10;Bristol area;82160;29982;18438;5175;1932;888;0;0;0
504
+ Wigan;Lisa Nandy;4;Western Manchester;75359;13548;29575;916;2750;753;0;0;0
505
+ Wiltshire North;James Gray;10;Wiltshire;71408;32398;9399;9521;871;1141;0;0;376
506
+ Wiltshire South West;Andrew Murrison;10;Wiltshire;76898;32841;14515;5360;0;1445;0;0;590
507
+ Wimbledon;Stephen Hammond;11;Merton;66771;23946;18324;7472;553;1231;0;0;0
508
+ Winchester;Steve Brine;12;Hampshire;72497;29729;6007;19730;695;846;0;0;149
509
+ Windsor;Adam Afriyie;12;Berkshire;73595;34718;12334;5434;0;1435;0;0;0
510
+ Wirral South;Alison McGovern;4;Merseyside;57670;17548;25871;1322;0;454;0;0;0
511
+ Wirral West;Margaret Greenwood;4;Merseyside;55995;18501;23866;1155;0;429;0;0;0
512
+ Witham;Priti Patel;9;Essex;69137;31670;13024;2715;0;1832;0;0;0
513
+ Witney;Robert Courts;12;Oxfordshire;82727;33839;12598;12457;980;1053;0;0;0
514
+ Woking;Jonathan Lord;12;Surrey;76170;29903;13179;9711;1161;1092;0;0;200
515
+ Wokingham;John Redwood;12;Berkshire;79879;33806;15008;9512;0;1364;0;0;0
516
+ Wolverhampton North East;Emma Reynolds;7;Black Country;60799;14695;19282;570;1479;482;0;0;0
517
+ Wolverhampton South East;Pat McFadden;7;Black Country;69951;12623;21137;448;1675;421;0;0;0
518
+ Wolverhampton South West;Eleanor Smith;7;Black Country;60003;18714;20899;784;1012;579;0;0;358
519
+ Worcester;Robin Walker;7;Hereford and Worcestershire;72815;24731;22223;1757;1354;1211;0;0;147
520
+ Worcestershire Mid;Nigel Huddleston;7;Hereford and Worcestershire;76065;35967;12641;3450;1660;1371;0;0;0
521
+ Worcestershire West;Harriett Baldwin;7;Hereford and Worcestershire;74385;34703;13375;5307;1481;1605;0;0;0
522
+ Workington;Sue Hayman;4;Cumbria;60256;17392;21317;1133;1556;0;0;0;278
523
+ Worsley and Eccles South;Barbara Keeley;4;Central Manchester;73692;17667;26046;1087;0;842;0;0;0
524
+ Worthing East and Shoreham;Tim Loughton;12;West Sussex;75543;25988;20882;2523;1444;1273;0;575;432
525
+ Worthing West;Peter Bottomley;12;West Sussex;77777;30181;18091;2982;1635;1614;0;0;0
526
+ Wrekin, The;Mark Pritchard;7;Shropshire;68642;27451;17887;1345;1656;804;0;0;380
527
+ Wycombe;Steve Baker;12;Buckinghamshire;77089;26766;20188;4147;1210;1182;0;0;0
528
+ Wyre and Preston North;Ben Wallace;4;Lancashire;72319;30684;18438;2551;0;973;0;0;0
529
+ Wyre Forest;Mark Garnier;7;Hereford and Worcestershire;77734;29859;16525;1943;1777;1025;0;0;0
530
+ Wythenshawe and Sale East;Mike Kane;4;Central Manchester;76361;13581;28525;1504;1475;576;0;0;185
531
+ Yeovil;Marcus Fysh;10;Somerset;82911;32369;7418;17646;0;1052;0;0;919
532
+ York Central;Rachael Maskell;5;North Yorkshire;77315;16019;34594;2475;0;0;0;0;0
533
+ York Outer;Julian Sturdy;5;North Yorkshire;75856;29356;21067;5910;0;1094;0;0;0
534
+ Yorkshire East;Greg Knight;5;Humber area;81065;31442;16436;2134;1986;943;0;1015;0
535
+ Aberavon;Stephen Kinnock;6;West Glamorgan;49891;5901;22662;599;1345;0;2761;0;0
536
+ Aberconwy;Guto Bebb;6;Clwyd;45251;14337;13702;941;0;0;3170;0;0
537
+ Alyn and Deeside;Mark Tami;6;Clwyd;63041;18080;23315;1077;1117;0;1171;0;0
538
+ Arfon;Hywel Williams;6;Gwynedd;41367;4614;11427;648;0;0;11519;0;0
539
+ Blaenau Gwent;Nick Smith;6;Gwent;51227;4783;18787;295;973;0;6880;666;0
540
+ Brecon and Radnorshire;Chris Davies;6;Powys;56010;20081;7335;12043;576;0;1299;0;0
541
+ Bridgend;Madeleine Moon;6;Mid Glamorgan;62185;17213;21913;919;781;0;1783;0;646
542
+ Caerphilly;Wayne David;6;Gwent;64381;10413;22491;725;1259;447;5962;0;0
543
+ Cardiff Central;Jo Stevens;6;South Glamorgan;59288;7997;25193;5415;343;420;999;0;0
544
+ Cardiff North;Anna McMorrin;6;South Glamorgan;67221;21907;26081;1714;582;0;1738;0;0
545
+ Cardiff South and Penarth;Stephen Doughty;6;South Glamorgan;76499;15318;30182;1430;942;532;2162;0;170
546
+ Cardiff West;Kevin Brennan;6;South Glamorgan;67221;13874;26425;1214;698;0;4418;0;0
547
+ Carmarthen East and Dinefwr;Jonathan Edwards;6;Dyfed;55976;10778;12219;920;985;0;16127;0;0
548
+ Carmarthen West and Pembrokeshire South;Simon Hart;6;Dyfed;58548;19771;16661;956;905;0;3933;0;0
549
+ Ceredigion;Ben Lake;6;Dyfed;52889;7307;8017;11519;602;542;11623;0;157
550
+ Clwyd South;Susan Elan Jones;6;Clwyd;54341;14646;19002;731;802;0;2293;0;0
551
+ Clwyd West;David Jones;6;Clwyd;58263;19541;16104;1091;0;0;3918;0;0
552
+ Cynon Valley;Ann Clwyd;6;Mid Glamorgan;51332;6166;19404;585;1271;0;4376;0;0
553
+ Delyn;David Hanson;6;Clwyd;54116;16333;20573;1031;0;0;1481;0;0
554
+ Dwyfor Meirionnydd;Liz Roberts;6;Gwynedd;44699;8837;6273;937;614;0;13687;0;0
555
+ Gower;Tonia Antoniazzi;6;West Glamorgan;62163;19458;22727;931;642;0;1669;0;149
556
+ Islwyn;Chris Evans;6;Gwent;56256;9826;21238;685;1605;0;2739;0;0
557
+ Llanelli;Nia Griffith;6;Dyfed;59434;9544;21568;548;1331;0;7351;0;0
558
+ Merthyr Tydfil and Rhymney;Gerald Jones;6;Mid Glamorgan;55463;6073;22407;841;1484;0;2740;0;0
559
+ Monmouth;David Davies;6;Gwent;64909;26411;18205;2064;762;954;1338;0;0
560
+ Montgomeryshire;Glyn Davies;6;Powys;50755;18075;5542;8790;0;524;1960;0;0
561
+ Neath;Christina Rees;6;West Glamorgan;55859;9082;21713;732;1419;0;5339;0;0
562
+ Newport East;Jessica Morden;6;Gwent;57233;12801;20804;966;1180;0;881;0;188
563
+ Newport West;Paul Flynn;6;Gwent;64399;17065;22723;976;1100;497;1077;0;0
564
+ Ogmore;Chris Elmore;6;Mid Glamorgan;56661;9354;23225;594;1235;0;2796;0;0
565
+ Pontypridd;Owen Smith;6;Mid Glamorgan;60566;10655;22103;1963;1071;0;4102;0;0
566
+ Preseli Pembrokeshire;Stephen Crabb;6;Dyfed;58540;18302;17988;1106;850;0;2711;1209;31
567
+ Rhondda;Chris Bryant;6;Mid Glamorgan;50513;3333;21096;277;880;0;7350;0;0
568
+ Swansea East;Carolyn Harris;6;West Glamorgan;58521;9139;22307;625;1040;359;1689;0;0
569
+ Swansea West;Geraint Davies;6;West Glamorgan;56892;11680;22278;1269;0;434;1529;0;92
570
+ Torfaen;Nick Thomas-Symonds;6;Gwent;61839;11894;22134;852;1490;0;2059;0;0
571
+ Vale of Clwyd;Chris Ruane;6;Clwyd;56890;17044;19423;666;0;0;1551;0;0
572
+ Vale of Glamorgan;Alun Cairns;6;South Glamorgan;73958;25501;23311;1020;868;419;2295;0;304
573
+ Wrexham;Ian Lucas;6;Clwyd;50422;15321;17153;865;0;0;1753;0;0
574
+ Ynys Mon;Albert Owen;6;Gwynedd;52448;10384;15643;479;624;0;10237;0;0
575
+ Aberdeen North;Kirsty Blackman;2;Grampian;62130;8341;11031;1693;0;0;15170;0;522
576
+ Aberdeen South;Ross Thomson;2;Grampian;64964;18746;9143;2600;0;0;13994;0;0
577
+ Aberdeenshire West and Kincardine;Andrew Bowie;2;Grampian;72477;24704;5706;4461;0;0;16754;0;0
578
+ Airdrie and Shotts;Neil Gray;2;Glasgow area;64146;8813;14096;802;0;0;14291;0;0
579
+ Angus;Kirstene Hair;2;Tayside;63840;18148;5233;1308;0;0;15503;0;0
580
+ Argyll and Bute;Brendan O'Hara;2;Argyll and Bute;67230;15976;6044;8745;0;0;17304;0;0
581
+ Ayr Carrick and Cumnock;Bill Grant;2;Ayrshire and Lanark;71241;18550;11024;872;0;0;15776;0;0
582
+ Ayrshire Central;Philippa Whitford;2;Ayrshire and Lanark;68997;15504;11762;1050;0;0;16771;0;0
583
+ Ayrshire North and Arran;Patricia Gibson;2;Ayrshire and Lanark;73174;14818;13040;1124;0;0;18451;0;0
584
+ Banff and Buchan;David Duguid;2;Grampian;67601;19976;3936;1448;0;0;16283;0;0
585
+ Berwickshire, Roxburgh and Selkirk;John Lamont;2;Borders;73191;28213;4519;2482;0;0;17153;0;0
586
+ Caithness Sutherland and Easter Ross;Jamie Stone;2;Highland;46868;6990;3833;11061;0;0;9017;0;0
587
+ Coatbridge, Chryston and Bellshill;Hugh Gaffney;2;Glasgow area;71198;7318;19193;922;0;0;17607;0;0
588
+ Cumbernauld, Kilsyth and Kirkintilloch East;Stuart McDonald;2;Glasgow area;66554;8010;14858;1238;605;0;19122;0;0
589
+ Dumfries and Galloway;Alister Jack;2;Dumfries and Galloway;74206;22344;10775;1241;0;0;16701;0;538
590
+ Dumfriesshire, Clydesdale and Tweeddale;David Mundell;2;Dumfries and Galloway;67672;24177;8102;1949;0;0;14736;0;0
591
+ Dunbartonshire East;Jo Swinson;2;Glasgow area;66300;7563;7531;21023;0;0;15684;0;0
592
+ Dunbartonshire West;Martin Docherty;2;Glasgow area;67602;7582;16602;1009;0;0;18890;0;0
593
+ Dundee East;Stewart Hosie;2;Tayside;65854;11746;11176;1615;0;0;18391;0;0
594
+ Dundee West;Chris Law;2;Tayside;62644;6257;12783;1189;0;0;18045;0;403
595
+ Dunfermline and West Fife;Douglas Chapman;2;Fife;75672;12593;17277;3019;0;0;18121;0;0
596
+ East Kilbride, Strathaven and Lesmahagow;Lisa Cameron;2;Ayrshire and Lanark;80442;13704;17157;1590;628;0;21023;0;0
597
+ East Lothian;Martin Whitfield;2;Edinburgh area;79093;16540;20158;1738;0;0;17075;0;367
598
+ Edinburgh East;Tommy Sheppard;2;Edinburgh area;65896;8081;15084;1849;0;0;18509;0;0
599
+ Edinburgh North and Leith;Deidre Brock;2;Edinburgh area;79473;15385;17618;2579;0;1727;19243;0;0
600
+ Edinburgh South;Ian Murray;2;Edinburgh area;64553;9428;26269;1388;0;0;10755;0;0
601
+ Edinburgh South West;Joanna Cherry;2;Edinburgh area;71178;16478;13213;2124;0;0;17575;0;0
602
+ Edinburgh West;Christine Jardine;2;Edinburgh area;71500;11559;7876;18108;0;0;15120;0;132
603
+ Falkirk;Johnny McNally;2;Central;82240;14088;16029;1120;712;908;20952;0;0
604
+ Fife North East;Stephen Gethins;2;Fife;58685;10088;4026;13741;0;0;13743;0;224
605
+ Glasgow Central;Alison Thewliss;2;Glasgow area;64346;5014;13829;1045;0;0;16096;0;0
606
+ Glasgow East;David Linden;2;Glasgow area;66242;6816;13949;576;504;0;14024;0;306
607
+ Glasgow North;Patrick Grady;2;Glasgow area;53863;4935;11537;1153;0;3251;12597;0;0
608
+ Glasgow North East;Paul Sweeney;2;Glasgow area;59932;4106;13637;637;0;0;13395;0;0
609
+ Glasgow North West;Carol Monaghan;2;Glasgow area;63773;7002;13947;1387;0;0;16508;0;0
610
+ Glasgow South;Stewart McDonald;2;Glasgow area;69126;8506;16285;1447;0;0;18312;0;0
611
+ Glasgow South West;Chris Stephens;2;Glasgow area;62991;5524;14326;661;481;0;14386;0;0
612
+ Glenrothes;Peter Grant;2;Fife;66378;7876;14024;1208;0;0;17291;0;0
613
+ Gordon;Colin Clark;2;Grampian;78531;21861;6340;6230;0;0;19254;0;0
614
+ Inverclyde;Ronnie Cowan;2;Glasgow area;58853;8399;14666;978;0;0;15050;0;0
615
+ Inverness Nairn Badenoch and Strathspey;Drew Hendry;2;Highland;76844;16118;8552;6477;0;0;21042;0;612
616
+ Kilmarnock and Loudoun;Alan Brown;2;Ayrshire and Lanark;73327;12404;13421;994;0;0;19690;0;0
617
+ Kirkcaldy and Cowdenbeath;Lesley Laird;2;Fife;72721;10762;17016;1118;540;0;16757;0;0
618
+ Lanark and Hamilton East;Angela Crawley;2;Ayrshire and Lanark;77313;16178;16084;1214;550;0;16444;0;0
619
+ Linlithgow and East Falkirk;Martyn Day;2;Edinburgh area;86186;16311;17469;1926;0;0;20388;0;0
620
+ Livingston;Hannah Bardell;2;Edinburgh area;81208;12799;17158;1512;0;0;21036;0;0
621
+ Midlothian;Danielle Rowley;2;Edinburgh area;68328;11521;16458;1721;0;0;15573;0;0
622
+ Moray;Douglas Ross;2;Grampian;70649;22637;5208;1078;0;0;18478;0;204
623
+ Motherwell and Wishaw;Marion Fellows;2;Glasgow area;68215;8490;15832;920;534;0;16150;0;0
624
+ Na h-Eileanan An Iar (Western Isles);Angus MacNeil;2;Western Isles;21301;2441;5006;250;0;0;6013;1108;0
625
+ Ochil and South Perthshire;Luke Graham;2;Central;76767;22469;10847;1742;0;0;19110;0;0
626
+ Orkney and Shetland;Alistair Carmichael;2;Orkney and Shetland;34164;2024;2664;11312;283;0;6749;0;245
627
+ Paisley and Renfrewshire North;Gavin Newlands;2;Glasgow area;67436;12842;14842;1476;0;0;17455;0;0
628
+ Paisley and Renfrewshire South;Mhairi Black;2;Glasgow area;61344;8122;14423;1327;0;0;16964;0;876
629
+ Perth and North Perthshire;Pete Wishart;2;Tayside;71743;21783;5349;2589;0;0;21804;0;0
630
+ Renfrewshire East;Paul Masterton;2;Glasgow area;70067;21496;14346;1112;0;0;16784;0;0
631
+ Ross Skye and Lochaber;Ian Blackford;2;Highland;53638;9561;4695;8042;0;0;15480;0;676
632
+ Rutherglen and Hamilton West;Ged Killen;2;Ayrshire and Lanark;80098;9941;19101;2158;465;0;18836;0;371
633
+ Stirling;Stephen Kerr;2;Central;66415;18291;10902;1683;0;0;18143;0;337
634
+ Antrim East;Sammy Wilson;1;Antrim;62908;4524;1278;21873;0;0;3555;5950;963
635
+ Antrim North;Ian Paisley;1;Antrim;75657;3482;2574;28521;0;0;7878;3282;2723
636
+ Antrim South;Paul Girvan;1;Antrim;68244;13300;2362;16508;0;0;7797;3203;0
637
+ Belfast East;Gavin Robinson;1;Antrim;63495;1408;167;23917;0;561;894;15443;500
638
+ Belfast North;Nigel Dodds;1;Antrim;68249;0;2058;21240;0;644;19159;2475;360
639
+ Belfast South;Emma Little Pengelly;1;Antrim;66105;1527;11303;13299;0;2241;7143;7946;246
640
+ Belfast West;Paul Maskey;1;Antrim;62423;0;2860;5455;0;0;27107;4132;1079
641
+ Down North;Lady Sylvia Hermon;1;Down;64334;0;400;14940;0;2549;531;16148;978
642
+ Down South;Chris Hazzard;1;Down;75685;2002;17882;8867;0;0;20328;1814;0
643
+ Fermanagh and South Tyrone;Michelle Gildernew;1;Fermanagh;70601;24355;2587;0;0;423;25230;886;0
644
+ Foyle;Elisha McCallion;1;Londonderry;70324;0;18087;7398;0;0;18256;1377;847
645
+ Lagan Valley;Jeffrey Donaldson;1;Antrim;72380;7533;3384;26762;0;0;1567;4996;684
646
+ Londonderry East;Gregory Campbell;1;Londonderry;67038;3135;4423;19723;0;0;10881;2538;330
647
+ Newry and Armagh;Mickey Brady;1;Armagh;78266;4425;9055;13177;0;0;25666;1256;0
648
+ Strangford;Jim Shannon;1;Down;64327;4419;2404;24036;0;607;1083;5693;507
649
+ Tyrone West;Barry McElduff;1;Tyrone;64009;2253;5635;11718;0;427;22060;1000;393
650
+ Ulster Mid;Francie Molloy;1;Tyrone;68485;3017;4563;12565;0;0;25455;1094;0
651
+ Upper Bann;David Simpson;1;Armagh;80168;7900;4397;22317;0;0;14325;2319;0