Skip to content

Instantly share code, notes, and snippets.

@karmi
Last active November 3, 2015 05:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save karmi/714f575b3c4e94274e90 to your computer and use it in GitHub Desktop.
Save karmi/714f575b3c4e94274e90 to your computer and use it in GitHub Desktop.
A tutorial for building an interactive D3.js chart iteratively from scratch
<!DOCTYPE html>
<html>
<head>
<title>Life Expectancy : 1960 &mdash; 2011</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="http://mbostock.github.com/d3/d3.v2.min.js?2.8.1"></script>
<style>
/* Styling for the page */
body { font: normal 10px Helvetica, sans-serif; margin: 2em; }
/* Styling for the chart */
#chart { position: relative; padding-top: 2.5em; }
select#select_country { position: absolute; top: 0; left: 30px; }
line.rule { stroke: #eee; stroke-width: 1; shape-rendering: crispEdges; }
text.tick { fill: #ccc; text-anchor: end; }
rect.bar { stroke: white; border-width: 1px; fill: #7BC8FB; }
rect.bar.missing { fill: #ccc; }
text.label { fill: white; text-anchor: middle; }
text.label.missing { font-size: 8px; }
text.legend { fill: #7BC8FB; text-anchor: middle; rotate: 45; }
.over rect.bar { fill: black; }
.over text.legend { fill: black; }
.mean path { stroke: #000; stroke-dasharray: 2,2; stroke-width: 1px; fill: none; }
</style>
</head>
<body>
<div id="chart"></div>
</body>
<script>
var BarChart = function(url) {
// Configuration
//
var config = {
width: 900 - 20,
height: 100,
margin: 20
},
// Chart
//
chart = d3.select("#chart").append("svg")
.attr("width", config.width)
// Make room for the bottom labels
.attr("height", config.height + config.margin*2)
.append("g")
// Make room for left-side tick labels and top rule line
.attr("transform", "translate(" + 10 + "," + 10 + ")"),
// Country select
//
select = d3.select("#chart")
.append("select")
.attr("id", "select_country")
.attr("accesskey", "c")
.on("change", function(e) { return __draw(this.value); }),
// CSV data
//
csv = null,
// Display the chart for a specific country (load data if missing)
//
display = function(country) {
if ( ! csv ) {
return __load(url, function() { return __draw(country); })
} else {
return __draw(country);
}
},
// Convert a String to DOM ID friendly format
//
__parameterize = function(s) {
return s.toLowerCase().replace(/[^a-z]/g, "-")
},
// Load the CSV data from external source
//
__load = function(url, callback) {
d3.csv(url, function(data) {
// Assign data from CSV
csv = data;
// Select
var countries = select
.selectAll("option")
.data( csv.map( function(d) { return d["Country Name"]; } ) )
.enter()
.append("option")
.attr("value", function(d) { return d; })
.attr("id", function(d) { return "option-"+__parameterize(d); })
.text(function(d) { return d; });
// Perform the callback
callback();
});
},
// Draw the chart
//
__draw = function(country) {
// console.log("CSV:", csv);
// Select a specific country
var data = csv.filter( function(d) { return d["Country Name"] == country; } ),
// Filter out keys (years)
legend = d3.keys(data[0])
.filter( function(d) { return d.match(/^\d/); } ),
// Filter out values and convert them to numbers
values = d3.entries(data[0])
.filter( function(d) { return d.key.match(/^\d/); } )
.map( function(d) { return d.value; } )
.map( function(d) { return parseFloat(d) || null; } );
console.debug("Legend:", legend);
console.debug("Values:", values);
// Select selected country
d3.selectAll("#select_country option").attr("selected", null);
d3.select("#option-"+__parameterize(country)).attr("selected", true);
// 1) Scales
var x = d3.scale.ordinal()
.domain( values.map(function(d,i) { return i; }) )
.rangeRoundBands([0, config.width], 0.1);
var y = d3.scale.linear()
.domain([0, 100])
.range([0, config.height]);
// 2) Ticks
var tick = chart.selectAll("g.tick").data(y.ticks(5))
.enter()
.append("g")
.attr("class", "tick");
tick
.append("line")
.classed("rule", true)
.attr("x1", 22)
.attr("x2", config.width)
.attr("y1", y)
.attr("y2", y);
tick
.append("text")
.classed("tick", true)
.attr("x", 18)
.attr("y", function(d) { return config.height - y(d); })
.attr("dy", 3)
.text(function(d) { return (d) ? d : null; });
// 3) Bars
var bar = chart.selectAll("g.bar").data(values);
var group = bar.enter()
.append("g")
.attr("class", "bar")
group
.append("rect")
.classed("bar", true)
.attr("height", 0)
.attr("y", config.height);
group
.append("text")
.classed("label", true);
group
.append("text")
.classed("legend", true)
bar
.exit()
.remove();
bar
.select("rect.bar")
.classed("missing", function(d,i) { return !d; })
.attr("width", x.rangeBand())
.attr("x", function(d,i) { return x(i); })
.transition()
.duration(500)
.attr("height", function(d,i) { return y(d) || 15; })
.attr("y", function(d,i) { return d ? config.height - y(d) : config.height - 15; })
bar
.on("mouseover", function(d,i) { return d3.select(this).classed("over", true); })
.on("mouseout", function(d,i) { return d3.select(this).classed("over", false); });
// 4) Labels (values)
bar
.select("text.label")
.classed("missing", function(d,i) { return !d; })
.attr("x", function(d,i) { return x(i) + Math.round(x.rangeBand()/2); })
.attr("y", config.height - 5)
.text( function(d,i) { return d ? Math.round(d) : "n/a" ; });
// 5) Legend (years)
bar
.select("text.legend")
.data(legend)
.classed("legend", true)
.attr("x", function(d,i) { return x(i) + Math.round(x.rangeBand()/2); })
.attr("y", config.height + 10)
.attr("transform", function(d,i) { return "rotate(45 " + x(i) + ", " + (config.height + 15) + ")"; })
.text(function(d,i) { return d; });
// Display the "mean" line across the whole dataset
//
if ( d3.select(".mean") < 1 ) {
var means = csv
.reduce(function(previous, current, index) {
// 1) Extract years
//
var years = d3.keys(current).filter( function(d) { return d.match(/^\d/); } );
// 2) For each year, extract all values
// (based on the column position; year 1960 has the same position across the dataset)
//
years.forEach(function(d,i) {
if ( ! previous[i] ) { previous[i] = [] };
previous[i].push(parseFloat(current[d]))
});
return previous;
}, [])
.reduce(function(previous, current, index) {
// 3) Compute mean for each year
//
var mean = d3.mean(current);
previous.push(mean)
return previous;
}, [])
// 4) Remove null values
//
.filter(function(d) { return d; });
// 5) Duplicate last value for proper line display
//
means.push(d3.last(means));
// Log the values to console
//
console.log("Mean values:", means);
// Draw line based on means
//
var line = chart.selectAll("g.mean").data([means])
line
.enter()
.append("g")
.classed("mean", true)
.append("path")
.attr("opacity", 0)
.transition()
.delay(500)
.duration(500)
.attr("opacity", 0.6)
.attr("d", d3.svg.line()
.interpolate("step-before")
.x(function(d,i) { return x(i); })
.y(function(d,i) { return config.height - Math.round(y(d)); })
);
};
return chart;
};
return {
display: display
};
};
var chart = new BarChart("life-expectancy-full.csv");
chart.display(top.location.search.replace(/\?/, "") || "Czech Republic");
</script>
</html>
var data = [70.3487804878,70.5126829268,69.7868292683,70.3043902439,70.4595121951,70.1631707317,70.3848780488,70.2641463415,69.8407317073,69.3670731707,69.4402439024,69.6770731707,70.1765853659,70.0226829268,70.0865853659,70.4146341463,70.5326829268,70.5734146341,70.643902439,70.7495121951,70.2780487805,70.722195122,70.807804878,70.5914634146,70.8375609756,71.0463414634,70.9973170732,71.4456097561,71.6414634146,71.6756097561,71.383902439,71.8982926829,72.2717073171,72.767804878,72.9726829268,73.0748780488,73.7146341463,73.8248780488,74.5146341463,74.6682926829,74.9682926829,75.1731707317,75.2219512195,75.1707317073,75.7219512195,75.9243902439,76.5243902439,76.7243902439,76.9756097561,77.0780487805,null,null];
Country Name Country Code 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011
Afghanistan AFG 31.132097561 31.4752926829 31.8320243902 32.2042682927 32.5910487805 32.9898780488 33.3967317073 33.8091463415 34.2230731707 34.6375121951 35.0559756098 35.4814146341 35.9168780488 36.3613170732 36.8107317073 37.2571219512 37.6909756098 38.1062926829 38.4965853659 38.8618536585 39.2041219512 39.5269512195 39.8398292683 40.1492439024 40.4586829268 40.7705853659 41.0848780488 41.399 41.7109268293 42.021195122 42.3293658537 42.636 42.9397317073 43.242097561 43.5426585366 43.840902439 44.136804878 44.429804878 44.7213414634 45.0098536585 45.2928536585 45.5672682927 45.8331463415 46.0924390244 46.351195122 46.6164146341 46.899097561 47.2053170732 47.5385609756 47.8988536585
Albania ALB 62.2543658537 63.2734634146 64.1623414634 64.887097561 65.4376829268 65.8294390244 66.1000731707 66.311804878 66.5164390244 66.7384634146 66.9894390244 67.2655121951 67.5444634146 67.8135121951 68.0722682927 68.3258292683 68.5777073171 68.8343414634 69.0996341463 69.3770731707 69.6740487805 70.0004634146 70.3512439024 70.7154146341 71.0764878049 71.3975853659 71.6373658537 71.7749268293 71.8093658537 71.7542195122 71.6454390244 71.5314878049 71.4652195122 71.487 71.6177317073 71.8702926829 72.2410731707 72.6960731707 73.197804878 73.7218292683 74.2387317073 74.7236585366 75.1612195122 75.5420243902 75.8591219512 76.112 76.3096341463 76.4734146341 76.6207560976 76.761097561
Algeria DZA 46.9853902439 47.5183658537 48.0688536585 48.6398292683 49.230804878 49.8382926829 50.4543414634 51.0729268293 51.6895853659 52.3027804878 52.9180243902 53.5412926829 54.1790731707 54.8353170732 55.5095121951 56.1955609756 56.8833902439 57.5654878049 58.2408780488 58.9140731707 59.6036829268 60.3363170732 61.1255609756 61.9685121951 62.8491707317 63.736 64.5879512195 65.366902439 66.0462682927 66.6150731707 67.0717804878 67.4289756098 67.719195122 67.976 68.2178780488 68.4658780488 68.7344878049 69.0256585366 69.3383658537 69.6730487805 70.0241707317 70.3811219512 70.729902439 71.059 71.364902439 71.6461463415 71.9052926829 72.150902439 72.3890487805 72.6227560976
American Samoa ASM
Andorra AND
Angola AGO 32.9853414634 33.3862195122 33.787097561 34.1879512195 34.5883170732 34.9891707317 35.3915121951 35.7958536585 36.201195122 36.6060487805 37.0114146341 37.4192926829 37.8262195122 38.2276585366 38.6156585366 38.9792439024 39.305 39.5854146341 39.8194390244 40.0089756098 40.161804878 40.2902195122 40.4100487805 40.5297804878 40.6554878049 40.7803414634 40.8905609756 40.9779756098 41.041804878 41.0912439024 41.1414146341 41.2088780488 41.3145365854 41.478195122 41.7162195122 42.0509268293 42.5016097561 43.0616341463 43.7143170732 44.439097561 45.2049268293 45.9733170732 46.7119268293 47.3933658537 48.0037073171 48.5384390244 49.0071463415 49.4352926829 49.8474146341 50.2510243902
Antigua and Barbuda ATG 62.3536585366 66.8536585366 72.2480487805 73.0082926829 74.2463414634 74.7317073171 75.2804878049
Argentina ARG 65.1751463415 65.2966341463 65.3892439024 65.4655365854 65.5390731707 65.6258780488 65.7409512195 65.8882439024 66.0722195122 66.2933170732 66.5485121951 66.8302926829 67.1246097561 67.4204390244 67.7132682927 68.0030731707 68.2918292683 68.5840487805 68.8812439024 69.1794390244 69.4696097561 69.7417804878 69.9904390244 70.2121219512 70.4093170732 70.5865121951 70.7537073171 70.9223902439 71.1005365854 71.2921707317 71.4982926829 71.7179268293 71.9440731707 72.1717560976 72.3984390244 72.6236341463 72.8462926829 73.0673902439 73.2864634146 73.5034634146 73.7179756098 73.9295121951 74.1386097561 74.3442926829 74.5455853659 74.7414634146 74.9314390244 75.1149756098 75.2925365854 75.464097561
Armenia ARM 65.8539512195 66.2754634146 66.7014878049 67.1300243902 67.558097561 67.9847317073 68.4093902439 68.8266341463 69.2264146341 69.5987073171 69.9244390244 70.1830487805 70.3675121951 70.4793170732 70.5239756098 70.5275121951 70.5234634146 70.5364146341 70.576 70.6352926829 70.680097561 70.6587317073 70.5352195122 70.2919268293 69.9390487805 69.5044146341 69.0312195122 68.5769268293 68.1938536585 67.9126097561 67.7572439024 67.7360731707 67.8285365854 68.0127560976 68.2789268293 68.6204634146 69.0294390244 69.4916341463 69.9855365854 70.4924878049 70.9894390244 71.4580487805 71.8896097561 72.2783902439 72.6164146341 72.9007073171 73.1342195122 73.3278292683 73.4959512195 73.6455365854
Aruba ABW 65.5693658537 65.9880243902 66.3655365854 66.7139756098 67.0442926829 67.3697560976 67.699 68.0346829268 68.3771463415 68.7284146341 69.0861463415 69.446097561 69.7986585366 70.1396585366 70.4652926829 70.777804878 71.0808292683 71.3777073171 71.6697804878 71.9528536585 72.2201463415 72.4623414634 72.673195122 72.8490243902 72.9897560976 73.0979756098 73.1793658537 73.2427073171 73.2962439024 73.3444878049 73.3899756098 73.4331219512 73.4717560976 73.5053170732 73.5357560976 73.5636097561 73.5894390244 73.614804878 73.6422926829 73.6753902439 73.720097561 73.7823902439 73.864195122 73.966 74.0877560976 74.2249756098 74.3741463415 74.5282926829 74.6819268293 74.8315365854
Australia AUS 70.8170731707 70.9731707317 70.9424390244 70.9117073171 70.8809756098 70.8502439024 70.8195121951 70.8692682927 70.9190243902 70.9687804878 71.0185365854 71.0682926829 71.4575609756 71.8468292683 72.236097561 72.6253658537 73.0146341463 73.3443902439 73.6741463415 74.003902439 74.3336585366 74.6634146341 74.9048780488 75.1463414634 75.387804878 75.6292682927 75.8707317073 76.1517073171 76.4326829268 76.7136585366 76.9946341463 77.2756097561 77.3780487805 77.8780487805 77.8780487805 77.8292682927 78.0780487805 78.4804878049 78.6317073171 78.9317073171 79.2341463415 79.6341463415 79.9365853659 80.2390243902 80.4902439024 80.8414634146 81.0414634146 81.2926829268 81.3951219512 81.543902439
Austria AUT 68.5856097561 69.5773170732 69.3095121951 69.4436585366 69.9219512195 69.722195122 70.0458536585 69.917804878 70.0575609756 69.8331707317 69.8907317073 70.0692682927 70.4136585366 70.9792682927 70.9624390244 71.0841463415 71.5512195122 71.8953658537 71.9670731707 72.2873170732 72.4236585366 72.7580487805 72.8970731707 72.9685365854 73.5275609756 73.7451219512 74.2229268293 74.6692682927 75.1441463415 75.2480487805 75.53 75.567804878 75.8553658537 76.1063414634 76.4570731707 76.7156097561 76.9836585366 77.3875609756 77.5731707317 77.7756097561 78.0268292683 78.5268292683 78.6780487805 78.6317073171 79.1804878049 79.3317073171 79.8317073171 79.9829268293 80.2341463415 80.0829268293
Azerbaijan AZE 60.8362439024 61.2391707317 61.6445853659 62.052 62.4574146341 62.8618292683 63.2672682927 63.6687317073 64.0567073171 64.4186829268 64.7346097561 64.9814390244 65.1481219512 65.2341707317 65.2435853659 65.1874390244 65.0822926829 64.9532195122 64.8287560976 64.7279512195 64.6813170732 64.7164390244 64.8307317073 65.008097561 65.225902439 65.4277804878 65.5413414634 65.5259268293 65.3691463415 65.0892682927 64.7463658537 64.4241463415 64.2072439024 64.1540243902 64.2815853659 64.5758292683 64.994 65.4623902439 65.9233658537 66.3554878049 66.7572195122 67.1476829268 67.5548536585 67.9943170732 68.457195122 68.9227317073 69.3614146341 69.7486585366 70.0678536585 70.3176341463
Bahamas, The BHS 63.2249268293 63.5934878049 63.9529512195 64.3053170732 64.6497073171 64.9793170732 65.2869512195 65.5636585366 65.8051219512 66.0115853659 66.182902439 66.3227073171 66.4389756098 66.5426585366 66.6439512195 66.7560487805 66.8890731707 67.0490243902 67.2374390244 67.4533658537 67.6973658537 67.9644634146 68.245097561 68.5236585366 68.7896097561 69.0233658537 69.203902439 69.3271219512 69.3984634146 69.426804878 69.4370487805 69.4571219512 69.515 69.6311707317 69.813097561 70.0563658537 70.3480487805 70.6627073171 70.9828536585 71.3034390244 71.6282926829 71.9696829268 72.3384878049 72.7371707317 73.1578292683 73.5836585366 73.9919268293 74.3654390244 74.6938536585 74.9752682927
Bahrain BHR 51.779804878 53.2025853659 54.6219756098 56.0134390244 57.3574146341 58.634804878 59.8335121951 60.9560243902 62.0038536585 62.9744634146 63.8683902439 64.6892195122 65.4454878049 66.1482682927 66.8015609756 67.4118780488 67.9806585366 68.508902439 68.9990487805 69.4530731707 69.8744878049 70.2622926829 70.6175121951 70.9411463415 71.2357317073 71.5017560976 71.7397073171 71.9515853659 72.1399268293 72.3097073171 72.4649512195 72.6096829268 72.7473902439 72.881097561 73.013804878 73.1470243902 73.2802439024 73.4134634146 73.5431707317 73.6713658537 73.7960731707 73.9182926829 74.0375365854 74.1552926829 74.2715365854 74.3877317073 74.5078292683 74.6312926829 74.7586097561 74.8897804878
Bangladesh BGD 47.7585365854 48.2351219512 48.801902439 49.4155365854 49.9818536585 50.2293902439 49.8322439024 48.6670487805 46.7816097561 44.3662926829 41.8859512195 39.9328780488 38.969902439 39.2523658537 40.7877560976 43.3347804878 46.445097561 49.5304146341 52.1278780488 54.0466341463 55.2358536585 55.8089268293 56.080195122 56.3081219512 56.581902439 56.9524146341 57.4232195122 57.9363658537 58.4469756098 58.9580731707 59.4711463415 59.9897073171 60.5147317073 61.0467317073 61.5832195122 62.1226829268 62.6621219512 63.1965609756 63.7219756098 64.233902439 64.7303414634 65.2083170732 65.6683170732 66.1098536585 66.5313658537 66.9322926829 67.3100731707 67.6666585366 68.0040243902 68.3252195122
Barbados BRB 64.4752682927 65.0817804878 65.610804878 66.0707804878 66.4747073171 66.8380243902 67.1742439024 67.4968780488 67.8174634146 68.145 68.4875121951 68.8485121951 69.22 69.5960243902 69.9716097561 70.3433170732 70.703195122 71.0482682927 71.375 71.6823902439 71.9743658537 72.2553902439 72.5323902439 72.8072926829 73.0805365854 73.347097561 73.6034634146 73.8416341463 74.0576585366 74.2505365854 74.4172682927 74.5583658537 74.6783414634 74.7822439024 74.8740731707 74.9593658537 75.0426341463 75.1273902439 75.2156341463 75.3094146341 75.4082682927 75.5086829268 75.608195122 75.7052926829 75.8015365854 75.9009512195 76.0085609756 76.1293658537 76.2643658537 76.4130243902
Belarus BLR 68.2738780488 68.5559268293 68.8120487805 69.0442195122 69.2564390244 69.458195122 69.6619756098 69.8737560976 70.0934634146 70.3150487805 70.5228780488 70.695804878 70.8183170732 70.8809268293 70.8837317073 70.8328780488 70.7385853659 70.6220243902 70.5043658537 70.4017073171 70.3346585366 70.324804878 70.3704878049 70.4620243902 70.5851707317 70.9926829268 71.5495121951 70.9902439024 71.3414634146 71.587804878 70.8365853659 70.3780487805 70.0219512195 68.9707317073 68.7682926829 68.4609756098 68.612195122 68.4609756098 68.4073170732 67.9073170732 68.912195122 68.5073170732 68.056097561 68.5536585366 68.956097561 68.8512195122 69.4048780488 70.2034146341 70.456097561 70.4073170732
Belgium BEL 70.0703414634 70.0862195122 70.1012439024 70.1314634146 70.1894390244 70.2821463415 70.4085365854 70.558 70.7229756098 70.8994146341 71.0863170732 71.280195122 71.4810731707 71.6864878049 71.8959512195 72.1065365854 72.3162682927 72.5256585366 72.7377073171 72.9543902439 73.1846341463 73.4373414634 73.7164878049 74.021 74.3438536585 74.6710487805 74.9856097561 75.2725609756 75.5230243902 75.7365609756 75.9682926829 76.0707317073 76.2707317073 76.3170731707 76.5707317073 76.6682926829 76.9219512195 77.2219512195 77.8731707317 78.0707317073 78.1731707317 78.4731707317 78.5756097561 78.7292682927 78.8780487805 79.3276414634 79.7772365854 79.5341463415 79.4829268293 79.7365853659
Belize BLZ 60.8958536585 61.391804878 61.8984878049 62.4154390244 62.9436097561 63.4774146341 64.0121707317 64.5417317073 65.0579756098 65.5598780488 66.0439512195 66.5127560976 66.9684390244 67.4126097561 67.845804878 68.2665609756 68.6743658537 69.068195122 69.4454878049 69.8057560976 70.147 70.4672926829 70.767097561 71.0464146341 71.305195122 71.543804878 71.7636097561 71.9660731707 72.1526829268 72.3260487805 72.486804878 72.6361707317 72.7738536585 72.901 73.0197317073 73.1276097561 73.2211463415 73.3007073171 73.3726341463 73.4443170732 73.5311219512 73.6489268293 73.8086341463 74.0136585366 74.2599268293 74.5368780488 74.827 75.1118536585 75.3775121951 75.6185121951
Benin BEN 35.5763414634 35.8840487805 36.1792439024 36.4723414634 36.7753170732 37.1129756098 37.5101219512 37.9781707317 38.5196585366 39.1287317073 39.790097561 40.4805609756 41.170902439 41.8348780488 42.4575853659 43.0276097561 43.5434146341 44.0172926829 44.4575365854 44.8685121951 45.2471219512 45.5922682927 45.905902439 46.1964634146 46.4748536585 46.7579756098 47.0637804878 47.4027560976 47.7804878049 48.1980487805 48.6485365854 49.1231219512 49.6033902439 50.0734634146 50.5224146341 50.9412682927 51.3245121951 51.6740731707 51.9958292683 52.2917560976 52.5653414634 52.819097561 53.0615121951 53.3014878049 53.5489512195 53.8137317073 54.1066829268 54.4307317073 54.7873170732 55.1734146341
Bermuda BMU 68.897804878 70.29 72.3046341463 74.0295121951 77.8648780488 78.5767073171 78.7190731707 78.8614390244 79.003804878 79.1461707317
Bhutan BTN 37.0762682927 37.3144878049 37.5782195122 37.8669512195 38.1816829268 38.5209268293 38.8856585366 39.2753658537 39.6885609756 40.1257317073 40.5863658537 41.072 41.5821219512 42.1157560976 42.6708780488 43.2459756098 43.8425365854 44.4570487805 45.086 45.7233902439 46.3592195122 46.9834878049 47.5907073171 48.1824146341 48.7621219512 49.3393658537 49.9257073171 50.5361463415 51.1797073171 51.8628780488 52.5896341463 53.3589512195 54.1637804878 54.9941219512 55.8469756098 56.7233902439 57.6294390244 58.5621463415 59.5100487805 60.456097561 61.3742195122 62.2373170732 63.026804878 63.7316097561 64.3482195122 64.8806341463 65.3423902439 65.759097561 66.1513170732 66.5320487805
Bolivia BOL 42.6520487805 42.9612926829 43.2725365854 43.5867804878 43.9035121951 44.2182195122 44.523902439 44.8220487805 45.1181707317 45.422804878 45.7510243902 46.1218780488 46.548902439 47.0406341463 47.6000731707 48.2261707317 48.9148536585 49.6480731707 50.4087804878 51.1849268293 51.9635609756 52.7382439024 53.5039756098 54.2558292683 54.9867317073 55.6896829268 56.3630731707 57.0088780488 57.6285121951 58.2189268293 58.7780731707 59.3024146341 59.7934634146 60.2537804878 60.6863902439 61.0958780488 61.4872926829 61.8657317073 62.2357560976 62.6008780488 62.9636829268 63.3241707317 63.678804878 64.0275121951 64.3692926829 64.7040487805 65.0302195122 65.3477317073 65.658097561 65.9638536585
Bosnia and Herzegovina BIH 60.2073658537 60.8818536585 61.5188292683 62.1247804878 62.7057560976 63.2692926829 63.8224634146 64.3673414634 64.9074146341 65.4456829268 65.9866097561 66.5321219512 67.0786585366 67.6176341463 68.1404634146 68.6315853659 69.071902439 69.4529268293 69.7717317073 70.0324146341 70.2735853659 70.5480731707 70.8754878049 71.2393658537 71.5952926829 71.7950731707 71.6509268293 71.0824146341 70.1033658537 68.8140243902 67.4668536585 66.3856829268 65.829 65.9418536585 66.7302439024 68.068195122 69.714195122 71.3479512195 72.7164878049 73.714 74.3081219512 74.5531707317 74.6153658537 74.6348780488 74.6596341463 74.7236341463 74.8343658537 74.9686097561 75.1063170732 75.2504390244
Botswana BWA 50.5372439024 50.8976341463 51.2455365854 51.5844146341 51.9217560976 52.2675365854 52.6327073171 53.0262439024 53.4566341463 53.9278780488 54.4444634146 55.0094146341 55.6137317073 56.246 56.8957317073 57.5469756098 58.1867560976 58.803097561 59.3890243902 59.9385609756 60.4592195122 60.9659512195 61.4692682927 61.9666585366 62.4456341463 62.9001463415 63.324195122 63.6917804878 63.9629756098 64.0963902439 64.0171707317 63.648 62.966 61.9767073171 60.7116341463 59.197804878 57.4776585366 55.6515365854 53.8417073171 52.1589512195 50.7654878049 49.8115609756 49.3375365854 49.3273414634 49.7374878049 50.4465609756 51.2843170732 52.0689512195 52.6636829268 53.0115365854
Brazil BRA 54.4922195122 54.9587317073 55.4117560976 55.8482439024 56.2676341463 56.6708292683 57.0592439024 57.4393658537 57.8137317073 58.1863902439 58.561 58.938804878 59.3203902439 59.704804878 60.0944390244 60.4885121951 60.8866585366 61.2885853659 61.6921707317 62.0954390244 62.4965853659 62.8944390244 63.287902439 63.6762926829 64.0597560976 64.4393414634 64.8164878049 65.1934634146 65.5726097561 65.9543658537 66.3407317073 66.7342439024 67.1334146341 67.536804878 67.9408780488 68.3406341463 68.7315609756 69.109097561 69.4712439024 69.8144634146 70.1382682927 70.4396341463 70.724097561 70.9961463415 71.2617804878 71.5295365854 71.8109268293 72.1099512195 72.427097561 72.759804878
Brunei Darussalam BRN 62.3364634146 62.8772682927 63.4029756098 63.9135853659 64.4106097561 64.8935853659 65.362 65.816902439 66.258804878 66.6882195122 67.1051463415 67.5096097561 67.903097561 68.2850731707 68.6580731707 69.0215853659 69.376097561 69.7221219512 70.0611463415 70.3926829268 70.7172195122 71.0357560976 71.3482926829 71.6538292683 71.9543658537 72.248902439 72.5384390244 72.8234878049 73.1040487805 73.381097561 73.6536585366 73.9232195122 74.1887804878 74.4508292683 74.7098780488 74.9674146341 75.2239268293 75.480902439 75.7363658537 75.9883414634 76.2323414634 76.464902439 76.6810487805 76.880804878 77.0626341463 77.2285853659 77.3806097561 77.524195122 77.6622926829 77.7979268293
Bulgaria BGR 69.2475609756 70.1956097561 69.4919512195 70.3092682927 71.1212195122 71.293902439 71.2234146341 70.413902439 71.2251219512 70.43 71.2563414634 70.8736585366 70.8995121951 71.342195122 71.2080487805 71.0497560976 71.3948780488 70.816097561 71.1846341463 71.3082926829 71.1575609756 71.5719512195 71.186097561 71.3863414634 71.4997560976 71.2280487805 71.7307317073 71.5268292683 71.6043902439 71.7224390244 71.6414634146 71.5609756098 71.4943902439 71.3468292683 71.2087804878 71.0534146341 70.8973170732 70.3512195122 71.0609756098 71.412195122 71.6634146341 71.7682926829 71.8658536585 72.0658536585 72.5634146341 72.5609756098 72.612195122 72.6634146341 72.9634146341 73.412195122
Burkina Faso BFA 35.8631463415 36.3746097561 36.8775609756 37.3750243902 37.8664878049 38.3574390244 38.8508780488 39.3498292683 39.8567560976 40.3736829268 40.9011219512 41.4385609756 41.9839756098 42.5334146341 43.0833658537 43.634804878 44.1902682927 44.7462195122 45.296195122 45.8301463415 46.3316097561 46.7850487805 47.1799512195 47.5113414634 47.7782195122 47.9815853659 48.1284390244 48.2338292683 48.3152195122 48.3846341463 48.4530487805 48.5274146341 48.6117317073 48.7100243902 48.8308292683 48.9797560976 49.1594390244 49.3699756098 49.6103414634 49.8854878049 50.2012926829 50.5655609756 50.9776341463 51.4323658537 51.9222195122 52.435195122 52.957902439 53.4769512195 53.9824878049 54.4660487805
Burundi BDI 41.2365365854 41.5484634146 41.8668780488 42.1882926829 42.5067073171 42.8061463415 43.0675853659 43.2835121951 43.4539756098 43.5884390244 43.7059268293 43.8344390244 43.9979756098 44.2140243902 44.4880487805 44.822 45.2102926829 45.628902439 46.0538292683 46.4671219512 46.8593170732 47.2255121951 47.559804878 47.8462926829 48.0625121951 48.1605609756 48.0869512195 47.8301463415 47.4061219512 46.849804878 46.2271463415 45.6215365854 45.1109512195 44.7537560976 44.5784634146 44.5885121951 44.7584146341 45.0267073171 45.3384390244 45.6705609756 46.0050487805 46.3363902439 46.6730731707 47.0215609756 47.3803658537 47.7514634146 48.1388780488 48.5466341463 48.9757560976 49.4212682927
Cambodia KHM 42.4041463415 42.894902439 43.4316829268 43.9905121951 44.5283902439 44.9758536585 45.2554146341 45.3065853659 45.0818536585 44.5562195122 43.6327073171 42.2078536585 40.3466097561 38.2119268293 36.011195122 34.1257317073 32.9853414634 32.840902439 33.789902439 35.7894146341 38.6240731707 41.9405853659 45.2767317073 48.251195122 50.6716097561 52.4350243902 53.570902439 54.2961463415 54.7996341463 55.1478536585 55.3972926829 55.5814634146 55.7143902439 55.8160487805 55.9238536585 56.0652682927 56.2572682927 56.4922682927 56.7671463415 57.0888292683 57.4641463415 57.8964634146 58.3752195122 58.8894390244 59.4286341463 59.9793902439 60.5283170732 61.0645853659 61.5808536585 62.072195122
Cameroon CMR 41.5237560976 41.9653414634 42.4059512195 42.8435609756 43.2786585366 43.7151707317 44.1585121951 44.6136341463 45.0845609756 45.5717804878 46.0763902439 46.599 47.1336829268 47.6740487805 48.2146097561 48.7498780488 49.275804878 49.7883414634 50.280902439 50.7484634146 51.1865365854 51.5930731707 51.9681219512 52.307195122 52.6052926829 52.8563902439 53.054 53.196097561 53.2797317073 53.3008780488 53.253097561 53.127902439 52.9293170732 52.6668780488 52.3505609756 51.991902439 51.599902439 51.1915365854 50.7867560976 50.4065121951 50.0712682927 49.7929756098 49.578097561 49.4355609756 49.3748536585 49.4124146341 49.5611707317 49.8151707317 50.160902439 50.5829268293
Canada CAN 71.1331707317 71.346097561 71.3670731707 71.3807317073 71.7763414634 71.872195122 72.0043902439 72.207804878 72.3534146341 72.5014634146 72.7004878049 73.0292682927 72.933902439 73.1626829268 73.2375609756 73.5217073171 73.856097561 74.2156097561 74.5297560976 74.8663414634 75.0780487805 75.4785365854 75.6804878049 76.0363414634 76.3175609756 76.3034146341 76.44 76.7395121951 76.8092682927 77.0656097561 77.3770731707 77.5534146341 77.3207317073 77.6851219512 77.8619512195 77.9775609756 78.2304878049 78.4804878049 78.6624390244 78.8829268293 79.2365853659 79.487804878 79.5902439024 79.8390243902 80.1414634146 80.2926829268 80.643902439 80.8043902439 80.9648780488 80.6617804878
Cape Verde CPV 48.672 48.9037804878 49.1239512195 49.3410243902 49.5701707317 49.8411463415 50.1907804878 50.6387317073 51.1940243902 51.8530487805 52.5990243902 53.405097561 54.2333902439 55.0495365854 55.8353414634 56.5782439024 57.2783170732 57.9487804878 58.5987804878 59.2298292683 59.8433414634 60.439195122 61.0173170732 61.5797073171 62.1265121951 62.6583170732 63.1733170732 63.672195122 64.156195122 64.6254878049 65.0802195122 65.5195121951 65.9453170732 66.3601219512 66.7704390244 67.1823170732 67.603195122 68.0370487805 68.487804878 68.9563902439 69.4482682927 69.9698536585 70.5136585366 71.0676341463 71.6177804878 72.1406585366 72.6103414634 73.0108536585 73.336195122 73.586804878
Cayman Islands CYM
Central African Republic CAF 36.4826341463 36.8957073171 37.3187804878 37.7603414634 38.2253658537 38.7263658537 39.2737560976 39.8715609756 40.5182682927 41.2093902439 41.9419268293 42.7114634146 43.503 44.2975609756 45.0796585366 45.8327560976 46.5462926829 47.2112195122 47.8185365854 48.3547804878 48.8095365854 49.1763414634 49.4568292683 49.6525365854 49.7640243902 49.7922926829 49.7393170732 49.6130487805 49.4179756098 49.1595609756 48.8288780488 48.4149756098 47.9173902439 47.3506097561 46.7385853659 46.1062926829 45.4801707317 44.8916341463 44.3725609756 43.9533414634 43.6633658537 43.5235365854 43.5288292683 43.672195122 43.9461219512 44.3475609756 44.8675121951 45.4825365854 46.1632439024 46.8837073171
Chad TCD 40.2428292683 40.6212682927 41.0037073171 41.3896341463 41.7775853659 42.162 42.5374146341 42.9022926829 43.2546585366 43.5964878049 43.9302926829 44.2620731707 44.5968292683 44.9415853659 45.2998780488 45.6787560976 46.0847560976 46.5154146341 46.9647073171 47.4276585366 47.8966829268 48.3657560976 48.822804878 49.2557804878 49.650195122 49.9915609756 50.2684146341 50.4772926829 50.6157560976 50.683804878 50.6799268293 50.607097561 50.4757804878 50.2989512195 50.088097561 49.8497317073 49.5858536585 49.3045121951 49.0171707317 48.7388292683 48.4889756098 48.2825853659 48.1295853659 48.0359756098 48.0112439024 48.0588536585 48.1812926829 48.3685853659 48.6057560976 48.8853170732
Channel Islands CHI 70.6397804878 70.7344146341 70.830097561 70.9333170732 71.0475853659 71.1719268293 71.2993414634 71.4218536585 71.5359756098 71.6407073171 71.7390487805 71.836 71.9380487805 72.0501707317 72.1773658537 72.3246097561 72.493902439 72.6852439024 72.8931219512 73.1160243902 73.3449512195 73.5739268293 73.7959268293 74.0064634146 74.2065365854 74.3981219512 74.5877317073 74.7818292683 74.9854634146 75.1985853659 75.4182439024 75.6369268293 75.8496829268 76.053 76.2473902439 76.4373414634 76.629902439 76.8315365854 77.0472195122 77.2779268293 77.5241219512 77.7852682927 78.0538536585 78.3238292683 78.590195122 78.8448780488 79.082902439 79.3007560976 79.4984634146 79.6755365854
Chile CHL 57.0162926829 57.4063414634 57.8295609756 58.2884146341 58.7809512195 59.3026829268 59.8456097561 60.403195122 60.9709512195 61.5472926829 62.1367073171 62.7466097561 63.3829756098 64.0492682927 64.743 65.4621463415 66.2067317073 66.9663170732 67.7274634146 68.4757317073 69.1917317073 69.8580731707 70.4637804878 71.0063658537 71.4847804878 71.905 72.2789512195 72.6234878049 72.9555121951 73.281902439 73.6035609756 73.9164146341 74.2139512195 74.495195122 74.7656829268 75.0414634146 75.3396341463 75.669804878 76.0330243902 76.4228292683 76.8217317073 77.2072195122 77.5552195122 77.8511707317 78.0895853659 78.2749756098 78.4158536585 78.5342682927 78.6472195122 78.7627073171
China CHN 43.4578780488 43.7722926829 44.704195122 46.3235121951 48.5743902439 51.2869268293 54.2011219512 57.0098780488 59.4668536585 61.4486585366 62.9022439024 63.8667317073 64.5144390244 64.9957804878 65.3712682927 65.6915609756 65.9844390244 66.2510731707 66.495804878 66.7389268293 66.993804878 67.2629268293 67.534902439 67.7998536585 68.0592682927 68.3131463415 68.5594878049 68.7973170732 69.0271219512 69.2469268293 69.4597317073 69.6640243902 69.8618292683 70.0546341463 70.2429268293 70.4247317073 70.5990243902 70.7663170732 70.927097561 71.0833902439 71.2417073171 71.4055365854 71.5794390244 71.7648780488 71.9623414634 72.1713170732 72.3897317073 72.6125853659 72.8353414634 73.0565121951
Colombia COL 56.7129268293 57.2438780488 57.7348536585 58.1958292683 58.6337560976 59.0520487805 59.4480731707 59.8197804878 60.1686585366 60.5027317073 60.8316829268 61.1642439024 61.5095609756 61.8756341463 62.2693902439 62.7040243902 63.1896097561 63.7223902439 64.2897317073 64.8772195122 65.4611463415 66.0129756098 66.512195122 66.943097561 67.2982926829 67.5755853659 67.7796341463 67.9340487805 68.061097561 68.1778292683 68.3055365854 68.4601219512 68.649 68.874902439 69.1393414634 69.4366829268 69.7576097561 70.0852439024 70.405195122 70.7118292683 71.0009756098 71.2736585366 71.5340243902 71.7882195122 72.0367804878 72.2797804878 72.5187560976 72.7537804878 72.9843414634 73.2099756098
Comoros COM 43.4419512195 43.8381463415 44.2339756098 44.6288780488 45.0247073171 45.4262926829 45.843902439 46.2819512195 46.7409756098 47.2185365854 47.7073170732 48.196097561 48.6736585366 49.1326829268 49.5707317073 49.9868292683 50.3863414634 50.7775609756 51.1668292683 51.5580487805 51.9551707317 52.3626585366 52.7775853659 53.196 53.6109268293 54.014902439 54.396 54.7462439024 55.0631463415 55.346195122 55.5994146341 55.8292439024 56.0481219512 56.2645365854 56.4844390244 56.709804878 56.9421463415 57.1764634146 57.4112926829 57.645097561 57.8764390244 58.099804878 58.3172195122 58.5316585366 58.7480731707 58.9784146341 59.2370731707 59.53 59.8611707317 60.2290731707
Congo, Dem. Rep. COD 41.0180487805 41.2335365854 41.4515121951 41.678 41.918 42.1804878049 42.4744878049 42.7969756098 43.1419512195 43.4999268293 43.856902439 44.1933902439 44.4953902439 44.753902439 44.9674390244 45.1399756098 45.2845121951 45.4160731707 45.5481219512 45.6846585366 45.8246829268 45.963195122 46.090195122 46.2006829268 46.2936585366 46.3786585366 46.4681707317 46.5677073171 46.6737804878 46.775902439 46.8400731707 46.8238292683 46.7076341463 46.4925121951 46.199902439 45.878804878 45.5966829268 45.4100243902 45.3557804878 45.4424146341 45.651902439 45.942195122 46.253804878 46.5412439024 46.7870243902 46.9916829268 47.1687560976 47.3492926829 47.5573414634 47.7969268293
Congo, Rep. COG 48.5835609756 49.2295121951 49.8399756098 50.4104390244 50.9404390244 51.4295121951 51.8817317073 52.3031463415 52.7002682927 53.0775853659 53.4365853659 53.7786829268 54.1023414634 54.409 54.700097561 54.9791707317 55.249195122 55.5117073171 55.7642439024 56.0052926829 56.2368292683 56.4593414634 56.6682926829 56.8532195122 57.0031219512 57.0941219512 57.1017560976 57.015097561 56.8356829268 56.5735121951 56.2465609756 55.8807804878 55.5086097561 55.1599268293 54.8562195122 54.6093902439 54.4214634146 54.2834146341 54.1882439024 54.140902439 54.1458536585 54.2130487805 54.3414878049 54.5296585366 54.7726097561 55.0648536585 55.4014390244 55.7704146341 56.1593414634 56.5587560976
Costa Rica CRI 61.6029512195 62.1742926829 62.7389512195 63.292902439 63.8366585366 64.3662195122 64.8801463415 65.3809512195 65.8722439024 66.3585609756 66.8489756098 67.3510243902 67.8722195122 68.414097561 68.9766585366 69.5594146341 70.1623658537 70.7754634146 71.3866829268 71.9839756098 72.5508292683 73.0736829268 73.5440487805 73.9583902439 74.3177073171 74.624 74.8857804878 75.1170487805 75.3323414634 75.5396585366 75.747 75.9568536585 76.1692195122 76.3815853659 76.5954390244 76.808804878 77.0216585366 77.2295121951 77.4303658537 77.6227317073 77.8040731707 77.9749268293 78.1347560976 78.2855853659 78.4284146341 78.5642439024 78.6950731707 78.8214146341 78.9462682927 79.0691707317
Cote d'Ivoire CIV 40.424195122 40.5932926829 40.7545365854 40.9189268293 41.1034146341 41.3368292683 41.6504878049 42.0622439024 42.5785365854 43.1974146341 43.9085365854 44.6926097561 45.5173902439 46.3500487805 47.1681219512 47.9595609756 48.7207560976 49.4540243902 50.1547073171 50.8107804878 51.4042439024 51.9206585366 52.352097561 52.6931707317 52.9404146341 53.0898536585 53.1439756098 53.1137804878 53.0142439024 52.8558536585 52.6441463415 52.3796341463 52.0708292683 51.732195122 51.3852195122 51.0513658537 50.7471219512 50.4899268293 50.2942195122 50.178902439 50.1608780488 50.2505609756 50.4438780488 50.7328292683 51.1113902439 51.5755609756 52.1183658537 52.7258780488 53.3777073171 54.055902439
Croatia HRV 65.9691219512 66.4139512195 66.8070487805 67.1524146341 67.4566097561 67.7277073171 67.9763170732 68.21 68.4373658537 68.6644634146 68.8978536585 69.1415853659 69.3906341463 69.6368780488 69.8752195122 70.0019512195 70.4553658537 70.7443902439 70.5387804878 70.4273170732 70.1753658537 70.3443902439 70.4826829268 70.2748780488 70.2185365854 70.886097561 71.4190243902 71.4702439024 71.4882926829 71.8446341463 72.1704878049 72.1853658537 71.2414634146 71.5224390244 71.8034146341 72.0843902439 72.3653658537 72.4951219512 72.3170731707 72.6419512195 72.807804878 74.5129268293 74.7173170732 74.613902439 75.5202439024 75.2446341463 75.8368292683 75.7056097561 75.912195122 76.1682926829
Cuba CUB 63.6626585366 64.2764390244 64.9006829268 65.535902439 66.1755853659 66.8127317073 67.4373658537 68.0409756098 68.6170487805 69.1616097561 69.6756341463 70.1656341463 70.636097561 71.0925365854 71.5319756098 71.9519268293 72.3454878049 72.7066341463 73.0308536585 73.3161219512 73.5623414634 73.767902439 73.9392195122 74.0802682927 74.1970731707 74.2882195122 74.3513414634 74.3905609756 74.4129512195 74.4300487805 74.459804878 74.5215853659 74.6253170732 74.776902439 74.9738536585 75.2067560976 75.4572439024 75.7064146341 75.9403414634 76.158 76.365804878 76.5796341463 76.8153414634 77.0808292683 77.374097561 77.683195122 77.993195122 78.2852439024 78.5474146341 78.7732195122
Curacao CUW
Cyprus CYP 69.5906097561 69.9255365854 70.2499756098 70.5644390244 70.8693902439 71.1653414634 71.4527804878 71.7322439024 72.0042195122 72.2686829268 72.5266585366 72.7776341463 73.0211219512 73.2575853659 73.4875609756 73.7115365854 73.9295121951 74.142 74.349 74.5514878049 74.7484878049 74.9424878049 75.1314878049 75.3154878049 75.4959756098 75.6729512195 75.8459268293 76.0153902439 76.1818292683 76.3442682927 76.5047073171 76.6621219512 76.8160487805 76.9679756098 77.115902439 77.2623170732 77.4057560976 77.5471707317 77.686097561 77.8235121951 77.9569268293 78.0853414634 78.2092682927 78.330195122 78.450097561 78.5739512195 78.7087317073 78.857902439 79.0214634146 79.1969512195
Czech Republic CZE 70.3487804878 70.5126829268 69.7868292683 70.3043902439 70.4595121951 70.1631707317 70.3848780488 70.2641463415 69.8407317073 69.3670731707 69.4402439024 69.6770731707 70.1765853659 70.0226829268 70.0865853659 70.4146341463 70.5326829268 70.5734146341 70.643902439 70.7495121951 70.2780487805 70.722195122 70.807804878 70.5914634146 70.8375609756 71.0463414634 70.9973170732 71.4456097561 71.6414634146 71.6756097561 71.383902439 71.8982926829 72.2717073171 72.767804878 72.9726829268 73.0748780488 73.7146341463 73.8248780488 74.5146341463 74.6682926829 74.9682926829 75.1731707317 75.2219512195 75.1707317073 75.7219512195 75.9243902439 76.5243902439 76.7243902439 76.9756097561 77.0780487805
Denmark DNK 72.1765853659 72.4382926829 72.3197560976 72.4004878049 72.4851219512 72.3707317073 72.4441463415 72.922195122 73.1214634146 73.2209756098 73.3434146341 73.4146341463 73.4390243902 73.682195122 73.8082926829 74.0751219512 73.7397560976 74.6324390244 74.3929268293 74.2192682927 74.1017073171 74.2304878049 74.5512195122 74.4204878049 74.562195122 74.4275609756 74.5797560976 74.6912195122 74.7717073171 74.7997560976 74.8053658537 75.157804878 75.1941463415 75.1168292683 75.3751219512 75.2126829268 75.5914634146 75.9451219512 76.1390243902 76.3414634146 76.5926829268 76.7926829268 76.8951219512 77.143902439 77.4926829268 77.843902439 78.0951219512 78.1951219512 78.4463414634 78.5975609756
Djibouti DJI 38.536 39.0096829268 39.4818292683 39.954902439 40.4289268293 40.9033658537 41.3787804878 41.8531707317 42.325097561 42.7925609756 43.2540731707 43.7041463415 44.1437804878 44.5749756098 45.0016829268 45.4339268293 45.8856585366 46.3633902439 46.866097561 47.3872439024 47.9128536585 48.421902439 48.8978780488 49.3273170732 49.7062195122 50.0376097561 50.328 50.594902439 50.8533414634 51.108804878 51.3663170732 51.6243658537 51.8804146341 52.1314878049 52.3790731707 52.624195122 52.8653902439 53.1036585366 53.3435121951 53.5894146341 53.8503414634 54.1347560976 54.4471219512 54.7893902439 55.1590243902 55.5500243902 55.9528536585 56.3565365854 56.755097561 57.1450487805
Dominica DMA 71.4634146341 71.9634146341 73.9512195122 75.9512195122 76.5975609756
Dominican Republic DOM 51.7907560976 52.5177317073 53.2322439024 53.9332682927 54.6213170732 55.2943414634 55.9543170732 56.5992195122 57.2300487805 57.8433170732 58.4365853659 59.0063902439 59.5522682927 60.0717804878 60.5663902439 61.032097561 61.4673658537 61.8746097561 62.2597804878 62.6318292683 63.001195122 63.3813414634 63.7797317073 64.2024390244 64.6514634146 65.1303170732 65.6355365854 66.158195122 66.6848536585 67.2051463415 67.704195122 68.1671463415 68.5885365854 68.9648780488 69.2971219512 69.5917317073 69.8596097561 70.1156097561 70.3715609756 70.6308292683 70.8937073171 71.1545365854 71.4053170732 71.6406097561 71.863 72.0766829268 72.2879268293 72.5044634146 72.7289512195 72.9619756098
Ecuador ECU 53.1200487805 53.7563658537 54.350097561 54.8917560976 55.3798292683 55.8198292683 56.2207804878 56.6017073171 56.9821219512 57.3705365854 57.7759268293 58.1997804878 58.6400731707 59.0947804878 59.5683902439 60.0643658537 60.587195122 61.1363902439 61.7104634146 62.3059512195 62.9199268293 63.5484146341 64.1849756098 64.8221463415 65.4534390244 66.0708292683 66.6697804878 67.2482195122 67.8061463415 68.3415365854 68.8568780488 69.3557317073 69.842097561 70.3200243902 70.7894878049 71.252 71.7094634146 72.1573902439 72.5912682927 73.0061463415 73.3920487805 73.7380731707 74.040804878 74.2992439024 74.5164146341 74.6992926829 74.8578292683 75.0049512195 75.1505853659 75.302195122
Egypt, Arab Rep. EGY 45.9335609756 46.3473658537 46.7697073171 47.2011219512 47.6440731707 48.0955609756 48.555097561 49.0196341463 49.4891463415 49.9655853659 50.4523902439 50.9545121951 51.4764146341 52.019097561 52.581097561 53.1604634146 53.7532682927 54.354097561 54.956 55.5565365854 56.150195122 56.7335121951 57.3074146341 57.8743658537 58.4373170732 59.0012195122 59.571 60.1521463415 60.7506341463 61.3685121951 62.0128292683 62.6876585366 63.3895853659 64.1127073171 64.8499756098 65.5934634146 66.3355853659 67.0653170732 67.7735853659 68.4493658537 69.0826585366 69.6674390244 70.2032439024 70.6915609756 71.1338780488 71.5286829268 71.8789756098 72.1922195122 72.4754390244 72.7341219512
El Salvador SLV 51.2914878049 52.0206585366 52.7113170732 53.3589512195 53.959 54.5099756098 55.0123170732 55.4679756098 55.8788780488 56.2429756098 56.5555853659 56.8096341463 57.0045365854 57.1433658537 57.2321219512 57.2617317073 57.2160731707 57.1092926829 56.9737804878 56.8539756098 56.8276097561 56.9774390244 57.3509268293 57.9682926829 58.8220487805 59.887 61.1142926829 62.4146341463 63.7012682927 64.9131707317 65.9908536585 66.8924634146 67.6225121951 68.1965609756 68.6201219512 68.913804878 69.1112926829 69.2559512195 69.3890487805 69.5332439024 69.7016097561 69.8956829268 70.0988292683 70.2999756098 70.4996341463 70.698804878 70.9004878049 71.1041707317 71.3108780488 71.5206097561
Equatorial Guinea GNQ 36.7330487805 37.0324878049 37.3319268293 37.6313414634 37.9312682927 38.2311707317 38.5315853659 38.833 39.1364390244 39.4398780488 39.7438536585 40.0468536585 40.3473658537 40.6473902439 40.946902439 41.2463658537 41.5477804878 41.853097561 42.1638292683 42.483 42.8141707317 43.1603902439 43.5227073171 43.9001707317 44.2897560976 44.6929268293 45.1081463415 45.5308292683 45.9539512195 46.3684634146 46.7654390244 47.1348536585 47.4722926829 47.7722926829 48.0313902439 48.2426097561 48.4 48.5115365854 48.587195122 48.6409512195 48.6902682927 48.7555609756 48.8517804878 48.9889268293 49.1719268293 49.4002926829 49.6655121951 49.9526341463 50.2472195122 50.5447560976
Eritrea ERI 39.1062682927 39.5283658537 39.9479756098 40.364097561 40.7772439024 41.192902439 41.6175609756 42.0502439024 42.4864634146 42.914195122 43.317 43.6743658537 43.9723170732 44.2003414634 44.355902439 44.4299512195 44.4174634146 44.3363658537 44.2151707317 44.0823414634 43.9783658537 43.9432926829 44.0036097561 44.177902439 44.4786829268 44.9069756098 45.449804878 46.0761707317 46.7580731707 47.4790243902 48.2335365854 49.0215853659 49.8426585366 50.6922439024 51.5528780488 52.4046097561 53.227 54.0065365854 54.7357560976 55.4075853659 56.0249756098 56.5942926829 57.1324634146 57.6539268293 58.1626829268 58.6642682927 59.1577317073 59.6392195122 60.1052682927 60.5569268293
Estonia EST 68.5777317073 68.839195122 69.0655365854 69.2643658537 69.4392195122 69.5965121951 69.739097561 69.8632682927 69.9672926829 70.048097561 70.0985609756 70.1076341463 70.0723902439 69.9939268293 69.8793170732 69.7346341463 69.5699756098 69.4014390244 69.2441707317 69.1132682927 69.0330487805 68.9780487805 69.1268292683 69.3756097561 69.2780487805 69.3804878049 70.0853658537 70.643902439 70.6975609756 70.0390243902 69.4756097561 69.3731707317 68.8634146341 67.9097560976 66.5 67.543902439 69.612195122 69.8097560976 69.3585365854 70.0634146341 70.4170731707 70.2585365854 70.9048780488 71.3170731707 71.9097560976 72.5682926829 72.6914634146 72.8146341463 73.7707317073 74.8243902439
Ethiopia ETH 38.4057073171 39.0686341463 39.6971463415 40.2757804878 40.7955365854 41.2524390244 41.6514634146 42.0075609756 42.3342195122 42.637902439 42.9285853659 43.2147317073 43.4958536585 43.7659268293 44.0164634146 44.217 44.3290487805 44.3381463415 44.251804878 44.0935121951 43.9142439024 43.7784634146 43.7421463415 43.8422439024 44.0902682927 44.4752195122 44.9641219512 45.5015365854 46.0399512195 46.557902439 47.0453902439 47.502902439 47.9489512195 48.398 48.8530487805 49.3136341463 49.7752682927 50.2389512195 50.7086829268 51.1929268293 51.7101219512 52.2822195122 52.9186829268 53.618 54.3706585366 55.1566585366 55.9515609756 56.7239268293 57.4507804878 58.1181707317
Faeroe Islands FRO 74.4975609756 75.9853658537 76.2219512195 75.8780487805 75.7731707317 75.4634146341 75.6097560976 75.7634146341 75.9073170732 76.0097560976 76.4609756098 76.7195121951 76.9146341463 77.1195121951 77.4682926829 77.7609756098 77.812195122 78.1731707317 78.6219512195 78.5829268293 78.743902439 79.0975609756 79.0951219512 78.8414634146 79.1829268293 79.4829268293 79.6317073171 79.9804878049
Fiji FJI 55.9504146341 56.3856341463 56.8113658537 57.227097561 57.6333170732 58.0315365854 58.4217317073 58.803902439 59.1775365854 59.5436585366 59.9007560976 60.2468536585 60.5824634146 60.9075609756 61.2226341463 61.530097561 61.8309268293 62.1290487805 62.4244634146 62.7176585366 63.0091463415 63.2964634146 63.5786829268 63.8533414634 64.1199756098 64.379097561 64.6297073171 64.8732926829 65.1113414634 65.3438536585 65.5708536585 65.7933170732 66.0112439024 66.2241463415 66.4335365854 66.638902439 66.8402439024 67.0375609756 67.2308536585 67.4201219512 67.6073170732 67.792902439 67.9773658537 68.1602682927 68.3406585366 68.5152439024 68.679195122 68.8316341463 68.9715853659 69.1020243902
Finland FIN 68.8197560976 68.8441463415 68.577804878 69.0126829268 69.2209756098 68.977804878 69.4770731707 69.6665853659 69.6163414634 69.5034146341 70.1795121951 70.0175609756 70.7073170732 71.2236585366 71.1348780488 71.6736585366 71.8129268293 72.3502439024 72.8970731707 73.1553658537 73.44 73.7465853659 74.2980487805 74.2009756098 74.5190243902 74.2229268293 74.56 74.5919512195 74.5770731707 74.792195122 74.8131707317 75.2275609756 75.4553658537 75.7051219512 76.3956097561 76.4095121951 76.6934146341 76.8785365854 77.0907317073 77.2912195122 77.4658536585 77.9658536585 78.1195121951 78.3682926829 78.7146341463 78.8170731707 79.2146341463 79.2634146341 79.5682926829 79.7195121951
France FRA 69.8682926829 70.1170731707 70.3146341463 70.5146341463 70.6634146341 70.812195122 70.9609756098 71.1609756098 71.3097560976 71.4585365854 71.6585365854 71.9073170732 72.1073170732 72.356097561 72.6048780488 72.8536585366 73.1024390244 73.3512195122 73.6024390244 73.8512195122 74.0512195122 74.3 74.5 74.8 75 75.3 75.6 75.8 76.1 76.3487804878 76.6 76.8487804878 77.1 77.3 77.6487804878 77.7512195122 77.9536585366 78.3048780488 78.456097561 78.6073170732 78.9585365854 79.0585365854 79.2609756098 79.2634146341 80.1634146341 80.1146341463 80.5146341463 80.8146341463 80.8682926829 81.0682926829
French Polynesia PYF 56.329902439 56.7528780488 57.1358292683 57.5097073171 57.8945365854 58.2984146341 58.7184634146 59.1347804878 59.5324146341 59.9102926829 60.2612926829 60.577195122 60.8628292683 61.1305853659 61.3984146341 61.7008536585 62.0785121951 62.5510487805 63.1216341463 63.7818292683 64.4997073171 65.2317804878 65.93 66.5583414634 67.1023414634 67.5615365854 67.9504634146 68.3041219512 68.6475121951 68.9900731707 69.3337804878 69.6715365854 69.9952682927 70.2994390244 70.5870243902 70.8675121951 71.1503902439 71.4447560976 71.7561219512 72.0825365854 72.4210731707 72.7642926829 73.1012195122 73.4222926829 73.7225121951 73.9987560976 74.2494146341 74.4788780488 74.691097561 74.8895853659
Gabon GAB 39.5681707317 39.9256341463 40.370097561 40.9200731707 41.5785365854 42.3355121951 43.1694878049 44.0414634146 44.9199268293 45.7884146341 46.6358780488 47.4603658537 48.2733658537 49.0828780488 49.8903902439 50.699902439 51.5149268293 52.3379268293 53.1674146341 54.0018780488 54.8438292683 55.6982682927 56.5577073171 57.4076341463 58.229097561 58.995097561 59.6776585366 60.2577804878 60.7234878049 61.0672682927 61.2891219512 61.3965365854 61.4129756098 61.3609512195 61.2554878049 61.0976097561 60.8794390244 60.6049512195 60.2926829268 59.9720487805 59.6909512195 59.4977804878 59.423902439 59.4837560976 59.681804878 60.0055853659 60.4271707317 60.8991463415 61.3811219512 61.8491219512
Gambia, The GMB 33.5446341463 33.7785609756 34.0109756098 34.255902439 34.5303414634 34.868804878 35.3063170732 35.8623658537 36.5429756098 37.3421463415 38.2423658537 39.2116097561 40.2113902439 41.2051707317 42.1739512195 43.1097317073 44.0165121951 44.9092926829 45.7965853659 46.6738780488 47.5411707317 48.3959756098 49.2307804878 50.0315853659 50.7813658537 51.4521219512 52.0128292683 52.4534634146 52.7760487805 52.9915609756 53.1250487805 53.209 53.2834634146 53.3804390244 53.5204634146 53.7135365854 53.9596341463 54.2402682927 54.5374146341 54.8450731707 55.1567560976 55.4654878049 55.7687560976 56.0655609756 56.3548536585 56.6400731707 56.9266585366 57.2200487805 57.5242439024 57.8382195122
Georgia GEO 63.4277073171 63.8277073171 64.2297073171 64.6337073171 65.0357073171 65.4297073171 65.8107073171 66.1737073171 66.5167073171 66.8397073171 67.1497073171 67.4566829268 67.7671707317 68.0801463415 68.3911219512 68.6816097561 68.9301463415 69.1222439024 69.2523658537 69.3270487805 69.3627804878 69.3865609756 69.4243658537 69.4941707317 69.5999268293 69.7340731707 69.8805121951 70.0147073171 70.1217073171 70.1985609756 70.2478780488 70.2768292683 70.3020487805 70.3386097561 70.3965121951 70.4902682927 70.6292926829 70.8139512195 71.0381219512 71.293195122 71.563097561 71.8267317073 72.0686341463 72.2758292683 72.4473414634 72.5887804878 72.7142439024 72.8413414634 72.9846341463 73.1471463415
Germany DEU 69.6202926829 69.8263902439 70.010097561 70.1719512195 70.3119512195 70.4261463415 70.5085609756 70.5621463415 70.5928780488 70.6126585366 70.640902439 70.6964634146 70.7942682927 70.941804878 71.1411219512 71.3867804878 71.6664634146 71.961804878 72.2559268293 72.5423658537 72.8186341463 73.089195122 73.3614146341 73.6377073171 73.917 74.1917317073 74.4533170732 74.6962682927 74.9186097561 75.1228780488 75.3161219512 75.3195121951 75.8195121951 75.8707317073 76.2707317073 76.4219512195 76.6731707317 77.0731707317 77.4756097561 77.7268292683 77.9268292683 78.3292682927 78.2292682927 78.3804878049 78.6804878049 78.9317073171 79.1317073171 79.5341463415 79.7365853659 79.8365853659
Ghana GHA 45.9767073171 46.3184390244 46.613804878 46.8717804878 47.1062682927 47.3360243902 47.5802195122 47.8522439024 48.1615121951 48.5126585366 48.9089512195 49.3447317073 49.8064146341 50.2777560976 50.747902439 51.2058536585 51.6409756098 52.05 52.4317073171 52.7855121951 53.1104390244 53.4090731707 53.6894634146 53.9646585366 54.2455365854 54.5554146341 54.9205609756 55.3458536585 55.8246829268 56.3380487805 56.8430243902 57.2862926829 57.6300487805 57.8559512195 57.9690731707 57.9929268293 57.9684878049 57.9551219512 58.0012439024 58.134804878 58.3822439024 58.7555365854 59.232195122 59.7857317073 60.3966097561 61.0383170732 61.6813658537 62.3002439024 62.8735121951 63.3881707317
Gibraltar GIB
Greece GRC 68.7255609756 69.0507560976 69.367902439 69.6779756098 69.9830243902 70.2825609756 70.5771463415 70.8652926829 71.1465121951 71.4227560976 71.694 71.9611463415 72.2271463415 72.4914634146 72.7565609756 73.0244634146 73.2956585366 73.5717073171 73.8512195122 74.1327073171 74.4152926829 74.6970487805 74.976 75.2491707317 75.5145121951 75.7699756098 76.016 76.2514878049 76.4773658537 76.687804878 76.9390243902 77.1365853659 77.3829268293 77.3902439024 77.6390243902 77.5853658537 77.6853658537 78.1365853659 77.8390243902 77.987804878 77.887804878 78.387804878 78.6414634146 78.8414634146 79.0390243902 79.2390243902 79.4390243902 79.4390243902 79.9390243902 80.187804878
Greenland GRL 63.4146341463 65.3414634146 65.2853658537 65.3365853659 65.4390243902 65.9268292683 66.9268292683 68.8634146341 68.4390243902 68.3541463415
Grenada GRD 63.1079268293 63.2096341463 63.3108292683 63.4125365854 63.5132195122 63.6144146341 63.715097561 63.8157804878 63.9164390244 64.0171219512 64.117804878 64.218 64.3186829268 64.4183902439 64.5185853659 64.6137804878 64.698902439 64.7744878049 64.8455365854 64.920097561 65.0093170732 65.1253170732 65.2791707317 65.4833658537 65.7467804878 66.0871707317 66.517195122 67.0341463415 67.6214146341 68.2620731707 68.9273658537 69.583195122 70.2019268293 70.7642926829 71.2583170732 71.6853658537 72.0596829268 72.4058780488 72.7436829268 73.0774634146 73.4077073171 73.727 74.0265121951 74.2989512195 74.5443414634 74.7642682927 74.9627560976 75.1467560976 75.3217804878 75.4923414634
Guam GUM 61.2263414634 61.7252926829 62.219195122 62.707 63.1862439024 63.6574146341 64.1190243902 64.5715853659 65.0141463415 65.4467073171 65.8673170732 66.2754878049 66.6707317073 67.0530487805 67.4224390244 67.778902439 68.1224146341 68.4544390244 68.7754878049 69.0875121951 69.3905365854 69.6865365854 69.9755365854 70.2585365854 70.5355365854 70.8075365854 71.0755365854 71.3375365854 71.5935365854 71.8435365854 72.0855365854 72.3200487805 72.5460487805 72.7625609756 72.9715609756 73.1750731707 73.3745609756 73.5725365854 73.77 73.9679512195 74.1653902439 74.360804878 74.5532195122 74.7411219512 74.9240487805 75.1039512195 75.2823902439 75.4598292683 75.637804878 75.8167804878
Guatemala GTM 45.7452926829 46.2756585366 46.8214634146 47.3812195122 47.9553902439 48.5534878049 49.1869512195 49.8602682927 50.5709512195 51.3064878049 52.047902439 52.7732195122 53.4604878049 54.0957317073 54.6724390244 55.1896097561 55.6522439024 56.080804878 56.4922682927 56.8986585366 57.312 57.7413170732 58.1876341463 58.6529756098 59.1393658537 59.6447804878 60.165195122 60.6946097561 61.2254878049 61.7563658537 62.2866829268 62.8184634146 63.3537073171 63.8934634146 64.4368292683 64.9863902439 65.543804878 66.1061463415 66.6674146341 67.2181219512 67.7441707317 68.2289512195 68.6623170732 69.0421219512 69.367804878 69.6478536585 69.8947317073 70.1250487805 70.3523414634 70.5846341463
Guinea GIN 32.3641219512 32.4533170732 32.534097561 32.6103902439 32.6901707317 32.7882682927 32.9195365854 33.0958780488 33.3252682927 33.6122439024 33.9579268293 34.3585121951 34.8026585366 35.2765609756 35.7712682927 36.2787317073 36.7919512195 37.3077317073 37.8224878049 38.3326585366 38.8347317073 39.3296829268 39.8195609756 40.3074146341 40.7927073171 41.2764878049 41.7607317073 42.2454634146 42.7276829268 43.2059268293 43.6706829268 44.1099512195 44.5217560976 44.9085853659 45.2789512195 45.6518536585 46.0488292683 46.4883414634 46.978902439 47.522 48.1101463415 48.7298292683 49.3570243902 49.9737317073 50.5689512195 51.1356585366 51.6733658537 52.1885609756 52.6872439024 53.1699268293
Guinea-Bissau GNB 34.5066829268 34.7786341463 35.0500731707 35.3200243902 35.5899756098 35.8594146341 36.1298780488 36.4003414634 36.6718292683 36.942804878 37.208804878 37.4623170732 37.7023170732 37.931804878 38.156804878 38.3902926829 38.6502926829 38.9472926829 39.284804878 39.6582926829 40.0567317073 40.4640487805 40.8587560976 41.2253414634 41.5543170732 41.8407560976 42.084195122 42.2952195122 42.4848780488 42.6596829268 42.8241463415 42.9847560976 43.1449756098 43.3102439024 43.4850243902 43.6752926829 43.8855121951 44.115195122 44.3603170732 44.6193658537 44.8848780488 45.1468536585 45.398804878 45.6397804878 45.8732439024 46.1096585366 46.3619756098 46.6426829268 46.9592682927 47.3132439024
Guyana GUY 52.7795853659 53.1506585366 53.4889512195 53.7988780488 54.0868536585 54.3697073171 54.6652195122 54.9852682927 55.3372439024 55.7216097561 56.1304878049 56.5515365854 56.9659512195 57.3602926829 57.7275609756 58.0670487805 58.3825365854 58.683804878 58.9757804878 59.257 59.5235853659 59.7682439024 59.9857560976 60.1744146341 60.3373902439 60.4773414634 60.598804878 60.7122439024 60.8275853659 60.9543414634 61.1014634146 61.2744390244 61.4771707317 61.7111219512 61.9812195122 62.2924878049 62.6478780488 63.0444390244 63.4786341463 63.9464390244 64.4482682927 64.9855609756 65.5517560976 66.1368780488 66.7268780488 67.3033170732 67.8472195122 68.3481707317 68.7992195122 69.1978780488
Haiti HTI 42.0826829268 42.6555609756 43.2229512195 43.7843414634 44.3347804878 44.8677560976 45.3738536585 45.8480487805 46.2898536585 46.699195122 47.0819756098 47.4440731707 47.7953902439 48.1459268293 48.502195122 48.8693414634 49.252 49.6458292683 50.0499756098 50.4619512195 50.8797317073 51.2982682927 51.7144146341 52.1255609756 52.5321707317 52.9377073171 53.3497317073 53.7707560976 54.2033170732 54.6443902439 55.0904146341 55.534804878 55.9715365854 56.3900731707 56.7854146341 57.1460731707 57.4610731707 57.7314878049 57.9648780488 58.1718536585 58.3720731707 58.5897073171 58.8432926829 59.1417804878 59.4880731707 59.8734390244 60.2810731707 60.6877317073 61.0747804878 61.4346829268
Honduras HND 46.2103170732 46.9036341463 47.5879756098 48.2558780488 48.9017804878 49.523195122 50.1205853659 50.7029512195 51.2782926829 51.855097561 52.439902439 53.0417317073 53.664097561 54.3095365854 54.9800487805 55.6771219512 56.3982682927 57.1379512195 57.8896829268 58.6494146341 59.4186829268 60.2024878049 60.9993414634 61.8017317073 62.5981463415 63.3675365854 64.0883902439 64.7471463415 65.3383170732 65.8643902439 66.3393902439 66.7858536585 67.2273414634 67.6783658537 68.1419268293 68.607 69.0545365854 69.464 69.8213658537 70.1256829268 70.3820243902 70.6009756098 70.8026097561 71.0034634146 71.2120487805 71.4388536585 71.6898292683 71.958902439 72.2409756098 72.532
Hong Kong SAR, China HKG 66.9997073171 67.5793658537 68.130097561 68.6434390244 69.1183658537 69.5553902439 69.9614878049 70.3466097561 70.7202439024 71.0878536585 71.4524390244 71.4585365854 71.456097561 72.1097560976 72.612195122 73.3682926829 72.8195121951 73.3195121951 73.5756097561 73.6731707317 74.6731707317 75.3243902439 75.4292682927 75.2756097561 76.0292682927 76.4341463415 76.6853658537 76.8829268293 77.0829268293 77.0292682927 77.3804878049 77.8829268293 77.6780487805 78.0317073171 78.5292682927 78.6829268293 79.6268292683 80.1268292683 80.1317073171 80.3829268293 80.8780487805 81.4243902439 81.4780487805 81.3292682927 81.7804878049 81.5804878049 82.3756097561 82.3756097561 82.3397560976 82.7243902439
Hungary HUN 68.0031707317 68.936097561 67.8658536585 68.8741463415 69.3809756098 69.0712195122 69.8224390244 69.4070731707 69.2302439024 69.3146341463 69.1646341463 69.0524390244 69.6646341463 69.5180487805 69.2480487805 69.29 69.5731707317 69.8480487805 69.393902439 69.6153658537 69.0617073171 69.1392682927 69.357804878 68.9736585366 69.0258536585 68.972195122 69.1734146341 69.6512195122 70.0234146341 69.4617073171 69.3156097561 69.3770731707 69.1170731707 69.1012195122 69.4697560976 69.7917073171 70.3287804878 70.7024390244 70.557804878 70.6770731707 71.2463414634 72.2487804878 72.3487804878 72.3 72.6487804878 72.6487804878 73.0975609756 73.1512195122 73.7024390244 73.9048780488
Iceland ISL 73.4267073171 73.495 73.5418536585 73.5732926829 73.5958292683 73.612902439 73.6238780488 73.634195122 73.6532926829 73.6912439024 73.7731463415 73.9227073171 74.1490731707 74.4478292683 74.8069756098 75.1988780488 75.5878780488 75.9402926829 76.2330243902 76.4561219512 76.6127804878 76.7202682927 76.807804878 76.899 77.0063170732 77.138097561 77.2960731707 77.4724390244 77.6579756098 77.8490731707 78.0327317073 78.1965121951 78.335097561 78.4476829268 78.5428292683 78.637097561 78.7540243902 78.9116097561 79.1182926829 79.3725609756 79.6608536585 80.1 80.4487804878 80.6585365854 80.9073170732 81.1024390244 81.156097561 81.1073170732 81.2585365854 81.456097561
India IND 42.4455853659 43.0957073171 43.7577560976 44.4287560976 45.1082195122 45.7901707317 46.4716341463 47.1486097561 47.8195365854 48.4839268293 49.1476341463 49.820097561 50.5047317073 51.1985609756 51.8961463415 52.5806097561 53.2365853659 53.8482195122 54.4056585366 54.9049268293 55.3470731707 55.7375853659 56.0903658537 56.4197560976 56.7326585366 57.0319268293 57.3173658537 57.5884390244 57.847097561 58.0993902439 58.3528536585 58.6156829268 58.8925121951 59.1864878049 59.4991707317 59.8315609756 60.1786097561 60.5357317073 60.8953414634 61.2558780488 61.6138780488 61.9687804878 62.3211219512 62.6709512195 63.0193170732 63.3672439024 63.716804878 64.0685365854 64.4229512195 64.7785609756
Indonesia IDN 45.0732682927 45.8273658537 46.5567073171 47.2617560976 47.9435365854 48.6076585366 49.2582439024 49.9034390244 50.5468536585 51.1890243902 51.8299756098 52.4671463415 53.0944390244 53.708804878 54.3071707317 54.8905365854 55.4574146341 56.0097804878 56.5497073171 57.0761463415 57.5911219512 58.0936097561 58.584097561 59.0631219512 59.5306341463 59.9866585366 60.431195122 60.8652195122 61.2882682927 61.700804878 62.1038536585 62.496902439 62.8804634146 63.2545365854 63.6206097561 63.9777073171 64.327804878 64.6694390244 65.0035609756 65.3307073171 65.6463658537 65.9490731707 66.237804878 66.5165365854 66.7912439024 67.0733658537 67.3768292683 67.7095853659 68.0751463415 68.4709756098
Iran, Islamic Rep. IRN 44.5774390244 45.340804878 46.0850731707 46.8112682927 47.5189756098 48.2023414634 48.8555609756 49.4762195122 50.0688292683 50.641902439 51.2456829268 51.9446585366 52.7490487805 53.6267073171 54.5114146341 55.2263658537 55.5519512195 55.3815609756 54.71 53.6256097561 52.3442439024 51.154902439 50.3404146341 50.1057560976 50.5314390244 51.635097561 53.3405609756 55.4142195122 57.6270731707 59.8407073171 61.9104634146 63.7254878049 65.2640487805 66.5198536585 67.4774878049 68.1544634146 68.603195122 68.9196585366 69.1880243902 69.4518292683 69.7396585366 70.0585365854 70.3867804878 70.7073902439 71.0224634146 71.333097561 71.6384634146 71.9346341463 72.2196585366 72.4920731707
Iraq IRQ 48.8539268293 49.9329268293 50.9767560976 51.983902439 52.949902439 53.8707804878 54.7395853659 55.5559268293 56.3164390244 57.0212195122 57.6951219512 58.372195122 59.0554390244 59.7204634146 60.3228780488 60.7249512195 60.7581463415 60.36 59.5591463415 58.4581219512 57.2847073171 56.3282195122 55.8321219512 55.9501707317 56.7224146341 58.1053170732 59.960195122 62.0253658537 64.0624878049 65.9364146341 67.534195122 68.7992682927 69.7719268293 70.496097561 70.9761707317 71.2347073171 71.3117804878 71.2642439024 71.1406585366 70.9688780488 70.7434878049 70.4345853659 70.0258780488 69.526097561 68.9787804878 68.4636341463 68.071804878 67.8640731707 67.8711219512 68.0915121951
Ireland IRL 69.6917560976 69.9041219512 70.0879756098 70.249804878 70.3945853659 70.5252926829 70.6414146341 70.7435121951 70.8330731707 70.9151219512 70.9962195122 71.0813658537 71.1745853659 71.2808780488 71.4032926829 71.5462926829 71.7128780488 71.9000487805 72.1047560976 72.3230243902 72.5493658537 72.7777804878 73.0037804878 73.2223902439 73.4345853659 73.640902439 73.848804878 74.0633170732 74.2864390244 74.5156097561 74.7413170732 74.9505365854 75.1362439024 75.2964390244 75.4376341463 75.5708536585 75.7853658537 75.9697560976 76.1953658537 76.0736585366 76.5407317073 77.1397560976 77.6365853659 77.9175609756 78.1985365854 78.4795121951 78.7604878049 79.0414634146 79.1414634146 79.5
Isle of Man IMN 76.5292682927 77.9658536585
Israel ISR 72.0065853659 72.112195122 72.2856097561 71.5097560976 71.0565853659 70.9704878049 71.2134146341 71.7190243902 71.0780487805 71.6934146341 71.6617073171 72.0451219512 72.956097561 72.9585365854 73.2073170732 73.5073170732 73.8756097561 74.2609756098 74.1097560976 74.4585365854 74.8073170732 75.2073170732 74.956097561 75.2585365854 74.4365853659 76.3073170732 76.6073170732 76.7585365854 76.5048780488 77.1536585366 77.4024390244 77.4512195122 78.1048780488 78 78.1487804878 78.6585365854 78.9536585366 79.4073170732 79.4512195122 79.6487804878 80.1463414634 80.1512195122 80.3048780488 80.6048780488 81.0024390244 81.5536585366
Italy ITA 69.123902439 69.7602439024 69.1497560976 69.2480487805 70.3117073171 70.1717073171 70.926097561 70.9565853659 70.78 70.8119512195 71.5587804878 71.8068292683 72.0753658537 72.0263414634 72.7343902439 72.6473170732 72.9919512195 73.3646341463 73.6931707317 74.0026829268 73.9431707317 74.353902439 74.8146341463 74.6402439024 75.3895121951 75.4953658537 75.8107317073 76.2251219512 76.4056097561 76.8048780488 76.8590243902 76.8780487805 77.237804878 77.51 77.7497560976 78.0143902439 78.3319512195 78.6285365854 78.4268292683 78.8268292683 79.4268292683 79.8292682927 79.9780487805 79.9317073171 80.7292682927 80.5804878049 81.1317073171 81.2853658537 81.3853658537 81.4365853659
Jamaica JAM 64.1918292683 64.7592195122 65.2797804878 65.754 66.1878536585 66.5848292683 66.9498292683 67.2888536585 67.6063414634 67.9067560976 68.1910487805 68.4577073171 68.7057317073 68.9351463415 69.1494634146 69.3587317073 69.5725121951 69.7953414634 70.0262195122 70.2601463415 70.4855365854 70.6883414634 70.854 70.9734146341 71.0425609756 71.0593658537 71.0263170732 70.9564390244 70.862804878 70.7555121951 70.6456341463 70.538804878 70.4415853659 70.359097561 70.2983902439 70.2634634146 70.2552682927 70.2712926829 70.3109512195 70.3762682927 70.4722926829 70.6056097561 70.7762439024 70.982195122 71.2184390244 71.4794146341 71.7560731707 72.040804878 72.3230243902 72.5946585366
Japan JPN 67.666097561 68.31 68.5948780488 69.6580487805 70.1324390244 70.2019512195 70.9865853659 71.2765853659 71.6112195122 71.8387804878 71.9502439024 72.8829268293 73.5065853659 73.7575609756 74.393902439 75.0573170732 75.4568292683 75.8982926829 76.0382926829 76.3375609756 76.0917073171 76.4143902439 76.9229268293 76.9614634146 77.3653658537 77.6504878049 78.0646341463 78.4836585366 78.3992682927 78.8180487805 78.8368292683 79.1007317073 79.153902439 79.2936585366 79.6870731707 79.5363414634 80.2002439024 80.4241463415 80.5014634146 80.5707317073 81.076097561 81.4170731707 81.5634146341 81.76 82.0302439024 81.9251219512 82.3219512195 82.5070731707 82.5875609756 82.9314634146
Jordan JOR 53.8540487805 54.5577804878 55.2555609756 55.952902439 56.6522682927 57.3571707317 58.068097561 58.7840731707 59.5006097561 60.2162195122 60.927902439 61.6336585366 62.33 63.0123902439 63.6753902439 64.3139512195 64.9226097561 65.5008536585 66.0467073171 66.5586829268 67.0367804878 67.4825609756 67.8975121951 68.2876341463 68.6533902439 68.9977560976 69.3221707317 69.6275853659 69.9139512195 70.1832682927 70.4345121951 70.6672195122 70.8804146341 71.0741219512 71.2508292683 71.4124878049 71.561097561 71.6986097561 71.8290243902 71.9533170732 72.0750243902 72.1926585366 72.3077804878 72.4203658537 72.5314634146 72.6450243902 72.7635121951 72.8869268293 73.0162195122 73.1509512195
Kazakhstan KAZ 58.3035609756 58.7155609756 59.1315609756 59.5495609756 59.9655609756 60.3775609756 60.7795609756 61.1655609756 61.5335609756 61.8795609756 62.1975609756 62.4845609756 62.7415609756 62.9765609756 63.1935609756 63.4055365854 63.6214390244 63.8522926829 64.103097561 64.3779512195 66.6243902439 66.706097561 66.787804878 67.662195122 68.5365853659 68.5365853659 68.9134146341 69.2902439024 68.8487804878 68.2902439024 68.3365853659 67.9829268293 67.7317073171 66.7268292683 65.6731707317 64.9195121951 64.1097560976 64.4634146341 64.5609756098 65.5195121951 65.5170731707 65.7682926829 65.9682926829 65.8658536585 65.887804878 65.9097560976 66.1609756098 66.5048780488 67.0219512195 68.4292682927
Kenya KEN 46.3624146341 47.013 47.6522439024 48.2697560976 48.8605853659 49.4287560976 49.9816829268 50.5332439024 51.0918536585 51.6609756098 52.2365853659 52.8142439024 53.3859512195 53.9457560976 54.4921463415 55.0311219512 55.5726829268 56.120804878 56.6719512195 57.2165853659 57.7401707317 58.2286585366 58.6625121951 59.0272682927 59.3103902439 59.5099268293 59.6303414634 59.6787317073 59.6561463415 59.5526829268 59.3399512195 58.9795853659 58.4631219512 57.7995853659 57.0174634146 56.1492195122 55.2363170732 54.3371219512 53.5119756098 52.8132195122 52.2996341463 52.0180731707 51.9659512195 52.1272439024 52.4839268293 53.0095609756 53.662195122 54.3860243902 55.1242195122 55.8393658537
Kiribati KIR 51.9048780488 54.6951219512 58.1951219512 59.4390243902 60.4390243902 59.5365853659 62.8243902439 60.9487804878
Korea, Dem. Rep. PRK 55.2211707317 55.7175853659 56.217804878 56.7392439024 57.2963658537 57.9020731707 58.564804878 59.2750487805 60.019902439 60.7909512195 61.5753414634 62.3602195122 63.1322195122 63.8760243902 64.5797317073 65.2314390244 65.8242195122 66.3624878049 66.8511707317 67.2932195122 67.6986341463 68.082902439 68.4544390244 68.8146097561 69.1592439024 69.4930731707 69.8172926829 70.114804878 70.3551219512 70.5028292683 70.4662682927 70.1393170732 69.4963414634 68.5706097561 67.4401707317 66.271902439 65.2720731707 64.601804878 64.3568292683 64.5495609756 65.1105121951 65.8982682927 66.7150731707 67.4055853659 67.9053658537 68.1954878049 68.3080243902 68.3409268293 68.374097561 68.4323902439
Korea, Rep. KOR 52.9987317073 53.7346829268 54.4830731707 55.2453902439 56.0216341463 56.8217560976 57.6582195122 58.5300243902 59.4276829268 60.3317317073 61.2072682927 62.4436585366 62.8365853659 63.2295121951 63.5926829268 63.9558536585 64.3017073171 64.6475609756 64.971097561 65.2946341463 65.8019512195 66.3092682927 66.7742682927 67.2392682927 67.886097561 68.5329268293 69.171097561 69.8092682927 70.3343902439 70.8595121951 71.2948780488 71.7302439024 72.206097561 72.6819512195 73.0381707317 73.3943902439 73.821097561 74.247804878 74.8106097561 75.3734146341 75.8554878049 76.3375609756 76.823902439 77.2602439024 77.8465853659 78.4326829268 78.9692682927 79.3495121951 79.8326829268 80.2973170732
Kosovo KSV 65.9326829268 66.1626829268 66.3826829268 66.597804878 66.8129268293 67.0180487805 67.2131707317 67.3982926829 67.5785365854 67.7587804878 67.9290243902 68.0892682927 68.2495121951 68.4 68.5451219512 68.6856097561 68.8209756098 68.9512195122 66.9512195122 67.9512195122 67.9475609756 67.9387804878 68.1895121951 68.4402439024 68.6909756098 68.9368292683 69.1824390244 69.4180487805 69.6487804878
Kuwait KWT 61.4006829268 62.0518292683 62.6799756098 63.2836097561 63.8632439024 64.4188780488 64.949 65.4546341463 65.935804878 66.3945365854 66.8323658537 67.2523170732 67.6563902439 68.0461219512 68.4235121951 68.7905609756 69.1467804878 69.4926341463 69.8265853659 70.148097561 70.4567073171 70.7508292683 71.0304878049 71.2941463415 71.5412926829 71.7718780488 71.984902439 72.1808780488 72.3617804878 72.528097561 72.6818536585 72.8225365854 72.9526585366 73.0737317073 73.1872439024 73.2942195122 73.3956585366 73.4910487805 73.5823902439 73.6697073171 73.7524878049 73.8307804878 73.9035609756 73.9738292683 74.0425853659 74.1132926829 74.191902439 74.279902439 74.3782926829 74.4875609756
Kyrgyz Republic KGZ 56.1123414634 56.5483414634 56.9863414634 57.4263414634 57.8653414634 58.2973414634 58.7193414634 59.1263414634 59.5143414634 59.8813414634 60.2213414634 60.5303414634 60.8103414634 61.0663414634 61.3053414634 61.5363170732 61.7677317073 62.0095853659 62.269902439 62.5532439024 62.8702439024 63.2290487805 63.6237317073 64.0422682927 64.4696341463 64.8821219512 65.2545121951 65.5676097561 65.8097804878 67.9073170732 68.2975609756 68.5512195122 68.1024390244 67.1926829268 66.0390243902 65.7902439024 66.543902439 66.8926829268 67.0512195122 67.0024390244 68.5585365854 68.7073170732 68.1073170732 68.256097561 68.1536585366 67.956097561 67.6951219512 67.8951219512 68.4512195122 69.1024390244
Lao PDR LAO 43.9777317073 44.1842926829 44.3913658537 44.5979512195 44.8050487805 45.0111463415 45.2157317073 45.4183170732 45.6203902439 45.8244634146 46.0325365854 46.2486585366 46.4748292683 46.7140731707 46.9683170732 47.2365365854 47.5161707317 47.8056585366 48.1074878049 48.4241707317 48.7622195122 49.1267073171 49.5226829268 49.9567073171 50.4327804878 50.9574146341 51.5365609756 52.1676829268 52.8442682927 53.5602682927 54.3082195122 55.0806097561 55.8664878049 56.6543658537 57.4307560976 58.1821463415 58.8955853659 59.5695609756 60.2065609756 60.8110731707 61.3946097561 61.9781707317 62.5752439024 63.1923170732 63.8258536585 64.4622682927 65.0805121951 65.6595609756 66.1843902439 66.6515121951
Latvia LVA 69.7868292683 70.0324390244 69.4304878049 69.8290243902 71.0280487805 70.7265853659 70.7073170732 70.393902439 70.0429268293 69.7968292683 69.8353658537 70.1646341463 69.8787804878 69.8134146341 69.7409756098 68.9253658537 69.047804878 69.1046341463 68.987804878 68.4956097561 68.8085365854 68.7863414634 69.3282926829 69.1190243902 69.1629268293 69.2914634146 70.6224390244 70.6929268293 70.6153658537 70.1553658537 69.2731707317 69.0324390244 68.396097561 66.7226829268 65.6643902439 66.3912195122 68.7765853659 69.3492682927 69.012195122 69.7429268293 70.3146341463 70.7609756098 70.9609756098 71.2658536585 72.0268292683 71.356097561 70.8658536585 71.0195121951 72.4195121951 73.0804878049
Lebanon LBN 60.9993414634 61.4943658537 61.9509512195 62.3720487805 62.7621707317 63.128804878 63.4799268293 63.8185365854 64.148097561 64.468097561 64.7725365854 65.0518536585 65.2990731707 65.511195122 65.6907560976 65.8452926829 65.9838536585 66.1184634146 66.2586585366 66.4099756098 66.5743902439 66.7488536585 66.9278536585 67.1083902439 67.2909756098 67.4817073171 67.6866829268 67.9094634146 68.1510487805 68.4069268293 68.6720243902 68.9362195122 69.1904390244 69.4275121951 69.6444146341 69.8400731707 70.0154878049 70.177195122 70.3317560976 70.4836829268 70.6370243902 70.7953170732 70.9590731707 71.1293414634 71.3066585366 71.4895121951 71.6764146341 71.8628536585 72.0473170732 72.2297804878
Lesotho LSO 46.5009512195 46.9849756098 47.3924878049 47.7164878049 47.9614878049 48.1404878049 48.273 48.3900731707 48.5211707317 48.684804878 48.8984634146 49.1701219512 49.4942682927 49.8653902439 50.2839512195 50.7529756098 51.2734146341 51.8383170732 52.4336585366 53.0474634146 53.6587317073 54.2439756098 54.7937073171 55.3014390244 55.7686585366 56.2383414634 56.7723902439 57.3918292683 58.0727073171 58.7561463415 59.3268536585 59.642 59.5982682927 59.1357804878 58.2461219512 56.9378780488 55.2516097561 53.3281707317 51.3218292683 49.3578292683 47.5863658537 46.1355853659 45.0547804878 44.3637560976 44.075902439 44.1711707317 44.5901219512 45.2150243902 45.9315609756 46.6693658537
Liberia LBR 37.6482682927 38.0174634146 38.3846585366 38.7503414634 39.1145121951 39.478195122 39.8434390244 40.2097317073 40.5765853659 40.9434878049 41.3114146341 41.6853414634 42.0617317073 42.4340487805 42.7902682927 43.1158780488 43.3923902439 43.6087804878 43.7576097561 43.8373902439 43.8481707317 43.7965365854 43.6984878049 43.5695609756 43.4202439024 43.2535121951 43.0683414634 42.8656585366 42.6559268293 42.4556341463 42.276804878 42.1279512195 42.0236097561 41.987804878 42.0485853659 42.247 42.6270731707 43.1993414634 43.9587560976 44.8887560976 45.9643170732 47.1488292683 48.3872195122 49.6259268293 50.8233658537 51.9430243902 52.9628292683 53.8888536585 54.7276341463 55.479195122
Libya LBY 46.6787317073 47.1752195122 47.6686829268 48.160097561 48.6494634146 49.1322682927 49.6000243902 50.0557560976 50.5074634146 50.9696829268 51.4664390244 52.0247560976 52.6626097561 53.3880243902 54.2004878049 55.093 56.0490487805 57.0401219512 58.0401707317 59.0341463415 60.0124634146 60.9770487805 61.9303414634 62.8713658537 63.7896585366 64.6663170732 65.4834390244 66.2321707317 66.9110731707 67.522195122 68.0800243902 68.605 69.1180243902 69.6310487805 70.1460731707 70.6531219512 71.1337804878 71.568097561 71.9441219512 72.2628536585 72.5307560976 72.762804878 72.9769268293 73.1895609756 73.407195122 73.6352926829 73.8693658537 74.1029268293 74.329 74.5455609756
Liechtenstein LIE
Lithuania LTU 69.8473170732 70.1026829268 69.0953658537 70.2043902439 71.5090243902 71.3251219512 71.5202439024 71.603902439 71.3136585366 70.9285365854 70.8043902439 71.7353658537 71.0246341463 71.332195122 71.2441463415 70.8673170732 70.9580487805 70.8095121951 70.6046341463 70.482195122 70.482195122 70.4607317073 70.8368292683 70.777804878 70.32 70.5012195122 72.0807317073 71.9346341463 71.762195122 71.4253658537 71.1607317073 70.3641463415 70.2343902439 68.9104878049 68.5302439024 69.0063414634 70.1080487805 70.9090243902 71.2195121951 71.5707317073 72.0195121951 71.6585365854 71.7609756098 72.0609756098 71.9609756098 71.2536585366 71.056097561 70.9 71.812195122 72.9146341463
Luxembourg LUX 68.3215609756 68.6125853659 68.8736585366 69.0993170732 69.2879756098 69.4386341463 69.5537073171 69.6441463415 69.7204390244 69.7930731707 69.8755609756 69.977902439 70.1051463415 70.2614146341 70.4477804878 70.6633902439 70.9039268293 71.1594390244 71.421902439 71.6892682927 71.9602682927 72.2386585366 72.5257073171 72.8232926829 73.1264390244 73.4333170732 73.7366829268 74.0328536585 74.3185121951 74.5916829268 74.8532926829 75.4634146341 75.7707317073 75.712195122 76.3707317073 76.512195122 76.5195121951 76.8804878049 77.0170731707 77.7707317073 77.8731707317 77.8243902439 78.2016268293 78.5788609756 78.956097561 79.3333341463 79.7105682927 80.087804878 80.087804878 80.087804878
Macao SAR, China MAC 65.0418292683 65.5554390244 66.0570731707 66.5467317073 67.0239268293 67.4896585366 67.9424390244 68.3837804878 68.8141219512 69.2330243902 69.6424390244 70.0413902439 70.4308780488 70.8113902439 71.1824146341 71.5459756098 71.9010487805 72.2481463415 72.5867560976 72.9193902439 73.2440487805 73.5617073171 73.8723902439 74.1765853659 74.4732926829 74.7650243902 75.0507560976 75.3310243902 75.6058292683 75.8756341463 76.1404390244 76.4002682927 76.655097561 76.9054390244 77.1502682927 77.391097561 77.6284390244 77.8612926829 78.0901707317 78.3155609756 78.5369756098 78.7523902439 78.9612926829 79.1662195122 79.3686341463 79.5745853659 79.7915853659 80.0226829268 80.2673414634 80.5210487805
Macedonia, FYR MKD 60.721195122 61.3476341463 61.9580731707 62.5559512195 63.1442439024 63.7218292683 64.2841463415 64.8276829268 65.3479512195 65.847 66.3329268293 66.8173170732 67.304804878 67.7919756098 68.266902439 68.7046097561 69.0705609756 69.3457317073 69.5265365854 69.6209756098 69.6565853659 69.671902439 69.7059268293 69.7896341463 69.9329512195 70.1342439024 70.3758292683 70.629097561 70.8685609756 71.0867317073 71.2797804878 71.4514146341 71.6113414634 71.7686829268 71.9269512195 72.0875121951 72.250195122 72.4147560976 72.5796097561 72.7442195122 72.9102195122 73.0763170732 73.2426829268 73.4099756098 73.5771707317 73.7457073171 73.9169268293 74.0906097561 74.2671219512 74.4438780488
Madagascar MDG 39.8808780488 40.2799756098 40.6787073171 41.0800243902 41.4828780488 41.8886585366 42.2947317073 42.6995609756 43.1021219512 43.5024390244 43.8996097561 44.2952682927 44.6895609756 45.0855853659 45.484902439 45.8969756098 46.3337560976 46.7951219512 47.2734878049 47.7558292683 48.2081219512 48.5883902439 48.8771707317 49.0729756098 49.1927804878 49.2735365854 49.3677073171 49.5282195122 49.7985853659 50.199804878 50.7423902439 51.4204146341 52.1973902439 53.0399268293 53.9310243902 54.8547317073 55.8030731707 56.7700487805 57.7461219512 58.7162926829 59.6745609756 60.6209268293 61.5513658537 62.4573170732 63.3207804878 64.1121707317 64.8014390244 65.3755609756 65.8355365854 66.1913658537
Malawi MWI 37.7736341463 37.9981463415 38.2131707317 38.4202195122 38.6242926829 38.840902439 39.0900487805 39.3847073171 39.7298780488 40.1225609756 40.5492195122 40.9903902439 41.4235365854 41.8341707317 42.2147804878 42.5688292683 42.9088292683 43.2492439024 43.6011219512 43.9639268293 44.336195122 44.7113902439 45.0775609756 45.4247317073 45.7464390244 46.041195122 46.3110243902 46.5564390244 46.776 46.9612439024 47.0942682927 47.1501463415 47.1224146341 47.0175853659 46.8521707317 46.6426829268 46.4121463415 46.1964634146 46.0350243902 45.9636829268 46.0297317073 46.2764878049 46.7073170732 47.3086341463 48.062902439 48.9380487805 49.8891463415 50.8623170732 51.8047317073 52.6809512195
Malaysia MYS 59.4188292683 59.9167560976 60.4054878049 60.8855609756 61.3559756098 61.8162926829 62.2650487805 62.7017804878 63.1270487805 63.5398536585 63.9407073171 64.3306341463 64.709097561 65.0780731707 65.4375853659 65.7871219512 66.128195122 66.459804878 66.7829512195 67.0966341463 67.4028536585 67.7011219512 67.9913902439 68.274195122 68.5505121951 68.8198536585 69.0827073171 69.3375853659 69.5864878049 69.8294146341 70.0653658537 70.2958292683 70.5208292683 70.7398536585 70.9538780488 71.1634390244 71.3685121951 71.569097561 71.7647073171 71.9563414634 72.1424878049 72.3211219512 72.4922682927 72.657902439 72.8215609756 72.9882926829 73.1666097561 73.3590487805 73.5681219512 73.790804878
Maldives MDV 37.4779512195 37.9720731707 38.5128780488 39.1092439024 39.7611463415 40.462 41.1993414634 41.9546585366 42.7125121951 43.465902439 44.2064146341 44.9276097561 45.6390243902 46.3516585366 47.0744390244 47.8337804878 48.6560731707 49.554195122 50.5270487805 51.5615853659 52.6288292683 53.688902439 54.7048536585 55.6512195122 56.5183658537 57.3080731707 58.034 58.729 59.4245853659 60.1373414634 60.8846341463 61.6763414634 62.5114146341 63.3861219512 64.2990731707 65.2537317073 66.2518536585 67.2816097561 68.3257317073 69.3642195122 70.3741219512 71.3306829268 72.2180731707 73.0244146341 73.7431463415 74.3711463415 74.9126829268 75.3870243902 75.8110487805 76.1956585366
Mali MLI 30.310804878 30.4661463415 30.6864634146 30.9827560976 31.3545609756 31.7974146341 32.297804878 32.8352682927 33.3882682927 33.9453170732 34.4959512195 35.0361219512 35.5683414634 36.0956341463 36.6154390244 37.126804878 37.6302195122 38.1276829268 38.6226829268 39.1152439024 39.6098292683 40.1114390244 40.6205609756 41.133195122 41.6433170732 42.1429268293 42.6170243902 43.058097561 43.4621463415 43.828195122 44.1622195122 44.4742682927 44.7753170732 45.0768780488 45.3839512195 45.6975121951 46.0130487805 46.3265365854 46.6339756098 46.9383902439 47.2432682927 47.5526585366 47.873097561 48.2075853659 48.5576341463 48.926195122 49.3112439024 49.7107560976 50.120195122 50.5360487805
Malta MLT 67.6017804878 67.9027073171 68.2047804878 68.504902439 68.7999756098 69.0864634146 69.3663658537 69.6402195122 69.9115853659 70.1789512195 70.4433170732 70.7047073171 70.9626097561 71.2185121951 71.4709268293 71.7208536585 71.9687804878 72.213195122 72.4556097561 72.6950243902 72.9324390244 73.1668292683 73.3987560976 73.6286829268 73.8551219512 74.0805609756 74.3035121951 74.5244634146 74.742902439 74.9603414634 75.1757804878 75.390195122 75.8334146341 76.6024390244 76.9 77.143902439 77.2902439024 77.4365853659 77.1804878049 77.1487804878 78.2 78.4414634146 78.0926829268 78.3512195122 78.5536585366 79.5048780488 78.5487804878 79.443902439 79.4317073171 79.8951219512
Marshall Islands MHL 72.1414634146 67.5048780488 65.2390243902
Mauritania MRT 42.231902439 42.605902439 42.963902439 43.3129268293 43.6629268293 44.0384390244 44.4654390244 44.9609268293 45.5293902439 46.1673414634 46.8583170732 47.5782926829 48.296804878 48.9883658537 49.6409756098 50.2526341463 50.8308292683 51.3910487805 51.9422926829 52.4800487805 52.994804878 53.4715609756 53.8998292683 54.2725853659 54.5918536585 54.8636097561 55.1013658537 55.3196341463 55.5294146341 55.736195122 55.9369756098 56.1267317073 56.296 56.4392439024 56.5569756098 56.6527073171 56.7314634146 56.8007560976 56.8660731707 56.9314146341 56.9947804878 57.0501707317 57.0950487805 57.1329268293 57.1737560976 57.2310243902 57.326195122 57.4702682927 57.6682439024 57.9196341463
Mauritius MUS 58.7538780488 59.7629268293 60.6444146341 61.3761707317 61.9525365854 62.3724634146 62.6484878049 62.820195122 62.9336097561 63.0216585366 63.119 63.2572195122 63.4482439024 63.6997317073 64.0200731707 64.4150487805 64.884097561 65.4028780488 65.9427804878 66.4832926829 66.9879756098 67.4235853659 67.7751707317 68.042 68.2298536585 68.3667317073 68.4949512195 68.653097561 68.864097561 69.1300731707 69.4048780488 69.956097561 70.0585365854 70.1073170732 70.1585365854 70.3258536585 70.3229268293 70.4048780488 70.6073170732 70.9609756098 71.6634146341 71.7658536585 71.9658536585 72.121300813 72.2767479675 72.432195122 72.432195122 72.5707317073 72.5707317073 72.8824390244
Mayotte MYT 55.9545853659 56.859097561 57.7182439024 58.5376097561 59.3227317073 60.0761463415 60.7998292683 61.4937317073 62.1582926829 62.7964878049 63.4113170732 64.0022682927 64.5703658537 65.1175853659 65.6459268293 66.1563902439 66.6494634146 67.1266585366 67.5884634146 68.0363902439 68.4713902439 68.8934878049 69.3041707317 69.7034146341 70.0922439024 70.4711219512 70.8415853659 71.2026097561 71.5557073171 71.9013658537 72.240097561 72.5713902439 72.8967317073 73.2151219512 73.5280731707 73.8355853659 74.1376341463 74.4332439024 74.724902439 75.0111219512 75.2959268293 75.5823170732 75.8708292683 76.1594146341 76.4415121951 76.7090487805 76.9493902439 77.1559756098 77.3262926829 77.462804878
Mexico MEX 57.0351219512 57.6296829268 58.1572926829 58.6219512195 59.0366097561 59.4147317073 59.7742195122 60.1305121951 60.5005365854 60.8957804878 61.3266585366 61.7976341463 62.3012439024 62.8285853659 63.3737560976 63.9288536585 64.4854878049 65.033804878 65.5673902439 66.0808536585 66.5718536585 67.0399512195 67.491097561 67.9302439024 68.3588780488 68.778902439 69.1917073171 69.5982195122 69.9993170732 70.3959512195 70.791097561 71.1863414634 71.5817073171 71.974195122 72.3622195122 72.7376341463 73.0942926829 73.4260487805 73.7318780488 74.0132439024 74.2742439024 74.5204634146 74.7620731707 75.0047317073 75.25 75.498902439 75.7499756098 75.9971463415 76.2363414634 76.4655609756
Micronesia, Fed. Sts. FSM 57.5865853659 57.9855853659 58.3835853659 58.7815853659 59.1795853659 59.5785853659 59.9815853659 60.3875853659 60.7975853659 61.2115853659 61.6335853659 62.0705853659 62.5205853659 62.9755853659 63.4265853659 63.8545853659 64.2395853659 64.5675853659 64.8335853659 65.0365853659 65.1835853659 65.2895853659 65.3735853659 65.4535853659 65.5395853659 65.6365853659 65.7455853659 65.8585853659 65.9725853659 66.0845853659 66.1975853659 66.3101219512 66.4226585366 66.5357073171 66.6482439024 66.7597560976 66.8677073171 66.9716097561 67.072902439 67.1726341463 67.2737317073 67.3792682927 67.4937317073 67.6171463415 67.7525121951 67.8998536585 68.0591707317 68.2274878049 68.4027560976 68.5830487805
Moldova MDA 61.8030243902 62.1663414634 62.5347560976 62.9067073171 63.2756341463 63.6314390244 63.9605853659 64.2495365854 64.4922926829 64.6848536585 64.825195122 64.9178536585 64.9733658537 65.003804878 65.0157317073 65.0076829268 64.973804878 64.9165609756 64.8479756098 64.7855365854 64.7687073171 64.8414634146 65.0227073171 65.3133414634 65.6957804878 66.1324390244 66.5687073171 66.949097561 67.2321219512 67.3992926829 67.4436829268 67.3723902439 67.2274878049 67.0511219512 66.8693902439 66.7158780488 66.6181219512 66.5851463415 66.6219268293 66.7269756098 66.8882682927 67.0808292683 67.2790731707 67.4624634146 67.6264634146 67.7795365854 67.9386829268 68.123902439 68.3486585366 68.6114390244
Monaco MCO
Mongolia MNG 48.6804390244 49.6091463415 50.5082439024 51.3525121951 52.1263170732 52.8291463415 53.474097561 54.082902439 54.6687560976 55.2267073171 55.7422682927 56.1934390244 56.5631707317 56.8453902439 57.0445853659 57.1662926829 57.2229756098 57.2396585366 57.2453658537 57.2655853659 57.332902439 57.4783658537 57.709 58.0192439024 58.4 58.826 59.2624390244 59.6711707317 60.0257317073 60.3167560976 60.5382682927 60.6984146341 60.8246341463 60.9470243902 61.0843902439 61.2615609756 61.4990731707 61.8036097561 62.1757560976 62.6165121951 63.1213414634 63.6819756098 64.2769268293 64.8824390244 65.4808780488 66.0523658537 66.5792682927 67.0575609756 67.4862439024 67.8641219512
Montenegro MNE 62.4055365854 62.8882682927 63.4125853659 63.984 64.6034878049 65.2685609756 65.9736341463 66.702195122 67.4377317073 68.1667804878 68.8773902439 69.5611463415 70.213097561 70.8292926829 71.3997804878 71.9150731707 72.3666585366 72.757 73.0890243902 73.369195122 73.6019756098 73.793902439 73.9569268293 74.1024634146 74.2423902439 74.3909756098 74.563 74.7598780488 74.9750731707 75.2006829268 75.4203170732 75.6126341463 75.7574390244 75.8410243902 75.8576341463 75.8041219512 75.6843170732 75.5166829268 75.3196585366 75.1070487805 74.8900243902 74.6751707317 74.4695853659 74.282902439 74.1264878049 74.0152682927 73.9623658537 73.9695365854 74.0335853659 74.1500731707
Morocco MAR 46.6150731707 47.109097561 47.5995853659 48.0875121951 48.573902439 49.0587317073 49.5425365854 50.027804878 50.5155853659 51.0078536585 51.5046341463 52.0029268293 52.504195122 53.0134634146 53.5382439024 54.0935609756 54.6979268293 55.3593902439 56.0754390244 56.8390731707 57.6312439024 58.4294390244 59.2085853659 59.950195122 60.644195122 61.2901219512 61.8944634146 62.4732439024 63.04 63.5982439024 64.146 64.6802682927 65.1965853659 65.6904390244 66.1623414634 66.6133170732 67.0483658537 67.47 67.8811707317 68.283902439 68.6751463415 69.0548780488 69.4195853659 69.7672439024 70.0998780488 70.4174634146 70.7235365854 71.0191219512 71.3077560976 71.5894146341
Mozambique MOZ 35.0037073171 35.4667560976 35.9122682927 36.3387804878 36.7487560976 37.1482195122 37.5436829268 37.9436829268 38.3536829268 38.7757317073 39.2158292683 39.6799756098 40.1611463415 40.6478780488 41.1261463415 41.575 41.9699756098 42.2955609756 42.5442682927 42.7135609756 42.805902439 42.8267317073 42.7990243902 42.7487073171 42.6967804878 42.6627317073 42.6620731707 42.7028292683 42.7945365854 42.9466829268 43.1762682927 43.4966829268 43.9004634146 44.3696341463 44.8847560976 45.4109512195 45.9108292683 46.3554878049 46.7275365854 47.0209756098 47.2378536585 47.3956585366 47.5267804878 47.6621219512 47.8196097561 48.0171463415 48.2651463415 48.5605853659 48.8983902439 49.2780243902
Myanmar MMR 42.7107804878 43.3217317073 43.9551707317 44.6325609756 45.3634390244 46.1428292683 46.9522682927 47.758804878 48.5374146341 49.2781219512 49.9803902439 50.6556829268 51.3139268293 51.9601219512 52.5852439024 53.1732682927 53.7022439024 54.1567073171 54.5291463415 54.8216097561 55.0355853659 55.1745853659 55.264097561 55.3321219512 55.4036341463 55.5146585366 55.6961707317 55.962195122 56.3167073171 56.7567073171 57.2737073171 57.8447073171 58.4377317073 59.0207560976 59.5732926829 60.0783414634 60.5264146341 60.9234878049 61.2765853659 61.5871463415 61.8557073171 62.0837804878 62.2828292683 62.4668292683 62.6517073171 62.8588780488 63.1112195122 63.4181707317 63.7817560976 64.1995121951
Namibia NAM 46.8803902439 47.499195122 48.101097561 48.6860731707 49.2571463415 49.8152682927 50.3649268293 50.9090243902 51.4495609756 51.9894878049 52.5273170732 53.0635609756 53.5962439024 54.1233902439 54.646 55.1675609756 55.6940731707 56.226 56.7603414634 57.2896341463 57.802902439 58.2871707317 58.7314878049 59.1283658537 59.4723414634 59.7694146341 60.0290487805 60.2602439024 60.466 60.6428780488 60.7774146341 60.8552195122 60.8613170732 60.7862439024 60.6280243902 60.3607317073 59.957902439 59.4344878049 58.8318536585 58.2058536585 57.6577317073 57.3012195122 57.2016585366 57.3889512195 57.8535853659 58.5441219512 59.3742682927 60.2232682927 60.9893414634 61.6185853659
Nepal NPL 38.4940487805 38.8414634146 39.2014146341 39.5749268293 39.9640487805 40.3703902439 40.7950731707 41.2376097561 41.6975121951 42.1737317073 42.6666341463 43.175097561 43.6979512195 44.233097561 44.7784878049 45.3301219512 45.8885365854 46.4513658537 47.0167073171 47.5845853659 48.1546097561 48.7263170732 49.3022195122 49.8817317073 50.465804878 51.0498292683 51.6306341463 52.2066341463 52.7817317073 53.3614390244 53.9567317073 54.5807073171 55.2424878049 55.9456829268 56.6893658537 57.4686341463 58.2735121951 59.09 59.906097561 60.715804878 61.5216341463 62.3326097561 63.1536585366 63.9802926829 64.7989512195 65.5865853659 66.3151463415 66.966097561 67.5279512195 68.0016829268
Netherlands NLD 73.3926829268 73.6526829268 73.323902439 73.3370731707 73.7041463415 73.5687804878 73.5129268293 73.8041463415 73.6126829268 73.5395121951 73.5856097561 73.8095121951 73.7270731707 74.143902439 74.5368292683 74.4987804878 74.6470731707 75.2214634146 75.1451219512 75.606097561 75.7431707317 75.9343902439 75.9885365854 76.1641463415 76.2331707317 76.2846341463 76.2704878049 76.7051219512 76.8902439024 76.7341463415 76.8780487805 77 77.2170731707 76.9165853659 77.3751219512 77.4046341463 77.4356097561 77.7943902439 77.8829268293 77.8365853659 77.987804878 78.1902439024 78.2926829268 78.4926829268 79.0951219512 79.3463414634 79.6975609756 80.0975609756 80.2512195122 80.5487804878
New Caledonia NCL 58.6390243902 59.0390243902 59.4390243902 59.887804878 60.3365853659 60.7853658537 61.2341463415 61.6829268293 62.1317073171 62.5804878049 63.0292682927 63.4780487805 63.9268292683 64.3756097561 64.8243902439 65.2731707317 65.7219512195 66.1707317073 66.3036585366 66.4365853659 66.5695121951 66.7024390244 68.3170731707 68.4666666667 68.6162601626 68.7658536585 69.4134146341 70.0609756098 70.2024390244 70.343902439 70.4853658537 70.3585365854 71.512195122 71.656097561 70.6731707317 72.0097560976 71.9975609756 71.7390243902 74.3756097561 73.8756097561 74.9195121951 74.8317073171 75.1024390244 75.2707317073 75.5146341463 75.1682926829 76.4609756098 75.9463414634 76.1151219512 76.283902439
New Zealand NZL 71.2365853659 70.9853658537 71.2317073171 71.2804878049 71.3292682927 71.2268292683 71.1243902439 71.4731707317 71.1243902439 71.4731707317 71.2731707317 71.7731707317 71.8292682927 71.6682926829 71.9243902439 72.2195121951 72.4219512195 72.1682926829 73.0195121951 73.0682926829 72.8292682927 73.6219512195 73.7243902439 73.7756097561 74.3707317073 73.8292682927 74.1219512195 74.1780487805 74.4243902439 74.8243902439 75.3780487805 76.0317073171 76.1243902439 76.4341463415 76.8829268293 76.7341463415 76.787804878 77.3341463415 78.0853658537 77.8902439024 78.6365853659 78.6926829268 78.8463414634 79.1463414634 79.5487804878 79.8512195122 80.0487804878 80.1512195122 80.3512195122 80.292195122
Nicaragua NIC 46.9109512195 47.5733658537 48.2362439024 48.898097561 49.5589512195 50.2228536585 50.8933414634 51.569902439 52.2509512195 52.929902439 53.5980487805 54.2446585366 54.8616097561 55.4423414634 55.9833902439 56.4802926829 56.930195122 57.3408292683 57.7244390244 58.0932439024 58.4604390244 58.839097561 59.2408292683 59.6766097561 60.1555853659 60.6908536585 61.2935853659 61.9561707317 62.666 63.4078780488 64.1580243902 64.8876829268 65.5775609756 66.2114634146 66.7857073171 67.304195122 67.781902439 68.2414878049 68.7016585366 69.1685365854 69.6457317073 70.130902439 70.6141707317 71.0855853659 71.5397804878 71.972804878 72.379195122 72.7593902439 73.110804878 73.4344390244
Niger NER 37.8972439024 37.9237073171 37.9491707317 37.9746341463 38.0026097561 38.0335853659 38.0695609756 38.1120487805 38.1610487805 38.2185365854 38.2870487805 38.3670487805 38.4605365854 38.5650243902 38.6809756098 38.8074146341 38.9433170732 39.0861707317 39.234 39.384804878 39.5295853659 39.6613902439 39.7782195122 39.8870731707 39.996 40.1184390244 40.2694146341 40.4634146341 40.715902439 41.0353902439 41.4328536585 41.9133170732 42.4687560976 43.088195122 43.7621219512 44.4775121951 45.2253414634 45.9906097561 46.7603414634 47.5220243902 48.2666829268 48.9908292683 49.6960243902 50.3822682927 51.0435609756 51.672902439 52.2652682927 52.8181463415 53.3344878049 53.8158292683
Nigeria NGA 38.4964878049 38.8726097561 39.2456829268 39.6162439024 39.9862926829 40.3594390244 40.7417804878 41.1363658537 41.5412195122 41.9537804878 42.3694634146 42.7811219512 43.1811707317 43.5619756098 43.9185121951 44.2473170732 44.5479268293 44.8234634146 45.0735365854 45.2966341463 45.4882682927 45.643902439 45.7625121951 45.8440487805 45.8905365854 45.9040243902 45.8875609756 45.8466829268 45.7884146341 45.719804878 45.6373414634 45.5345365854 45.4153658537 45.2902682927 45.1797317073 45.1157073171 45.1332195122 45.2537073171 45.4861463415 45.8295365854 46.2723170732 46.7914634146 47.3504878049 47.9163658537 48.4726097561 49.0047073171 49.5106585366 49.9994878049 50.4797317073 50.9494146341
Northern Mariana Islands MNP
Norway NOR 73.5497560976 73.5504878049 73.4480487805 73.0775609756 73.5958536585 73.7231707317 73.9953658537 74.0665853659 73.9419512195 73.6634146341 74.0880487805 74.1792682927 74.3446341463 74.442195122 74.7536585366 74.8175609756 75.0395121951 75.3868292683 75.4185365854 75.413902439 75.6717073171 75.8690243902 76.0109756098 76.0668292683 76.2243902439 75.9168292683 76.2412195122 76.0817073171 76.2204878049 76.5004878049 76.5373170732 76.9807317073 77.1843902439 77.1517073171 77.6897560976 77.7365853659 78.1504878049 78.1426829268 78.3292682927 78.2829268293 78.6341463415 78.7853658537 78.987804878 79.3902439024 79.8414634146 80.0414634146 80.343902439 80.3951219512 80.5926829268 80.7951219512
Oman OMN 42.2736097561 42.9303414634 43.6146097561 44.328902439 45.0767560976 45.8641707317 46.6986585366 47.5802439024 48.5074146341 49.4746829268 50.4735121951 51.4934146341 52.5243414634 53.5567804878 54.5852439024 55.6087073171 56.6297073171 57.6532195122 58.6852682927 59.7223414634 60.7683902439 61.8253902439 62.8887804878 63.9511219512 65.0034146341 66.0387317073 67.0516829268 68.031804878 68.9666341463 69.8407073171 70.6329512195 71.3212926829 71.9016585366 72.3749756098 72.7477317073 73.0430243902 73.2905365854 73.5148292683 73.730804878 73.9382682927 74.1102926829 74.2058536585 74.1956585366 74.0730731707 73.8551707317 73.5847073171 73.3175853659 73.1088780488 72.9986097561 73.004097561
Pakistan PAK 46.6427560976 47.3273658537 48.004 48.6746585366 49.3373658537 49.9961219512 50.6504634146 51.3013658537 51.9462926829 52.5806829268 53.2014634146 53.8020487805 54.3793658537 54.9284146341 55.4466829268 55.9317073171 56.3830487805 56.8043170732 57.1975853659 57.5674146341 57.9148292683 58.2423658537 58.5519756098 58.8481463415 59.1338780488 59.4131707317 59.6880487805 59.961 60.2305121951 60.4990731707 60.767195122 61.0333414634 61.2950243902 61.5517317073 61.8019756098 62.0457317073 62.282 62.5123170732 62.7351707317 62.9525365854 63.1619512195 63.3623902439 63.5533658537 63.7388536585 63.920804878 64.1046829268 64.2974390244 64.5025365854 64.7219512195 64.9552195122
Palau PLW 69.0692682927 71.8446341463 70.4936585366 69.1292682927
Panama PAN 60.7899756098 61.2834878049 61.7543902439 62.211195122 62.6613902439 63.1089512195 63.5538292683 63.994 64.4284390244 64.8606585366 65.2996097561 65.7527804878 66.2227073171 66.7094390244 67.2090243902 67.7130487805 68.2125609756 68.6956341463 69.1523170732 69.5761707317 69.9607073171 70.3029512195 70.6083414634 70.8833902439 71.1310731707 71.3569268293 71.5674390244 71.767097561 71.9614390244 72.1544634146 72.3481707317 72.541097561 72.7317560976 72.9176097561 73.1011219512 73.2832195122 73.4658536585 73.6514634146 73.84 74.030902439 74.2231463415 74.4137317073 74.5996585366 74.78 74.9542682927 75.1244878049 75.2922195122 75.4594878049 75.6293170732 75.8012439024
Papua New Guinea PNG 38.4622439024 39.0595121951 39.7173902439 40.4378780488 41.2164878049 42.037195122 42.8795609756 43.7174878049 44.530902439 45.3082195122 46.0409268293 46.7274634146 47.3813170732 48.0148292683 48.6373658537 49.2705121951 49.9388536585 50.6492926829 51.3934634146 52.1527073171 52.8837073171 53.5312926829 54.0581219512 54.4456341463 54.7004390244 54.8522682927 54.9490731707 55.0516097561 55.202804878 55.4220243902 55.7093414634 56.0470731707 56.399195122 56.7384634146 57.0559268293 57.3519512195 57.6308536585 57.9062926829 58.1895121951 58.4848780488 58.7957804878 59.1247560976 59.468902439 59.8253170732 60.1925365854 60.5666097561 60.9445609756 61.323902439 61.7011707317 62.073902439
Paraguay PRY 63.6422195122 63.8663414634 64.0785365854 64.2727804878 64.4470487805 64.6032682927 64.7502926829 64.8986097561 65.0556585366 65.2214634146 65.3941219512 65.5677317073 65.734902439 65.8907317073 66.0327804878 66.1625121951 66.2814146341 66.393902439 66.5048780488 66.6158292683 66.7257317073 66.8340731707 66.9393902439 67.042195122 67.1454634146 67.2522439024 67.3690487805 67.4988780488 67.6427560976 67.8011707317 67.9726097561 68.1505365854 68.3314634146 68.5123658537 68.6937560976 68.8802195122 69.079804878 69.2955609756 69.5309756098 69.7825365854 70.045195122 70.3093414634 70.5663902439 70.809804878 71.0385609756 71.2526585366 71.4571707317 71.6586585366 71.8617073171 72.0683170732
Peru PER 47.6432439024 48.1867560976 48.7038780488 49.194097561 49.665902439 50.1412439024 50.6550243902 51.2297073171 51.8782195122 52.5965365854 53.368195122 54.1637073171 54.9481463415 55.6955365854 56.3939512195 57.0433658537 57.6527804878 58.2421707317 58.8300243902 59.4203658537 60.016195122 60.618 61.2188292683 61.8131707317 62.3980487805 62.9690487805 63.5216585366 64.0544390244 64.5678536585 65.0643902439 65.5495121951 66.0281707317 66.508804878 66.9933902439 67.4853902439 67.9847804878 68.492097561 69.0008780488 69.5046341463 69.9989268293 70.4762682927 70.9307073171 71.3592439024 71.7593902439 72.1286829268 72.4666097561 72.772195122 73.0503902439 73.3057073171 73.5430731707
Philippines PHL 57.81 58.1193658537 58.4254634146 58.7292195122 59.0301707317 59.3278292683 59.6217804878 59.910097561 60.1933902439 60.4707073171 60.7420731707 61.0070243902 61.2660243902 61.5205609756 61.7701219512 62.0152439024 62.2548780488 62.4905609756 62.7212682927 62.9474878049 63.1697317073 63.387 63.599804878 63.8091219512 64.0134634146 64.2143414634 64.4112195122 64.6036097561 64.7925365854 64.9779512195 65.1593902439 65.3373658537 65.5123658537 65.6843902439 65.8529512195 66.0185365854 66.1806341463 66.3397560976 66.4953902439 66.6480243902 66.7951463415 66.9342439024 67.063804878 67.1893658537 67.3139512195 67.4471463415 67.6 67.780097561 67.9889268293 68.2255121951
Poland POL 67.6804878049 67.7780487805 67.4268292683 68.3756097561 68.6292682927 69.4292682927 69.8268292683 69.4243902439 70.2195121951 69.7195121951 69.8682926829 69.612195122 70.6658536585 70.6634146341 71.1170731707 70.5609756098 70.656097561 70.4024390244 70.3512195122 70.7512195122 70.0975609756 71.0512195122 71.1024390244 71 70.8 70.5487804878 70.8487804878 70.8975609756 71.3317073171 71.043902439 70.8902439024 70.587804878 71.0902439024 71.5951219512 71.6951219512 71.8926829268 72.2463414634 72.6463414634 72.9975609756 73.043902439 73.7487804878 74.2 74.4975609756 74.5975609756 74.8463414634 74.9951219512 75.143902439 75.243902439 75.543902439 75.6951219512
Portugal PRT 63.0365853659 63.4655609756 63.8908780488 64.3105609756 64.723195122 65.1288536585 65.5266829268 65.9187804878 66.3066341463 66.6917317073 67.0731707317 66.7707317073 68.3243902439 67.5243902439 68.0195121951 68.3097560976 68.8609756098 70.012195122 70.3170731707 71.1682926829 71.2146341463 71.6146341463 72.4146341463 72.2658536585 72.5146341463 72.8146341463 73.2658536585 73.6658536585 73.7146341463 74.2658536585 73.9658536585 74.0146341463 74.312195122 74.512195122 74.9146341463 75.312195122 75.2609756098 75.412195122 75.712195122 75.9634146341 76.3146341463 76.8146341463 77.0658536585 77.2195121951 77.6707317073 78.0707317073 78.4195121951 78.3219512195 78.5243902439 78.7268292683
Puerto Rico PRI 68.930902439 69.1459512195 69.3397317073 69.5408292683 69.771195122 70.0392195122 70.345195122 70.668 70.9915365854 71.3113414634 71.6235853659 71.9269512195 72.2211707317 72.5028780488 72.7680731707 73.0092682927 73.2213902439 73.4002439024 73.5490731707 73.6707073171 73.7759268293 73.877 73.9843658537 74.1015121951 74.2259756098 74.3442926829 74.4375121951 74.489902439 74.4967073171 74.4636829268 74.3985853659 74.3151463415 74.2374878049 74.1916585366 74.1976829268 74.2885853659 74.4918292683 74.8102195122 75.2295121951 75.731 76.6892682927 77.0668292683 77.7604878049 78.0712195122 78.1758536585 78.296097561 78.4163414634 78.4258536585 78.5589268293 78.8069756098
Qatar QAT 59.756902439 60.4215365854 61.0786585366 61.7257804878 62.3633902439 62.9949756098 63.6235609756 64.2536341463 64.8857317073 65.5183414634 66.1484390244 66.7710487805 67.3811219512 67.9721707317 68.5381707317 69.0741463415 69.5755609756 70.0424390244 70.4762926829 70.878097561 71.2498780488 71.5961463415 71.9208780488 72.229097561 72.525804878 72.813 73.0916829268 73.3628536585 73.6245121951 73.8801463415 74.1287804878 74.3713902439 74.6084878049 74.8385853659 75.0631463415 75.2827317073 75.495804878 75.7043902439 75.9079756098 76.1070731707 76.303195122 76.4963902439 76.6876341463 76.8763902439 77.0636097561 77.2476829268 77.4284878049 77.6044390244 77.7745121951 77.939195122
Romania ROU 65.7178780488 66.2206341463 66.6350487805 66.9541219512 67.183902439 67.3455609756 67.472804878 67.601804878 67.7581707317 67.9524390244 68.1825853659 68.5041463415 68.4702439024 69.0056097561 69.4997560976 69.613902439 69.6987804878 69.7419512195 69.4804878049 69.1531707317 69.0909756098 69.3682926829 69.5317073171 69.7263414634 69.6587804878 69.7068292683 69.4963414634 69.2268292683 69.3880487805 69.5307317073 69.7412195122 69.7843902439 69.7843902439 69.5634146341 69.5097560976 69.456097561 69.1048780488 69.0048780488 69.8073170732 70.512195122 71.1634146341 71.1609756098 71.0097560976 71.3097560976 71.5942756098 71.878895122 72.1634146341 72.5658536585 72.5658536585 73.3097560976
Russian Federation RUS 67.4099268293 67.8127073171 68.1415121951 68.3854634146 68.5416097561 68.6180243902 68.6316585366 68.6064634146 68.5628780488 68.5098536585 68.1336585366 68.3765853659 68.3085365854 68.2946341463 68.3202439024 67.723902439 67.4875609756 67.3763414634 67.3909756098 67.1143902439 67.033902439 67.263902439 67.806097561 67.6526829268 67.2026829268 67.8568292683 69.3897560976 69.44 69.4643902439 69.1717073171 68.9024390244 68.4743902439 66.8731707317 64.9358536585 64.4670731707 65.2212195122 66.1941463415 66.9507317073 66.783902439 66.0436585366 65.3414634146 65.487804878 65.0853658537 65.0075609756 65.4212195122 65.47 66.6431707317 67.4975609756 67.8487804878 68.6048780488
Rwanda RWA 42.224902439 42.5193658537 42.803804878 43.0752439024 43.3286585366 43.5580731707 43.7564634146 43.9233658537 44.0632926829 44.1827560976 44.2832926829 44.367902439 44.4476341463 44.5419268293 44.671804878 44.897195122 45.2865609756 45.8508536585 46.5635609756 47.3656585366 48.2001463415 49.002097561 49.6565365854 50.0319756098 50.0053902439 49.2796585366 47.5376097561 44.766195122 41.1419756098 36.9656097561 32.8269756098 29.4400487805 27.3345853659 26.8187073171 27.9363414634 30.4731707317 33.975804878 37.764195122 41.2739268293 44.234804878 46.5102195122 48.1367073171 49.3775853659 50.449097561 51.3964146341 52.2476341463 53.0063902439 53.6597317073 54.206195122 54.665804878
Samoa WSM 49.9695121951 50.4695121951 50.9695121951 51.4695121951 51.9695121951 52.4695121951 52.9695121951 53.4695121951 53.9695121951 54.4695121951 54.9695121951 55.4695121951 55.9695121951 56.4695121951 56.9695121951 57.4695121951 57.9695121951 58.4695121951 58.9695121951 59.4695121951 59.9695121951 60.4685121951 60.9665121951 61.4645121951 61.9625121951 62.463 62.969 63.4809756098 63.9989512195 64.5194146341 65.0404146341 65.5589512195 66.0700243902 66.5691463415 67.051804878 67.5150243902 67.9542682927 68.3705365854 68.764804878 69.1370487805 69.487804878 69.8200731707 70.1358292683 70.4396097561 70.7323902439 71.0157073171 71.2905365854 71.5563658537 71.8137073171 72.0635609756
San Marino SMR 79.1195121951 79.4731707317 80.1731707317 80.5243902439 80.6195121951 80.9731707317 81.1195121951 81.2195121951 81.7219512195 81.9756097561 82.1804878049 82.506097561 82.8317073171 82.9955432373
Sao Tome and Principe STP 50.4869756098 51.0757560976 51.6565853659 52.2224390244 52.7668536585 53.2827804878 53.7661463415 54.2194390244 54.649195122 55.0609756098 55.4714634146 55.8963658537 56.3463170732 56.820804878 57.311804878 57.8001219512 58.2605365854 58.6682926829 59.0096829268 59.281097561 59.4880243902 59.644 59.772195122 59.8947317073 60.021195122 60.1581219512 60.3070243902 60.4598780488 60.6122195122 60.764 60.9157560976 61.0669756098 61.2176341463 61.3667317073 61.5152682927 61.6612439024 61.8036341463 61.9429756098 62.0802682927 62.2175365854 62.3577804878 62.5045365854 62.6613170732 62.8296097561 63.0109268293 63.2062682927 63.4161219512 63.6389512195 63.8697560976 64.1075365854
Saudi Arabia SAU 44.8748780488 45.4835365854 46.1121707317 46.7667560976 47.4528292683 48.1773658537 48.9463658537 49.7578536585 50.610902439 51.5030487805 52.4329268293 53.4006829268 54.3988292683 55.4173902439 56.4452682927 57.4718292683 58.4888536585 59.4896829268 60.4641463415 61.4031707317 62.2977073171 63.1418292683 63.9366341463 64.6837560976 65.3832439024 66.037195122 66.6506341463 67.2295609756 67.7765121951 68.292 68.7704878049 69.2054878049 69.5909512195 69.9278780488 70.2197804878 70.4726829268 70.6956097561 70.8991219512 71.0942682927 71.2890731707 71.492097561 71.7079512195 71.9351219512 72.1710243902 72.4151219512 72.6647804878 72.9158292683 73.1631219512 73.4020731707 73.6321707317
Senegal SEN 38.933 39.0632682927 39.1810487805 39.2948292683 39.4161219512 39.5534146341 39.7147317073 39.9055365854 40.1353658537 40.412195122 40.7495365854 41.1554146341 41.6312926829 42.1732195122 42.7781463415 43.4430731707 44.1640243902 44.9289756098 45.721902439 46.5268292683 47.3332682927 48.1312195122 48.9146829268 49.6721707317 50.389195122 51.0477317073 51.6332682927 52.1423170732 52.5778292683 52.9438536585 53.2483414634 53.501804878 53.7242439024 53.9326829268 54.1421219512 54.3630731707 54.6045365854 54.8635365854 55.1385609756 55.4311219512 55.7392439024 56.0584390244 56.3826585366 56.7074146341 57.0291707317 57.3493414634 57.6678780488 57.9872195122 58.3093658537 58.6323170732
Serbia SRB 71.487804878 72.0390243902 72.1365853659 72.1853658537 72.2853658537 72.4365853659 72.5829268293 72.6341463415 73.1551219512 73.3829268293 73.6365853659 73.6853658537
Seychelles SYC 68.6829268293 69.7319512195 70.6707317073 71.4146341463 72.9536585366 71.0292682927 72.6097560976 72.1317073171 72.2170731707 73.1926829268 73.1634146341 73.0341463415
Sierra Leone SLE 31.4612195122 31.7149512195 31.9848292683 32.2758292683 32.5924146341 32.938 33.3124878049 33.7167804878 34.1538536585 34.6286585366 35.152195122 35.7394878049 36.3916097561 37.1046829268 37.8687804878 38.6890487805 39.574195122 40.5012439024 41.4286585366 42.3038536585 43.0436585366 43.5598292683 43.8061463415 43.7664146341 43.4455853659 42.8720731707 42.095902439 41.2107560976 40.3103414634 39.4623414634 38.7214634146 38.1223902439 37.6632439024 37.3456341463 37.1876097561 37.2087073171 37.4188780488 37.7990243902 38.3254878049 38.9746829268 39.7315853659 40.5776829268 41.4894390244 42.4307804878 43.3686097561 44.2602439024 45.0730243902 45.7958780488 46.4252682927 46.9576829268
Singapore SGP 65.6598292683 66.087195122 66.4322439024 66.700804878 66.9102195122 67.085804878 67.2559512195 67.4457317073 67.6737317073 67.9510731707 68.2814146341 68.66 69.0659756098 69.4784634146 69.8854634146 70.2714146341 70.6211463415 70.9319756098 71.2072195122 71.452804878 71.6817560976 71.9121463415 72.1640487805 72.4510487805 72.782097561 73.1641463415 73.5991219512 74.0744146341 74.5734634146 75.0827317073 75.582195122 76.0513414634 76.4787560976 76.857 76.2975609756 76.3951219512 76.7463414634 77.0487804878 77.4 77.5512195122 78.0512195122 78.3512195122 78.6951219512 79.0390243902 79.4902439024 79.9902439024 80.1414634146 80.4414634146 80.7902439024 81.2926829268
Sint Maarten (Dutch part) SXM
Slovak Republic SVK 69.9837073171 70.2945609756 70.501195122 70.6125853659 70.6432926829 70.6113170732 70.5327073171 70.4280243902 70.3173414634 70.2172195122 70.1442439024 70.1084390244 70.1053658537 70.1289756098 70.1782926829 70.2462926829 70.3234146341 70.3990731707 70.4662682927 70.5209512195 70.4085365854 70.6292682927 70.6890243902 70.4790243902 70.7509756098 70.7346341463 71.0212195122 71.0887804878 71.207804878 71.0263414634 70.9326829268 70.8829268293 71.7951219512 72.4487804878 72.3 72.2536585366 72.6536585366 72.7048780488 72.5512195122 72.9024390244 73.0512195122 73.4024390244 73.6048780488 73.6048780488 73.9585365854 73.9048780488 74.2048780488 74.2073170732 74.7048780488 74.9097560976
Slovenia SVN 68.9780487805 68.9780487805 68.9780487805 68.6219512195 68.6634146341 68.3658536585 69.012195122 69.3658536585 68.9170731707 68.3609756098 68.6097560976 68.8341463415 69.0585365854 69.4048780488 70.1609756098 70.3585365854 70.3073170732 70.556097561 70.7024390244 70.8536585366 71.1048780488 71.2048780488 71.0536585366 70.5414634146 70.9024390244 71.3512195122 71.8024390244 72.0024390244 72.4463414634 72.7048780488 73.2048780488 73.3536585366 73.3048780488 73.2536585366 73.4048780488 73.9585365854 74.4585365854 74.7073170732 74.8073170732 75.0097560976 75.412195122 75.7585365854 76.0073170732 76.8585365854 77.2073170732 77.612195122 78.0865853659 78.5609756098 78.7658536585 78.9707317073
Solomon Islands SLB 49.3817073171 49.8817073171 50.3817073171 50.8817073171 51.3817073171 51.8817073171 52.3817073171 52.8817073171 53.3817073171 53.8817073171 54.3877073171 54.9066829268 55.4386341463 55.977097561 56.5105609756 57.0305365854 57.5290243902 57.9895609756 58.3896585366 58.7073658537 58.8907317073 58.8833658537 58.6787560976 58.3013902439 57.7946829268 57.2450487805 56.7538536585 56.4109756098 56.2772926829 56.3777317073 56.7047560976 57.2138536585 57.8211219512 58.4545853659 59.0837317073 59.6959512195 60.2965853659 60.9086097561 61.5436341463 62.1908780488 62.8342439024 63.4531463415 64.0339268293 64.5672195122 65.0495365854 65.4876585366 65.8927317073 66.2837804878 66.6734634146 67.0671219512
Somalia SOM 35.9853414634 36.3862195122 36.7866097561 37.1875121951 37.587902439 37.990804878 38.4017073171 38.8196097561 39.2405121951 39.6594146341 40.0603170732 40.4272195122 40.7501463415 41.0290731707 41.2695121951 41.4879512195 41.705902439 41.9443414634 42.2197804878 42.5387073171 42.9156341463 43.3615609756 43.8604878049 44.3784146341 44.8818780488 45.2923658537 45.5224146341 45.5355365854 45.3382195122 44.9679512195 44.5211707317 44.1238536585 43.8934634146 43.9059512195 44.1848536585 44.7121707317 45.4279268293 46.2216829268 46.9949756098 47.6993414634 48.2957804878 48.7663658537 49.1375365854 49.4362926829 49.6735853659 49.8668780488 50.038097561 50.2111707317 50.4051219512 50.630902439
South Africa ZAF 49.0362926829 49.429804878 49.8132926829 50.1957560976 50.5817560976 50.9718292683 51.3630243902 51.7494146341 52.126 52.4932682927 52.8506829268 53.1966585366 53.5346341463 53.8720487805 54.215902439 54.579195122 54.9769512195 55.4147317073 55.8950731707 56.4135121951 56.9700243902 57.5596097561 58.1657560976 58.7679268293 59.3457073171 59.8850731707 60.3760243902 60.8071463415 61.1624878049 61.4186097561 61.5496097561 61.5315365854 61.3569268293 61.0248536585 60.5388292683 59.8874146341 59.0627073171 58.0911219512 57.0176097561 55.8925365854 54.7763170732 53.7273170732 52.7924146341 52.0134390244 51.4252439024 51.0596829268 50.9296585366 51.0036585366 51.2402195122 51.6113170732
South Sudan SSD 61.512195122
Spain ESP 69.1092682927 69.4804878049 69.5190243902 69.6812195122 70.3997560976 70.8092682927 71.0551219512 71.2529268293 71.537804878 71.0575609756 72.0273170732 71.6302439024 72.8180487805 72.6107317073 72.9697560976 73.3187804878 73.6426829268 74.1319512195 74.2956097561 74.8187804878 75.3492682927 75.5285365854 76.1341463415 75.9090243902 76.2953658537 76.2595121951 76.5104878049 76.7280487805 76.7470731707 76.8136585366 76.8375609756 76.9712195122 77.41 77.5465853659 77.9014634146 77.9807317073 78.1204878049 78.6041463415 78.6658536585 78.7170731707 78.9658536585 79.3682926829 79.5682926829 79.6195121951 79.8707317073 80.1707317073 80.8219512195 80.8731707317 81.1756097561 81.4756097561
Sri Lanka LKA 57.8603414634 58.2009756098 58.5498292683 58.9289268293 59.3502439024 59.823097561 60.3497804878 60.9135365854 61.501097561 62.1028536585 62.7087804878 63.3099512195 63.8984878049 64.4704146341 65.0226829268 65.5611463415 66.0986585366 66.6420731707 67.1882926829 67.7247804878 68.2219268293 68.6451219512 68.972 69.1948292683 69.319902439 69.3727317073 69.393804878 69.422 69.481902439 69.5780487805 69.6786829268 69.7313902439 69.6991219512 69.5779756098 69.3952682927 69.2288536585 69.1782439024 69.3162439024 69.6771463415 70.2517073171 70.9842926829 71.783804878 72.543902439 73.1815609756 73.6651463415 73.9893414634 74.1826341463 74.3120731707 74.4332682927 74.5666097561
St. Kitts and Nevis KNA 63.9512195122 65.9512195122 67.9512195122 70.0363414634 71.3365853659
St. Lucia LCA 57.6486829268 58.1795121951 58.7473902439 59.3482682927 59.9751707317 60.616 61.2557317073 61.8823170732 62.4852439024 63.0605121951 63.6061463415 64.1272439024 64.6343658537 65.1370243902 65.6412439024 66.1578780488 66.7007560976 67.2688292683 67.8516585366 68.4338780488 68.9843902439 69.4666097561 69.8558536585 70.1427073171 70.3306097561 70.4397317073 70.5056097561 70.5652195122 70.6492195122 70.766 70.9086585366 71.4414634146 71.5780487805 71.6317073171 72.187804878 71.4341463415 71.5487804878 71.76 71.4536585366 71.3048780488 71.1056097561 73.9543902439 73.7073170732 73.7414634146 73.2429268293 72.7392682927 73.4165365854 73.7232195122 73.999195122 74.2380731707
St. Martin (French part) MAF
St. Vincent and the Grenadines VCT 54.0289268293 54.878097561 55.7307317073 56.5523170732 57.315902439 57.9989512195 58.5920243902 59.1135853659 59.5846829268 60.0182926829 60.4384878049 60.8723170732 61.3367804878 61.843804878 62.3928536585 62.9752439024 63.570804878 64.1529512195 64.703097561 65.2117804878 65.6770243902 66.1064390244 66.512195122 66.9049756098 67.2868780488 67.6569756098 68.0143414634 68.3534146341 68.6697073171 68.9592195122 69.2184146341 69.4427317073 69.6311219512 69.7876341463 69.9158292683 70.0184146341 70.100195122 70.1682439024 70.2315853659 70.2980731707 70.3769512195 70.4773658537 70.6014390244 70.7479268293 70.9167073171 71.1057804878 71.3077804878 71.5154634146 71.721097561 71.9212682927
Sudan SDN 41.5859268293 41.853902439 42.147902439 42.468902439 42.8159268293 43.1844634146 43.5700243902 43.9640731707 44.3611463415 44.7582195122 45.1552926829 45.5543902439 45.9584878049 46.3695853659 46.7866829268 47.2092682927 47.6353170732 48.0623170732 48.4857804878 48.900195122 49.2990487805 49.6753658537 50.0251463415 50.3514146341 50.6571707317 50.9499268293 51.240195122 51.5384390244 51.852195122 52.1844390244 52.5306585366 52.8822926829 53.2303658537 53.5743658537 53.9213658537 54.2909756098 54.7103414634 55.1925121951 55.7400243902 56.3422682927 56.974097561 57.6002682927 58.1875853659 58.7119268293 59.1647804878 59.5482439024 59.8764390244 60.1786097561 60.4779268293 60.7854634146
Suriname SUR 59.6706341463 60.038 60.3999512195 60.7619512195 61.1274878049 61.4989512195 61.8726829268 62.242097561 62.6007073171 62.9465365854 63.2722682927 63.5756341463 63.8558292683 64.1153902439 64.358804878 64.5963414634 64.8382195122 65.0941707317 65.3650243902 65.6482926829 65.9350731707 66.2125853659 66.466097561 66.685902439 66.8701219512 67.0183414634 67.1371463415 67.237902439 67.3295121951 67.4158780488 67.4989268293 67.5770487805 67.6476585366 67.709195122 67.762097561 67.8058536585 67.8359756098 67.8555121951 67.8710487805 67.8926341463 67.9352926829 68.0176097561 68.1495853659 68.3342439024 68.5695609756 68.8470487805 69.1536829268 69.4684146341 69.7757073171 70.0670243902
Swaziland SWZ 44.2387804878 44.5348780488 44.8194634146 45.1005609756 45.3886585366 45.7012439024 46.052804878 46.452804878 46.9052682927 47.4107073171 47.9616341463 48.547097561 49.1506341463 49.7592195122 50.3673902439 50.9770731707 51.595195122 52.230195122 52.8840731707 53.5508780488 54.226195122 54.9031707317 55.5703902439 56.2119268293 56.8127804878 57.3743902439 57.9046097561 58.3988292683 58.8319756098 59.1685365854 59.3440487805 59.2925853659 58.9767804878 58.3847317073 57.5235121951 56.3937317073 55.008 53.441804878 51.7945365854 50.1620731707 48.6702195122 47.4397560976 46.5279756098 45.9617317073 45.7469756098 45.860195122 46.2394878049 46.7695121951 47.3419268293 47.8888292683
Sweden SWE 73.0056097561 73.4743902439 73.3504878049 73.5553658537 73.7331707317 73.8617073171 74.0785365854 74.1224390244 73.9729268293 74.0848780488 74.6492682927 74.623902439 74.7180487805 74.8673170732 74.9804878049 74.9846341463 74.9692682927 75.3797560976 75.4690243902 75.5241463415 75.7409756098 76.026097561 76.3273170732 76.5517073171 76.8158536585 76.667804878 76.9312195122 77.092195122 76.9792682927 77.7268292683 77.5368292683 77.6668292683 77.9987804878 78.0604878049 78.6502439024 78.7404878049 78.9590243902 79.1975609756 79.3390243902 79.4414634146 79.643902439 79.7951219512 79.8463414634 80.0951219512 80.4975609756 80.5463414634 80.7487804878 80.9 81.1 81.3512195122
Switzerland CHE 71.3134146341 71.6448780488 71.196097561 71.1875609756 72.077804878 72.2017073171 72.3356097561 72.6365853659 72.5902439024 72.6126829268 73.0202439024 73.1307317073 73.6443902439 73.9409756098 74.2870731707 74.6656097561 74.7853658537 75.2380487805 75.1873170732 75.466097561 75.4592682927 75.6931707317 76.033902439 76.0312195122 76.6085365854 76.7336585366 76.8990243902 77.1975609756 77.2265853659 77.4212195122 77.2424390244 77.5146341463 77.806097561 78.0853658537 78.35 78.4170731707 78.896097561 79.0795121951 79.3243902439 79.5804878049 79.6804878049 80.1804878049 80.3853658537 80.5365853659 81.087804878 81.2365853659 81.4902439024 81.7414634146 81.9926829268 82.043902439
Syrian Arab Republic SYR 52.7317317073 53.4194878049 54.115195122 54.8193414634 55.5324390244 56.2569756098 56.9949756098 57.7449756098 58.5025121951 59.2610487805 60.0121219512 60.7451463415 61.4536585366 62.1331219512 62.7805609756 63.3964878049 63.9849268293 64.5544390244 65.1125121951 65.6606829268 66.2019512195 66.7373414634 67.263804878 67.7803170732 68.2858780488 68.7804390244 69.265 69.7375365854 70.1965365854 70.6399512195 71.0647560976 71.4674146341 71.8469268293 72.2017804878 72.5319756098 72.8355365854 73.1129512195 73.3662682927 73.6000243902 73.8162195122 74.0188780488 74.2120243902 74.3976585366 74.5782682927 74.7548536585 74.9284146341 75.096902439 75.2587804878 75.4126097561 75.5603414634
Tajikistan TJK 56.1694146341 56.5784878049 56.9900487805 57.4041219512 57.8167073171 58.2242926829 58.6234146341 59.0080487805 59.3757073171 59.7223902439 60.044097561 60.3388536585 60.6091463415 60.8569268293 61.085195122 61.2963170732 61.4952195122 61.6858292683 61.8711707317 62.0547560976 62.2442682927 62.4504146341 62.6693170732 62.8919756098 63.1067804878 63.279902439 63.3748780488 63.372902439 63.2733902439 63.0904146341 62.8568536585 62.6176341463 62.419804878 62.3032682927 62.2857073171 62.3746097561 62.5613170732 62.8129512195 63.1042682927 63.4207073171 63.7553414634 64.1048536585 64.469902439 64.8474878049 65.2295365854 65.6078536585 65.9736829268 66.3237804878 66.6559756098 66.9676829268
Tanzania TZA 43.6538780488 43.9072926829 44.1622439024 44.4237073171 44.6977073171 44.9887317073 45.2972926829 45.6208536585 45.9594146341 46.3114634146 46.684 47.082 47.5044634146 47.9453902439 48.393804878 48.8352439024 49.2502439024 49.6273170732 49.9549756098 50.2287073171 50.4534390244 50.6406097561 50.8036829268 50.9506341463 51.0769756098 51.1667560976 51.1955609756 51.1489756098 51.0260731707 50.8364390244 50.5971463415 50.3292439024 50.0647073171 49.8359756098 49.6660243902 49.5737560976 49.5676341463 49.6445365854 49.8008536585 50.0409756098 50.3732926829 50.8047317073 51.3282682927 51.9353902439 52.6116097561 53.3469268293 54.1293658537 54.9425121951 55.7694390244 56.5897317073
Thailand THA 55.299195122 55.8388292683 56.3500243902 56.8322926829 57.289195122 57.7241463415 58.1445365854 58.5582682927 58.9752439024 59.4010243902 59.8366585366 60.2802926829 60.7300731707 61.1890243902 61.665195122 62.1719756098 62.7232195122 63.3282926829 63.9911463415 64.7112682927 65.4977804878 66.3608536585 67.2846341463 68.2397073171 69.1920487805 70.0900487805 70.8770731707 71.5204146341 72.0009512195 72.3136341463 72.4709268293 72.4997804878 72.4528780488 72.3788536585 72.3063902439 72.2611707317 72.2539268293 72.2792926829 72.3302926829 72.4094634146 72.5152195122 72.6414390244 72.7769268293 72.9154634146 73.0529512195 73.1887804878 73.3254146341 73.465902439 73.6132682927 73.7680243902
Timor-Leste TLS 33.7271219512 34.2275609756 34.7290487805 35.2315365854 35.7334878049 36.272902439 36.8947804878 37.5966097561 38.3358780488 39.0415121951 39.5288780488 39.5752439024 39.088097561 38.0825121951 36.6681463415 35.1138536585 33.7726097561 32.943195122 32.8137804878 33.4203414634 34.6581463415 36.2978292683 38.012902439 39.5505121951 40.8125121951 41.781902439 42.5282439024 43.2143414634 43.9674146341 44.8200487805 45.785804878 46.850195122 47.9631463415 49.0801219512 50.1846341463 51.2641707317 52.3147560976 53.3393902439 54.3345121951 55.2896585366 56.1902439024 57.0217804878 57.7802195122 58.4655365854 59.0822682927 59.6383414634 60.1463170732 60.6236585366 61.0859512195 61.5421707317
Togo TGO 39.5561219512 40.1329268293 40.7076829268 41.2794146341 41.848097561 42.4177804878 42.9909756098 43.5687073171 44.1484634146 44.7257560976 45.2925609756 45.8383658537 46.357097561 46.8437804878 47.2973902439 47.7214146341 48.1203902439 48.5033414634 48.8797804878 49.2512195122 49.6226829268 49.9946829268 50.364195122 50.7277317073 51.0847804878 51.4338780488 51.7729512195 52.1015365854 52.4151463415 52.7132682927 52.9919756098 53.246804878 53.4782682927 53.6878780488 53.8771707317 54.050097561 54.2111707317 54.3658536585 54.5170731707 54.6672926829 54.8094878049 54.934097561 55.0386341463 55.1265609756 55.2083658537 55.304 55.4374390244 55.626195122 55.8803170732 56.202804878
Tonga TON 61.3645365854 61.7327073171 62.0972926829 62.4587560976 62.8151463415 63.1679756098 63.5183170732 63.8672439024 64.2122682927 64.552902439 64.885097561 65.204804878 65.5079756098 65.7950487805 66.0660243902 66.3233902439 66.5711463415 66.8153658537 67.0585609756 67.3032682927 67.55 67.7997317073 68.0494878049 68.2952926829 68.5336585366 68.7596585366 68.965902439 69.1519268293 69.315195122 69.4576829268 69.5823170732 69.6930487805 69.7972195122 69.9007317073 70.0064634146 70.1192682927 70.2385121951 70.3636829268 70.4928536585 70.6250731707 70.7609268293 70.8990487805 71.0391219512 71.179804878 71.3202682927 71.4596585366 71.599097561 71.7380487805 71.8764878049 72.0138780488
Trinidad and Tobago TTO 63.2135365854 63.7634146341 64.2196829268 64.5683902439 64.8120487805 64.9621219512 65.0429756098 65.0904878049 65.1375121951 65.2029756098 65.3004146341 65.4343902439 65.5954878049 65.7741463415 65.9692926829 66.178195122 66.3975609756 66.6232682927 66.8492439024 67.0715365854 67.2882926829 67.4997073171 67.7046097561 67.9037317073 68.0937560976 68.2733414634 68.4405121951 68.5936829268 68.7312439024 68.8501463415 68.9447804878 69.0125609756 69.0518536585 69.0621463415 69.0458780488 68.997097561 68.912902439 68.7973658537 68.6610487805 68.5199756098 68.3956097561 68.3143902439 68.2902195122 68.3330487805 68.4433170732 68.6135121951 68.8291219512 69.0661463415 69.3051463415 69.536097561
Tunisia TUN 48.335804878 48.823804878 49.305804878 49.783804878 50.265804878 50.7588536585 51.273 51.8182682927 52.4015853659 53.0273658537 53.7004146341 54.4230243902 55.1885609756 55.988 56.8168536585 57.6712195122 58.550804878 59.4478292683 60.353 61.2514146341 62.1231707317 62.9487560976 63.7185609756 64.4295365854 65.0841463415 65.6948780488 66.2822195122 66.8676829268 67.4637560976 68.070902439 70.3073170732 70.5073170732 70.756097561 70.7536585366 70.9536585366 71.3536585366 71.5536585366 71.9024390244 72.0512195122 72.5 72.6 72.8487804878 73 73.0512195122 73.3024390244 73.5024390244 73.9 74.2024390244 74.3024390244 74.4512195122
Turkey TUR 48.2708536585 48.3524390244 48.4239756098 48.4900243902 48.5616341463 48.6563170732 48.792097561 48.984902439 49.2452439024 49.5811219512 49.9940731707 50.482097561 51.0307317073 51.6254634146 52.2582926829 52.9227073171 53.6161707317 54.3351707317 55.0736829268 55.8211707317 56.5696097561 57.3119756098 58.0432682927 58.7590243902 59.454195122 60.1213658537 60.7555121951 61.3601707317 61.9408780488 62.5041463415 63.0604634146 63.6228292683 64.2007560976 64.8002195122 65.4236585366 66.073097561 66.7459756098 67.432804878 68.1190487805 68.7947317073 69.4468780488 70.064 70.6391463415 71.1683170732 71.6480487805 72.0778536585 72.4627317073 72.8106585366 73.1296341463 73.4246341463
Turkmenistan TKM 54.443804878 54.855804878 55.271804878 55.689804878 56.105804878 56.517804878 56.919804878 57.305804878 57.673804878 58.019804878 58.337804878 58.624804878 58.883804878 59.118804878 59.337804878 59.550804878 59.7717804878 60.0072439024 60.2637073171 60.5411707317 60.836195122 61.1438536585 61.4511707317 61.7455853659 62.0150487805 62.2463902439 62.4244146341 62.5465121951 62.6201219512 62.6523170732 62.6627073171 62.6730487805 62.7055365854 62.7733658537 62.882097561 63.0307317073 63.2077560976 63.3954878049 63.5772439024 63.7454634146 63.8955121951 64.0257804878 64.1412439024 64.2479512195 64.3469268293 64.4383170732 64.5212195122 64.5983170732 64.6757073171 64.7599512195
Turks and Caicos Islands TCA
Tuvalu TUV
Uganda UGA 43.9785609756 44.5325365854 45.0845609756 45.6336585366 46.1803170732 46.7390243902 47.3297560976 47.9569756098 48.6076585366 49.2582926829 49.8633902439 50.3689756098 50.7375609756 50.9521463415 51.0112195122 50.9377804878 50.7717804878 50.5667073171 50.3685121951 50.1981707317 50.0716097561 49.9922195122 49.9355121951 49.8720243902 49.7853658537 49.6386341463 49.3904634146 49.028 48.553902439 47.9867560976 47.3567317073 46.7023658537 46.0791463415 45.5394878049 45.1223658537 44.8652926829 44.7917560976 44.890195122 45.1448780488 45.5481463415 46.0916829268 46.7667317073 47.5431219512 48.3852439024 49.2575121951 50.1239268293 50.9530731707 51.7296829268 52.4399756098 53.0705853659
Ukraine UKR 69.895804878 70.2282195122 70.4919512195 70.6855609756 70.811097561 70.8651219512 70.8441219512 70.7536829268 70.6054146341 70.4114634146 70.1869512195 69.945 69.6997317073 69.4647073171 69.2560243902 69.0827560976 68.9518780488 68.8593414634 68.8046341463 68.789804878 68.8275121951 68.9320243902 69.0993658537 69.3138780488 69.5518292683 69.7732439024 69.9320731707 70.4951219512 70.4975609756 70.5390243902 70.1365853659 68.8780487805 68.8780487805 67.8780487805 67.8731707317 67.1170731707 67.3107317073 67.2953658537 67.9682926829 68.193902439 67.8634146341 68.2870731707 68.2756097561 68.2107317073 68.1853658537 67.9568292683 68.0775609756 68.222195122 68.2514634146 69.19
United Arab Emirates ARE 51.6086829268 52.6601463415 53.7608292683 54.901195122 56.0662439024 57.2364146341 58.3916585366 59.5129268293 60.5826829268 61.5878780488 62.5194878049 63.373 64.1599512195 64.8883170732 65.5626341463 66.1853902439 66.7605853659 67.2912439024 67.7853658537 68.2474634146 68.6840487805 69.0996097561 69.4961463415 69.8756829268 70.241195122 70.5941707317 70.9336341463 71.2575365854 71.566902439 71.8612439024 72.1435365854 72.4153170732 72.6785853659 72.9353414634 73.187097561 73.4348536585 73.680097561 73.9208292683 74.1570487805 74.3887317073 74.615902439 74.8370731707 75.0522195122 75.2608780488 75.4639756098 75.6604634146 75.851804878 76.0384390244 76.2213414634 76.3995609756
United Kingdom GBR 71.1268292683 70.8780487805 70.9268292683 70.8268292683 71.6243902439 71.6243902439 71.5731707317 72.1243902439 71.7243902439 71.7219512195 71.9731707317 72.2731707317 72.1243902439 72.3243902439 72.5243902439 72.7243902439 72.7756097561 73.2243902439 73.1756097561 73.2756097561 73.6756097561 74.0268292683 74.1780487805 74.3780487805 74.7780487805 74.6292682927 74.9292682927 75.2804878049 75.3804878049 75.5829268293 75.8804878049 76.0829268293 76.4341463415 76.3853658537 76.8853658537 76.8365853659 77.087804878 77.2109756098 77.1902439024 77.3902439024 77.7414634146 77.9926829268 78.143902439 78.4463414634 78.7463414634 79.0487804878 79.2487804878 79.4487804878 79.6 80.0512195122
United States USA 69.7707317073 70.2707317073 70.1195121951 69.9170731707 70.1658536585 70.2146341463 70.212195122 70.5609756098 69.9512195122 70.5073170732 70.8073170732 71.1073170732 71.156097561 71.356097561 71.956097561 72.6048780488 72.856097561 73.256097561 73.356097561 73.8048780488 73.6585365854 74.0073170732 74.3609756098 74.4634146341 74.5634146341 74.5634146341 74.6146341463 74.7658536585 74.7658536585 75.0170731707 75.2146341463 75.3658536585 75.642195122 75.4195121951 75.5743902439 75.6219512195 75.9965853659 76.4292682927 76.5804878049 76.5829268293 76.6365853659 76.7365853659 76.8365853659 76.987804878 77.3390243902 77.3390243902 77.587804878 77.8390243902 77.9390243902 78.0902439024
Uruguay URY 67.811 68.0239756098 68.205902439 68.3477560976 68.449 68.511195122 68.5403170732 68.5494146341 68.5540243902 68.5641463415 68.5887317073 68.6342682927 68.7037073171 68.7970487805 68.9193170732 69.0725609756 69.2608292683 69.4781463415 69.7190731707 69.978097561 70.2482195122 70.521902439 70.7925853659 71.0552439024 71.304804878 71.5367560976 71.7494878049 71.9460487805 72.1319756098 72.309804878 72.4846829268 72.6637073171 72.85 73.047097561 73.2565365854 73.4762682927 73.5280487805 73.6634146341 73.9541463415 74.153902439 74.8868292683 74.872195122 74.8363414634 74.8768292683 75.2163414634 75.6092682927 75.7297560976 75.8551219512 75.9807317073 76.1112195122
Uzbekistan UZB 58.8901463415 59.3021463415 59.7176585366 60.1351707317 60.5511707317 60.962195122 61.3627317073 61.7482439024 62.1147804878 62.459804878 62.7768292683 63.0628536585 63.3208780488 63.554902439 63.7724390244 63.9844390244 64.2033902439 64.4377804878 64.6931463415 64.9690243902 65.2665121951 65.5867317073 65.9157560976 66.2370731707 66.5341463415 66.7763902439 66.9336341463 66.9942682927 66.9611707317 66.8472926829 66.6821219512 66.5067317073 66.3602195122 66.2741707317 66.2601219512 66.3176097561 66.4326341463 66.574195122 66.7147560976 66.8443170732 66.9508780488 67.0289268293 67.0859756098 67.131 67.1720487805 67.2225853659 67.2981707317 67.4112926829 67.5669756098 67.7647073171
Vanuatu VUT 46.4874878049 47.088097561 47.688195122 48.2872926829 48.8868292683 49.4847804878 50.0831219512 50.6818292683 51.2809268293 51.879902439 52.479804878 53.0796341463 53.6794390244 54.2792682927 54.8786097561 55.4799756098 56.0883170732 56.703097561 57.3223658537 57.939195122 58.5427073171 59.1205609756 59.6648780488 60.1721219512 60.6422682927 61.082195122 61.5022195122 61.9146341463 62.3317560976 62.7580243902 63.1968536585 63.6477804878 64.1034146341 64.5593414634 65.0121463415 65.4593414634 65.8994878049 66.330097561 66.751195122 67.1598292683 67.555 67.9357073171 68.3014634146 68.6542439024 68.9935609756 69.320902439 69.6377804878 69.9446585366 70.2435853659 70.5350243902
Venezuela, RB VEN 58.5186829268 59.0864390244 59.6514634146 60.2112439024 60.7652926829 61.3086585366 61.8398780488 62.3565121951 62.8601463415 63.3513414634 63.8346585366 64.3171463415 64.801804878 65.2896341463 65.7766341463 66.2543170732 66.7116341463 67.1395609756 67.5330731707 67.892195122 68.2224878049 68.535 68.8403170732 69.1463902439 69.4542195122 69.7622195122 70.0633170732 70.3483902439 70.6123658537 70.850195122 71.0623658537 71.2493658537 71.4157560976 71.7695121951 72.1231707317 72.1695121951 72.3795121951 72.5695121951 72.7292682927 72.8641463415 73.2695121951 73.4292682927 73.6292682927 72.7829268293 72.977804878 73.1726829268 73.3675609756 73.5624390244 73.7575609756 73.9424390244
Vietnam VNM 44.162097561 44.6906341463 45.2356829268 45.7892439024 46.3357804878 46.830804878 47.220804878 47.4837560976 47.6256829268 47.6755853659 47.6914634146 47.7492682927 47.9240487805 48.2728780488 48.8243902439 49.599804878 50.5958780488 51.7577073171 53.0233170732 54.3471707317 55.6710731707 56.9382926829 58.1200243902 59.2005365854 60.1716829268 61.054902439 61.8932439024 62.7363170732 63.6157560976 64.536097561 65.4783658537 66.411097561 67.2927560976 68.0933414634 68.8048292683 69.4316829268 69.9898536585 70.5063170732 71.0015609756 71.4826097561 71.9455121951 72.3813170732 72.777097561 73.125902439 73.4317804878 73.6997317073 73.9407560976 74.1653414634 74.3854634146 74.6055853659
Virgin Islands (U.S.) VIR 63.7302195122 64.1015609756 64.4625609756 64.8287560976 65.2101219512 65.6116097561 66.0325853659 66.4624634146 66.8927073171 67.320804878 67.7448292683 68.1648780488 68.5805609756 68.9904878049 69.3911707317 69.7781707317 70.1449512195 70.4909268293 70.8165365854 71.1251707317 71.425195122 71.7264634146 72.0364634146 72.3616341463 72.7020487805 73.0557317073 73.4168292683 73.7759512195 74.1262926829 74.4644390244 74.788 75.0990243902 75.4005121951 75.694902439 75.982195122 76.262902439 76.5365609756 76.8025609756 77.0592926829 77.3061707317 77.5756585366 77.8451463415 78.1146341463 78.2513821138 78.3881300813 78.5248780488 78.6597560976 78.7943902439 78.9447804878 79.0698292683
West Bank and Gaza PSE 68.0477317073 68.3919756098 68.7226829268 69.0443658537 69.3604878049 69.6675609756 69.9606097561 70.2336097561 70.482097561 70.7060487805 70.9079512195 71.0903170732 71.2606341463 71.4238780488 71.5855853659 71.7492682927 71.9189268293 72.0935853659 72.2727560976 72.4569512195
Yemen, Rep. YEM 37.7865609756 38.0583658537 38.3271707317 38.5944634146 38.8607560976 39.1160487805 39.3488292683 39.5601219512 39.764902439 39.983195122 40.2549756098 40.6207317073 41.1089756098 41.736195122 42.503902439 43.4045853659 44.4197804878 45.508 46.6262195122 47.7434878049 48.8352682927 49.8860731707 50.8928780488 51.846195122 52.731 53.5273170732 54.2196341463 54.8104634146 55.3092926829 55.7256585366 56.0690243902 56.353902439 56.6032926829 56.8416585366 57.0915365854 57.378902439 57.7237804878 58.1306829268 58.5965853659 59.1194878049 59.6898536585 60.2931463415 60.9068536585 61.5119512195 62.0954390244 62.6493170732 63.1706097561 63.6653414634 64.1395609756 64.5937560976
Zambia ZMB 45.109804878 45.4875121951 45.8531707317 46.2082439024 46.557195122 46.9105365854 47.2827560976 47.6809268293 48.1055365854 48.5531463415 49.0147317073 49.4778292683 49.9254146341 50.3410243902 50.7141707317 51.0413658537 51.3256341463 51.57 51.7729268293 51.9259512195 52.0180243902 52.0375853659 51.9751463415 51.820195122 51.564804878 51.1885365854 50.6705121951 50.0168292683 49.2465121951 48.3896097561 47.4806341463 46.560097561 45.6693902439 44.8484146341 44.1265609756 43.5152682927 43.0084878049 42.5896097561 42.2550731707 42.0212195122 41.9298780488 42.0308292683 42.3425365854 42.8585609756 43.5549512195 44.3843658537 45.2885121951 46.1976341463 47.0524390244 47.8145365854
Zimbabwe ZWE 51.5424634146 51.9149512195 52.277902439 52.6293170732 52.9716585366 53.3039512195 53.6277073171 53.9454390244 54.2611707317 54.578902439 54.9026585366 55.2354146341 55.579195122 55.9379756098 56.3142682927 56.7170243902 57.1557317073 57.6293902439 58.13 58.6460487805 59.1740487805 59.7104878049 60.2358780488 60.7227804878 61.1367804878 61.4474146341 61.6287073171 61.6577560976 61.5086341463 61.1514634146 60.5289268293 59.5817073171 58.3153414634 56.770804878 55.0080243902 53.0983902439 51.1242682927 49.188902439 47.3995609756 45.8474878049 44.6179756098 43.7684390244 43.2847804878 43.1434878049 43.3369756098 43.8615853659 44.7017804878 45.7970731707 47.0706097561 48.4504878049
task :default => :run
# Serving files via Rack
desc "Serve the files via Rack and Thin"
task :run => [:dependencies] do
port = ENV['PORT'] || 8000
puts "Launching local webserver at <http://localhost:#{port}> ...", "-"*80
begin
Thin::Logging.silent = true
Thin::Server.start port, lambda { |env|
if env['PATH_INFO'] == '/'
[200, {'Content-Type' => 'text/html'}, File.new('index.html')]
else
Rack::Directory.new('.').(env)
end
}
rescue Exception => e
if e.message =~ /no acceptor/
puts "[!] Port #{port} not available, trying next one...", ""
port += 1
puts "Launching local webserver at <http://localhost:#{port}> ...", "-"*80
retry
end
raise
end
end
task :dependencies do
%w| rack thin |.each do |lib|
begin
require lib
rescue LoadError
puts "[!] Required gem '#{lib}' not found, please install it with:", "",
" $ gem install #{lib}", "",
"-"*80
raise
end
end
end
# Stepping through the tutorial
begin
require 'term/ansicolor'
class String
include Term::ANSIColor
end
rescue LoadError
class String
def black; self; end
def on_green; self; end
def on_yellow; self; end
end
end
_ = '-'*80
desc "List the steps of this tutorial"
task :steps do
puts _, "Steps of this tutorial", _
current = GitSteps.current_step
GitSteps.steps.each_with_index do |step, i|
is_current = step.sha == current.sha ? "*" : " "
puts "#{is_current} #{(i+1).to_s.rjust(3).bold} | #{step.subject.gsub(/^\[\d+\] /, '')}"
end; puts
end
desc "Display current step"
task :step => [:check] do
step = GitSteps.current_step
puts _, "#{step.sha} | #{step.subject.bold}",
_, "#{step.body}"
end
desc "Start the tutorial or switch back to first step"
task :start => [:check] do
puts _, "Starting the tutorial with the first step".white.on_magenta, _
step = GitSteps.steps.first
puts "#{step.sha} | #{step.subject.bold}",
"#{step.body}"
exec "git checkout #{step.sha} > /dev/null 2>&1 "
end
desc "Step to the next step of tutorial"
task :next => [:check] do
if step = GitSteps.next_step
puts _, "#{step.sha} | #{step.subject.bold}",
_, "#{step.body}"
exec "git checkout #{step.sha} > /dev/null 2>&1 "
else
puts "You have reached the end of the tutorial".white.on_green,
"Start again with: rake start"
end
end
desc "Step to the previous step of tutorial"
task :previous => [:check] do
if step = GitSteps.previous_step
puts _, "#{step.sha} | #{step.subject.bold}",
_, "#{step.body}"
exec "git checkout #{step.sha} > /dev/null 2>&1 "
else
puts "You are at the beginning of the tutorial".white.on_green,
"Follow the tutorial with: rake next"
end
end
desc "Show differences between the current step and the previous step"
task :diff do
current = GitSteps.current_step
previous = GitSteps.previous_step
(puts "[!] Cannot find previous step".white.on_red; exit(1)) unless previous
puts _, "Previous : #{previous.subject}",
"Current : #{current.subject}", _
exec "git diff --color --ignore-all-space --minimal HEAD^ HEAD | cat"
end
desc "Reset the tutorial and switch to master branch"
task :reset => [:check] do
exec "git checkout master > /dev/null"
end
task :check do
if `which git` == ''
puts "[!] ERROR: You need Git installed to step through the tutorial.".white.on_red
exit(1)
end
end
module GitSteps
class Commit
attr_reader :sha, :subject, :body
def initialize(commit)
@sha, @subject = commit.split('|||', 2)
@body = %x[git log -n 1 --format='%b' #{sha}].chomp
end
def step?; subject =~ /^\[\d+\]/; end
end
def steps
%x[git log --reverse --format='%h|||%s' master]
.chomp
.split("\n")
.map { |commit| Commit.new(commit) }
.select { |commit| commit.step? }
end
def current_step
Commit.new( %x[git log -n 1--reverse --format='%h|||%s'].chomp )
end
def next_step
steps.select { |step| step.subject > current_step.subject }.first
end
def previous_step
steps.select { |step| step.subject < current_step.subject }.last
end
extend self
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment